> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AppSignal para Python: Ferramenta Diagnose

export const VersionRequirements = ({versions = []}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const boundaries = {
    upper: " or lower",
    exact: "",
    lower: " or higher"
  };
  const containerStyle = {
    marginTop: "0.5rem",
    marginBottom: "1.5rem"
  };
  const lineStyle = {
    display: "block",
    margin: "0 0 0.35rem 0",
    fontSize: "0.875rem",
    lineHeight: "1.4"
  };
  const pillBaseStyle = {
    display: "inline-block",
    padding: "0.1em 0.4em",
    borderRadius: "0.25rem",
    border: "1px solid",
    fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
    fontSize: "0.85em",
    fontWeight: 500
  };
  const pillColors = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#e9d5ff",
      color: "#9333ea"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#99f6e4",
      color: "#0d9488"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#bbf7d0",
      color: "#16a34a"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#bfdbfe",
      color: "#2563eb"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fecaca",
      color: "#dc2626"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fed7aa",
      color: "#ea580c"
    }
  };
  const defaultPillColor = {
    background: "#f4f4f5",
    borderColor: "#e4e4e7",
    color: "#52525b"
  };
  const getPillStyle = name => ({
    ...pillBaseStyle,
    ...pillColors[name] || defaultPillColor
  });
  const getBoundText = bound => {
    return boundaries[bound] || boundaries.lower;
  };
  return <div style={containerStyle}>
      {versions.map((v, i) => <p key={`${v.name}-${v.version}-${v.bound || "lower"}-${i}`} style={lineStyle}>
          This feature requires{" "}
          <code style={getPillStyle(v.name)}>{v.name}</code> version {v.version}
          {getBoundText(v.bound)}.
        </p>)}
    </div>;
};

<VersionRequirements
  versions={[
{ name: "AppSignal for Python", version: "0.2.0" }
]}
/>

O pacote AppSignal para Python inclui uma ferramenta de autodiagnóstico que pode ser usada para depurar a instalação e a configuração da sua integração com o AppSignal. É uma das primeiras ferramentas que nossa equipe de suporte solicita que você execute ao depurar um problema.

## O relatório de diagnóstico

Você pode usar essa ferramenta de diagnóstico para testar e validar sua instalação do AppSignal. Ela produz informações úteis para depurar problemas e verifica se o agente do AppSignal consegue ser executado na arquitetura da máquina e se comunicar com os servidores do AppSignal.

Essa ferramenta de diagnóstico coleta e exibe o seguinte:

* Informações sobre o pacote do AppSignal.
* Informações sobre o sistema host e o Python.
* Se o [agente](/appsignal/how-appsignal-operates#agent) do AppSignal consegue rodar no sistema host.
* Todas as opções de configuração configuradas (incluindo valores padrão).
* Se a configuração é válida e está ativa.
* Se a Push API key está presente e é válida (necessária conexão com a internet).
* De onde vêm os valores das opções de configuração.
* Se os caminhos de sistema obrigató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.

Você pode ler mais sobre como usar o comando diagnose em nossa documentação de [Debugging](/support/debugging).

## Enviando o relatório

Depois que o relatório for criado, você será solicitado a enviá-lo para nossos servidores. Se você aceitar essa solicitação, o relatório será enviado para nossos servidores e você receberá um token de suporte.

Quando você [enviar esse token de suporte para nós](mailto:support@appsignal.com), revisaremos o relatório e ajudaremos você a depurar o problema. Notamos que copiar e colar a saída do relatório geralmente perde a formatação e dificulta a leitura, por isso ele é enviado para nossos servidores no formato JSON.

Depois de enviar o relatório para nossos servidores, um link para a visualização web do relatório é impresso na saída do diagnose. Essa visualização web também mostrará quaisquer problemas de validação e avisos que nosso sistema detectou.

## Uso

Na linha de comando, dentro do seu projeto, execute:

<CodeGroup>
  ```bash Bash theme={null}
  python -m appsignal diagnose
  ```
</CodeGroup>

Se você estiver enfrentando um problema em produção e precisar enviar o relatório ao AppSignal para suporte, pode executar o seguinte comando para gerar e enviar o relatório aos nossos servidores:

<CodeGroup>
  ```bash Bash theme={null}
  python -m appsignal diagnose --send-report
  ```
</CodeGroup>

## Opções

| Opção              | Uso                                             | Descrição                                        |
| ------------------ | ----------------------------------------------- | ------------------------------------------------ |
| `[no]-send-report` | [`--[no-]send-report`](#report-submission-flag) | Envia automaticamente, ou não envia o relatório. |

### Flag de envio do relatório

Usando a flag `--send-report` é possível enviar automaticamente o relatório sem ser solicitado. Isso facilita o uso em ambientes não interativos.

Para executar o diagnose e enviar os dados do relatório ao AppSignal, execute o comando abaixo:

<CodeGroup>
  ```bash Bash theme={null}
  python -m appsignal diagnose --send-report
  ```
</CodeGroup>

Para executar o diagnose sem enviar os dados do relatório ao AppSignal, execute o comando abaixo:

<CodeGroup>
  ```bash Bash theme={null}
  python -m appsignal diagnose --no-send-report
  ```
</CodeGroup>

## 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 na CLI como seus valores inspecionados. Isso significa que as imprimimos como o Python faria em um console.

* Valores de string são impressos entre aspas duplas, por exemplo `"My app name"`.
* Valores booleanos são impressos como seus valores brutos: `True` e `False`.
* Valores de array são impressos como uma coleção de valores cercados por colchetes, por exemplo `["accept", "accept-charset"]`.
  * Arrays vazios são impressos como dois colchetes: `[]`.

### Fontes de configuração

A seção de configuração também exibe a origem dos valores das opções de configuração, o que pode ajudar a identificar fontes que sobrescrevem valores definidos em outras fontes de configuração.

Você pode ler mais sobre as fontes de configuração, sua ordem de carregamento e prioridade na documentação [ordem de carregamento da configuração](/python/configuration/load-order).

As opções de configuração são exibidas com base na fonte de seus valores e no número de fontes que as definem, como no exemplo abaixo:

```text Shell theme={null}
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
```

[debugging]: /support/debugging.html
