赞
踩
接上篇,Grafana+graphql+skywalking贯通以及
利用grafana参数生成被SW监控的指定服务延时展示
*grafana 8.4 SW 9.0 查询工具:graphql
这次我们继续沿着这条技术路线完成组合图表,即对SW的指定端点(Endpoint)的平均延时(avg)和每分钟请求数(cpm)按时间序列在一个面板(panel)上显示,如下图:
实现步骤如下:
1.1 新增query A
(其中endpoint_resp_time是查询平均延迟时间)
$service和 $endpoint分别是指定的服务(service)和端点(point)
KaTeX parse error: Expected group after '_' at position 2: {_̲_from... }和{__to:…}是grafana的时间变量
query {queryData: readMetricsValues( duration: {start: "${__from:date:YYYY-MM-DD HHmm}",end: "${__to:date:YYYY-MM-DD HHmm}", step: MINUTE} condition: { name: "endpoint_resp_time", entity: { scope: Endpoint, serviceName: "$service" endpointName: "$endpoint" normal: true } } ) { label values{ values{ id value }} } }
1.2 新增query A
(其中endpoint_cpm是查询每分钟请求数):
query {queryData: readMetricsValues( duration: {start: "${__from:date:YYYY-MM-DD HHmm}",end: "${__to:date:YYYY-MM-DD HHmm}", step: MINUTE}, condition: { name: "endpoint_cpm", entity: { scope: Endpoint, serviceName: "$service" endpointName: "$endpoint" normal: true } } ) { label values{ values{ id value }} } }
2 查询数据处理
1) 数据导入面板,对query A 和B 配置
Data path: queryData.values.values
Time path: queryData.values.id
alias: avg(query A) cpm(queryB)
图示工具用 Time series
导入后,如下图,
Avg(平均延时)是毫秒,而CPM(每分钟请求)是次数,因此需要两个纵坐标轴(y轴)来显著区分,并且延时用折线图,请求数用bar表示
3 用override解决双Y轴坐标系和不同图示
在右边新增override,
1) 选择Field with name,选cpm
2) axis 选 placement
3) Graph style 选 Style 然后选 bar
4) axis 选 label 名字 cpm
1) - 4) 完成了cpm对应的y轴和bar图示
5) 选择Field with name,选avg, 因为不需要调整折线图了,所以只需要调整Y轴的说明
6) axis 选 label 名字 microsec
结果如下
至此达成需求
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。