You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/06/22 01:11:02 UTC
[skywalking] branch master updated: Reduce the length of metric
name (#4936)
This is an automated email from the ASF dual-hosted git repository.
wusheng 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 e143ae6 Reduce the length of metric name (#4936)
e143ae6 is described below
commit e143ae62eb8a2300b124f345b235bb1e3eb3c139
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Mon Jun 22 09:10:51 2020 +0800
Reduce the length of metric name (#4936)
---
.../main/resources/fetcher-prom-rules/self.yaml | 10 ++--
.../main/resources/ui-initialized-templates.yml | 6 +--
.../apache/skywalking/e2e/SimpleQueryClient.java | 58 ++++++++++++++++++++
.../skywalking/e2e/metrics/MetricsQuery.java | 21 ++++++++
.../e2e/metrics/ReadLabeledMetricsData.java | 28 ++++++++++
.../apache/skywalking/e2e/metrics/ReadMetrics.java | 27 ++++++++++
.../skywalking/e2e/metrics/ReadMetricsData.java | 26 +++++++++
.../skywalking/e2e/metrics/ReadMetricsQuery.java | 43 +++++++++++++++
.../skywalking/e2e/service/ServicesMatcher.java | 4 ++
.../src/main/resources/read-labeled-metrics.gql} | 55 +++++++++----------
.../src/main/resources/read-metrics.gql} | 49 +++++++----------
.../e2e-test/docker/simple/auth/docker-compose.yml | 2 +
.../e2e-test/docker/simple/jdk/docker-compose.yml | 3 ++
.../e2e-test/docker/simple/ssl/docker-compose.yml | 2 +
.../e2e-test/docker/storage/docker-compose.es6.yml | 2 +
.../e2e-test/docker/storage/docker-compose.es7.yml | 2 +
.../docker/storage/docker-compose.influxdb.yml | 2 +
.../docker/storage/docker-compose.mysql.yml | 2 +
.../apache/skywalking/e2e/simple/SimpleE2E.java | 63 +++++++++++++++++++++-
.../apache/skywalking/e2e/storage/StorageE2E.java | 61 ++++++++++++++++++++-
.../resources/expected/simple/so11y-instances.yml} | 29 ++--------
.../resources/expected/simple/so11y-services.yml} | 27 +---------
22 files changed, 400 insertions(+), 122 deletions(-)
diff --git a/oap-server/server-bootstrap/src/main/resources/fetcher-prom-rules/self.yaml b/oap-server/server-bootstrap/src/main/resources/fetcher-prom-rules/self.yaml
index 2a703c0..f0f0368 100644
--- a/oap-server/server-bootstrap/src/main/resources/fetcher-prom-rules/self.yaml
+++ b/oap-server/server-bootstrap/src/main/resources/fetcher-prom-rules/self.yaml
@@ -241,7 +241,7 @@ metricsRules:
- service
instance:
- instance
- - name: instance_persistence_timer_execute_latency_percentile
+ - name: instance_persistence_execute_percentile
scope: SERVICE_INSTANCE
operation: avgHistogramPercentile
percentiles: [50, 70, 90, 99]
@@ -254,7 +254,7 @@ metricsRules:
- service
instance:
- instance
- - name: instance_persistence_timer_prepare_latency_percentile
+ - name: instance_persistence_prepare_percentile
scope: SERVICE_INSTANCE
operation: avgHistogramPercentile
percentiles: [50, 70, 90, 99]
@@ -267,7 +267,7 @@ metricsRules:
- service
instance:
- instance
- - name: instance_persistence_timer_bulk_error_count
+ - name: instance_persistence_error_count
scope: SERVICE_INSTANCE
operation: avg
sources:
@@ -279,7 +279,7 @@ metricsRules:
- service
instance:
- instance
- - name: instance_persistence_timer_execute_count
+ - name: instance_persistence_execute_count
scope: SERVICE_INSTANCE
operation: avg
sources:
@@ -291,7 +291,7 @@ metricsRules:
- service
instance:
- instance
- - name: instance_persistence_timer_prepare_count
+ - name: instance_persistence_prepare_count
scope: SERVICE_INSTANCE
operation: avg
sources:
diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates.yml
index 20dd897..0a2dcfd 100644
--- a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates.yml
+++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates.yml
@@ -1025,7 +1025,7 @@ templates:
"entityType": "ServiceInstance",
"independentSelector": false,
"metricType": "REGULAR_VALUE",
- "metricName": "meter_instance_persistence_timer_prepare_count,meter_instance_persistence_timer_execute_count,meter_instance_persistence_timer_bulk_error_count",
+ "metricName": "meter_instance_persistence_prepare_count,meter_instance_persistence_execute_count,meter_instance_persistence_error_count",
"queryMetricType": "readMetricsValues",
"chartType": "ChartBar",
"unit": "Per 5 Minutes"
@@ -1040,7 +1040,7 @@ templates:
"unit": "Millisecond",
"queryMetricType": "readLabeledMetricsValues",
"chartType": "ChartLine",
- "metricName": "meter_instance_persistence_timer_prepare_latency_percentile",
+ "metricName": "meter_instance_persistence_prepare_percentile",
"metricLabels": "50,70,90,99",
"labelsIndex": "50,70,90,99"
},
@@ -1051,7 +1051,7 @@ templates:
"entityType": "ServiceInstance",
"independentSelector": false,
"metricType": "LABELED_VALUE",
- "metricName": "meter_instance_persistence_timer_execute_latency_percentile",
+ "metricName": "meter_instance_persistence_execute_percentile",
"queryMetricType": "readLabeledMetricsValues",
"chartType": "ChartLine",
"metricLabels": "50,70,90,99",
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/SimpleQueryClient.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/SimpleQueryClient.java
index 32b2771..5287dc3 100644
--- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/SimpleQueryClient.java
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/SimpleQueryClient.java
@@ -29,6 +29,10 @@ import org.apache.skywalking.e2e.metrics.Metrics;
import org.apache.skywalking.e2e.metrics.MetricsData;
import org.apache.skywalking.e2e.metrics.MetricsQuery;
import org.apache.skywalking.e2e.metrics.MultiMetricsData;
+import org.apache.skywalking.e2e.metrics.ReadLabeledMetricsData;
+import org.apache.skywalking.e2e.metrics.ReadMetricsQuery;
+import org.apache.skywalking.e2e.metrics.ReadMetrics;
+import org.apache.skywalking.e2e.metrics.ReadMetricsData;
import org.apache.skywalking.e2e.service.Service;
import org.apache.skywalking.e2e.service.ServicesData;
import org.apache.skywalking.e2e.service.ServicesQuery;
@@ -52,7 +56,10 @@ import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
+import lombok.extern.slf4j.Slf4j;
+
@SuppressWarnings("UnstableApiUsage")
+@Slf4j
public class SimpleQueryClient {
protected final RestTemplate restTemplate = new RestTemplate();
@@ -253,4 +260,55 @@ public class SimpleQueryClient {
return Objects.requireNonNull(responseEntity.getBody()).getData().getMetrics();
}
+ public ReadMetrics readMetrics(final ReadMetricsQuery query) throws Exception {
+ final URL queryFileUrl = Resources.getResource("read-metrics.gql");
+ final String queryString = Resources.readLines(queryFileUrl, StandardCharsets.UTF_8)
+ .stream()
+ .filter(it -> !it.startsWith("#"))
+ .collect(Collectors.joining())
+ .replace("{step}", query.step())
+ .replace("{start}", query.start())
+ .replace("{end}", query.end())
+ .replace("{metricsName}", query.metricsName())
+ .replace("{serviceName}", query.serviceName())
+ .replace("{instanceName}", query.instanceName());
+ LOGGER.info("Query: {}", queryString);
+ final ResponseEntity<GQLResponse<ReadMetricsData>> responseEntity = restTemplate.exchange(
+ new RequestEntity<>(queryString, HttpMethod.POST, URI.create(endpointUrl)),
+ new ParameterizedTypeReference<GQLResponse<ReadMetricsData>>() {
+ }
+ );
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ throw new RuntimeException("Response status != 200, actual: " + responseEntity.getStatusCode());
+ }
+
+ return Objects.requireNonNull(responseEntity.getBody()).getData().getReadMetricsValues();
+ }
+
+ public List<ReadMetrics> readLabeledMetrics(final ReadMetricsQuery query) throws Exception {
+ final URL queryFileUrl = Resources.getResource("read-labeled-metrics.gql");
+ final String queryString = Resources.readLines(queryFileUrl, StandardCharsets.UTF_8)
+ .stream()
+ .filter(it -> !it.startsWith("#"))
+ .collect(Collectors.joining())
+ .replace("{step}", query.step())
+ .replace("{start}", query.start())
+ .replace("{end}", query.end())
+ .replace("{metricsName}", query.metricsName())
+ .replace("{serviceName}", query.serviceName())
+ .replace("{instanceName}", query.instanceName());
+ LOGGER.info("Query: {}", queryString);
+ final ResponseEntity<GQLResponse<ReadLabeledMetricsData>> responseEntity = restTemplate.exchange(
+ new RequestEntity<>(queryString, HttpMethod.POST, URI.create(endpointUrl)),
+ new ParameterizedTypeReference<GQLResponse<ReadLabeledMetricsData>>() {
+ }
+ );
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ throw new RuntimeException("Response status != 200, actual: " + responseEntity.getStatusCode());
+ }
+
+ return Objects.requireNonNull(responseEntity.getBody()).getData().getReadLabeledMetricsValues();
+ }
}
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/MetricsQuery.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/MetricsQuery.java
index 9f719a1..97f8e27 100644
--- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/MetricsQuery.java
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/MetricsQuery.java
@@ -96,6 +96,27 @@ public class MetricsQuery extends AbstractQuery<MetricsQuery> {
SERVICE_INSTANCE_RELATION_SERVER_CPM
};
+ public static String METER_INSTANCE_CPU_PERCENTAGE = "meter_instance_cpu_percentage";
+ public static String METER_INSTANCE_JVM_MEMORY_BYTES_USED = "meter_instance_jvm_memory_bytes_used";
+ public static String METER_INSTANCE_TRACE_COUNT = "meter_instance_trace_count";
+ public static String METER_INSTANCE_METRICS_FIRST_AGGREGATION = "meter_instance_metrics_first_aggregation";
+ public static String METER_INSTANCE_PERSISTENCE_PREPARE_COUNT = "meter_instance_persistence_prepare_count";
+ public static String METER_INSTANCE_PERSISTENCE_EXECUTE_COUNT = "meter_instance_persistence_execute_count";
+
+ public static String[] ALL_SO11Y_LINER_METRICS = {
+ METER_INSTANCE_CPU_PERCENTAGE,
+ METER_INSTANCE_JVM_MEMORY_BYTES_USED,
+ METER_INSTANCE_TRACE_COUNT,
+ METER_INSTANCE_METRICS_FIRST_AGGREGATION,
+ METER_INSTANCE_PERSISTENCE_PREPARE_COUNT,
+ METER_INSTANCE_PERSISTENCE_EXECUTE_COUNT
+ };
+
+ public static String METER_INSTANCE_PERSISTENCE_EXECUTE_PERCENTILE = "meter_instance_persistence_execute_percentile";
+
+ public static String[] ALL_SO11Y_LABELED_METRICS = {
+ METER_INSTANCE_PERSISTENCE_EXECUTE_PERCENTILE
+ };
private String id;
private String metricsName;
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadLabeledMetricsData.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadLabeledMetricsData.java
new file mode 100644
index 0000000..98f4665
--- /dev/null
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadLabeledMetricsData.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.e2e.metrics;
+
+import java.util.List;
+
+import lombok.Data;
+
+@Data
+public class ReadLabeledMetricsData {
+ private List<ReadMetrics> readLabeledMetricsValues;
+}
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetrics.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetrics.java
new file mode 100644
index 0000000..dd85079
--- /dev/null
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetrics.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.e2e.metrics;
+
+import lombok.Data;
+
+@Data
+public class ReadMetrics {
+ private String label;
+ private Metrics values;
+}
\ No newline at end of file
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsData.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsData.java
new file mode 100644
index 0000000..140db40
--- /dev/null
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsData.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.e2e.metrics;
+
+import lombok.Data;
+
+@Data
+public class ReadMetricsData {
+ private ReadMetrics readMetricsValues;
+}
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsQuery.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsQuery.java
new file mode 100644
index 0000000..f1b4077
--- /dev/null
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/metrics/ReadMetricsQuery.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.e2e.metrics;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.apache.skywalking.e2e.AbstractQuery;
+
+@Data
+@Accessors(fluent = true)
+@EqualsAndHashCode(callSuper = true)
+public class ReadMetricsQuery extends AbstractQuery<ReadMetricsQuery> {
+
+ public static String METER_INSTANCE_CPU_PERCENTAGE = "meter_instance_cpu_percentage";
+
+ public static String[] ALL_SO11Y_LINER_METRICS = {
+ METER_INSTANCE_CPU_PERCENTAGE
+ };
+
+ private String metricsName;
+
+ private String serviceName;
+
+ private String instanceName;
+
+}
diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/service/ServicesMatcher.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/service/ServicesMatcher.java
index cde40d5..38cc9d9 100644
--- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/service/ServicesMatcher.java
+++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/service/ServicesMatcher.java
@@ -21,11 +21,13 @@ package org.apache.skywalking.e2e.service;
import java.util.LinkedList;
import java.util.List;
import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
@Data
+@Slf4j
public class ServicesMatcher {
private List<ServiceMatcher> services;
@@ -34,6 +36,8 @@ public class ServicesMatcher {
}
public void verify(final List<Service> services) {
+
+ LOGGER.info("services:{} matchers:{}", services, this.getServices());
assertThat(services).hasSameSizeAs(this.getServices());
for (int i = 0; i < getServices().size(); i++) {
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml b/test/e2e/e2e-data/src/main/resources/read-labeled-metrics.gql
similarity index 52%
copy from test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
copy to test/e2e/e2e-data/src/main/resources/read-labeled-metrics.gql
index b80079a..4bdc36f 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
+++ b/test/e2e/e2e-data/src/main/resources/read-labeled-metrics.gql
@@ -13,33 +13,28 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- es:
- image: elastic/elasticsearch:6.3.2
- expose:
- - 9200
- networks:
- - e2e
- environment:
- - discovery.type=single-node
- - cluster.routing.allocation.disk.threshold_enabled=false
- healthcheck:
- test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9200"]
- interval: 5s
- timeout: 60s
- retries: 120
-
- oap:
- extends:
- file: ../base-compose.yml
- service: oap
- environment:
- SW_STORAGE: elasticsearch
- depends_on:
- es:
- condition: service_healthy
-
-networks:
- e2e:
+{
+ "query":"query queryData($condition: MetricsCondition!, $labels: [String!]!, $duration: Duration!) {\n readLabeledMetricsValues: readLabeledMetricsValues(\n condition: $condition,\n labels: $labels,\n duration: $duration) {\n label\n values {\n values {value}\n }\n }}",
+ "variables":{
+ "duration":{
+ "start":"{start}",
+ "end":"{end}",
+ "step":"{step}"
+ },
+ "condition":{
+ "name":"{metricsName}",
+ "entity":{
+ "scope":"ServiceInstance",
+ "serviceName":"{serviceName}",
+ "serviceInstanceName":"{instanceName}",
+ "normal":true
+ }
+ },
+ "labels":[
+ "50",
+ "70",
+ "90",
+ "99"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml b/test/e2e/e2e-data/src/main/resources/read-metrics.gql
similarity index 56%
copy from test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
copy to test/e2e/e2e-data/src/main/resources/read-metrics.gql
index b80079a..5889e80 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
+++ b/test/e2e/e2e-data/src/main/resources/read-metrics.gql
@@ -13,33 +13,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- es:
- image: elastic/elasticsearch:6.3.2
- expose:
- - 9200
- networks:
- - e2e
- environment:
- - discovery.type=single-node
- - cluster.routing.allocation.disk.threshold_enabled=false
- healthcheck:
- test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9200"]
- interval: 5s
- timeout: 60s
- retries: 120
-
- oap:
- extends:
- file: ../base-compose.yml
- service: oap
- environment:
- SW_STORAGE: elasticsearch
- depends_on:
- es:
- condition: service_healthy
-
-networks:
- e2e:
+{
+ "query":"query queryData($condition: MetricsCondition!, $duration: Duration!) {\n readMetricsValues: readMetricsValues(condition: $condition, duration: $duration) {\n label\n values {\n values {value}\n }\n }}",
+ "variables":{
+ "duration":{
+ "start":"{start}",
+ "end":"{end}",
+ "step":"{step}"
+ },
+ "condition":{
+ "name":"{metricsName}",
+ "entity":{
+ "scope":"ServiceInstance",
+ "serviceName":"{serviceName}",
+ "serviceInstanceName":"{instanceName}",
+ "normal":true
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/e2e/e2e-test/docker/simple/auth/docker-compose.yml b/test/e2e/e2e-test/docker/simple/auth/docker-compose.yml
index 444e982..c816f30 100644
--- a/test/e2e/e2e-test/docker/simple/auth/docker-compose.yml
+++ b/test/e2e/e2e-test/docker/simple/auth/docker-compose.yml
@@ -22,6 +22,8 @@ services:
service: oap
environment:
SW_AUTHENTICATION: test-token
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
ui:
extends:
diff --git a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml b/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
index 562ed61..9985b8a 100644
--- a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
+++ b/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
@@ -17,6 +17,9 @@ version: '2.1'
services:
oap:
+ environment:
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
extends:
file: ../../base-compose.yml
service: oap
diff --git a/test/e2e/e2e-test/docker/simple/ssl/docker-compose.yml b/test/e2e/e2e-test/docker/simple/ssl/docker-compose.yml
index 97bd397..ae608d1 100644
--- a/test/e2e/e2e-test/docker/simple/ssl/docker-compose.yml
+++ b/test/e2e/e2e-test/docker/simple/ssl/docker-compose.yml
@@ -27,6 +27,8 @@ services:
SW_CORE_GRPC_SSL_KEY_PATH: /skywalking/certs/server-key.pem
SW_CORE_GRPC_SSL_CERT_CHAIN_PATH: /skywalking/certs/server.crt
SW_CORE_GRPC_SSL_TRUSTED_CA_PATH: /skywalking/certs/ca.crt
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
ui:
extends:
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml b/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
index b80079a..e937609 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
+++ b/test/e2e/e2e-test/docker/storage/docker-compose.es6.yml
@@ -37,6 +37,8 @@ services:
service: oap
environment:
SW_STORAGE: elasticsearch
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
depends_on:
es:
condition: service_healthy
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.es7.yml b/test/e2e/e2e-test/docker/storage/docker-compose.es7.yml
index 858a528..a9c9744 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.es7.yml
+++ b/test/e2e/e2e-test/docker/storage/docker-compose.es7.yml
@@ -37,6 +37,8 @@ services:
service: oap-es7
environment:
SW_STORAGE: elasticsearch7
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
depends_on:
es:
condition: service_healthy
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.influxdb.yml b/test/e2e/e2e-test/docker/storage/docker-compose.influxdb.yml
index 377ea79..184fa08 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.influxdb.yml
+++ b/test/e2e/e2e-test/docker/storage/docker-compose.influxdb.yml
@@ -34,6 +34,8 @@ services:
service: oap
environment:
SW_STORAGE: influxdb
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
depends_on:
influxdb:
condition: service_healthy
diff --git a/test/e2e/e2e-test/docker/storage/docker-compose.mysql.yml b/test/e2e/e2e-test/docker/storage/docker-compose.mysql.yml
index 0491780..096d71b 100644
--- a/test/e2e/e2e-test/docker/storage/docker-compose.mysql.yml
+++ b/test/e2e/e2e-test/docker/storage/docker-compose.mysql.yml
@@ -38,6 +38,8 @@ services:
service: oap
environment:
SW_STORAGE: mysql
+ SW_PROMETHEUS_FETCHER_ACTIVE: "true"
+ SW_TELEMETRY: prometheus
depends_on:
mysql:
condition: service_healthy
diff --git a/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/simple/SimpleE2E.java b/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/simple/SimpleE2E.java
index d124897..67af388 100644
--- a/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/simple/SimpleE2E.java
+++ b/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/simple/SimpleE2E.java
@@ -19,6 +19,8 @@
package org.apache.skywalking.e2e.simple;
import java.util.List;
+import java.util.stream.Collectors;
+
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.e2e.annotation.ContainerHostAndPort;
import org.apache.skywalking.e2e.annotation.DockerCompose;
@@ -29,6 +31,8 @@ import org.apache.skywalking.e2e.metrics.AtLeastOneOfMetricsMatcher;
import org.apache.skywalking.e2e.metrics.Metrics;
import org.apache.skywalking.e2e.metrics.MetricsQuery;
import org.apache.skywalking.e2e.metrics.MetricsValueMatcher;
+import org.apache.skywalking.e2e.metrics.ReadMetrics;
+import org.apache.skywalking.e2e.metrics.ReadMetricsQuery;
import org.apache.skywalking.e2e.retryable.RetryableTest;
import org.apache.skywalking.e2e.service.Service;
import org.apache.skywalking.e2e.service.ServicesMatcher;
@@ -63,6 +67,8 @@ import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_INSTANC
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_METRICS;
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_RELATION_CLIENT_METRICS;
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_RELATION_SERVER_METRICS;
+import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SO11Y_LINER_METRICS;
+import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SO11Y_LABELED_METRICS;
import static org.apache.skywalking.e2e.utils.Times.now;
import static org.apache.skywalking.e2e.utils.Yamls.load;
@@ -126,11 +132,12 @@ public class SimpleE2E extends SkyWalkingTestAdapter {
public void tearDown() {
trafficController.stop();
}
-
+
@RetryableTest
void services() throws Exception {
- final List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+ List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+ services = services.stream().filter(s -> !s.getLabel().equals("oap-server")).collect(Collectors.toList());
LOGGER.info("services: {}", services);
load("expected/simple/services.yml").as(ServicesMatcher.class).verify(services);
@@ -185,6 +192,58 @@ public class SimpleE2E extends SkyWalkingTestAdapter {
verifyServiceInstanceRelationMetrics(topology.getCalls());
}
+
+ @RetryableTest
+ void so11y() throws Exception {
+ List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+
+ services = services.stream().filter(s -> s.getLabel().equals("oap-server")).collect(Collectors.toList());
+ LOGGER.info("services: {}", services);
+ load("expected/simple/so11y-services.yml").as(ServicesMatcher.class).verify(services);
+ for (final Service service : services) {
+ final Instances instances = graphql.instances(
+ new InstancesQuery().serviceId(service.getKey()).start(startTime).end(now())
+ );
+
+ LOGGER.info("instances: {}", instances);
+
+ load("expected/simple/so11y-instances.yml").as(InstancesMatcher.class).verify(instances);
+ for (Instance instance : instances.getInstances()) {
+ for (String metricsName : ALL_SO11Y_LINER_METRICS) {
+ LOGGER.info("verifying service instance response time: {}", instance);
+ final ReadMetrics instanceMetrics = graphql.readMetrics(
+ new ReadMetricsQuery().stepByMinute().metricsName(metricsName)
+ .serviceName(service.getLabel()).instanceName(instance.getLabel())
+ );
+
+ LOGGER.info("{}: {}", metricsName, instanceMetrics);
+ final AtLeastOneOfMetricsMatcher instanceRespTimeMatcher = new AtLeastOneOfMetricsMatcher();
+ final MetricsValueMatcher greaterThanZero = new MetricsValueMatcher();
+ greaterThanZero.setValue("gt 0");
+ instanceRespTimeMatcher.setValue(greaterThanZero);
+ instanceRespTimeMatcher.verify(instanceMetrics.getValues());
+ }
+ for (String metricsName : ALL_SO11Y_LABELED_METRICS) {
+ LOGGER.info("verifying service instance response time: {}", instance);
+ final List<ReadMetrics> instanceMetrics = graphql.readLabeledMetrics(
+ new ReadMetricsQuery().stepByMinute().metricsName(metricsName)
+ .serviceName(service.getLabel()).instanceName(instance.getLabel())
+ );
+
+ LOGGER.info("{}: {}", metricsName, instanceMetrics);
+ Metrics allValues = new Metrics();
+ for (ReadMetrics readMetrics : instanceMetrics) {
+ allValues.getValues().addAll(readMetrics.getValues().getValues());
+ }
+ final AtLeastOneOfMetricsMatcher instanceRespTimeMatcher = new AtLeastOneOfMetricsMatcher();
+ final MetricsValueMatcher greaterThanZero = new MetricsValueMatcher();
+ greaterThanZero.setValue("gt 0");
+ instanceRespTimeMatcher.setValue(greaterThanZero);
+ instanceRespTimeMatcher.verify(allValues);
+ }
+ }
+ }
+ }
private Instances verifyServiceInstances(final Service service) throws Exception {
final Instances instances = graphql.instances(
diff --git a/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/storage/StorageE2E.java b/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/storage/StorageE2E.java
index 082e5f9..d9da649 100644
--- a/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/storage/StorageE2E.java
+++ b/test/e2e/e2e-test/src/test/java/org/apache/skywalking/e2e/storage/StorageE2E.java
@@ -21,6 +21,8 @@ package org.apache.skywalking.e2e.storage;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.e2e.UIConfigurationManagementClient;
import org.apache.skywalking.e2e.annotation.ContainerHostAndPort;
@@ -38,6 +40,8 @@ import org.apache.skywalking.e2e.metrics.AtLeastOneOfMetricsMatcher;
import org.apache.skywalking.e2e.metrics.Metrics;
import org.apache.skywalking.e2e.metrics.MetricsQuery;
import org.apache.skywalking.e2e.metrics.MetricsValueMatcher;
+import org.apache.skywalking.e2e.metrics.ReadMetrics;
+import org.apache.skywalking.e2e.metrics.ReadMetricsQuery;
import org.apache.skywalking.e2e.retryable.RetryableTest;
import org.apache.skywalking.e2e.service.Service;
import org.apache.skywalking.e2e.service.ServicesMatcher;
@@ -73,6 +77,8 @@ import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_INSTANC
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_METRICS;
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_RELATION_CLIENT_METRICS;
import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SERVICE_RELATION_SERVER_METRICS;
+import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SO11Y_LINER_METRICS;
+import static org.apache.skywalking.e2e.metrics.MetricsQuery.ALL_SO11Y_LABELED_METRICS;
import static org.apache.skywalking.e2e.utils.Times.now;
import static org.apache.skywalking.e2e.utils.Yamls.load;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -112,8 +118,9 @@ public class StorageE2E extends SkyWalkingTestAdapter {
@RetryableTest
void services() throws Exception {
- final List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+ List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+ services = services.stream().filter(s -> !s.getLabel().equals("oap-server")).collect(Collectors.toList());
LOGGER.info("services: {}", services);
load("expected/storage/services.yml").as(ServicesMatcher.class).verify(services);
@@ -219,6 +226,58 @@ public class StorageE2E extends SkyWalkingTestAdapter {
verifyTemplates("expected/storage/dashboardConfiguration-disable.yml");
}
+ @RetryableTest
+ void so11y() throws Exception {
+ List<Service> services = graphql.services(new ServicesQuery().start(startTime).end(now()));
+
+ services = services.stream().filter(s -> s.getLabel().equals("oap-server")).collect(Collectors.toList());
+ LOGGER.info("services: {}", services);
+ load("expected/simple/so11y-services.yml").as(ServicesMatcher.class).verify(services);
+ for (final Service service : services) {
+ final Instances instances = graphql.instances(
+ new InstancesQuery().serviceId(service.getKey()).start(startTime).end(now())
+ );
+
+ LOGGER.info("instances: {}", instances);
+
+ load("expected/simple/so11y-instances.yml").as(InstancesMatcher.class).verify(instances);
+ for (Instance instance : instances.getInstances()) {
+ for (String metricsName : ALL_SO11Y_LINER_METRICS) {
+ LOGGER.info("verifying service instance response time: {}", instance);
+ final ReadMetrics instanceMetrics = graphql.readMetrics(
+ new ReadMetricsQuery().stepByMinute().metricsName(metricsName)
+ .serviceName(service.getLabel()).instanceName(instance.getLabel())
+ );
+
+ LOGGER.info("{}: {}", metricsName, instanceMetrics);
+ final AtLeastOneOfMetricsMatcher instanceRespTimeMatcher = new AtLeastOneOfMetricsMatcher();
+ final MetricsValueMatcher greaterThanZero = new MetricsValueMatcher();
+ greaterThanZero.setValue("gt 0");
+ instanceRespTimeMatcher.setValue(greaterThanZero);
+ instanceRespTimeMatcher.verify(instanceMetrics.getValues());
+ }
+ for (String metricsName : ALL_SO11Y_LABELED_METRICS) {
+ LOGGER.info("verifying service instance response time: {}", instance);
+ final List<ReadMetrics> instanceMetrics = graphql.readLabeledMetrics(
+ new ReadMetricsQuery().stepByMinute().metricsName(metricsName)
+ .serviceName(service.getLabel()).instanceName(instance.getLabel())
+ );
+
+ LOGGER.info("{}: {}", metricsName, instanceMetrics);
+ Metrics allValues = new Metrics();
+ for (ReadMetrics readMetrics : instanceMetrics) {
+ allValues.getValues().addAll(readMetrics.getValues().getValues());
+ }
+ final AtLeastOneOfMetricsMatcher instanceRespTimeMatcher = new AtLeastOneOfMetricsMatcher();
+ final MetricsValueMatcher greaterThanZero = new MetricsValueMatcher();
+ greaterThanZero.setValue("gt 0");
+ instanceRespTimeMatcher.setValue(greaterThanZero);
+ instanceRespTimeMatcher.verify(allValues);
+ }
+ }
+ }
+ }
+
private Instances verifyServiceInstances(final Service service) throws Exception {
final Instances instances = graphql.instances(
new InstancesQuery().serviceId(service.getKey()).start(startTime).end(now())
diff --git a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml b/test/e2e/e2e-test/src/test/resources/expected/simple/so11y-instances.yml
similarity index 66%
copy from test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
copy to test/e2e/e2e-test/src/test/resources/expected/simple/so11y-instances.yml
index 562ed61..7de572a 100644
--- a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
+++ b/test/e2e/e2e-test/src/test/resources/expected/simple/so11y-instances.yml
@@ -13,29 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../base-compose.yml
- service: oap
-
- ui:
- extends:
- file: ../../base-compose.yml
- service: ui
- depends_on:
- oap:
- condition: service_healthy
-
- provider:
- extends:
- file: ../../base-compose.yml
- service: provider
- depends_on:
- oap:
- condition: service_healthy
-
-networks:
- e2e:
+instances:
+ - key: not null
+ label: not null
diff --git a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml b/test/e2e/e2e-test/src/test/resources/expected/simple/so11y-services.yml
similarity index 67%
copy from test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
copy to test/e2e/e2e-test/src/test/resources/expected/simple/so11y-services.yml
index 562ed61..c19deb2 100644
--- a/test/e2e/e2e-test/docker/simple/jdk/docker-compose.yml
+++ b/test/e2e/e2e-test/src/test/resources/expected/simple/so11y-services.yml
@@ -13,29 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
services:
- oap:
- extends:
- file: ../../base-compose.yml
- service: oap
-
- ui:
- extends:
- file: ../../base-compose.yml
- service: ui
- depends_on:
- oap:
- condition: service_healthy
-
- provider:
- extends:
- file: ../../base-compose.yml
- service: provider
- depends_on:
- oap:
- condition: service_healthy
-
-networks:
- e2e:
+ - key: not null
+ label: "oap-server"