首页 > 解决方案 > 如何在 Datadog Dashboard Widget 中显示正确的货币价值

问题描述

我在 Springboot Java App 中创建了一个自定义 Datadog 指标,并打开了管理端点。

我正在使用双精度值(与订单的货币价值相关)增加 MeterRegistry 计数器当我使用 /management/metrics 端点时,我可以看到存储的正确值。

但是,当我在 Datadog 仪表板中创建小部件时,它仅显示数据的小数点前值。例如,订单值为 61.67,在 Datadog 中显示为 61,因此它甚至没有进行任何舍入!

有没有办法在 Datadog Dashboard 小部件中显示计数器的原始值?

提前致谢

标签: javametricsdatadog

解决方案


  1. 首先,我将使用API检查 Datadog 中存储了哪些指标
  2. 其次,我会检查您发送的指标类型https://app.datadoghq.com/metric/summary?metric=<my-metric>不确定计数器类型是否可以具有十进制值,也许仪表会更合适。
  3. 最后,要显示一个值,您可以使用查询值小部件,例如下面片段中的小部件。确保:
    • 取最后一个值(这里是聚合器:last)
    • 选择感兴趣的小数位数(此处精度:3)
    • 如果您从多个地方(即多个标签)收到此指标,请选择正确的空间聚合(此处为 avg:my_metric{*})
{
  "viz": "query_value",
  "requests": [
    {
      "q": "avg:nginx.logs.request.count{*}.as_count()",
      "type": null,
      "style": {
        "palette": "dog_classic",
        "type": "solid",
        "width": "normal"
      },
      "aggregator": "last",
      "conditional_formats": [
        {
          "comparator": ">",
          "palette": "white_on_red",
          "value": null
        },
        {
          "comparator": ">=",
          "palette": "white_on_yellow",
          "value": null
        },
        {
          "comparator": "<",
          "palette": "white_on_green",
          "value": null
        }
      ]
    }
  ],
  "autoscale": true,
  "precision": "3"
}

旁注:我也将其用于 Kafka(仅作为参考),但在您的情况下不需要它:

ENTRYPOINT ["java","-javaagent:dd-java-agent.jar","-Ddd.agent.host=localhost","-Ddd.jmxfetch.statsd.host=localhost","-Ddd.trace.global.tags=env:kafka","-Ddd.agent.port=8126","-Ddd.service.name=KafkaProducer","-Ddd.logs.injection=true","-Ddd.trace.analytics.enabled=true","-Ddd.kafka.analytics.enabled=true","-Ddd.servlet.analytics.enabled=true","-Ddd.spring-web.analytics.enabled=true","-jar","target/KafkaConsumer-0.0.1-SNAPSHOT.jar"]

推荐阅读