diff --git a/apm-protocol/apm-network/src/main/proto b/apm-protocol/apm-network/src/main/proto index 050b6eb2941e..cf9cc443c5e9 160000 --- a/apm-protocol/apm-network/src/main/proto +++ b/apm-protocol/apm-network/src/main/proto @@ -1 +1 @@ -Subproject commit 050b6eb2941e197e9aed118263f2fa23d44265f8 +Subproject commit cf9cc443c5e9a61078b24ba01ecc41f42526115f diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index ac63498df528..187d736e8779 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -17,9 +17,10 @@ * Add support for OpenSearch/ElasticSearch client certificate authentication. * Fix BanyanDB logs paging query. * Replace BanyanDB Java client with native implementation. -* Remove `bydb.dependencies.properties` and set the compatible BanyanDB API version number in `${SW_STORAGE_BANYANDB_COMPATIBLE_SERVER_API_VERSIONS}` +* Remove `bydb.dependencies.properties` and set the compatible BanyanDB API version number in `${SW_STORAGE_BANYANDB_COMPATIBLE_SERVER_API_VERSIONS}`. * Fix trace profiling query time range condition. * Fix BanyanDB time range overflow in profile thread snapshot query. +* `BrowserErrorLog`, OAP Server generated UUID to replace the original client side ID, because Browser scripts can't guarantee generated IDs are globally unique. * MQE: fix multiple labeled metric query and ensure no results are returned if no label value combinations match. #### UI diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/BrowserErrorLogDecorator.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/BrowserErrorLogDecorator.java index 56785fd46328..0cf34a8ce144 100644 --- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/BrowserErrorLogDecorator.java +++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/BrowserErrorLogDecorator.java @@ -17,18 +17,28 @@ package org.apache.skywalking.oap.server.receiver.browser.provider.parser.errorlog; +import java.util.UUID; import lombok.RequiredArgsConstructor; import org.apache.skywalking.apm.network.language.agent.v3.BrowserErrorLog; import org.apache.skywalking.apm.network.language.agent.v3.ErrorCategory; +import org.apache.skywalking.oap.server.library.util.StringUtil; @RequiredArgsConstructor public class BrowserErrorLogDecorator { private boolean isOrigin = true; private final BrowserErrorLog errorLog; private BrowserErrorLog.Builder builder; + private String id; + /** + * Browser scripts can't guarantee generated IDs are globally unique + * OAP Server generated UUID to replace the original client side ID. + */ public String getUniqueId() { - return isOrigin ? errorLog.getUniqueId() : builder.getUniqueId(); + if (StringUtil.isBlank(id)) { + id = UUID.randomUUID().toString(); + } + return id; } public String getService() { diff --git a/test/e2e-v2/cases/browser/docker-compose.yml b/test/e2e-v2/cases/browser/docker-compose.yml index 29946365b237..b9bbecf655c6 100644 --- a/test/e2e-v2/cases/browser/docker-compose.yml +++ b/test/e2e-v2/cases/browser/docker-compose.yml @@ -46,6 +46,7 @@ services: environment: SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800 SW_AGENT_LOGGING_LEVEL: DEBUG + SW_AGENT_NAME: provider-py volumes: - ./docker/provider.py:/entrypoint.py depends_on: diff --git a/test/e2e-v2/cases/browser/es/docker-compose.yml b/test/e2e-v2/cases/browser/es/docker-compose.yml index c231a833ee03..f52b49b809b0 100644 --- a/test/e2e-v2/cases/browser/es/docker-compose.yml +++ b/test/e2e-v2/cases/browser/es/docker-compose.yml @@ -58,6 +58,7 @@ services: environment: SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800 SW_AGENT_LOGGING_LEVEL: DEBUG + SW_AGENT_NAME: provider-py volumes: - ./../docker/provider.py:/entrypoint.py depends_on: diff --git a/test/e2e-v2/cases/browser/es/es-sharding/docker-compose.yml b/test/e2e-v2/cases/browser/es/es-sharding/docker-compose.yml index 14633b1562ce..59c9830f0eb6 100644 --- a/test/e2e-v2/cases/browser/es/es-sharding/docker-compose.yml +++ b/test/e2e-v2/cases/browser/es/es-sharding/docker-compose.yml @@ -59,6 +59,7 @@ services: environment: SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800 SW_AGENT_LOGGING_LEVEL: DEBUG + SW_AGENT_NAME: provider-py volumes: - ./../../docker/provider.py:/entrypoint.py depends_on: diff --git a/test/e2e-v2/cases/browser/expected/trace-detail.yml b/test/e2e-v2/cases/browser/expected/trace-detail.yml index 2350d844a463..29cfca2957c2 100644 --- a/test/e2e-v2/cases/browser/expected/trace-detail.yml +++ b/test/e2e-v2/cases/browser/expected/trace-detail.yml @@ -64,7 +64,7 @@ spans: value: POST - key: http.url value: http://provider:9091/info - - key: http.status.code + - key: http.status_code value: "200" logs: [] attachedevents: [] diff --git a/test/e2e-v2/cases/browser/expected/trace-v2-detail.yml b/test/e2e-v2/cases/browser/expected/trace-v2-detail.yml index f3c263b25ef0..ce5918d30e84 100644 --- a/test/e2e-v2/cases/browser/expected/trace-v2-detail.yml +++ b/test/e2e-v2/cases/browser/expected/trace-v2-detail.yml @@ -71,7 +71,7 @@ traces: value: POST - key: http.url value: http://provider:9091/info - - key: http.status.code + - key: http.status_code value: "200" logs: [] attachedevents: [] diff --git a/test/e2e-v2/cases/python/Dockerfile.python b/test/e2e-v2/cases/python/Dockerfile.python index 1b31a1df62b1..06de6f78f6ed 100644 --- a/test/e2e-v2/cases/python/Dockerfile.python +++ b/test/e2e-v2/cases/python/Dockerfile.python @@ -22,7 +22,13 @@ RUN git clone https://github.com/apache/skywalking-python.git $(pwd) RUN git reset --hard ${SW_AGENT_PYTHON_COMMIT} && git submodule update --init -RUN make setup install +RUN <