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 2022/05/09 08:54:17 UTC

[skywalking] branch master updated: VM monitoring adapt the latest version `0.50.0`of the `opentelemetry-collector` (#9013)

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 26d8c36e3a VM monitoring adapt the latest version `0.50.0`of the `opentelemetry-collector` (#9013)
26d8c36e3a is described below

commit 26d8c36e3a12b6c1cdb687af57b5485fecd4aa0a
Author: Wan Kai <wa...@foxmail.com>
AuthorDate: Mon May 9 16:54:05 2022 +0800

    VM monitoring adapt the latest version `0.50.0`of the `opentelemetry-collector` (#9013)
---
 docs/en/changes/changes.md                                  |  1 +
 .../oap/server/receiver/otel/oc/OCMetricHandler.java        | 13 +++++++++++--
 .../cases/vm/prometheus-node-exporter/docker-compose.yml    |  2 +-
 .../vm/prometheus-node-exporter/otel-collector-config.yaml  | 11 ++++++++++-
 4 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 9fc8e4dd46..1d39741e5d 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -45,6 +45,7 @@
 * Support autocomplete tags in logs query.
 * Enhance Deprecated MetricQuery(v1) getValues querying to asynchronous concurrency query
 * Fix the pod match error when the service has multiple selector in kubernetes environment.
+* VM monitoring adapts the 0.50.0 of the `opentelemetry-collector`.
 
 #### UI
 
diff --git a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/oc/OCMetricHandler.java b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/oc/OCMetricHandler.java
index 1fdf28a944..e750e965af 100644
--- a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/oc/OCMetricHandler.java
+++ b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/oc/OCMetricHandler.java
@@ -29,6 +29,7 @@ import io.opencensus.proto.metrics.v1.DistributionValue;
 import io.opencensus.proto.metrics.v1.LabelKey;
 import io.opencensus.proto.metrics.v1.LabelValue;
 import io.opencensus.proto.metrics.v1.SummaryValue;
+import io.opencensus.proto.resource.v1.Resource;
 import io.vavr.Function1;
 import io.vavr.Tuple;
 import java.time.Instant;
@@ -54,7 +55,7 @@ import static java.util.stream.Collectors.toList;
 
 @Slf4j
 public class OCMetricHandler extends MetricsServiceGrpc.MetricsServiceImplBase implements Handler {
-
+    private static final String HOST_NAME_LABEL = "node_identifier_host_name";
     private List<PrometheusMetricConverter> metrics;
 
     @Override public StreamObserver<ExportMetricsServiceRequest> export(
@@ -62,6 +63,7 @@ public class OCMetricHandler extends MetricsServiceGrpc.MetricsServiceImplBase i
         return new StreamObserver<ExportMetricsServiceRequest>() {
             private Node node;
             private Map<String, String> nodeLabels = new HashMap<>();
+            private Resource resource;
 
             @Override
             public void onNext(ExportMetricsServiceRequest request) {
@@ -70,7 +72,7 @@ public class OCMetricHandler extends MetricsServiceGrpc.MetricsServiceImplBase i
                     nodeLabels.clear();
                     if (node.hasIdentifier()) {
                         if (StringUtil.isNotBlank(node.getIdentifier().getHostName())) {
-                            nodeLabels.put("node_identifier_host_name", node.getIdentifier().getHostName());
+                            nodeLabels.put(HOST_NAME_LABEL, node.getIdentifier().getHostName());
                         }
                         if (node.getIdentifier().getPid() > 0) {
                             nodeLabels.put("node_identifier_pid", String.valueOf(node.getIdentifier().getPid()));
@@ -81,6 +83,13 @@ public class OCMetricHandler extends MetricsServiceGrpc.MetricsServiceImplBase i
                         nodeLabels.put("job_name", name);
                     }
                 }
+                //new version of the OTEL moved the host name to the `Resources`
+                if (request.hasResource() && StringUtil.isBlank(nodeLabels.get(HOST_NAME_LABEL))) {
+                    resource = request.getResource();
+                    if (StringUtil.isNotBlank(resource.getLabelsMap().get("net.host.name"))) {
+                        nodeLabels.put(HOST_NAME_LABEL, resource.getLabelsMap().get("net.host.name"));
+                    }
+                }
                 metrics.forEach(m -> m.toMeter(request.getMetricsList().stream()
                     .flatMap(metric -> metric.getTimeseriesList().stream().map(timeSeries ->
                         Tuple.of(metric.getMetricDescriptor(),
diff --git a/test/e2e-v2/cases/vm/prometheus-node-exporter/docker-compose.yml b/test/e2e-v2/cases/vm/prometheus-node-exporter/docker-compose.yml
index c54dc03c8f..7259f41d0e 100644
--- a/test/e2e-v2/cases/vm/prometheus-node-exporter/docker-compose.yml
+++ b/test/e2e-v2/cases/vm/prometheus-node-exporter/docker-compose.yml
@@ -36,7 +36,7 @@ services:
       - 9100
 
   otel-collector:
-    image: otel/opentelemetry-collector:0.29.0
+    image: otel/opentelemetry-collector:0.50.0
     networks:
       - e2e
     command: [ "--config=/etc/otel-collector-config.yaml" ]
diff --git a/test/e2e-v2/cases/vm/prometheus-node-exporter/otel-collector-config.yaml b/test/e2e-v2/cases/vm/prometheus-node-exporter/otel-collector-config.yaml
index 770232e3e1..b1499ad985 100644
--- a/test/e2e-v2/cases/vm/prometheus-node-exporter/otel-collector-config.yaml
+++ b/test/e2e-v2/cases/vm/prometheus-node-exporter/otel-collector-config.yaml
@@ -28,7 +28,16 @@ processors:
 exporters:
   opencensus:
     endpoint: "oap:11800" # The OAP Server address
-    insecure: true
+    ###############################################################################
+    # OTEL previous version before 0.34.0 the config format, eg. 0.29.0 should be:#
+    # insecure: true                                                              #
+    # The new version should be:                                                  #
+    # tls:                                                                        #
+    #   insecure: true                                                            #
+    ###############################################################################
+    tls:
+      insecure: true
+    #insecure: true
   # Exports data to the console  
   logging:
     logLevel: debug