From 8c51043dbfc12b283a523d3dcd9e03023dfdd1a6 Mon Sep 17 00:00:00 2001 From: Zhenxu Ke Date: Wed, 27 Jan 2021 12:58:11 +0800 Subject: [PATCH] Remove duplicate codes in Envoy ALS handler (#6263) --- CHANGES.md | 1 + .../envoy/MetricServiceGRPCHandler.java | 22 ------------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c8500ec24..d3f256d35 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -76,6 +76,7 @@ Release Notes. * Add node information from the Openensus proto to the labels of the samples, to support the identification of the source of the Metric data. * Fix bug that the same sample name in one MAL expression caused `IllegalArgumentException` in `Analyzer.analyse`. * Add the text analyzer for querying log in the es storage. +* Chore: Remove duplicate codes in Envoy ALS handler #### UI * Fix un-removed tags in trace query. diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java index 2538a34f0..38e437005 100644 --- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java +++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java @@ -31,12 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.apm.util.StringUtil; import org.apache.skywalking.oap.meter.analyzer.prometheus.PrometheusMetricConverter; import org.apache.skywalking.oap.server.core.CoreModule; -import org.apache.skywalking.oap.server.core.analysis.IDManager; -import org.apache.skywalking.oap.server.core.analysis.TimeBucket; import org.apache.skywalking.oap.server.core.analysis.meter.MeterSystem; -import org.apache.skywalking.oap.server.core.analysis.NodeType; -import org.apache.skywalking.oap.server.core.source.ServiceInstanceUpdate; -import org.apache.skywalking.oap.server.core.source.SourceReceiver; import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.library.module.ModuleStartException; import org.apache.skywalking.oap.server.library.util.prometheus.metrics.Metric; @@ -51,13 +46,11 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsTag; @Slf4j public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceImplBase { - private final SourceReceiver sourceReceiver; private final CounterMetrics counter; private final HistogramMetrics histogram; private final List converters; public MetricServiceGRPCHandler(final ModuleManager moduleManager, final EnvoyMetricReceiverConfig config) throws ModuleStartException { - sourceReceiver = moduleManager.find(CoreModule.NAME).provider().getService(SourceReceiver.class); MetricsCreator metricsCreator = moduleManager.find(TelemetryModule.NAME) .provider() .getService(MetricsCreator.class); @@ -102,13 +95,10 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI if (service != null && StringUtil.isNotEmpty(service.getServiceName()) && StringUtil.isNotEmpty(service.getServiceInstanceName())) { List list = message.getEnvoyMetricsList(); - boolean needHeartbeatUpdate = true; for (final Metrics.MetricFamily metricFamily : list) { counter.inc(); - final String serviceId = IDManager.ServiceID.buildId(service.getServiceName(), NodeType.Normal); - try (final HistogramMetrics.Timer ignored = histogram.createTimer()) { final ProtoMetricFamily2MetricsAdapter adapter = new ProtoMetricFamily2MetricsAdapter(metricFamily); final Stream metrics = adapter.adapt().peek(it -> { @@ -116,18 +106,6 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI it.getLabels().putIfAbsent("instance", service.getServiceInstanceName()); }); converters.forEach(converter -> converter.toMeter(metrics)); - - if (needHeartbeatUpdate && list.get(0).getMetricCount() > 0) { - final long timestamp = adapter.adaptTimestamp(list.get(0).getMetric(0)); - - // Send heartbeat - ServiceInstanceUpdate serviceInstanceUpdate = new ServiceInstanceUpdate(); - serviceInstanceUpdate.setName(service.getServiceInstanceName()); - serviceInstanceUpdate.setServiceId(serviceId); - serviceInstanceUpdate.setTimeBucket(TimeBucket.getMinuteTimeBucket(timestamp)); - sourceReceiver.receive(serviceInstanceUpdate); - needHeartbeatUpdate = false; - } } } }