通过 HTTP 发布时没有自定义指标

No custom metrics when posting by HTTP

这方面的文档似乎非常有限。我正在寻找通过 HTTP post 自定义指标(实际上来自物联网微控制器)。

根据 this page the appropriate endpointPOST https://api.datadoghq.com/api/v1/series?api_key=xyz,尽管这似乎更适合 post 处理大量时间序列数据而不是针对单个测量。无论如何,我已经 post 以各种方式(包括该页面上给出的示例 JSON)和接收回 HTTP 202s,这让我相信数据正在下沉某处。

但是,我帐户的 Metrics Explorer 部分没有显示任何内容。

任何人都可以提供一些方向吗?

根据所提供的信息,我看不出问题出在哪里。您能否分享用于提交的完整代码(没有 API 键)。

如果另一个例子可以帮助,这是我在 Python 中使用的例子:

import json
import requests
import time

def submit_timeseries_point(config, metricname, hostname, value, tags, type = "gauge"):
  timestamp = time.time()
  payload = { "series": [{
      "metric": metricname,
      "points": [[timestamp, value]],
      "type": type,
      "host": hostname,
      "tags": tags
  }]}
  headers = {'content-type': 'application/json'}
  url = '{}api/v1/series?api_key={}'.format(config["api_host"], config["api_key"])
  r = requests.post(url, data=json.dumps(payload), headers=headers)
  jsonResponse = r.json()

然后我通常会检查指标是否出现在指标摘要页面中。

在撰写本文时,文档有误。

当前提供的 cURL 示例是:



## Dynamic Points
# Post time-series data that can be graphed on Datadog’s dashboards.
# Template variables
export NOW="$(date +%s)"
# Curl command
curl -X POST "https://api.datadoghq.com/api/v1/series" \
-H "Content-Type: text/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
  "series": [
    {
      "metric": "system.load.1",
      "points": [
        [
          "${NOW}",
          "1234.5"
        ]
      ]
    }
  ]
}
EOF

API return202 正常,但未创建自定义指标。

points键需要是tuple(number, number)的数组,例子中是tuple(string, string)。

将其更改为:

      "points": [
        [
          ${NOW},
          1234.5
        ]

为我解决了这个问题。

我已经就文档不正确联系了他们的支持,事实上 API 端点应该 return 400 用于无效的示例负载。