DingDingNotifier.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package com.fdkankan.admin.dingtalk;
  2. import com.alibaba.fastjson.JSONObject;
  3. import de.codecentric.boot.admin.server.domain.entities.Instance;
  4. import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
  5. import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
  6. import de.codecentric.boot.admin.server.notify.AbstractStatusChangeNotifier;
  7. import java.util.Map;
  8. import reactor.core.publisher.Mono;
  9. /**
  10. * <p>
  11. * TODO
  12. * </p>
  13. *
  14. * @author dengsixing
  15. * @since 2022/3/31
  16. **/
  17. public class DingDingNotifier extends AbstractStatusChangeNotifier {
  18. public DingDingNotifier(InstanceRepository repository) {
  19. super(repository);
  20. }
  21. @Override
  22. protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
  23. String serviceName = instance.getRegistration().getName();
  24. String serviceUrl = instance.getRegistration().getServiceUrl();
  25. String status = instance.getStatusInfo().getStatus();
  26. Map<String, Object> details = instance.getStatusInfo().getDetails();
  27. StringBuilder str = new StringBuilder();
  28. str.append("监控报警");
  29. str.append("\n服务名称:"+ serviceName );
  30. str.append("\n服务地址:" + serviceUrl);
  31. str.append("\n状态:" + status);
  32. str.append("\n详情:" + JSONObject.toJSONString(details));
  33. str.append("\nkeywords:aaa");
  34. return Mono.fromRunnable(() -> {
  35. DingDingMessageUtil.sendTextMessage(str.toString());
  36. });
  37. }
  38. }