Skip to content

Commit 52c8a83

Browse files
committed
conf: parser: Add YAML versions of all existing conf/parser*conf files
These have been run through the test suite to make sure fluent-bit produces identical output using them. Signed-off-by: Hank Leininger <[email protected]>
1 parent d307190 commit 52c8a83

10 files changed

+414
-0
lines changed

conf/parser_custom.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
parsers:
2+
- name: rabbitmq
3+
# https://rubular.com/r/6ZCuwV4Xa7nfA3
4+
format: regex
5+
regex: (?<date>[^ ]+)\s(?<time>[^ ]+)\s\[(?<log_level>[^ \]]*)\]\s(?<PID>[^ ]*)\s(?<msg>((([a-zA-Z]*\s+)+[^ ]*)+)+)
6+
7+
- name: neo4j
8+
# https://rubular.com/r/jWfJIOMKr2LgcO
9+
format: regex
10+
regex: (?<date>[^ ]*) (?<time>[^ ]*) (?<log_level>[^ ]*)\s(?<msg>([^ ]*\s+[^ ]*)+)
11+
12+
- name: external-dns
13+
# https://rubular.com/r/U8VbByp0oRPLU6
14+
format: regex
15+
regex: ([^ ])\"(?<time>[^ ]+)\"\s([^ ]+)\=(?<log_level>[.+a-zA-Z]+)\s([^ ]+)\"(?<msg>([^ ]*\s+[^ ]*\s[a-zA-Z0-9]*)+)

conf/parsers.yaml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
parsers:
2+
- name: apache
3+
format: regex
4+
regex: '^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$'
5+
time_key: time
6+
time_format: '%d/%b/%Y:%H:%M:%S %z'
7+
8+
- name: apache2
9+
format: regex
10+
regex: '^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>.*)")?$'
11+
time_key: time
12+
time_format: '%d/%b/%Y:%H:%M:%S %z'
13+
14+
- name: apache_error
15+
format: regex
16+
regex: '^\[[^ ]* (?<time>[^\]]*)\] \[(?<level>[^\]]*)\](?: \[pid (?<pid>[^\]]*)\])?( \[client (?<client>[^\]]*)\])? (?<message>.*)$'
17+
18+
- name: nginx
19+
format: regex
20+
regex: '^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")'
21+
time_key: time
22+
time_format: '%d/%b/%Y:%H:%M:%S %z'
23+
24+
- name: k8s-nginx-ingress
25+
# https://rubular.com/r/IhIbCAIs7ImOkc
26+
format: regex
27+
regex: '^(?<host>[^ ]*) - (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*) "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<request_length>[^ ]*) (?<request_time>[^ ]*) \[(?<proxy_upstream_name>[^ ]*)\] (\[(?<proxy_alternative_upstream_name>[^ ]*)\] )?(?<upstream_addr>[^ ]*) (?<upstream_response_length>[^ ]*) (?<upstream_response_time>[^ ]*) (?<upstream_status>[^ ]*) (?<reg_id>[^ ]*).*$'
28+
time_key: time
29+
time_format: '%d/%b/%Y:%H:%M:%S %z'
30+
31+
- name: json
32+
format: json
33+
time_key: time
34+
time_format: '%d/%b/%Y:%H:%M:%S %z'
35+
36+
- name: logfmt
37+
format: logfmt
38+
39+
- name: docker
40+
format: json
41+
time_key: time
42+
time_format: '%Y-%m-%dT%H:%M:%S.%L'
43+
time_keep: On
44+
# --
45+
# Since Fluent Bit v1.2, if you are parsing Docker logs and using
46+
# the Kubernetes filter, it's not longer required to decode the
47+
# 'log' key.
48+
#
49+
# Command | Decoder | Field | Optional Action
50+
# =============|==================|=================
51+
#Decode_Field_As json log
52+
#
53+
54+
- name: docker-daemon
55+
format: regex
56+
regex: time="(?<time>[^ ]*)" level=(?<level>[^ ]*) msg="(?<msg>[^ ].*)"
57+
time_key: time
58+
time_format: '%Y-%m-%dT%H:%M:%S.%L'
59+
time_keep: On
60+
61+
- name: syslog-rfc5424
62+
format: regex
63+
regex: ^\<(?<pri>[0-9]{1,5})\>1 (?<time>[^ ]+) (?<host>[^ ]+) (?<ident>[^ ]+) (?<pid>[-0-9]+) (?<msgid>[^ ]+) (?<extradata>(\[(.*?)\]|-)) (?<message>.+)$
64+
time_key: time
65+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
66+
time_keep: On
67+
68+
- name: syslog-rfc3164-local
69+
format: regex
70+
regex: '^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$'
71+
time_key: time
72+
time_format: '%b %d %H:%M:%S'
73+
time_keep: On
74+
75+
- name: syslog-rfc3164
76+
format: regex
77+
regex: '/^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$/'
78+
time_key: time
79+
time_format: '%b %d %H:%M:%S'
80+
time_keep: On
81+
82+
- name: mongodb
83+
format: regex
84+
regex: '^(?<time>[^ ]*)\s+(?<severity>\w)\s+(?<component>[^ ]+)\s+\[(?<context>[^\]]+)]\s+(?<message>.*?) *(?<ms>(\d+))?(:?ms)?$'
85+
time_format: '%Y-%m-%dT%H:%M:%S.%L'
86+
time_keep: On
87+
time_key: time
88+
89+
- name: envoy
90+
# https://rubular.com/r/0VZmcYcLWMGAp1
91+
format: regex
92+
regex: '^\[(?<start_time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)? (?<protocol>\S+)" (?<code>[^ ]*) (?<response_flags>[^ ]*) (?<bytes_received>[^ ]*) (?<bytes_sent>[^ ]*) (?<duration>[^ ]*) (?<x_envoy_upstream_service_time>[^ ]*) "(?<x_forwarded_for>[^ ]*)" "(?<user_agent>[^\"]*)" "(?<request_id>[^\"]*)" "(?<authority>[^ ]*)" "(?<upstream_host>[^ ]*)"'
93+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
94+
time_keep: On
95+
time_key: start_time
96+
97+
- name: istio-envoy-proxy
98+
# https://rubular.com/r/hbsTIxFFMozLmh
99+
format: regex
100+
regex: '^\[(?<start_time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)? (?<protocol>\S+)" (?<response_code>[^ ]*) (?<response_flags>[^ ]*) (?<response_code_details>[^ ]*) (?<connection_termination_details>[^ ]*) "(?<upstream_transport_failure_reason>[^ ]*)" (?<bytes_received>[^ ]*) (?<bytes_sent>[^ ]*) (?<duration>[^ ]*) (?<x_envoy_upstream_service_time>[^ ]*) "(?<x_forwarded_for>[^ ]*)" "(?<user_agent>[^\"]*)" "(?<x_request_id>[^\"]*)" "(?<authority>[^ ]*)" "(?<upstream_host>[^ ]*)" (?<upstream_cluster>[^ ]*) (?<upstream_local_address>[^ ]*) (?<downstream_local_address>[^ ]*) (?<downstream_remote_address>[^ ]*) (?<requested_server_name>[^ ]*) (?<route_name>[^ ]*)$'
101+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
102+
time_keep: On
103+
time_key: start_time
104+
105+
- name: cri
106+
# https://rubular.com/r/tjUt3Awgg4
107+
format: regex
108+
regex: ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<message>.*)$
109+
time_key: time
110+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
111+
time_keep: On
112+
113+
- name: kube-custom
114+
format: regex
115+
regex: '(?<tag>[^.]+)?\.?(?<pod_name>[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?<namespace_name>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$'
116+
117+
- name: kmsg-netfilter-log
118+
# Examples: TCP: https://rubular.com/r/Q8YY6fHqlqwGI0 UDP: https://rubular.com/r/B0ID69H9FvN0tp
119+
format: regex
120+
regex: '^\<(?<pri>[0-9]{1,5})\>1 (?<time>[^ ]+) (?<host>[^ ]+) kernel - - - \[[0-9\.]*\] (?<logprefix>[^ ]*)\s?IN=(?<in>[^ ]*) OUT=(?<out>[^ ]*) MAC=(?<macsrc>[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}):(?<macdst>[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}):(?<ethtype>[0-9a-f]{2}:[0-9a-f]{2}) SRC=(?<saddr>[^ ]*) DST=(?<daddr>[^ ]*) LEN=(?<len>[^ ]*) TOS=(?<tos>[^ ]*) PREC=(?<prec>[^ ]*) TTL=(?<ttl>[^ ]*) ID=(?<id>[^ ]*) (D*F*)\s*PROTO=(?<proto>[^ ]*)\s?((SPT=)?(?<sport>[0-9]*))\s?((DPT=)?(?<dport>[0-9]*))\s?((LEN=)?(?<protolen>[0-9]*))\s?((WINDOW=)?(?<window>[0-9]*))\s?((RES=)?(?<res>0?x?[0-9]*))\s?(?<flag>[^ ]*)\s?((URGP=)?(?<urgp>[0-9]*))'
121+
time_key: time
122+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'

conf/parsers_ambassador.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Ambassador - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy https://www.getambassador.io
2+
#
3+
4+
parsers:
5+
- name: ambassador
6+
format: regex
7+
regex: '^(?<type>\S+) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>(?:[^\"]|\\.)*?)(?: +\S*)?) (?<protocol>\S+)?" (?<response_code>\S+) (?<response_flags>\S+) (?<bytes_received>\S+) (?<bytes_sent>\S+) (?<duration>\S+) (?<x_envoy_upstream_service_time>\S+) "(?<x_forwarded_for>[^\"]*)" "(?<user_agent>[^\"]*)" "(?<x_request_id>[^\"]*)" "(?<authority>[^\"]*)" "(?<upstream_host>[^\"]*)"'

conf/parsers_cinder.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
parsers:
2+
- name: ceph
3+
# https://rubular.com/r/IvZVElTgNl
4+
format: regex
5+
regex: '^(?<log_time>[^ ][-.\d\+:T]+[ ]*[.:\d]*)\s+(?<message>.*)$'
6+
time_format: '%Y-%m-%d %H:%M:%S.%L'
7+
time_keep: Off
8+
time_key: log_time

conf/parsers_extra.yaml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# Extra set of common parsers
2+
#
3+
4+
parsers:
5+
- name: crowbar
6+
# https://rubular.com/r/cCVd1HLCAO
7+
format: regex
8+
regex: '^.*\[(?<log_time>[^ ][-.\d\+:]+T[:\d]*)([^\]])*?\]\s+?(?<severity>[^ ]\w+)([\s-]*):?\s+(?<message>.*)'
9+
time_format: '%Y-%m-%dT%H:%M:%S'
10+
time_keep: Off
11+
time_key: log_time
12+
13+
- name: chefclient
14+
# https://rubular.com/r/frDgnElXW9
15+
format: regex
16+
regex: '^\[(?<log_time>[^ ][-.\d\+:]+T[:\d]*)([^\]])*?\]\s+(?<severity>[^ ]\w+):\s+(?<message>.*)$'
17+
time_format: '%Y-%m-%dT%H:%M:%S'
18+
time_keep: Off
19+
time_key: log_time
20+
21+
- name: mysql_error
22+
format: regex
23+
#regex: '^(?<log_time>[^ +][ -:0-9TZ]+|[[:upper:]][[:lower:]]{2})(\+\d+:\d+[TZ]*){0,1}\s*(?<myid>[^ ]\d+)\s+\[(?<severity>[^ ]\w+)\](\s+(?<subsystem>[^ ]\w+):){0,1}\s+(?<message>.*)$'
24+
regex: '^(?<log_time>[^ +][-\d]+[\ T]*[:\dZ]+)\s*(?<myid>[^ ]\d+)\s+\[(?<severity>[^ ]\w+)\](\s+(?<subsystem>[^ ]\w+):){0,1}\s+(?<message>.*)$'
25+
time_format: '%Y-%m-%d %H:%M:%S'
26+
time_keep: Off
27+
time_key: log_time
28+
29+
- name: mysql_slow
30+
format: regex
31+
regex: '^# User\@Host:\s+(?<user>[^\@][\w\[\]]+)[@\s]+(?<dbhost>[^ ][-.\w]+)\s+(\[(?<dbhost_address>[.\d]+)\]){0,1}\s+(?<message>.*)$'
32+
33+
- name: pacemaker
34+
format: regex
35+
regex: '^\s*(?<log_time>[^ ]* {1,2}[^ ]* [^ ]*) \[(?<pid>\d+)\] (?<node>[\-\w]*)\s*(?<component>\w*):\s+(?<severity>\w+):\s+(?<message>.*)$'
36+
#time_format: '%Y-%m-%dT%H:%M:%S'
37+
time_format: '%b %d %H:%M:%S'
38+
time_keep: Off
39+
time_key: log_time
40+
#types: 'pid:integer'
41+
#
42+
43+
- name: rabbitmq
44+
format: regex
45+
regex: '^=(?<severity>[^ ]\w+)\s+REPORT[=\s]*(?<log_time>[^ =][-:.\d\w]+)[\s=]+(?<message>.*)$'
46+
time_format: '%d-%b-%Y::%H:%M:%S'
47+
time_keep: Off
48+
time_key: log_time
49+
50+
- name: http_statement
51+
format: regex
52+
regex: '^.*((?<req_method>GET|POST|PUT|DELETE|CONNECT|OPTIONS|HEAD[^ ]\w+)\s*(?<req_path>[^ ][-._?=%&\/[:alnum:]]*)\s*(?<req_protocol>[^ ][.\/\dHTFSP]+){0,1})([''"\s]*){0,1}((\s*status:\s*(?<req_status>[^ ]\d+)){0,1}(\s*len:\ (?<req_len>[^ ]\d+)){0,1}(\s*time:\s*(?<req_log_time>[^ ][.\d]+)){0,1}(\s*microversion:\s*(?<req_mver>[^ ][.\d]+)){0,1}){0,1}$'
53+
54+
- name: universal
55+
format: regex
56+
regex: ^(?<message>.*)$
57+
58+
- name: uuid
59+
format: regex
60+
regex: (?<uuid>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})
61+
#UUID v1 :
62+
#/^[0-9A-F]{8}-[0-9A-F]{4}-[1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
63+
#UUID v2 :
64+
#/^[0-9A-F]{8}-[0-9A-F]{4}-[2][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
65+
#UUID v3 :
66+
#/^[0-9A-F]{8}-[0-9A-F]{4}-[3][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
67+
#UUID v4 :
68+
#/^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
69+
#UUID v5 :
70+
#/^[0-9A-F]{8}-[0-9A-F]{4}-[5][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
71+
#
72+
# Parse IP Tables rules - this one regex should capture pretty much any IP Tables rule and split it into the various fields
73+
74+
- name: iptables
75+
format: regex
76+
regex: '\[(?<rule_chain>\w*)-(?<rule_name>\w*)-(?<accept_or_drop>\w*)\]IN=(?<in_interface>[\w.]+)? OUT=(?<out_interface>[\w.]+)? MAC=(?<mac_address>[\w:]+)? SRC=(?<source>(?:[0-9]{1,3}\.){3}[0-9]{1,3}) DST=(?<dest>(?:[0-9]{1,3}\.){3}[0-9]{1,3}) LEN=(?<pkt_len>\d+) TOS=(?<pkt_tos>[\w\d]+) PREC=(?<pkt_prec>[\w\d]+) TTL=(?<pkt_ttl>\d+) ID=(?<pkt_id>\d+)\s?(?<pkg_frg>[A-Z\s].?)\s?PROTO=(?<protocol>[\w\d]+) (SPT=(?<source_port>.*) DPT=(?<dest_port>.*) (LEN=(?<proto_pkt_len>\w+)?)?(WINDOW=(?<proto_window_size>\d+) RES=(?<pkt_res>\w+)? (?<pkt_type>\w+)\s((?<pkt_flag>\w+)?)\s?URGP=(?<pkg_urgency>\d))? )?(TYPE=(?<pkt_icmp_type>\d+) CODE=(?<pkt_icmp_code>\d+) ID=(?<pkt_icmp_id>\d+) SEQ=(?<pkt_icmp_seq>\d+) )?$'
77+
types: 'source_port:integer,dest_port:integer,pkt_ttl:integer,pkt_tos:integer,pkt_len:integer'
78+
79+
- name: couchbase_json_log_nanoseconds
80+
# Various parsers for Couchbase Server logs
81+
#
82+
format: json
83+
time_key: timestamp
84+
time_format: '%Y-%m-%dT%H:%M:%S.%L'
85+
time_keep: On
86+
# Do not remove the time field from the output we ship
87+
#
88+
89+
- name: couchbase_rebalance_report
90+
format: json
91+
time_key: timestamp
92+
time_format: '%Y-%m-%dT%H:%M:%SZ'
93+
time_keep: On
94+
95+
- name: couchbase_simple_log
96+
# The level may have optional brackets around it
97+
format: regex
98+
regex: '^(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+\.\d+(\+|-)\d+:\d+)\s+\[(?<level>\w+)\](?<message>.*)$'
99+
time_key: timestamp
100+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
101+
time_keep: On
102+
103+
- name: couchbase_simple_log_space_separated
104+
format: regex
105+
regex: '^(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+\.\d+(\+|-)\d+:\d+)\s+(?<level>\w+)\s+(?<message>.*)$'
106+
time_key: timestamp
107+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
108+
time_keep: On
109+
110+
- name: couchbase_simple_log_utc
111+
# Slight change in time format to use Z at end instead of offset:
112+
# 2021-03-09T17:32:02.136Z INFO ...
113+
# https://rubular.com/r/EpG3M1dHb5AnTC
114+
format: regex
115+
regex: '^(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+\.\d+Z)\s+(?<level>\w+)(?<message>.*)$'
116+
time_key: timestamp
117+
time_format: '%Y-%m-%dT%H:%M:%S.%LZ'
118+
time_keep: On
119+
120+
- name: couchbase_simple_log_mixed
121+
# Cope with two different log formats, e.g.:
122+
# 2021/03/09 17:32:15 cbauth: ...
123+
# 2021-03-09T17:32:15.303+00:00 [INFO] ...
124+
# https://rubular.com/r/XUt7xQqEJnrF2M
125+
format: regex
126+
regex: '^(?<timestamp>\d+(-|/)\d+(-|/)\d+(T|\s+)\d+:\d+:\d+(\.\d+(\+|-)\d+:\d+|))\s+((\[)?(?<level>\w+)(\]|:))(?<message>.*)$'
127+
time_key: timestamp
128+
time_keep: On
129+
# We cannot parse the time as different formats directly, it could be done downstream and/or left as current time
130+
#
131+
132+
- name: couchbase_erlang_multiline
133+
format: regex
134+
# For some reason this cannot parse an ending close bracket ] followed by a new line immediately
135+
#regex: '\[(?<logger>\w+):(?<level>\w+),(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+.\d+Z),.*\](?<message>.*)$'
136+
regex: '\[(?<logger>\w+):(?<level>\w+),(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+.\d+Z),(?<message>.*)$'
137+
time_key: timestamp
138+
time_format: '%Y-%m-%dT%H:%M:%S.%L'
139+
time_keep: On
140+
141+
- name: couchbase_java_multiline
142+
# 2021-03-09T17:32:25.339+00:00 INFO CBAS.bootstrap.AnalyticsNCApplication [main] ...
143+
# https://rubular.com/r/9jh1oKtXBN5GEV
144+
# Can include an exception stack trace or a thread dump as well but ignoring these for now
145+
format: regex
146+
regex: '^(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+\.\d+(\+|-)\d+:\d+)\s+(?<level>\w+)\s+(?<class>.*)\s+\[(?<thread>.*)\]\s+(?<message>.*)$'
147+
time_key: timestamp
148+
time_format: '%Y-%m-%dT%H:%M:%S.%L%z'
149+
time_keep: On
150+
151+
- name: couchbase_http
152+
# A slight modification of the usual Apache/Apache2 parsers
153+
format: regex
154+
regex: '^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<timestamp>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*) - (?<client>.*)$'
155+
time_key: timestamp
156+
time_format: '%d/%b/%Y:%H:%M:%S %z'
157+
time_keep: On
158+
159+
# End of Couchbase Server parsers

conf/parsers_java.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
parsers:
2+
- name: java_multiline
3+
format: regex
4+
regex: '/^(?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) \[(?<thread>.*)\] (?<level>[^\s]+)(?<message>.*)/'
5+
time_key: time
6+
time_format: '%Y-%m-%d %H:%M:%S'

conf/parsers_kafka.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
parsers:
2+
- name: confluent-schema-registry
3+
# Confluent Schema Registry 7.1.1 default format
4+
format: regex
5+
time_key: time
6+
time_format: '%Y-%m-%d %H:%M:%S,%L'
7+
regex: '^\[(?<time>\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2},\d{1,4})] (?<level>[A-Z]{1,8}) (?<src>[\d.]+) - - \[(?<date>.*)] \"(?<method>[A-Z]+) (?<path>\/[\S]+|\/) (?<http_version>HTTP\/[\d]\.[\d])\" (?<code>[\d]{1,3}) (?<size>[\d]+) \"-\" \"(?<agent>.*)\" (?<extra_info>.*)'
8+
9+
- name: confluent-schema-registry-prefixed
10+
# Confluent Schema Registry 7.1.1 default format - with _sr_ prefix to allow `nest`
11+
format: regex
12+
time_key: _sr_time
13+
time_format: '%Y-%m-%d %H:%M:%S,%L'
14+
regex: '^\[(?<_sr_time>\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2},\d{1,4})] (?<_sr_level>[A-Z]{1,8}) (?<_sr_src>[\d.]+) - - \[(?<_sr_date>.*)] \"(?<_sr_method>[A-Z]+) (?<_sr_path>\/[\S]+|\/) (?<_sr_http_version>HTTP\/[\d]\.[\d])\" (?<_sr_code>[\d]{1,3}) (?<_sr_size>[\d]+) \"-\" \"(?<_sr_agent>.*)\" (?<_sr_extra_info>.*)'

conf/parsers_mult.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
parsers:
2+
- name: mult_first
3+
format: regex
4+
regex: Started (?<method>[^ ]+) "(?<path>[^"]+)" for (?<host>[^ ]+) at (?<time>[^ ]+ [^ ]+ [^ ]+)
5+
time_key: time
6+
time_format: '%Y-%m-%d %H:%M:%S %z'
7+
8+
- name: mult_1
9+
format: regex
10+
regex: /Processing by (?<controller>[^\u0023]+)\u0023(?<controller_method>[^ ]+) as (?<format>[^ ]+?)$/
11+
12+
- name: mult_2
13+
format: regex
14+
regex: '( Parameters: (?<parameters>[^ ]+))?'
15+
16+
- name: mult_3
17+
format: regex
18+
regex: / Rendered (?<template>[^ ]+) within (?<layout>.+) \([\d\.]+ms\)/
19+
20+
- name: mult_4
21+
format: regex
22+
regex: 'Completed (?<code>[^ ]+) [^ ]+ in (?<runtime>[\d\.]+)ms \(Views: (?<view_runtime>[\d\.]+)ms \| ActiveRecord: (?<ar_runtime>[\d\.]+)ms\)'

conf/parsers_multiline.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
multiline_parsers:
2+
- name: exception_test
3+
type: regex
4+
flush_timeout: 1000
5+
rules:
6+
- state: start_state
7+
regex: '/(Dec \d+ \d+\:\d+\:\d+)(.*)/'
8+
next_state: cont
9+
10+
- state: cont
11+
regex: /^\s+at.*/
12+
next_state: cont

0 commit comments

Comments
 (0)