第10章 OpenTelemetry SDK と APIcast の統合
OpenTelemetry SDK と APIcast を統合すると、システムのパフォーマンスと動作に関する洞察を提供するテレメトリーデータのエクスポートが可能になります。APIcast は、NGINX OpenTelemetry トレースライブラリー に依存しています。この統合は、パフォーマンスの問題を特定して解決するのに役立ち、システムの安定性の向上につながります。
前提条件
APIcast エクスポータートレースをサポートする Trace Collector。
-
APIcast に実装されている唯一の エクスポーター は、OpenTelemetry Protocol (OTLP) over gRPC (Remote Procedure Calls)
OTLP/gRPCです。 -
OTLP over HTTP (
OTLP/HTTP) は APIcast では使用されていません。 -
既存のコレクターが APIcast
OTLP/gRPCトレースをサポートしていない場合は、トレースプロキシーとして OpenTelemetry Collector が必要です。
-
APIcast に実装されている唯一の エクスポーター は、OpenTelemetry Protocol (OTLP) over gRPC (Remote Procedure Calls)
10.1. OTP および gRPC トレースをリッスンする Jaeger サービスの例 リンクのコピーリンクがクリップボードにコピーされました!
Jaeger 1.35 以降は、APIcast エクスポーター機能を含むトレースコレクターをサポートします。その結果、Jaeger は、gRPC (リモートプロシージャコール) OTLP/gRPC を介してネイティブ OpenTelemetry プロトコル (OTLP) の OpenTelemetry SDK からトレースデータを受信できるようになりました。
次の例は実稼働環境での使用には適していません。
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",