56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/fluent/plugin/kubernetes_metadata_common.rb', line 56
def parse_pod_metadata(pod_object)
labels = ''
labels = syms_to_strs(pod_object[:metadata][:labels].to_h) unless (@skip_labels || @skip_pod_labels)
annotations = match_annotations(syms_to_strs(pod_object[:metadata][:annotations].to_h))
container_meta = {}
begin
pod_object[:status][:containerStatuses].each do |container_status|
container_id = (container_status[:containerID]||"").sub(%r{^[-_a-zA-Z0-9]+://}, '')
key = container_status[:name]
container_meta[key] = if @skip_container_metadata
{
'name' => container_status[:name]
}
else
{
'name' => container_status[:name],
'image' => container_status[:image],
'image_id' => container_status[:imageID],
:containerID => container_id
}
end
end if pod_object[:status] && pod_object[:status][:containerStatuses]
rescue StandardError=>e
log.warn("parsing container meta information failed for: #{pod_object[:metadata][:namespace]}/#{pod_object[:metadata][:name]}: #{e}")
end
ownerrefs_meta = []
begin
pod_object[:metadata][:ownerReferences].each do |owner_reference|
ownerrefs_meta.append({
'kind' => owner_reference[:kind],
'name' => owner_reference[:name]
})
end
rescue StandardError => e
log.warn("parsing ownerrefs meta information failed for: #{pod_object[:metadata][:namespace]}/#{pod_object[:metadata][:name]}: #{e}")
end if @include_ownerrefs_metadata && pod_object[:metadata][:ownerReferences]
kubernetes_metadata = {
'namespace_name' => pod_object[:metadata][:namespace],
'pod_id' => pod_object[:metadata][:uid],
'pod_name' => pod_object[:metadata][:name],
'pod_ip' => pod_object[:status][:podIP],
'containers' => syms_to_strs(container_meta),
'host' => pod_object[:spec][:nodeName],
'ownerrefs' => (ownerrefs_meta if @include_ownerrefs_metadata)
}.compact
kubernetes_metadata['annotations'] = annotations unless annotations.empty?
kubernetes_metadata['labels'] = labels unless labels.empty?
kubernetes_metadata['master_url'] = @kubernetes_url unless @skip_master_url
kubernetes_metadata
end
|