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 5ccaa885b..9f9c82eb3 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 @@ -96,6 +96,7 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI if (serviceInstanceId != Const.NONE) { List list = message.getEnvoyMetricsList(); + boolean needHeartbeatUpdate = true; for (int i = 0; i < list.size(); i++) { counter.inc(); HistogramMetric.Timer timer = histogram.createTimer(); @@ -123,10 +124,11 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI default: continue; } - if (i == 0) { + if (needHeartbeatUpdate) { // Send heartbeat serviceInventoryRegister.heartbeat(serviceId, timestamp); serviceInstanceInventoryRegister.heartbeat(serviceInstanceId, timestamp); + needHeartbeatUpdate = false; } } finally { timer.finish();