返回

Datalayers 集成 OpenTelemetry

/Datalayers Team
Datalayers 集成 OpenTelemetry

关于 OpenTelemetry

OpenTelemetry 是一个开源可观测性框架,旨在帮助开发者采集和传输系统遥测数据。它统一了分布式追踪、指标与日志的采集模型,并提供标准化 API 与工具链。

OpenTelemetry 主要组件包括:

  • API:提供标准化接口,帮助应用程序生成和处理遥测数据。
  • SDK:提供具体的实现,允许开发者配置和导出数据。
  • Collector:集中式的服务,用于接收、处理和导出来自多个应用程序的遥测数据。

OpenTelemetry 提供了:

  • 统一的标准,简化了监控和观察性数据的管理。
  • 支持多种数据源和后端,允许用户灵活选择数据存储和可视化工具。
  • 允许用户根据需求定制监控方案,支持自定义指标和追踪。
  • 活跃的社区,提供丰富的文档和示例。

这使得 OpenTelemetry 成为现代数据库监控的重要工具。

在集成 OpenTelemetry 之前,让我们先了解一下即将涉及到的 OpenTelemetry Collector。

OpenTelemetry Collector

OpenTelemetry Collector 是一个可扩展的服务,用于收集、处理和转发遥测数据(如指标、日志和追踪信息)。它支持多种数据来源,可以处理不同格式的数据,并将其发送到各种后端存储系统。Collector 具备高度的可配置性,用户可以根据需求定制数据处理管道,支持数据过滤、聚合和转换。其主要优势在于统一的数据收集方式,简化了监控和观察性数据的管理。

开始集成

Datalayers 支持 InfluxDB 行协议,因此可通过 OpenTelemetry Collector 的 InfluxDB Exporter 与 Datalayers 集成。

OpenTelemetry Collector 官方提供了 CoreContrib 两个不同的版本。 其中前者只包基础的插件, 后者包含了所有的插件。Core 版本中没有 influxdb exporter 插件,而 Contrib 版本中有。也可以按需自己构建镜像, 只包含自己需要的插件, 建议生产环境采用这种方式, 参考:Building a custom collector

InfluxDB Exporter 详细文档参考:influxdb-exporter

OpenTelemetry Collector 配置示例

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。该方案可帮助团队快速建立统一的可观测数据落库与查询链路,支撑监控分析和性能诊断。

立即体验 Datalayers

高性能、云原生的时序数据存储引擎,轻松应对海量数据的写入与查询

免费试用