-
Notifications
You must be signed in to change notification settings - Fork 5
Home
The Monitoring Indicator Protocol is an observability as code project which allows developers to define and expose performance, scaling, and service level indicators for monitoring and alerting. It encourages the practices of Site Reliability Engineering or SRE as defined in Google's freely available SRE book. SRE is seeing wide adoption across the industry as a method of delivering features at the maximum sustainable velocity by using tools like agreed upon availability targets.
NOTE: it is important that you do not include any sensitive information (passwords, for example) in your indicator documents. Our product does not treat these documents as sensitive information.
All of the packages in this repository consume a YAML formatted file. This file should live next to the code and describes how the product should be observed. Before breaking down each field, let's look at a simple example:
---
apiVersion: indicatorprotocol.io/v1
kind: IndicatorDocument
metadata:
labels:
deployment: awesome_cluster_1
spec:
product:
name: The Product
version: 0.0.1
indicators:
- name: http_traffic
promql: rate(http_responses_total{deployment="$deployment",source_id="my-product-source"}[1m])
thresholds:
- level: critical
operator: gte
value: 2000
- level: warning
operator: gte
value: 1500
documentation:
title: HTTP Traffic
description: Requests per second, per instance. This service starts to degrade in performance around 2000 requests/second.This simple YAML document represents the overall observability, indicator thresholds, and documentation of a product. With this document committed alongside code in a repository, a development team can track, easily define, and manage their observability giving greater ownership to the product team.
More details about the indicator format can be found in the reference documentation.