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