Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
51a72b2
added node labels
samiura Aug 27, 2025
e524a25
added node labels
samiura Aug 27, 2025
b3f3dd2
added node labels
samiura Aug 27, 2025
b95beaf
added node labels
samiura Aug 27, 2025
49959e1
added node labels
samiura Aug 27, 2025
5108c1d
added node labels
samiura Sep 9, 2025
93728fa
added node labels
samiura Sep 9, 2025
b9a5c52
added node labels
samiura Sep 10, 2025
8bc9c6a
added node labels
samiura Sep 10, 2025
6f2e8ee
added node labels
samiura Sep 10, 2025
dd5acbe
added node labels
samiura Sep 10, 2025
7fd412b
added node labels
samiura Sep 10, 2025
09d8071
added node labels
samiura Sep 11, 2025
3929451
added node labels
samiura Sep 11, 2025
0931b94
added node labels
samiura Sep 11, 2025
53f5e1c
added node labels
samiura Sep 11, 2025
046c949
added node labels
samiura Sep 11, 2025
b6f4717
added node labels
samiura Sep 11, 2025
11ac04e
added node labels
samiura Sep 11, 2025
15de9d3
added node labels
samiura Sep 11, 2025
43387bd
added node labels
samiura Sep 12, 2025
9414fe1
added node labels
samiura Sep 12, 2025
5ace6f2
added node labels
samiura Sep 12, 2025
b443a75
added node labels
samiura Sep 12, 2025
fef7005
added node labels
samiura Sep 12, 2025
1e27531
added node labels
samiura Sep 12, 2025
deb91c8
added node labels
samiura Sep 12, 2025
faf5bcd
added node labels
samiura Sep 12, 2025
dd600ad
added node labels
samiura Sep 12, 2025
83fad12
added node labels
samiura Sep 15, 2025
b0c5d7b
added node labels
samiura Sep 15, 2025
3bf6767
added node labels
samiura Sep 15, 2025
6ddbcb1
added node labels
samiura Sep 15, 2025
caadfb2
added node labels
samiura Sep 16, 2025
457e367
added node labels
samiura Sep 16, 2025
90753a1
added node labels
samiura Sep 17, 2025
5954156
added changelong and corrected annotations labels.
samiura Sep 18, 2025
625fe9f
fixing unit test
samiura Sep 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/3976.added.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
feat: added node labels to the upstream K8sattribute processor's config
6 changes: 6 additions & 0 deletions deploy/helm/sumologic/conf/logs/otelcol/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -329,13 +329,19 @@ processors:
- key_regex: "(.*)"
tag_name: "namespace_labels_$$1"
from: namespace
- key_regex: "(.*)"
tag_name: "node_labels_$$1"
from: node
annotations:
- key_regex: "(.*)"
tag_name: "pod_annotations_$$1"
from: pod
- key_regex: "(.*)"
tag_name: "namespace_annotations_$$1"
from: namespace
- key_regex: "(.*)"
tag_name: "node_annotations_$$1"
from: node
metadata:
## extract the following well-known metadata fields
- k8s.pod.name
Expand Down
3 changes: 3 additions & 0 deletions deploy/helm/sumologic/conf/metrics/otelcol/processors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ k8sattributes:
- key_regex: "(.*)"
tag_name: "pod_labels_$$1"
from: pod
- key_regex: "(.*)"
tag_name: "node_labels_$$1"
from: node
metadata:
## extract the following well-known metadata fields
- k8s.pod.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,19 @@ data:
- from: namespace
key_regex: (.*)
tag_name: namespace_annotations_$$1
- from: node
key_regex: (.*)
tag_name: node_annotations_$$1
labels:
- from: pod
key_regex: (.*)
tag_name: pod_labels_$$1
- from: namespace
key_regex: (.*)
tag_name: namespace_labels_$$1
- from: node
key_regex: (.*)
tag_name: node_labels_$$1
metadata:
- k8s.pod.name
- k8s.pod.uid
Expand Down
38 changes: 22 additions & 16 deletions tests/integration/features.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,22 +94,28 @@ func GetMetricsK8sattributes(expectedMetrics []string, metricsCollector MetricsC
}
namespace := ctxopts.Namespace(ctx)
expectedLabels := sumologicmock.Labels{
"cluster": "kubernetes",
"_origin": "kubernetes",
"container": "sumologic-mock",
"deployment": deployment,
"endpoint": "https-metrics",
"image": "sumologic/sumologic-mock:.*",
"job": "kubelet",
"metrics_path": "/metrics/cadvisor",
"namespace": ctxopts.Namespace(ctx),
"node": internal.NodeNameRegex,
"pod_labels_app": deployment,
"pod_labels_pod-template-hash": ".+",
"pod": podList.Items[0].Name,
"replicaset": fmt.Sprintf("%s-.*", deployment),
"service": deployment,
"service.namespace": ctxopts.Namespace(ctx),
"cluster": "kubernetes",
"_origin": "kubernetes",
"container": "sumologic-mock",
"deployment": deployment,
"endpoint": "https-metrics",
"image": "sumologic/sumologic-mock:.*",
"job": "kubelet",
"metrics_path": "/metrics/cadvisor",
"namespace": ctxopts.Namespace(ctx),
"node": internal.NodeNameRegex,
"pod_labels_app": deployment,
"pod_labels_pod-template-hash": ".+",
"pod": podList.Items[0].Name,
"replicaset": fmt.Sprintf("%s-.*", deployment),
"service": deployment,
"service.namespace": ctxopts.Namespace(ctx),
"k8s.node.uid": internal.UIDRegex,
"node_labels_beta.kubernetes.io/os": internal.NodeLabelOSRegex,
"node_labels_beta.kubernetes.io/arch": internal.NodeLabelArchRegex,
"node_labels_kubernetes.io/hostname": internal.NodeLabelHostnameRegex,
"node_labels_kubernetes.io/os": internal.NodeLabelOSRegex,
"node_labels_kubernetes.io/arch": internal.NodeLabelArchRegex,
}
expectedLabels = addCollectorSpecificMetricLabels(expectedLabels, releaseName, namespace, metricsCollector)

Expand Down
1 change: 1 addition & 0 deletions tests/integration/helm_k8s_processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func Test_Helm_K8s_Processor(t *testing.T) {
expectedMetrics := internal.DefaultExpectedMetrics
// we have tracing enabled, so check tracing-specific metrics
expectedMetrics = append(expectedMetrics, internal.TracingOtelcolMetrics...)
expectedMetrics = append(expectedMetrics, internal.NodeLabelsMetrics...)

installChecks := []featureCheck{
CheckSumologicSecret(15),
Expand Down
8 changes: 8 additions & 0 deletions tests/integration/internal/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ const (
NodeNameRegex = ".*-control-plane" // node name for KinD TODO: get this from the cluster directly instead
NotUndefinedRegex = "(?!undefined$).*"
EmptyRegex = "^$"
UIDRegex = "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
NodeLabelHostnameRegex = "^[a-zA-Z0-9]([a-zA-Z0-9\\._-]{0,61}[a-zA-Z0-9])?$"
NodeLabelOSRegex = "^(linux|windows|osx)$"
NodeLabelArchRegex = "amd64|arm64"
)

// metrics we expect the receiver to get
Expand Down Expand Up @@ -258,6 +262,10 @@ var (
"otelcol_fileconsumer_reading_files",
"otelcol_fileconsumer_open_files",
}
NodeLabelsMetrics = []string{
"otelcol_otelsvc_k8s_node_updated",
"otelcol_otelsvc_k8s_node_added",
}
TracingOtelcolMetrics = []string{ // not used by any App
"otelcol_loadbalancer_num_backend_updates",
"otelcol_loadbalancer_num_backends",
Expand Down
Loading