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

Installer les paquets OpenTelemetry

Ajoutez le SDK OpenTelemetry et l’exportateur OTLP aux dépendances de votre application :
def deps do
  [
    # other dependencies...
    {:opentelemetry, "~> 1.3"},
    {:opentelemetry_api, "~> 1.2"},
    {:opentelemetry_exporter, "~> 1.6"},
  ]
end
Ajoutez également les paquets d’instrumentation OpenTelemetry pour les bibliothèques et frameworks utilisés par votre application. Par exemple, si vous utilisez Phoenix :
def deps do
  [
    # other dependencies...
    {:opentelemetry_phoenix, "~> 1.1"},
    {:opentelemetry_cowboy, "~> 0.2"},
    {:opentelemetry_ecto, "~> 1.2"}
  ]
end
Pour d’autres bibliothèques et frameworks, vous pouvez trouver des paquets d’instrumentation OpenTelemetry dans le registre OpenTelemetry.

Configurer OpenTelemetry dans votre application

Mettez à jour le fichier config/config.exs de votre application avec l’exportateur OpenTelemetry et la configuration AppSignal. 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.
# Replace these values with your AppSignal application name, environment
# (autodetected from Mix) and push API key. These are used by the resource attributes
# configuration below.
name = "My app"
push_api_key = "0000-0000-0000-0000"

environment = if Kernel.function_exported?(Mix, :env, 0) do
  to_string(Mix.env())
else
  "development"
end

# 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"

{:ok, hostname} = :inet.gethostname()
{revision, _exitcode} = System.cmd("git", ["log", "--pretty=format:%h", "-n 1"])

config :opentelemetry,
  span_processor: :batch,
  traces_exporter: :otlp,
  resource: [
    {"appsignal.config.name", name},
    {"appsignal.config.environment", environment},
    {"appsignal.config.push_api_key", push_api_key},
    {"appsignal.config.revision", revision},
    {"appsignal.config.language_integration", "elixir"},
    {"appsignal.config.app_path", File.cwd!()},
    {"host.name", hostname},
    {"service.name", service_name}
  ]

config :opentelemetry_exporter,
  otlp_protocol: :http_protobuf,
  otlp_endpoint: endpoint

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 !