• 利用大模型反馈故障的解决方案


    作者 观测云 数据智能部 产品方案架构师 范莹莹

    背景

    观测云有两个错误巡检脚本,RUM 错误巡检和 APM 错误巡检,代码均开源。
    错误巡检的主要目的是发现新出现的错误消息(error stack),原有的巡检在上报了相应的事件报告后,只是定位了问题,并没有给出合适的解决方案。OpenAI 的出现,给了解决个性化 error stack 的一些洞察和解决方案。
    本次最佳实践通过二次开发原有巡检,针对智能巡检的告警报告,实现自动化故障反馈,为用户提出合适的改进意见,一并在事件报告中体现,作为更加完备的巡检解决方案。

    实现流程

    1.安装观测云集成(ChatGpt 监控)[ID: guance_chatgpt_monitor] 脚本。完整流程可参考最佳实践文档《一行代码实现 OpenAI 可观测》

    2.安装观测云 APM 新增错误或 RUM 新增错误巡检脚本。

    本最佳实践以RUM 新增错误巡检为例。

    3.对新增错误获取到的 error-stack 进行提取,与大模型进行问答。

    在构建事件报告的 RUMEventStruct 类下新增一个大模型故障反馈模块,示例代码如下:

    # 大模型故障反馈
    def build_chatgpt_solution(self, js_new_error_messages, start_time, end_time):
        chatgpt_solution_section = event_detail.Section(name='大模型故障反馈', name_en='Solution Details', index=3)
    
        OPENAI_API_KEY = DFF.ENV('OPENAI_API_KEY')
    
        # 发送请求并获取回复
        url = 'https://us1-private-func.guance.com/api/v1/al/auln-...../simplified'
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {OPENAI_API_KEY}'
        }
    
        for js_new_error in js_new_error_messages:
            js_new_error_message = js_new_error[0]
            error_stack = js_new_error_message['error_stack']
            print(f'error_stack:\n{error_stack}')
    
            datas = {
                "model": "gpt-3.5-turbo",
                "messages": [{'role':'user', 'content':f'如果错误:{error_stack},请问原因是什么?怎么解决?'}],
                "temperature": 0.5,
                "presence_penalty": 0,
                "stream": False,
            }
    
            response = requests.post(url=url, headers=headers, json=datas)
    
            md = event_detail.Markdown("")
            text_list = [
                f'**解决方案**:`{response.text}`']
            text_list_en = [
                 f'**Solution**:`{response.text}`',
            ]
            md.set_text(*text_list)
            md.set_text(*text_list_en, lang='en')
            chatgpt_solution_section.add(md)
    
        return chatgpt_solution_section
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    4.url 处填写第一步中授权链接的 POST 简化形式(JSON)

    5.巡检一小时跑一次,如果所连接应用触发了巡检逻辑,即可在观测云控制台 **监控 -> 智能巡检 模块看到生成的事件报告。**如下图所示:

    总结

    在原有的智能巡检事件报告中,给出的建议相对固定,不能全面地将所有可能涉及到的错误建议给出。结合利用大模型,可以针对性地对触发的告警错误给出建议,提高事件报告的可读性。

  • 相关阅读:
    数学建模经验分享会For浙商大管工学院
    python读写excel
    代码片段的理解
    [附源码]计算机毕业设计JAVAjsp高校学院主页系统
    代码注释的艺术,优秀代码真的不需要注释吗?
    “银行家算法”大揭秘!在前端表格中利用自定义公式实现“四舍六入五成双”
    新基建智慧铁路:高铁沿线综合视频监控及风险智能预警管理方案
    【FPGA开发】时钟管理单元介绍与应用
    玩转UE4/UE5动画系统:UE5的运行时(动态)重定向治好了我的精神内耗
    星环科技数据安全管理平台 Defensor重磅发布
  • 原文地址:https://blog.csdn.net/power8988/article/details/132914363