From b08470b8b6a39e79858d8619e1cdd74fb4c57f39 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Mon, 12 Dec 2016 22:17:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../a/eye/skywalking/alarm/conf/Config.java | 10 ++++---- .../eye/skywalking/alarm/util/MailSender.java | 13 +++++++---- skywalking-sniffer/skywalking-agent/pom.xml | 6 +++++ .../java/com/a/eye/skywalking/model/Span.java | 2 +- .../skywalking-routing/pom.xml | 12 ++++++++++ .../routing}/alarm/SpanAlarmHandler.java | 18 +++++++-------- .../routing}/alarm/checker/CheckResult.java | 2 +- .../alarm/checker/ExceptionChecker.java | 12 +++++----- .../alarm/checker/ExecuteTimeChecker.java | 13 +++++------ .../ExecuteTimePossibleErrorChecker.java | 2 +- .../ExecuteTimePossibleWarningChecker.java | 2 +- .../routing}/alarm/checker/FatalReason.java | 3 ++- .../routing/alarm/checker/ISpanChecker.java | 11 +++++++++ .../alarm/sender/AlarmMessageSender.java | 4 ++-- .../sender/AlarmMessageSenderFactory.java | 2 +- .../alarm/sender/AlarmRedisConnector.java | 4 ++-- .../eye/skywalking/routing/config/Config.java | 20 ++++++++++++++++ .../disruptor/ack/AckSpanDisruptor.java | 3 ++- .../routing/disruptor/ack/AckSpanHolder.java | 7 ++++++ .../routing}/alarm/SpanAlarmHandlerTest.java | 23 ++++++++++--------- .../skywalking-storage/pom.xml | 6 +---- .../storage/alarm/checker/ISpanChecker.java | 10 -------- .../eye/skywalking/storage/config/Config.java | 18 --------------- .../data/spandata/RequestSpanData.java | 4 ++++ .../storage/data/spandata/SpanDataHelper.java | 2 +- .../storage/listener/StorageListener.java | 3 +-- .../eye/skywalking/web/dto/TraceTreeInfo.java | 1 + .../main/webapp/pages/common/traceInfo.ftl | 2 +- 28 files changed, 125 insertions(+), 90 deletions(-) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/SpanAlarmHandler.java (53%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/CheckResult.java (92%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/ExceptionChecker.java (57%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/ExecuteTimeChecker.java (51%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/ExecuteTimePossibleErrorChecker.java (86%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/ExecuteTimePossibleWarningChecker.java (86%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/checker/FatalReason.java (86%) create mode 100644 skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ISpanChecker.java rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/sender/AlarmMessageSender.java (89%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/sender/AlarmMessageSenderFactory.java (82%) rename skywalking-storage-center/{skywalking-storage/src/main/java/com/a/eye/skywalking/storage => skywalking-routing/src/main/java/com/a/eye/skywalking/routing}/alarm/sender/AlarmRedisConnector.java (97%) rename skywalking-storage-center/{skywalking-storage/src/test/java/com/a/eye/skywalking/storage => skywalking-routing/src/test/java/com/a/eye/skywalking/routing}/alarm/SpanAlarmHandlerTest.java (74%) delete mode 100644 skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ISpanChecker.java diff --git a/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java b/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java index b537a775ff..13f7b84fbd 100644 --- a/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java +++ b/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java @@ -53,7 +53,7 @@ public class Config { public static String DRIVER_CLASS = "com.mysql.jdbc.Driver"; - public static String URL = "jdbc:mysql://127.0.0.1:3316/test"; + public static String URL = "jdbc:mysql://127.0.0.1:3307/test"; public static int MAX_IDLE = 1; @@ -86,7 +86,7 @@ public class Config { public static class MailSenderInfo { - public static String MAIL_HOST = "mail.com"; + public static String MAIL_HOST = "mail.qq.com"; public static String TRANSPORT_PROTOCOL = "smtp"; @@ -94,11 +94,11 @@ public class Config { public static boolean SSL_ENABLE = false; - public static String USERNAME = "username"; + public static String USERNAME = "skywalking@foxmail.com"; - public static String PASSWORD = "password"; + public static String PASSWORD = "tcaeuhuslkjlebjg"; - public static String SENDER = "sender@mail.com"; + public static String SENDER = "skywalking@foxmail.com"; } diff --git a/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java b/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java index 8e2d4f0612..f7cddb238a 100644 --- a/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java +++ b/skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java @@ -9,6 +9,8 @@ import javax.mail.*; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; public class MailSender { @@ -24,7 +26,7 @@ public class MailSender { config.setProperty("mail.transport.protocol", Config.MailSenderInfo.TRANSPORT_PROTOCOL); config.setProperty("mail.smtp.auth", String.valueOf(Config.MailSenderInfo.SMTP_AUTH)); - config.setProperty("mail.smtp.socketFactory.port", "465"); + config.setProperty("mail.smtp.socketFactory.port", "587"); config.setProperty("mail.debug", "true"); //config.setProperty("mail.smtp.ssl.enable", "true"); if (Config.MailSenderInfo.SSL_ENABLE) { @@ -56,11 +58,14 @@ public class MailSender { } message.addRecipients(Message.RecipientType.TO, recipientAccountArray); if (ccList != null && ccList.length > 0) { - InternetAddress[] ccAccountArray = new InternetAddress[ccList.length]; + List ccAccountArray = new ArrayList(); for (int i = 0; i < ccList.length; i++) { - ccAccountArray[i] = new InternetAddress(ccList[i]); + if (ccList[i] != null && ccList[i].length() > 0) + ccAccountArray.add(new InternetAddress(ccList[i])); + } + if (ccAccountArray.size() > 0) { + message.addRecipients(Message.RecipientType.CC, ccAccountArray.toArray(new InternetAddress[ccAccountArray.size()])); } - message.addRecipients(Message.RecipientType.CC, ccAccountArray); } message.setSubject(title); message.setContent(content, "text/html;charset=UTF-8"); diff --git a/skywalking-sniffer/skywalking-agent/pom.xml b/skywalking-sniffer/skywalking-agent/pom.xml index a2e8d21e12..e7b35b5174 100644 --- a/skywalking-sniffer/skywalking-agent/pom.xml +++ b/skywalking-sniffer/skywalking-agent/pom.xml @@ -69,6 +69,12 @@ skywalking-toolkit-log4j-2.x-activation ${project.version} + + + com.a.eye + skywalking-toolkit-logback-1.x-activation + ${project.version} + ${artifactId} diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java index 8288f3a69d..13687edb9a 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java @@ -158,7 +158,7 @@ public class Span { public RequestSpan.Builder buildRequestSpan(RequestSpan.Builder builder) { builder.setTraceId(this.traceId).setParentLevel(this.parentLevel).setLevelId(this.levelId).setSpanType(this.spanType).setApplicationCode(Config.SkyWalking.APPLICATION_CODE) - .setUsername(Config.SkyWalking.USERNAME).setRouteKey(routeKey); + .setStartDate(this.startDate).setUsername(Config.SkyWalking.USERNAME).setRouteKey(routeKey); return builder; } diff --git a/skywalking-storage-center/skywalking-routing/pom.xml b/skywalking-storage-center/skywalking-routing/pom.xml index 197c63ed21..df43386f24 100644 --- a/skywalking-storage-center/skywalking-routing/pom.xml +++ b/skywalking-storage-center/skywalking-routing/pom.xml @@ -30,5 +30,17 @@ 3.2.0 test + + + redis.clients + jedis + 2.8.0 + + + + com.a.eye + skywalking-util + 2.0-2016 + diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandler.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandler.java similarity index 53% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandler.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandler.java index f0f7b3cf31..46b0809f41 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandler.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandler.java @@ -1,8 +1,8 @@ -package com.a.eye.skywalking.storage.alarm; +package com.a.eye.skywalking.routing.alarm; -import com.a.eye.skywalking.storage.alarm.checker.*; -import com.a.eye.skywalking.storage.alarm.sender.AlarmMessageSenderFactory; -import com.a.eye.skywalking.storage.data.spandata.AckSpanData; +import com.a.eye.skywalking.routing.alarm.checker.*; +import com.a.eye.skywalking.routing.alarm.sender.AlarmMessageSenderFactory; +import com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder; import com.a.eye.skywalking.util.TraceIdUtil; import com.lmax.disruptor.EventHandler; @@ -12,7 +12,7 @@ import java.util.List; /** * Created by xin on 2016/12/8. */ -public class SpanAlarmHandler implements EventHandler { +public class SpanAlarmHandler implements EventHandler { private List spanCheckers = new ArrayList(); public SpanAlarmHandler() { @@ -21,16 +21,16 @@ public class SpanAlarmHandler implements EventHandler { spanCheckers.add(new ExecuteTimePossibleErrorChecker()); } - private String generateAlarmMessageKey(AckSpanData span, FatalReason reason) { - return span.getUserName() + "-" + span.getApplicationCode() + "-" + (System.currentTimeMillis() / (10000 * 6)) + reason.getDetail(); + private String generateAlarmMessageKey(AckSpanHolder span, FatalReason reason) { + return span.getAckSpan().getUsername() + "-" + span.getAckSpan().getApplicationCode() + "-" + (System.currentTimeMillis() / (10000 * 6)) + reason.getDetail(); } @Override - public void onEvent(AckSpanData spanData, long sequence, boolean endOfBatch) throws Exception { + public void onEvent(AckSpanHolder spanData, long sequence, boolean endOfBatch) throws Exception { for (ISpanChecker spanChecker : spanCheckers) { CheckResult result = spanChecker.check(spanData); if (!result.isPassed()) { - AlarmMessageSenderFactory.getSender().send(generateAlarmMessageKey(spanData, result.getFatalReason()), TraceIdUtil.formatTraceId(spanData.getTraceId()), result.getMessage()); + AlarmMessageSenderFactory.getSender().send(generateAlarmMessageKey(spanData, result.getFatalReason()), TraceIdUtil.formatTraceId(spanData.getAckSpan().getTraceId()), result.getMessage()); } } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/CheckResult.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/CheckResult.java similarity index 92% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/CheckResult.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/CheckResult.java index cf1329f27c..3ba188495f 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/CheckResult.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/CheckResult.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; /** * Created by xin on 2016/12/8. diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExceptionChecker.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExceptionChecker.java similarity index 57% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExceptionChecker.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExceptionChecker.java index 566473026c..d027a7f663 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExceptionChecker.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExceptionChecker.java @@ -1,15 +1,15 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; -import com.a.eye.skywalking.storage.config.Config; -import com.a.eye.skywalking.storage.data.spandata.AckSpanData; +import com.a.eye.skywalking.routing.config.Config; +import com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder; public class ExceptionChecker implements ISpanChecker { @Override - public CheckResult check(AckSpanData span) { - if (span.getStatusCode() != 1) + public CheckResult check(AckSpanHolder span) { + if (span.getAckSpan().getStatusCode() != 1) return new CheckResult(); - String exceptionStack = span.getExceptionStack(); + String exceptionStack = span.getAckSpan().getExceptionStack(); if (exceptionStack == null) { exceptionStack = ""; } else if (exceptionStack.length() > Config.Alarm.ALARM_EXCEPTION_STACK_LENGTH) { diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimeChecker.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimeChecker.java similarity index 51% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimeChecker.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimeChecker.java index 1f11d57552..a6370314fa 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimeChecker.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimeChecker.java @@ -1,7 +1,6 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; -import com.a.eye.skywalking.network.grpc.AckSpan; -import com.a.eye.skywalking.storage.data.spandata.AckSpanData; +import com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder; /** * Created by xin on 2016/12/8. @@ -9,8 +8,8 @@ import com.a.eye.skywalking.storage.data.spandata.AckSpanData; public abstract class ExecuteTimeChecker implements ISpanChecker { @Override - public CheckResult check(AckSpanData span) { - long cost = span.getCost(); + public CheckResult check(AckSpanHolder span) { + long cost = span.getAckSpan().getCost(); if (isOverThreshold(cost)) { return new CheckResult(getFatalLevel(), generateAlarmMessage(span)); } @@ -22,8 +21,8 @@ public abstract class ExecuteTimeChecker implements ISpanChecker { protected abstract FatalReason getFatalLevel(); - protected String generateAlarmMessage(AckSpanData span) { - return span.getViewPointId() + " cost " + span.getCost() + " ms."; + protected String generateAlarmMessage(AckSpanHolder span) { + return span.getAckSpan().getViewpointId() + " cost " + span.getAckSpan().getCost() + " ms."; } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleErrorChecker.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleErrorChecker.java similarity index 86% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleErrorChecker.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleErrorChecker.java index ba7c6510ef..4493b8b390 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleErrorChecker.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleErrorChecker.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; /** * Created by xin on 2016/12/8. diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleWarningChecker.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleWarningChecker.java similarity index 86% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleWarningChecker.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleWarningChecker.java index 336c065351..d581980e8c 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ExecuteTimePossibleWarningChecker.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleWarningChecker.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; /** * Created by xin on 2016/12/8. diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/FatalReason.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/FatalReason.java similarity index 86% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/FatalReason.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/FatalReason.java index a75f8a0997..b319f9163c 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/FatalReason.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/FatalReason.java @@ -1,9 +1,10 @@ -package com.a.eye.skywalking.storage.alarm.checker; +package com.a.eye.skywalking.routing.alarm.checker; /** * Created by xin on 2016/12/8. */ public enum FatalReason { + EXCEPTION_ERROR(""), EXECUTE_TIME_ERROR("-ExecuteTime-PossibleError"), EXECUTE_TIME_WARNING("-ExecuteTime-Warning"); private String detail; diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ISpanChecker.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ISpanChecker.java new file mode 100644 index 0000000000..dd1397fa54 --- /dev/null +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ISpanChecker.java @@ -0,0 +1,11 @@ +package com.a.eye.skywalking.routing.alarm.checker; + + +import com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder; + +/** + * Created by xin on 2016/12/8. + */ +public interface ISpanChecker { + CheckResult check(AckSpanHolder span); +} diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSender.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSender.java similarity index 89% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSender.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSender.java index 20b734fb6f..bd96d03bbe 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSender.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSender.java @@ -1,8 +1,8 @@ -package com.a.eye.skywalking.storage.alarm.sender; +package com.a.eye.skywalking.routing.alarm.sender; import com.a.eye.skywalking.logging.api.ILog; import com.a.eye.skywalking.logging.api.LogManager; -import com.a.eye.skywalking.storage.config.Config; +import com.a.eye.skywalking.routing.config.Config; import redis.clients.jedis.Jedis; /** diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSenderFactory.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSenderFactory.java similarity index 82% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSenderFactory.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSenderFactory.java index ce447c3975..1ef297e4bf 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmMessageSenderFactory.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSenderFactory.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.alarm.sender; +package com.a.eye.skywalking.routing.alarm.sender; /** * Created by xin on 2016/12/8. diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmRedisConnector.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmRedisConnector.java similarity index 97% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmRedisConnector.java rename to skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmRedisConnector.java index 43e3228ad3..4c9cff6e36 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/sender/AlarmRedisConnector.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmRedisConnector.java @@ -1,8 +1,8 @@ -package com.a.eye.skywalking.storage.alarm.sender; +package com.a.eye.skywalking.routing.alarm.sender; import com.a.eye.skywalking.logging.api.ILog; import com.a.eye.skywalking.logging.api.LogManager; -import com.a.eye.skywalking.storage.config.Config; +import com.a.eye.skywalking.routing.config.Config; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java index f9f902ae68..b83cb2cd5f 100644 --- a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java @@ -35,4 +35,24 @@ public class Config { public static int FLUSH_SIZE = 100; } + + + public static class Alarm { + + public static String REDIS_SERVER = "127.0.0.1:6379"; + + public static boolean ALARM_OFF_FLAG = false; + + public static int ALARM_EXCEPTION_STACK_LENGTH = 300; + + public static long ALARM_REDIS_INSPECTOR_INTERVAL = 100; + + public static int REDIS_MAX_IDLE = 10; + + public static int REDIS_MIN_IDLE = 1; + + public static int REDIS_MAX_TOTAL = 30; + + public static int ALARM_EXPIRE_SECONDS = 1000 * 60 * 90; + } } diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java index efa05f08df..ac70cb0e84 100644 --- a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java @@ -5,6 +5,7 @@ import com.a.eye.skywalking.health.report.HeathReading; import com.a.eye.skywalking.logging.api.ILog; import com.a.eye.skywalking.logging.api.LogManager; import com.a.eye.skywalking.network.grpc.AckSpan; +import com.a.eye.skywalking.routing.alarm.SpanAlarmHandler; import com.a.eye.skywalking.routing.config.Config; import com.a.eye.skywalking.routing.disruptor.AbstractSpanDisruptor; import com.lmax.disruptor.InsufficientCapacityException; @@ -25,7 +26,7 @@ public class AckSpanDisruptor extends AbstractSpanDisruptor { public AckSpanDisruptor(String connectionURL) { ackSpanDisruptor = new Disruptor(new AckSpanFactory(), Config.Disruptor.BUFFER_SIZE, DaemonThreadFactory.INSTANCE); ackSpanEventHandler = new RouteAckSpanBufferEventHandler(connectionURL); - ackSpanDisruptor.handleEventsWith(ackSpanEventHandler); + ackSpanDisruptor.handleEventsWith(ackSpanEventHandler, new SpanAlarmHandler()); ackSpanDisruptor.start(); ackSpanRingBuffer = ackSpanDisruptor.getRingBuffer(); } diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java index 818f318637..dd323c07c1 100644 --- a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java @@ -8,6 +8,13 @@ import com.a.eye.skywalking.network.grpc.AckSpan; public class AckSpanHolder { private AckSpan ackSpan; + public AckSpanHolder() { + } + + public AckSpanHolder(AckSpan ackSpan) { + this.ackSpan = ackSpan; + } + public void setAckSpan(AckSpan ackSpan) { this.ackSpan = ackSpan; } diff --git a/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandlerTest.java b/skywalking-storage-center/skywalking-routing/src/test/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandlerTest.java similarity index 74% rename from skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandlerTest.java rename to skywalking-storage-center/skywalking-routing/src/test/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandlerTest.java index 328029ca42..013a60b743 100644 --- a/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/alarm/SpanAlarmHandlerTest.java +++ b/skywalking-storage-center/skywalking-routing/src/test/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandlerTest.java @@ -2,9 +2,10 @@ package com.a.eye.skywalking.storage.alarm; import com.a.eye.skywalking.network.grpc.AckSpan; import com.a.eye.skywalking.network.grpc.TraceId; -import com.a.eye.skywalking.storage.alarm.sender.AlarmMessageSender; -import com.a.eye.skywalking.storage.alarm.sender.AlarmMessageSenderFactory; -import com.a.eye.skywalking.storage.data.spandata.AckSpanData; +import com.a.eye.skywalking.routing.alarm.SpanAlarmHandler; +import com.a.eye.skywalking.routing.alarm.sender.AlarmMessageSender; +import com.a.eye.skywalking.routing.alarm.sender.AlarmMessageSenderFactory; +import com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -25,10 +26,10 @@ public class SpanAlarmHandlerTest { private AlarmMessageSender messageHandler; @InjectMocks private SpanAlarmHandler handler; - private AckSpanData normalAckSpan; - private AckSpanData costMuchSpan; - private AckSpanData costTooMuchSpan; - private AckSpanData exceptionSpan; + private AckSpanHolder normalAckSpan; + private AckSpanHolder costMuchSpan; + private AckSpanHolder costTooMuchSpan; + private AckSpanHolder exceptionSpan; @Before public void setUp() { @@ -40,10 +41,10 @@ public class SpanAlarmHandlerTest { .addSegments(2016).addSegments(startTime).addSegments(2).addSegments(100).addSegments(30) .addSegments(1).build()); - normalAckSpan = new AckSpanData(builder.build()); - costMuchSpan = new AckSpanData(builder.setCost(600).build()); - costTooMuchSpan = new AckSpanData(builder.setCost(4000).build()); - exceptionSpan = new AckSpanData(builder.setCost(20).setStatusCode(1).setExceptionStack("occur exception").build()); + normalAckSpan = new AckSpanHolder(builder.build()); + costMuchSpan = new AckSpanHolder(builder.setCost(600).build()); + costTooMuchSpan = new AckSpanHolder(builder.setCost(4000).build()); + exceptionSpan = new AckSpanHolder(builder.setCost(20).setStatusCode(1).setExceptionStack("occur exception").build()); } @Test diff --git a/skywalking-storage-center/skywalking-storage/pom.xml b/skywalking-storage-center/skywalking-storage/pom.xml index c1d045393d..9e1fee93df 100644 --- a/skywalking-storage-center/skywalking-storage/pom.xml +++ b/skywalking-storage-center/skywalking-storage/pom.xml @@ -31,11 +31,7 @@ 1.17 test - - redis.clients - jedis - 2.8.0 - + com.a.eye skywalking-util diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ISpanChecker.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ISpanChecker.java deleted file mode 100644 index 4eca2b55bd..0000000000 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/alarm/checker/ISpanChecker.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.a.eye.skywalking.storage.alarm.checker; - -import com.a.eye.skywalking.storage.data.spandata.AckSpanData; - -/** - * Created by xin on 2016/12/8. - */ -public interface ISpanChecker { - CheckResult check(AckSpanData span); -} diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java index a759a103d4..93e09ce3f1 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java @@ -43,22 +43,4 @@ public class Config { public static String PATH_PREFIX = "/skywalking/storage_list/"; } - public static class Alarm { - - public static String REDIS_SERVER = "127.0.0.1:6379"; - - public static boolean ALARM_OFF_FLAG = false; - - public static int ALARM_EXCEPTION_STACK_LENGTH = 300; - - public static long ALARM_REDIS_INSPECTOR_INTERVAL = 100; - - public static int REDIS_MAX_IDLE = 10; - - public static int REDIS_MIN_IDLE = 1; - - public static int REDIS_MAX_TOTAL = 30; - - public static int ALARM_EXPIRE_SECONDS = 1000 * 60 * 90; - } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java index 5e91e8aa64..85266e7883 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java @@ -86,4 +86,8 @@ public class RequestSpanData extends AbstractSpanData { public String getViewPoint(){ return requestSpan.getViewPointId(); } + + public String getSpanTypeDesc() { + return requestSpan.getSpanTypeDesc(); + } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java index 0756e37cd0..7792f881f4 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java @@ -51,7 +51,7 @@ public class SpanDataHelper { } builder = builder.setLevelId(requestSpanData.getLevelId()).setParentLevelId(requestSpanData.getParentLevelId()).setProcessNo(requestSpanData.getProcessNo()) - .setSpanType(requestSpanData.getType()).setStartTime(requestSpanData.getStartTime()) + .setSpanType(requestSpanData.getType()).setSpanTypeDesc(requestSpanData.getSpanTypeDesc()).setStartTime(requestSpanData.getStartTime()) .setStatusCode(ackSpanData.getStatusCode()) .setViewpoint(requestSpanData.getViewPoint()) .setTraceId(TraceId.newBuilder().addAllSegments(Arrays.asList(requestSpanData.getTraceIdSegments()))); diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java index a5f8c1551e..6fcd81817e 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java @@ -7,7 +7,6 @@ import com.a.eye.skywalking.logging.api.LogManager; import com.a.eye.skywalking.network.grpc.AckSpan; import com.a.eye.skywalking.network.grpc.RequestSpan; import com.a.eye.skywalking.network.listener.server.SpanStorageServerListener; -import com.a.eye.skywalking.storage.alarm.SpanAlarmHandler; import com.a.eye.skywalking.storage.config.Config; import com.a.eye.skywalking.storage.data.spandata.AckSpanData; import com.a.eye.skywalking.storage.data.spandata.RequestSpanData; @@ -36,7 +35,7 @@ public class StorageListener implements SpanStorageServerListener { requestSpanRingBuffer = requestSpanDisruptor.getRingBuffer(); ackSpanDisruptor = new Disruptor(new AckSpanFactory(), Config.Disruptor.BUFFER_SIZE, DaemonThreadFactory.INSTANCE); - ackSpanDisruptor.handleEventsWith(new StoreAckSpanEventHandler(), new SpanAlarmHandler()); + ackSpanDisruptor.handleEventsWith(new StoreAckSpanEventHandler()); ackSpanDisruptor.start(); ackSpanRingBuffer = ackSpanDisruptor.getRingBuffer(); } diff --git a/skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java b/skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java index cfd8746d10..7f649ac6cc 100644 --- a/skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java +++ b/skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java @@ -55,6 +55,7 @@ public class TraceTreeInfo { public void setHasBeenSpiltNodes(List nodes) { this.nodes = nodes; + this.nodeSize = nodes.size(); } public void setRealNodeSize(int nodeSize) { diff --git a/skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl b/skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl index ea38d8f7ba..613c5b241e 100644 --- a/skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl +++ b/skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl @@ -122,7 +122,7 @@
  • 花费时间:{{>cost}}毫秒
  • 业务字段:{{>businessKey}}
  • 应用Code:{{>applicationCode}}
  • -
  • 主机信息:{{>address}}}
  • +
  • 主机信息:{{>address}}
  • 调用进程号:{{>processNo}}
  • 异常堆栈: {{if exceptionStack}} -- GitLab