基于Skywalking开发分布式监控(三)

回顾上期的问题,当我们搭建完成Skywalking的搭建,顺利完成应用监控之后,就会面临一类问题,怎么利用获取的监控数据,包括三方面:
1 应用的Trace和SW收集Service/Endpoint不一定完全一致,可能定位不到,更无法在UI展示
2 按Trace-Span进行下钻分析,SW并不支持,更别说,对于按Trace不同Span特征(可以理解为一项业务在不同阶段的特征数据)进行分析
3 业务本身要求监控展示统一技术标准

好在SkyWalking提供了GraphQL数据接口,并配合OAL观察查询语句,使得用户可以直接通过简单的GraphQL查询语言获得数据,
其原理和提供原生查询介绍可以参考官方文档:SW 官方文档
或者网络材料Skywalking-11:Skywalking查询协议——案例分析

我们监控使用grafana8, 因此选择 ,在grafana8通过GraphQL数据接口,接入SW监控数据,接入的过程参考
Linux环境安装开发grafana插件
以及grafana结合Skywalking追踪Trace

但是grafana本身的数据处理能力太弱,于是可以选择在grafana和Skywalking之间增加一个java开发的数据处理模块TraceProcessor,通过TraceProcessor获取SW的trace和Span数据,然后进行加工处理后在ES进行持久化,然后由grafana直接展示ES的数据。

TraceProcessor的主要架构是基于多线程多任务的定时任务,定时获取,计算Trace数据,并支持Graphql,ES接口,以及按配置定制任务的能力,架构如下
在这里插入图片描述
我们先从配置工具 config tools入手,希望通过配置文件完成配置数据源(graqhQL)和持久化工具(ES)以及各类定时任务的配置关联,运行时通过反射方式加载各个操作类和定时任务(参考java以SSL方式连ES),以满足敏捷灵活的开发需求

{
   
   
 "datasource" : {
   
   
    "name": "datasource.GraphQLServiceImp",
    "para": {
   
   
        "url":"http://127.0.0.1:8090/graphql"       
    }
 },
 "targetdb" : {
   
   
    "name": "target.EsServiceImp",
    "para": {
   
   
        "url":"http://127.0.0.1:9200"
    }
 },
 "tasks" : [
    {
   
   
      "name": "task.QueryTraces",
      "para" : {
   
   
          "serviceName" : "TradeService",
          "endpointName" : "OrderSend",
          "businessTag" : {
   
    "key": "businessTag", "value": "Auto"},
          "tags" : {
   
   },
          "traces_index" :  "traces_-"
      },
      "switch" : "on",
      "interval" : "60"
    },
  ...
  {
   
   
     "name": "task.Caculator",
     "para" : {
   
   
       "businessTags" :[{
   
    "key": "businessTag", "value": "Auto"},{
   
   "key": "systemFlag","value": "RealTime"}]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhyuli

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

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

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

打赏作者

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

抵扣说明:

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

余额充值