@@ -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