> ## 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 pour Python : outil 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" }
]}
/>

Le package AppSignal pour Python inclut un outil d'auto-diagnostic qui peut être utilisé pour déboguer l'installation et la configuration de votre intégration AppSignal. C'est l'un des premiers outils que notre équipe de support vous demande d'exécuter lors du débogage d'un problème.

## Le rapport de diagnostic

Vous pouvez utiliser cet outil de diagnostic pour tester et valider votre installation AppSignal. Il produit des informations utiles pour déboguer les problèmes et vérifie si l'agent AppSignal peut s'exécuter sur l'architecture de la machine et communiquer avec les serveurs AppSignal.

Cet outil de diagnostic collecte et affiche les éléments suivants :

* Informations sur le package AppSignal.
* Informations sur le système hôte et sur Python.
* Si l'[agent](/appsignal/how-appsignal-operates#agent) AppSignal peut s'exécuter sur le système hôte.
* Toutes les options de configuration configurées (y compris les valeurs par défaut).
* Si la configuration est valide et active.
* Si la clé Push API est présente et valide (connexion Internet requise).
* D'où proviennent les valeurs des options de configuration.
* Si les chemins système requis existent, sont accessibles en écriture, et quels utilisateur et groupe en sont propriétaires.
* De petites portions de la fin des fichiers de journaux disponibles.

Vous pouvez en savoir plus sur l'utilisation de la commande diagnose dans notre documentation sur le [Débogage](/support/debugging).

## Soumettre le rapport

Une fois le rapport créé, vous serez invité à envoyer le rapport vers nos serveurs. Si vous acceptez cette invite, le rapport sera envoyé à nos serveurs et vous recevrez un jeton de support.

Lorsque vous [nous envoyez ce jeton de support](mailto:support@appsignal.com), nous examinerons le rapport et vous aiderons à déboguer le problème. Nous avons constaté que copier-coller la sortie du rapport fait généralement perdre la mise en forme et la rend plus difficile à lire ; c'est pourquoi il est envoyé à nos serveurs au format JSON.

Après l'envoi du rapport vers nos serveurs, un lien vers la vue web du rapport est affiché dans la sortie de diagnose. Cette vue web affichera également tous les problèmes de validation et les avertissements détectés par notre système.

## Utilisation

Dans la ligne de commande de votre projet, exécutez :

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

Si vous rencontrez un problème en production et que vous devez envoyer le rapport à AppSignal pour obtenir de l'aide, vous pouvez exécuter la commande suivante pour générer et envoyer le rapport à nos serveurs :

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

## Options

| Option             | Utilisation                                     | Description                                             |
| ------------------ | ----------------------------------------------- | ------------------------------------------------------- |
| `[no]-send-report` | [`--[no-]send-report`](#report-submission-flag) | Envoyer automatiquement, ou ne pas envoyer, le rapport. |

### Drapeau de soumission du rapport

À l'aide du drapeau `--send-report`, il est possible d'envoyer automatiquement le rapport sans y être invité. Cela facilite son utilisation dans des environnements non interactifs.

Pour exécuter diagnose et soumettre les données du rapport à AppSignal, exécutez la commande ci-dessous :

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

Pour exécuter diagnose sans envoyer les données du rapport à AppSignal, exécutez la commande ci-dessous :

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

## Format de sortie de la configuration

### Format des valeurs des options de configuration

Les options de configuration sont affichées dans la CLI sous leur forme inspectée. Cela signifie que nous les imprimons comme Python le ferait dans une console.

* Les valeurs de chaîne sont imprimées entre guillemets doubles, par exemple `"My app name"`.
* Les valeurs booléennes sont imprimées telles quelles : `True` et `False`.
* Les valeurs de tableaux sont imprimées comme une collection de valeurs entourées de crochets, par exemple `["accept", "accept-charset"]`.
  * Les tableaux vides sont imprimés sous la forme de deux crochets : `[]`.

### Sources de configuration

La section de configuration affiche également l'origine des valeurs des options de configuration, ce qui peut aider à identifier les sources qui remplacent les valeurs définies dans d'autres sources de configuration.

Vous pouvez en savoir plus sur les sources de configuration, leur ordre de chargement et leur priorité dans la documentation sur l'[ordre de chargement de la configuration](/python/configuration/load-order).

Les options de configuration sont affichées en fonction de la source de leurs valeurs et du nombre de sources qui les définissent, comme dans l'exemple ci-dessous :

```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
