You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过环境REST API使用request attributes过滤Dynatrace指标

Dynatrace 环境V2 API 按Request Attribute实现指标过滤与拆分方法

前提说明

你在多维分析GUI中可用的所有Request Attribute,只要状态为已启用,都会自动注册为指标的可选维度,可直接在/metrics/query接口的查询参数中使用。

1. 按Request Attribute过滤指标

语法规则:在metricSelector参数中,给目标指标加上filter(eq(<request_attribute_key>,<目标值>))后缀即可
示例:要过滤builtin:service.request.server.duration指标中,userId这个Request Attribute等于12345的请求数据,metricSelector写法如下:
builtin:service.request.server.duration:filter(eq(userId,"12345"))
如果需要多条件过滤,可以用and拼接条件:
builtin:service.request.server.duration:filter(eq(userId,"12345") and eq(clientType,"Web"))

2. 按Request Attribute拆分指标

语法规则:在metricSelector参数中加上:splitBy(<request_attribute_key>)后缀,即可按指定Request Attribute的值拆分指标,返回每个值对应的独立时间序列
示例:按userId拆分请求耗时指标,写法如下:
builtin:service.request.server.duration:splitBy(userId)
可以同时按多个维度拆分,包括内置维度+自定义Request Attribute:
builtin:service.request.server.duration:splitBy(service.name,userId)

3. 同时使用过滤+拆分

两种语法可以组合使用,示例:
builtin:service.request.server.duration:filter(eq(clientType,"Web")):splitBy(userId):avg
上面的查询会先筛选Web端的请求,再按userId拆分,最后返回每个userId的平均耗时数据

4. 完整接口请求示例(curl)

curl -X GET "https://<你的Dynatrace租户地址>/api/v2/metrics/query?metricSelector=builtin%3Aservice.request.server.duration%3Afilter%28eq%28clientType%2C%22Web%22%29%29%3AsplitBy%28userId%29%3Aavg&from=now-1h&to=now" \
  -H "accept: application/json; charset=utf-8" \
  -H "Authorization: Api-Token <你的API Token>"

注意事项

  • 如果不知道Request Attribute对应的key,可以在GUI的「设置>请求属性」中找到对应属性的详情页,查看密钥字段
  • 调用接口的API Token需要提前配置metrics.read权限
  • 字符串类型的属性值需要用双引号包裹,数字类型可以省略引号

内容的提问来源于stack exchange,提问作者Mariano Havandjian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:24:01