Pular para o conteúdo principal
O pacote AppSignal for Elixir vem com uma ferramenta de autodiagnóstico. Esta ferramenta pode ser usada para depurar sua instalação do AppSignal e é uma das primeiras coisas que nossa equipe de suporte pede quando há um problema. Esta ferramenta está disponível desde a versão 0.12.0 do pacote AppSignal for Elixir.

O relatório de diagnóstico

Esta ferramenta de linha de comando é útil ao testar o AppSignal em um sistema e validar a configuração local. Ela exibe informações úteis para depurar problemas e verifica se o agente AppSignal consegue rodar na arquitetura da máquina e se comunicar com os servidores do AppSignal. Esta ferramenta de diagnóstico coleta e exibe o seguinte:
  • informações sobre o pacote AppSignal.
  • informações sobre o sistema host, Elixir e Erlang.
  • se a extension e o agent do AppSignal conseguem rodar no sistema host.
  • todas as opções de configuração definidas (incluindo valores padrão).
  • se a configuração é válida e está ativa.
  • se a Push API key está presente e é válida (requer conexão com a internet).
  • de onde vêm os valores das opções de configuração.
  • se os caminhos de sistema necessários existem, são graváveis e quais usuário e grupo são proprietários.
  • pequenas partes do final dos arquivos de log disponíveis.
Leia mais sobre como usar o comando diagnose na página Debugging.

Envio do relatório

Desde a versão 1.3.0 do pacote, você será solicitado a enviar o relatório para o AppSignal. Se aceito, o relatório será enviado para nossos servidores e você receberá um token de suporte. Quando você enviar este token de suporte para nós, revisaremos o relatório e ajudaremos você a depurar o problema. Percebemos que copiar e colar o relatório geralmente perde a formatação e dificulta a leitura, por isso ele é enviado para nossos servidores no formato JSON. Na versão 1.9.0 do pacote, foi adicionada a opção de visualizar o relatório no AppSignal.com. Um link para o relatório é exibido na saída do diagnose. Esta visualização web também mostrará quaisquer problemas de validação e avisos detectados pelo nosso sistema.

Uso

Na linha de comando do seu projeto:
mix appsignal.diagnose

Com um binário de release Elixir

Se sua aplicação Elixir está empacotada em um binário de release Elixir, construído com mix release, você não conseguirá chamar a task usando mix. Em vez disso, use o comando eval no seu binário de release para chamar a task diagnose do AppSignal assim:
bin/your_app eval ":appsignal_tasks.diagnose()"

Com um binário de release

Se sua aplicação Elixir está empacotada em um binário de release com uma ferramenta como distillery, você não conseguirá chamar a task usando mix. Em vez disso, use o comando command no seu binário de release para chamar a task diagnose do AppSignal assim:
bin/your_app command appsignal_tasks diagnose

Opções

OpçãoDescrição
Opção de ambienteDefine o ambiente a ser usado no comando, por exemplo, production ou staging.
--[no-]send-reportEnviar ou não enviar o relatório automaticamente.

Opção de ambiente

Selecione um ambiente específico com o CLI.
MIX_ENV=prod mix appsignal.diagnose
A opção de ambiente é útil quando o ambiente padrão não é aquele que você deseja diagnosticar. A ferramenta de diagnóstico avisará você quando nenhum ambiente estiver selecionado.

Opção de envio do relatório

As opções para enviar o relatório imediatamente, ou não, foram adicionadas ao pacote AppSignal na versão 1.9.0. Ao selecionar se o relatório deve ou não ser enviado com essas opções, a pergunta não será mais exibida, facilitando o uso em ambientes não interativos. Enviar o relatório para o AppSignal:
mix appsignal.diagnose --send-report
Não enviar o relatório para o AppSignal:
mix appsignal.diagnose --no-send-report

Formato de saída da configuração

Formato dos valores das opções de configuração

As opções de configuração são impressas no CLI como seus valores inspecionados. Isso significa que as imprimimos como o Elixir faria em um console.
  • Valores de string são impressos com aspas duplas ao redor, por exemplo, "My app name".
  • Valores booleanos são impressos como seus valores brutos: true e false.
  • Valores de lista são impressos como uma coleção de valores entre colchetes, por exemplo, ["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET"].
    • Listas vazias são impressas como dois colchetes: [].
  • Valores nil são impressos como nil.

Fontes de configuração

A seção de configuração também imprime de onde vêm os valores das opções de configuração. Isso pode ajudar a identificar fontes que sobrescrevem valores de outras fontes de configuração. Para saber mais sobre quais fontes de configuração estão disponíveis e em que ordem são carregadas — e, portanto, sua prioridade — consulte a página de ordem de carregamento da configuração. As opções de configuração são impressas como demonstrado abaixo, dependendo de onde vem o valor da opção de configuração e de quantas fontes definem essa opção.
Shell
Configuration
  # Option with a value loaded only from the default source
  send_params: true

  # Option with one source
  # A different source than the default source
  name: "My app name" (Loaded from file)

  # Option with multiple sources
  # Listed in order of priority (highest priority last)
  active: true
    Sources:
      default: false
      file:    false
      env:     true

Códigos de saída

  • Sai com o status code 0 se o comando foi concluído com sucesso.
  • Sai com o status code 1 se o comando foi concluído com erro.