0.0.4.1
上报失败添加告警
This commit is contained in:
parent
054bef4a8b
commit
54c4558c17
@ -4,21 +4,31 @@ import com.github.rholder.retry.*;
|
|||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.x.retry.client.core.RetryExecutor;
|
import com.x.retry.client.core.RetryExecutor;
|
||||||
import com.x.retry.client.core.RetryExecutorParameter;
|
import com.x.retry.client.core.RetryExecutorParameter;
|
||||||
|
import com.x.retry.client.core.cache.GroupVersionCache;
|
||||||
import com.x.retry.client.core.client.NettyHttpConnectClient;
|
import com.x.retry.client.core.client.NettyHttpConnectClient;
|
||||||
import com.x.retry.client.core.client.request.ReportRetryInfoHttpRequestHandler;
|
import com.x.retry.client.core.client.request.ReportRetryInfoHttpRequestHandler;
|
||||||
import com.x.retry.client.core.client.request.RequestParam;
|
import com.x.retry.client.core.client.request.RequestParam;
|
||||||
import com.x.retry.client.core.config.XRetryProperties;
|
|
||||||
import com.x.retry.common.core.model.XRetryRequest;
|
|
||||||
import com.x.retry.client.core.client.response.XRetryResponse;
|
import com.x.retry.client.core.client.response.XRetryResponse;
|
||||||
|
import com.x.retry.client.core.config.XRetryProperties;
|
||||||
import com.x.retry.client.core.executor.GuavaRetryExecutor;
|
import com.x.retry.client.core.executor.GuavaRetryExecutor;
|
||||||
|
import com.x.retry.common.core.alarm.Alarm;
|
||||||
|
import com.x.retry.common.core.alarm.AlarmContext;
|
||||||
|
import com.x.retry.common.core.alarm.AltinAlarmFactory;
|
||||||
import com.x.retry.common.core.context.SpringContext;
|
import com.x.retry.common.core.context.SpringContext;
|
||||||
|
import com.x.retry.common.core.enums.NotifySceneEnum;
|
||||||
import com.x.retry.common.core.log.LogUtils;
|
import com.x.retry.common.core.log.LogUtils;
|
||||||
|
import com.x.retry.common.core.model.XRetryRequest;
|
||||||
|
import com.x.retry.common.core.util.EnvironmentUtils;
|
||||||
import com.x.retry.common.core.util.JsonUtil;
|
import com.x.retry.common.core.util.JsonUtil;
|
||||||
import com.x.retry.common.core.window.Listener;
|
import com.x.retry.common.core.window.Listener;
|
||||||
|
import com.x.retry.server.model.dto.ConfigDTO;
|
||||||
import com.x.retry.server.model.dto.RetryTaskDTO;
|
import com.x.retry.server.model.dto.RetryTaskDTO;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -26,6 +36,13 @@ import java.util.concurrent.TimeUnit;
|
|||||||
* @date : 2022-03-08 13:54
|
* @date : 2022-03-08 13:54
|
||||||
*/
|
*/
|
||||||
public class ReportListener implements Listener<RetryTaskDTO> {
|
public class ReportListener implements Listener<RetryTaskDTO> {
|
||||||
|
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
private static String reportErrorTextMessageFormatter =
|
||||||
|
"<font face=\"微软雅黑\" color=#ff0000 size=4>{}环境 上报失败</font> \r\n" +
|
||||||
|
"> 名称:{} \r\n" +
|
||||||
|
"> 时间:{} \r\n" +
|
||||||
|
"> 异常:{} \n"
|
||||||
|
;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handler(List<RetryTaskDTO> list) {
|
public void handler(List<RetryTaskDTO> list) {
|
||||||
@ -43,11 +60,10 @@ public class ReportListener implements Listener<RetryTaskDTO> {
|
|||||||
XRetryResponse.cache(xRetryRequest, requestHandler.callable());
|
XRetryResponse.cache(xRetryRequest, requestHandler.callable());
|
||||||
NettyHttpConnectClient.send(requestHandler.method(), requestHandler.getHttpUrl(new RequestParam()), requestHandler.body(xRetryRequest));
|
NettyHttpConnectClient.send(requestHandler.method(), requestHandler.getHttpUrl(new RequestParam()), requestHandler.body(xRetryRequest));
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}, throwable -> {
|
}, throwable -> {
|
||||||
LogUtils.info("上报重试后失败:{}", JsonUtil.toJsonString(list));
|
LogUtils.info("上报重试后失败:{}", JsonUtil.toJsonString(list));
|
||||||
// TODO 通知
|
sendMessage(throwable);
|
||||||
}, o -> LogUtils.info("上报重试成功:{}", JsonUtil.toJsonString(list)));
|
}, o -> LogUtils.info("上报重试成功:{}", JsonUtil.toJsonString(list)));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -91,4 +107,28 @@ public class ReportListener implements Listener<RetryTaskDTO> {
|
|||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendMessage(Throwable e) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
ConfigDTO.Notify notifyAttribute = GroupVersionCache.getNotifyAttribute(NotifySceneEnum.CLIENT_REPORT_ERROR.getNotifyScene());
|
||||||
|
if (Objects.nonNull(notifyAttribute)) {
|
||||||
|
AlarmContext context = AlarmContext.build()
|
||||||
|
.text(reportErrorTextMessageFormatter,
|
||||||
|
EnvironmentUtils.getActiveProfile(),
|
||||||
|
XRetryProperties.getGroup(),
|
||||||
|
LocalDateTime.now().format(formatter),
|
||||||
|
e.getMessage())
|
||||||
|
.title("上报异常:[{}]", XRetryProperties.getGroup())
|
||||||
|
.notifyAttribute(notifyAttribute.getNotifyAttribute());
|
||||||
|
|
||||||
|
AltinAlarmFactory altinAlarmFactory = SpringContext.getBeanByType(AltinAlarmFactory.class);
|
||||||
|
Alarm<AlarmContext> alarmType = altinAlarmFactory.getAlarmType(notifyAttribute.getNotifyType());
|
||||||
|
alarmType.asyncSendMessage(context);
|
||||||
|
}
|
||||||
|
} catch (Exception e1) {
|
||||||
|
LogUtils.error("客户端发送组件异常告警失败", e1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user