1+ # User info table (all fields are string, thus no schema)
12[enrichment_tables .users ]
23type = " file"
3- file.path = " /var/lib/vector/data/users.csv"
4- file.encoding.type = " csv"
54
6- [sources .random ]
5+ [enrichment_tables .users .file ]
6+ path = " /var/lib/vector/data/users.csv"
7+ encoding = { type = " csv" }
8+
9+ # Error codes table (with specified schema)
10+ [enrichment_tables .codes ]
11+ type = " file"
12+
13+ [enrichment_tables .codes .file ]
14+ path = " /var/lib/vector/data/codes.csv"
15+ encoding = { type = " csv" }
16+
17+ [enrichment_tables .codes .schema ]
18+ code = " integer"
19+ tag = " string"
20+ message = " string"
21+
22+ # Generate user info messages
23+ [sources .user_info_messages ]
724type = " generator"
825format = " shuffle"
926lines = [
@@ -15,15 +32,41 @@ lines = [
1532]
1633interval = 2
1734
18- [transforms .remap ]
35+ # Generate coded error messages
36+ [sources .coded_error_messages ]
37+ type = " generator"
38+ format = " shuffle"
39+ lines = [
40+ ' {"code":1,"device_id":"e5ad503d","timestamp":"2021-10-18T15:35:09.158139Z"}' ,
41+ ' {"code":2,"device_id":"a5b2401e","timestamp":"2021-10-18T15:35:28.517210Z"}' ,
42+ ' {"code":3,"device_id":"b48f41aa","timestamp":"2021-10-18T15:35:37.846783Z"}'
43+ ]
44+ interval = 2
45+
46+ [transforms .remap_user_info ]
1947type = " remap"
20- inputs = [" random " ]
48+ inputs = [" user_info_messages " ]
2149source = """
2250. = parse_json(.message) ?? {}
2351. |= get_enrichment_table_record("users", { "last_name": .last_name, "first_name": .first_name }) ?? {}
2452"""
2553
54+ [transforms .remap_coded_errors ]
55+ type = " remap"
56+ inputs = [" coded_error_messages" ]
57+ source = """
58+ . = parse_json!(.message)
59+
60+ row, err = get_enrichment_table_record("codes", { "code": del(.code) })
61+
62+ if err != null {
63+ log(err, level: "error")
64+ } else {
65+ . |= merge(., {"message": row.message, "tag": row.tag})
66+ }
67+ """
68+
2669[sinks .console ]
2770type = " console"
28- inputs = [" remap " ]
29- encoding. codec = " json"
71+ inputs = [" remap_* " ]
72+ encoding = { codec = " json" }
0 commit comments