有分析程序步耗时的工具么?
发布于 1 个月前 作者 cool-firer 647 次浏览 来自 问答

有一个场景:一个请求过来后,后端业务要分很多步处理(包括再向其他服务发请求),想要分析每一步的耗时,找到比较耗时的步聚。 想到可以用类似打点的方式,统计每个请求里每个步聚的耗时。自己做的话,数据分析、展示又是个问题。 有什么工具、插件可以用么?像prometheus这些的。

9 回复

其实就是个apm工具,你可以接下 skywalking 和 elastic-apm, 比较建议这个 elastic-apm, 完成度很高,开箱即用基本支持node.js栈所有主流包

@zurmokeeper 好的,我去看看,感谢

看了下,skywalking更轻量,但文档是真的不详细

Open Telemetry , 简称 otel

开发测试阶段,可以起个 jaeger-all-in-on 当 otel 的采集展示端 docker-compose.yml

# docker run -p 6831:6831/udp -p 6832:6832/udp -p 16686:16686 -p 4317:4317 -p 4318:4318 -p 5778:5778 -p 14250:14250 -p 14268:14268 jaegertracing/all-in-one --log-level=debug
# http://localhost:16686/search

services:
  jaeger:
    image: jaegertracing/all-in-one:1.57
    container_name: jaeger-all-in-one
    restart: always
    environment:
      TZ: 'Asia/Chongqing'
      COLLECTOR_OTLP_ENABLED: 'true'
    ports:
      - 6831:6831/udp
      - 6832:6832/udp
      - 5778:5778
      - 4317:4317
      - 4318:4318
      - 14250:14250
      - 14268:14268
      - 14269:14269
      - 9411:9411
      - 16686:16686
    tmpfs:
      - /tmp
    shm_size: 2G

IMG1 20.png

IMG2 21.png

======== IMG3 22.png

可以试试cpuprofile,里面每个方法消耗的时间一清二楚

@waitingsong 看起来不错!我现在接了个elastic apm的,有空试试你说的这个

@cool-firer cpuprofile 性能测试主要用于开发测试阶段。otel 是分布式追踪、日志记录和指标收集提工具,既可用于开发测试也可以运行在生产环境做实时、持续监测。

回到顶部