This is an automated email from the ASF dual-hosted git repository.
wankai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 5c5274b93a Polish mesh data dispatcher: don't generate
Instance/Endpoint metrics if they are empty. (#12762)
5c5274b93a is described below
commit 5c5274b93a5a12ebab62edea4cca7246366e992a
Author: Wan Kai <[email protected]>
AuthorDate: Tue Nov 12 15:11:00 2024 +0800
Polish mesh data dispatcher: don't generate Instance/Endpoint metrics if
they are empty. (#12762)
---
docs/en/changes/changes.md | 1 +
.../receiver/mesh/TelemetryDataDispatcher.java | 29 ++++++++++++++++------
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 5402732691..0617ec035e 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -18,6 +18,7 @@
* The index type `BanyanDB.IndexRule.IndexType#TREE` is removed. All indices
are using `IndexType#INVERTED` now.
* Add max query size settings to BanyanDB.
* Fix "BanyanDBTraceQueryDAO.queryBasicTraces" doesn't support querying by
"trace_id".
+* Polish mesh data dispatcher: don't generate Instance/Endpoint metrics if
they are empty.
#### UI
diff --git
a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
index 11cdf191ac..e72f28e368 100644
---
a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
+++
b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
@@ -167,15 +167,21 @@ public class TelemetryDataDispatcher {
if
(org.apache.skywalking.apm.network.common.v3.DetectPoint.server.equals(metrics.getDetectPoint()))
{
toTCPService(metrics, minuteTimeBucket);
- toTCPServiceInstance(metrics, minuteTimeBucket);
- toTCPServiceInstanceTraffic(metrics, minuteTimeBucket);
+ // Don't generate instance metrics, if no dest instance.
+ if (StringUtil.isNotEmpty(metrics.getDestServiceInstance())) {
+ toTCPServiceInstance(metrics, minuteTimeBucket);
+ toTCPServiceInstanceTraffic(metrics, minuteTimeBucket);
+ }
}
String sourceService = metrics.getSourceServiceName();
// Don't generate relation, if no source.
if (StringUtil.isNotEmpty(sourceService)) {
toTCPServiceRelation(metrics, minuteTimeBucket);
- toTCPServiceInstanceRelation(metrics, minuteTimeBucket);
+ // Don't generate instance relation, if no source instance.
+ if (StringUtil.isNotEmpty(metrics.getSourceServiceInstance())) {
+ toTCPServiceInstanceRelation(metrics, minuteTimeBucket);
+ }
}
}
@@ -184,16 +190,25 @@ public class TelemetryDataDispatcher {
if
(org.apache.skywalking.apm.network.common.v3.DetectPoint.server.equals(metrics.getDetectPoint()))
{
toService(metrics, minuteTimeBucket);
- toServiceInstance(metrics, minuteTimeBucket);
- toServiceInstanceTraffic(metrics, minuteTimeBucket);
- toEndpoint(metrics, minuteTimeBucket);
+ // Don't generate instance metrics, if no dest instance.
+ if (StringUtil.isNotEmpty(metrics.getDestServiceInstance())) {
+ toServiceInstance(metrics, minuteTimeBucket);
+ toServiceInstanceTraffic(metrics, minuteTimeBucket);
+ }
+ // Don't generate endpoint metrics, if no endpoint.
+ if (StringUtil.isNotEmpty(metrics.getEndpoint())) {
+ toEndpoint(metrics, minuteTimeBucket);
+ }
}
String sourceService = metrics.getSourceServiceName();
// Don't generate relation, if no source.
if (StringUtil.isNotEmpty(sourceService)) {
toServiceRelation(metrics, minuteTimeBucket);
- toServiceInstanceRelation(metrics, minuteTimeBucket);
+ // Don't generate instance relation, if no source instance.
+ if (StringUtil.isNotEmpty(metrics.getSourceServiceInstance())) {
+ toServiceInstanceRelation(metrics, minuteTimeBucket);
+ }
}
}