第 9 章 将 OpenTelemetry SDK 与 APIcast 集成
OpenTelemetry SDK 与 APIcast 集成可启用遥测数据导出,以深入了解系统性能和行为。APIcast 依赖于 NGINX OpenTelemetry 追踪库。此集成有助于识别和解决性能问题,从而提高了系统稳定性。
先决条件
跟踪 Collector 支持 APIcast exporter 跟踪程序。
-
APIcast 中唯一实现 导出器 是 gRPC 上的 OpenTelemetry 协议(OTLP) (远程过程调用)
OTLP/gRPC。 -
APIcast 不使用 OTLP over HTTP (
OTLP/HTTP)。 -
如果现有收集器不支持 APIcast
OTLP/gRPC跟踪,则需要 OpenTelemetry Collector 作为追踪代理。
-
APIcast 中唯一实现 导出器 是 gRPC 上的 OpenTelemetry 协议(OTLP) (远程过程调用)
9.1. 用于部署 OTP 和 gRPC trace 的 Jaeger 服务示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Jaeger 1.35 或更高版本支持 trace 收集器,其中包括 APIcast exporter 功能。现在,Jaeger 可以通过原生的 OpenTelemetry Protocol (OTLP) over gRPC (Remote Procedure Calls) OTLP/gRPC 接收来自 OpenTelemetry SDK 的 trace 数据。
重要
以下示例不适用于生产环境。
部署 Jaeger 的示例
oc apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: jaeger
labels:
app: jaeger
spec:
replicas: 1
selector:
matchLabels:
app: jaeger
template:
metadata:
labels:
app: jaeger
spec:
containers:
- name: jaeger
image: jaegertracing/all-in-one:latest
env:
- name: JAEGER_DISABLED
value: "false"
- name: COLLECTOR_OTLP_ENABLED
value: "true"
imagePullPolicy: Always
ports:
- containerPort: 16686
- containerPort: 4317
apiVersion: v1
kind: Service
metadata:
name: jaeger
labels:
app: jaeger
spec:
ports:
- port: 16686
name: http
- port: 4317
name: internal
selector:
app: jaeger
EOF
Jaeger 服务实例将在端口 4317 和 3scale 管理门户(端口 16686)中侦听 OTLP/gRPC 跟踪。
追踪标头示例:
"Traceparent": "00-4335058ae8ec72f9636d8c0da08c62be-137a4beaae638572-01",