0

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

在类包 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 是有效的。

谢谢你。

4

2 回答 2

2

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

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

于 2016-11-07T11:43:24.820 回答
1

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

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

我们没有别的东西。然而,StatusUpdater.queryStatus看起来有希望获得一些额外的数据。

于 2016-11-07T17:23:20.053 回答