require "socket"
require "opentelemetry/sdk"
require "opentelemetry/instrumentation/all"
require "opentelemetry-exporter-otlp"
# Substitua estes valores pelo nome da sua aplicação no AppSignal, ambiente
# e push API key. Estes são usados pela configuração de atributos de recurso abaixo.
name = "My app"
push_api_key = "0000-0000-0000-0000"
environment = defined?(Rails) ? Rails.env.to_s : "development"
# Defina o nome do serviço que está sendo monitorado. Uma escolha comum é o
# nome do framework usado. Isso é usado para agrupar traces e métricas no AppSignal.
service_name = "My service name"
# Substitua `http://localhost:8099` pelo endereço do seu AppSignal collector
# caso ele esteja rodando em outro host.
endpoint = "http://localhost:8099/v1/traces"
revision = `git rev-parse --short HEAD`.strip
OpenTelemetry::SDK.configure do |c|
c.resource = OpenTelemetry::SDK::Resources::Resource.create(
"appsignal.config.name" => name,
"appsignal.config.environment" => environment,
"appsignal.config.push_api_key" => push_api_key,
"appsignal.config.revision" => revision,
"appsignal.config.language_integration" => "ruby",
"appsignal.config.app_path" => Dir.pwd,
"host.name" => Socket.gethostname,
)
c.service_name = service_name
c.add_span_processor(
OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
OpenTelemetry::Exporter::OTLP::Exporter.new(
:endpoint => endpoint,
:compression => "none"
)
)
)
c.use_all
end