Kubernetesのアプリケーション用のOpenTelemetryオペレーターを使用した自動インストルメンテーション
最終更新日: 07 年 2024 月 XNUMX 日Kubernetesインフラストラクチャにアプリケーションをインストルメント化する場合、OpenTelemetryのKubernetesオペレーターを活用できます。 これにより、オペレーターをデプロイし、インストルメンテーションリソースを定義し、アノテーションを使用してそのインストルメンテーションをアプリケーションコンテナーに注入することにより、アプリケーションを自動的にインストルメント化できます。
KubernetesのOpenTelemetryオペレーター OpenTelemetryのオペレーターを使用するための以下の情報とともにOpenTelemetryから。
OpenTelemetryオペレーターを使用してアプリケーションを自動的にインストルメント化する
- を使用してOpenTelemetryの演算子をデプロイします スタートガイド OpenTelemetryから。
- サンプリング設定、LM OTEL Collectorエンドポイント、およびリソース属性を提供してカスタムインストルメンテーションリソースを定義し、トレースをLogicMonitorの適切な監視対象インフラストラクチャにマップして、次のようなカスタムインストルメンテーションリソースを作成します。
kind: Instrumentation
metadata:
name: my-instrumentation
spec:
env:
- name: OTEL_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
exporter:
endpoint: http://mylmotelcollector.endpoint/
resource:
addK8sUIDAttributes: true
resourceAttributes:
{ "resource.type" : "kubernetes-pod", "ip" : "$(OTEL_POD_ID)" }
propagators:
- tracecontext
- baggage
- b3
sampler:
type: parentbased_traceidratio
argument: "0.25"
- 自動インストルメンテーション用のアプリケーションを実行しているポッドにポッド注釈を適用します。 これにより、自動インストルメンテーションエージェントが初期化コンテナとして挿入され、JARがダウンロードされ、起動時にアプリケーションからアクセスできるようになります。 たとえば、次を使用してアプリケーションのデプロイメントにパッチを適用できます。
kubectl patch deployment my-deployment -p '{"spec": {"template":{"metadata":{"annotations":{"instrumentation.opentelemetry.io/inject-java":"my-instrumentation"}}}} }'