diff --git a/.chloggen/fixmetricssourcetypeannotation.yaml b/.chloggen/fixmetricssourcetypeannotation.yaml new file mode 100644 index 0000000000..a7f31d1de7 --- /dev/null +++ b/.chloggen/fixmetricssourcetypeannotation.yaml @@ -0,0 +1,12 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: bug_fix +# The name of the component, or a single word describing the area of concern, (e.g. agent, clusterReceiver, gateway, operator, chart, other) +component: other +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Fixed updating metrics' sourcetype with annotations +# One or more tracking issues related to the change +issues: [] +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: diff --git a/docs/advanced-configuration.md b/docs/advanced-configuration.md index 1414f28efb..c738ea52d1 100644 --- a/docs/advanced-configuration.md +++ b/docs/advanced-configuration.md @@ -563,7 +563,7 @@ Manage Splunk OTel Collector Logging with these supported annotations. * Filter logs using pod and/or namespace annotation * If `logsCollection.containers.useSplunkIncludeAnnotation` is `false` (default: false), set `splunk.com/exclude` annotation to `true` on pod and/or namespace to exclude its logs from ingested. * If `logsCollection.containers.useSplunkIncludeAnnotation` is `true` (default: false), set `splunk.com/include` annotation to `true` on pod and/or namespace to only include its logs from ingested. All other logs will be ignored. -* Use `splunk.com/sourcetype` annotation on pod to overwrite `sourcetype` field. If not set, it is dynamically generated to be `kube:container:CONTAINER_NAME`. +* Use `splunk.com/sourcetype` annotation on pod to overwrite `sourcetype` field. If not set, it is dynamically generated to be `kube:container:CONTAINER_NAME` for logs and defaults to "httpevent" for metrics. ### Performance of native OpenTelemetry logs collection diff --git a/examples/disable-persistence-queue-traces/rendered_manifests/configmap-agent.yaml b/examples/disable-persistence-queue-traces/rendered_manifests/configmap-agent.yaml index 57695a506b..a03fe6ac56 100644 --- a/examples/disable-persistence-queue-traces/rendered_manifests/configmap-agent.yaml +++ b/examples/disable-persistence-queue-traces/rendered_manifests/configmap-agent.yaml @@ -161,6 +161,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/disable-persistence-queue-traces/rendered_manifests/configmap-cluster-receiver.yaml b/examples/disable-persistence-queue-traces/rendered_manifests/configmap-cluster-receiver.yaml index 7a14ecae1f..c6a663b852 100644 --- a/examples/disable-persistence-queue-traces/rendered_manifests/configmap-cluster-receiver.yaml +++ b/examples/disable-persistence-queue-traces/rendered_manifests/configmap-cluster-receiver.yaml @@ -52,6 +52,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/disable-persistence-queue-traces/rendered_manifests/daemonset.yaml b/examples/disable-persistence-queue-traces/rendered_manifests/daemonset.yaml index dc62fee354..99c291bcd2 100644 --- a/examples/disable-persistence-queue-traces/rendered_manifests/daemonset.yaml +++ b/examples/disable-persistence-queue-traces/rendered_manifests/daemonset.yaml @@ -32,7 +32,7 @@ spec: component: otel-collector-agent release: default annotations: - checksum/config: 068897d39969e321b5a814179eddd2f7f737785ba8ff107c45979bcd2a1e788b + checksum/config: 475f8c97681a13e8e30986fdc3baa71eee05a2f3e066c29e0777080a9a8a87c0 kubectl.kubernetes.io/default-container: otel-collector spec: hostNetwork: true diff --git a/examples/disable-persistence-queue-traces/rendered_manifests/deployment-cluster-receiver.yaml b/examples/disable-persistence-queue-traces/rendered_manifests/deployment-cluster-receiver.yaml index 99507a4891..fe946f9ebb 100644 --- a/examples/disable-persistence-queue-traces/rendered_manifests/deployment-cluster-receiver.yaml +++ b/examples/disable-persistence-queue-traces/rendered_manifests/deployment-cluster-receiver.yaml @@ -31,7 +31,7 @@ spec: component: otel-k8s-cluster-receiver release: default annotations: - checksum/config: b5bdd9198d04f9a84b31a870e0f69c61f29a28dc2af003c2682db0d92a951d11 + checksum/config: c238a58b0c8c81f81b1497dcff8d795a79788d35ee239ffafb7ad4f58dc6b09e spec: serviceAccountName: default-splunk-otel-collector nodeSelector: diff --git a/examples/enable-persistence-queue/rendered_manifests/configmap-agent.yaml b/examples/enable-persistence-queue/rendered_manifests/configmap-agent.yaml index 2be23fd51a..d72b36ebc4 100644 --- a/examples/enable-persistence-queue/rendered_manifests/configmap-agent.yaml +++ b/examples/enable-persistence-queue/rendered_manifests/configmap-agent.yaml @@ -161,6 +161,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/enable-persistence-queue/rendered_manifests/configmap-cluster-receiver.yaml b/examples/enable-persistence-queue/rendered_manifests/configmap-cluster-receiver.yaml index 7a14ecae1f..c6a663b852 100644 --- a/examples/enable-persistence-queue/rendered_manifests/configmap-cluster-receiver.yaml +++ b/examples/enable-persistence-queue/rendered_manifests/configmap-cluster-receiver.yaml @@ -52,6 +52,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/enable-persistence-queue/rendered_manifests/daemonset.yaml b/examples/enable-persistence-queue/rendered_manifests/daemonset.yaml index f0f3baba8c..7b5619dfcd 100644 --- a/examples/enable-persistence-queue/rendered_manifests/daemonset.yaml +++ b/examples/enable-persistence-queue/rendered_manifests/daemonset.yaml @@ -32,7 +32,7 @@ spec: component: otel-collector-agent release: default annotations: - checksum/config: 05ef4a80e4010dc707c37364538d5fa1caea6e4ec70e47d40b05d4854604d02a + checksum/config: f1e5fbd7c1b4136ebec743dd00fa834dcb9d6d78c37eed30cff72e4fc0efe22c kubectl.kubernetes.io/default-container: otel-collector spec: hostNetwork: true diff --git a/examples/enable-persistence-queue/rendered_manifests/deployment-cluster-receiver.yaml b/examples/enable-persistence-queue/rendered_manifests/deployment-cluster-receiver.yaml index 99507a4891..fe946f9ebb 100644 --- a/examples/enable-persistence-queue/rendered_manifests/deployment-cluster-receiver.yaml +++ b/examples/enable-persistence-queue/rendered_manifests/deployment-cluster-receiver.yaml @@ -31,7 +31,7 @@ spec: component: otel-k8s-cluster-receiver release: default annotations: - checksum/config: b5bdd9198d04f9a84b31a870e0f69c61f29a28dc2af003c2682db0d92a951d11 + checksum/config: c238a58b0c8c81f81b1497dcff8d795a79788d35ee239ffafb7ad4f58dc6b09e spec: serviceAccountName: default-splunk-otel-collector nodeSelector: diff --git a/examples/multi-metrics/rendered_manifests/configmap-agent.yaml b/examples/multi-metrics/rendered_manifests/configmap-agent.yaml index 8c3ca9f595..a61b04de09 100644 --- a/examples/multi-metrics/rendered_manifests/configmap-agent.yaml +++ b/examples/multi-metrics/rendered_manifests/configmap-agent.yaml @@ -133,6 +133,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/multi-metrics/rendered_manifests/configmap-cluster-receiver.yaml b/examples/multi-metrics/rendered_manifests/configmap-cluster-receiver.yaml index 7a14ecae1f..c6a663b852 100644 --- a/examples/multi-metrics/rendered_manifests/configmap-cluster-receiver.yaml +++ b/examples/multi-metrics/rendered_manifests/configmap-cluster-receiver.yaml @@ -52,6 +52,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/multi-metrics/rendered_manifests/daemonset.yaml b/examples/multi-metrics/rendered_manifests/daemonset.yaml index 9c7bf0ad66..59404ee95f 100644 --- a/examples/multi-metrics/rendered_manifests/daemonset.yaml +++ b/examples/multi-metrics/rendered_manifests/daemonset.yaml @@ -32,7 +32,7 @@ spec: component: otel-collector-agent release: default annotations: - checksum/config: 5fe75d65f83fde093bd36e84d7176c1ed4887c3ce0516aceaf06a25f367ac88f + checksum/config: 96af0d7f6f9dba3b552802d25ca1356f443c35bb3a34492873f004325a1c9fb4 kubectl.kubernetes.io/default-container: otel-collector spec: hostNetwork: true diff --git a/examples/multi-metrics/rendered_manifests/deployment-cluster-receiver.yaml b/examples/multi-metrics/rendered_manifests/deployment-cluster-receiver.yaml index 99507a4891..fe946f9ebb 100644 --- a/examples/multi-metrics/rendered_manifests/deployment-cluster-receiver.yaml +++ b/examples/multi-metrics/rendered_manifests/deployment-cluster-receiver.yaml @@ -31,7 +31,7 @@ spec: component: otel-k8s-cluster-receiver release: default annotations: - checksum/config: b5bdd9198d04f9a84b31a870e0f69c61f29a28dc2af003c2682db0d92a951d11 + checksum/config: c238a58b0c8c81f81b1497dcff8d795a79788d35ee239ffafb7ad4f58dc6b09e spec: serviceAccountName: default-splunk-otel-collector nodeSelector: diff --git a/examples/only-metrics-platform/rendered_manifests/configmap-agent.yaml b/examples/only-metrics-platform/rendered_manifests/configmap-agent.yaml index 75b7c86ba2..385dda26a0 100644 --- a/examples/only-metrics-platform/rendered_manifests/configmap-agent.yaml +++ b/examples/only-metrics-platform/rendered_manifests/configmap-agent.yaml @@ -106,6 +106,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/only-metrics-platform/rendered_manifests/configmap-cluster-receiver.yaml b/examples/only-metrics-platform/rendered_manifests/configmap-cluster-receiver.yaml index 7a14ecae1f..c6a663b852 100644 --- a/examples/only-metrics-platform/rendered_manifests/configmap-cluster-receiver.yaml +++ b/examples/only-metrics-platform/rendered_manifests/configmap-cluster-receiver.yaml @@ -52,6 +52,7 @@ data: annotations: - from: pod key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype - from: namespace key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/examples/only-metrics-platform/rendered_manifests/daemonset.yaml b/examples/only-metrics-platform/rendered_manifests/daemonset.yaml index b9ba7fa89b..0efe599b38 100644 --- a/examples/only-metrics-platform/rendered_manifests/daemonset.yaml +++ b/examples/only-metrics-platform/rendered_manifests/daemonset.yaml @@ -32,7 +32,7 @@ spec: component: otel-collector-agent release: default annotations: - checksum/config: c1d5086a46b85ca0828c7fdd4d35e1b421db0eedbb9ac7b525ebb1a87262f77a + checksum/config: ca910388e71a4073e6934a02abfb92b7c2b25a1be94dd1dc902759dd1f6d0aeb kubectl.kubernetes.io/default-container: otel-collector spec: hostNetwork: true diff --git a/examples/only-metrics-platform/rendered_manifests/deployment-cluster-receiver.yaml b/examples/only-metrics-platform/rendered_manifests/deployment-cluster-receiver.yaml index 99507a4891..fe946f9ebb 100644 --- a/examples/only-metrics-platform/rendered_manifests/deployment-cluster-receiver.yaml +++ b/examples/only-metrics-platform/rendered_manifests/deployment-cluster-receiver.yaml @@ -31,7 +31,7 @@ spec: component: otel-k8s-cluster-receiver release: default annotations: - checksum/config: b5bdd9198d04f9a84b31a870e0f69c61f29a28dc2af003c2682db0d92a951d11 + checksum/config: c238a58b0c8c81f81b1497dcff8d795a79788d35ee239ffafb7ad4f58dc6b09e spec: serviceAccountName: default-splunk-otel-collector nodeSelector: diff --git a/helm-charts/splunk-otel-collector/templates/config/_common.tpl b/helm-charts/splunk-otel-collector/templates/config/_common.tpl index 93f3b39b78..5e6635b66b 100644 --- a/helm-charts/splunk-otel-collector/templates/config/_common.tpl +++ b/helm-charts/splunk-otel-collector/templates/config/_common.tpl @@ -234,6 +234,7 @@ k8sattributes/metrics: metadata: [] annotations: - key: splunk.com/sourcetype + tag_name: com.splunk.sourcetype from: pod - key: splunk.com/metricsIndex tag_name: com.splunk.index diff --git a/test/k8s_logging_tests/test_config_logging.py b/test/k8s_logging_tests/test_config_logging.py index ed83846c4c..9b1ee48e8d 100644 --- a/test/k8s_logging_tests/test_config_logging.py +++ b/test/k8s_logging_tests/test_config_logging.py @@ -81,3 +81,24 @@ def test_metric_index_from_annotations(setup, index, expected): logger.info("Splunk received %s events in the last minute", len(events)) assert len(events) >= expected + +@pytest.mark.parametrize("index,sourcetype,expected", [ + ("test_metrics", "sourcetype-anno", 1) +]) +def test_metric_sourcetype_from_annotations(setup, index, sourcetype, expected): + + ''' + Test that metrics are being assigned the "sourcetype-anno" sourcetype, as defined by splunk.com/sourcetype annotation added during setup + ''' + logger.info("testing for metrics index={0} sourcetype={1} expected={2} event(s)".format(index, sourcetype, expected)) + search_query = "index={0} filter=\"sourcetype={1}\"".format(index, sourcetype) + + events = check_events_from_splunk(start_time="-1h@h", + url=setup["splunkd_url"], + user=setup["splunk_user"], + query=["mpreview {0}".format( + search_query)], + password=setup["splunk_password"]) + logger.info("Splunk received %s events in the last minute", + len(events)) + assert len(events) >= expected \ No newline at end of file