Brian Brazil is a founder of Robust Perception and core developer of Prometheus. Prometheus started in 2012 in Berlin and is now used by over 500 companies. It is an open source monitoring system that collects and stores metrics, has a query language, and supports alerting. Prometheus uses client libraries to instrument code and exporters to collect metrics from systems. It can automatically discover services in Kubernetes and is designed for cloud native monitoring.
2. Who am I?
One of the four core developers of Prometheus
Founder of Robust Perception
Contributor to many open source projects
Ex-Googler, after 7 years in the Dublin office
3. A Little History
Prometheus started in 2012 by Matt Proud and
Julius Volz in Berlin.
In 2013 developed within SoundCloud, expanded to
support Bazooka (cluster manager/scheduler), Go,
Java and Ruby clients.
4. A Growing Community
In 2014 other companies start using it, myself
working at Boxever and Johannes at Docker.
Project matures: new storage, new text format.
In 2015 we "publicly release", adoption increases.
5. The Open Source Bonanza
Today there are 300+ contributors to the core
repositories, and 100+ 3rd party integrations.
There are 600+ subscribers on our mailing lists,
400+ people in IRC and an estimated 500+
companies using Prometheus in production.
Many companies funding Prometheus development.
6. What is Prometheus?
Metrics monitoring system (not logs).
A time series database. A query language.
Client libraries. An Ecosystem.
A Cloud Native approach to monitoring services.
8. Monitoring Approach
Service management went from manual to Chef to
Kubernetes. Need to do the same for monitoring.
Care about what matters to end users, such as
latency and error rates.
Distracting a human with alerts for everything that's
vaguely off only leads to burnout.
9. Kubernetes Service Discovery
Prometheus can discover all the pods, services,
containers, and nodes of a Kubernetes cluster.
Your Kubernetes labels and annotations can
become Prometheus labels.
Prometheus automatically picks up changes.
10. Client Libraries
Instrument your code to capture the metrics that
matter to you.
If upstream libraries are instrumented, you get that
for free!
Also many exporters, e.g. cAdvisor, MySQL, SNMP,
Consul, JMX, HAProxy, Minecraft, Factorio.
11. Instrumentation in CNCF projects
Kubernetes is instrumented with Prometheus,
allowing you to monitor the health of the cluster
itself.
Similarly Linkerd exposes metrics in our format.
Interceptors for GRPC and plugins for Fluentd can
feed data to Prometheus.
12. The PromQL Query Language
Arbitrary aggregation, joins and slicing all possible.
Can calculate how close you'll be to your quota in 4
hours, or the 95th percentile latency across an entire
datacenter.
If you can graph it, you can alert on it!
13. Analytics: Top 5 Docker images by CPU
topk(5,
sum by (image)(
rate(container_cpu_usage_seconds_total{
id=~"/system.slice/docker.*"}[5m]
)
)
)
14. Alert management
Not every alert results in a page.
Group similar alerts together, route them to the right
team and throttle notifications.
Designed to work reliably during network partitions.
15. What is Prometheus?
Metrics monitoring system (not logs).
A time series database. A query language.
Client libraries. An Ecosystem.
A Cloud Native approach to monitoring services.
16. Suggested Prometheus Talks, In A06 Today
12:35 Counting with Prometheus - Brian
14:40 Alerting in Cloud Native Environments - Fabian
16:20 Grafana is Not Enough: DIY User Interfaces for
Prometheus - David Kaltschmidt
17. Suggested Prometheus Talks, In A06 Tomorrow
11:30 Integrating Long-Term Storage with Prometheus - Julius
12:15 Prometheus: The Unsung Heroes - Alejandro Ramirez
14:00 Configuring Prometheus for High Performance - Björn
14:45 Workshop: Instrumenting Own Applications for
Prometheus - Alexandru Somesan & Frederic Branczyk - in C04,
registration required
18. Resources
Official Project Website: prometheus.io
User Mailing List: prometheus-users@googlegroups.com
Dev Mailing List: prometheus-developers@googlegroups.com
IRC: #prometheus on chat.freenode.net
Robust Perception Blog: www.robustperception.io/blog