Pular para o conteúdo principal
Certifique-se de instalar o AppSignal collector antes de prosseguir com estas instruções.

Instale as gems do OpenTelemetry

Use o Bundler para adicionar o SDK do OpenTelemetry, o exporter OTLP e os pacotes de instrumentação ao Gemfile da sua aplicação:
bundle add opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation-all
O pacote opentelemetry-instrumentation-all instala instrumentações para a maioria dos frameworks e bibliotecas. Você pode conferir uma lista de frameworks e bibliotecas instrumentadas nas dependências do pacote no RubyGems. Você também pode encontrar instrumentações adicionais para frameworks e bibliotecas no Registro do OpenTelemetry.

Configure o OpenTelemetry na sua aplicação

Adicione este arquivo appsignal.rb à sua aplicação com o exporter do OpenTelemetry e a configuração do AppSignal. Em seguida, faça o require desse arquivo na sua aplicação. Para aplicações Rails, adicione-o a um initializer do Rails como config/initializers/appsignal.rb. Certifique-se de atualizar os valores abaixo com o nome da sua aplicação no AppSignal, ambiente e push API key, e de substituir o endpoint do exporter pelo endereço do seu AppSignal collector se necessário.
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

Teste o app!

Agora que todos os componentes estão conectados, inicie seu app e teste se você vê os dados chegando no AppSignal. Verifique especificamente as páginas “Errors > Issue list” e “Performance > Traces”. Se, depois de seguir nossas instruções de instalação, você ainda não vir dados no AppSignal, avise-nos e te ajudaremos a finalizar a instalação do OpenTelemetry!