forked from rancher/rancher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
templatefilter.go
116 lines (106 loc) · 2.42 KB
/
templatefilter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
111
112
113
114
115
116
package generator
var FilterTemplate = `
{{define "filter-rke"}}
<filter {{ .RkeLogTag }}.**>
@type record_transformer
enable_ruby true
<record>
tag ${tag}
log_type k8s_infrastructure_container
driver rke
component ${tag_suffix[6].split("_")[0]}
container_id ${tag_suffix[6].split(".")[0]}
</record>
</filter>
<filter {{ .RkeLogTag }}.**>
@type prometheus
<metric>
name fluentd_input_status_num_records_total
type counter
desc The total number of incoming records
<labels>
tag ${tag}
hostname ${hostname}
</labels>
</metric>
</filter>
{{end}}
{{define "filter-container"}}
<filter {{ .ContainerLogSourceTag }}.**>
@type kubernetes_metadata
merge_json_log true
preserve_json_log true
</filter>
{{end}}
{{define "filter-custom-tags"}}
<filter {{ .ContainerLogSourceTag }}.**>
@type record_transformer
<record>
tag ${tag}
log_type k8s_normal_container
{{- range $k, $val := .OutputTags }}
{{$k}} {{$val | escapeString}}
{{end}}
</record>
</filter>
{{end}}
{{define "filter-prometheus"}}
<filter {{ .ContainerLogSourceTag }}.**>
@type prometheus
<metric>
name fluentd_input_status_num_records_total
type counter
desc The total number of incoming records
<labels>
tag ${tag}
hostname ${hostname}
</labels>
</metric>
</filter>
{{end}}
{{define "filter-sumo"}}
{{- if eq .CurrentTarget "syslog"}}
{{- if .SyslogConfig.Token}}
<filter {{ .ContainerLogSourceTag }}.** {{ .CustomLogSourceTag}}.** {{ if .IncludeRke }}{{ .RkeLogTag }}.**{{end}} >
@type record_transformer
<record>
tag ${tag} {{.SyslogConfig.Token}}
</record>
</filter>
{{end}}
{{end}}
{{end}}
{{define "filter-exclude-system-component"}}
{{- if not .IncludeRke }}
<filter {{ .ContainerLogSourceTag }}.**>
@type grep
<exclude>
key $.kubernetes.namespace_name
pattern {{.ExcludeNamespace}}
</exclude>
</filter>
{{end}}
{{end}}
{{define "filter-project-namespace"}}
<filter {{ .ContainerLogSourceTag}}.**>
@type record_transformer
enable_ruby true
<record>
tag ${tag}
namespace ${record["kubernetes"]["namespace_name"]}
projectID {{ .ContainerLogSourceTag}}
</record>
</filter>
<filter {{ .ContainerLogSourceTag}}.**>
@type grep
<regexp>
key namespace
pattern {{.GrepNamespace}}
</regexp>
</filter>
<filter {{ .ContainerLogSourceTag}}.**>
@type record_transformer
remove_keys namespace
</filter>
{{end}}
`