Thibaut-Mouton / cgroupv2-probes-kubernetes

Typescript utils to read metrics in kubernetes pod to check and control memory and cpu from cgroup v2.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

build status

CGROUP V2 METRICS

  • npm module for reading cgroupv2 RAM and CPU metrics.
  • Reads from /sys/fs/cgroup/.
  • Useful for kubernetes probes : readiness, liveness or prestop, all available since v1.25

Installation

npm install @mercure/cgroupv2-metrics

Use case

  • You can use those metrics to have more control over kubernetes pods :

A pod has a heavy load incoming, and you do not want that pod to be reached by kubernetes internal load-balancer. Since kubernetes does not provide load-balancer over resources consumption, you can use a readiness probe, which check metrics every "x" seconds and trigger the probe if RAM and/or CPU are overloaded. This probe will eject the pod from load-balancer by setting the pod "unavailable". Once consumption will decrease to an acceptable level, probe trigger will stop and the pod will be available from load-balancer again.

  • Check examples folder to see how k8s probes can be implemented

Want to work on project ?

With devcontainers, you can easily start up a dev environment on docker with your favorite IDE without download any package required by the project on your OS. Feel free to open PR and submit issues.

Read more on devcontainers

About

Typescript utils to read metrics in kubernetes pod to check and control memory and cpu from cgroup v2.

License:MIT License


Languages

Language:TypeScript 96.8%Language:JavaScript 3.2%