> ## 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 Ruby : 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 Ruby", version: "1.1.0" }
]}
/>

La gem Ruby AppSignal 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 fournit 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 :

* Des informations sur la gem AppSignal.
* Des informations sur le système hôte et Ruby.
* Si l'[extension](/appsignal/how-appsignal-operates#extension) et l'[agent](/appsignal/how-appsignal-operates#agent) AppSignal peuvent 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 journaux disponibles.

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

## Envoi du rapport

Dans les versions de la gem `2.2.0` et supérieures, 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 examinons le rapport et vous aidons à déboguer le problème. Nous avons constaté que copier-coller la sortie du rapport perd généralement la mise en forme et la rend plus difficile à lire, c'est pourquoi il est envoyé à nos serveurs au format JSON.

Dans la version `2.8.0` de la gem, une option a été ajoutée pour consulter le rapport vous-même sur AppSignal.com. Un lien vers le rapport est imprimé dans la sortie diagnose. Cette vue web affichera également tous les problèmes de validation et avertissements détectés par notre système.

## Utilisation

Sur la ligne de commande, dans votre projet, exécutez :

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

Si vous rencontrez un problème en production et avez besoin d'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}
  bundle exec appsignal diagnose --environment=production --send-report
  ```
</CodeGroup>

## Options

| Option                                               | Description                                                                                 |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [`--environment=<environment>`](#environment-option) | Définit l'environnement à utiliser dans la commande, par exemple `production` ou `staging`. |
| [`--[no-]send-report`](#report-submission-option)    | Envoie automatiquement le rapport, ou ne l'envoie pas.                                      |
| `--[no-]color`                                       | Active ou désactive la colorisation de la sortie.                                           |

### Option d'environnement

Pour sélectionner un environnement spécifique avec la CLI, exécutez la commande ci-dessous :

<CodeGroup>
  ```bash Bash theme={null}
  appsignal diagnose --environment=production
  ```
</CodeGroup>

L'option d'environnement est utile lorsqu'il n'y a pas d'environnement par défaut (applications non-Rails et applications configurées avec un [fichier de configuration](/ruby/configuration/load-order#file)) ou lorsque l'environnement par défaut n'est pas celui que vous voulez diagnostiquer. L'outil diagnose vous avertira si aucun environnement n'est sélectionné.

### Option d'envoi du rapport

Les options pour [envoyer le rapport](#submitting-the-report) immédiatement, ou non, ont été ajoutées à la gem AppSignal version `2.8.0`. Choisir d'envoyer ou non le rapport avec ces options ne déclenchera plus cette question, ce qui facilite son utilisation dans les environnements non interactifs.

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

<CodeGroup>
  ```bash Bash theme={null}
  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}
  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 forme de valeurs inspectées. Cela signifie que nous les affichons comme Ruby le ferait dans une console.

* Les valeurs de type String sont affichées avec des guillemets doubles autour d'elles, par exemple `"My app name"`.
* Les valeurs booléennes sont affichées sous leur forme brute : `true` et `false`.
* Les valeurs de type Array sont affichées comme une collection de valeurs entourées de crochets, par exemple `["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET"]`.
  * Les tableaux vides sont affichés sous la forme de deux crochets : `[]`.
* Les valeurs nil sont affichées comme `nil`.

### 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 [ordre de chargement de la configuration](/ruby/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
