Upload
weaveworks
View
94
Download
1
Embed Size (px)
Citation preview
Prometheus – on-site vs in-the-cloudDavid Kaltschmidt @davkals
What is Prometheus
Timeseries DB
Borgmon (Google) for the rest of us
Open source
Cloud Native Foundation
Like Uber, but for Uber
Graphite + StatsDstats.api-server.tracks.post.500->93
InfluxDB
OpenTSDB
Get started$dockerrun-p9090:9090prom/prometheustime="2016-11-16T00:51:06Z"level=infomsg="Startingprometheus(version=1.2.1,branch=master,revision=dd66f2e94b2b662804b9aa1b6a50587b990ba8b7)"source="main.go:75"
time="2016-11-16T00:51:06Z"level=infomsg="Buildcontext(go=go1.7.1,user=root@fd9b0daff6bd,date=20161010-15:58:23)"source="main.go:76"
time="2016-11-16T00:51:06Z"level=infomsg="Loadingconfigurationfile/etc/prometheus/prometheus.yml"source="main.go:247"
time="2016-11-16T00:51:07Z"level=infomsg="Loadingseriesmapandheadchunks..."source="storage.go:354"
time="2016-11-16T00:51:07Z"level=infomsg="0seriesloaded."source="storage.go:359"
time="2016-11-16T00:51:07Z"level=warningmsg="NoAlertManagersconfigured,notdispatchinganyalerts"source="notifier.go:176"
Kubernetes
AWS
…
Bigger setup
Prometheus and Kubernetes: A Perfect Match
Prometheus and Kubernetes: Deploying
https://www.weave.works/blog/
Prometheus and Kubernetes: Monitoring Your Applications
Prometheus and Kubernetes: Monitoring Your Infrastructure
Dimensional datastats.api-server.tracks.post.500->93
VS
api_server_http_requests_total{job=“apiserver”,instance=“<sample1>”,method=“POST”,handler=“/tracks",status=“500"}->34
https://prometheus.io/docs/practices/naming/
PromQLhttp_requests_total{job="apiserver",handler=“/api/comments"}[5m]
sum(rate(http_requests_total[5m]))by(job)
topk(3,sum(rate(instance_cpu_time_ns[5m]))by(app,proc))
UI: Expression browser
UI: Grafana
Where does my data live?
Indexes on LevelDB
One file per time-series on disk
Prometheus in the cloud
API compatible
Keep query language
Throughput on par https://github.com/weaveworks/cortex
Retriever
scraping
your jobs
Your DC
Weave Cloud
Frontend, Authenticator
Distributor
Ingester
Distributor…
IngesterIngester
DynamoDB S3
Re-use your local Prometheus
remote_write:
url: https://cloud.weave.works/api/prom/push
basic_auth:
password: <redacted>
Retriever
DEMO
https://cloud.weave.works
Why not just run my own
Well, you kind of are.
But Cloud…
Reuse your Grafana• Type: Prometheus
• Url: https://cloud.weave.works/api/prom
• Access: Direct
• Http Auth: Basic Auth
• User: user (this is ignored, but must be non-empty)
• Password: (the same one your retrieval agent uses)
Wanted: Feedback for UI
Decide on Grafana integration
vs
something else
We’re hiring!London BerlinSan Francisco
David Kaltschmidt @davkals
Sign up at https://cloud.weave.works/
$ kubectl -n kube-system apply -f \
‘https://cloud.weave.works/k8s/cortex.yaml?t=...'
https://github.com/weaveworks/cortex
Try It Out!
Questions?