有分析程序步耗时的工具么?
有一个场景:一个请求过来后,后端业务要分很多步处理(包括再向其他服务发请求),想要分析每一步的耗时,找到比较耗时的步聚。 想到可以用类似打点的方式,统计每个请求里每个步聚的耗时。自己做的话,数据分析、展示又是个问题。 有什么工具、插件可以用么?像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
IMG2
======== IMG3
可以试试cpuprofile,里面每个方法消耗的时间一清二楚
@waitingsong 看起来不错!我现在接了个elastic apm的,有空试试你说的这个
@cool-firer cpuprofile 性能测试主要用于开发测试阶段。otel 是分布式追踪、日志记录和指标收集提工具,既可用于开发测试也可以运行在生产环境做实时、持续监测。