From d2441eb60aebd8a7b66930757657dbfe9abb26e7 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:32:41 +0000 Subject: [PATCH] feat(logger): add datadog logging --- imports/logger/server.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 imports/logger/server.lua diff --git a/imports/logger/server.lua b/imports/logger/server.lua new file mode 100644 index 0000000..c63e6fa --- /dev/null +++ b/imports/logger/server.lua @@ -0,0 +1,30 @@ +local key = GetConvar('datadog:key', '') + +if key ~= '' then + local site = ('https://http-intake.logs.%s/api/v2/logs'):format(GetConvar('datadog:site', 'datadoghq.com')) + local resourceName = GetCurrentResourceName() + key = key:gsub("[\'\"]", '') + + return function(source, event, message, ...) + local data = json.encode({ + hostname = resourceName, + service = event, + message = message, + ddsource = tostring(source), + ddtags = string.strjoin(',', string.tostringall(...)) + }) + + PerformHttpRequest(site, function(status, _, _, response) + if status ~= 202 then + -- Thanks, I hate it + response = json.decode(response:sub(10)).errors[1] + print(('unable to submit logs to %s\n%s'):format(site, json.encode(response, {indent=true}))) + end + end, 'POST', data, { + ['Content-Type'] = 'application/json', + ['DD-API-KEY'] = key + }) + end +end + +return function() end