All Projects → google → Prometheus Slo Burn Example

google / Prometheus Slo Burn Example

Licence: apache-2.0
An end to end example of implementing SLOs with prometheus, grafana and Go.

Programming Languages

go
31211 projects - #10 most used programming language

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
Jaeger Ui
Web UI for Jaeger
Stars: ✭ 639 (+775.34%)
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
Kapo
Wrap any command in a status socket
Stars: ✭ 45 (-38.36%)
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
Skinny
The Skinny Distributed Lock Service
Stars: ✭ 70 (-4.11%)
Mutual labels:  sre
Cruise
Relax, we got this.
Stars: ✭ 64 (-12.33%)
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 run terraform plan to just get a dry run output.
  • $ gcloud container clusters get-credentials example --region $REGION --project $GOOGLE_PROJECT - Configures kubectl 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

$ 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].