NRI-FLEX 集成无法返回正确的标头

问题描述 投票:0回答:1

我正在尝试创建一个 NRI-FLEX 集成,该集成本质上是通过卷曲服务的可用性页面(https://example.com/meta/availability)来报告天气或特定服务是否启动。常规的curl命令会带来很多不需要的信息,所以我一直在使用以下命令:

curl -s -i example.com/meta/availability | grep -E 'HTTP|Availability Check'

这会产生以下输出: Output

这是我到目前为止所拥有的:

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'
              return_headers: true
              regex_matches:
                - expression: HTTP/1.1 (\d+)
                  keys:
                    [HTTP/1.1]
                - expression: Availability Check (\w+)
                  keys:
                    [Availability Check]
          custom_attributes:
            Url: https://example.com/meta/availability

当我在 New Relic 中查询时,会产生以下输出: Bad Output 由于某种原因,它采用标题的第一个字符作为标题,并将其他所有内容显示为结果。 我希望结果看起来更像这样:

状态代码 可用性检查
200 通过了
200 通过了

我尝试使用正则表达式并使用我在此处找到的各种示例中找到的一些不同的函数:https://github.com/newrelic/nri-flex/tree/master/examples 但到目前为止还没有任何效果。我要么从屏幕截图中获取输出,要么 Flex 集成停止工作。

代理版本:1.50.0 集成版本:1.10.0

如有任何帮助,我们将不胜感激!

monitoring newrelic
1个回答
0
投票

这里是 Flex 的创建者。

您的配置与示例的区别在于您缺少

split_output
,这是为了帮助 Flex 知道何时开始解析以及是否存在连续的相似数据块。

在您的可用性检查表达式中,您还缺少一个冒号,因此这永远不会起作用。

我更新了您的命令以输出更多数据作为示例,并且我的curl 输出也与您的略有不同。

curl -s -i https://example.com/meta/availability | grep -E 'HTTP|Availability Check|accept'

my example curl output

更新配置

example output w/ new config

根据您的需求/格式进行以下调整

integrations:
  - name: nri-flex
    interval: 60s
    timeout: 10s
    config:
      name: example
      apis:
        - name: Example_Availability
          commands:
            - name: ExampleServices-Availability
              run: curl -s -i https://example.com/meta/availability | grep -E 'HTTP|Availability Check|accept'
              split_output: HTTP
              regex_matches:
                - expression: 'HTTP\/1.1 (\d+)'
                  keys:
                    [HTTP/1.1]
                - expression: 'HTTP\/2 (\d+)'
                  keys:
                    [HTTP/2]
                - expression: 'Availability Check: (\w+)'
                  keys:
                    [Availability Check]
                - expression: 'accept-ranges: (\w+)'
                  keys:
                    [acceptRanges]

© www.soinside.com 2019 - 2024. All rights reserved.