Skip to content

Commit 5c5274b

Browse files
authored
Polish mesh data dispatcher: don't generate Instance/Endpoint metrics if they are empty. (#12762)
1 parent 9e36eac commit 5c5274b

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

docs/en/changes/changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
* The index type `BanyanDB.IndexRule.IndexType#TREE` is removed. All indices are using `IndexType#INVERTED` now.
1919
* Add max query size settings to BanyanDB.
2020
* Fix "BanyanDBTraceQueryDAO.queryBasicTraces" doesn't support querying by "trace_id".
21+
* Polish mesh data dispatcher: don't generate Instance/Endpoint metrics if they are empty.
2122

2223
#### UI
2324

oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,15 +167,21 @@ private static void dispatchTCPMetrics(TCPServiceMeshMetric.Builder metrics) {
167167

168168
if (org.apache.skywalking.apm.network.common.v3.DetectPoint.server.equals(metrics.getDetectPoint())) {
169169
toTCPService(metrics, minuteTimeBucket);
170-
toTCPServiceInstance(metrics, minuteTimeBucket);
171-
toTCPServiceInstanceTraffic(metrics, minuteTimeBucket);
170+
// Don't generate instance metrics, if no dest instance.
171+
if (StringUtil.isNotEmpty(metrics.getDestServiceInstance())) {
172+
toTCPServiceInstance(metrics, minuteTimeBucket);
173+
toTCPServiceInstanceTraffic(metrics, minuteTimeBucket);
174+
}
172175
}
173176

174177
String sourceService = metrics.getSourceServiceName();
175178
// Don't generate relation, if no source.
176179
if (StringUtil.isNotEmpty(sourceService)) {
177180
toTCPServiceRelation(metrics, minuteTimeBucket);
178-
toTCPServiceInstanceRelation(metrics, minuteTimeBucket);
181+
// Don't generate instance relation, if no source instance.
182+
if (StringUtil.isNotEmpty(metrics.getSourceServiceInstance())) {
183+
toTCPServiceInstanceRelation(metrics, minuteTimeBucket);
184+
}
179185
}
180186
}
181187

@@ -184,16 +190,25 @@ static void dispatchHTTPMetrics(HTTPServiceMeshMetric.Builder metrics) {
184190

185191
if (org.apache.skywalking.apm.network.common.v3.DetectPoint.server.equals(metrics.getDetectPoint())) {
186192
toService(metrics, minuteTimeBucket);
187-
toServiceInstance(metrics, minuteTimeBucket);
188-
toServiceInstanceTraffic(metrics, minuteTimeBucket);
189-
toEndpoint(metrics, minuteTimeBucket);
193+
// Don't generate instance metrics, if no dest instance.
194+
if (StringUtil.isNotEmpty(metrics.getDestServiceInstance())) {
195+
toServiceInstance(metrics, minuteTimeBucket);
196+
toServiceInstanceTraffic(metrics, minuteTimeBucket);
197+
}
198+
// Don't generate endpoint metrics, if no endpoint.
199+
if (StringUtil.isNotEmpty(metrics.getEndpoint())) {
200+
toEndpoint(metrics, minuteTimeBucket);
201+
}
190202
}
191203

192204
String sourceService = metrics.getSourceServiceName();
193205
// Don't generate relation, if no source.
194206
if (StringUtil.isNotEmpty(sourceService)) {
195207
toServiceRelation(metrics, minuteTimeBucket);
196-
toServiceInstanceRelation(metrics, minuteTimeBucket);
208+
// Don't generate instance relation, if no source instance.
209+
if (StringUtil.isNotEmpty(metrics.getSourceServiceInstance())) {
210+
toServiceInstanceRelation(metrics, minuteTimeBucket);
211+
}
197212
}
198213
}
199214

0 commit comments

Comments
 (0)