Untitled

 avatar
unknown
plain_text
2 years ago
1.3 kB
4
Indexable
# 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