自動インストルメンテーション

opentelemetry-sdk および opentelemetry-instrumentation-all パッケージは、最小限の手作業でトレースやスパンを自動的に取り込みます。

サポートされているフレームワークのリストについては、サポートされているフレームワークを参照してください。

次の手順は、単純な Ruby On Rails アプリケーションをインストゥルメント化する例です。

  1. 以下のパッケージを既存の Gemfile に追加します。Gemfile
    gem 'opentelemetry-sdk'
    gem 'opentelemetry-exporter-otlp'
    gem 'opentelemetry-instrumentation-all'
  2. <project>/config/initializers/opentelemetry.rbOpenTelemetry を初期化するように Ruby アプリケーションを設定します。
    # config/initializers/opentelemetry.rb
    require 'opentelemetry/sdk'
    require 'opentelemetry/exporter/otlp'
    require 'opentelemetry/instrumentation/all'
    
    OpenTelemetry::SDK.configure do |c|
      c.resource = OpenTelemetry::SDK::Resources::Resource.create({
        OpenTelemetry::SemanticConventions::Resource::SERVICE_NAMESPACE => '<YOUR_SERVICE_NAMESPACE>', # corresponds to Appd controller Application name
        OpenTelemetry::SemanticConventions::Resource::SERVICE_NAME => '<YOUR_SERVICE_NAME>' # corresponds to Appd controller Tier name
      })
      c.use_all() # enables all instrumentation!
    
    end
  3. OpenTelemetry Collector がリッスンする OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定して、アプリケーションが OpenTelemetry Collector にトレースを報告するように構成します。
    export OTEL_EXPORTER_OTLP_ENDPOINT=http://0.0.0.0:4318
    注:

    0.0.0.0OpenTelemetry Collector HOST であり、4318 は OpenTelemetry Collector PORT です。使用可能なエクスポータの詳細については、Ruby エクスポータを参照してください。

  4. 新しく追加した Gem を Gemfile にインストールします。
    bundle install
  5. Ruby アプリケーションを起動します。