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

skywalking告警UI界面有告警信息,webhook接口没有回调,400错误

400错误就是回调接口返回数据的属性对应不上
@PostMapping(“/webhook”)
public void webhook(@RequestBody List alarmMessageList)
自定义的实体类AlarmMessage有问题
只能去官网找了
告警实体类官网

@Getter
@EqualsAndHashCode
@RequiredArgsConstructor
@NoArgsConstructor(force = true)
public class AlarmEntity {
    private final String scope;
    private final int scopeId;
    private final String name;
    private final String id0;
    private final String id1;
}

我使用的skywalking的版本是8.8.0
因为告警功能是基于这两个jar实现的
在这里插入图片描述

b站上,黑马的和图灵的讲师的实体类都不一样,所以不能直接抄,没有效果只能去分析skywalking的日志,看是不是发请求接口失败400了
在这里插入图片描述
完整代码如下:
实体类

@Getter
@EqualsAndHashCode
@RequiredArgsConstructor
@NoArgsConstructor(force = true)
public class AlarmMessage {
    private final String scope;
    private final int scopeId;
    private final String name;
    private final String id0;
    private final String id1;
}

模拟超时的接口

@RestController
public class AlarmController {
    @GetMapping("/timeout")
    public String timeout() throws InterruptedException {
        Thread.sleep(1500);
        return "timeout";
    }
}

告警回调接口

@RestController
public class WebHooks {
    private List<AlarmMessage> lastList=new ArrayList<>();
    @PostMapping("/webhook")
    public void webhook(@RequestBody List<AlarmMessage> alarmMessageList){
        lastList = alarmMessageList;
    }
    @GetMapping("/show")
    public List<AlarmMessage> show(){
        return lastList;
    }
}

skywalking服务配置文件指定告警接口
在这里插入图片描述
在这里插入图片描述
多次请求http://localhost:8088/timeout
2分钟后一般会有告警信息出现
或者点击右上方的自动,再去请求接口,直到能出现告警
在这里插入图片描述
再去请求show接口,查看返回的数据
http://localhost:8088/show
有数据就是成功了,如果是空数组,就是webhook的接口没有回调成功,去看看skywalking的日志吧!!
在这里插入图片描述


http://www.kler.cn/news/149413.html

相关文章:

  • 【100个Cocos实例】完蛋,你看我在刮刮乐中刮到了什么?
  • 【Java基础】-- Java包(package)命名规范
  • 选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
  • [C++][原创]VSCode C++怎么让运行的时候弹出cmd窗口,而不是在VSCode调试输出
  • Rust之构建命令行程序(一):接受命令行参数
  • 算法之插入排序及希尔排序(C语言版)
  • C++ day42背包理论基础01 + 滚动数组
  • source: command not found错误的解决方法
  • 学习知识随笔(Django)
  • 机器学习笔记 - 基于百度飞桨PaddleSeg的人体分割
  • Douuble 4 VR智能互动系统为酒店管理专业提供虚拟场景实训
  • 代洋集团,引领绿色能源新潮流
  • Python搭建运筹模型的代码框架
  • Android 13.0 系统settings系统属性控制一级菜单显示隐藏
  • layui下拉框jQuery动态修改选中并展示
  • Vue实现可拖拽边界布局
  • UE5、CesiumForUnreal实现加载GeoJson绘制多面(MultiPolygon)功能(支持点选高亮)
  • python循环调用http示例(一定时间duration内,每隔时间interval去调用一次)call_http()
  • osgFX扩展库-异性光照、贴图、卡通特效(1)
  • Docker+Anaconda+CUDA+cuDNN
  • C++ 17实现无锁队列
  • Servlet-Vue-JSON交互
  • JSP迭代标签之 forEach循环标签 基本使用讲解
  • 使用Wireshark提取流量中图片方法
  • JSP forEach 标签遍历map集合
  • 【nlp】4.5 迁移学习实践项目(相关概念、中文分类、填空、句子关系、模型微调)
  • Less 安装教程
  • Java第二十章
  • Android 12.0 禁用adb reboot recovery命令实现正常重启功能
  • Android控件全解手册 - 任意View缩放平移工具-源码