A visual overview of Kubernetes architecture and Prometheus metrics

Overview

A visual overview of Kubernetes architecture and Prometheus metrics.


Structure

Navigate through the structures page to easily see your control planes and worker nodes with all their pods inside. Click on the components to see more details about its metadata, status, and specifications. Easily find information regarding the image IDs or IP addresses of anything from containers to ingresses.

kur8-structure-demo-gif

Metrics

Get the state of your cluster at a glance with our curated metrics dashboard.

kur8-alerts-demo-gif

Custom Metrics

Use our custom metrics page to use our PROMQL autocomplete feature to query any metrics you want.

kur8-alerts-demo-gif

Alerts

All of your Prometheus alerts including your custom ones are displayed here in the Alerts tab. Find out if any alerts are firing and which rule groups they fall under.

kur8-alerts-demo-gif

Getting started

Deploying KUR8

KUR8 requires your Kubernetes cluster to already be set up and running.

An image of the application has been pushed to Docker Hub for those who would like to build the image directly from the public repository.

We recommend deploying KUR8 directly to your Kubernetes cluster through kubectl using our config file kur8-depl.yaml.

kubectl apply -f kur8-depl.yaml

In addition, in order to allow reading resources of the API, you must configure a set of permissions. We have set up a YAML file using RBAC authorization which you can apply directly to your Kubernetes cluster using the command line: fabric8-rbac.yaml

kubectl apply -f fabric8-rbac.yaml

Use a port forward command to open up KUR8 on port 3068.

kubectl port-forward deployment/kur8-depl 3068:3068

Then, open your web browser to http://localhost:3068.

The structures tab on the left will query your Kubernetes API to view the cluster's architecture.


Deploying Prometheus


If you don't have your instance of Prometheus installed begin by cloning this repo:


In KUR8 directory run:

kubectl create -f infra/manifests/setup

Once setup is complete run:

kubectl create -f infra/manifests/

If you want to connect Kur8 to Prometheus open up the port by:

kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090

You may also view the Prometheus tab in KUR8

localhost:3068

to view and create your custom dashboard.


Contributors

Linkedin Jimmy Ngo jimmycngo

Linkedin Ivy Yu ivy118

Linkedin Steven Del Rosario stevendelro

You might also like...

docsQL - Getting an overview over your Markdown file in your Jamstack site

docsQL - Getting an overview over your Markdown file in your Jamstack site

docsQL Getting an overview of your Jamstack Markdown files. Demo Play with: https://peterbe.github.io/docsql/ You're supposed to run docsQL with your

Jan 3, 2023

Kustomizegoat - Vulnerable Kustomize Kubernetes templates for training and education

Kustomizegoat - Vulnerable Kustomize Kubernetes templates for training and education

KustomizeGoat - Vulnerable by design Kustomize deployment Demonstrating secure a

Nov 1, 2022

Create deployment files and configure GitHub Actions workflows to deploy applications to Azure Kubernetes Service (AKS).

Create deployment files and configure GitHub Actions workflows to deploy applications to Azure Kubernetes Service (AKS).

Azure Kubernetes Service (AKS) DevX (Developer experience) Extension for Visual Studio Code (Preview) The AKS DevX extension for Visual Studio Code (P

Oct 1, 2022

A light-weight, simple, and straightforward learning tool for your Kubernetes cluster

A light-weight, simple, and straightforward learning tool for your Kubernetes cluster

Introducing Neptune Light-weight, simple, and straightforward learning tool for your Kubernetes cluster Neptune is an approachable learning tool, ligh

Jan 4, 2023

Vim/Neovim plugin for Kubernetes

Vim/Neovim plugin for Kubernetes

k8s.vim A Vim/Neovim plugin for kubernetes Requirements denops.vim kubectl Usage " Execute kubectl via terminal " Bellow is Same as 'kubectl get pods

Oct 7, 2022

Open Source, Cross platform, Native Kubernetes IDE

Open Source, Cross platform, Native Kubernetes IDE

Introduction Yaki stands for "Yet Another Kubernetes IDE". Yaki is a desktop application that allows DevOps, Developers, SREs and anyone who wish the

Nov 4, 2022

AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.

AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.

AppRun AppRun is a JavaScript library for building reliable, high-performance web applications using the Elm-inspired architecture, events, and compon

Dec 20, 2022

An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve and modify the bot state, respectively.

An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve and modify the bot state, respectively.

CQRS Wechaty An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve

Mar 23, 2022

Get-A-Room example application using Domain Driven Design and Clean Architecture. Written in TypeScript and deployed to AWS with a serverless stack.

Get-A-Room example application using Domain Driven Design and Clean Architecture. Written in TypeScript and deployed to AWS with a serverless stack.

Domain Driven Microservices on AWS in Practice This project provides a Domain Driven Design & Clean Architecture-informed, multi-service event-driven

Dec 31, 2022
Comments
  • got enzyme test working with redux connected components

    got enzyme test working with redux connected components

    Fixed the enzyme issue, by:

    1. using jsdom test environment instead of default node test environment.
    2. when doing a shallow render use .children().dive() to render and wrap components

    Still having issues simulating an onClick in redux connected component:

    1. Mocking and Spying on the useState function call doesn't seem to work, maybe I can try reading the prop directly
    opened by jimmycngo 1
  • Reconfigured structures reducer to handle edge cases

    Reconfigured structures reducer to handle edge cases

    Can now handle edge cases where app is not deployed through skaffold and if there are no ingresses.

    Also adding back in podsbynamespace component test

    opened by jimmycngo 0
  • kur8 not working - latest version

    kur8 not working - latest version

    Hey

    i tried to install kur8 using the you installation guide (also tried to change the service to be Nodeport) but the UI not really loading. I get just white screen (http code 200). (chrome, firefox and safari)

    I tried to point the service to the pod with port 3000 and port 3068 (as i saw in logs). no errors in logs..

    installation path: https://github.com/oslabs-beta/Kur8/blob/dev/infra/k8s/kur8-depl.yaml https://github.com/oslabs-beta/Kur8/blob/dev/infra/k8s/fabric8-rbac.yaml

    ➜ ~ curl -o /dev/null -k -s -w '%{http_code}\n' http://10.187.84.10:30771/ 200

    image

    logs:

    [email protected] dev concurrently "cross-env NODE_ENV=development webpack serve --hot --open" "cross-env NODE_ENV=development nodemon ./server/index.js" [1] [nodemon] 2.0.12 [1] [nodemon] to restart at any time, enter rs [1] [nodemon] watching path(s): . [1] [nodemon] watching extensions: js,mjs,json [1] [nodemon] starting node ./server/index.js [1] jj [1] Listening on port: 3000 [0] ℹ 「wds」: Project is running at http://localhost:3068/ [0] ℹ 「wds」: webpack output is served from /build/ [0] ℹ 「wds」: Content not from webpack is served from /app/client/public [1] (node:61) [DEP0152] DeprecationWarning: Custom PerformanceEntry accessors are deprecated. Please use the detail property. [1] (Use node --trace-deprecation ... to show where the warning was created) [0] ℹ 「wdm」: asset bundle.js 4.85 MiB [emitted] (name: main) [0] asset index.html 233 bytes [emitted] [0] orphan modules 441 KiB [orphan] 279 modules [0] runtime modules 29.9 KiB 15 modules [0] modules by path ./node_modules/ 3.59 MiB [0] cacheable modules 3.58 MiB 689 modules [0] ./node_modules/webpack/hot/ sync nonrecursive ^./log$ 170 bytes [built] [code generated] [0] ./node_modules/moment/locale/ sync ^./.$ 3.21 KiB [optional] [built] [code generated] [0] modules by path ./client/src/ 241 KiB [0] modules by path ./client/src/components/ 158 KiB 23 modules [0] modules by path ./client/src/pages/ 33.2 KiB [0] modules by path ./client/src/pages/AlertsPage/.js 14.4 KiB 2 modules [0] modules by path ./client/src/pages/GetStartedPage/.js 10.5 KiB 2 modules [0] modules by path ./client/src/reducers/.js 29.8 KiB 7 modules [0] modules by path ./client/src/actions/.js 14.4 KiB 4 modules [0] modules by path ./client/src/.js 5.79 KiB 3 modules [0] webpack 5.47.1 compiled successfully in 26658 ms [0] ℹ 「wdm」: Compiled successfully.

    opened by MatanAmoyal 3
  • How to configure KUR8 to my own hosted prometheus

    How to configure KUR8 to my own hosted prometheus

    I have deployed KUR8 v1.0.0 to EKS v1.18 into monitoring namespace but the application was misbehaving. What is I don't know is how to point KUR8 to my prometheus service kube-prometheus-stack-prometheus:9090?

    How I deployed:

    kubectl -n monitoring apply -f fabric8-rbac.yaml
    kubectl -n monitoring apply -f kur8-depl.yaml
    
    # Then port-forward to access the app
    kubectl -n monitoring port-forward deployment/kur8-depl 3068:3068
    

    The app logs

    ur8-depl-7c8f78b546-w88bk kur8 
    kur8-depl-7c8f78b546-w88bk kur8 > [email protected] dev
    kur8-depl-7c8f78b546-w88bk kur8 > concurrently "cross-env NODE_ENV=development webpack serve --hot --open" "cross-env NODE_ENV=development nodemon ./server/index.js"
    kur8-depl-7c8f78b546-w88bk kur8 
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] 2.0.12
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] to restart at any time, enter `rs`
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] watching path(s): *.*
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] watching extensions: js,mjs,json
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] starting `node ./server/index.js`
    kur8-depl-7c8f78b546-w88bk kur8 [1] jj
    kur8-depl-7c8f78b546-w88bk kur8 [1] Listening on port: 3000
    kur8-depl-7c8f78b546-w88bk kur8 [0] ℹ 「wds」: Project is running at http://localhost:3068/
    kur8-depl-7c8f78b546-w88bk kur8 [0] ℹ 「wds」: webpack output is served from /build/
    kur8-depl-7c8f78b546-w88bk kur8 [0] ℹ 「wds」: Content not from webpack is served from /app/client/public
    kur8-depl-7c8f78b546-w88bk kur8 [0] ℹ 「wdm」: asset bundle.js 4.85 MiB [emitted] (name: main)
    kur8-depl-7c8f78b546-w88bk kur8 [0] asset index.html 233 bytes [emitted]
    kur8-depl-7c8f78b546-w88bk kur8 [0] orphan modules 441 KiB [orphan] 279 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0] runtime modules 29.9 KiB 15 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0] modules by path ./node_modules/ 3.59 MiB
    kur8-depl-7c8f78b546-w88bk kur8 [0]   cacheable modules 3.58 MiB 689 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]   ./node_modules/webpack/hot/ sync nonrecursive ^\.\/log$ 170 bytes [built] [code generated]
    kur8-depl-7c8f78b546-w88bk kur8 [0]   ./node_modules/moment/locale/ sync ^\.\/.*$ 3.21 KiB [optional] [built] [code generated]
    kur8-depl-7c8f78b546-w88bk kur8 [0] modules by path ./client/src/ 241 KiB
    kur8-depl-7c8f78b546-w88bk kur8 [0]   modules by path ./client/src/components/ 158 KiB 23 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]   modules by path ./client/src/pages/ 33.2 KiB
    kur8-depl-7c8f78b546-w88bk kur8 [0]     modules by path ./client/src/pages/AlertsPage/*.js 14.4 KiB 2 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]     modules by path ./client/src/pages/GetStartedPage/*.js 10.5 KiB 2 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]   modules by path ./client/src/reducers/*.js 29.8 KiB 7 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]   modules by path ./client/src/actions/*.js 14.4 KiB 4 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0]   modules by path ./client/src/*.js 5.79 KiB 3 modules
    kur8-depl-7c8f78b546-w88bk kur8 [0] webpack 5.47.1 compiled successfully in 10938 ms
    kur8-depl-7c8f78b546-w88bk kur8 [0] ℹ 「wdm」: Compiled successfully.
    kur8-depl-7c8f78b546-w88bk kur8 [1] (node:61) [DEP0152] DeprecationWarning: Custom PerformanceEntry accessors are deprecated. Please use the detail property.
    kur8-depl-7c8f78b546-w88bk kur8 [1] (Use `node --trace-deprecation ...` to show where the warning was created)
    kur8-depl-7c8f78b546-w88bk kur8 [1] Wed, 11 Aug 2021 08:00:59 GMT express deprecated res.send(status, body): Use res.status(status).send(body) instead at file:/app/server/index.js:47:23
    kur8-depl-7c8f78b546-w88bk kur8 [1] node:internal/errors:464
    kur8-depl-7c8f78b546-w88bk kur8 [1]     ErrorCaptureStackTrace(err);
    kur8-depl-7c8f78b546-w88bk kur8 [1]     ^
    kur8-depl-7c8f78b546-w88bk kur8 [1] 
    kur8-depl-7c8f78b546-w88bk kur8 [1] RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: error found in get request to /podList
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at new NodeError (node:internal/errors:371:5)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse.writeHead (node:_http_server:275:11)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse._implicitHeader (node:_http_server:266:8)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at write_ (node:_http_outgoing:763:9)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse.end (node:_http_outgoing:852:5)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse.send (/app/node_modules/express/lib/response.js:221:10)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse.json (/app/node_modules/express/lib/response.js:267:15)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at ServerResponse.send (/app/node_modules/express/lib/response.js:158:21)
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at file:///app/server/index.js:47:23
    kur8-depl-7c8f78b546-w88bk kur8 [1]     at processTicksAndRejections (node:internal/process/task_queues:96:5) {
    kur8-depl-7c8f78b546-w88bk kur8 [1]   code: 'ERR_HTTP_INVALID_STATUS_CODE'
    kur8-depl-7c8f78b546-w88bk kur8 [1] }
    kur8-depl-7c8f78b546-w88bk kur8 [1] [nodemon] app crashed - waiting for file changes before starting...
    kur8-depl-7c8f78b546-w88bk kur8 [0] [HPM] Error occurred while trying to proxy request /podList from localhost:3068 to http://localhost:3000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)
    kur8-depl-7c8f78b546-w88bk kur8 [0] [HPM] Error occurred while trying to proxy request /deploymentList from localhost:3068 to http://localhost:3000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
    kur8-depl-7c8f78b546-w88bk kur8 [0] [HPM] Error occurred while trying to proxy request /nodeList from localhost:3068 to http://localhost:3000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
    
    opened by pio2pio 2
Releases(1.0.0)
Owner
OSLabs Beta
OSLabs Beta
Palaemon is an open-source developer tool for monitoring health and resource metrics of Kubernetes clusters and analyzing Out of Memory (OOMKill) errors

Palaemon ?? ?? An Electron based developer tool for Kubernetes cluster monitoring and error analysis Palaemon is a Greek, child sea-god who came to ai

OSLabs Beta 99 Dec 28, 2022
A Kubernetes monitoring tool to visualize large-scale activity and real-time comprehensive metrics within your cluster.

Armada A light-weight Kubernetes health monitoring tool. Summary Armada is an open-source tool for monitoring the health of your Kubernetes cluster. I

OSLabs Beta 81 Nov 2, 2022
A visual, interactive outline map that combines the clarity of the outline with the intuitive overview of the minimap. Alternative Minimap.

Outline Map EN | 中文 A visual, interactive outline map that combines the clarity of the outline with the intuitive overview of the minimap. Alternative

null 97 Dec 21, 2022
📈 A Prometheus exporter for SerenityOS

serenity_exporter A Prometheus exporter for SerenityOS. Installation Copy the cloned repository, or at minimum, src/exporter.js, src/metrics.js, and r

Linus Groh 16 Jul 15, 2022
A simple web server exposing Hetzner cloud instances for consumption by the Prometheus HTTP service discovery.

Prometheus: Hetzner Service Discovery A server to provide automatic node discovery for Hetzner Cloud to Prometheus via HTTP service discovery. In cont

Matchory GmbH 1 Oct 10, 2022
A social network where you can share posts, view your profile metrics and follow other users.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Rui Neto 16 Aug 21, 2022
Introduction to Metrics, Logs and Traces session companion code.

Introduction to Metrics, Logs and Traces in Grafana This is the companion repository to a series of presentations over the three pillars of observabil

Grafana Labs 35 Dec 24, 2022
Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline

workflow-telemetry-action A GitHub Action to track and monitor the resource metrics of your GitHub Action workflow runs. If the run is triggered via a

Thundra 32 Dec 30, 2022
📊 AlphaSwap subgraph - (Blocks, token info, profiles, pricing data, LP metrics, etc...)

AlphaSwap Subgraph AlphaSwap is a decentralized protocol for automated token exchange on the KCC network. This subgraph dynamically tracks any pair cr

Brandon 3 Jul 9, 2022
An open-source visualization tool for monitoring Kafka cluster metrics

GitHub Tutorial Hyperion An open-source Kafka monitoring tool built for developers hyperionapp.dev Table of Contents About the Project Built With Gett

OSLabs Beta 46 Nov 10, 2022