{"action":"created","issue":{"url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/4","labels_url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/4/comments","events_url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/4/events","html_url":"https://github.com/logstash-plugins/logstash-filter-throttle/issues/4","id":103074374,"number":4,"title":"plugin not thread-safe, only synchronous input, does not track past events","user":{"login":"frapex","id":13613166,"avatar_url":"https://avatars.githubusercontent.com/u/13613166?v=3","gravatar_id":"","url":"https://api.github.com/users/frapex","html_url":"https://github.com/frapex","followers_url":"https://api.github.com/users/frapex/followers","following_url":"https://api.github.com/users/frapex/following{/other_user}","gists_url":"https://api.github.com/users/frapex/gists{/gist_id}","starred_url":"https://api.github.com/users/frapex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frapex/subscriptions","organizations_url":"https://api.github.com/users/frapex/orgs","repos_url":"https://api.github.com/users/frapex/repos","events_url":"https://api.github.com/users/frapex/events{/privacy}","received_events_url":"https://api.github.com/users/frapex/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-25T17:13:41Z","updated_at":"2015-09-09T15:32:03Z","closed_at":null,"body":"I am currently working on a reimplementation of logstash-filter-throttle to suit the needs of my customer. The reason for this is that the current plugin:\r\n- is not thread-safe (*1)\r\n- only supports synchronous input: with multiple (redis) inputs things get async really quick\r\n- does not track past events: events before \"Time.now - period\" expire instantly\r\n\r\nHow it works: when an event is received, the key is stored in a key_cache. The key references a timeslot_cache. The event is allocated to a timeslot (created dynamically) based on the timestamp of the event. The counter is incremented. A second event (same key), within the same \"period\", is allocated to the same timeslot. The counter is incremented.\r\n\r\nThis way it is possible to process events from the past in an asynchronous manner. I would like to know whether Elastic would be interested in maintaining this new version of the plugin. Please let me know. I hope this thread is picked up soon and it does not remain unseen.\r\n\r\n*1) addisonj already created a pull request for this, which is still not merged unfortunately: https://github.com/logstash-plugins/logstash-filter-throttle/pull/1"},"comment":{"url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/comments/138948317","html_url":"https://github.com/logstash-plugins/logstash-filter-throttle/issues/4#issuecomment-138948317","issue_url":"https://api.github.com/repos/logstash-plugins/logstash-filter-throttle/issues/4","id":138948317,"user":{"login":"IngaFeick","id":9050786,"avatar_url":"https://avatars.githubusercontent.com/u/9050786?v=3","gravatar_id":"","url":"https://api.github.com/users/IngaFeick","html_url":"https://github.com/IngaFeick","followers_url":"https://api.github.com/users/IngaFeick/followers","following_url":"https://api.github.com/users/IngaFeick/following{/other_user}","gists_url":"https://api.github.com/users/IngaFeick/gists{/gist_id}","starred_url":"https://api.github.com/users/IngaFeick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IngaFeick/subscriptions","organizations_url":"https://api.github.com/users/IngaFeick/orgs","repos_url":"https://api.github.com/users/IngaFeick/repos","events_url":"https://api.github.com/users/IngaFeick/events{/privacy}","received_events_url":"https://api.github.com/users/IngaFeick/received_events","type":"User","site_admin":false},"created_at":"2015-09-09T15:32:02Z","updated_at":"2015-09-09T15:32:02Z","body":"+1 Especially for the thread safety problem."}}