利用grafana参数生成被SW监控的指定服务延时展示

接上一篇,我们继续讨论基于grafana整合并展示skywalking(简称SW)提供的监控项,样例为,对指定服务(Service)的请求处理延时(response time)进行展示,并显示历史数据和实时数据的能力。
可分解为以下具体需求
1) 获取所有服务(Services)名,并显示为下拉列表
2) 对用户指定的Service的服务名,获得Service Id
3) 根据指定指定服务(Service Id)和时间范围(from… to…)获得请求延时数据,并以时间序列图展示
dashboard前期准备和基本变量添加不赘述,可参考https://skywalking.apache.org/zh/2023-03-17-build-grafana-dashboards-for-apache-skywalking-native-promql-support/

  1. 添加变量Service 类型query ,dataSource是已配置的Graphql数据源,查询语句(Query)如下,其中变量KaTeX parse error: Expected group after '_' at position 1: _̲_from和__to是grafana提供的全局变量(global variable)参考官方手册(https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#__from-and-__to):
    query {queryData:
    getAllServices(
    duration:{start: “KaTeX parse error: Expected group after '_' at position 1: _̲_from",end: "__to”, step: MINUTE}
    ) {
    name
    }
    }
    Query对应Data path就是语句中的queryData
    regex 是按正则表达式对结果筛选,这里用的最简单,/服务名1|服务名2/过滤出需要的服务
    在这里插入图片描述

  2. 编辑panel
    导入查询获得数据,并经过一定的加工后,以适当的方式展示
    查询语句的设计可以参考https://juejin.cn/post/7014328464924737572
    具体如下:
    query {queryData:
    readMetricsValues(
    duration: {start: “KaTeX parse error: Expected group after '_' at position 2: {_̲_from:date:YYYY…{__to📅YYYY-MM-DD HHmm}”, step: MINUTE},
    condition: {
    name: “service_resp_time”,
    entity: {
    scope: Service,
    serviceName: “$service”
    normal: true
    }
    }
    ) {
    label values{ values{ id value }}
    }
    }
    简单说明:
    readMetricsValues是SW提供的按时间序列查询指标的函数,service_resp_time是SW提供的oal查询指标,查服务执行的延时。
    KaTeX parse error: Expected group after '_' at position 2: {_̲_from:date:YYYY…__from按指定的time format转换,同样可以参照上文的链接, ${_to📅YYYY-MM-DD HHmm}同理
    $service上文设置的变量,含义是根据用户选择的服务查询!
    在这里插入图片描述
    然后要做的是把结果转换成grafana可读的时间序列,注意如果不转换结果是这样的,这样的格式是无法生成时间序列的
    | label |value_0 | value_1|…
    | |service_resp_time_时间戳
    id.0|XXX |service_resp_time_时间戳id.1|XXX|…
    根据查询返回值{label values{ values{ id value }}}的结构,知
    1) Data path: 填 queryData.values.values 就可以获得
    id value
    service_resp_time_时间戳
    id.0|XXX|
    service_resp_time_时间戳
    …_id.1|XXX|.

  1. 需要把id转成时间戳
    在这里插入图片描述
    点击Transform 选择convert field type
    安图操作即可

然后apply 并保存dashboard后成功,时间序列可以生成
在这里插入图片描述
可以选择右上角时间范围,看不同区间的时序图

后续我们继续探索…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhyuli

您的鼓励是对我付出努力一种赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值