Slide 1

Slide 1 text

Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? Alexander Schwartz, Principal Software Engineer JavaLand | 2022-03-15

Slide 2

Slide 2 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 2 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 3

Slide 3 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 3 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 4

Slide 4 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 4 Wenn ein Fehler auftritt, aber sich keiner beschwert, besteht dann trotzdem ein Problem?

Slide 5

Slide 5 text

• Dokumente ohne Ablenkung in der Entwicklungsumgebung schreiben • Vorschau der geschriebenen Texte • Kollaboration und Versionierung mit Git • Vorlagen liefern Hilfen und Struktur • Nahtloses Einbinden in Continuous Delivery Prozesse Viele 1000 Downloads für jedes neue Release. 💣 Alle Fehler, die auftreten, sind erst einmal nur lokal. CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 5 Ein IDE-Plugin um lokal Texte zu bearbeiten https://intellij-asciidoc-plugin.ahus1.de/

Slide 6

Slide 6 text

In diesem Fall: • Weitgehende statische Website mit Links • Dynamische Navigation und Suche mit etwas JavaScript 💣 Links können ins Leere führen 💣 JavaScript-Fehler im Browser sind nur in der Console sichtbar CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 6 Eine Website mit ein bisschen JavaScript https://intellij-asciidoc-plugin.ahus1.de/

Slide 7

Slide 7 text

Für ein IDE Plugin User: • Ärgern • Link zum Ticketsystem suchen • Bei GitHub anmelden • Informationen zusammensuchen • Abschicken Developer: • Rückfragen stellen • Testversionen bereitstellen • Rückmeldungen abwarten CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 7 Klassische Fehlerkette Für eine Website User: • Ärgern • Kontaktformular suchen • Informationen zusammensuchen • Abschicken Developer: • Rückfragen stellen • Testversionen bereitstellen • Rückmeldungen abwarten

Slide 8

Slide 8 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 8 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 9

Slide 9 text

Sentry ist eine Error-Tracker-Software. Eingehende Fehler-Events gruppiert es automatisch zu Issues. Für neue Issues verschickt es Notifications. Release-Trigger, User Feedback, Source-Code- und Bug-Tracker-Integration sind optional. Produkt-Homepage: https://sentry.io/ CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 9 Sentry: Sammeln von Fehlern Events Release-Trigger Notifications Bug-Tracker Dashboard Manage Issues Offenlegung: Das Open Source Projekt IntelliJ AsciiDoc Plugin nutzt einen Sponsored Account. Damit kann es bestimmte Funktionen kostenlos nutzen, die normalerweise kostenpflichtig sind. User Feedback Source Code

Slide 10

Slide 10 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 10 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 11

Slide 11 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 11 Sentry: Integrationen, die Fehler einsammeln Integration für Java via Log4j:

Slide 12

Slide 12 text

// initialize framework Sentry.init({ dsn: "https://...", beforeSend(event, hint) { // show user inquiry popup on exceptions if (event.exception) { Sentry.showReportDialog({ eventId: event.event_id, lang: 'en' }); } return event; }, }); // Sample code on a 404 page Sentry.captureException("Page missing: location: " + window.location.href); CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 12 Sentry: Integrationen, die Fehler einsammeln Integration für Plain Old JavaScript über CDN:

Slide 13

Slide 13 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 13 Sentry: Integrationen, die Fehler einsammeln Integration in Frameworks wie Vue, Angular und React. npm install --save @sentry/vue import Vue from "vue"; import * as Sentry from "@sentry/vue"; Sentry.init({ Vue: Vue, dsn: "https://...", logErrors: true });

Slide 14

Slide 14 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 14 Im Browser: Automatisches Event und optionales User Feedback

Slide 15

Slide 15 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 15 In IntelliJ: Versand nach Freigabe durch den Nutzer mit Fehlerbeschreibung

Slide 16

Slide 16 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 16 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 17

Slide 17 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 17 Dashboard mit Issues

Slide 18

Slide 18 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 18 Dashboard mit Issues

Slide 19

Slide 19 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 19 Benachrichtigung bei neuen Issues

Slide 20

Slide 20 text

name: Release on: release: types: [prereleased, ...] jobs: release: name: Publish Plugin runs-on: ubuntu-latest steps: # https://github.com/marketplace/actions/sentry-release - name: Create Sentry release uses: getsentry/action-release@v1 env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} with: environment: ... version: ${{ github.ref }} CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 20 Neues Release via Pipeline … in diesem Beispiel via GitHub Actions

Slide 21

Slide 21 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 21 Neues Release via Pipeline

Slide 22

Slide 22 text

• Event enthält Basis-Informationen inkl. Stacktrace • Meta-Daten können angereichert werden (z. B. Software-Version und installierte Plugins) Optional: • Attachments für weitergehende Informationen • User Message als Fehlerbeschreibung im Event • User Feedback als nachgelagerte Mitteilung des Nutzers (wird anhand der Event-ID zugeordnet) CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 22 Eventmechanismen Event User Feedback User Message Attachments Attachments Metadaten

Slide 23

Slide 23 text

23 • Meta-Daten können nach Bedarf ergänzt oder reduziert werden. • Über das Konzept Exception-mit-Attachment können Zusatzinformationen nach Sentry übergeben werden; es wird etwas Adapter-Code für die Übergabe benötigt. CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz Deep Dive Metadaten und Attachments Live Coding am Beispiel des IntelliJ AsciiDoc Plugins.

Slide 24

Slide 24 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 24 Data Scrubbing

Slide 25

Slide 25 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 25 Sentry in Aktion Motivation automatisches Fehlertracking 1. Sentry: was es kann 2. Sentry einbinden 3. Sentry Dashboard und Benachrichtigungen 4. Erfahrungen und Zusammenfassung 5.

Slide 26

Slide 26 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 26 Valide gemeldete Probleme führen zu behobenen Fehlern im Code oder Workarounds in der Plattform. Rauschen („Noise“) führt zu Nacharbeit, führt aber nie zu einem behobenen Fehler. Fehlerarten Valide gemeldete Probleme Seltene Datenkonstellationen Seltene Thread-Konstellationen Fehler in der Plattform Ganz normale Fehler

Slide 27

Slide 27 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 27 Valide gemeldete Probleme führen zu behobenen Fehlern im Code oder Workarounds in der Plattform. Rauschen („Noise“) führt zu Nacharbeit, führt aber nie zu einem behobenen Fehler. Stille („Silence“) sind Probleme, von denen die Entwickler gerne wüssten, worüber sie aber nicht benachrichtigt werden. Fehlerarten Valide gemeldete Probleme Rauschen Seltene Datenkonstellationen Fehler in der Plattform Seltene Thread-Konstellationen Lokale Rechner-Probleme Fehler in der Plattform Web-Crawler / Exploit-Crawler Ganz normale Fehler Duplikate von echten Fehlern

Slide 28

Slide 28 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 28 Valide gemeldete Probleme führen zu behobenen Fehlern im Code oder Workarounds in der Plattform. Rauschen („Noise“) führt zu Nacharbeit, führt aber nie zu einem behobenen Fehler. Stille („Silence“) sind Probleme, von denen die Entwickler gerne wüssten, worüber sie aber nicht benachrichtigt werden. Fehlerarten Valide gemeldete Probleme Rauschen Stille Seltene Datenkonstellationen Fehler in der Plattform IDE-/Browser-Absturz Seltene Thread-Konstellationen Lokale Rechner-Probleme Fehler in der Event-Integration Fehler in der Plattform Web-Crawler / Exploit-Crawler Performance-Probleme Ganz normale Fehler Duplikate von echten Fehlern Verhalten anders als erwartet

Slide 29

Slide 29 text

Sentry ist eine Error-Tracker-Software. Eingehende Fehler-Events gruppiert es automatisch zu Issues. Für neue Issues verschickt es Notifications. Release-Trigger, User Feedback, Source-Code- und Bug-Tracker-Integration sind optional. Produkt-Homepage: https://sentry.io/ CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 29 Sentry: Sammeln von Fehlern Events Release-Trigger Notifications Bug-Tracker Dashboard Manage Issues User Feedback Source Code

Slide 30

Slide 30 text

CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz • Mehr Meldungen durch Sentry • Mehr Kontextinformationen in der Meldung • Zeitnahe Rückmeldung bei neuen Fehlern oder nach Updates • Mehr gefixte Fehler • Rauschen abhängig von Plattform und Kanal 30 Zusammenfassung https://sentry.io/

Slide 31

Slide 31 text

Kontakt Alexander Schwartz Principal Software Engineer [email protected] https://www.ahus1.de @ahus1de CC BY-NC-SA 4.0 | Sentry in Aktion: Wie wäre es, wenn wir nur Fehlermeldungen protokollieren würden? | März 2022 | Alexander Schwartz 31