github.com/pyroscope-io/pyroscope@v0.37.3-0.20230725203016-5f6947968bd0/examples/ruby/rideshare_rails/config/initializers/pyroscope.rb (about)

     1  require 'pyroscope/otel'
     2  
     3  app_name = ENV.fetch("PYROSCOPE_APPLICATION_NAME", "rails-ride-sharing-app")
     4  pyroscope_server_address = ENV.fetch("PYROSCOPE_SERVER_ADDRESS", "http://pyroscope:4040")
     5  jaeger_endpoint = ENV.fetch("JAEGER_ENDPOINT", "http://localhost:14268/api/traces")
     6  
     7  Pyroscope.configure do |config|
     8    config.app_name       = app_name
     9    config.server_address = pyroscope_server_address
    10    config.auth_token     = ENV.fetch("PYROSCOPE_AUTH_TOKEN", "")
    11  
    12    config.tags = {
    13      "region": ENV["REGION"] || "us-east",
    14    }
    15  end
    16  
    17  OpenTelemetry::SDK.configure do |c|
    18    c.service_name = app_name
    19    c.add_span_processor Pyroscope::Otel::SpanProcessor.new("#{app_name}.cpu", pyroscope_server_address)
    20    c.add_span_processor OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
    21      OpenTelemetry::Exporter::Jaeger::CollectorExporter.new(endpoint: jaeger_endpoint))
    22    c.use_all()
    23  end