Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4817

Re: [Python-de] Unittests vs Monitoring-Checks

From Marcel Hellkamp <marc@gsites.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Unittests vs Monitoring-Checks
Date 2017-06-22 18:00 +0200
Message-ID <mailman.214.1498147638.10125.python-de@python.org> (permalink)
References <03e3b2fd-9b09-ea7c-0c6c-b33f2ece2412@thomas-guettler.de> <87b8359c-24ae-8cef-96d1-51c9d5c1c297@gsites.de>

Show all headers | View raw


Hi Liste,

On 06/16/2017 08:59 AM, Thomas Güttler wrote:
> Jetzt gibt es aber noch einen anderen Bereich: Monitoring-Checks. Also
> Prüfungen,
> die nicht im Rahmen vom CI passieren, sondern Prüfungen, die für
> produktive Systeme sind.
> [...]
> Zweite Frage: Wie läuft das bei euch mit Checks: Entwicklung,
> Deployment, Ausführung, Weiterleitung, ...?

Im Idealfall ist jeder Dienst oder Service für die Interpretation seine
eigenen Metriken selbst verantwortlich und liefert nur einen
Ampel-Status ans Monitoring zurück: Also grün (alles gut), geb
(überlastet oder instabil) oder rot (fehlerhaft oder offline). Die
Health-Checks sind dabei Teil der zu entwickelnden Software und werden
ihrerseits durch Unit- oder Integrations-Tests abgedeckt. Ihre
Entwicklung unterscheidet sich nicht großartig von der anderer
Funktionalitäten.

Beispiel: Wenn ich den Auth-Service mit falschen LDAP Konfiguration
starte und keine Verbindung zustande kommt, sollte sein Health-Check rot
sein. Außerdem sollte eine bestimmte Warnung im Log auf tauchen. Das
kann ich lokal und unabhängig vom verwendeten Monitoring-Tool entwickeln
und automatisiert in einem einfach Integrations-Test prüfen.

Das Monitoring-Tool hat dann nur noch eine liste von Diensten, die es
prüfen soll und braucht keinerlei Detailwissen mehr. Auch Abhängigkeiten
zwischen Diensten müssen nicht mehr mühsam gepflegt werden, da jeder
Dienst seine eigenen Abhängigkeiten selbst prüft. Wenn was gelb oder rot
ist, schau ich ins (zentrale) log und sehe dort die Details.

Der Zustand der VMs (Auslastung, Ram-Verbrauch u.s.w.) ist völlig
unabhängig davon und wird mit Standard-Tools (nagios,
telegraf+influxdb+grafana) protokolliert. Diese Checks sind allerdings
relativ simpel und überall gleich, daher muss dort nicht viel entwickelt
oder getestet werden.

Frage beantwortet?

mfg, Marcel

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] Unittests vs Monitoring-Checks Marcel Hellkamp <marc@gsites.de> - 2017-06-22 18:00 +0200

csiph-web