dremio opentelemetry监控试用
标准的系统监控应该包含metrics,trace,log 这个三大类,metrics 部分,包含了一个promethues 的扩展,当然官方也支持jmx以及slf4j的
opentelemetry 是一个直接内置的trace 功能,很不错,以下是一个简单的测试
环境准备
dremio 默认就支持opentelemetry trace,对于opentelemetry collector 我使用了开源的signoz,相对比较简单
- signoz 启动
可以使用官方的,或者我修改的一个(不保证更新,我主要删除了内置的一些测试服务)
官方模式
git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/
docker compose -f docker/clickhouse-setup/docker-compose.yaml up -d
- dremio 配置
dremio-telemetry.yaml
tracing:
type: opentelemetry
serviceName: mydremio
samplerType: on
collectorEndpoint: http://172.16.8.210:4317 # 修改为自己的ip,实际上就是signoz 暴露的ip
# samplerEndpoint: http://localhost:4317
logSpans: true
propagator: jaeger
Dockerfile (直接使用官方的,主要是添加了配置)
FROM dremio/dremio-oss:24.3.0
COPY dremio-telemetry.yaml /opt/dremio/conf/dremio-telemetry.yaml
效果
- 查看信息
打开signoz 的http://localhost:3301 地址
tracing 效果
说明
以上是一个简单的测试,实际上基于OpenTelemetry 的tracing 是一个很不错的选择,值得尝试下
参考资料
https://github.com/rongfengliang/dremio_opentelemetry_signoz_learning
https://www.cnblogs.com/rongfengliang/p/14407749.html
https://github.com/dremio-hub/dremio-prometheus-exporter
https://github.com/locustio/locust
https://signoz.io/docs/install/docker/
services/telemetry-api/src/main/java/com/dremio/telemetry/api/Telemetry.java
services/telemetry-impl/src/main/java/com/dremio/telemetry/impl/config/tracing/OpenTelemetryConfigurator.java