From ca68e4237e2b67c495c82d406859f5c98a8430f6 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Fri, 15 May 2015 15:17:45 +0900 Subject: collector-proxy: fix caching --- collector_proxy/lib/event_channel.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/collector_proxy/lib/event_channel.rb b/collector_proxy/lib/event_channel.rb index 5c394c2..55fdebd 100644 --- a/collector_proxy/lib/event_channel.rb +++ b/collector_proxy/lib/event_channel.rb @@ -2,7 +2,7 @@ class EventChannel class << self def setup return if @dalli - @dalli = Dalli::Client.new(Settings.memcached, namespace: "aclog-collector-proxy:") + @dalli = Dalli::Client.new(Settings.memcached, namespace: "aclog-collector-proxy") @queue = [] @subscribers = {} end @@ -10,11 +10,13 @@ class EventChannel def push(data) raise ScriptError, "Call EventChannel.setup first" unless @dalli if id = data[:identifier] - if @dalli.get(id) - CollectorProxy.logger.debug("UniqueChannel") { "Duplicate event: #{id}" } + key, val = id.split("#", 2) + cur = @dalli.get(key) + if cur && (!val || (cur <=> val) > -1) + CollectorProxy.logger.debug("UniqueChannel") { "Duplicate event: #{key}" } return else - @dalli.set(id, true) + @dalli.set(key, val || true) end end if @subscribers.size > 0 -- cgit v1.2.3 From a90f93328f7813df74be2e9ec52f9f0e9866aca4 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Thu, 11 Jun 2015 00:12:00 +0900 Subject: collector: collector must not die even when received invalid message --- lib/collector/collector_proxy_connection.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/collector/collector_proxy_connection.rb b/lib/collector/collector_proxy_connection.rb index 7f0f558..1de2974 100644 --- a/lib/collector/collector_proxy_connection.rb +++ b/lib/collector/collector_proxy_connection.rb @@ -46,7 +46,11 @@ module Collector next end - parse_message(msg) + begin + parse_message(msg) + rescue + log(:error, "Failed to parse message: #{msg}") + end end end -- cgit v1.2.3 From 8c9899d498f63139e7e56e57cad913d357aa986e Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Wed, 17 Jun 2015 23:58:36 +0900 Subject: collector: CollectorProxyConnection must be 'not connected' when unbound --- lib/collector/collector_proxy_connection.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/collector/collector_proxy_connection.rb b/lib/collector/collector_proxy_connection.rb index 1de2974..986fa8e 100644 --- a/lib/collector/collector_proxy_connection.rb +++ b/lib/collector/collector_proxy_connection.rb @@ -25,9 +25,11 @@ module Collector def unbind if @closing log(:info, "Connection was closed.") + @connected = false else if @connected log(:info, "Connection was closed unexpectedly.") + @connected = false end EM.add_timer(10) { try_reconnect } -- cgit v1.2.3 From bbe05db50cc521c25a57dd9cafb7f7bd50410554 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Thu, 18 Jun 2015 00:01:08 +0900 Subject: collector: collector must not die even when received invalid message (even if it was invalid as MsgPack) --- lib/collector/collector_proxy_connection.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/collector/collector_proxy_connection.rb b/lib/collector/collector_proxy_connection.rb index 986fa8e..1b92d15 100644 --- a/lib/collector/collector_proxy_connection.rb +++ b/lib/collector/collector_proxy_connection.rb @@ -54,6 +54,8 @@ module Collector log(:error, "Failed to parse message: #{msg}") end end + rescue + log(:fatal, "Failed to parse data: #{data}") end def exit -- cgit v1.2.3 From 11f6b67874925683b830f6e5ca6999802b95000c Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Fri, 19 Jun 2015 01:44:53 +0900 Subject: bundle update --- collector_proxy/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collector_proxy/Gemfile.lock b/collector_proxy/Gemfile.lock index c0f7be5..65a1075 100644 --- a/collector_proxy/Gemfile.lock +++ b/collector_proxy/Gemfile.lock @@ -3,7 +3,7 @@ GEM specs: dalli (2.7.4) eventmachine (1.0.7) - msgpack (0.5.11) + msgpack (0.6.0) rake (10.4.2) PLATFORMS -- cgit v1.2.3