> ## 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 Elixir: Diagnose-Tool

Das AppSignal-für-Elixir-Paket enthält ein Selbstdiagnose-Tool. Dieses Tool kann verwendet werden, um Ihre AppSignal-Installation zu debuggen, und ist eines der ersten Dinge, nach denen unser Support-Team fragt, wenn es ein Problem gibt.

Dieses Tool ist seit Version `0.12.0` des AppSignal-für-Elixir-Pakets verfügbar.

## Der Diagnosebericht

Dieses Befehlszeilen-Tool ist nützlich, um AppSignal auf einem System zu testen und die lokale Konfiguration zu überprüfen. Es gibt nützliche Informationen zum Debuggen von Problemen aus und prüft, ob der AppSignal-Agent auf der Architektur der Maschine ausgeführt werden und mit den AppSignal-Servern kommunizieren kann.

Dieses Diagnose-Tool sammelt und gibt Folgendes aus:

* Informationen über das AppSignal-Paket.
* Informationen über das Host-System, Elixir und Erlang.
* ob die AppSignal-[Erweiterung](/appsignal/how-appsignal-operates#extension) und der [Agent](/appsignal/how-appsignal-operates#agent) auf dem Host-System ausgeführt werden können.
* alle konfigurierten Konfigurationsoptionen (einschließlich Standardwerten).
* ob die Konfiguration gültig und aktiv ist.
* ob der Push-API-Key vorhanden und gültig ist (Internetverbindung erforderlich).
* woher die Werte der Konfigurationsoptionen stammen.
* ob die erforderlichen Systempfade existieren, beschreibbar sind und welcher Benutzer und welche Gruppe Eigentümer sind.
* kleine Teile vom Ende der verfügbaren Logdateien.

Lesen Sie mehr darüber, wie Sie den Diagnose-Befehl verwenden können, auf der Seite [Debugging][debugging].

## Bericht einreichen

Seit Paketversion `1.3.0` werden Sie aufgefordert, den Bericht an AppSignal zu senden. Wenn Sie zustimmen, wird der Bericht an unsere Server gesendet und Sie erhalten einen Support-Token.

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

In Paketversion `1.9.0` wurde die Option hinzugefügt, den Bericht selbst auf AppSignal.com anzuzeigen. Ein Link zum Bericht wird in der Diagnose-Ausgabe gedruckt. Diese Web-Ansicht zeigt auch alle Validierungsprobleme und Warnungen an, die unser System erkannt hat.

## Verwendung

In der Befehlszeile in Ihrem Projekt:

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

### Mit einer Elixir-Release-Binary

Wenn Ihre Elixir-App in einer mit `mix release` erstellten Elixir-Release-Binary verpackt ist, können Sie die Aufgabe nicht mit `mix` aufrufen. Verwenden Sie stattdessen den `eval`-Befehl auf Ihrer Release-Binary, um die AppSignal-Aufgabe `diagnose` wie folgt aufzurufen:

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

### Mit einer Release-Binary

Wenn Ihre Elixir-App mit einem Tool wie [distillery](https://github.com/bitwalker/distillery) in einer Release-Binary verpackt ist, können Sie die Aufgabe nicht mit `mix` aufrufen. Verwenden Sie stattdessen den `command`-Befehl auf Ihrer Release-Binary, um die AppSignal-Aufgabe `diagnose` wie folgt aufzurufen:

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

## Optionen

| Option                                            | Beschreibung                                                                        |
| ------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [Umgebungsoption](#environment-option)            | Die im Befehl zu verwendende Umgebung festlegen, z. B. `production` oder `staging`. |
| [`--[no-]send-report`](#report-submission-option) | Den Bericht automatisch senden oder nicht senden.                                   |

### Umgebungsoption

Eine bestimmte Umgebung mit der CLI auswählen.

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

Die Umgebungsoption ist nützlich, wenn die Standardumgebung nicht diejenige ist, die Sie diagnostizieren möchten. Das Diagnose-Tool warnt Sie, wenn keine Umgebung ausgewählt ist.

### Berichtseinreichungs-Option

Die Optionen zum sofortigen [Einreichen des Berichts](#submitting-the-report) (oder nicht) wurden in der AppSignal-Paketversion `1.9.0` hinzugefügt. Wenn Sie mit diesen Optionen auswählen, ob der Bericht gesendet werden soll oder nicht, wird diese Frage nicht mehr angezeigt, was die Verwendung in nicht-interaktiven Umgebungen erleichtert.

Den Bericht an AppSignal senden:

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

Den Bericht nicht an AppSignal senden:

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

## Format der Konfigurationsausgabe

### Format der Werte der Konfigurationsoptionen

Die Konfigurationsoptionen werden auf der CLI als ihre inspizierten Werte ausgegeben. Das heißt, wir geben sie so aus, wie Elixir es in einer Konsole tun würde.

* Zeichenkettenwerte werden in doppelte Anführungszeichen gesetzt, z. B. `"My app name"`.
* Boolesche Werte werden als ihre Rohwerte ausgegeben: `true` und `false`.
* Listenwerte werden als eine Sammlung von Werten in eckigen Klammern ausgegeben, z. B. `["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET"]`.
  * Leere Listen werden als zwei eckige Klammern ausgegeben: `[]`.
* Nil-Werte werden als `nil` ausgegeben.

### Konfigurationsquellen

Der Konfigurationsabschnitt gibt auch aus, woher die Werte der Konfigurationsoptionen stammen. Dies kann helfen, Quellen zu identifizieren, die Werte aus anderen Konfigurationsquellen überschreiben.

Welche Konfigurationsquellen verfügbar sind und in welcher Reihenfolge sie geladen werden und damit ihre Priorität, finden Sie auf der Seite [Konfigurations-Ladereihenfolge](/elixir/configuration/load-order).

Die Konfigurationsoptionen werden je nach Herkunft der Konfigurationsoptionswerte und Anzahl der Quellen, die diese Option festlegen, wie unten gezeigt ausgegeben.

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

## Exit-Codes

* Beendet sich mit Statuscode `0`, wenn der Befehl erfolgreich abgeschlossen wurde.
* Beendet sich mit Statuscode `1`, wenn der Befehl mit einem Fehler abgeschlossen wurde.

[debugging]: /support/debugging.html
