【问题标题】:Redefining Mail notifications template for Spring Boot Admin为 Spring Boot Admin 重新定义邮件通知模板
【发布时间】:2016-11-07 11:11:56
【问题描述】:

我们能否提供一个可用于重新定义模板的变量样本,documentation 在这方面很少见?

在我阅读的类包 de.codecentric.boot.admin.notify.MailNotifier 中

private static final String DEFAULT_SUBJECT = "#{application.name} (#{application.id}) is #{to.status}";
private static final String DEFAULT_TEXT = "#{application.name} (#{application.id})\nstatus changed from #{from.status} to #{to.status}\n\n#{application.healthUrl}";

在我的特定用例中,我继承了一堆我想要 ping 或监控它们是否存在的应用程序。我无法控制它们,但我的应用依赖于它们。

我的应用不会失败,但可能会出现异常(重要的一点!)。

所以我添加了一堆海关 HealthIndicator 来通过 ping 对其进行监控,效果很好,我很高兴通过更改 IP 发送通知,太棒了!

但是有一个但是,发送的消息让我认为应用程序失败了,而健康指标却是状态 OUT_OF_SERVICE,对 DevOps 造成不必要的压力。

请回答我的问题,我如何添加一些额外的变量,以便一些精心设计的 SPEL 将健康指示器消息状态更改与应用程序状态更改(即 webapp 脱机)区分开来。

SBA 关键字字典是否可用于重新定义例如spring.boot.admin.notify.mail.text 邮件通知配置选项?

我想这对 hipchat、Slack 等其他通知者是有效的。

谢谢。

【问题讨论】:

    标签: spring-boot-admin


    【解决方案1】:

    评估 SpEL 表达式的上下文是事件。 因此来自ClientApplicationEvent(或事件实例的相应子类(例如ClientApplicationStatusChangedEvent))的所有属性都可用。

    如果还不够,您可以发布您自己的 MailNotifier 子类..

    【讨论】:

    • 不确定我是否理解为什么需要子类 MailNotifier?这违背了定义 [codecentric.github.io/spring-boot-admin/1.4.3/…] 邮件正文或主题的目的,如表 5 中所述,对吗?我只想修改默认值正文或主题。然而,作为上下文的 ClientApplicationEvent 很有趣,因为它最终会暴露更多的值,因此可以在评估上下文时使用它!任何指针?健康指示器状态变化在哪里触发/检测?
    • 如果 SpEL 表达式的给定上下文不符合您的需要,您只需对邮件通知程序进行子类化。如果状态发生变化,上下文是 ClientApplicationStatusChangedEvent 类型,其中 fromto 属性保存旧状态和新状态。
    • 是的,但上下文没有足够的属性来提取,例如健康指标的名称。看起来StatusUpdater.updateStatusForAllApplications 负责发布健康指示器状态更改。不可能有一个特定的事件,比如 ClientApplicationHealthStatusChangedEvent 来处理更多的属性?
    • 目前后端不考虑健康细节。所以这意味着更多的变化。
    【解决方案2】:

    答案是否定的,在当前代码库中无法在不更改代码的情况下执行此操作。 可用的 SBA 通知关键字/变量如下:

    • 应用程序名称
    • application.id
    • application.healthUrl
    • application.managementUrl
    • application.serviceUrl
    • application.statusInfo.status
    • 来自.status
    • to.status
    • 时间戳
    • 类型

    我们没有别的了。 不过StatusUpdater.queryStatus 看起来很有希望获得一些额外的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多