You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NRI-FLEX集成无法返回正确表头问题求助

NRI-FLEX集成解析curl命令输出异常的解决方法

问题背景

我在创建NRI-FLEX集成时,通过命令curl -s -i https://example.com/meta/availability | grep -E 'HTTP|Availability Check'过滤服务可用性信息,但当前配置在New Relic中查询时输出异常——仅将表头首字符作为标题,其余内容作为结果。期望输出包含状态码和可用性检查结果的结构化表格数据。使用的Agent版本1.50.0,Integration版本1.10.0。

解决方案

问题出在配置的几个细节上,调整后即可得到预期的结构化输出:

  • 关闭return_headers配置
    return_headers: true用于解析API请求的响应头,而此处命令输出是过滤后的文本行,并非HTTP响应头,需将其设置为false(或直接移除该配置)。

  • 开启逐行处理
    命令输出为两行独立内容,需添加line_by_line: true让NRI-FLEX逐行解析每行内容,避免将两行文本作为整体处理导致解析异常。

  • 修正正则匹配的Key命名
    避免使用带空格和特殊字符的Key名称(如HTTP/1.1、Availability Check),这类名称会导致New Relic属性解析异常,改用简洁的标识符(如status_code、availability_status)。

  • 优化正则表达式
    添加行首锚定确保正则准确匹配目标行内容,避免误匹配其他字符串:

    • 匹配HTTP状态行:^HTTP/1.1 (\d+)
    • 匹配可用性检查行:^Availability Check (\w+)

修改后的完整配置

integrations:
  - name: nri-flex
    interval: 60s
    timeout: 10s
    config:
      name: Example_Availability
      apis:
        - name: Example_Availability
          commands:
            - name: ExampleServices-Availability
              run: curl -s -i https://example.com/meta/availability | grep -E 'HTTP|Availability Check'
              line_by_line: true
              regex_matches:
                - expression: ^HTTP/1.1 (\d+)
                  keys:
                    [status_code]
                - expression: ^Availability Check (\w+)
                  keys:
                    [availability_status]
          custom_attributes:
            Url: https://example.com/meta/availability

验证查询

在New Relic中使用以下NRQL查询即可得到结构化结果:

SELECT status_code, availability_status FROM Example_Availability TIMESERIES

输出会以表格形式展示状态码和可用性检查结果,符合预期。

内容的提问来源于stack exchange,提问作者Rev84

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:28:16