syslogstash 1.2.1 → 1.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8407c841448a421b3948446b9980a4eb1dc6c7b2
4
- data.tar.gz: 00d0f2f8ac268b1592a7777ff899be48809eadc6
3
+ metadata.gz: 4fae50a372aca78fab4d20cb3a21ff4248988abf
4
+ data.tar.gz: 391ae0a267341f5571e9c90427e83b2862628c2f
5
5
  SHA512:
6
- metadata.gz: c9749f538a6db87fc4d933686faef303c988970211c610290641a5bb5fc985038ab5125aceda97c5824b3873fa9c8b6d972719294614bd332b071d91134c093d
7
- data.tar.gz: 3063d255e5f42ec8bdede78ff3a2718ff4ca9054442b4209d8dbaf501826fe3a676d148b0a2f89963b0864c3f8dfe13bf8475d6682793a74986f3d9463355c38
6
+ metadata.gz: 6b0ab3566b3ce68964cfcb34be6efbdc3799394c76e72d672c53bb9a66e723e888df989c8f39155662d8151f6dbfd3b1915a08d212c92d8ca33cc4e0ad20bacc
7
+ data.tar.gz: 8798ef4d1a150cbf105028e5b6d7dcd9d72ed8309f0e998da6f3d0e8989b0e47016b9a9ba02f018d031d627687f28ccdf8a9450f622efcdf1763cef07dead38c
@@ -104,10 +104,9 @@ class Syslogstash::LogstashWriter
104
104
  end
105
105
  else
106
106
  begin
107
- # Rotate the next server onto the back of the list
108
- next_server = @servers.shift
107
+ # Pick another server to connect to at random
108
+ next_server = @servers.sort { rand }.first
109
109
  debug { "Trying to connect to #{next_server.to_s}" }
110
- @servers.push(next_server)
111
110
  @current_server = TCPSocket.new(next_server.hostname, next_server.port)
112
111
  rescue SystemCallError => ex
113
112
  # Connection failed for any number of reasons; try again
@@ -11,12 +11,13 @@ class Syslogstash::PrometheusExporter
11
11
  @msg_out = prom.counter(:syslogstash_messages_sent, "The number of logstash messages sent to each logstash server")
12
12
  @lag = prom.gauge(:syslogstash_lag_ms, "How far behind we are in relaying messages")
13
13
  @queue = prom.gauge(:syslogstash_queue_size, "How many messages are queued to be sent")
14
+ @q_mutex = Mutex.new
14
15
  @dropped = prom.counter(:syslogstash_messages_dropped, "How many syslog messages have been dropped from the backlog queue")
15
16
  end
16
17
 
17
18
  def received(socket, stamp)
18
19
  @msg_in.increment(socket_path: socket)
19
- @queue.set({}, (@queue.get({}) || 0) + 1)
20
+ @q_mutex.synchronize { @queue.set({}, (@queue.get({}) || 0) + 1) }
20
21
 
21
22
  if @most_recent_received.nil? || @most_recent_received < stamp
22
23
  @most_recent_received = stamp
@@ -27,7 +28,7 @@ class Syslogstash::PrometheusExporter
27
28
 
28
29
  def sent(server, stamp)
29
30
  @msg_out.increment(logstash_server: server)
30
- @queue.set({}, @queue.get({}) - 1)
31
+ @q_mutex.synchronize { @queue.set({}, @queue.get({}) - 1) }
31
32
 
32
33
  if @most_recent_sent.nil? || @most_recent_sent < stamp
33
34
  @most_recent_sent = stamp
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syslogstash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Palmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-04 00:00:00.000000000 Z
11
+ date: 2018-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prometheus-client
@@ -226,3 +226,4 @@ signing_key:
226
226
  specification_version: 4
227
227
  summary: Send messages from syslog UNIX sockets to logstash
228
228
  test_files: []
229
+ has_rdoc: