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