在SpringBoot Admin Server上添加自定义选项卡

时间:2017-03-03 21:44:49

标签: java spring-boot spring-boot-actuator spring-boot-admin

我对Spring很新。我正在尝试将服务中的自定义信息集成到Spring Boot Admin服务器仪表板中。

开箱即用,微服务的Spring启动管理服务器仪表板包含DetailsMetrics等的选项卡。我需要添加一个或多个自定义标签。我有一个服务提供了一个虚拟端点(将来会提供自定义选项卡),这是我通过以下this文章创建的。此端点扩展了actuator.Endpoint类。

我在服务器和用户界面上都查看了Spring Boot Admin' Github,但无法找到集成自定义端点的方法。

感谢任何形式的帮助。感谢

2 个答案:

答案 0 :(得分:2)

目前没有关于此的文档。但这是可能的。查看spring-boot-admin-server-ui-activiti模块。它为新端点添加了一个选项卡。

答案 1 :(得分:0)

除了@joshiste:

您可以通过确保将资源添加到正确的目录中来创建自定义插件。

admin项目会查找以下目录:

registry.addResourceHandler(adminServerProperties.getContextPath() + "/**")
            .addResourceLocations("classpath:/META-INF/spring-boot-admin-server-ui/")
            .resourceChain(true)
            .addResolver(new PreferMinifiedFilteringResourceResolver(".min"));

    registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.css")
            .resourceChain(true)
            .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver,
                    "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.css"))
            .addResolver(new ConcatenatingResourceResolver("\n".getBytes()));

    registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.js")
            .resourceChain(true)
            .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver,
                    "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.js"))
            .addResolver(new PreferMinifiedFilteringResourceResolver(".min"))
            .addResolver(new ConcatenatingResourceResolver(";\n".getBytes()));

因此请确保将您的js / css资源添加到/ META-INF / spring-boot-admin-server-ui / etc中。并具有正确的名称:module.js和module.css

更新它看起来像是,无法添加额外的标签来注入您的自定义插件。至少不是i.c.w. Angular,就像默认插件一样。这主要是因为SBA的所有模块和js依赖关系在构建过程中都缩小了,但是自定义的模块和js依赖关系不会像以下那样出现JS错误:

require isn't defined

在自定义module.js的以下行中:

var angular = require('angular');

所以我现在看到的唯一方法是分支整个SBA项目并复制一个默认插件作为您自己的起点(例如,applications-metrics)