# cat /etc/app/array_create.lua
function array_create(tag, timestamp, record)
local new = record
new["string.names"] = {}
new["string.values"] = {}
new["number.names"] = {}
new["number.values"] = {}
blacklist = {
"timestamp",
"project",
"stream",
"logtag",
"kubernetes.pod_name",
"kubernetes.namespace_name",
"kubernetes.labels.app_type",
"kubernetes.host",
"kubernetes.container_name",
"kubernetes.container_image",
"kubernetes.labels.instance",
"kubernetes.labels.name",
"kubernetes.labels.bunit",
"_source",
"string.names",
"string.values",
"number.names",
"number.values",
"bool.names",
"bool.values",
"tag"
}
for k, v in pairs(blacklist) do
blacklist[v] = true
end
for k, v in pairs(new) do
if (type(v) == "string" and blacklist[k] ~= true and v ~= '') then
table.insert(new["string.names"], k)
table.insert(new["string.values"], v)
elseif (type(v)=="number" and blacklist[k] ~= true and v ~= '') then
table.insert(new["number.names"], k)
table.insert(new["number.values"], v)
end
end
table.insert(new["number.names"], "dummy")
table.insert(new["number.values"], 1)
new["timestamp"] = math.floor(timestamp)
return 1, new["timestamp"], new
end