#elasticsearch #elastic-stack #metricbeat
#эластичный поиск #эластичный пакет #метрическое биение
Вопрос:
Мне нужно получить доступ к полю «вид», и оно вложено, я поделился тем, как выглядят данные в json. Я хочу использовать процессор набора в конвейерах узлов приема и добавить новое поле, если оно содержит модуль значений. Как мне этого добиться?
"kubernetes": { "event": { "type": "Normal", "count": 1, "source": { "host": "worker", "component": "kubelet" }, "involved_object": { "uid": "1d7add39-6569-450t-a3dc-886e063bfcca", "api_version": "v1", "resource_version": "92916573314", "name": "hello-world", "kind": "Pod" } } }
Попытался использовать приведенное ниже условие в заданном процессоре, но оно не работает
ctx.kubernetes?.event?.involved_object?.kind=="Pod" ctx.kubernetes.event.involved_object.kind=="Pod"
Поглощающий трубопровод, который я создал :
PUT _ingest/pipeline/prometheus-kubify { "processors": [ { "set": { "field": "kubernetes.namespace", "ignore_empty_value": true, "if": "ctx.metricset.name=="query"", "ignore_failure": true, "copy_from": "prometheus.labels.namespace" } }, { "set": { "field": "kubernetes.pod.name", "copy_from": "prometheus.labels.pod", "ignore_empty_value": true, "if": "ctx.metricset.name=="query"", "ignore_failure": true } }, { "set": { "field": "kubernetes.container.name", "copy_from": "prometheus.labels.container", "ignore_empty_value": true, "if": "ctx.metricset.name=="query"", "ignore_failure": true } }, { "set": { "field": "kubernetes.namespace", "copy_from": "kubernetes.event.metadata.namespace", "ignore_empty_value": true, "if": "ctx.kubernetes.event.involved_object.kind=="Pod"", "ignore_failure": true } }, { "set": { "field": "kubernetes.pod.name", "ignore_empty_value": true, "if": "ctx.kubernetes.event.involved_object.kind=="Pod"", "ignore_failure": true, "copy_from": "kubernetes.event.involved_object.name" } }, { "set": { "field": "kubernetes.deployment.name", "copy_from": "kubernetes.event.involved_object.name", "ignore_empty_value": true, "if": "ctx.kubernetes.event.involved_object.kind=="Deployment"", "ignore_failure": true } } ] }
Комментарии:
1. Ваше состояние выглядит правильным, что заставляет вас думать, что это не сработало?
2. первый, верно? Он работает, когда я провожу тестирование в конвейере узлов приема, но когда я сохраняю его и регистрируюсь, обнаруживается, что он работает только для 10% данных.
3. Затем это работает, и в остальных 90% данных есть что-то, для чего это условие не выполняется. Легко выбрать один из этих документов и выяснить, почему. Покажи нам один
4. Я попытался выбрать тот, который не работает, но когда я тестирую тот же документ, он работает нормально. Может ли это быть проблемой с узлом приема ?
5. Может быть, покажите свой конвейер приема, может быть, это другой процессор, вызывающий это?