在 New Relic 中记录自定义维度指标
Recording custom dimensional metrics in New Relic
我正在寻找一种使用 node.js new-relic 代理记录具有多个维度的自定义指标的方法。据我所知,自定义指标的 API 仅包括 a name and a value.
是否可以给一个metric加标签,实现多维查询?例如,当我为我的缓存系统记录指标 with Prometheus 时,我添加了如下标签:
- 服务器名称
- 缓存条目名称
- 租户 ID
- 网络API路由
这让我可以根据不同 KPI 仪表板的不同标签(按租户、按网络 API 等)汇总我的数据。
这可以直接用 New Relic 实现吗? (我不是问 New Relic Prometheus 集成)
当 New Relic 清晰 supports dimensional metrics 时,API 如此简单化似乎很奇怪 supports dimensional metrics。
APM 通常记录称为metric timeslice data 的非维度指标。我不知道造成这种差异的根本原因,但我怀疑这仅仅是因为 APM 是 New Relic 的第一个产品,而当时可能没有实施维度指标。我还没有确认,但 recordMetric()
可能使用时间片指标。
主要有两种解决方法:
- APM 交易是维度化的。如果指标是特定于交易的,您可以多次调用
newrelic.addCustomAttribute('key1', 'value1')
以将维度附加到交易。然后您可以使用 NRQL 进行查询。例如:FROM Transaction SELECT * WHERE key1 = 'value1' FACET key2
.
- 直接调用metrics API。这使您可以发送不会附加到应用程序的维度指标,当然其中一个属性可以是应用程序名称。然后可以通过 NRQL 类似地查询:
FROM Metric SELECT * WHERE key1 = 'value1' FACET key2
.
根据this answer on the newrelic forum, this is possible using the New Relic Telemetry SDK for node.js。
我正在寻找一种使用 node.js new-relic 代理记录具有多个维度的自定义指标的方法。据我所知,自定义指标的 API 仅包括 a name and a value.
是否可以给一个metric加标签,实现多维查询?例如,当我为我的缓存系统记录指标 with Prometheus 时,我添加了如下标签:
- 服务器名称
- 缓存条目名称
- 租户 ID
- 网络API路由
这让我可以根据不同 KPI 仪表板的不同标签(按租户、按网络 API 等)汇总我的数据。
这可以直接用 New Relic 实现吗? (我不是问 New Relic Prometheus 集成)
当 New Relic 清晰 supports dimensional metrics 时,API 如此简单化似乎很奇怪 supports dimensional metrics。
APM 通常记录称为metric timeslice data 的非维度指标。我不知道造成这种差异的根本原因,但我怀疑这仅仅是因为 APM 是 New Relic 的第一个产品,而当时可能没有实施维度指标。我还没有确认,但 recordMetric()
可能使用时间片指标。
主要有两种解决方法:
- APM 交易是维度化的。如果指标是特定于交易的,您可以多次调用
newrelic.addCustomAttribute('key1', 'value1')
以将维度附加到交易。然后您可以使用 NRQL 进行查询。例如:FROM Transaction SELECT * WHERE key1 = 'value1' FACET key2
. - 直接调用metrics API。这使您可以发送不会附加到应用程序的维度指标,当然其中一个属性可以是应用程序名称。然后可以通过 NRQL 类似地查询:
FROM Metric SELECT * WHERE key1 = 'value1' FACET key2
.
根据this answer on the newrelic forum, this is possible using the New Relic Telemetry SDK for node.js。