All Projects → ContainerSolutions → Helm Monitor

ContainerSolutions / Helm Monitor

Licence: mit
Monitor K8S Helm release, rollback on metrics behavior (Prometheus, Elasticsearch, Sentry)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Helm Monitor

K8s Tew
Kubernetes - The Easier Way
Stars: ✭ 269 (-18.98%)
Mutual labels:  elasticsearch, prometheus, helm
Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (-73.49%)
Mutual labels:  elasticsearch, prometheus
Helm Elasticstack
Kubernetes Helm Charts and Tools to run Elastic Stack(ELK) on Azure Container Service(AKS)
Stars: ✭ 76 (-77.11%)
Mutual labels:  elasticsearch, helm
Helm Elasticsearch
An Elasticsearch cluster on top of Kubernetes, made easier, with Helm.
Stars: ✭ 124 (-62.65%)
Mutual labels:  elasticsearch, helm
Kubernetes Learning
《从Docker到Kubernetes进阶课程》在线文档
Stars: ✭ 1,128 (+239.76%)
Mutual labels:  elasticsearch, prometheus
Graylog Plugin Metrics Reporter
Graylog Metrics Reporter Plugins
Stars: ✭ 71 (-78.61%)
Mutual labels:  elasticsearch, prometheus
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (-68.07%)
Mutual labels:  elasticsearch, prometheus
Nboost
NBoost is a scalable, search-api-boosting platform for deploying transformer models to improve the relevance of search results on different platforms (i.e. Elasticsearch)
Stars: ✭ 549 (+65.36%)
Mutual labels:  elasticsearch, helm
Prometheus Es Exporter
Prometheus Elasticsearch Exporter
Stars: ✭ 184 (-44.58%)
Mutual labels:  elasticsearch, prometheus
k3s-gitops
GitOps principles to define kubernetes cluster state via code
Stars: ✭ 103 (-68.98%)
Mutual labels:  helm, prometheus
sentry exporter
Prometheus exporter for Sentry
Stars: ✭ 23 (-93.07%)
Mutual labels:  sentry, prometheus
Prometheus Es Adapter
Prometheus remote storage adapter for Elasticsearch
Stars: ✭ 57 (-82.83%)
Mutual labels:  elasticsearch, prometheus
Homer7 Docker
HOMER 7 Docker Images
Stars: ✭ 47 (-85.84%)
Mutual labels:  elasticsearch, prometheus
Elasticsearch exporter
Elasticsearch stats exporter for Prometheus
Stars: ✭ 1,189 (+258.13%)
Mutual labels:  elasticsearch, prometheus
Books Recommendation
程序员进阶书籍(视频),持续更新(Programmer Books)
Stars: ✭ 558 (+68.07%)
Mutual labels:  elasticsearch, prometheus
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+13734.34%)
Mutual labels:  elasticsearch, prometheus
Elasticsearch Prometheus Exporter
Prometheus exporter plugin for Elasticsearch
Stars: ✭ 409 (+23.19%)
Mutual labels:  elasticsearch, prometheus
Docker monitoring logging alerting
Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting.
Stars: ✭ 479 (+44.28%)
Mutual labels:  elasticsearch, prometheus
Alertmanager2es
Receives HTTP webhook notifications from AlertManager and inserts them into an Elasticsearch index for searching and analysis
Stars: ✭ 173 (-47.89%)
Mutual labels:  elasticsearch, prometheus
K8s
Important production-grade Kubernetes Ops Services
Stars: ✭ 253 (-23.8%)
Mutual labels:  elasticsearch, prometheus

Helm Monitor plugin

Monitor a release, rollback to a previous version depending on the result of a PromQL (Prometheus), events (Sentry), Lucene or DSL query (Elasticsearch).

Helm monitor failure

Demo

asciicast

Install

$ helm plugin install https://github.com/ContainerSolutions/helm-monitor

Usage

Helm monitor diagram

A rollback happen only if the number of result from the query is greater than 0.

You can find a step-by-step example in the ./examples directory.

Prometheus

Monitor the peeking-bunny release against a Prometheus server, a rollback is initiated if the 5xx error rate is over 0 as measured over the last 5 minutes.

$ helm monitor prometheus peeking-bunny 'rate(http_requests_total{code=~"^5.*$"}[5m]) > 0'

You can connect to a given Prometheus instance, by default it will connect to http://localhost:9090.

$ helm monitor prometheus --prometheus=http://prometheus:9090 \
    peeking-bunny \
    'rate(http_requests_total{code=~"^5.*$"}[5m]) > 0'

Elasticsearch

Monitor the peeking-bunny release against an Elasticsearch server, a rollback is initiated if the 5xx error rate is over 0 for the last minute.

Using a Lucene query:

$ helm monitor elasticsearch peeking-bunny 'status:500 AND kubernetes.labels.app:app AND version:2.0.0'

Using a query DSL file:

$ helm monitor elasticsearch peeking-bunny ./query.json

You can connect to a given Elasticsearch instance, by default it will connect to http://localhost:9200.

$ helm monitor elasticsearch --elasticsearch=http://elasticsearch:9200 \
    peeking-bunny \
    'status:500 AND kubernetes.labels.app:app AND version:2.0.0'

Sentry

Monitor the peeking-bunny release against a Sentry server, a rollback is initiated if the number of events is over 0 for the release 2.0.0:

$ helm monitor sentry my-app \
    --api-key <SENTRY_API_KEY> \
    --organization sentry \
    --project my-project \
    --sentry http://sentry:9000 \
    --tag release=2.0.0 \
    --regexp
    'Error with database connection.*'

Docker

You can also use the Helm monitor backed Docker image to monitor:

$ docker run -ti -v $HOME/.kube:/root/.kube containersol/helm-monitor \
    monitor prometheus --prometheus=http://prometheus:9090 my-release \
    'rate(http_requests_total{code=~"^5.*$"}[5m]) > 0'

Development

Require Go >= 1.11.

# Clone the repo, then add a symlink to the Helm plugin directory:
$ ln -s $GOPATH/src/github.com/ContainerSolutions/helm-monitor ~/.helm/plugins/helm-monitor

# Build:
$ GOPATH="" GO111MODULE=on go build -o helm-monitor ./cmd/...

# Run:
$ helm monitor elasticsearch my-release ./examples/elasticsearch-query.json

Alternatives

  • Kuberbs - Kubernetes Automatic Rollback System
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].