×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@errordeveloper An Introduction to Prometheus for App Developers
Slide 2
Slide 2 text
I build apps, and I do microservices
Slide 3
Slide 3 text
I let k8s run my apps for me
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
observability is absolutely essential
Slide 6
Slide 6 text
end goal: continuous improvement
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
why must I instrument my app!?
Slide 12
Slide 12 text
microservices is a culture
Slide 13
Slide 13 text
what is Prometheus & why use it?
Slide 14
Slide 14 text
what is Prometheus & why use it?
Slide 15
Slide 15 text
how do I instrument my app for Prometheus?
Slide 16
Slide 16 text
/metrics
Slide 17
Slide 17 text
/metrics Content-Type: text/plain
Slide 18
Slide 18 text
Slide 19
Slide 19 text
new_users_count 250.0
Slide 20
Slide 20 text
{}
Slide 21
Slide 21 text
new_users_count{locale=“en_GB”} 49.0 new_users_count{locale=“pt_BR”} 51.0 new_users_count{locale=“ru_RU”} 45.0 new_users_count{locale=“zh_HK”} 55.0 new_users_count{locale=“zh_TW”} 50.0
Slide 22
Slide 22 text
> curl -i http://myapp:8080/metrics Content-Type: text/plain ... process_uptime_seconds 145236.015 http_requests_duration_seconds_count 2.0 new_users_count 250.0
Slide 23
Slide 23 text
> curl -i http://myapp:8080/metrics Content-Type: text/plain ... http_requests_count{method="GET",status="200",uri="/"} 1.0 http_requests_count{method=“PUT”,status=“403",uri="/"} 1.0
Slide 24
Slide 24 text
prometheus.io/docs/concepts/metric_types
Slide 25
Slide 25 text
how do I use it to improve my app?
Slide 26
Slide 26 text
process_uptime_seconds
Slide 27
Slide 27 text
process_uptime_seconds{job=“myapp”}
Slide 28
Slide 28 text
http_requests_duration_seconds_count
Slide 29
Slide 29 text
http_requests_duration_seconds_count{ job=“myapp”, method=“GET”, uri=“/”, }
Slide 30
Slide 30 text
sum( http_requests_duration_seconds_count{ job=“myapp”, method=“GET”, uri=“/”, } )
Slide 31
Slide 31 text
sum( rate( http_requests_duration_seconds_count{ job=“myapp”, method=“GET”, uri=“/”, }[1m] ) )
Slide 32
Slide 32 text
up
Slide 33
Slide 33 text
up{job=“myapp"}
Slide 34
Slide 34 text
sum( up{job=“myapp"} ) by (job)
Slide 35
Slide 35 text
tutorial: step-by-step guide to Prometheus with Node.js http://github.com/errordeveloper/prom-nodejs-demo
Slide 36
Slide 36 text
cloud.weave.works
Slide 37
Slide 37 text
[email protected]
slack.weave.works