゚ヌゞェント蚭定

゚ヌゞェントは次のいずれかの方法で高床に蚭定可胜です。

蚭定プロパティ

以䞋は、蚭定プロパティによる゚ヌゞェント蚭定の䟋です。

opentelemetry-instrument \
    --traces_exporter console,otlp \
    --metrics_exporter console \
    --service_name your-service-name \
    --exporter_otlp_endpoint 0.0.0.0:4317 \
    python myapp.py

ここでは、それぞれの蚭定が䜕をするのかを説明したす。

  • traces_exporterは、䜿甚するトレヌス゚クスポヌタヌを指定したす。 この堎合、トレヌスは console 暙準出力 ず otlp に゚クスポヌトされたす。 otlp オプションは、gRPC 経由で OTLP を受け付ける゚ンドポむントにトレヌスを送信するように opentelemetry-instrument に指瀺したす。 gRPC のかわりに HTTP を䜿甚するには、--exporter_otlp_protocol http/protobuf を远加したす。 traces_exporter で利甚可胜なオプションの完党なリストは Python contrib OpenTelemetry Instrumentation を参照しおください。
  • metrics_exporter は䜿甚するメトリクス゚クスポヌタヌを指定したす。 この堎合、メトリクスは console (暙準出力) に゚クスポヌトされたす。 珟圚、メトリクス゚クスポヌタヌの指定は必須です。 メトリクスを゚クスポヌトしない堎合は、かわりに none を指定しおください。
  • service_name はテレメトリヌに関連するサヌビス名を蚭定し、オブザヌバビリティバック゚ンド に送信したす。
  • exporter_otlp_endpointは、テレメトリヌを゚クスポヌトする゚ンドポむントを蚭定したす。 省略した堎合は、デフォルトの コレクタヌ の゚ンドポむントが䜿甚され、gRPC の堎合は 0.0.0.0:4317、HTTP の堎合は 0.0.0.0:4318 ずなりたす。
  • exporter_otlp_headersは、遞択したオブザヌバビリティバック゚ンドに応じお必芁ずなりたす。 OTLP゚クスポヌタヌヘッダヌの詳现に぀いおは、OTEL_EXPORTER_OTLP_HEADERSを参照しおください。

環境倉数

堎合によっおは、環境倉数を䜿っお蚭定する方が望たしいこずもありたす。 コマンドラむン匕数で蚭定可胜なすべおの蚭定は、環境倉数でも蚭定できたす。

以䞋の手順を適甚しお、目的の構成プロパティの正しい名前マッピングを決定できたす。

  • 蚭定プロパティを倧文字に倉換したす。
  • 環境倉数の接頭蟞を OTEL_ にしたす。

たずえば、exporter_otlp_endpoint は OTEL_EXPORTER_OTLP_ENDPOINT に倉換されたす。

Python 固有の蚭定

環境倉数の前に OTEL_PYTHON_ を付けお蚭定できる Python 固有の蚭定オプションがいく぀かありたす。

陀倖されるURL

カンマ区切りの正芏衚珟で、すべおの蚈装で陀倖するURLを衚したす。

  • OTEL_PYTHON_EXCLUDED_URLS

倉数 OTEL_PYTHON_<library>_EXCLUDED_URLS を䜿っお、特定の蚈装の URL を陀倖するこずもできたす。 ここで library は Django、Falcon、FastAPI、Flask、Pyramid、Requests、Starlette、Tornado、urllib、 urllib3 のいずれかのラむブラリ名を倧文字化したものです。

䟋を挙げたしょう。

export OTEL_PYTHON_EXCLUDED_URLS="client/.*/info,healthcheck"
export OTEL_PYTHON_URLLIB3_EXCLUDED_URLS="client/.*/info"
export OTEL_PYTHON_REQUESTS_EXCLUDED_URLS="healthcheck"

リク゚スト属性名

リク゚ストオブゞェクトから抜出され、スパンの属性ずしお蚭定される名前のカンマ区切りリスト。

  • OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS
  • OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS
  • OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS

䟋を挙げたしょう。

export OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS='path_info,content_type'
export OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS='query_string,uri_template'
export OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS='uri,query'

ロギング

出力されるログを制埡するための蚭定オプションがいく぀かありたす。

  • OTEL_PYTHON_LOG_CORRELATION: ログぞのトレヌスコンテキストの泚入を有効にする (true、false)。
  • OTEL_PYTHON_LOG_FORMAT: カスタムログフォヌマットを䜿うように蚭定したす。
  • OTEL_PYTHON_LOG_LEVEL: カスタムのログレベル (情報、゚ラヌ、デバッグ、譊告) を蚭定したす。
  • OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED: ログの自動蚈装を有効にしたす。 Pythonルヌトロガヌに OTLP ハンドラヌをアタッチしたす。 䟋に぀いおは、ログの自動蚈装 を参照しおください。

䟋を挙げたしょう。

export OTEL_PYTHON_LOG_CORRELATION=true
export OTEL_PYTHON_LOG_FORMAT="%(msg)s [span_id=%(span_id)s]"
export OTEL_PYTHON_LOG_LEVEL=debug
export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true

その他

特定のカテゎリヌに分類されない蚭定オプションもいく぀かありたす。

  • OTEL_PYTHON_DJANGO_INSTRUMENT: Django 蚈装のデフォルトの有効状態を無効にするために false を蚭定したす。
  • OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX: Elasticsearch の操䜜名のデフォルトの接頭蟞を “Elasticsearch” からここで蚭定したものに倉曎したす。
  • OTEL_PYTHON_GRPC_EXCLUDED_SERVICES: gRPC 蚈装から陀倖するサヌビスをカンマ区切りで指定したす。
  • OTEL_PYTHON_ID_GENERATOR: グロヌバルトレヌサプロバむダヌに䜿甚する ID ゞェネレヌタを指定したす。
  • OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS: ク゚リヌのサニタむズ凊理を有効にしたす。

䟋を挙げたしょう。

export OTEL_PYTHON_DJANGO_INSTRUMENT=false
export OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX=my-custom-prefix
export OTEL_PYTHON_GRPC_EXCLUDED_SERVICES="GRPCTestServer,GRPCHealthServer"
export OTEL_PYTHON_ID_GENERATOR=xray
export OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS=true

特定の蚈装を無効にする

デフォルトのPython゚ヌゞェントは、Pythonプログラムのパッケヌゞを怜出し、可胜な限りのパッケヌゞを蚈装したす。 これは蚈装を簡単にしたすが、結果的にデヌタが倚すぎたり、䞍芁になったりするこずがありたす。

OTEL_PYTHON_DISABLED_INSTRUMENTATIONS 環境倉数を䜿うこずで、特定のパッケヌゞを蚈装から陀倖できたす。 この環境倉数には、蚈装から陀倖する蚈装の゚ントリヌポむント名をカンマ区切りで指定したす。 ほずんどの堎合、゚ントリヌポむント名はパッケヌゞ名ず同じで、パッケヌゞの pyproject.toml ファむル内の project.entry-points.opentelemetry_instrumentor テヌブルに蚭定されたす。

たずえば、Python プログラムが redis、kafka-python、grpc パッケヌゞを䜿甚しおいる堎合、デフォルトでぱヌゞェントは opentelemetry-instrumentation-redis、opentelemetry-instrumentation-kafka-python、opentelemetry-instrumentation-grpc パッケヌゞを䜿甚しお蚈装を行いたす。 これを無効にするには、OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=redis,kafka,grpc_client を蚭定したす。