Skip to content

Commit

Permalink
[otel-integration] Update opentelemetry collector v0.119.0
Browse files Browse the repository at this point in the history
  • Loading branch information
povilasv committed Feb 27, 2025
1 parent 105e976 commit 3821ade
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 43 deletions.
4 changes: 4 additions & 0 deletions otel-integration/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
12 changes: 6 additions & 6 deletions otel-integration/k8s-helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
68 changes: 67 additions & 1 deletion otel-integration/k8s-helm/e2e-test/expected_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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{}{
Expand Down Expand Up @@ -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": "",
Expand Down Expand Up @@ -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{
Expand Down
31 changes: 28 additions & 3 deletions otel-integration/k8s-helm/e2e-test/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)

Expand All @@ -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()

Expand All @@ -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())
}
Expand All @@ -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)
Expand Down
34 changes: 1 addition & 33 deletions otel-integration/k8s-helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ global:
defaultSubsystemName: "integration"
logLevel: "warn"
collectionInterval: "30s"
version: "0.0.148"
version: "0.0.149"

extensions:
kubernetesDashboard:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 3821ade

Please sign in to comment.