使用 NRQL 查询来从 New Relic 获取查询结果

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

我目前正在努力将 New Relic 集成到我们的应用程序监控堆栈中,在尝试使用 NRQL(New Relic 查询语言)获取查询结果时遇到问题。我对 New Relic 比较陌生,所以任何见解将不胜感激。

这是我遇到的问题:

我已经在我的应用程序中配置了 New Relic,我可以在 New Relic UI 中看到各种数据指标和仪表板。但是,当我尝试使用 NRQL 以编程方式获取特定查询结果时,我得到了意外结果或空结果。

例如,我尝试使用以下 NRQL 查询获取过去 24 小时内特定 API 端点的平均响应时间:

sql 复制代码 从 1 天前开始的交易中选择平均值(持续时间),其中 appName = 'MyApp' AND name = 'MyEndpoint' 当我在 New Relic 查询生成器中运行此查询时,它返回预期结果。但是,当我使用 New Relic API 或 New Relic Python SDK 以编程方式执行查询时,我得到空响应或错误。

我已验证以下内容:

用于身份验证的 New Relic API 密钥和帐户 ID 正确。 所需的 New Relic Python SDK 和软件包已安装。 查询中使用的应用程序名称(“MyApp”)和端点名称(“MyEndpoint”)正确。 尽管进行了这些验证,我仍无法按预期检索查询结果。我还尝试了其他 NRQL 查询,但所有这些查询都存在问题。

有人在尝试使用 NRQL 和 New Relic API/SDK 以编程方式获取查询结果时遇到过类似的问题吗?是否需要任何其他配置或设置来确保 NRQL 查询以编程方式返回有效数据?

任何指导、建议或故障排除步骤将不胜感激。预先感谢您的帮助!

newrelic newrelic-platform
1个回答
0
投票

查询看起来没问题,如果它在 UI 中工作,它也应该在 API 中工作。您的目标是正确的 API 吗?根据您的帐户位于美国还是欧盟数据中心,这些内容会有所不同。

您可以在 graphiql explorer 中测试查询。这有一个很好的功能,允许您像这样复制卷曲:

  -H 'Content-Type: application/json' \
  -H 'API-Key: YOUR-API-KEY-HERE' \
  --data-binary '{"query":"{\n  actor {\n    account(id: YOUR-ACCOUNT-ID-HERE) {\n      nrql(\n        query: \"SELECT average(duration) FROM Public_APICall where api=\u0027amazonaws.com\u0027\"\n      ) {\n        results\n      }\n    }\n  }\n}", "variables":""}'

如果您在上面删除您的 API 密钥和帐户 ID(并为欧盟或美国数据中心设置正确的域名),您应该从此公共数据集中获得结果。

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