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

Instale os pacotes do OpenTelemetry

Adicione o SDK do OpenTelemetry e o exporter OTLP às dependências da sua aplicação:
def deps do
  [
    # outras dependências...
    {:opentelemetry, "~> 1.3"},
    {:opentelemetry_api, "~> 1.2"},
    {:opentelemetry_exporter, "~> 1.6"},
  ]
end
Adicione também os pacotes de instrumentação do OpenTelemetry para as bibliotecas e frameworks que sua aplicação usa. Por exemplo, se você está usando Phoenix:
def deps do
  [
    # outras dependências...
    {:opentelemetry_phoenix, "~> 1.1"},
    {:opentelemetry_cowboy, "~> 0.2"},
    {:opentelemetry_ecto, "~> 1.2"}
  ]
end
Para outras bibliotecas e frameworks, você pode encontrar pacotes de instrumentação do OpenTelemetry no registro do OpenTelemetry.

Configure o OpenTelemetry na sua aplicação

Atualize o arquivo config/config.exs na sua aplicação com o exporter do OpenTelemetry e a configuração do AppSignal. 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.
# Substitua estes valores pelo nome da sua aplicação no AppSignal, ambiente
# (autodetectado pelo Mix) 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 = if Kernel.function_exported?(Mix, :env, 0) do
  to_string(Mix.env())
else
  "development"
end

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

{: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

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!