> ## 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 für Ruby: Diagnose-Tool

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" }
]}
/>

Das AppSignal Ruby-Gem enthält ein Selbstdiagnose-Tool, mit dem Sie die Installation und Konfiguration Ihrer AppSignal-Integration debuggen können. Es ist eines der ersten Tools, dessen Ausführung unser Support-Team beim Debuggen eines Problems empfiehlt.

## Der Diagnosebericht

Sie können dieses Diagnose-Tool verwenden, um Ihre AppSignal-Installation zu testen und zu validieren. Es gibt nützliche Informationen zur Fehlersuche aus und prüft, ob der AppSignal-Agent auf der Architektur des Rechners ausgeführt werden und mit den AppSignal-Servern kommunizieren kann.

Dieses Diagnose-Tool sammelt und gibt Folgendes aus:

* Informationen über das AppSignal-Gem.
* Informationen über das Hostsystem und Ruby.
* Ob die AppSignal-[Extension](/appsignal/how-appsignal-operates#extension) und der [Agent](/appsignal/how-appsignal-operates#agent) auf dem Hostsystem ausgeführt werden können.
* Alle konfigurierten Konfigurationsoptionen (einschließlich Standardwerten).
* Ob die Konfiguration gültig und aktiv ist.
* Ob der Push API-Schlüssel vorhanden und gültig ist (Internetverbindung erforderlich).
* Aus welcher Quelle die Werte der Konfigurationsoptionen stammen.
* Ob die benötigten Systempfade existieren, beschreibbar sind und welcher Benutzer und welche Gruppe Eigentümer sind.
* Kleine Teile vom Ende der verfügbaren Log-Dateien.

Mehr darüber, wie Sie den Diagnose-Befehl verwenden, erfahren Sie in unserer [Debugging](/support/debugging)-Dokumentation.

## Bericht einreichen

Ab Gem-Version `2.2.0` und höher werden Sie aufgefordert, den Bericht an AppSignal zu senden. Wenn Sie zustimmen, wird der Bericht an unsere Server gesendet und Sie erhalten ein Support-Token.

Wenn Sie [dieses Support-Token an uns senden](mailto:support@appsignal.com), prüfen wir den Bericht und helfen Ihnen, das Problem zu debuggen. Wir haben festgestellt, dass das Kopieren der Berichtsausgabe normalerweise die Formatierung verliert und die Lesbarkeit erschwert, weshalb der Bericht im JSON-Format an unsere Server gesendet wird.

In Gem-Version `2.8.0` wurde die Option hinzugefügt, den Bericht selbst auf AppSignal.com einzusehen. Ein Link zum Bericht wird in der Ausgabe der Diagnose ausgegeben. Diese Webansicht zeigt auch alle Validierungsprobleme und Warnungen an, die unser System erkannt hat.

## Verwendung

Führen Sie auf der Kommandozeile in Ihrem Projekt aus:

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

Wenn Sie ein Problem in der Produktion haben und den Bericht zur Unterstützung an AppSignal senden müssen, können Sie den folgenden Befehl ausführen, um den Bericht zu erstellen und an unsere Server zu senden:

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

## Optionen

| Option                                               | Beschreibung                                                                        |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [`--environment=<environment>`](#environment-option) | Legt die im Befehl zu verwendende Umgebung fest, z. B. `production` oder `staging`. |
| [`--[no-]send-report`](#report-submission-option)    | Bericht automatisch senden oder nicht senden.                                       |
| `--[no-]color`                                       | Schaltet die Einfärbung der Ausgabe um.                                             |

### Environment-Option

Um eine bestimmte Umgebung mit der CLI auszuwählen, führen Sie den folgenden Befehl aus:

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

Die Environment-Option ist nützlich, wenn es keine Standardumgebung gibt (Nicht-Rails-Apps und Apps, die mit einer [Konfigurationsdatei](/ruby/configuration/load-order#file) konfiguriert sind) oder die Standardumgebung nicht die ist, die Sie diagnostizieren möchten. Das Diagnose-Tool warnt Sie, wenn keine Umgebung ausgewählt ist.

### Option zur Berichtseinreichung

Die Optionen, den Bericht sofort zu [senden](#submitting-the-report) oder nicht, wurden in der AppSignal-Gem-Version `2.8.0` hinzugefügt. Wenn Sie mit diesen Optionen auswählen, ob der Bericht gesendet wird oder nicht, wird diese Frage nicht mehr gestellt, was die Verwendung in nicht-interaktiven Umgebungen vereinfacht.

Um die Diagnose auszuführen und die Berichtsdaten an AppSignal zu übermitteln, führen Sie den folgenden Befehl aus:

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

Um die Diagnose auszuführen, ohne die Berichtsdaten an AppSignal zu senden, führen Sie den folgenden Befehl aus:

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

## Format der Konfigurationsausgabe

### Format der Werte der Konfigurationsoptionen

Die Konfigurationsoptionen werden in der CLI als ihre inspizierten Werte ausgegeben. Das bedeutet, dass wir sie so ausgeben, wie Ruby es in einer Konsole tun würde.

* String-Werte werden mit doppelten Anführungszeichen ausgegeben, z. B. `"My app name"`.
* Boolean-Werte werden als ihre Rohwerte ausgegeben: `true` und `false`.
* Array-Werte werden als eine Sammlung von Werten in eckigen Klammern ausgegeben, z. B. `["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET"]`.
  * Leere Arrays werden als zwei eckige Klammern ausgegeben: `[]`.
* Nil-Werte werden als `nil` ausgegeben.

### Konfigurationsquellen

Der Konfigurationsabschnitt zeigt auch den Ursprung der Werte der Konfigurationsoptionen, was helfen kann, Quellen zu identifizieren, die in anderen Konfigurationsquellen definierte Werte überschreiben.

Mehr über Konfigurationsquellen, deren Ladereihenfolge und Priorität erfahren Sie in der Dokumentation zur [Ladereihenfolge der Konfiguration](/ruby/configuration/load-order).

Die Konfigurationsoptionen werden basierend auf der Quelle ihrer Werte und der Anzahl der Quellen, die sie setzen, angezeigt, wie im folgenden Beispiel:

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