Passer au contenu principal
Assurez-vous d’installer l’AppSignal collector avant de poursuivre avec ces instructions.

Installer les gems OpenTelemetry

Utilisez Bundler pour ajouter le SDK OpenTelemetry, l’exportateur OTLP et les paquets d’instrumentation au Gemfile de votre application :
bundle add opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation-all
Le paquet opentelemetry-instrumentation-all installe des instrumentations pour la plupart des frameworks et bibliothèques. Vous pouvez consulter une liste des frameworks et bibliothèques instrumentés dans les dépendances du paquet sur RubyGems. Vous pouvez également trouver des instrumentations supplémentaires pour les frameworks et bibliothèques dans le registre OpenTelemetry.

Configurer OpenTelemetry dans votre application

Ajoutez ce fichier appsignal.rb à votre application avec l’exportateur OpenTelemetry et la configuration AppSignal. Ensuite, requérez ce fichier dans votre application. Pour les applications Rails, ajoutez-le à un initialiseur Rails comme config/initializers/appsignal.rb. Veillez à mettre à jour les valeurs ci-dessous avec le nom de votre application AppSignal, l’environnement et la clé Push API, et à remplacer l’endpoint de l’exportateur par l’adresse de votre AppSignal collector si nécessaire.
require "socket"
require "opentelemetry/sdk"
require "opentelemetry/instrumentation/all"
require "opentelemetry-exporter-otlp"

# Replace these values with your AppSignal application name, environment
# and push API key. These are used by the resource attributes configuration below.
name = "My app"
push_api_key = "0000-0000-0000-0000"

environment = defined?(Rails) ? Rails.env.to_s : "development"

# Set the name of the service that is being monitored. A common choice is the
# name of the framework used. This is used to group traces and metrics in AppSignal.
service_name = "My service name"

# Replace `http://localhost:8099` with the address of your AppSignal collector
# if it's running on another 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

Testez l’application !

Maintenant que tous les composants sont connectés, démarrez votre application et vérifiez si des données arrivent dans AppSignal. Consultez en particulier les pages « Errors > Issue list » et « Performance > Traces ». Si après avoir suivi nos instructions d’installation vous ne voyez toujours pas de données dans AppSignal, faites-le-nous savoir et nous vous aiderons à finaliser votre installation OpenTelemetry !