diff --git a/CHANGES.md b/CHANGES.md index c0b1c79600d57cd445f0c0c917157e5c770b5f34..1fbb79b6d1a4bdf9776b22d1109736cf67439bb2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -44,6 +44,7 @@ Release Notes. * Support endpoint name grouping by OpenAPI definitions. * Fix CounterWindow increase computing issue. * Performance: optimize Envoy ALS analyzer performance in high traffic load scenario (reduce ~1cpu in ~10k RPS). +* Performance: trim useless metadata fields in Envoy ALS metadata to improve performance. #### UI * Fix the date component for log conditions. diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/ServiceMetaInfoAdapter.java b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/ServiceMetaInfoAdapter.java index 49ba821b6dac7c453424fe72677a55796f58d2ce..67da8a369d52ea552c8bb227c3b28130b66e0d8b 100644 --- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/ServiceMetaInfoAdapter.java +++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/ServiceMetaInfoAdapter.java @@ -18,20 +18,17 @@ package org.apache.skywalking.oap.server.receiver.envoy.als.mx; -import com.google.common.base.Joiner; +import Wasm.Common.FlatNode; +import Wasm.Common.KeyVal; import com.google.protobuf.Any; import com.google.protobuf.ByteString; import com.google.protobuf.BytesValue; import com.google.protobuf.Struct; import com.google.protobuf.Value; import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.oap.server.receiver.envoy.als.ServiceMetaInfo; -import Wasm.Common.FlatNode; -import Wasm.Common.KeyVal; import static com.google.common.base.Strings.nullToEmpty; import static java.util.Objects.nonNull; @@ -88,10 +85,6 @@ public class ServiceMetaInfoAdapter extends ServiceMetaInfo { builder.putFields("NAME", Value.newBuilder().setStringValue(nullToEmpty(node.name())).build()); builder.putFields("NAMESPACE", Value.newBuilder().setStringValue(nullToEmpty(node.namespace())).build()); - builder.putFields("OWNER", Value.newBuilder().setStringValue(nullToEmpty(node.owner())).build()); - builder.putFields("WORKLOAD_NAME", Value.newBuilder().setStringValue(nullToEmpty(node.workloadName())).build()); - builder.putFields("ISTIO_VERSION", Value.newBuilder().setStringValue(nullToEmpty(node.istioVersion())).build()); - builder.putFields("MESH_ID", Value.newBuilder().setStringValue(nullToEmpty(node.meshId())).build()); builder.putFields("CLUSTER_ID", Value.newBuilder().setStringValue(nullToEmpty(node.clusterId())).build()); final Struct.Builder labels = Struct.newBuilder(); @@ -101,19 +94,6 @@ public class ServiceMetaInfoAdapter extends ServiceMetaInfo { } builder.putFields("LABELS", Value.newBuilder().setStructValue(labels).build()); - final Struct.Builder platformMetadata = Struct.newBuilder(); - for (int i = 0; i < node.platformMetadataLength(); i++) { - final KeyVal platformMd = node.platformMetadata(i); - platformMetadata.putFields(nullToEmpty(platformMd.key()), Value.newBuilder().setStringValue(nullToEmpty(platformMd.value())).build()); - } - builder.putFields("PLATFORM_METADATA", Value.newBuilder().setStructValue(platformMetadata).build()); - - final List appContainers = new ArrayList<>(); - for (int i = 0; i < node.appContainersLength(); i++) { - appContainers.add(node.appContainers(i)); - } - builder.putFields("APP_CONTAINERS", Value.newBuilder().setStringValue(Joiner.on(",").join(appContainers)).build()); - return builder.build(); }