Giter Club home page Giter Club logo

Comments (3)

Vishvajeet590 avatar Vishvajeet590 commented on September 6, 2024

Hi @PratikDhanave , what will be the flow of the application. I have one simple plan, we can create a bot that users can install on their cluster and it will have options for integration with different messaging platforms.

The bot would use dialogue flow to get intent from the conversation and we can perform those tasks on kubeCtl and respond accordingly.

Is this the high-level idea we are going to go with?

from kubebot.

Vishvajeet590 avatar Vishvajeet590 commented on September 6, 2024

@PratikDhanave Here is a brief explanation of the my architecture proposal for kubeBot. Please give some inputs on it. I am working on chat service in meantime.

Description

KubeBot will have microservice architecture. There are 3 main services which are responsible for the whole operation.

Diagram

Microservices

Workflow

Kube Chat Service

It handles the incoming and outgoing messages from the user and outputs to the bot, for example user sends a message bot captures the message sends it to this, Kube chat service which initiates the process. After all the execution it will send the output message.

Working Kube Chat Service

Kube Chat Service

Kube chat services take the input message which contains sender platform and content. We first check if the content string is a directly executable kubectl command or not if not, It sends the message for command (intent) detection. There might be chances the user has not provided all information at once so we send back the message to the user with the context of prior command and information and ask to fill up other details like some missing arguments or files.

Once we gather all the information we build the command in the Command builder and send it to Kube Executor Service.

Kube Executor Service

Kube Executor service gets the command string as its input. We run that command on the kubectl using os.exec It will be run concurrently to manage crashes**.** The output of the command from Kubectl is formatted and is passed to the Kube Chat service which is sent to the bot for displaying to the user.

Kube Executor Also has a task to keep watching the deployed clusters and report back all or specified events which can occur asynchronously. For this as soon as any desired event occurs Kube Executor service will send an alert to the bot which in turn displays on the chatbox.

Logger Service

Describe relevant tables and views in the database.

This service will be used by the other two services simultaneously to log the details during the operation.

from kubebot.

freddie400 avatar freddie400 commented on September 6, 2024

kubebot is a monitoring, alerting and debugging bot which is different from other available bots in the aspect that it performs 'Root Cause Analysis' on traces, logs, events and metrics generated from the kubernetes cluster. To monitor the pods/nodes health, the bot uses monitoring tool Prometheus and Grafana. To collect all the data from the cluster, Opentelemetry Collector is used in conjunction to Grafana. Otel-Col stores the data in a database which ultimately helps in 'Root Cause Analysis' and generate relavant alerts to the user.
The architecture and pipeline flow of the kubebot is as follows:

kubebot high level architecture

closes #3

from kubebot.

Related Issues (18)

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.