From 66279106b8079f517bc42fd6d789f7030e5de0cb Mon Sep 17 00:00:00 2001 From: Thibault Charbonnier Date: Thu, 25 Jun 2015 15:49:36 +0200 Subject: [PATCH] feat(analytics) Real socket address and `environment` - Add the real analytics socket - Add the `environment` value to ALF format and plugin configuration --- kong/plugins/analytics/handler.lua | 8 ++++---- kong/plugins/analytics/schema.lua | 1 + kong/plugins/log_serializers/alf.lua | 7 +++++-- spec/plugins/logging_spec.lua | 3 +-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/kong/plugins/analytics/handler.lua b/kong/plugins/analytics/handler.lua index 42fbf69c7e2..ebbd3c5f5c4 100644 --- a/kong/plugins/analytics/handler.lua +++ b/kong/plugins/analytics/handler.lua @@ -22,9 +22,9 @@ local DELAYED_LOCK = false -- careful: this will only work when lua_code_cache i local LATEST_CALL local ANALYTICS_SOCKET = { - host = "localhost", -- socket.analytics.mashape.com - port = 58000, - path = "/alf_1.0.0" + host = "socket.analytics.mashape.com", + port = 80, + path = "/1.0.0/single" } local function send_batch(premature, conf, alf) @@ -34,7 +34,7 @@ local function send_batch(premature, conf, alf) return end - local message = alf:to_json_string(conf.service_token) + local message = alf:to_json_string(conf.service_token, conf.environment) local ok, err local client = http:new() diff --git a/kong/plugins/analytics/schema.lua b/kong/plugins/analytics/schema.lua index fd297a9f9e8..c2d1a7fbe7e 100644 --- a/kong/plugins/analytics/schema.lua +++ b/kong/plugins/analytics/schema.lua @@ -1,6 +1,7 @@ return { fields = { service_token = { type = "string", required = true }, + environment = { type = "string" }, batch_size = { type = "number", default = 100 }, log_body = { type = "boolean", default = false }, delay = { type = "number", default = 10 } diff --git a/kong/plugins/log_serializers/alf.lua b/kong/plugins/log_serializers/alf.lua index 4402163a55e..ac83cb2212e 100644 --- a/kong/plugins/log_serializers/alf.lua +++ b/kong/plugins/log_serializers/alf.lua @@ -28,11 +28,12 @@ function alf_mt:new_alf() local ALF = { version = "1.0.0", serviceToken = "", -- will be filled by to_json_string() + environment = "", har = { log = { version = "1.2", creator = { - name = "kong-mashape-analytics-plugin", + name = "mashape-analytics-agent-kong", version = "1.0.0" }, entries = {} @@ -175,13 +176,15 @@ function alf_mt:add_entry(ngx) return table.getn(self.har.log.entries) end -function alf_mt:to_json_string(token) +function alf_mt:to_json_string(token, environment) if not token then error("Mashape Analytics serviceToken required", 2) end -- inject token self.serviceToken = token + -- inject environment (left empty if nil) + self.environment = environment local str = json.encode(self) return str:gsub("\""..EMPTY_ARRAY_PLACEHOLDER.."\"", ""):gsub("\\/", "/") diff --git a/spec/plugins/logging_spec.lua b/spec/plugins/logging_spec.lua index f0f298c8e72..d2df64fd322 100644 --- a/spec/plugins/logging_spec.lua +++ b/spec/plugins/logging_spec.lua @@ -1,5 +1,4 @@ local IO = require "kong.tools.io" -local yaml = require "yaml" local uuid = require "uuid" local cjson = require "cjson" local stringy = require "stringy" @@ -72,7 +71,7 @@ describe("Logging Plugins", function() local log_message = cjson.decode(res) assert.are.same("127.0.0.1", log_message.client_ip) end) - + it("should log proper latencies", function() local http_thread = spec_helper.start_http_server(HTTP_DELAY_PORT) -- Starting the mock TCP server local tcp_thread = spec_helper.start_tcp_server(TCP_PORT) -- Starting the mock TCP server