SlideShare a Scribd company logo
1 of 34
Download to read offline
Softwaremonitoring mit Prometheus
Georg Öttl
Follow @goettl
Übersicht
● Beruflicher Kontext
● Monitoring, was ist das?
● DevOps Demo verteiltes Gitblit
● Special: Prometheus für Java Entwickler
● Die Nadel im Heuhaufen: Export Metriken, Whitebox Monitoring, Data Science
Follow @goettl
Beru icher Kontext
Follow @goettl
● Enterprise Software Entwicklung
● Java Pro Developer (15+)
● DevOps 4 Infonova Entwickler
Services (3+)
● Knowledge Discovery / Data Science
Services (3)
Twitter @goettl
Über mich
Follow @goettl
Über Infonova
● 350 Angestellte, Standorte Graz, Wien, ~250 Entwickler
● 1 Operations-, 2 Entwicklungs-Abteilungen
● ~20-40 Projekte gleichzeitig
● 30 Personen bis 5 Personen
● Tochtergesellschaft von BearingPoint, 3800 Mitarbeiter
Usecase einer SME Software und Tech Consulting Firma
Follow @goettl
Monitoring
Follow @goettl
Warum Monitoren
● Wissen um Fehlverhalten
● Fehleranalyse
● Einblick, wie Software funktioniert
● Trendanalyse für technische / Business-Entscheidungen
Follow @goettl
Metrics, Tracing, Logging?
Follow @goettl
Blog Peter Bourgon - Metrics, Tracing and Logging
Bekannte Monitoring Tools
● Nagios, Check_Mk (ops)
● Opentsb, Graphite (Time Series Databases)
● Influxdb + Kapacitor (Ähnlich zu Prometheus)
● Elasticsearch + Logstash + Kibana + ...
● ...
Schwer in DevOps Stack zu integrieren
Follow @goettl
Praxis DevOps Stack
● Einige Teams konnten teilweise DevOps Stack umsetzen
● Monitoring ausgenommen, für Entwickler schwer zugängig
● Andere Firma
● Andere Abteilung
● Keine Zeit
!!! Mauer !!!!
Follow @goettl
DevOps: Demo verteiltes Gitblit
Follow @goettl
Demo: Setup & Prometheus Architektur
Follow @goettl
Demo: Prometheus Only
● Queries
● Visualisierung
● Alerts
● Navigation
Follow @goettl
Demo: Prometheus advanced Vis + Navigation
● Grafana / Dashboards
● Navigation mit Labels
● Monitoring zur Verifikation von Lasttests
● Statistische Auswertung mit Prometheus Onboard Mitteln
● Monitoring for the long tail
Follow @goettl
Monitoring als Teil der Entwicklung und des Deployments
● Verifikation von Performance Tests: Lasten meine Performance Tests das System
tatsächlich aus?
● Was ist noch möglich: Entwickler definiert Metrik (Variable) als Teil eines Tests
Follow @goettl
Special: Prometheus für Java Entwickler
Follow @goettl
Wie instrumentiert man bisher
● Json / CSV / View, ...
● JMX
● Libraries mit Hooks (Push)
Follow @goettl
Instrumentation Client am Beispiel Gitblit
● Client Instrumentierung
● Default Metriken für Log4j
● Default Metriken für JDK
● Eigene Metriken für Git Garbage Collection und Ldap Sync Zeit
Follow @goettl
Prometheus Client Instrumentierung einrichten
Gitblit Servlet / Guice WebModule konfigurieren
bind(MetricsServlet.class).in(Scopes.SINGLETON);
serve("/prometheus").with(MetricsServlet.class);
... das reicht ...
Follow @goettl
Client Metriken JDK
Default JDK Metriken registrieren
DefaultExports.initialize();
... das reicht ...
Follow @goettl
Client Metriken Log4j
Logger / Log4j instrumentieren
log4j.rootCategory=INFO, S, METRICS
...
log4j.appender.METRICS = io.prometheus.client.log4j.InstrumentedAppender
log4j.appender.METRICS.Append = false
... das reicht ...
Follow @goettl
Eigene Metriken
... das reicht ...
private final Counter garbageCollectsTotal = Counter.build()
.name("GIT_GARBAGE_COLLECTS_TOTAL")
.help("Number of git garbage collects issued by giblit for a repository")
.register();
...
garbageCollectsTotal.inc();
Follow @goettl
Demo: Exporter / Endpoint (Gitblit)
...
# TYPE jvm_memory_pool_bytes_max gauge
jvm_memory_pool_bytes_max{pool="Code Cache",} 2.5165824E8
jvm_memory_pool_bytes_max{pool="Metaspace",} -1.0
jvm_memory_pool_bytes_max{pool="Compressed Class Space",} 1.073741824E9
jvm_memory_pool_bytes_max{pool="PS Eden Space",} 1.320157184E9
jvm_memory_pool_bytes_max{pool="PS Survivor Space",} 3.670016E7
jvm_memory_pool_bytes_max{pool="PS Old Gen",} 2.793406464E9
# HELP log4j_appender_total Log4j log statements at various log levels
# TYPE log4j_appender_total counter
log4j_appender_total{level="debug",} 0.0
log4j_appender_total{level="warn",} 4.0
log4j_appender_total{level="trace",} 0.0
log4j_appender_total{level="error",} 1034.0
log4j_appender_total{level="fatal",} 0.0
log4j_appender_total{level="info",} 6049.0
...
Follow @goettl
Was haben wir gesehen?
● Einfaches Export Format
● Monitoring Schnittstelle wurde implementiert, nicht konfiguriert
● Whitebox Monitoring
Whitebox monitoring funktioniert ohne Entwickler nicht!
Follow @goettl
Die Nadel im Heuhaufen: Whitebox Monitoring, Statistik,
Datascience
Follow @goettl
Warum noch kompliziertere Methoden?
● Benachrichtigungen über Unerwartetes
● Vorhersagen über CPU / Ressourcen usw.
● Vorhersehen von Ausfällen
● Keine Fehlalarme oder fehlende Alarms in der Bereitschaft (Nachtschlaf!)
Follow @goettl
Don't do it!
Start simple. Don't use DeepLearning in your new application when a straight-
forward 15 minute rule-based system will do
Don't use ML, when rules do well
All the data in the world means nothing, if you can’t make sense of it. And that’s the
hard part.
Follow @goettl
Regeln wie ML Validieren!
● Quantitativ
● Precision / Recall für Alerts
● Python / R / Excel ...
● Qualitativ
● Support Tickets
● Feedback User
● Muss nicht vollautomatisiert passieren
Follow @goettl
Histogramme, Monitoring for the long tail
● Deskriptive Statistik mit Prometheus gut umsetzbar
● Anwendungsfall: Genaues Anschauen der 1% schlechtesten Werte
● Beispiel unten aggregiert Daten aus 2 gitblit instanzen und erstellt dafür ein
Histogram
histogram_quantile(0.99,
sum(
rate(
http_request_duration_seconds_bucket{method="GET"}[1m]
)
) by (le))
Follow @goettl
Outliers & Whitebox Monitoring
● WB Monitoring erlaubt optimalerweise das Beobachten von genau einer Variablen
(univariat)
● Dadurch sind weniger Daten notwendig um statistische Aussagen zu machen
● Gehört der aus der Reihe fallende Wert zu dieser Warscheinlichkeitsverteilung?
● Kann ich den Wert ignorieren / Ja oder Nein? Ist er ein Outlier Ja / Nein?
Follow @goettl
Outliers Detection Algorithms
Follow @goettl
https://github.com/twitter/AnomalyDetection
Demo Export Data
● Demo API + Datentypen
● Export python into Panda / Numpy, csv
● Kurzgesagt, Java ist kein gutes Tool zur Datenanalyse
Follow @goettl
Zusammenfassung: Was macht Prometheus für DevOps so
interessant
● Einfaches Setup
● All in one Lösung: Persistenz, Visualisierung, Alerts
● Effizient, ressourcenschonend
● Lebhafte opensource community
● DevOps fähig
● Rest Schnittstelle / Daten Extraktion zu erweiterten Datenanalyse
Follow @goettl
Danke für die Aufmerksamkeit!
Georg Öttl, Infonova
Twitter: @goettl
Follow @goettl

More Related Content

Similar to Softwaremonitoring mit prometheus

PROFACTOR Gruppe | Complete Inspect
PROFACTOR Gruppe | Complete InspectPROFACTOR Gruppe | Complete Inspect
PROFACTOR Gruppe | Complete InspectPROFACTOR Group
 
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte FehlerbehandlungLösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlungroskakori
 
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungengedoplan
 
DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013Nico Orschel
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDDRingvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDDCommunity ITmitte.de
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
Survivalkit für Codehausmeister
Survivalkit für CodehausmeisterSurvivalkit für Codehausmeister
Survivalkit für CodehausmeisterHendrik Lösch
 
Die Macht der Zahlen
Die Macht der ZahlenDie Macht der Zahlen
Die Macht der ZahlenGerrit Beine
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-CodequalitätFotiosKaramitsos
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenSebastian Springer
 
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g - DOAG SI...
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g   - DOAG SI...Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g   - DOAG SI...
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g - DOAG SI...OPITZ CONSULTING Deutschland
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
 
JTL-Wawi | Workflows
JTL-Wawi | WorkflowsJTL-Wawi | Workflows
JTL-Wawi | WorkflowsJTL-Software
 
BrightTag DAALA Berlin
BrightTag DAALA BerlinBrightTag DAALA Berlin
BrightTag DAALA Berlinluna-park GmbH
 
Autonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint SummaryAutonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint SummaryOliver Stadie
 
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...inovex GmbH
 
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...NETWAYS
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 

Similar to Softwaremonitoring mit prometheus (20)

PROFACTOR Gruppe | Complete Inspect
PROFACTOR Gruppe | Complete InspectPROFACTOR Gruppe | Complete Inspect
PROFACTOR Gruppe | Complete Inspect
 
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte FehlerbehandlungLösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlung
 
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 
DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDDRingvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
Survivalkit für Codehausmeister
Survivalkit für CodehausmeisterSurvivalkit für Codehausmeister
Survivalkit für Codehausmeister
 
Die Macht der Zahlen
Die Macht der ZahlenDie Macht der Zahlen
Die Macht der Zahlen
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in Webprojekten
 
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g - DOAG SI...
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g   - DOAG SI...Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g   - DOAG SI...
Integration und Betriebsüberwachung mit der Oracle SOA Suite 11g - DOAG SI...
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
 
JTL-Wawi | Workflows
JTL-Wawi | WorkflowsJTL-Wawi | Workflows
JTL-Wawi | Workflows
 
BrightTag DAALA Berlin
BrightTag DAALA BerlinBrightTag DAALA Berlin
BrightTag DAALA Berlin
 
Autonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint SummaryAutonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint Summary
 
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
 
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...
OSMC 2013 | Monitoring als Quelle der Wahrheit im Wellendeployment einer dyna...
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 

Softwaremonitoring mit prometheus

  • 2. Übersicht ● Beruflicher Kontext ● Monitoring, was ist das? ● DevOps Demo verteiltes Gitblit ● Special: Prometheus für Java Entwickler ● Die Nadel im Heuhaufen: Export Metriken, Whitebox Monitoring, Data Science Follow @goettl
  • 4. ● Enterprise Software Entwicklung ● Java Pro Developer (15+) ● DevOps 4 Infonova Entwickler Services (3+) ● Knowledge Discovery / Data Science Services (3) Twitter @goettl Über mich Follow @goettl
  • 5. Über Infonova ● 350 Angestellte, Standorte Graz, Wien, ~250 Entwickler ● 1 Operations-, 2 Entwicklungs-Abteilungen ● ~20-40 Projekte gleichzeitig ● 30 Personen bis 5 Personen ● Tochtergesellschaft von BearingPoint, 3800 Mitarbeiter Usecase einer SME Software und Tech Consulting Firma Follow @goettl
  • 7. Warum Monitoren ● Wissen um Fehlverhalten ● Fehleranalyse ● Einblick, wie Software funktioniert ● Trendanalyse für technische / Business-Entscheidungen Follow @goettl
  • 8. Metrics, Tracing, Logging? Follow @goettl Blog Peter Bourgon - Metrics, Tracing and Logging
  • 9. Bekannte Monitoring Tools ● Nagios, Check_Mk (ops) ● Opentsb, Graphite (Time Series Databases) ● Influxdb + Kapacitor (Ähnlich zu Prometheus) ● Elasticsearch + Logstash + Kibana + ... ● ... Schwer in DevOps Stack zu integrieren Follow @goettl
  • 10. Praxis DevOps Stack ● Einige Teams konnten teilweise DevOps Stack umsetzen ● Monitoring ausgenommen, für Entwickler schwer zugängig ● Andere Firma ● Andere Abteilung ● Keine Zeit !!! Mauer !!!! Follow @goettl
  • 11. DevOps: Demo verteiltes Gitblit Follow @goettl
  • 12. Demo: Setup & Prometheus Architektur Follow @goettl
  • 13. Demo: Prometheus Only ● Queries ● Visualisierung ● Alerts ● Navigation Follow @goettl
  • 14. Demo: Prometheus advanced Vis + Navigation ● Grafana / Dashboards ● Navigation mit Labels ● Monitoring zur Verifikation von Lasttests ● Statistische Auswertung mit Prometheus Onboard Mitteln ● Monitoring for the long tail Follow @goettl
  • 15. Monitoring als Teil der Entwicklung und des Deployments ● Verifikation von Performance Tests: Lasten meine Performance Tests das System tatsächlich aus? ● Was ist noch möglich: Entwickler definiert Metrik (Variable) als Teil eines Tests Follow @goettl
  • 16. Special: Prometheus für Java Entwickler Follow @goettl
  • 17. Wie instrumentiert man bisher ● Json / CSV / View, ... ● JMX ● Libraries mit Hooks (Push) Follow @goettl
  • 18. Instrumentation Client am Beispiel Gitblit ● Client Instrumentierung ● Default Metriken für Log4j ● Default Metriken für JDK ● Eigene Metriken für Git Garbage Collection und Ldap Sync Zeit Follow @goettl
  • 19. Prometheus Client Instrumentierung einrichten Gitblit Servlet / Guice WebModule konfigurieren bind(MetricsServlet.class).in(Scopes.SINGLETON); serve("/prometheus").with(MetricsServlet.class); ... das reicht ... Follow @goettl
  • 20. Client Metriken JDK Default JDK Metriken registrieren DefaultExports.initialize(); ... das reicht ... Follow @goettl
  • 21. Client Metriken Log4j Logger / Log4j instrumentieren log4j.rootCategory=INFO, S, METRICS ... log4j.appender.METRICS = io.prometheus.client.log4j.InstrumentedAppender log4j.appender.METRICS.Append = false ... das reicht ... Follow @goettl
  • 22. Eigene Metriken ... das reicht ... private final Counter garbageCollectsTotal = Counter.build() .name("GIT_GARBAGE_COLLECTS_TOTAL") .help("Number of git garbage collects issued by giblit for a repository") .register(); ... garbageCollectsTotal.inc(); Follow @goettl
  • 23. Demo: Exporter / Endpoint (Gitblit) ... # TYPE jvm_memory_pool_bytes_max gauge jvm_memory_pool_bytes_max{pool="Code Cache",} 2.5165824E8 jvm_memory_pool_bytes_max{pool="Metaspace",} -1.0 jvm_memory_pool_bytes_max{pool="Compressed Class Space",} 1.073741824E9 jvm_memory_pool_bytes_max{pool="PS Eden Space",} 1.320157184E9 jvm_memory_pool_bytes_max{pool="PS Survivor Space",} 3.670016E7 jvm_memory_pool_bytes_max{pool="PS Old Gen",} 2.793406464E9 # HELP log4j_appender_total Log4j log statements at various log levels # TYPE log4j_appender_total counter log4j_appender_total{level="debug",} 0.0 log4j_appender_total{level="warn",} 4.0 log4j_appender_total{level="trace",} 0.0 log4j_appender_total{level="error",} 1034.0 log4j_appender_total{level="fatal",} 0.0 log4j_appender_total{level="info",} 6049.0 ... Follow @goettl
  • 24. Was haben wir gesehen? ● Einfaches Export Format ● Monitoring Schnittstelle wurde implementiert, nicht konfiguriert ● Whitebox Monitoring Whitebox monitoring funktioniert ohne Entwickler nicht! Follow @goettl
  • 25. Die Nadel im Heuhaufen: Whitebox Monitoring, Statistik, Datascience Follow @goettl
  • 26. Warum noch kompliziertere Methoden? ● Benachrichtigungen über Unerwartetes ● Vorhersagen über CPU / Ressourcen usw. ● Vorhersehen von Ausfällen ● Keine Fehlalarme oder fehlende Alarms in der Bereitschaft (Nachtschlaf!) Follow @goettl
  • 27. Don't do it! Start simple. Don't use DeepLearning in your new application when a straight- forward 15 minute rule-based system will do Don't use ML, when rules do well All the data in the world means nothing, if you can’t make sense of it. And that’s the hard part. Follow @goettl
  • 28. Regeln wie ML Validieren! ● Quantitativ ● Precision / Recall für Alerts ● Python / R / Excel ... ● Qualitativ ● Support Tickets ● Feedback User ● Muss nicht vollautomatisiert passieren Follow @goettl
  • 29. Histogramme, Monitoring for the long tail ● Deskriptive Statistik mit Prometheus gut umsetzbar ● Anwendungsfall: Genaues Anschauen der 1% schlechtesten Werte ● Beispiel unten aggregiert Daten aus 2 gitblit instanzen und erstellt dafür ein Histogram histogram_quantile(0.99, sum( rate( http_request_duration_seconds_bucket{method="GET"}[1m] ) ) by (le)) Follow @goettl
  • 30. Outliers & Whitebox Monitoring ● WB Monitoring erlaubt optimalerweise das Beobachten von genau einer Variablen (univariat) ● Dadurch sind weniger Daten notwendig um statistische Aussagen zu machen ● Gehört der aus der Reihe fallende Wert zu dieser Warscheinlichkeitsverteilung? ● Kann ich den Wert ignorieren / Ja oder Nein? Ist er ein Outlier Ja / Nein? Follow @goettl
  • 31. Outliers Detection Algorithms Follow @goettl https://github.com/twitter/AnomalyDetection
  • 32. Demo Export Data ● Demo API + Datentypen ● Export python into Panda / Numpy, csv ● Kurzgesagt, Java ist kein gutes Tool zur Datenanalyse Follow @goettl
  • 33. Zusammenfassung: Was macht Prometheus für DevOps so interessant ● Einfaches Setup ● All in one Lösung: Persistenz, Visualisierung, Alerts ● Effizient, ressourcenschonend ● Lebhafte opensource community ● DevOps fähig ● Rest Schnittstelle / Daten Extraktion zu erweiterten Datenanalyse Follow @goettl
  • 34. Danke für die Aufmerksamkeit! Georg Öttl, Infonova Twitter: @goettl Follow @goettl