grafana结合Skywalking生成组合图表

接上篇,Grafana+graphql+skywalking贯通以及
利用grafana参数生成被SW监控的指定服务延时展示
*grafana 8.4 SW 9.0 查询工具:graphql
这次我们继续沿着这条技术路线完成组合图表,即对SW的指定端点(Endpoint)的平均延时(avg)和每分钟请求数(cpm)按时间序列在一个面板(panel)上显示,如下图:
grafana结合Skywalking生成组合图表_第1张图片
实现步骤如下:
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
导入后,如下图,
grafana结合Skywalking生成组合图表_第2张图片
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
结果如下
grafana结合Skywalking生成组合图表_第3张图片

至此达成需求

你可能感兴趣的:(grafana,skywalking)