能否在Datadog仪表盘中添加带动态参数的自定义链接组件?
能否在Datadog中实现基于应用版本和名称生成自定义GitHub对比链接?
可以实现,具体操作步骤和要点如下:
先确认应用名称和各环境版本已上报到Datadog
不管是通过Datadog Agent给服务打app.name、app.version、env这类自定义标签,还是在应用代码里用DogStatsD上报带这些标签的指标,只要能在Datadog中通过标签或指标检索到对应值就行,核心是要区分不同环境的版本(比如用env:prod、env:staging标签)。利用仪表盘的自定义链接组件+Datadog模板语法生成动态链接
在仪表盘添加「自定义链接」组件后,通过Datadog的模板变量和内置字符串函数来构建目标链接:- 先配置模板变量,比如
$app用来选择目标应用,$env_source和$env_target用来选择要对比的两个环境; - 用
query_value函数拉取对应环境的版本号,再通过substring函数处理版本格式(比如去掉版本号后的构建后缀),最终链接模板可以写成:
这里的https://github.com/{{$app}}/compare/{{substring(query_value("avg:app.version{env:$env_source,app:$app}", "last"), 0, 5)}}...{{substring(query_value("avg:app.version{env:$env_target,app:$app}", "last"), 0, 5)}}substring参数(起始/结束索引)需要根据你的实际版本格式调整,比如如果版本是v2.4.1-rc1,要截取到v2.4.1就把结束索引设为6。
- 先配置模板变量,比如
额外注意点
- 版本号格式要尽量统一,不然
substring的截取结果会出错; - 如果是多服务批量配置,可以用仪表盘的动态分组功能,让每个服务的链接自动匹配自身的名称和版本数据;
- 测试链接时可以切换不同的应用和环境变量,确认生成的GitHub对比链接是否正确。
- 版本号格式要尽量统一,不然
内容的提问来源于stack exchange,提问作者Kamila
相关产品推荐
相关产品推荐

