rhobs / rhobs/observability-operator

Support and expose an SLO-based monitoring interface

Open
#13 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
51
Forks
90
Avg merge
5d 15h
Merged PRs (30d)
22

Description

(Late comment on the proposal: https://github.com/openshift/enhancements/pull/866#pullrequestreview-771897761)

Hello, I am part of the MTSRE team at Red Hat and we would like to expose an SLO-based monitoring interface to our tenants. The goals behind this request are:

  • Be able to easily measure SLOs/SLIs and error budgets
  • Abstract as much of the monitoring stack as possible to our MTO (prometheus/alertmanager/grafana configs) so that they can spend their time doing feature development and bug fixing
  • Make sure we perform active reconciliation on this interface (operator-pattern)

There exists various tools out there that could help us abstract away prometheus/alertmanager and grafana configs:

Sloth: https://github.com/slok/sloth
Keptn: https://github.com/keptn/keptn

I personally like sloth a lot, as it already has a kubernetes operator and an SLO-based CRD: PrometheusServiceLevel. Also, it maintains a set of uniform grafana dashboards, that can be automatically deployed: https://sloth.dev/dashboards/.

Benefits of an SLO-based monitoring approach:

  • Provide better context on what you monitor, and put your users first
  • Abstract away the monitoring stack, as prometheus/alertmanager/grafana configs are challenging
  • Provide a uniform visualization interface by reusing the same grafana dashboards for all addons. This is a big plus for me as developing dashboards is extremely time-consuming, MTSRE engineers will get a huge productivity boost from an homogeneous visualization interface.
  • Reconcile SLOs and generated monitoring configs, to allow evolution and iteration (operator-pattern)

This is also the approach that was chosen by the AppSRE team, see /schemas/app-sre/slo-document-1.yml in app-interface.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked observability-enhancements proposal and the referenced Sloth Kubernetes operator and PrometheusServiceLevel examples. Review /schemas/app-sre/slo-document-1.yml in app-interface for the mentioned SLO approach. Done would require an agreed SLO-based interface with active reconciliation and the promised monitoring-stack abstraction.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, grafana, kubernetes, prometheus
Domain
infrastructure, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.