diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 63de9a4bfa2..70fa946cd7e 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -79,6 +79,7 @@ https://github.com/elastic/beats/compare/v6.4.0...master[Check the HEAD diff] - Add docker diskio stats on Windows. {issue}6815[6815] {pull}8126[8126] - Fix incorrect type conversion of average response time in Haproxy dashboards {pull}8404[8404] - Fix dropwizard module parsing of metric names. {issue}8365[8365] {pull}6385[8385] +- Avoid mapping issues in kubernetes module. {pull}8487[8487] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 7e88c762286..e8ca4026658 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -8249,6 +8249,27 @@ type: long Count field records the number of times the particular event has occurred +-- + + +*`kubernetes.event.timestamp.first_occurrence`*:: ++ +-- +type: date + +Timestamp of first occurrence of event + + +-- + +*`kubernetes.event.timestamp.last_occurrence`*:: ++ +-- +type: date + +Timestamp of last occurrence of event + + -- *`kubernetes.event.message`*:: diff --git a/metricbeat/module/kubernetes/container/data.go b/metricbeat/module/kubernetes/container/data.go index b48677ec480..93e6f9bc620 100644 --- a/metricbeat/module/kubernetes/container/data.go +++ b/metricbeat/module/kubernetes/container/data.go @@ -52,8 +52,7 @@ func eventMapping(content []byte, perfMetrics *util.PerfMetricsCache) ([]common. }, }, - "name": container.Name, - "start_time": container.StartTime, + "name": container.Name, "cpu": common.MapStr{ "usage": common.MapStr{ @@ -114,6 +113,10 @@ func eventMapping(content []byte, perfMetrics *util.PerfMetricsCache) ([]common. }, } + if container.StartTime != "" { + containerEvent.Put("start_time", container.StartTime) + } + if nodeCores > 0 { containerEvent.Put("cpu.usage.node.pct", float64(container.CPU.UsageNanoCores)/1e9/nodeCores) } diff --git a/metricbeat/module/kubernetes/event/_meta/fields.yml b/metricbeat/module/kubernetes/event/_meta/fields.yml index 82f09cfdf1f..d33a70e79c9 100644 --- a/metricbeat/module/kubernetes/event/_meta/fields.yml +++ b/metricbeat/module/kubernetes/event/_meta/fields.yml @@ -9,18 +9,17 @@ type: long description: > Count field records the number of times the particular event has occurred + - name: timestamp + type: group fields: - - name: timestamp - type: group - fields: - - name: first_occurrence - type: date - description: > - Timestamp of first occurrence of event - - name: last_occurrence - type: date - description: > - Timestamp of last occurrence of event + - name: first_occurrence + type: date + description: > + Timestamp of first occurrence of event + - name: last_occurrence + type: date + description: > + Timestamp of last occurrence of event - name: message type: keyword description: > diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 1e92775cc15..85e0db476e7 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/node/data.go b/metricbeat/module/kubernetes/node/data.go index fe86dd732de..0d055880ee6 100644 --- a/metricbeat/module/kubernetes/node/data.go +++ b/metricbeat/module/kubernetes/node/data.go @@ -34,8 +34,7 @@ func eventMapping(content []byte) (common.MapStr, error) { node := summary.Node nodeEvent := common.MapStr{ - "name": node.NodeName, - "start_time": node.StartTime, + "name": node.NodeName, "cpu": common.MapStr{ "usage": common.MapStr{ @@ -105,5 +104,10 @@ func eventMapping(content []byte) (common.MapStr, error) { }, }, } + + if node.StartTime != "" { + nodeEvent.Put("start_time", node.StartTime) + } + return nodeEvent, nil } diff --git a/metricbeat/module/kubernetes/pod/data.go b/metricbeat/module/kubernetes/pod/data.go index 91e8b184559..1619b172ef9 100644 --- a/metricbeat/module/kubernetes/pod/data.go +++ b/metricbeat/module/kubernetes/pod/data.go @@ -58,8 +58,7 @@ func eventMapping(content []byte, perfMetrics *util.PerfMetricsCache) ([]common. "name": node.NodeName, }, }, - "name": pod.PodRef.Name, - "start_time": pod.StartTime, + "name": pod.PodRef.Name, "cpu": common.MapStr{ "usage": common.MapStr{ @@ -85,6 +84,10 @@ func eventMapping(content []byte, perfMetrics *util.PerfMetricsCache) ([]common. }, } + if pod.StartTime != "" { + podEvent.Put("start_time", pod.StartTime) + } + if coresLimit > nodeCores { coresLimit = nodeCores } diff --git a/metricbeat/module/kubernetes/system/data.go b/metricbeat/module/kubernetes/system/data.go index 2ade2e596c2..6cf09f85335 100644 --- a/metricbeat/module/kubernetes/system/data.go +++ b/metricbeat/module/kubernetes/system/data.go @@ -44,8 +44,7 @@ func eventMapping(content []byte) ([]common.MapStr, error) { "name": node.NodeName, }, }, - "container": syscontainer.Name, - "start_time": syscontainer.StartTime, + "container": syscontainer.Name, "cpu": common.MapStr{ "usage": common.MapStr{ "nanocores": syscontainer.CPU.UsageNanoCores, @@ -68,6 +67,11 @@ func eventMapping(content []byte) ([]common.MapStr, error) { "majorpagefaults": syscontainer.Memory.MajorPageFaults, }, } + + if syscontainer.StartTime != "" { + containerEvent.Put("start_time", syscontainer.StartTime) + } + events = append(events, containerEvent) }