
OpenTelemetry 是一个开源可观测性框架,旨在帮助开发者采集和传输系统遥测数据。它统一了分布式追踪、指标与日志的采集模型,并提供标准化 API 与工具链。
OpenTelemetry 主要组件包括:
OpenTelemetry 提供了:
这使得 OpenTelemetry 成为现代数据库监控的重要工具。
在集成 OpenTelemetry 之前,让我们先了解一下即将涉及到的 OpenTelemetry Collector。
OpenTelemetry Collector 是一个可扩展的服务,用于收集、处理和转发遥测数据(如指标、日志和追踪信息)。它支持多种数据来源,可以处理不同格式的数据,并将其发送到各种后端存储系统。Collector 具备高度的可配置性,用户可以根据需求定制数据处理管道,支持数据过滤、聚合和转换。其主要优势在于统一的数据收集方式,简化了监控和观察性数据的管理。
Datalayers 支持 InfluxDB 行协议,因此可通过 OpenTelemetry Collector 的 InfluxDB Exporter 与 Datalayers 集成。
OpenTelemetry Collector 官方提供了 Core、 Contrib 两个不同的版本。 其中前者只包基础的插件, 后者包含了所有的插件。Core 版本中没有 influxdb exporter 插件,而 Contrib 版本中有。也可以按需自己构建镜像, 只包含自己需要的插件, 建议生产环境采用这种方式, 参考:Building a custom collector
InfluxDB Exporter 详细文档参考:influxdb-exporter

receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
influxdb:
endpoint: http://172.31.104.77:8361
v1_compatibility:
enabled: true
db: demo
username: admin
password: public
service:
extensions: []
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [influxdb]
配置中 Exporter 的 endpoint 需要替换成自己的 Datalayers 地址。
由于当前 Datalayers 默认只支持 v1 版本的 InfluxDB Line Protocol,所以需要将 v1_compatibility 设置为 true。
要使用的数据库名称需要提前在 Datalayers 中创建,在 receivers 中选择一个协议,比如 otlp,和协议对应的 endpoint 配置。
从 receivers 中收到的数据会被 processor 处理,这里没有配置,所以直接发送到 exporters, 即为 Datalayers。
当 Datalayers 收到数据后,会根据配置的数据库名称,将数据写入到对应的数据库中,如果没有对应的表,则会自动创建。
如果关闭了 Datalayers 的自动创建表功能,则需要提前在 Datalayers 中创建表。
本文介绍了 Datalayers 与 OpenTelemetry 的集成路径:通过 Collector 接收 OTLP 数据,并经 InfluxDB Exporter 写入 Datalayers。该方案可帮助团队快速建立统一的可观测数据落库与查询链路,支撑监控分析和性能诊断。
高性能、云原生的时序数据存储引擎,轻松应对海量数据的写入与查询