18
18
" clusterroles" " ClusterRole"
19
19
" clusterrolebindings" " ClusterRoleBinding"
20
20
" serviceaccounts" " ServiceAccount"
21
+ " endpoints" " Endpoints"
22
+ " endpointslices" " EndpointSlice"
21
23
22
24
}}
23
25
{{- $arrayOfWatchedResources := keys $resourceMap | sortAlpha }}
@@ -41,6 +43,7 @@ exporters:
41
43
storage : file_storage/sending_queue
42
44
{{- end }}
43
45
timeout : {{ .Values.otel.events.timeout }}
46
+
44
47
extensions :
45
48
{{- if .Values.otel.events.sending_queue.offload_to_disk }}
46
49
file_storage/sending_queue :
@@ -128,12 +131,83 @@ connectors:
128
131
- sw.k8s.cluster.uid
129
132
- k8s.namespace.name
130
133
- k8s.service.name
131
- - entity : KubernetesStatefulSet
134
+ - entity : KubernetesStatefulSet
132
135
id :
133
136
- sw.k8s.cluster.uid
134
137
- k8s.namespace.name
135
138
- k8s.statefulset.name
136
139
{{- end }}
140
+ solarwindsentity/serviceendpointsmapping :
141
+ source_prefix : " source."
142
+ destination_prefix : " dest."
143
+ schema :
144
+ entities :
145
+ - entity : KubernetesService
146
+ id :
147
+ - sw.k8s.cluster.uid
148
+ - k8s.namespace.name
149
+ - k8s.service.name
150
+ - entity : KubernetesDaemonSet
151
+ id :
152
+ - sw.k8s.cluster.uid
153
+ - k8s.namespace.name
154
+ - k8s.daemonset.name
155
+ - entity : KubernetesDeployment
156
+ id :
157
+ - sw.k8s.cluster.uid
158
+ - k8s.namespace.name
159
+ - k8s.deployment.name
160
+ - entity : KubernetesStatefulSet
161
+ id :
162
+ - sw.k8s.cluster.uid
163
+ - k8s.namespace.name
164
+ - k8s.statefulset.name
165
+ - entity : KubernetesReplicaSet
166
+ id :
167
+ - sw.k8s.cluster.uid
168
+ - k8s.namespace.name
169
+ - k8s.replicaset.name
170
+ events :
171
+ relationships :
172
+ - type : KubernetesServiceRoutesTo
173
+ source_entity : KubernetesService
174
+ destination_entity : KubernetesDaemonSet
175
+ conditions : []
176
+ context : " log"
177
+ attributes : []
178
+ action : " update"
179
+ - type : KubernetesServiceRoutesTo
180
+ source_entity : KubernetesService
181
+ destination_entity : KubernetesDeployment
182
+ conditions : []
183
+ context : " log"
184
+ attributes : []
185
+ action : " update"
186
+ - type : KubernetesServiceRoutesTo
187
+ source_entity : KubernetesService
188
+ destination_entity : KubernetesStatefulSet
189
+ conditions : []
190
+ context : " log"
191
+ attributes : []
192
+ action : " update"
193
+ - type : KubernetesServiceRoutesTo
194
+ source_entity : KubernetesService
195
+ destination_entity : KubernetesReplicaSet
196
+ conditions : []
197
+ context : " log"
198
+ attributes : []
199
+ action : " update"
200
+
201
+ routing/manifests :
202
+ default_pipelines : [logs/manifests-export]
203
+ table :
204
+ - context : resource
205
+ pipelines :
206
+ - logs/serviceendpointsmapping
207
+ condition : |
208
+ attributes["sw.k8s.log.type"] == "serviceendpointsmapping"
209
+
210
+ forward/exportserviceendpointsmapping : {}
137
211
138
212
processors :
139
213
k8seventgeneration :
@@ -277,8 +351,12 @@ processors:
277
351
{{- range $index, $resourceName := $arrayOfWatchedResources }}
278
352
{{- $resourceKind := get $resourceMap $resourceName }}
279
353
{{- $prefix := lower $resourceKind }}
280
- - set(log.attributes["k8s.{{$prefix}}.name"], log.body["metadata"]["name"]) where log.body["kind"] == "{{$resourceKind}}"
354
+ - set(log.attributes["k8s.{{$prefix}}.name"], log.body["metadata"]["name"]) where log.body["metadata"]["name"] != nil and log.body[" kind"] == "{{$resourceKind}}"
281
355
{{- end }}
356
+ # rename k8s.endpoints.name to k8s.endpoint.name if exists
357
+ - set(log.attributes["k8s.endpoint.name"], log.attributes["k8s.endpoints.name"]) where log.attributes["k8s.endpoints.name"] != nil
358
+ - delete_key(log.attributes, "k8s.endpoints.name") where log.attributes["k8s.endpoints.name"] != nil
359
+
282
360
- set(log.attributes["k8s.namespace.name"], log.body["metadata"]["namespace"])
283
361
- set(log.attributes["k8s.ingress.name"], log.body["metadata"]["name"]) where log.body["kind"] == "Ingress" or log.body["kind"] == "VirtualService"
284
362
- set(log.attributes["sw.k8s.ingress.type"], log.body["kind"]) where log.body["kind"] == "Ingress" or log.body["kind"] == "VirtualService"
@@ -289,6 +367,33 @@ processors:
289
367
- delete_key(log.attributes, "k8s.resource.name")
290
368
- delete_key(log.attributes, "event.name")
291
369
- delete_key(log.attributes, "event.domain")
370
+
371
+ groupbyattrs/serviceendpointsmapping :
372
+ keys :
373
+ - sw.k8s.cluster.uid
374
+ - sw.k8s.workload.ip
375
+ - k8s.service.name
376
+ - k8s.namespace.name
377
+
378
+ transform/serviceendpointsmapping-renamepodip :
379
+ error_mode : ignore
380
+ log_statements :
381
+ - statements :
382
+ - set(resource.attributes["k8s.pod.ip"], resource.attributes["sw.k8s.workload.ip"]) where resource.attributes["sw.k8s.log.type"] == "serviceendpointsmapping" and resource.attributes["sw.k8s.workload.ip"] != nil
383
+
384
+ transform/serviceendpointsmapping :
385
+ error_mode : ignore
386
+ log_statements :
387
+ - statements :
388
+ - set(resource.attributes["source.k8s.service.name"], resource.attributes["k8s.service.name"]) where resource.attributes["k8s.service.name"] != nil
389
+ - set(resource.attributes["source.k8s.namespace.name"], resource.attributes["k8s.namespace.name"]) where resource.attributes["k8s.namespace.name"] != nil
390
+
391
+ - set(resource.attributes["dest.k8s.namespace.name"], resource.attributes["k8s.namespace.name"]) where resource.attributes["k8s.namespace.name"] != nil
392
+ - set(resource.attributes["dest.k8s.deployment.name"], resource.attributes["k8s.deployment.name"]) where resource.attributes["k8s.deployment.name"] != nil
393
+ - set(resource.attributes["dest.k8s.statefulset.name"], resource.attributes["k8s.statefulset.name"]) where resource.attributes["k8s.statefulset.name"] != nil
394
+ - set(resource.attributes["dest.k8s.replicaset.name"], resource.attributes["k8s.replicaset.name"]) where resource.attributes["k8s.replicaset.name"] != nil
395
+ - set(resource.attributes["dest.k8s.daemonset.name"], resource.attributes["k8s.daemonset.name"]) where resource.attributes["k8s.daemonset.name"] != nil
396
+
292
397
transform/scope :
293
398
log_statements :
294
399
- statements :
@@ -316,6 +421,8 @@ processors:
316
421
- k8s.clusterrole.name
317
422
- k8s.clusterrolebinding.name
318
423
- k8s.serviceaccount.name
424
+ - k8s.endpoint.name
425
+ - k8s.endpointslice.name
319
426
320
427
resource/events :
321
428
attributes :
@@ -431,6 +538,18 @@ processors:
431
538
k8sattributes :
432
539
{{ include "common.k8s-instrumentation" . | indent 4 }}
433
540
541
+ logdedup/entitystateevents :
542
+ interval : {{ quote .Values.otel.manifests.pull_every }}
543
+ conditions :
544
+ - instrumentation_scope.attributes["otel.entity.event_as_log"] == true
545
+ include_fields :
546
+ - attributes.otel.entity.event.type
547
+ - attributes.otel.entity_relationship.source_entity.id
548
+ - attributes.otel.entity_relationship.destination_entity.id
549
+ - attributes.otel.entity_relationship.type
550
+ - attributes.otel.entity_relationship.source_entity.type
551
+ - attributes.otel.entity_relationship.destination_entity.type
552
+
434
553
receivers :
435
554
k8s_events :
436
555
{{- $root := . }}
@@ -517,6 +636,7 @@ service:
517
636
exporters :
518
637
- otlp
519
638
{{- end }}
639
+
520
640
logs/manifests :
521
641
receivers :
522
642
- swok8sobjects
@@ -525,26 +645,47 @@ service:
525
645
- transform/manifest
526
646
- groupbyattrs/manifest
527
647
- transform/set_labels_and_annotations_for_entities
648
+ {{- if not (and .Values.otel.events.enabled .Values.otel.manifests.enabled) }}
649
+ - filter/k8s_collector_config_include
650
+ {{- end }}
528
651
- transform/extract_resource_attrs_from_manifests
529
652
- transform/stringify_body
530
653
- resource/manifest
531
654
- resourcedetection/providers
532
- - k8sattributes
533
655
- k8seventgeneration
534
- {{- if not (and .Values.otel.events.enabled .Values.otel.manifests.enabled) }}
535
- - filter/k8s_collector_config_include
536
- {{- end }}
656
+ - groupbyattrs/serviceendpointsmapping
657
+ - transform/serviceendpointsmapping-renamepodip
658
+ - k8sattributes
537
659
{{- if eq (include "isNamespacesFilterEnabled" .) "true" }}
538
660
- filter/namespaces
539
- {{- end }}
661
+ {{- end }}
540
662
{{- if .Values.otel.manifests.filter }}
541
663
- filter/manifests
542
664
{{- end }}
665
+ exporters :
666
+ - routing/manifests
667
+
668
+ logs/serviceendpointsmapping :
669
+ receivers :
670
+ - routing/manifests
671
+ processors :
672
+ - memory_limiter
673
+ - transform/serviceendpointsmapping
674
+ exporters :
675
+ - solarwindsentity/serviceendpointsmapping
676
+
677
+ logs/manifests-export :
678
+ receivers :
679
+ - routing/manifests
680
+ - solarwindsentity/serviceendpointsmapping
681
+ processors :
682
+ - memory_limiter
683
+ - logdedup/entitystateevents
543
684
- transform/scope
544
685
- batch
545
686
exporters :
546
687
- otlp
547
-
688
+
548
689
{{- if and .Values.otel.manifests.enabled .Values.otel.manifests.keepalive_events.enabled }}
549
690
logs/manifests-keepalive :
550
691
receivers :
@@ -553,15 +694,15 @@ service:
553
694
- memory_limiter
554
695
- transform/manifest
555
696
- groupbyattrs/manifest
556
- - resource/manifest
557
- - k8sattributes
558
- - k8seventgeneration
559
697
{{- if not (and .Values.otel.events.enabled .Values.otel.manifests.enabled) }}
560
698
- filter/k8s_collector_config_include
561
699
{{- end }}
700
+ - resource/manifest
701
+ - k8sattributes
702
+ - k8seventgeneration
562
703
{{- if eq (include "isNamespacesFilterEnabled" .) "true" }}
563
704
- filter/namespaces
564
- {{- end }}
705
+ {{- end }}
565
706
{{- if .Values.otel.manifests.filter }}
566
707
- filter/manifests
567
708
{{- end }}
@@ -578,7 +719,7 @@ service:
578
719
exporters :
579
720
- otlp
580
721
{{- end }}
581
-
722
+
582
723
telemetry :
583
724
{{- if .Values.otel.events.telemetry.logs.enabled }}
584
725
logs :
0 commit comments