Skip to content
This repository was archived by the owner on Jul 19, 2022. It is now read-only.
John McBride edited this page Jan 14, 2020 · 37 revisions

Overview

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.

Indicator Format

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.

Clone this wiki locally