spring boot admin 自定义
自定义通知事件
- 实现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 自定义相关推荐
- 服务器状态显示down,Eureka心跳健康检查机制和Spring boot admin 节点状态一直为DOWN的排查(忽略某一个节点的健康检查)...
运行阶段执行健康检查的目的是为了从Eureka服务器注册表中识别并删除不可访问的微服务,Eureka 服务器并不是向客户端发送心跳请求,而是反过来,Eureka 客户端将心跳发送到Eureka服务器, ...
- Spring Boot Admin 2.0 上手
Spring Boot Admin 在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,是用来管理 Spring Boot 应用程序的一个简单的界面,提供如下功能: ...
- Spring Boot Admin的使用
文章目录 配置Admin Server 配置admin client 配置安全主键 Hazelcast集群 Spring Boot Admin的使用 前面的文章我们讲了Spring Boot的Actu ...
- Spring Boot Actuator与Spring Boot Admin详解
原版文档: 文档:Spring Boot Actuator.note 链接:http://note.youdao.com/noteshare?id=fca965ad3f7ae3f79260d09056 ...
- 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目
前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...
- 用Spring Boot Admin来监控我们的微服务
[转载请注明出处]:https://blog.csdn.net/huahao1989/article/details/108039738 1.概述 Spring Boot Admin是一个Web应用程 ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序
1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
点赞再看,动力无限.Hello world : ) 微信搜「 程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 1. ...
- Spring Boot Admin 2.1.0 全攻略
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序. ...
最新文章
- FGMap学习之--加载百度地图
- 2.1 Mini-batch 梯度下降-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- Go 导入当前项目下的包
- linux系统性能测试之虚拟内存管理篇
- CodeForces - 1203F1 Complete the Projects (easy version)(贪心)
- mysql sql字符串连接函数_Mysql字符串连接函数 CONCAT()与 CONCAT_WS()
- python调用PostgreSQL 11
- MySQL二进制版本的安装及卸载
- TCP/IP详解 学习三
- 嵌入式开发中数值常量如何转化为内存地址?
- ICPC China Nanchang National Invitational -- D. Match Stick Game(dp)
- 工大瑞普 NP-OSPF综合实验
- 分享76个PHP源码总有一个适合你
- java 制作圆形按钮_Java制作圆形按钮
- Linux zip与unzip:通过正则式解压压缩包内指定的文件
- Ubuntu 语言配置修改为英文
- 量化专业术语——转自BigQuant
- LINQ:使用join进行联接
- JavaEE-多线程(基础篇一)
- lopa分析_LOPA分析:使能条件和修正因子在场景识别方法中的应用