Go on a Bughunt in production, but without a map!

 |  Dirk Kröhan

JavaLand 2023, März 2023, (Dirk Kröhan) Slides ansehen

Debugging ist fester Bestandteil im Alltag eines Software Entwicklers. Bugs passieren, Bugs sind normal, Bugs wird es auch immer geben. Es gibt viele Maßnahmen um Bugs möglichst frühzeitig zu erkennen, wie z.B. PairProgramming, Code Reviews, automatisierte Tests, QA Environment, etc.
Aber eins ist sicher: Auch mit der besten Vorsorge, werden es Bugs auf Produktion schaffen.

Bugs lassen sich dabei am besten auf der Umgebung untersuchen, wo sie auch auftreten. Doch für Logs von Produktion gelten sehr oft andere Spielregeln, sei es ein allgemein höheres Log Level oder aus Gründen des Datenschutzes. Oft fehlen genau die Informationen die für eine Fehleranalyse benötigt werden. Den Fehler dann erst lokal oder auf einer anderen Umgebung nachzustellen ist mühsam und kostet viel Zeit, wertvolle Zeit.

Für unsere Microservice-Architektur haben wir daher eine Lösung gebaut, die sich „On-Demand Debug Logging“ nennt. Damit sind wir in der Lage für einzelne Nutzer unseres Systems für ein bestimmtes Zeitintervall debug logs zu aktivieren. Innerhalb weniger Sekunde, ganz ohne Code Change oder Deployment. Somit sehen wir debug logs für alles was dieser User auf unserer API tut über alle beteiligten Microservices hinweg. Alle anderen Logs, insbesondere die von anderen Nutzern bleiben dabei unverändert.
Wie wir das ganze technisch realisiert haben, welche Vorteile es bringt und welchen Impact das für unsere Fehleranalysen hatte erfahrt hier in diesem Erfahrungsbericht.

Dirk Kröhan
Ein Beitrag von
Dirk Kröhan

Dirk Kröhan ist Software-Architekt bei QAware in Mainz. Neben seiner Passion für gute Softwarearchitektur entwickelt er leidenschaftlich gerne Cloud-Native Systeme.[...]

Mehr Informationen
Dirk