> ## 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 Elixir : outil de diagnostic

Le paquet AppSignal pour Elixir est livré avec un outil d'auto-diagnostic. Cet outil peut être utilisé pour déboguer votre installation AppSignal et c'est l'une des premières choses que notre équipe de support demande lorsqu'il y a un problème.

Cet outil est disponible depuis la version `0.12.0` du paquet AppSignal pour Elixir.

## Le rapport de diagnostic

Cet outil en ligne de commande est utile pour tester AppSignal sur un système et valider la configuration locale. Il affiche des informations utiles pour déboguer les problèmes et vérifie que l'agent AppSignal peut fonctionner sur l'architecture de la machine et communiquer avec les serveurs AppSignal.

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

* des informations sur le paquet AppSignal.
* des informations sur le système hôte, Elixir et Erlang.
* si l'[extension](/appsignal/how-appsignal-operates#extension) et l'[agent](/appsignal/how-appsignal-operates#agent) AppSignal peuvent fonctionner sur le système hôte.
* toutes les options de configuration définies (y compris les valeurs par défaut).
* si la configuration est valide et active.
* si la Push API key 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 logs disponibles.

En savoir plus sur l'utilisation de la commande diagnose sur la page [Débogage][debugging].

## Soumission du rapport

Depuis la version `1.3.0` du paquet, vous serez invité à envoyer le rapport à AppSignal. Si vous acceptez, 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 le copier-coller du rapport en sortie perd généralement le formatage et le rend plus difficile à lire, c'est pourquoi il est envoyé à nos serveurs au format JSON.

Dans la version `1.9.0` du paquet, l'option a été ajoutée pour consulter vous-même le rapport sur AppSignal.com. Un lien vers le rapport est imprimé dans la sortie de diagnose. Cette vue web affichera également tout problème de validation et tout avertissement détecté par notre système.

## Utilisation

Sur la ligne de commande dans votre projet :

<CodeGroup>
  ```bash Bash theme={null}
  mix appsignal.diagnose
  ```
</CodeGroup>

### Avec un binaire de release Elixir

Si votre application Elixir est empaquetée dans un binaire de release Elixir, construit avec `mix release`, vous ne pourrez pas appeler la tâche avec `mix`. Utilisez plutôt la commande `eval` sur votre binaire de release pour appeler la tâche AppSignal `diagnose` comme ceci :

<CodeGroup>
  ```bash Bash theme={null}
  bin/your_app eval ":appsignal_tasks.diagnose()"
  ```
</CodeGroup>

### Avec un binaire de release

Si votre application Elixir est empaquetée dans un binaire de release avec un outil tel que [distillery](https://github.com/bitwalker/distillery), vous ne pourrez pas appeler la tâche avec `mix`. Utilisez plutôt la commande `command` sur votre binaire de release pour appeler la tâche AppSignal `diagnose` comme ceci :

<CodeGroup>
  ```bash Bash theme={null}
  bin/your_app command appsignal_tasks diagnose
  ```
</CodeGroup>

## Options

| Option                                            | Description                                                                             |
| ------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [Option d'environnement](#environment-option)     | Définit l'environnement à utiliser dans la commande, par ex. `production` ou `staging`. |
| [`--[no-]send-report`](#report-submission-option) | Envoie automatiquement le rapport, ou non.                                              |

### Option d'environnement

Sélectionner un environnement spécifique avec la CLI.

<CodeGroup>
  ```bash Bash theme={null}
  MIX_ENV=prod mix appsignal.diagnose
  ```
</CodeGroup>

L'option d'environnement est utile lorsque l'environnement par défaut n'est pas celui que vous souhaitez diagnostiquer. L'outil de diagnostic vous avertira si aucun environnement n'est sélectionné.

### Option de soumission du rapport

Les options pour [soumettre le rapport](#submitting-the-report) immédiatement, ou non, ont été ajoutées dans la version `1.9.0` du paquet AppSignal. Choisir d'envoyer ou non le rapport avec ces options évitera l'invite, ce qui facilite l'utilisation dans des environnements non interactifs.

Soumettre le rapport à AppSignal :

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

Ne pas soumettre le rapport à AppSignal :

<CodeGroup>
  ```bash Bash theme={null}
  mix 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 affichons comme Elixir le ferait dans une console.

* Les valeurs de type string sont affichées entre guillemets doubles, par exemple `"My app name"`.
* Les valeurs booléennes sont affichées telles quelles : `true` et `false`.
* Les valeurs de type liste sont affichées comme une collection de valeurs entre crochets, par exemple `["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET"]`.
  * Les listes vides sont affichées par deux crochets : `[]`.
* Les valeurs Nil sont affichées comme `nil`.

### Sources de la configuration

La section configuration affiche également d'où proviennent les valeurs des options. Cela peut aider à identifier les sources qui remplacent les valeurs d'autres sources de configuration.

Pour plus d'informations sur les sources de configuration disponibles, leur ordre de chargement et donc leur priorité, consultez la page [ordre de chargement de la configuration](/elixir/configuration/load-order).

Les options de configuration sont affichées comme illustré ci-dessous selon l'origine de la valeur et le nombre de sources qui définissent cette option.

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

## Codes de sortie

* Sort avec le code d'état `0` si la commande s'est terminée avec succès.
* Sort avec le code d'état `1` si la commande s'est terminée avec une erreur.

[debugging]: /support/debugging.html
