logdna 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/logdna.rb +19 -3
  3. data/lib/logdna/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db7ba5c409efbbabe822466d9b4d9349b2fb6a71
4
- data.tar.gz: 7adca9e476db969193af213cda25cab8588e406c
3
+ metadata.gz: 30672876bb2c1d6341c64309d863e3b597ffe046
4
+ data.tar.gz: 6562f55f16a6ade2ee3b656827f777d1c16a14aa
5
5
  SHA512:
6
- metadata.gz: 359d9ee08dc0999fe8d243c7cd64cb22a83083ecc83e102872b0eaef530e4cbb85a4e1576e743ec4f367fa2c366cd2e363c06f36018e6fd8103fa1e4909ea7d8
7
- data.tar.gz: f969a6da9b9c76389546fefb05da5b4ee093e48981aa421d273fad4c94d598e6654e70cdf27b3d352458705307bc9f0ed2f716ca075995fc896162f61d175021
6
+ metadata.gz: f28c90884cc0d128858da01b784b428a86c7982fe1dc66059491bf6758dc17ad7b015101283b22af606f6b92b34f94864751d27f4991f527156cef946767ec33
7
+ data.tar.gz: 16fe8e45a234b4f94a120c972b18ec247d25160de90f65e569b85d9e4d5afa266033f537616df013793e5e3f82a344e675e4eb8e4b4630f92f954debff00da65
data/lib/logdna.rb CHANGED
@@ -24,6 +24,7 @@ module LogDNA
24
24
  def close_http
25
25
  return false unless @open
26
26
  @conn.close
27
+ @timer.exit if @timer
27
28
  @open = false
28
29
  true
29
30
  end
@@ -53,22 +54,37 @@ module LogDNA
53
54
  @buffer = []
54
55
  @buffer_max = opts[:buffer_max_size] || 10
55
56
  @freq = opts[:buffer_timeout] || 10
56
- @last_posted = Time.now
57
57
  @open = true
58
58
  end
59
59
 
60
60
  def post
61
- @last_posted = Time.now
62
61
  res = @conn.headers(apikey: @api_key, 'Content-Type' => 'application/json')
63
62
  .post("/logs/ingest?hostname=#{@host}&mac=#{@mac}&ip=#{@ip}",
64
63
  json: { e: 'ls', ls: @buffer })
64
+ @buffer = []
65
65
  res.flush
66
66
  end
67
67
 
68
68
  def push_to_buffer(message, level = nil, source = 'none')
69
69
  line = { line: message, app: source, timestamp: Time.now.to_i }
70
70
  line[:level] = LEVELS[level] if level
71
+ start_timer if @buffer.empty?
71
72
  @buffer << line
72
- post if @buffer.size > @buffer_max || Time.now - @last_posted > @freq
73
+ return if @buffer.size < @buffer_max
74
+ @timer.exit
75
+ post
76
+ end
77
+
78
+ def start_timer
79
+ @timer = Thread.new do
80
+ sleep @freq
81
+ unless @buffer.empty?
82
+ res = @conn.headers(apikey: @api_key, 'Content-Type' => 'application/json')
83
+ .post("/logs/ingest?hostname=#{@host}&mac=#{@mac}&ip=#{@ip}",
84
+ json: { e: 'ls', ls: @buffer })
85
+ @buffer = []
86
+ res.flush
87
+ end
88
+ end
73
89
  end
74
90
  end
@@ -1,3 +1,3 @@
1
1
  module LogDNA
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logdna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Lai
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-26 00:00:00.000000000 Z
11
+ date: 2016-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http