Monitor and visualize the health and metrics of Kubernetes clusters
Argometrics is an open source product that allows users to visualize the health of their local Kubernetes clusters. With Prometheus and Grafana scraping and displaying metrics from our cluster, our application visualizes key metrics such as pod and container health, prometheus health, and performance and usage from the cluster in real time. Argometrics allows users to change between clusters at the click of a button, making it easy to monitor all clusters in one location.
Our application works with local kubernetes clusters. Be sure to have a local cluster configured with some type of Kuberenetes implementation (Docker Desktop recommended)
Install helm
brew install helm
.helm install prometheus prometheus-community/kube-prometheus-stack
.
kubectl patch ds prometheus-prometheus-node-exporter --type "json" -p '[{"op": "remove", "path" : "/spec/template/spec/containers/0/volumeMounts/2/mountPropagation"}]'
kubectl port-forward -n default {prometheus podname} {port}
kubectl port-forward -n default prometheus-prometheus-kube-prometheus-prometheus-0 9090
kubectl port-forward -n default {grafana podname} {port}
kubectl port-forward -n default prometheus-grafana-85978cf69c-29dw9 3000
kubectl get deployment
kubectl edit configmap {deployment}
[security]
allow_embedding: true
[auth.anonymous]
enabled: true
i
-> To edit the file ( you will see 'INSERT' at bottom )ESC
-> Escape edit mode back to command mode:wq
-> Write quit ( when you make an update ):q!
-> Force quit without saving changeshelm list
helm repo list
kubectl --namespace default get pods -l "release=prometheus"
kubectl get secret --namespace {namespace} {podname} -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
ATLAS_URI = {your MongoDB URI}
GOOGLE_CLIENT_ID = {Google Client ID}
GOOGLE_CLIENT_SECRET = {Google Client Secret}
npm install
npm run dev
npm electron-start
We are always looking for improvement and are open to feedback. If you had a feature suggestion, please fork and clone this repo and make a pull request with your new branch.
git checkout -b newFeatureBranch
in terminal to enter a new branchgit push origin newFeatureBranch
We originally planned to deploy our application with KEDA and give the user the ability to choose metrics to scale by. Our command line interface would allow the user to add loads to their cluster and the user could test how their cluster health performed under different environments and different scaled objects. Additionally, port-forwarding is currently being used to make our cluster available to our application. We did not know at the time but this causes many instability issues. Moving forward, either making our application compatible with cloud clusters and/or using an ingress instead of porting forward to connect the cluster with our application are things to consider when iterating.
Technology icons by shields.io