【问题标题】:Recording custom dimensional metrics in New Relic在 New Relic 中记录自定义维度指标
【发布时间】:2021-07-13 16:13:50
【问题描述】:

我正在寻找一种使用 node.js new-relic 代理记录具有多个维度的自定义指标的方法。据我所知,自定义指标的 API 仅包含 a name and a value

是否可以为指标添加标签,以便可以根据多个维度进行查询?例如,当我为我的缓存系统记录指标 with Prometheus 时,我会添加如下标签:

  • 服务器名称
  • 缓存条目名称
  • 租户 ID
  • Web API 路由

这让我可以根据不同 KPI 仪表板的不同标签(按租户、按 Web API 等)汇总我的数据。

这可以直接用 New Relic 实现吗? (我问的不是 New Relic Prometheus 集成)

当 New Relic 明确 supports dimensional metrics 时,API 如此简单,这似乎很奇怪。

【问题讨论】:

    标签: node.js prometheus metrics newrelic


    【解决方案1】:

    APM 通常记录称为metric timeslice data 的无量纲指标。我不知道这种差异的根本原因,但我怀疑这仅仅是因为 APM 是 New Relic 的第一个产品,并且当时可能没有实施维度度量。我还没有确认,但recordMetric() 可能使用时间片指标。

    解决这个问题有两种主要方法:

    1. APM 事务是维度的。如果指标是特定于事务的,您可以改为多次调用newrelic.addCustomAttribute('key1', 'value1') 以将维度附加到事务。然后,您可以使用 NRQL 进行查询。例如:FROM Transaction SELECT * WHERE key1 = 'value1' FACET key2
    2. 直接拨打metrics API。这使您可以发送不会附加到应用程序的维度指标,尽管其中一个属性当然可以是应用程序名称。然后可以通过 NRQL 进行类似的查询:FROM Metric SELECT * WHERE key1 = 'value1' FACET key2

    【讨论】:

    • 感谢您的建议!不过,对我来说,这两个选项都不是最理想的。第一个迫使我进入一个扁平的结构,因为我已经在一个现有的指标上。这意味着我可能不会得到百分位数数据等,也不容易在同一事务中记录对同一缓存的多次访问。从性能的角度来看,我害怕使用第二个选项。不过,我确实在新的遗物论坛上收到了满意的答复,我将在下面发布。
    • @joniba “不能轻易地在同一个事务中记录对同一个缓存的多次访问”-> 这听起来像是您可能想要事件,这些事件本身可以包含指标。您还可以将缓存视为“数据源”,它将与其他数据库一起显示在 APM 中的适当位置。如果它不是自动检测的,则使用 shim 相对容易:newrelic.github.io/node-newrelic/docs/….
    • "从性能的角度来看,我害怕使用的第二个选项" -> SDK 将在后台调用指标 API,因此它本质上是相同的。这将发布一个与您的应用程序无关的自定义指标,并且可以像我的示例中一样进行查询。
    • “第一个迫使我进入一个扁平的结构,因为我已经在一个现有的指标上”-> 这是正确的。使用指标 API,您可以发送嵌套的 JSON,但是当您查询它时,它在视觉上是扁平的,中间有句点。
    • “这意味着我可能不会得到百分位数数据等” -> 您可以即时计算百分位数:docs.newrelic.com/docs/query-your-data/…。 New Relic 不会自动计算百分位数,因此如果您不发送它们,您通常需要临时计算。但是,您可以将事件/指标转换为新指标,在这种情况下,它们会在您查询时准备就绪:docs.newrelic.com/docs/telemetry-data-platform/…
    【解决方案2】:

    根据newrelic 论坛上的this answer,这可以使用New Relic Telemetry SDK for node.js

    【讨论】:

    • 对,那里的答案建议像我建议的那样直接调用指标 API 或使用作为包装器的 SDK。我猜 SDK 比定制要好。如果更适合您的用例,还有一个事件 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多