Kubernetesのアプリケーション用のOpenTelemetryオペレーターを使用した自動インストルメンテーション

最終更新日: 27 年 2023 月 XNUMX 日

Kubernetesインフラストラクチャにアプリケーションをインストルメント化する場合、OpenTelemetryのKubernetesオペレーターを活用できます。 これにより、オペレーターをデプロイし、インストルメンテーションリソースを定義し、アノテーションを使用してそのインストルメンテーションをアプリケーションコンテナーに注入することにより、アプリケーションを自動的にインストルメント化できます。

  KubernetesのOpenTelemetryオペレーター OpenTelemetryのオペレーターを使用するための以下の情報とともにOpenTelemetryから。

OpenTelemetryオペレーターを使用してアプリケーションを自動的にインストルメント化する

  1. を使用してOpenTelemetryの演算子をデプロイします スタートガイド OpenTelemetryから。
  2. サンプリング設定、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"
  1. 自動インストルメンテーション用のアプリケーションを実行しているポッドにポッド注釈を適用します。 これにより、自動インストルメンテーションエージェントが初期化コンテナとして挿入され、JARがダウンロードされ、起動時にアプリケーションからアクセスできるようになります。 たとえば、次を使用してアプリケーションのデプロイメントにパッチを適用できます。
kubectl patch deployment my-deployment -p '{"spec": {"template":{"metadata":{"annotations":{"instrumentation.opentelemetry.io/inject-java":"my-instrumentation"}}}} }'
記事上で