Giter Site home page Giter Site logo

adelton / cluster-monitoring-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openshift/cluster-monitoring-operator

0.0 1.0 0.0 21.88 MB

Manage the OpenShift monitoring stack

License: Apache License 2.0

Makefile 0.99% Go 75.64% Shell 2.35% Python 0.69% Dockerfile 0.18% Jsonnet 20.16%

cluster-monitoring-operator's Introduction

Cluster Monitoring Operator

The Cluster Monitoring Operator manages and updates the Prometheus-based cluster monitoring stack deployed on top of OpenShift.

It contains the following components:

The deployed Prometheus Operator is intended to be used only for cluster-level monitoring. As such, the deployed Prometheus instance (prometheus-k8s) is responsible for monitoring and alerting on cluster and OpenShift components; it should not be extended to monitor user applications. Important: The Prometheus Operator managed by the Cluster Monitoring Operator will by default only look for ServiceMonitor resources in openshift-monitoring namespace.

Users interested in leveraging Prometheus for application monitoring on OpenShift should consider using OLM to easily deploy a Prometheus Operator and setup new Prometheus instances to monitor and alert on their applications.

Alertmanager is a cluster-global component for handling alerts generated by all Prometheus instances deployed in that cluster.

Metrics are collected from the following components:

Contributing new component integrations

The Cluster Monitoring Operator has many builtin ServiceMonitor resources which enable discovering the metrics endpoints of a variety of well-known components. Only components that must be created before the cluster monitoring stack belong in this repository, in order to solve the cyclic dependencies of bootstrapping.

To register a new builtin component, make the following changes:

  • Add a new ServiceMonitor manifest file to jsonnet/prometheus.jsonnet. An example of this can be seen for the OpenShift component "kube-controllers", here.
  • Re-generate the go-bindata code, using the pkg/manifests/bindata.go make target. This will also create a new file in assets/prometheus-k8s/ according to the name given in the jsonnet code.
  • Add a constant in pkg/manifests/manifests.go which points to the new manifest file, from assets/.
  • Add a new Factory method in pkg/manifests/manifests.go which loads the manifest using the new constant.
  • Add a step to PrometheusTask in pkg/tasks/prometheus.go which creates the ServiceMonitor using the Factory new method.

To add new builtin recording or alerting rules:

Run make pkg/manifests/bindata.go after you modify the files and make sure to add the modified files to the commit. All rules are automatically created, so no additional code changes are necessary.

Roadmap

  • Monitor etcd
  • Adapt Tectonic inherited alerts with OpenShift operational knowledge

Testing

  • Unit tests: make test-unit

  • End-to-end tests: make test-e2e

Release

Before a new OpenShift release happens make sure to pin the dependencies to the release branches:

  1. In kube-prometheus cut a release.
  2. In this repo set the "version" in jsonnet/jsonnetfile.json to the release branches for all the dependencies.

cluster-monitoring-operator's People

Contributors

abhinavdahiya avatar abyrne55 avatar alecmerdler avatar brancz avatar cblecker avatar crawford avatar deads2k avatar derekwaynecarr avatar ironcladlou avatar jaormx avatar lilic avatar metalmatze avatar mxinden avatar nak3 avatar njhale avatar openshift-merge-robot avatar paulfantom avatar pgier avatar rafael-azevedo avatar ravisantoshgudimetla avatar s-urbaniak avatar sichvoge avatar simonpasquier avatar sjenning avatar smarterclayton avatar squat avatar stlaz avatar wanghaoran1988 avatar wking avatar wmuha avatar

Watchers

 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.