GithubHelp home page GithubHelp logo

kubermetrics's Introduction

Kubermetrics

What is Kubermetrics?

Kubermetrics is an open-source dev tool that provides Kubernetes cluster monitoring as well as data visualization in a simple and easy to understand user interface. Kubermetrics intergrates both the Prometheus and Grafana Dashboards on one page! Allowing for custominzable dashboards and alerts.

Home page

Dashboard displaying all nodes, deployments, pods, services & ingresses by namespace.

Home Page

Metrics page

Our Metrics Page utilizes full Grafana integration for customizable dashboards.

Metrics

Alerts page

Our Alerts Page utilizes full Prometheus integration for access to alerts, graphs, prom-queries and more!

Alerts

Kubermetrics Setup

In this readme we will walk you through the setup process for our app. For this setup you will need the following:

  • Start by cloning our repo down to your local machine.
  • This app assumes you have direct access to your K8s Cluster from the local machine in which this app is being installed
  • Kubectl - Kubernetes CLI installed
  • Ports 3000, 3068, & 9090 open. (This can be changed if necessary)
  • For the next steps, please refer to first section if you have prometheus and grafana installed or scroll down for full installation.

I Already Have Prometheus & Grafana Installed!

Great! Here are a couple of notes on how to deploy our app and how it interacts with Prometheus & Grafana.

  • First, to install our app, in your terminal navigate to our "manifests folder"
  • From this directory run the following command
  • kubectl apply -f kubermetrics-depl.yaml

You've just installed our app on your cluster! Next you will want to open a port to access Kubermetrics from your local host.

  • Next, run the following command to access all your current running pods
  • kubectl get pods

  • Find your current running Pod for Kubermetrics and run the following command
  • kubectl port-forward <kubermetrics-pod-name-goes-here> 3068:3068
  • This will allow you to access our dashboard at localhost:3068
  • Our app looks for grafana at localhost:3000 & promethues at local host 9090
  • Please run the following commands to ensure grafana and prometheus are up and running at these ports!
  • kubectl port-forward <grafana-pod-name-goes-here> --namespace=<yournamespace> 3000:3000
  • kubectl port-forward <prometheus-pod-name-goes-here> --namespace=<yournamespace> 9090:9090
  • Now Navigate to localhost:3068 & enjoy our dashboard with full promethus and grafana integration!

Prometheus & Grafana Not Currently Installed

Don't have prometheus or grafana installed? Don't worry! The process is fast and easy.

  • Open a terminal and navigate to the Kubermetrics root directory.
  • Run the following command: kubectl create namespace monitoring
  • This will create the K8s namespace monitoring in which we install Prometheus and Grafana.
  • Next to install Kubermetrics, Prometheus & Grafana into your cluster, run the following command:
  • kubectl apply -f manifests

Great now you have everything you need installed! Now to open up some ports.

  • Next Please run the following commands
  • kubectl get pods

  • Find your current running Pod for Kubermetrics and run the following command
  • kubectl port-forward <kubermetrics-pod-name-goes-here> 3068:3068
  • This will allow you to access our dashboard at localhost:3068
  • Our app looks for grafana at localhost:3000 & promethues at local host 9090
  • Please run the following commands to ensure grafana and prometheus are up and running at these ports!
  • kubectl port-forward <grafana-pod-name-goes-here> --namespace=monitoring 3000:3000
  • kubectl port-forward <prometheus-pod-name-goes-here> --namespace=monitoring 9090:9090
  • Now Navigate to localhost:3068 & enjoy our dashboard with full promethus and grafana integration!

Notes

  • Our Included Grafana yaml file includes environment variables that we use in order to load specific settings when using Grafana. Feel free to poke around or change other settings in this file and reapply!
  • Current App is in Beta. Many more features are planned to be added!
  • Feel free to visit our github page @ https://github.com/oslabs-beta/kubermetrics if you have any issues!

About the Team

Ahad Rajput

Dominic DiSalvo

Justin Buckner

kubermetrics's People

Contributors

arajput96 avatar dominicd17 avatar jwadeon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubermetrics's Issues

Add support for VictoriaMetrics

It would be great if kubermetrics could use VictoriaMetrics additionally to Prometheus for collecting the metrics from Kubernetes. VictoriaMetrics can discover and scrape Prometheus targets in k8s. See these docs. Comparing to Prometheus, VictoriaMetrics usually needs lower amount of memory and disk space for storing and processing the same amounts of data - see this article.

kubermetrics pods start failed with "exec format error"

I am installing kubermetrics on CentOS Linux release 7.7.1908(x86_64, Intel(R) Xeon(R) CPU E5-2690) by the following cmd:
kubectl apply -f manifests
With prometheus and grafana running:

$ kubectl get pods --namespace=monitoring
NAME                                     READY   STATUS    RESTARTS   AGE
grafana-6d855fdbd6-w2hg4                 1/1     Running   0          15m
prometheus-deployment-599bbd9457-l5q2g   1/1     Running   0          15m
$ kubectl port-forward grafana-6d855fdbd6-w2hg4 --namespace=monitoring 3000:3000
Forwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000
Handling connection for 3000
...
$ kubectl port-forward prometheus-deployment-599bbd9457-l5q2g --namespace=monitoring 9090:9090
Forwarding from 127.0.0.1:9090 -> 9090
Forwarding from [::1]:9090 -> 9090

kubermetrics start fail with

$ kubectl get pods
NAME                                READY   STATUS             RESTARTS   AGE
kubermetrics-depl-b596bb4b8-qz8tv   0/1     CrashLoopBackOff   6          8m8s
$ kubectl logs  --previous deployment.apps/kubermetrics-depl
standard_init_linux.go:178: exec user process caused "exec format error"

prometheus-ingress.yaml fails to load on 1.22.1 due to deprecated API

When running kubectl apply -f manifests on a 1.22.1 deployment, the prometheus-ingress.yaml fails to load due to deprecated API. When manually adjusting the API to the 1.22 supported version, additional failures occurred due to changed in the API.

Error when running kubectl apply -f manifests:
error: unable to recognize "manifests/prometheus-ingress.yaml": no matches for kind "Ingress" in version "extensions/v1beta1"

Error when running kubectl apply -f manifests w/Updated API:
error: error validating "manifests/prometheus-ingress.yaml": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath]; if you choose to ignore these errors, turn validation off with --validate=false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.