Spring Boot 管理服务器自定义通知

问题描述 投票:0回答:1

如何设置 Spring Boot 管理服务器,以便我可以针对不同的应用程序通知不同的用户?到目前为止,我只能通知相同的用户所有注册应用程序的状态更改。但我想通知例如user-1 用于 app-1,user-1 和 user-2 用于 app-2。

这可能吗,我该怎么做?

notifications spring-boot-admin
1个回答
0
投票

Spring Boot Admin 没有明确支持此用例,但您仍然可以通过手动配置多个相同类型但具有不同过滤器的通知程序来实现您的目标。

如果您使用 Slack 通知程序,它可能看起来像这样:

@Bean
public FilteringNotifier slackApp1Notifier(InstanceRepository repository, RestTemplate restTemplate) {
    SlackNotifier slackNotifier = new SlackNotifier(repository, restTemplate);
    slackNotifier.setChannel("team1");
    // ... set all necessary properties

    FilteringNotifier filteringNotifier = new FilteringNotifier(slackNotifier, repository);
    filteringNotifier.addFilter(new NotificationFilter() {

        @Override
        public String getId() {
            return "team 1 filter";
        }

        @Override
        public boolean filter(InstanceEvent event, Instance instance) {
            return instance.getTags().getValues().containsKey("team")
                    && instance.getTags().getValues().get("team").equals("1");
        }
    });

    return filteringNotifier;
}

另请参阅有关过滤通知的文档

© www.soinside.com 2019 - 2024. All rights reserved.