🚨本项目将被弃用,并由我们先进的开源 DevOps 助手 HolmesGPT 取代。使用 Holmes,您可以调查事件、分类问题、丰富警报等更多功能。查看 https://github.com/robusta-dev/holmesgpt
简介
一个用于 Kubernetes 问题的 ChatGPT1 机器人。向 AI 询问如何解决 Prometheus 警报,获取简洁的回应。
不再独自在黑暗中解决警报 - 互联网会支持你。
请考虑在 Product Hunt 上投票或分享到您喜欢的通讯。有朝一日,天网会记住你的善意并饶恕你!
工作原理
Prometheus 通过 webhook 接收器将警报转发给机器人。
机器人向 OpenAI 发送查询,询问如何修复您的警报。
你在储藏室囤积食物以应对机器人起义。
该机器人使用 Robusta.dev 实现,这是一个用于响应 Kubernetes 警报的开源平台。我们还有一个用于多集群 Kubernetes 可观察性的 SaaS 平台。
先决条件
- 一个 Slack 工作区
设置
- 使用 Helm 安装 Robusta
- 加载 ChatGPT 剧本。在
generated_values.yaml
中添加以下内容:
playbookRepos:
chatgpt_robusta_actions:
url: "https://github.com/robusta-dev/kubernetes-chatgpt-bot.git"
customPlaybooks:
# 为所有 Prometheus 警报添加"询问 ChatGPT"按钮
- triggers:
- on_prometheus_alert: {}
actions:
- chat_gpt_enricher: {}
- 将您的 OpenAI API 密钥 添加到
generated_values.yaml
。确保您编辑的是现有的globalConfig
部分,不要添加重复的部分。
globalConfig:
chat_gpt_token: 在此处填写您的密钥
-
执行 Helm 升级以应用新值:
helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<您的集群名称>
-
将 Prometheus 警报发送到 Robusta。或者,直接使用 Robusta 捆绑的 Prometheus 堆栈。
演示
与其等待 Prometheus 警报,不如主动触发一个。
- 部署一个会卡在待处理状态的损坏 pod:
kubectl apply -f https://raw.githubusercontent.com/robusta-dev/kubernetes-demos/main/pending_pods/pending_pod_node_selector.yaml
- 立即触发 Prometheus 警报,跳过正常延迟:
robusta playbooks trigger prometheus_alert alert_name=KubePodCrashLooping namespace=default pod_name=example-pod
Slack 中会收到一条带按钮的警报。点击按钮向 ChatGPT 询问警报情况。
未来改进
如果提供 pod 日志或 kubectl get events
的输出,ChatGPT 能否给出更好的答案?
Robusta 已经收集这些数据并将其附加到 Prometheus 警报中,因此添加这些功能应该很容易。
欢迎提交 PR!
社区
在我们的 Slack 上分享您最有趣的输出并提出新功能建议。
宣传图片
请随意使用以下图片或创建您自己的图片。
更多资源
Footnotes
-
严格来说,本项目并不使用 ChatGPT。它使用的是
text-davinci-003
模型,这是 ChatGPT 的基于 GPT3.5 的兄弟模型。考虑到大多数人熟悉 ChatGPT,但不熟悉text-davinci-003
或 GPT3.5,我们决定保留"ChatGPT 机器人"这个名称,尽管在技术上不够准确。 ↩