forked from rancher/rancher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
templatefilter.go
144 lines (133 loc) · 2.88 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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
</filter>
{{end}}
{{define "filter-custom-tags"}}
{{- if .OutputTags}}
<filter {{ .ContainerLogSourceTag }}.**>
@type record_transformer
<record>
tag ${tag}
{{- range $k, $val := .OutputTags }}
{{$k}} {{$val | escapeString}}
{{end}}
</record>
</filter>
{{end}}
{{end}}
{{define "filter-project-custom-tags"}}
<filter {{ .ContainerLogSourceTag }}.**>
@type record_transformer
<record>
tag ${tag}
log_type k8s_normal_container
projectID {{ .ContainerLogSourceTag}}
{{- 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-add-projectid"}}
<filter {{ .ContainerLogSourceTag}}.**>
@type record_transformer
<record>
tag ${tag}
log_type k8s_normal_container
projectID {{ .ContainerLogSourceTag}}
</record>
</filter>
{{end}}
{{define "filter-add-logtype"}}
<filter {{ .ContainerLogSourceTag}}.**>
@type record_transformer
<record>
tag ${tag}
log_type k8s_normal_container
</record>
</filter>
{{end}}
{{define "filter-json"}}
{{- if .EnableJSONParsing}}
<filter cluster.**>
@type parser
<parse>
@type multi_format
<pattern>
format json
</pattern>
<pattern>
format none
</pattern>
</parse>
key_name log
reserve_data true
</filter>
{{end}}
{{end}}
`