如何基于范围过滤Datadog指标标签?当前Gauge能否实现?
解决方案
直接在Datadog图表查询里过滤(推荐)
不用修改上报代码,直接在Datadog的指标查询语句中添加范围过滤即可。针对generation_completed指标,查询写法如下:avg:generation_completed{count:0..5000} by {format, count}这里的
count:0..5000就是用来筛选标签值在0到5000之间的时间序列,哪怕你的count标签是字符串格式的数字,Datadog也能自动识别并完成范围匹配。上报前先过滤(减少无效指标)
如果不想把超出范围的指标上报到Datadog,可以在代码里加个判断逻辑,仅当count处于0-5000区间时才调用gauge上报:if 0 <= count <= 5000: datadog.statsd.gauge( metric="generation_completed", value=float((timezone.now() - search_report_task.created).total_seconds()), tags=[ "format: single", f"count:{count}", ], )这种方式能减少上报的指标数量,节省Datadog的指标配额,但缺点是超出范围的指标数据会直接丢失,后续如果需要分析这类数据就无法获取了。
调整标签为数值类型(可选优化)
虽然当前字符串格式的count:{count}已经支持范围过滤,但如果想让标签格式更规范,也可以换成Datadog的数值标签(需要确保Agent版本足够新),不过这属于可选优化,不是必须操作。
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

