OTel エージェント

前提条件

SixthSense コレクタにデータを送信するエージェントを設定する手順として、以下の環境変数を設定する必要があります。

  • export OTEL_RESOURCE_ATTRIBUTES=service.name={Provides service Name},service.instance.id=$HOST,sixthsense.team.id={Provide teamID}
  • export OTEL_EXPORTER_OTLP_COMPRESSION=none
  • export OTEL_INSTRUMENTATION_COMMON_DB_STATEMENT_SANITIZER_ENABLED=true

楽天 SixthSense カスタマーサポートでは、SixthSense コレクターに対して以下の2つのエンドポイントを提供しています。

  • トレースを受信するためのエンドポイント
  • 管理データを受信するためのエンドポイント

OTel は、以下の2つの方法でテレメトリーデータを送信します。

  1. エージェント/SDK から直接:この場合、楽天はエージェント/SDK がテレメトリデータを SixthSense コレクタに送信するための構成を提供します。
  2. OTel コレクタ:エージェント/SDK はデータを OTel コレクタに送信し、楽天 は OTel コレクタが SixthSense コレクターにデータを送信するための構成を提供します。

OTel コレクターの構成

Otel コレクターの設定には、otel-config.yml ファイルにトレースと管理データを送信するためのエクスポーターを追加します。

otel-config.yml ファイルには、主に以下の3つの設定セクションがあります。

  • レシーバー
  • エクスポーター
  • プロセッサー
  1. エクスポーターセクションに、2つの OTLP エクスポーターを追加します。
  • トレースを送信するための GRPC エクスポーターが1つ
  • 管理データを送信するための http エクスポーターが1つ

エクスポーターを追加

exporters:
otlp/2:
endpoint: <endpoint url>
headers:
Authentication: <access token>
teamId: <team id>
compression: none
tls:
insecure: true
otlphttp:
endpoint: <endpoint url>
compression: none
headers:
Authorization: <access token>
teamId: 0cdf4e3c-96a6-4f26-8fbd-9bbf52db8fcd
  1. 以下のエクスポーターをサービスセクションに追加します。
  • トレースパイプラインの GRPC エクスポーター
  • メトリックパイプラインの http エクスポーター

サービスパイプラインのエクスポーターの追加

service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp/2]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
note

エクスポーターサービスでは、エンドポイント、プロトコル、および認証ヘッダーをもつすべてのエクスポーターが定義されます。サービスセクションでは、トレースとメトリクスを送信するために使用されるエクスポーターが定義されます。

自動インストゥルメンテーションされるエージェントの設定

OTel の主な目的は、テレメトリデータを収集し、このデータを任意のバックエンドに送信するための標準フォーマットを提供することにあります。 そのため OTel は、任意のバックエンドにデータを送信するエージェントを設定することを目的に様々な環境変数を提供しています。 これらの変数については、前提条件 を参照してください。

トレースの設定

  • export OTEL_TRACES_EXPORTER=otlp
  • export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=grpc
  • export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT={grpc endpoint}

例:

export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:15800
  • export OTEL_EXPORTER_OTLP_TRACES_HEADERS=Authentication {access token from sixthsense UI},teamId={teamID}

例:

export OTEL_EXPORTER_OTLP_TRACES_HEADERS=Authentication=eaccess token
teamId=teamID;

管理データの設定:

  • export OTEL_METRICS_EXPORTER=otlp
  • export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf
  • export OTEL_METRIC_EXPORT_INTERVAL=5000;
  • export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT={http endpoint}

例:

export OTEL_EXPORTER_OTLP_METRICS_HEADERS=Authorization Bearer {access token from sixthsense UI},teamId={teamID}

例:

export OTEL_EXPORTER_OTLP_METRICS_HEADERS=Authorization Bearer <access token,teamId=<teamID>;