Comments (3)
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.
@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
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 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.
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:
closes #3
from kubebot.
Related Issues (18)
- prometheus integration in custom operator
- Node exporter API
- Grafana integration in custom operator
- CRD for grafana to display data in grafana UI
- CRD for prometheus to pull metrics and display data in prometheus UI
- Installation of grafana using Helm charts.
- Installation of prometheus using Helm charts.
- functionality to collect logs from all pods
- need a log collector agent to ingest application logs
- require filebeat codec to compress the collected log output in the OTLP packet
- missing exporter to export compressed OTLP packets
- add gRPC to exporter
- reconfiguration required in otel-col for end to end unit testing
- validation of end-to-end unit testing, deploying filebeat as daemonset
- Intergrate Dialogflow with kubebot HOT 1
- operator framework based custom operator for kubebot
- metric API and controller reconciliation need to be configured
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kubebot.