google / Prometheus Slo Burn Example
Licence: apache-2.0
An end to end example of implementing SLOs with prometheus, grafana and Go.
Stars: ✭ 73
Programming Languages
go
31211 projects - #10 most used programming language
Labels
Projects that are alternatives of or similar to Prometheus Slo Burn Example
Postgresql exporter
A Prometheus exporter for some postgresql metrics
Stars: ✭ 26 (-64.38%)
Mutual labels: monitoring, sre
Awesome Sre Tools
A curated list of Site Reliability and Production Engineering Tools
Stars: ✭ 186 (+154.79%)
Mutual labels: monitoring, sre
Cloudprober
An active monitoring software to detect failures before your customers do.
Stars: ✭ 1,269 (+1638.36%)
Mutual labels: monitoring, sre
Devops Readme.md
What to Read to Learn More About DevOps
Stars: ✭ 398 (+445.21%)
Mutual labels: monitoring, sre
Howtheysre
A curated collection of publicly available resources on how technology and tech-savvy organizations around the world practice Site Reliability Engineering (SRE)
Stars: ✭ 6,962 (+9436.99%)
Mutual labels: monitoring, sre
Tcpprobe
Modern TCP tool and service for network performance observability.
Stars: ✭ 207 (+183.56%)
Mutual labels: monitoring, sre
Awesome Sre
A curated list of Site Reliability and Production Engineering resources.
Stars: ✭ 7,687 (+10430.14%)
Mutual labels: monitoring, sre
Laravel Api Health
Monitor first and third-party services and get notified when something goes wrong!
Stars: ✭ 65 (-10.96%)
Mutual labels: monitoring
Bugsnag Python
Official bugsnag error monitoring and error reporting for django, flask, tornado and other python apps.
Stars: ✭ 69 (-5.48%)
Mutual labels: monitoring
Sip3 Ansible
Ansible scripts to install and configure SIP3
Stars: ✭ 64 (-12.33%)
Mutual labels: monitoring
Kmon
Linux Kernel Manager and Activity Monitor 🐧💻
Stars: ✭ 1,142 (+1464.38%)
Mutual labels: monitoring
Rabbitmq http api client
RabbitMQ HTTP API client for Ruby
Stars: ✭ 70 (-4.11%)
Mutual labels: monitoring
Sanic Prometheus
Prometheus metrics for Sanic, an async python web server
Stars: ✭ 63 (-13.7%)
Mutual labels: monitoring
Spring Boot Actuator Demo
Spring Boot Actuator: Health Check, Metrics Gathering, Auditing, and Monitoring
Stars: ✭ 61 (-16.44%)
Mutual labels: monitoring
Graylog Plugin Metrics Reporter
Graylog Metrics Reporter Plugins
Stars: ✭ 71 (-2.74%)
Mutual labels: monitoring
Kardia
A humane service status API module to expose any operational/internals of any Node.js based microservice. JSON format over HTTP protocol.
Stars: ✭ 70 (-4.11%)
Mutual labels: monitoring
Prometheus SLO Burn
This is home to example code for exposing SLIs using open source code in prometheus.
Build Images
-
$ gcloud builds submit --project $GOOGLE_PROJECT
in the root directory. - These images are currently published and publicly available from the project
cre-prometheus-slo-alerting
.
Terraform setup
- Install Terraform
- Set up terraform env (assumes you have a working gcloud install and a google project):
$ [[ $CLOUD_SHELL ]] || gcloud auth application-default login
$ export GOOGLE_PROJECT=$(gcloud config get-value project)
$ export REGION=europe-west2
$ cd terraform
-
$ terraform init
- installs terraform deps -
$ terraform apply -var "gcp_region=$REGION"
- Will ask you before it does anything. Will take ~10m to actually run. You can also runterraform plan
to just get a dry run output. -
$ gcloud container clusters get-credentials example --region $REGION --project $GOOGLE_PROJECT
- Configureskubectl
to work with the cluster you just created. -
$ kubectl create clusterrolebinding $USER-cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value account --project $GOOGLE_PROJECT)
- Gives your user permissions to create cluster role bindings that prometheus needs. $ kubectl apply -f ./k8s
Teardown
$ cd terraform; terraform destroy -var "gcp_region=$REGION"
Running Locally
- Start kubernetes (see https://kubernetes.io/docs/setup/pick-right-solution/#local-machine-solutions ).
- Run
$ kubectl config current-context
to make sure you are in the correct context. $ cd terraform
$ kubectl apply -f ./k8s
-
$ kubectl get services --namespace=monitoring
you will see something like:
$ kubectl get services --namespace=monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cloudprober NodePort 10.104.187.119 <none> 8080:31589/TCP 21m
grafana NodePort 10.104.206.150 <none> 8080:30431/TCP 21m
node-exporter ClusterIP None <none> 9100/TCP 21m
prometheus NodePort 10.101.58.210 <none> 9090:31517/TCP 21m
server NodePort 10.111.115.243 <none> 8080:31796/TCP 21m
This means that now you can visit http://localhost:30431 and see the grafana dashboard.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].