追踪 API 流量
追踪(Traces)与指标(Metrics)和日志(Logs)并称为可观测性的三大支柱。追踪记录了一个请求在系统各个部分中穿梭的过程。这是一种有效的机制,可帮助开发人员和管理员监控系统性能、识别瓶颈并改善用户体验。
本教程将指导你如何使用 opentelemetry 插件创建追踪。该插件对网关进行插桩,并基于 OpenTelemetry 规范,通过 HTTP 将二进制编码的 OTLP 格式的追踪发送到 OpenTelemetry Collector。以下是一个交互式演示,为你提供实际操作介绍。
前置条件
安装 OpenTelemetry
虽然本节中的步骤使用了特定的 OpenTelemetry Collector,但你也可以使用其他发行版的 Collector,例如 SigNoz OpenTelemetry Collector。它们都能处理遥测数据,但在侧重点、功能和集成的灵活性上有所不同。
- Docker
- Kubernetes
启动一个 OpenTelemetry Collector 实例:
docker run -d --name otel-collector -p 4318:4318 otel/opentelemetry-collector-contrib
安装 cert-manager 作为依赖项:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml
当 cert-manager 准备就绪后,安装 OpenTelemetry operator:
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
安装 OpenTelemetry 实例:
kubectl apply -f - <<EOF
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
namespace: api7
name: simplest
spec:
config:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
memory_limiter:
check_interval: 1s
limit_percentage: 75
spike_limit_percentage: 15
batch:
send_batch_size: 10000
timeout: 10s
exporters:
debug: {}
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [debug]
EOF