logdna 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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