【问题标题】:Add a custom tab on SpringBoot Admin Server在 Spring Boot Admin Server 上添加自定义选项卡
【发布时间】:2017-07-24 03:47:12
【问题描述】:

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

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

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

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

【问题讨论】:

  • “无法集成自定义端点”?你是什​​么意思?您是否收到任何类型的错误或任何类型的消息?用户界面是什么样的?
  • 也许我应该正确选择单词,但我的意思是......“但无法找到集成自定义端点的方法。”
  • 添加自定义标签的示例:stackoverflow.com/a/53462345/1131967

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


【解决方案1】:

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

【讨论】:

  • 我使用的是 SBA 2.0.1,是否可以在 SBA 中添加自定义端点选项卡?如果是,您能否建议一些参考作为工作示例类型,以便我们参考并继续。
  • @joshiste 上面的链接似乎不起作用,codecentric.github.io/spring-boot-admin/2.1.1/… 似乎也不公正。如果有一个示例,其中自定义 ui 更改并且 Spring Boot 管理服务器位于单个项目中,那就太好了
【解决方案2】:

除了@joshiste:

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

管理项目查找以下目录:

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 错误:

require isn't defined

在自定义module.js的下面一行:

var angular = require('angular');

所以我现在看到的唯一方法是分叉整个 SBA 项目并复制一个默认插件作为您自己的起点(例如应用程序指标)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多