Zum Hauptinhalt springen
Stellen Sie sicher, dass Sie den AppSignal Collector installieren, bevor Sie mit diesen Anweisungen fortfahren.

Die OpenTelemetry-Gems installieren

Verwenden Sie Bundler, um das OpenTelemetry-SDK, den OTLP-Exporter und die Instrumentierungspakete zum Gemfile Ihrer Anwendung hinzuzufügen:
bundle add opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation-all
Das Paket opentelemetry-instrumentation-all installiert Instrumentierungen für die meisten Frameworks und Bibliotheken. Sie können sich eine Liste der instrumentierten Frameworks und Bibliotheken in den Abhängigkeiten des Pakets auf RubyGems ansehen. Sie können auch zusätzliche Instrumentierungen für Frameworks und Bibliotheken im OpenTelemetry Registry finden.

OpenTelemetry in Ihrer Anwendung konfigurieren

Fügen Sie diese Datei appsignal.rb mit der OpenTelemetry-Exporter- und AppSignal-Konfiguration zu Ihrer Anwendung hinzu. Binden Sie diese Datei dann in Ihrer Anwendung mit require ein. Für Rails-Anwendungen fügen Sie sie einem Rails-Initialisierer wie config/initializers/appsignal.rb hinzu. Stellen Sie sicher, dass Sie die folgenden Werte mit Ihrem AppSignal-Anwendungsnamen, der Umgebung und dem Push API-Schlüssel aktualisieren und den Exporter-Endpunkt durch die Adresse Ihres AppSignal Collectors ersetzen, falls erforderlich.
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

Die App testen!

Nachdem nun alle Komponenten verbunden sind, starten Sie Ihre App und testen Sie, ob Daten in AppSignal eintreffen. Überprüfen Sie insbesondere die Seiten „Errors > Issue list” und „Performance > Traces”. Wenn Sie nach dem Befolgen unserer Installationsanweisungen immer noch keine Daten in AppSignal sehen, lassen Sie es uns wissen, und wir helfen Ihnen, Ihre OpenTelemetry-Installation abzuschließen!