skywalking根据文本信息找到对应的请求

在定位问题的时候,有时候需要找到导致问题出现的那个请求,比如下单。但是只有订单号,怎么去找呢? 目前我们一般是根据下单时间,然后再根据时间去找对应的请求,但是请求很多,需要一个一个打开请求内容去定位该订单的下单请求。 本文使用脚本的方式方便快速定位到对应的请求

根据时间和接口名称获取批量请求

  • 获取批量请求
curl 'http://sky.fy.qq.com/graphql' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  --data-raw '{"query":"query queryTraces($condition: TraceQueryCondition) {\n  traces: queryBasicTraces(condition: $condition) {\n    data: traces {\n      key: segmentId\n      endpointNames\n      duration\n      start\n      isError\n      traceIds\n    }\n    total\n  }}","variables":{"condition":{"queryDuration":{"start":"2021-10-22 1708","end":"2021-10-22 1723","step":"MINUTE"},"traceState":"ALL","paging":{"pageNum":1,"pageSize":15,"needTotal":true},"queryOrder":"BY_START_TIME","endpointName":"/userc/v1/user/address/addAddress"}}}' > sky_response.txt
  • 从结果中提取traceId
jq '.data.traces.data[] | .traceIds[]' sky_response.txt  | sed 's/"//g' > sky_trace.txt

获取请求链路信息

  • 获取单个请求的详细信息
curl -X POST 'http://sky.fy.qq.com/graphql' \
-H 'Content-Type: application/json' \
--data-raw '{
    "query": "query queryTrace($traceId: ID\u0021) {trace: queryTrace(traceId: $traceId) {spans {traceId tags {key value}}}}",
    "variables": {
        "traceId": "04557c8a528142bbaf0f996ac1250484.508.16348946392203935"
    }
}' > one_trace.txt
  • 过滤详细信息
grep orderNo one_trace.txt
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,247评论 19 139
  • 1. 什么是调用链 一个业务功能可能需要多个服务协作才能实现,一个请求到达服务A,服务A需要依赖服务B,服务B又依...
    Zal哥哥阅读 3,073评论 0 1
  • 1. 什么是调用链 一个业务功能可能需要多个服务协作才能实现,一个请求到达服务A,服务A需要依赖服务B,服务B又依...
    匆匆岁月阅读 4,829评论 0 7
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,216评论 2 89
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,495评论 0 4

友情链接更多精彩内容