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

警告: 手動インストゥルメンテーション方式は、フレームワークのサポートがない場合にのみ使用します。
  1. 以下のパッケージを既存の Gemfile に追加します。
    gem 'opentelemetry-sdk'
    gem 'opentelemetry-exporter-otlp'
  2. 次の行を追加して、スパンを手動で作成します。
    たとえば、Ruby スクリプトまたはサポートされていないフレームワークをインストゥルメント化するスパンを作成できます。
    require 'opentelemetry/sdk'
    require 'opentelemetry/exporter/otlp'
    
    OpenTelemetry::SDK.configure
    
    def hello_world
      tracer_provider = OpenTelemetry.tracer_provider
      tracer = tracer_provider.tracer('hello world')
      tracer.in_span("hello_world", kind: :server) do |span|
        puts "Hello all"
        # Do something... expensive/simple task that you want to instrument
      end
      tracer_provider.shutdown
    end
    
    hello_world
  3. OpenTelemetry Collector がリッスンする OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定します。
    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 アプリケーションを起動します。