From 3821ade4d82ad22eb42e3343cadbfcbbb411a5e4 Mon Sep 17 00:00:00 2001
From: Povilas Versockas
Date: Thu, 27 Feb 2025 09:55:18 +0200
Subject: [PATCH] [otel-integration] Update opentelemetry collector v0.119.0
---
otel-integration/CHANGELOG.md | 4 ++
otel-integration/k8s-helm/Chart.yaml | 12 ++--
.../k8s-helm/e2e-test/expected_test.go | 68 ++++++++++++++++++-
.../k8s-helm/e2e-test/main_test.go | 31 ++++++++-
otel-integration/k8s-helm/values.yaml | 34 +---------
5 files changed, 106 insertions(+), 43 deletions(-)
diff --git a/otel-integration/CHANGELOG.md b/otel-integration/CHANGELOG.md
index 0bae965b..e426694c 100644
--- a/otel-integration/CHANGELOG.md
+++ b/otel-integration/CHANGELOG.md
@@ -2,6 +2,10 @@
## OpenTelemtry-Integration
+### v0.0.149 / 2025-02-27
+
+- [Feat] Upgrade OpenTelemetry Collector to `0.119.0`
+
### v0.0.148 / 2025-02-20
- [Fix] Filter only Pods from standard kubernetes workloads in kubernetesResource presets.
diff --git a/otel-integration/k8s-helm/Chart.yaml b/otel-integration/k8s-helm/Chart.yaml
index 1a6705ca..9a22bbf4 100644
--- a/otel-integration/k8s-helm/Chart.yaml
+++ b/otel-integration/k8s-helm/Chart.yaml
@@ -1,7 +1,7 @@
apiVersion: v2
name: otel-integration
description: OpenTelemetry Integration
-version: 0.0.148
+version: 0.0.149
keywords:
- OpenTelemetry Collector
- OpenTelemetry Agent
@@ -11,27 +11,27 @@ keywords:
dependencies:
- name: opentelemetry-collector
alias: opentelemetry-agent
- version: "0.106.4"
+ version: "0.107.1"
repository: https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
condition: opentelemetry-agent.enabled
- name: opentelemetry-collector
alias: opentelemetry-agent-windows
- version: "0.106.4"
+ version: "0.107.1"
repository: https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
condition: opentelemetry-agent-windows.enabled
- name: opentelemetry-collector
alias: opentelemetry-cluster-collector
- version: "0.106.4"
+ version: "0.107.1"
repository: https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
condition: opentelemetry-cluster-collector.enabled
- name: opentelemetry-collector
alias: opentelemetry-receiver
- version: "0.106.4"
+ version: "0.107.1"
repository: https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
condition: opentelemetry-receiver.enabled
- name: opentelemetry-collector
alias: opentelemetry-gateway
- version: "0.106.4"
+ version: "0.107.1"
repository: https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
condition: opentelemetry-gateway.enabled
- name: coralogix-ebpf-agent
diff --git a/otel-integration/k8s-helm/e2e-test/expected_test.go b/otel-integration/k8s-helm/e2e-test/expected_test.go
index aba37000..87939360 100644
--- a/otel-integration/k8s-helm/e2e-test/expected_test.go
+++ b/otel-integration/k8s-helm/e2e-test/expected_test.go
@@ -5,7 +5,7 @@ var expectedResourceMetricsSchemaURL = map[string]bool{
"https://opentelemetry.io/schemas/1.9.0": false,
}
-const expectedScopeVersion = "0.118.0"
+const expectedScopeVersion = ""
var expectedResourceScopeNames = map[string]bool{
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver/internal/scraper/cpuscraper": false,
@@ -17,6 +17,16 @@ var expectedResourceScopeNames = map[string]bool{
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver/internal/scraper/processscraper": false,
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver": false,
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver": false,
+ "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/fileconsumer": false,
+ "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor": false,
+
+ "go.opentelemetry.io/collector/exporter/exporterhelper": false,
+ "go.opentelemetry.io/collector/processor/batchprocessor": false,
+ "go.opentelemetry.io/collector/receiver/receiverhelper": false,
+ "go.opentelemetry.io/collector/processor/memorylimiterprocessor": false,
+ "go.opentelemetry.io/collector/processor/processorhelper": false,
+ "go.opentelemetry.io/collector/scraper/scraperhelper": false,
+ "go.opentelemetry.io/collector/service": false,
}
var unwantedScopeNames = map[string]struct{}{
@@ -72,6 +82,61 @@ var expectedResourceAttributesHostmetricsreceiver = map[string]string{
"process.pid": "",
}
+var expectedResourceAttributesK8sattributesprocessor = map[string]string{
+ "service.name": "",
+ "k8s.cluster.name": "otel-integration-agent-e2e",
+ "k8s.node.name": "otel-integration-agent-e2e-control-plane",
+}
+
+var expectedResourceAttributesMemorylimiterprocessor = map[string]string{
+ "service.name": "opentelemetry-collector",
+ "net.host.name": "",
+ "server.address": "",
+ "k8s.pod.ip": "",
+ "net.host.port": "",
+ "http.scheme": "http",
+ "server.port": "",
+ "url.scheme": "",
+ "cx_agent_type": "",
+ "k8s_node_name": "",
+ "service_instance_id": "",
+ "cx.otel_integration.name": "coralogix-integration-helm",
+ "service_version": expectedScopeVersion,
+ "k8s.cluster.name": "otel-integration-agent-e2e",
+ "k8s.pod.name": "",
+ "k8s.namespace.name": "",
+ "k8s.daemonset.name": "",
+ "k8s.node.name": "otel-integration-agent-e2e-control-plane",
+ "host.name": "",
+ "os.type": "linux",
+ "host.id": "",
+ "cloud.provider": "azure",
+ "cloud.platform": "azure_vm",
+ "cloud.region": "",
+ "cloud.account.id": "",
+ "azure.vm.name": "",
+ "azure.vm.size": "",
+ "azure.vm.scaleset.name": "",
+ "azure.resourcegroup.name": "",
+}
+
+var expectedResourceAttributesLoadscraper = map[string]string{
+ "k8s.cluster.name": "otel-integration-agent-e2e",
+ "cx.otel_integration.name": "coralogix-integration-helm",
+ "host.name": "",
+ "os.type": "linux",
+ "host.id": "",
+ "k8s.node.name": "otel-integration-agent-e2e-control-plane",
+ "cloud.provider": "azure",
+ "cloud.platform": "azure_vm",
+ "cloud.region": "",
+ "cloud.account.id": "",
+ "azure.vm.name": "",
+ "azure.vm.size": "",
+ "azure.vm.scaleset.name": "",
+ "azure.resourcegroup.name": "",
+}
+
var expectedResourceAttributesPrometheusreceiver = map[string]string{
"azure.resourcegroup.name": "",
"azure.vm.name": "",
@@ -214,6 +279,7 @@ var expectedMetrics map[string]bool = map[string]bool{
"system.network.io": false,
"system.network.packets": false,
"up": false,
+ "promhttp_metric_handler_errors_total": false,
}
var expectedTracesSchemaURL = map[string]bool{
diff --git a/otel-integration/k8s-helm/e2e-test/main_test.go b/otel-integration/k8s-helm/e2e-test/main_test.go
index b9a568c0..b9042fe7 100644
--- a/otel-integration/k8s-helm/e2e-test/main_test.go
+++ b/otel-integration/k8s-helm/e2e-test/main_test.go
@@ -101,7 +101,7 @@ func checkResourceMetrics(t *testing.T, actual []pmetric.Metrics) error {
require.True(t, expectedState, "metrics: schema_url %v was not found in the actual metrics", name)
}
for name, expectedState := range expectedResourceScopeNames {
- require.True(t, expectedState, "metrics: scope %v was not found in the actual metrics", name)
+ require.True(t, expectedState, "metrics: scope %v was not found in the actual metrics, found scope names: %v", name, expectedResourceScopeNames)
}
var missingMetrics []string
@@ -121,6 +121,7 @@ func checkResourceMetrics(t *testing.T, actual []pmetric.Metrics) error {
}
func checkScopeMetrics(t *testing.T, rmetrics pmetric.ResourceMetrics) error {
+
for k := 0; k < rmetrics.ScopeMetrics().Len(); k++ {
scope := rmetrics.ScopeMetrics().At(k)
@@ -135,16 +136,22 @@ func checkScopeMetrics(t *testing.T, rmetrics pmetric.ResourceMetrics) error {
t.Fatalf("unwanted scope detected %v", scope.Scope().Name())
}
- require.Equal(t, expectedScopeVersion, scope.Scope().Version(), "metrics unexpected scope version %v")
_, ok := expectedResourceScopeNames[scope.Scope().Name()]
if ok {
expectedResourceScopeNames[scope.Scope().Name()] = true
}
+
+ if !ok {
+ for k := 0; k < rmetrics.ScopeMetrics().Len(); k++ {
+ scope := rmetrics.ScopeMetrics().At(k)
+ fmt.Printf("found scopeName: %v\n", scope.Scope().Name())
+ }
+ }
require.True(t, ok, "metrics: scope %v does not match one of the expected values", scope.Scope().Name())
// We only need the relevant part of the scopr name to get receiver name.
scopeNameTrimmed := strings.Split(scope.Scope().Name(), "/")
- checkResourceAttributes(t, rmetrics.Resource().Attributes(), scopeNameTrimmed[4])
+ checkResourceAttributes(t, rmetrics.Resource().Attributes(), scopeNameTrimmed[len(scopeNameTrimmed)-1])
metrics := scope.Metrics()
@@ -157,6 +164,10 @@ func checkScopeMetrics(t *testing.T, rmetrics pmetric.ResourceMetrics) error {
}
if !ok {
spew.Dump(metric)
+ for j := 0; j < metrics.Len(); j++ {
+ metric := metrics.At(j)
+ fmt.Printf("Found metric %s\n", metric.Name())
+ }
}
require.True(t, ok, "actual metrics detected %v do not match expected metrics", metric.Name())
}
@@ -175,10 +186,24 @@ func checkResourceAttributes(t *testing.T, attributes pcommon.Map, scopeName str
compareMap = expectedResourceAttributesKubeletstatreceiver
case "prometheusreceiver":
compareMap = expectedResourceAttributesPrometheusreceiver
+ case "k8sattributesprocessor":
+ compareMap = expectedResourceAttributesK8sattributesprocessor
+ case "loadscraper":
+ compareMap = expectedResourceAttributesLoadscraper
+ case "memorylimiterprocessor":
+ compareMap = expectedResourceAttributesMemorylimiterprocessor
+ default:
+ compareMap = expectedResourceAttributesMemorylimiterprocessor
}
attributes.Range(func(k string, v pcommon.Value) bool {
val, ok := compareMap[k]
+ if !ok {
+ attributes.Range(func(k string, v pcommon.Value) bool {
+ fmt.Printf("found attribute: scopeName: %s, attribute: %v\n", scopeName, k)
+ return true
+ })
+ }
require.True(t, ok, "metrics: unexpected attribute %v - scopeName: %s", k, scopeName)
if val != "" {
require.Equal(t, val, v.AsString(), "metrics: unexpected value for attribute %v", k)
diff --git a/otel-integration/k8s-helm/values.yaml b/otel-integration/k8s-helm/values.yaml
index 8c03ef05..86a34936 100644
--- a/otel-integration/k8s-helm/values.yaml
+++ b/otel-integration/k8s-helm/values.yaml
@@ -5,7 +5,7 @@ global:
defaultSubsystemName: "integration"
logLevel: "warn"
collectionInterval: "30s"
- version: "0.0.148"
+ version: "0.0.149"
extensions:
kubernetesDashboard:
@@ -355,14 +355,6 @@ opentelemetry-agent:
cx.agent.type: "agent"
logs:
level: "{{ .Values.global.logLevel }}"
- encoding: json
- metrics:
- readers:
- - pull:
- exporter:
- prometheus:
- host: ${env:MY_POD_IP}
- port: 8888
extensions:
- zpages
- pprof
@@ -718,14 +710,6 @@ opentelemetry-cluster-collector:
cx.agent.type: "cluster-collector"
logs:
level: "{{ .Values.global.logLevel }}"
- encoding: json
- metrics:
- readers:
- - pull:
- exporter:
- prometheus:
- host: ${env:MY_POD_IP}
- port: 8888
extensions:
- zpages
- pprof
@@ -986,14 +970,6 @@ opentelemetry-gateway:
cx.agent.type: "gateway"
logs:
level: "{{ .Values.global.logLevel }}"
- encoding: json
- metrics:
- readers:
- - pull:
- exporter:
- prometheus:
- host: ${env:MY_POD_IP}
- port: 8888
pipelines:
metrics:
exporters:
@@ -1183,14 +1159,6 @@ opentelemetry-receiver:
cx.agent.type: "receiver"
logs:
level: "{{ .Values.global.logLevel }}"
- encoding: json
- metrics:
- readers:
- - pull:
- exporter:
- prometheus:
- host: ${env:MY_POD_IP}
- port: 8888
pipelines:
metrics/self_monitoring:
exporters: