All Projects → tomwilkie → Kube Api Exporter

tomwilkie / Kube Api Exporter

A Prometheus exporter for Kubernetes API numbers

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Kube Api Exporter

Reinvent2018 Dev303 Code
Code accompanying AWS re:Invent workshop DEV 303 showcasing how to get deep application insights using Amazon EKS with AWS X-Ray and Amazon CloudWatch.
Stars: ✭ 55 (-19.12%)
Mutual labels:  prometheus
Metric Collector For Apache Cassandra
Drop-in metrics collection and dashboards for Apache Cassandra
Stars: ✭ 62 (-8.82%)
Mutual labels:  prometheus
Fritzbox exporter
Fritz!Box Upnp statistics exporter for prometheus
Stars: ✭ 65 (-4.41%)
Mutual labels:  prometheus
Awesome Pulsar
A curated list of Pulsar tools, integrations and resources.
Stars: ✭ 57 (-16.18%)
Mutual labels:  prometheus
Mqtt blackbox exporter
Prometheus Exporter for MQTT monitoring
Stars: ✭ 57 (-16.18%)
Mutual labels:  prometheus
Sanic Prometheus
Prometheus metrics for Sanic, an async python web server
Stars: ✭ 63 (-7.35%)
Mutual labels:  prometheus
Druid Exporter
A Golang based exporter captures druid API related metrics and receives druid-emitting HTTP JSON data.
Stars: ✭ 54 (-20.59%)
Mutual labels:  prometheus
Tacho
A Futures-aware metrics library for recording statistics about your running system.
Stars: ✭ 67 (-1.47%)
Mutual labels:  prometheus
Dockerize Your Dev
Docker compose a VM to get LetsEncrypt / NGINX proxy auto provisioning, ELK logging, Prometheus / Grafana monitoring, Portainer GUI, and more...
Stars: ✭ 61 (-10.29%)
Mutual labels:  prometheus
Styx
Export Data from Prometheus to csv, gnuplot & matplotlib
Stars: ✭ 66 (-2.94%)
Mutual labels:  prometheus
Prometheus Es Adapter
Prometheus remote storage adapter for Elasticsearch
Stars: ✭ 57 (-16.18%)
Mutual labels:  prometheus
Thanos
Highly available Prometheus setup with long term storage capabilities. A CNCF Incubating project.
Stars: ✭ 9,820 (+14341.18%)
Mutual labels:  prometheus
Kubernetes Learning
《从Docker到Kubernetes进阶课程》在线文档
Stars: ✭ 1,128 (+1558.82%)
Mutual labels:  prometheus
Ebpf exporter
A Prometheus exporter which uses eBPF to measure block IO request latency / size
Stars: ✭ 56 (-17.65%)
Mutual labels:  prometheus
Citrix Adc Metrics Exporter
Export metrics from Citrix ADC (NetScaler) to Prometheus
Stars: ✭ 67 (-1.47%)
Mutual labels:  prometheus
Unifi exporter
Multiarch images for scraping Prometheus metrics from a Unifi Controller. Kubernetes / prometheus-operator compatible.
Stars: ✭ 54 (-20.59%)
Mutual labels:  prometheus
Prometheus Proxy
Prometheus Proxy
Stars: ✭ 63 (-7.35%)
Mutual labels:  prometheus
Prometheus.cl
Prometheus.io Common Lisp client
Stars: ✭ 67 (-1.47%)
Mutual labels:  prometheus
Promregator
Prometheus Aggregator for Cloud Foundry (Core Component)
Stars: ✭ 66 (-2.94%)
Mutual labels:  prometheus
Bookstoreapp Distributed Application
Ecommerce project is being developed using Spring Boot Microservices and Spring Cloud (Backend) and React (Frontend). Splitting the Ecommerce functionality into various individual microservices so that they can be distributed, scale really well and make use of resources efficiently.
Stars: ✭ 63 (-7.35%)
Mutual labels:  prometheus

Kubernetes API Exporter for Prometheus

This project is deprecated, you should use kubernetes/kube-state-metrics instead.

Kubernetes API Exporter - a Python job, delivered as a Docker image, that automatically exposes various numbers from the Kubernetes API as Prometheus metrics, such that you can alert on them.

This is useful when you are continually deploying changes from a CI pipeline to a Kubernetes cluster, and you want to generate alerts when a deployments fails.

For instance, the following deployment:

$ kubectl get deployment helloworld -o json
{
    "kind": "Deployment",
    "apiVersion": "extensions/v1beta1",
    "metadata": {
        "name": "helloworld",
        "namespace": "default",
        "generation": 2,
        ...
    },
    "spec": {
        "replicas": 1,
        ...
    },
    "status": {
        "observedGeneration": 2,
        "replicas": 1,
        "updatedReplicas": 1,
        "availableReplicas": 1
    }
}

Is translated into the following Prometheus metrics:

k8s_deployment_metadata_generation{name="helloworld",namespace="default"} 2.0
k8s_deployment_spec_replicas{name="helloworld",namespace="default"} 1.0
k8s_deployment_spec_strategy_rollingUpdate_maxSurge{name="helloworld",namespace="default"} 1.0
k8s_deployment_spec_template_spec_terminationGracePeriodSeconds{name="helloworld",namespace="default"} 30.0
k8s_deployment_status_availableReplicas{name="helloworld",namespace="default"} 1.0
k8s_deployment_status_observedGeneration{name="helloworld",namespace="default"} 2.0
k8s_deployment_status_replicas{name="helloworld",namespace="default"} 1.0
k8s_deployment_status_updatedReplicas{name="helloworld",namespace="default"} 1.0

With this, you can configure the following rules to generate alerts when deployments fails:

ALERT DeploymentGenerationMismatch
  IF          k8s_deployment_status_observedGeneration{job="kube-api-exporter"} != k8s_deployment_metadata_generation{job="kube-api-exporter"}
  FOR         5m
  LABELS      { severity="critical" }
  ANNOTATIONS {
    summary = "Deployment of {{$labels.exported_namespace}}/{{$labels.name}} failed",
    description = "Deployment of {{$labels.exported_namespace}}/{{$labels.name}} failed - observed generation != intended generation.",
  }

ALERT DeploymentReplicasMismatch
  IF          (k8s_deployment_spec_replicas{job="kube-api-exporter"} != k8s_deployment_status_availableReplicas{job="kube-api-exporter"}) or (k8s_deployment_spec_replicas{job="kube-api-exporter"} unless k8s_deployment_status_availableReplicas{job="kube-api-exporter"})
  FOR         5m
  LABELS      { severity="critical" }
  ANNOTATIONS {
    summary = "Deployment of {{$labels.exported_namespace}}/{{$labels.name}} failed",
    description = "Deployment of {{$labels.exported_namespace}}/{{$labels.name}} failed - observed replicas != intended replicas.",
  }

Installation

To run kube-api-exporter on your own cluster, clone this repo and run:

$ kubectl create -f kube-api-exporter/k8s
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].