当前位置: 首页 > article >正文

JMeter与大模型融合应用之JMeter日志自动检测错误并机器人发送钉钉信息

JMeter与大模型融合应用之JMeter日志自动检测错误并机器人发送钉钉信息

业务框架

我们需要实现的基本业务框架如下
在这里插入图片描述
需求描述
我们目前要在JMeter上实现如下功能:
在这里插入图片描述
特性1:定时任务自动轮巡检测jmeter.log日志中错在ERROR的报错信息
特性2:针对ERROR报错信息自动进行捕获,并且把错误信息发送给后端大模型
特性3:大模型针对问题进行分析,并且给出问题原因和解决方案
特性4:问题原因和解决方案显示在jmeter的日志
特性5:问题原因和解决方案同时通过DingTalk机器人同步

业务实现

jmeter.log日志读取

第一步:首先我们需要读取jmeter.log日志的内容,这样才能够获取我们的日志信息,我们可以利用JMeter自带的JMeterUtils.getJMeterHome()方法后去对应jmeter.log的日志路径。
第二步:编写我们的日志读取方法,我们这里以获取jmeter最新一个错误为例

public static String readLastErrors(){
   
        List<String> errors = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(JMeterUtils.getJMeterHome() + "\\bin\\jmeter.log"))) {
   
            // 读取文件中的所有行
            List<String> lines = new ArrayList<>();
            String line;
            while ((line = br.readLine()) != null) {
   
                lines.add(line);
            }

            // 获取最后错误信息
            int numLines = lines.size();
            for (int i = 0; i < numLines; i++) {
   
                String currentLine = lines.get(i);
                if(currentLine.length() < 24)
                    continue;
                currentLine = currentLine.substring(24);
                boolean errorLine = isErrorLine(currentLine);
                if (errorLine) {
   
                    errors.add(currentLine);
                }
            }
        } catch (IOException e) {
   
            e.printStackTrace();
        }
        if (errors.isEmpty()){
   
            return "";
        }else{
   
            return errors.get(errors.size()-1);
        }
    }

第二步:判断每一行是否有报错信息

 public static boolean isErrorLine(String line) {
   
        // 根据您的日志格式,您可能需要自定义此方法以判断某行是否是错误信息。
        // 示例中,只检查包含"ERROR"关键字的行。
        line = line.substring(0,5);
        if (line.equals("ERROR"))
        {
   
            return true;
        }else{
   
            return false;
        }
    }

第三步:当判断有报错信息时候,组装提示词,后续提给大模型

public String prompt(String error){
        String prompt = String.format("你是一个资深的java开发工程师,你在java错误问题定位非常出色。当前有如下错误信息内容:%s,请你根据你的专业知识输出符合如下格式内容。问题原因:输出问题原因解决方案:输出解决方案如下【】中的内容为参考例子:【问题原因:1.参数配置错误2.参数超过限制。解决方案:1.输入正确的参数,如a 2.输入正确范围内的参数,如不能输入b】",error.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
        return prompt;
    }

这样我们就编写完成日志读取和组装提示词相关代码,完整代码如下

import org.apache.jmeter.util.JMeterUtils;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class ReadJMeterLog {
    public static String readLastErrors(){
        List<String> errors = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(JMeterUtils.getJMeterHome() + "\\bin\\jmeter.log"))) {
//        try (BufferedReader br = new BufferedReader(new FileReader("D:\\JMeterOriginCode\\apache-jmeter-5.1\\jmeter.log"))) {
            // 读取文件中的所有行
            List<String> lines = new ArrayList<>();
            String line;
            while ((line = br.readLine()) != null) {
                lines.add(line);
            }

            // 获取最后错误信息
            int numLines = lines.size();
            for (int i = 0; i < numLines; i++) {
                String currentLine = lines.get(i);
                if(currentLine.length() < 24)
             

http://www.kler.cn/a/320325.html

相关文章:

  • 使用VSCode搭建Ruby on Rails集成开发环境
  • BUUCTF:misc刷题记录4(会持续更新的)
  • 《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建
  • 特制一个自己的UI库,只用CSS、图标、emoji图 第二版
  • 对比学习 (Contrastive Learning) 算法详解与PyTorch实现
  • 多模态论文笔记——CLIP
  • 计算机毕业设计之:资源共享平台的研究和实现(源码+文档+讲解)
  • 最新程序开发IDE工具——Melty
  • 【EPLAN】解决ELM与ELC授权不匹配问题
  • DevExpress WPF中文教程:如何解决行焦点、选择的常见问题?
  • Redis 列表(List)
  • Linux宇宙-1
  • FortiGate OSPF动态路由协议配置
  • 进阶美颜功能技术开发方案:探索视频美颜SDK
  • 计算机视觉中的几何基元:用Python揭开图像的秘密
  • 【Midjourney】如何使用Midjourney生成惊艳的艺术作品:从提示词到完美图像的全攻略
  • 三维手势 handpose 3D RGB 手势3D建模 三维建模-手势舞 >> DataBall
  • 1.pytest基础知识(默认的测试用例的规则以及基础应用)
  • Renesas R7FA8D1BH (Cortex®-M85)的UART使用介绍
  • JavaWeb - 7 - SpringBootWeb入门
  • Oracle(136)什么是UNDO表空间?
  • 汽车总线之---- CAN FD总线
  • Greedy_approach贪心算法
  • MATLAB中多张fig图合并为一个图
  • 国产操作系统(统信UOS)网络安全等级保护基础安全加固
  • 9.25盒马鲜生一面