Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni...
Transcript of Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni...
![Page 1: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/1.jpg)
Cloud Monitoring
mit PCP
Werner Keil
Developer Week 2017
27. Juni 2017
Darf's ein bisschen mehr
sein?
![Page 2: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/2.jpg)
Agenda
•Einleitung
•Performance Co-Pilot
•Dropwizard Metrics
•Apache Sirona
•Eclipse MicroProfile
•StatsD
•Demo
•Q&A
2 © 2012-2017 Creative Arts & Technologies
![Page 3: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/3.jpg)
Was bin Ich?
3 © 2012-2017 Creative Arts & Technologies
Werner Keil
• Consultant – Coach
• Creative Cosmopolitan
• Open Source Evangelist
• Software Architekt
• JCP EC Mitglied
• Eclipse UOMo Projektleiter
• JSR-363 Co Spec Lead
• IoT Enabler …
Email [email protected]
Twitter @wernerkeil
![Page 4: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/4.jpg)
Was ist Monitoring?
Unter Monitoring von Anwendungen versteht man
die systematische Erfassung, Messung und
Analyse des Verhaltens der betreffenden
Anwendungen, etwa CPU Auslastung,
Speicherverbrauch oder andere Informationen wie
die verwendeten Klassen und Threads.
A particular case is the monitoring of distributed
applications, aka the Cloud where an the
performance analysis of nodes and communication
between them pose additional challenges.
4 © 2012-2017 Creative Arts & Technologies
![Page 5: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/5.jpg)
Arten von Cloud Monitoring
5 © 2012-2017 Creative Arts & Technologies
![Page 6: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/6.jpg)
Herausforderungen auf Systemebene
•Effizienz und Skalierbarkeit• Unterstützung Zehntausender Überwachungsaufgaben
• Kosteneffizienz durch sparsame Nutzung von Ressourcen
•Monitoring QoS• Multi-Tenancy Umgebung
• Minimierung von Ressourcenkonflikten zwischen Überwachungsaufgaben
• Implikation von Multi-Tenancy• Hinzufügen und Entfernen von Überwachungsaufgaben
• Ressourcenkonflikte zwischen Überwachungsaufgaben
6 © 2012-2017 Creative Arts & Technologies
![Page 7: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/7.jpg)
Performance vs. Anzahl der Server
7 © 2012-2017 Creative Arts & Technologies
Anzahl der Server Performance (Werte pro Sekunde)
100 100
1000 1000
10000 10000
60 Elemente pro Server, Updates einmal pro Minute
Anzahl der Server Performance (Werte pro Sekunde)
100 1000
1000 10000
10000 100000
600 Elemente pro Server, Updates einmal pro Minute
![Page 8: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/8.jpg)
Monitoring Tipps
• Regelmäßig “Little’s Law” auf alle Daten
anwenden ... Hier die generische Variante aus der
Warteschlangen-Theorie:
Q = λ R
•Length = Arrival Rate x Response Time• z.B. 10 MB = 2 MB/s x 5 s
•Utilization = Arrival Rate x Service Time• z.B. 20% = 0.2 = 100 ms/s x 2 s
8 © 2012-2017 Creative Arts & Technologies
![Page 9: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/9.jpg)
Arten des Monitoring
Monitoring Logs
•Logstash
•Redis
•Elasticsearch
•Kibana Dashboard
9 © 2012-2017 Creative Arts & Technologies
Monitoring Performance
•Collectd
•Statsd
•PCP
•Graphite
•Datenbank (z.B.: PSQL)
•Grafana Dashboard
![Page 10: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/10.jpg)
Monitoring Logs – Kibana Dashboard
10 © 2012-2017 Creative Arts & Technologies
![Page 11: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/11.jpg)
Performance Monitoring
Wie wird dies traditionell gemacht?
• rsyslog/syslog-ng/journald
• top/iostat/vmstat/ps
•Mischung verschiedener Skript Sprachen
(bash/perl/python)
•Tools je nach Plattform sehr verschieden
•Korrekte Analyse erfordert entsprechenden
Kontext
11 © 2012-2017 Creative Arts & Technologies
![Page 12: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/12.jpg)
Performance Co-Pilot
PCP
http://www.pcp.io
GitHub
https://github.com/p
erformancecopilot
12 © 2012-2017 Creative Arts & Technologies
![Page 13: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/13.jpg)
Was ist PCP?
•Open Source Toolkit
•Analyse auf Systemebene
•Live und Historisch
•Erweiterbar (Monitors, Collectors)
•Verteilt
•Unix-artiges Komponentendesign
•Cross-Plattform
•Universelle Maßeinheiten
13 © 2012-2017 Creative Arts & Technologies
![Page 14: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/14.jpg)
PCP Grundlagen
Agents and Daemons
PCP basiert auf zwei
wesentlichen Bestandteilen:
1. Performance Metric
Domain Agents• Agents
2. Performance Metric
Collection Daemon• PMCD
14 © 2012-2017 Creative Arts & Technologies
![Page 15: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/15.jpg)
PCP Architektur
15 © 2012-2017 Creative Arts & Technologies
![Page 16: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/16.jpg)
PCP Metriken
pminfo --desc -tT --fetch disk.dev.read
disk.dev.read [per-disk read operations]
Data Type: 32-bit unsigned int InDom: 60.1
Semantics: counter Units: count
Help: Cumulative count of disk reads since
boot time
Values:
inst [0 or "sda"] value 3382299
inst [1 or "sdb"] value 178421
16 © 2012-2017 Creative Arts & Technologies
![Page 17: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/17.jpg)
PCP Agenten
17 © 2012-2017 Creative Arts & Technologies
Webserver
(apache/nginx)
DBMS
Network
Kernel
PMCD
![Page 18: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/18.jpg)
PCP Clients
18 © 2012-2017 Creative Arts & Technologies
AgentsPMCD
pmie
pmstat
pmval
pminfo
pmchart
![Page 19: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/19.jpg)
PCP Remote Clients
19 © 2012-2017 Creative Arts & Technologies
AgentsPMCD
Clients
Remote
PMCD
![Page 20: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/20.jpg)
PCP Datenmodell
• Metrics come from one source (host / archive)
• Source can be queried at any interval by any
monitor tool
• Hierarchical metric names
e.g. disk.dev.read and
aconex.response_time.avg
20 © 2012-2017 Creative Arts & Technologies
![Page 21: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/21.jpg)
PCP Datenmodell (2)
•Metrics are singular or set-valued
(“instance domain”)
• Metadata associated with every metric• Data type (int32, uint64, double, ...)
• Data semantics (units, scale, ...)
• Instance domain
21 © 2012-2017 Creative Arts & Technologies
![Page 22: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/22.jpg)
Performance Timeline
•Wohin geht die Zeit?
•Wohin geht sie gerade?
•Wohin wird sie gehen?
22 © 2012-2017 Creative Arts & Technologies
![Page 23: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/23.jpg)
Performance Timeline – PCP Toolkit
•Archive
•Live Monitoring
•Modellierung und Statistische Vorhersage
23 © 2012-2017 Creative Arts & Technologies
![Page 24: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/24.jpg)
Performance Timeline – PCP Toolkit
•Yesterday, last week, last month, ...
•All starts with pmlogger• Arbitrary metrics, intervals
• One instance produces one PCP archive for one host
• An archive consists of 3 files
• Metadata, temporal index, data volume(s)
•pmlogger_daily, pmlogger_check• Ensure the data keeps flowing
•pmlogsummary, pmwtf, pmdumptext
•pmlogextract, pmlogreduce
24 © 2012-2017 Creative Arts & Technologies
![Page 25: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/25.jpg)
Custom Instrumentation (Anwendungen)
25 © 2012-2017 Creative Arts & Technologies
![Page 26: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/26.jpg)
PCP – Parfait
Parfait besteht aktuell aus 4
wesentlichen Teilen:
•Monitoring
•DXM
•Timing
•Requests
26 © 2012-2017 Creative Arts & Technologies
![Page 27: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/27.jpg)
Parfait – Monitoring
•This is the ‘original’ PCP bridge metrics (heavily
modified)
•Simple Java objects (MonitoredValues) which
wrap a value (e.g. AtomicLong, String)
•MonitoredValues register themselves with a
registry (container)
27 © 2012-2017 Creative Arts & Technologies
![Page 28: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/28.jpg)
Parfait – Monitoring (2)
•When values changes, observers notice and
output accordingly• PCP
• JMX
• Other (Custom/Extended)
•Very simple to use
• ‘Default registry’ (legacy concept)
28 © 2012-2017 Creative Arts & Technologies
![Page 29: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/29.jpg)
Parfait – DXM
•This is the PCP output side of aconex-pcp-bridge
•Rewritten to use the new non-custom MMV PMDA
•Advantages:• Flexible, standardized, less maintenance work
•Disadvantages• Have to assign ID to each metric
•Map metrics names to ‘pseudo-PCP’ names, e.g.:• aconex.controllers.time.blah → aconex.controllers[mel/blah].time
•Placement of brackets is significant (determines
PCP domains)29 © 2012-2017 Creative Arts & Technologies
![Page 30: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/30.jpg)
Parfait – Timing
•Logs the resources consumed by a request (an
individual user action)
•Relies on a single request being thread-bound
(and threads being used exclusively)
•Basically needs a Map<Thread, Value>
•Take the value for a Thread at the start, and at the
end
•Delta is the ‘cost’ of that request
30 © 2012-2017 Creative Arts & Technologies
![Page 31: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/31.jpg)
Parfait – Timing Beispiel
[2010-09-22 15:02:13,466 INFO ][ait.timing.Log4jSink][http-8080-Processor3 gedq93kl][192.168.7.132][20][] Top taskssummaryfeatures:tasks
taskssummaryfeatures:tasks Elapsed time: own 380.146316 ms, total 380.14688 msTotal CPU: own 150.0 ms, total 150.0 ms User CPU: own 140.0 ms, total 140.0 msSystem CPU: own 10.0 ms, total 10.0 ms Blocked count: own 40, total 40 Blocked time: own 22 ms, total 22 ms Wait count: own 2, total 2 Wait time: own 8 ms, total 8 ms Database execution time: own 57 ms, total 57 ms Database execution count: own 11, total 11
Database logical read count: own 0, total 0 Database physical read count: own 0, total 0 Database CPU time: own 0 ms, total 0 ms
Database received bytes: own 26188 By, total 26188 By Database sent bytes: own 24868 By, total 24868 By Error Pages: own 0, total 0 Bobo execution time: own 40.742124 ms, total 40.742124 ms Bobo execution count: own 2, total 2 Bytes transferred via bobo search: own 0 By, total 0 By Super search entity count: own 0, total 0 Super search count: own 0, total 0 Bytes transferred via super search: own 0 By, total 0 By
Elapsed time during super search: own 0 ms, total 0 ms
31 © 2012-2017 Creative Arts & Technologies
![Page 32: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/32.jpg)
Parfait – Requests
•As well as snapshotting requests after completion,
for many metrics we can see meaningful ‘in-
progress’ values
•Simple JMX bean which ‘walks’ in-progress
requests
•Tie in with ThreadContext (MDC abstraction)
• Include UserID
•ThreadID
32 © 2012-2017 Creative Arts & Technologies
![Page 33: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/33.jpg)
PCP – Speed
Golang Implementation des PCP
Instrumentation API
Speed besteht aktuell aus 3
wesentlichen Teilen:
•Client
•Registry
•Metric
33 © 2012-2017 Creative Arts & Technologies
![Page 34: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/34.jpg)
PCP – Speed Metric
•SingletonMetric• This type defines a metric with no instance domain and only one value. It
requires type, semantics and unit for construction, and optionally takes a
couple of description strings. A simple construction
metric, err := speed.NewPCPSingletonMetric(
42, // initial value
"simple.counter", // name
speed.Int32Type, // type
speed.CounterSemantics, // semantics
speed.OneUnit, // unit
"A Simple Metric", // short description
"This is a simple counter metric to demonstrate the speed API", // long descr
)
34 © 2012-2017 Creative Arts & Technologies
![Page 35: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/35.jpg)
PCP für Container – Cgroup Accounting
• [subsys].stat files below /sys/fs/cgroup
• individual cgroup or summed over children
• blkio
• IOPs/bytes, service/wait time – aggregate/per-dev
• Split up by read/write, sync/async
• cpuacct
• Processor use per-cgroup - aggregate/per-CPU
• memory
• mapped anon pages, page cache, writeback, swap,
active/inactive LRU state35 © 2012-2017 Creative Arts & Technologies
![Page 36: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/36.jpg)
PCP für Container – Namespaces
• Example: cat /proc/net/dev
• Contents differ inside vs outside a container
• Processes (e.g. cat) in containers run in different network,
ipc, process, uts, mount namespaces
• Namespaces are inherited across fork/clone
• Processes within a container share common view
36 © 2012-2017 Creative Arts & Technologies
![Page 37: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/37.jpg)
PCP Container Analyse – Ziele
• Allow targeting of individual containers
• e.g. /proc/net/dev
• pminfo --fetch network
• vs
• pminfo –fetch –container=crank network
• Zero installation inside containers required
• Simplify your life (dev_t auto-mapping)
• Data reduction (proc.*, cgroup.*)
37 © 2012-2017 Creative Arts & Technologies
![Page 38: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/38.jpg)
PCP Container Analyse – Mechanismen
• pminfo -f –host=acme.com –container=crank network
• Wire protocol extension
• Inform interested PCP collector agents
• Resolving container names, mapping names to cgroups,
PIDs, etc.
• setns(2)
• Runs on the board, plenty of work remains
• New monitor tools with container awareness
38 © 2012-2017 Creative Arts & Technologies
![Page 39: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/39.jpg)
Was ist Dropwizard Metrics?
•Code instrumentation
•Meters
•Gauges
•Counters
•Histograms
•Web app instrumentation
•Web app health check
39 © 2012-2017 Creative Arts & Technologies
![Page 40: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/40.jpg)
Metrics Reporters
•Reporters• Console
• CSV
• Slf4J
• JMX
•Advanced reporters• Graphite
• Ganglia
40 © 2012-2017 Creative Arts & Technologies
![Page 41: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/41.jpg)
Metrics 3rd Party Erweiterungen
•AspectJ
• InfluxDB
•StatsD
•Cassandra
•Spring
41 © 2012-2017 Creative Arts & Technologies
![Page 42: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/42.jpg)
Metrics Grundlagen
•MetricsRegistry• A collection of all the metrics for your application
• Usually one instance per JVM
• Use more in multi WAR deployment
•Names• Each metric has a unique name
• Registry has helper methods for creating names
MetricRegistry.name(Queue.class, "items", "total")
//com.example.queue.items.total
MetricRegistry.name(Queue.class, "size", "byte")
//com.example.queue.size.byte
42 © 2012-2017 Creative Arts & Technologies
![Page 43: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/43.jpg)
Metrics Elemente
•Gauges• The simplest metric type: it just returns a value
final Map<String, String> keys = new HashMap<>();
registry.register(MetricRegistry.name("gauge", "keys"), new Gauge<Integer>() {
@Override
public Integer getValue() {
return keys.keySet().size();
}
});
43 © 2012-2017 Creative Arts & Technologies
![Page 44: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/44.jpg)
Metrics Elemente (2)
•Counters• Incrementing and decrementing 64.bit integer
final Counter counter= registry.counter(MetricRegistry.name("counter",
"inserted"));
counter.inc();
44 © 2012-2017 Creative Arts & Technologies
![Page 45: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/45.jpg)
Metrics Elemente (3)
•Histograms• Measures the distribution of values in a
stream of data
final Histogram resultCounts = registry.histogram(name(ProductDAO.class, "result-counts");
resultCounts.update(results.size());
•Meters• Measures the rate at which a set of events occur
final Meter meter = registry.meter(MetricRegistry.name("meter", "inserted"));
meter.mark();
45 © 2012-2017 Creative Arts & Technologies
![Page 46: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/46.jpg)
Metrics Elemente (4)
•Timers• A histogram of the duration of a type of event and
a meter of the rate of its occurrence
Timer timer = registry.timer(MetricRegistry.name("timer", "inserted"));
Context context = timer.time();
//timed ops
context.stop();
46 © 2012-2017 Creative Arts & Technologies
![Page 47: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/47.jpg)
Metrics – Graphite Reporter
final Graphite graphite = new Graphite(new InetSocketAddress("graphite.example.com", 2003));
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
.prefixedWith("web1.example.com")
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.filter(MetricFilter.ALL)
.build(graphite);
reporter.start(1, TimeUnit.MINUTES);
Metrics can be prefixed
Useful to divide environment metrics: prod, test
47 © 2012-2017 Creative Arts & Technologies
![Page 48: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/48.jpg)
48 © 2012-2017 Creative Arts & Technologies
Metrics – Grafana Anwendungsübersicht
![Page 49: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/49.jpg)
Apache Sirona – Inspiriert durch JaMon
49 © 2012-2017 Creative Arts & Technologies
![Page 50: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/50.jpg)
Sirona Grundlagen
•Repository
• The repository is a singleton for the JVM. It is the entry point to get
access to counters and gauges.
public interface Repository extends Iterable<Counter> {
Counter getCounter(Counter.Key key);
void clear();
StopWatch start(Counter counter);
Map<Long, Double> getGaugeValues(long start, long end, Role role);
void stopGauge(Role role);
}
50 © 2012-2017 Creative Arts & Technologies
![Page 51: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/51.jpg)
Sirona Bestandteile
•Counter• A counter is a statistic and concurrency holder. It aggregates the
information provided computing the average, min, max, sum of logs, ….
public interface Counter {
Key getKey();
void reset();
void add(double delta);
AtomicInteger currentConcurrency();
int getMaxConcurrency();
double getMax();
double getMin();
long getHits();
double getSum();
double getStandardDeviation();
double getVariance();
double getMean();
double getSecondMoment();
51 © 2012-2017 Creative Arts & Technologies
![Page 52: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/52.jpg)
Sirona Bestandteile (2)
•Gauge
• A gauge is a way to get a measure. It is intended to get a history of a
metric.
public interface Gauge {
Role role();
double value();
}
•StopWatch
• A StopWatch is just a handler for a measure with a counter.
public interface StopWatch {
long getElapsedTime();
StopWatch stop();
}
52 © 2012-2017 Creative Arts & Technologies
![Page 53: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/53.jpg)
Was ist Eclipse MicroProfile?
•Configuration
•Failover / Circuit Breaker
•Web app health check
•Telemetry / Monitoring
•Security (Web Token)
53 © 2012-2017 Creative Arts & Technologies
![Page 54: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/54.jpg)
Was ist StatsD?
A network daemon that runs on the Node.js
platform and listens for statistics, like counters and
timers, sent over UDP or TCP and sends
aggregates to one or more pluggable backend
services (e.g., Graphite).
StatsD was inspired (heavily) by the project (of the
same name) at Flickr.
54 © 2012-2017 Creative Arts & Technologies
![Page 55: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/55.jpg)
Demo
![Page 56: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/56.jpg)
Q & A
![Page 57: Darfs ein Bisserl Mehr sein? · Cloud Monitoring mit PCP Werner Keil Developer Week 2017 27. Juni 2017 Darf's ein bisschen mehr sein?](https://reader034.fdocument.pub/reader034/viewer/2022042220/5ec5fb64e3c11702607e15c2/html5/thumbnails/57.jpg)
Performance Co-Pilot
http://www.pcp.io
Dropwizard Metrics
http://metrics.dropwizard.io
MicroProfile Health
https://github.com/eclipse/microprofile-health
Apache Sirona
http://sirona.apache.org/
StatsD
https://github.com/etsy/statsd/wiki
Links