微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跟踪状态代码响应以便可以在时间序列图表上可视化未来的未知代码的好做法是什么?

如何解决跟踪状态代码响应以便可以在时间序列图表上可视化未来的未知代码的好做法是什么?

假设我有一个 API 客户端,我跟踪我得到的响应代码,如下所示: “some_api_client.#{response.code}” 产生任意数量的指标,例如:some_api_client.200、some_api_client.400、some_api_client.123456whatever

如何构建面向未来的时间序列图表。也就是说,我不想在创建时添加所有潜在的代码。我想添加一个通配符。我今天要做的最好的过程是猜测显示了哪些代码并定期进入图表并寻找要添加的新指标。

该过程会导致代码丢失。例如有一天会弹出一个代码,但我们没有看到/注意到它,因为我们没有添加指标。

这个问题的答案将明确解决这种情况——新的、未知的代码会在他们认为适合展示自己的时候自动显示在图表中。

解决方法

使用 Datadog,从标签中分离指标名称是实现此目的的好方法。

在您的示例中,状态代码嵌入在指标名称中,这正是您所描述的问题 - 您必须提前知道指标名称才能添加到仪表板。

更改发出的指标以将响应代码作为标签放置将有助于包含所有可能的值,然后您可以将其转换为更清晰的仪表板查询。

例如,如果这是从 Ruby dogstatsd client

发出的
statsd.increment('some_api_client.response',tags: ['response_code:#{response.code}'])

那么仪表板中的指标查询将如下所示:

...
"q": "sum:some_api_client.response{*} by {response_code}.as_count()","type": "bars",...

然后将生成所有响应的堆叠图,由response_code堆叠。将自动包含新的 response_code 值!

使用最近发布的 Wildcard filter 功能,您可以将查询范围更改为按组划分的一组特定响应代码,例如,如果您想在单个图表中查看所有 4xx 响应代码,您可以可以为那些代码创建另一个带有标记范围的图:

sum:some_api_client.response{4*} by {response_code}.as_count()

注意查询中的 {4*} 范围。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。