Breadcrumbs sind seit Ruby-Gem-Version 2.11.2 verfügbar.
Breadcrumbs wurden ursprünglich in unserer Front-End-JavaScript-Bibliothek implementiert, mit der Idee, dass sie beim Debuggen eines Problems helfen würden, wenn Sie eine Spur von Breadcrumbs mit (Benutzer-)Aktionen haben, die zu dem Fehler geführt haben.
Wir haben dann erkannt, dass dies auch für Back-End-Requests nützlich sein könnte, bei denen Sie eine zeitlich geordnete Liste von Aktionen hinzufügen können, die zu dem Fehler geführt haben. Beispielsweise das Hinzufügen von Breadcrumbs durch Entscheidungsbäume, die sonst nicht instrumentiert sind.
Verwendung
Standardmäßig werden keine Breadcrumbs verfolgt, aber es ist sehr einfach, eigene zu verfolgen.
Wo auch immer in Ihrer App ein interessantes Event, eine Operation oder eine Zustandsänderung auftritt, können Sie einen Breadcrumb wie folgt hinterlassen:
Appsignal.add_breadcrumb("Navigation", "https://example.com", "", { :response => 200 }, Time.now.utc)
Appsignal.add_breadcrumb("Network", "[GET] https://example.com", "", { :response => 500 })
Appsignal.add_breadcrumb("UI", "closed modal(change_password)", "User closed modal without actions")
Nur die letzten 20 hinzugefügten Breadcrumbs werden der aktuellen Transaktion hinzugefügt.
Breadcrumb-Optionen
| Option | Typ | Beschreibung |
|---|
| category | String | Kategorie, mit der das Event markiert wird |
| action | String | Kontextuelle Informationen zum Event |
| message | String | (optional) Eine Log-Nachricht oder ein anderer String, der an AppSignal gesendet wird |
| metadata | Object<String, String> | (optional) Ein Objekt mit Metadaten zum Event |
| time | Time-Objekt | (optional) Time-Objekt, das auf .to_i reagiert, Standard Time.utc |