github.com/grafana/pyroscope@v1.18.0/examples/language-sdk-instrumentation/ruby/rideshare_rails/config/initializers/pyroscope.rb (about)

     1  require 'pyroscope/otel'
     2  
     3  app_name = ENV.fetch("PYROSCOPE_APPLICATION_NAME", "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.basic_auth_username = ENV.fetch("PYROSCOPE_BASIC_AUTH_USER", "")
    11    config.basic_auth_password = ENV.fetch("PYROSCOPE_BASIC_AUTH_PASSWORD", "")
    12  
    13    config.tags = {
    14      "region": ENV["REGION"] || "us-east",
    15    }
    16  end
    17  
    18  OpenTelemetry::SDK.configure do |c|
    19    c.service_name = app_name
    20    c.add_span_processor Pyroscope::Otel::SpanProcessor.new("#{app_name}.cpu", pyroscope_server_address)
    21    c.add_span_processor OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
    22      OpenTelemetry::Exporter::Jaeger::CollectorExporter.new(endpoint: jaeger_endpoint))
    23    c.use_all()
    24  end