自定义通知事件

  • 实现notifier接口
// 此接口在服务端
package de.codecentric.boot.admin.server.notify;
public interface Notifier {Mono<Void> notify(InstanceEvent var1);
}
复制代码
  • AbstractEventNotifier
  • AbstractStatusChangeNotifier

可以通过实现Notifier接口,或者继承AbstractEventNotifier或者AbstractStatusChangeNotifier来实现自定义通知事件。其集成关系如下图所示:

以下为自定义实现一个通知程序。

public class CustomNotifier  extends AbstractEventNotifier {private static final Logger LOGGER = LoggerFactory.getLogger(LoggingNotifier.class);public CustomNotifier(InstanceRepository repository) {super(repository);}@Overrideprotected Mono<Void> doNotify(InstanceEvent event, Instance instance) {return Mono.fromRunnable(() -> {if (event instanceof InstanceStatusChangedEvent) {LOGGER.info("Instance {} ({}) is {}", instance.getRegistration().getName(), event.getInstance(),((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());} else {LOGGER.info("Instance {} ({}) {}", instance.getRegistration().getName(), event.getInstance(),event.getType());}});}
}
复制代码

注入自定义的http请求头

如过想将自定义的http请求头信息注入到监控服务端,需要实现HttpHeadersProvider

package de.codecentric.boot.admin.server.web.client;
public interface HttpHeadersProvider {HttpHeaders getHeaders(Instance var1);
}
复制代码

自定义实现如下:

@Configuration
@EnableAutoConfiguration
@EnableAdminServer
@Import({SecurityPermitAllConfig.class, SecuritySecureConfig.class, NotifierConfig.class})
public class SpringBootAdminServletApplication {private static final Logger log = LoggerFactory.getLogger(SpringBootAdminServletApplication.class);public static void main(String[] args) {SpringApplication.run(SpringBootAdminServletApplication.class, args);}// tag::customization-instance-exchange-filter-function[]@Beanpublic InstanceExchangeFilterFunction auditLog() {return (instance, request, next) -> next.exchange(request).doOnSubscribe(s -> {if (HttpMethod.DELETE.equals(request.method()) || HttpMethod.POST.equals(request.method())) {log.info("{} for {} on {}", request.method(), instance.getId(), request.url());}});}// end::customization-instance-exchange-filter-function[]@Beanpublic CustomNotifier customNotifier(InstanceRepository repository) {return new CustomNotifier(repository);}@Beanpublic CustomEndpoint customEndpoint() {return new CustomEndpoint();}// tag::customization-http-headers-providers[]@Beanpublic HttpHeadersProvider customHttpHeadersProvider() {return instance -> {HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.add("X-CUSTOM", "My Custom Value");return httpHeaders;};}// end::customization-http-headers-providers[]}
复制代码

拦截请求和响应

可以通过实现InstanceExchangeFilterFunction接口来拦截和修改对受监视应用程序的执行器端点的请求和响应。这对于审核或添加一些额外的安全检查非常有用。

如上代码中的InstanceExchangeFilterFunction auditLog()

链接或者嵌入外部页面

只需要需改yml文件中的配置即可

# tag::自定义外部视图
spring:boot:admin:ui:external-views:- label: "?"url: http://codecentric.deorder: 2000
# end::customization-external-views
复制代码

自定义视图

可以像ui添加自定义视图,但此视图必须为vue.js的组件。 JavaScript-Bundle和CSS-Stylesheet必须放在类路径上,/META-INF/spring-boot-admin-server-ui/extensions/{name}/以便服务器可以处理他们。spring-boot-admin-samples / spring-boot-admin-sample-custom-ui / [spring-boot-admin-sample-custom-ui]可以做为一个参考。

自定义扩展需要通过调用自身的SBA.use()方法注册,并需要公开一个install()函数,该函数在设置路由时由ui调用。该install()函数接收以下参数以注册视图或回调:

  • 引用{github-src} /spring-boot-admin-server-ui/src/main/frontend/viewRegistry.js [viewRegistry]的对象

  • 引用{github-src} /spring-boot-admin-server-ui/src/main/frontend/store.js [applicationStore]的对象

  • 引用全局Vue [Vue]的对象

  • 引用{github-src} /spring-boot-admin-server-ui/src/main/frontend/utils/axios.js [axios]的对象

如果将新的顶级路由添加到前端,则后端也必须知道它们。添加一个/META-INF/spring-boot-admin-server-ui/extensions/{name}/routes.txt包含所有新的顶层路线(每条线路一条路线)。

// 注册组件
SBA.use({install({viewRegistry}) {viewRegistry.addView({name: 'custom',  //<1>path: '/custom', //<2>component: custom, //<3>label: 'Custom', //<4>order: 1000, //<5>});}
});
复制代码

添加父级

如下是一个简单的父级视图,用来列出所有的注册的模块。

// spring-boot-admin-sample-custom-ui/src/custom.vue
<template><pre v-text="stringify(applications, null, 4)"/>
</template><script>
export default {props: {applications: { //<1>type: Array,required: true}},methods: {stringify: JSON.stringify}
};
</script>
复制代码

注册组件如上,在index.js中,并添加路由信息,routes.txt中

/custom/**
复制代码

可视化自定义

以下是自定义可视化端点视图,

参考

blog.csdn.net/AnY11/artic…

github.com/codecentric…

转载于:https://juejin.im/post/5d37f1726fb9a07ec3742fc1

spring boot admin 自定义相关推荐

  1. 服务器状态显示down,Eureka心跳健康检查机制和Spring boot admin 节点状态一直为DOWN的排查(忽略某一个节点的健康检查)...

    运行阶段执行健康检查的目的是为了从Eureka服务器注册表中识别并删除不可访问的微服务,Eureka 服务器并不是向客户端发送心跳请求,而是反过来,Eureka 客户端将心跳发送到Eureka服务器, ...

  2. Spring Boot Admin 2.0 上手

    Spring Boot Admin 在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,是用来管理 Spring Boot 应用程序的一个简单的界面,提供如下功能: ...

  3. Spring Boot Admin的使用

    文章目录 配置Admin Server 配置admin client 配置安全主键 Hazelcast集群 Spring Boot Admin的使用 前面的文章我们讲了Spring Boot的Actu ...

  4. Spring Boot Actuator与Spring Boot Admin详解

    原版文档: 文档:Spring Boot Actuator.note 链接:http://note.youdao.com/noteshare?id=fca965ad3f7ae3f79260d09056 ...

  5. 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目

    前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...

  6. 用Spring Boot Admin来监控我们的微服务

    [转载请注明出处]:https://blog.csdn.net/huahao1989/article/details/108039738 1.概述 Spring Boot Admin是一个Web应用程 ...

  7. Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序

    1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...

  8. Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知

    点赞再看,动力无限.Hello world : ) 微信搜「 程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 1. ...

  9. Spring Boot Admin 2.1.0 全攻略

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序. ...

最新文章

  1. FGMap学习之--加载百度地图
  2. 2.1 Mini-batch 梯度下降-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. Go 导入当前项目下的包
  4. linux系统性能测试之虚拟内存管理篇
  5. CodeForces - 1203F1 Complete the Projects (easy version)(贪心)
  6. mysql sql字符串连接函数_Mysql字符串连接函数 CONCAT()与 CONCAT_WS()
  7. python调用PostgreSQL 11
  8. MySQL二进制版本的安装及卸载
  9. TCP/IP详解 学习三
  10. 嵌入式开发中数值常量如何转化为内存地址?
  11. ICPC China Nanchang National Invitational -- D. Match Stick Game(dp)
  12. 工大瑞普 NP-OSPF综合实验
  13. 分享76个PHP源码总有一个适合你
  14. java 制作圆形按钮_Java制作圆形按钮
  15. Linux zip与unzip:通过正则式解压压缩包内指定的文件
  16. Ubuntu 语言配置修改为英文
  17. 量化专业术语——转自BigQuant
  18. LINQ:使用join进行联接
  19. JavaEE-多线程(基础篇一)
  20. lopa分析_LOPA分析:使能条件和修正因子在场景识别方法中的应用

热门文章

  1. 360推出国内首个工业互联网安全态势感知系统
  2. 27. 考研与工作怎么选择
  3. OKHTTP好文推荐
  4. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
  5. Android XmlPullParser 笔记
  6. flex 错误信息类型及解决方法
  7. 组策略复制失败排错思路实例
  8. OpenGL驱动的陷阱:ATI篇,后续
  9. 让服务器自动从HG版本库中下载代码
  10. 实用hostname查看主机名的步骤