Zum Hauptinhalt springen
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 und der 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.

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, 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:
mix appsignal.diagnose

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:
bin/your_app eval ":appsignal_tasks.diagnose()"

Mit einer Release-Binary

Wenn Ihre Elixir-App mit einem Tool wie 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:
bin/your_app command appsignal_tasks diagnose

Optionen

OptionBeschreibung
UmgebungsoptionDie im Befehl zu verwendende Umgebung festlegen, z. B. production oder staging.
--[no-]send-reportDen Bericht automatisch senden oder nicht senden.

Umgebungsoption

Eine bestimmte Umgebung mit der CLI auswählen.
MIX_ENV=prod mix appsignal.diagnose
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 (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:
mix appsignal.diagnose --send-report
Den Bericht nicht an AppSignal senden:
mix appsignal.diagnose --no-send-report

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. Die Konfigurationsoptionen werden je nach Herkunft der Konfigurationsoptionswerte und Anzahl der Quellen, die diese Option festlegen, wie unten gezeigt ausgegeben.
Shell
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.