All Projects → olxbr → metrics-server-exporter

olxbr / metrics-server-exporter

Licence: MIT License
Metrics Server Exporter

Programming Languages

python
139335 projects - #7 most used programming language
Mustache
554 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to metrics-server-exporter

flask prometheus metrics
Prometheus Metrics for Flask Web App
Stars: ✭ 17 (-70.69%)
Mutual labels:  grafana, prometheus
epiphany
Cloud and on-premises automation for Kubernetes centered industrial grade solutions.
Stars: ✭ 114 (+96.55%)
Mutual labels:  grafana, prometheus
tilt-pitch
Simple replacement for the Tilt Hydrometer mobile apps and TiltPi with lots of features
Stars: ✭ 32 (-44.83%)
Mutual labels:  grafana, prometheus
skalogs-bundle
Open Source data and event driven real time Monitoring and Analytics Platform
Stars: ✭ 16 (-72.41%)
Mutual labels:  grafana, prometheus
grafana-infinity-panel
Grafana Infinity Panel plugin. Visualize data in infinite ways using data viz APIs such as Vega
Stars: ✭ 17 (-70.69%)
Mutual labels:  grafana, prometheus
k3s-gitops
GitOps principles to define kubernetes cluster state via code
Stars: ✭ 103 (+77.59%)
Mutual labels:  grafana, prometheus
octane-exporter
Export Laravel Octane metrics using this Prometheus exporter.
Stars: ✭ 14 (-75.86%)
Mutual labels:  grafana, prometheus
Docker Traefik Prometheus
A Docker Swarm Stack for monitoring Traefik with Promethues and Grafana
Stars: ✭ 215 (+270.69%)
Mutual labels:  grafana, prometheus
laracom
laracom driven by go micro services
Stars: ✭ 37 (-36.21%)
Mutual labels:  grafana, prometheus
eks-hpa-profile
An eksctl gitops profile for autoscaling with Prometheus metrics on Amazon EKS on AWS Fargate
Stars: ✭ 26 (-55.17%)
Mutual labels:  prometheus, metrics-server
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+98272.41%)
Mutual labels:  grafana, prometheus
jarvis
🍿 Simple Home Media Stack
Stars: ✭ 28 (-51.72%)
Mutual labels:  grafana, prometheus
Example Prometheus Nodejs
Prometheus monitoring example with Node.js
Stars: ✭ 249 (+329.31%)
Mutual labels:  grafana, prometheus
Kong-API-Manager
Kong API Manager with Prometheus And Graylog
Stars: ✭ 78 (+34.48%)
Mutual labels:  grafana, prometheus
Beam Dashboards
BEAM ❤️ Prometheus ❤️ Grafana
Stars: ✭ 244 (+320.69%)
Mutual labels:  grafana, prometheus
remote-storage-wars
Prometheus remote storages playground
Stars: ✭ 22 (-62.07%)
Mutual labels:  grafana, prometheus
Docker Prometheus Swarm
Sample prometheus that can be used as a sample to get Swarm cluster metrics
Stars: ✭ 210 (+262.07%)
Mutual labels:  grafana, prometheus
Microservices On Cloud Kubernetes
Microservices demo application on cloud-hosted Kubernetes cluster
Stars: ✭ 213 (+267.24%)
Mutual labels:  grafana, prometheus
microservices-observability
🎉 Microservices Observability - Log Aggregation, Distributed Tracking, Metrics
Stars: ✭ 40 (-31.03%)
Mutual labels:  grafana, prometheus
cdn-up-and-running
CDN Up and Running - an introduction about how modern CDNs works
Stars: ✭ 131 (+125.86%)
Mutual labels:  grafana, prometheus

metrics-server-exporter CircleCI Total alerts Language grade: Python

metrics-server-exporter provides cpu and memory metrics for nodes and pods, directly querying the metrics-server API /apis/metrics.k8s.io/v1beta1/{pods, nodes}

Node metrics

  • kube_metrics_server_nodes_mem
    • Provides nodes memory information in kibibytes.
  • kube_metrics_server_nodes_cpu
    • Provides nodes CPU information in nanocores.
labels
  • instance

Pod metrics

  • kube_metrics_server_pods_mem
    • Provides pods/container memory information.
  • kube_metrics_server_pods_cpu
    • Provides pods/container memory information.
labels
  • pod_name
  • pod_namespace
  • pod_container_name

API metrics

  • kube_metrics_server_response_time
    • Provides API response time in seconds.

Variables

  • K8S_ENDPOINT

    • Url of API of kubernetes (default kubernetes.default.svc)
  • K8S_TOKEN

    • The authorization token (default ServiceAccount token)
  • K8S_FILEPATH_TOKEN

    • Path of ServiceAccount token file (default /var/run/secrets/kubernetes.io/serviceaccount/token)
  • K8S_CA_CERT_PATH

    • Path of Kubernetes CA certificate (default /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)
  • NAMES_BLACKLIST

    • A list of names from pods, containers or namespaces to exclude from metrics.
  • NAMESPACE_WHITELIST

    • A list of namespace to scrape from this way you can create namespaced rolebinding instead of cluster binding. ( quite useful for larger clusters ) ( default : '' (all namespaces))
  • LABEL_SELECTOR

    • A list of Label Selectors.

Options

  • --insecure-tls
    • Disables TLS verification of the Kubernetes API Server. (Not recommended in production)

How to build

$ docker build . -t vivareal/metrics-server-exporter

How to run

You will need K8S_TOKEN and K8S_ENDPOINT to access the api-server. Use "--insecure-tls" or mount the CA certificate into the container. Kubernetes will provide the CA certificate in a Kubernetes installation.

$ docker run -p 8000:8000 -e "K8S_ENDPOINT=${K8S_ENDPOINT}" -e "K8S_TOKEN=${K8S_TOKEN}" vivareal/metrics-server-exporter --insecure-tls

How to deploy

Set you target k8s context and apply the deployment files

$ kubectl apply -f deploy/

Blacklist

If you want, you could blacklist some names of namespaces, pods or containers, you just need to apply this ConfigMap, replacing the example names

apiVersion: v1
kind: ConfigMap
metadata:
  name: metrics-server-exporter
  labels:
    k8s-app: metrics-server-exporter
data:
  NAMES_BLACKLIST: kube-proxy,calico-node,kube2iam # example names

Minikube

How to test in Minikube

$ minikube delete; minikube start --vm-driver=kvm2 --cpus=2 --memory=4096
* Deleting "minikube" from kvm2 ...
* The "minikube" cluster has been deleted.
* minikube v1.2.0 on linux (amd64)
* Creating kvm2 VM (CPUs=2, Memory=4096MB, Disk=20000MB) ...
* Configuring environment for Kubernetes v1.15.0 on Docker 18.09.6
* Downloading kubelet v1.15.0
* Downloading kubeadm v1.15.0
* Pulling images ...
* Launching Kubernetes ...
* Verifying: apiserver proxy etcd scheduler controller dns
* Done! kubectl is now configured to use "minikube"

Enable metrics-server addon

$ minikube addons enable metrics-server
* metrics-server was successfully enabled

Deploy the files in minikube

$ kubectl apply -R -f deploy/ -n kube-system

Then, test the connectivity

$ kubectl port-forward -n kube-system svc/metrics-server-exporter 9104:9104 &
$ curl http://localhost:9104/metrics

Helm

To install metrics-server-exporter, use

$ helm install --name=metrics-server-exporter --namespace kube-system helm/

You could set the variables using the --set parameters

$ helm install --name=metrics-server-exporter --set custom.k8s_endpoint=https://kubernetes.default.svc helm/

You could assign a specific nodePort. $ helm install --name=metrics-server-exporter --set service.type=NodePort --set service.nodePort=31001 helm/

Grafana Dashboard

You can use the following dashboard to plot metrics from metrics-server-exporter to Grafana.

image

https://grafana.com/grafana/dashboards/12363

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].