From b35eaace792146ea0379da47273177e66a8b897a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=8B=87=E5=8D=87=20pengys?= <8082209@qq.com> Date: Mon, 25 Jun 2018 22:32:12 +0800 Subject: [PATCH] [Collector] Tolerate and ignore unsupport segments (#1385) * #1207 Return true when segment parse throw exception to avoid parse the segment over and over again which read from buffer file. * no message --- .../provider/AnalysisMetricModuleProvider.java | 16 ++++++++-------- .../parser/provider/parser/SegmentParse.java | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java index 4258a2873..35db2d9e3 100644 --- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java +++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java @@ -100,14 +100,14 @@ public class AnalysisMetricModuleProvider extends ModuleProvider { private void segmentParserListenerRegister() { ISegmentParserListenerRegister segmentParserListenerRegister = getManager().find(AnalysisSegmentParserModule.NAME).getService(ISegmentParserListenerRegister.class); - segmentParserListenerRegister.register(new ServiceReferenceMetricSpanListener.Factory()); //11000TPS - segmentParserListenerRegister.register(new ApplicationComponentSpanListener.Factory()); //17000TPS - segmentParserListenerRegister.register(new ApplicationMappingSpanListener.Factory()); //22000TPS - segmentParserListenerRegister.register(new InstanceMappingSpanListener.Factory()); //22000TPS - segmentParserListenerRegister.register(new GlobalTraceSpanListener.Factory()); //15000TPS - segmentParserListenerRegister.register(new SegmentDurationSpanListener.Factory()); //13000TPS - segmentParserListenerRegister.register(new ResponseTimeDistributionSpanListener.Factory()); //25000TPS - segmentParserListenerRegister.register(new ServiceNameSpanListener.Factory()); //20000TPS + segmentParserListenerRegister.register(new ServiceReferenceMetricSpanListener.Factory()); + segmentParserListenerRegister.register(new ApplicationComponentSpanListener.Factory()); + segmentParserListenerRegister.register(new ApplicationMappingSpanListener.Factory()); + segmentParserListenerRegister.register(new InstanceMappingSpanListener.Factory()); + segmentParserListenerRegister.register(new GlobalTraceSpanListener.Factory()); + segmentParserListenerRegister.register(new SegmentDurationSpanListener.Factory()); + segmentParserListenerRegister.register(new ResponseTimeDistributionSpanListener.Factory()); + segmentParserListenerRegister.register(new ServiceNameSpanListener.Factory()); } private void graphCreate(WorkerCreateListener workerCreateListener) { diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java index 335cbab8f..2c6ef5812 100644 --- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java @@ -82,10 +82,10 @@ public class SegmentParse { buildSegment(segmentCoreInfo.getSegmentId(), segmentDecorator.toByteArray()); return true; } - } catch (InvalidProtocolBufferException e) { + } catch (Throwable e) { logger.error(e.getMessage(), e); + return true; } - return false; } @GraphComputingMetric(name = "/segment/parse/parseBinarySegment")