local M = {} --- Formats a name + table of labels as a Prometheus metric --- @param name string --- @param suffix string --- @param labels table --- @param value number function M.counter(name, suffix, labels, value) local label_parts = {} for k, v in pairs(labels) do table.insert(label_parts, string.format('%s="%s"', k, v)) end local label_str = table.concat(label_parts, ",") return string.format("factorio_%s_total%s{%s} %d", name, suffix, label_str, value) end return M