ChatOps用于微服务架构-ChatOps4MSA
ChatOps4MSA是一种使用大型语言模型(LLMS)的对话助理工具,旨在微服务开发和操作。用户可以监视实时服务状态,执行测试和代码扫描等自动操作,并使用设计的查询语言(CQL(ChatOps查询语言)或自然语言)接收警报通知。
开发人员可以使用低编码配置文件自定义所需的功能,该文件将其与通常需要广泛培训数据的传统聊天机器人开发区分开来。 ChatOps4MSA利用最新的大语言模型,分析用户查询以确定意图和实体,从而实现相应的操作。
这是chatops4msa的场景:

这是chatops4msa的操作概念:

有关更多详细信息,请参见feature.md
在ChatOps频道中,使用@ChatOps4Msa-Bot提及chatops4msa,然后以自然语言输入您的请求。

在ChatOps频道中,使用以/启动的slash命令直接执行命令。

这是CQL的语法:
/[ACTION] [TOOL] [COMMAND] [SERVICE] [FLAGS]

| 范围 | 描述 | 必需的? |
|---|---|---|
| [行动] | 要执行的操作,例如检索信息(GET),配置设置(设置),监视服务(监视),测试服务(测试)等。 | 必需的 |
| [工具] | 要使用的工具,例如Github,Prometheus,K6,自定义模块等。 | 必需的 |
| [命令] | 要执行的操作,例如service_recent_activity 。 | 必需的 |
| [服务] | 执行的目标服务,可以选择为all_service ,以包括所有服务。 | 选修的 |
| [标志] | 其他参数选项,可能是多个参数;所有CQL命令均包括用于调度函数定期执行的subscribe参数,参数值为cron表达式。 | 选修的 |
以下是几种旨在展示ChatOps4MSA功能的演示功能,您可以使用自然语言或CQL执行这些功能。
| 意图 | 实体 | 描述 |
|---|---|---|
| get-example-echo_message | 信息 | 只需回应一条消息以为和不和谐即可。 |
| get-example-math_calculate | 表达 | 使用给定的数学表达式执行计算。 |
| get-github-service_recent_activity | service_name,number_of_activity | 检索服务仓库的最新活动。 |
| get-github-service_past_week_team_activity | service_name | 在过去一周内获取团队的指定服务活动。 |
| get-github-service_code_scanning | service_name | 获取服务回购中最新提交的检查报告。 |
| set-github发行 | service_name,esseage_title,esseage_message | 在具有依赖性风险的服务存储库中创建问题。 |
| get-github-issue_progress_timeline | service_name,number_of_issue | 用时间表描述问题的进度。 |
| get-github-contribution_of_team_member | service_name | 获取团队成员的贡献分析。 |
| Monitor-prometheus-promql_overview | (null) | 使用Promql监视所有服务指标。 |
| Monitor-prometheus-grafana_overview | (null) | 使用图形用户界面(GUI)监视所有服务的整体状态。 |
| get-prometheus-alert_rule | (null) | 通过Prometheus UI查看警报规则。 |
| 监视prometheus-service_health | (null) | 监视所有服务的健康状况。 |
| Monitor-prometheus-all_service_yesterday_status | (null) | 使用Promql检索昨天的微服务运营状态。 |
| 监视prometheus-service_依赖性 | (null) | 监视微服务之间的依赖关系。 |
| test-k6-surss_testing | service_name | 对特定服务进行压力测试。 |
| test-k6-smoke_testing_all_service | number_of_virtual_user | 对所有服务进行烟雾测试。 |
| test-custom_test-smoke_and_repo_all_service | number_of_virtual_user | 对所有服务,监视状态进行烟雾测试,并获得微服务失败的最新活动。 |
出于安全原因,以下功能只能通过斜杠命令而不是通过自然语言执行。
例如,将cron表达式填充到CQL的subscribe参数中:

您可以使用slash命令/check_all_subscription查看所有订阅,例如:

您可以使用slash命令/unsubscribe_all_capability删除所有功能,例如:

YouTube链接
我们确实会定期检查Discord机器人的健康。尽管如此,我们对服务没有高可用性保证。如果不可用,请随时打开问题。
Discord链接
DevOps工具的默认帐户是
admin,默认密码是soselab。
创建一个Discord应用程序(BOT):
Supervisor和Team_Member 。注册斜杠命令(CQL):
git clone https://github.com/sheng-kai-wang/ChatOps4Msa.gitapplication.properties和secret.yml文件,您可以参考提供的模板:application-template.properties和secret_template.yml。使用提供的.sh脚本文件部署到服务器:
sh run_all.sh即可启动整个系统。"Ctrl" + "b", then "d" 。您可以使用tmux attach重新输入会话。分叉以下4个微服务存储库利用与GitHub相关的功能:
<<Reverse proxy domain>>adminsoselabscan_run_id 。请参阅step_for_github_scan_run_id。登录到Grafana并手动配置数据源(Prometheus)以启用与Grafana相关的功能:
sh run_chatops4msa.sh这样做。只需要以低编码格式编写配置文件。
请参阅custom_capability.md