Giter Site home page Giter Site logo

akainocat / slo-exporter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from seznam/slo-exporter

0.0 0.0 0.0 685 KB

Slo-exporter computes standardized SLI and SLO metrics based on events coming from various data sources.

Home Page: https://github.com/seznam/slo-exporter/blob/master/README.md

License: Apache License 2.0

Dockerfile 0.09% Makefile 0.84% Go 97.66% Shell 1.41%

slo-exporter's Introduction

SLO exporter

CircleCI GitHub release (latest SemVer) Docker Pulls GitHub All Releases

Tool slo-exporter computes standardized Service Level Indicator (SLI) and Service Level Objectives (SLO) metrics based on events coming from various data sources. It follows principles from the SRE Workbook. With already prepared examples, Grafana dashboards, Prometheus recording rules and alerts, you can easily start to alert on SLO in your infrastructure.

Motivation

After more than year of experience of maintaining SLO alerting based on application metrics just from Prometheus, number of issues showed up which made it very difficult and unbearable. Few among others:

  • High cardinality of metrics if we wanted to easily find out which event type caused the alert or affected the error budget.
  • Classification of events ending up as huge regular expressions in the PromQLs.
  • Issues with default values for the computation if no events happened.
  • Need to filter out some events based on high cardinality metadata which cannot be added to metrics.

This lead us to decision that we need to process the events separately and in Prometheus do just the final computation and alerting.

How it works

Every ingested event has metadata which are used to classify it to specific SLO domain and class as described in the SRE Workbook chapter Alerting on SLOs. Additionally, name of the application where the event happened and identifier of the event is also added to ease the debugging of possible SLO violation. Finally, you decide based on the metadata if the event was a successful or failed one. Slo-exporter then exposes Prometheus metric slo_domain_slo_class:slo_events_total{slo_domain="...", slo_class="...", result="..."}. This gives you number of successful or failed events which is all you need to calculate the error budget, burn rate etc.

Installing

Build

In the root of the repository run

make

Docker

Prebuilt docker images can be found at Docker Hub.

docker run -it seznam/slo-exporter:<version> --help

Prebuilt binaries

See the the latest release page for the prebuilt binaries.

Configuration and examples

Detailed configuration documentation you can find here docs/configuration.

To see some real use-cases and examples you can look at the examples/.

Operating

Some advices on operating the slo-exporter, debugging and profiling can be found here docs/operating.md

Community

slo-exporter's People

Contributors

codesee-maps[bot] avatar david-vavra avatar freznicek avatar fusakla avatar jirislav avatar lksv avatar sergioasantiago avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.