本文为您介绍 Apache APISIX opentelemetry
插件概念以及如何如何开启和部署 opentelemetry
插件。
背景信息
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。作为 API 网关,Apache APISIX 不仅拥有众多实用的插件,而且支持插件动态变更和热插拔。
OpenTelemetry 是一个开源的遥测数据采集和处理系统,它不仅提供了各种 SDK 用于应用端遥测数据的收集和上报,以及数据收集端用于数据接收、加工和导出,还支持通过配置导出到任意一个或者多个已经适配 OpenTelemetry Exporter 的后端,比如 Jaeger、Zipkin、OpenCensus 等。您可以在 opentelemetry collector contrib 库中查看已经适配 OpenTelemetry Collector 的插件列表。
插件介绍
Apache APISIX opentelemetry
插件是基于 OpenTelemetry 原生标准(OTLP/HTTP)实现的 Tracing 数据采集,并通过 HTTP 协议发送至 OpenTelemetry Collector。该功能将在 Apache APISIX 2.13.0 版本中上线支持。
由于 OpenTelemetry 的 Agent/SDK 与后端实现无关,当应用集成了 OpenTelemetry 的 Agent/SDK 之后,用户能够在应用侧无感知的情况下轻松地、自由地变更可观测性后端服务,比如从 Zipkin 切换成 Jaeger。
opentelemetry
插件在 Apache APISIX 中集成了 OpenTelemetry Agent/SDK,可以实现采集被追踪的请求生成 trace 后转发到 OpenTelemetry Collector。
opentelemetry
插件位于上图中的 Agent 侧,但目前仅支持 trace
协议,还不支持 OpenTelemetry 的 logs
和 metrics
协议。
如何使用
启用插件
您需要在 conf/config.yaml
配置文件中启用 opentelemetry
插件并修改 collector
配置。
假设您已经完成 OpenTelemetry Collector 的部署,并且启用了 OTLP HTTP Receiver。
如果您未完成部署,可参考下一节的场景示例部分,完成 OpenTelemetry Collector 的部署。
其中 OTLP HTTP Receiver 的默认端口为4318
,collector
的地址为 OpenTelemetry Collector 的 HTTP Receiver 地址,相关字段可参考 Apache APISIX 官方文档。
plugins
... # 已经启用的其它插件
- opentelemetry
plugin_attr:
...
opentelemetry:
trace_id_source: x-request-id
resource:
service.name: APISIX
collector:
address: 127.0.