loggregator_emitter 4.0.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de1e992ddcf72616bf70df570893b54568ff9f5e
4
- data.tar.gz: d4c5ffb3c3190d0746cf298be1badd0d80e745a1
3
+ metadata.gz: bf819100b9ada951567d64e0d8e95bbadadb394f
4
+ data.tar.gz: a9659c18062b4c13a2a4b4e0b5bc028348f7407a
5
5
  SHA512:
6
- metadata.gz: 9dd300112b90955a1cb2be234c141d63252363ef970d7230412a096cc1cbf1770a06bd40c68d1d8e647ee64ad1e80f5fa59df0cf88c12688e06f39a4bc5a877f
7
- data.tar.gz: 955f3cab33b0e7672f5d5c6e2ed71284907b89d6a506ff07659e582b50c53c963eb56d140fad4fa42ee25ea603d315a3e6c6008dd5e7bdd876c5ab6f85f4a746
6
+ metadata.gz: 44999954cf8adb80fd69b1c287fcf01e86b2eb7eb7d1af81105c95cd4c8e0c07fc3df5afd007a2ead1b6830b107cad66b78187e4ab6434903ec0f241bdb9306f
7
+ data.tar.gz: 818ebb9490ddafb9c96d601c0af77fac9539c6519eba2fbe73a125249a72176c0fe4230891b62d371676bc6c022b6aa7de16c68aa28938212ec87c8ce8116778
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  This gem provides an API to emit messages to the loggregator agent from Ruby applications.
8
8
 
9
- Create an emitter object with the loggregator router host and port, a source name of the emitter, and a shared secret (for signing).
9
+ Create an emitter object with the loggregator router host and port, an origin, and a source name of the emitter.
10
10
 
11
11
  Call emit() or emit_error() on this emitter with the application GUID and the message string.
12
12
 
@@ -29,7 +29,7 @@ Call emit() or emit_error() on this emitter with the application GUID and the me
29
29
 
30
30
  require "loggregator_emitter"
31
31
 
32
- emitter = LoggregatorEmitter::Emitter.new("10.10.10.16:38452", "API")
32
+ emitter = LoggregatorEmitter::Emitter.new("10.10.10.16:38452", "origin", API")
33
33
 
34
34
  app_guid = "a8977cb6-3365-4be1-907e-0c878b3a4c6b" # The GUID(UUID) for the user's application
35
35
 
@@ -38,7 +38,8 @@ Call emit() or emit_error() on this emitter with the application GUID and the me
38
38
  emitter.emit_error(app_guid,error_message) # Emits messages with a message type of ERR
39
39
 
40
40
  ### Regenerating Protobuf library
41
- protoc --beefcake_out lib/loggregator_messages -I lib/loggregator_messages lib/loggregator_messages/log_message.proto
41
+
42
+ BEEFCAKE_NAMESPACE=Sonde protoc --beefcake_out lib/sonde -I lib/sonde lib/sonde/sonde.proto
42
43
 
43
44
  ### Versioning
44
45
 
@@ -1,5 +1,7 @@
1
1
  require 'socket'
2
2
  require 'resolv'
3
+ require 'sonde/sonde.pb'
4
+ require 'sonde/sonde_extender'
3
5
 
4
6
  module LoggregatorEmitter
5
7
  class Emitter
@@ -11,21 +13,22 @@ module LoggregatorEmitter
11
13
  MAX_MESSAGE_BYTE_SIZE = (9 * 1024) - 512
12
14
  TRUNCATED_STRING = "TRUNCATED"
13
15
 
14
- def initialize(loggregator_server, source_name, source_id = nil, secret=nil)
16
+ def initialize(loggregator_server, origin, source_type, source_instance = nil)
15
17
  @host, @port = loggregator_server.split(/:([^:]*$)/)
16
18
 
17
19
  raise ArgumentError, "Must provide valid loggregator server: #{loggregator_server}" if !valid_hostname || !valid_port
18
20
  @host = ::Resolv.getaddresses(@host).last
19
21
  raise ArgumentError, "Must provide valid loggregator server: #{loggregator_server}" unless @host
20
22
 
21
- raise ArgumentError, "Must provide valid source_name: #{source_name}" unless source_name
23
+ raise ArgumentError, "Must provide a valid origin" unless origin
24
+ raise ArgumentError, "Must provide valid source_type: #{source_type}" unless source_type
22
25
 
23
- raise ArgumentError, "source_name must be a 3-character string" unless source_name.is_a? String
24
- raise ArgumentError, "Custom Source String must be 3 characters" unless source_name.size == 3
25
- @source_name = source_name
26
+ raise ArgumentError, "source_type must be a 3-character string" unless source_type.is_a? String
27
+ raise ArgumentError, "Custom Source String must be 3 characters" unless source_type.size == 3
28
+ @origin = origin
29
+ @source_type = source_type
26
30
 
27
- @secret = secret
28
- @source_id = source_id && source_id.to_s
31
+ @source_instance = source_instance && source_instance.to_s
29
32
  end
30
33
 
31
34
  def emit(app_id, message)
@@ -58,32 +61,26 @@ module LoggregatorEmitter
58
61
  m = m.byteslice(0, MAX_MESSAGE_BYTE_SIZE-TRUNCATED_STRING.bytesize) + TRUNCATED_STRING
59
62
  end
60
63
 
61
- if @secret.nil? || @secret.empty?
62
- send_protobuffer(create_log_message(app_id, m, type))
63
- else
64
- send_protobuffer(create_log_envelope(app_id, m, type))
65
- end
64
+ send_protobuffer(create_log_envelope(app_id, m, type))
66
65
  end
67
66
  end
68
67
 
69
68
  def create_log_message(app_id, message, type)
70
- lm = LogMessage.new()
69
+ lm = ::Sonde::LogMessage.new()
71
70
  lm.time = Time.now
72
71
  lm.message = message
73
72
  lm.app_id = app_id
74
- lm.source_id = @source_id
75
- lm.source_name = @source_name
73
+ lm.source_instance = @source_instance
74
+ lm.source_type = @source_type
76
75
  lm.message_type = type
77
76
  lm
78
77
  end
79
78
 
80
79
  def create_log_envelope(app_id, message, type)
81
- crypter = Encryption::Symmetric.new
82
- le = LogEnvelope.new()
83
- le.routing_key = app_id
84
- le.log_message = create_log_message(app_id, message, type)
85
- digest = crypter.digest(le.log_message.message)
86
- le.signature = crypter.encrypt(@secret, digest)
80
+ le = ::Sonde::Envelope.new()
81
+ le.origin = @origin
82
+ le.eventType = ::Sonde::Envelope::EventType::LogMessage
83
+ le.logMessage = create_log_message(app_id, message, type)
87
84
  le
88
85
  end
89
86
 
@@ -0,0 +1,42 @@
1
+ ## Generated from sonde.proto for events
2
+ require "beefcake"
3
+
4
+ module Sonde
5
+
6
+ class Envelope
7
+ include Beefcake::Message
8
+
9
+ module EventType
10
+ LogMessage = 5
11
+ end
12
+ end
13
+
14
+ class LogMessage
15
+ include Beefcake::Message
16
+
17
+ module MessageType
18
+ OUT = 1
19
+ ERR = 2
20
+ end
21
+ end
22
+
23
+ class Envelope
24
+ required :origin, :string, 1
25
+ required :eventType, Envelope::EventType, 2
26
+ optional :timestamp, :int64, 6
27
+ optional :deployment, :string, 13
28
+ optional :job, :string, 14
29
+ optional :index, :string, 15
30
+ optional :ip, :string, 16
31
+ optional :logMessage, LogMessage, 8
32
+ end
33
+
34
+ class LogMessage
35
+ required :message, :bytes, 1
36
+ required :message_type, LogMessage::MessageType, 2
37
+ required :timestamp, :int64, 3
38
+ optional :app_id, :string, 4
39
+ optional :source_type, :string, 5
40
+ optional :source_instance, :string, 6
41
+ end
42
+ end
@@ -0,0 +1,39 @@
1
+ package events;
2
+
3
+ /// Envelope wraps an Event and adds metadata.
4
+ message Envelope {
5
+ /// Type of the wrapped event.
6
+ enum EventType {
7
+ LogMessage = 5;
8
+ }
9
+
10
+ required string origin = 1; /// Unique description of the origin of this event.
11
+ required EventType eventType = 2; /// Type of wrapped event. Only the optional field corresponding to the value of eventType should be set.
12
+
13
+ optional int64 timestamp = 6; /// UNIX timestamp (in nanoseconds) event was wrapped in this Envelope.
14
+
15
+ optional string deployment = 13; /// Deployment name (used to uniquely identify source).
16
+ optional string job = 14; /// Job name (used to uniquely identify source).
17
+ optional string index = 15; /// Index of job (used to uniquely identify source).
18
+ optional string ip = 16; /// IP address (used to uniquely identify source).
19
+
20
+ // Removed Heartbeat at position 3
21
+ optional LogMessage logMessage = 8;
22
+ }
23
+
24
+ /// A LogMessage contains a "log line" and associated metadata.
25
+ message LogMessage {
26
+
27
+ /// MessageType stores the destination of the message (corresponding to STDOUT or STDERR).
28
+ enum MessageType {
29
+ OUT = 1;
30
+ ERR = 2;
31
+ }
32
+
33
+ required bytes message = 1; /// Bytes of the log message. (Note that it is not required to be a single line.)
34
+ required MessageType message_type = 2; /// Type of the message (OUT or ERR).
35
+ required int64 timestamp = 3; /// UNIX timestamp (in nanoseconds) when the log was written.
36
+ optional string app_id = 4; /// Application that emitted the message (or to which the application is related).
37
+ optional string source_type = 5; /// Source of the message. For Cloud Foundry, this can be "APP", "RTR", "DEA", "STG", etc.
38
+ optional string source_instance = 6; /// Instance that emitted the message.
39
+ }
@@ -0,0 +1,19 @@
1
+ module Sonde
2
+
3
+ class LogMessage
4
+ def message_type_name
5
+ {MessageType::OUT => 'STDOUT', MessageType::ERR => 'STDERR'}[message_type]
6
+ end
7
+
8
+ def time=(time)
9
+ self.timestamp = (time.tv_sec * 1000000000) + time.tv_nsec
10
+ end
11
+
12
+ def time
13
+ num_secs = @timestamp / 1000000000
14
+ fractional_usecs = (@timestamp % 1000000000).to_f / 1000
15
+ Time.at(num_secs, fractional_usecs)
16
+ end
17
+ end
18
+
19
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "loggregator_emitter"
5
- spec.version = '4.0.0'
5
+ spec.version = '5.0.0'
6
6
  spec.authors = ["Pivotal"]
7
7
  spec.email = ["cf-eng@pivotallabs.com"]
8
8
  spec.description = "Library to emit data to Loggregator"
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.add_dependency "beefcake", "~> 1.0.0"
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.3"
23
- spec.add_development_dependency "rake", "~> 10.1.0"
23
+ spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "rspec", "~> 2.14.1"
25
25
  spec.add_development_dependency "coveralls"
26
26
  end
@@ -21,7 +21,7 @@ shared_examples "a performance test" do |fixture, using_server|
21
21
  let(:iterations) { using_server ? 100 : 1000 }
22
22
 
23
23
  before do
24
- @emitter = LoggregatorEmitter::Emitter.new("localhost:#{@free_port}", "API", 42, "my-secret")
24
+ @emitter = LoggregatorEmitter::Emitter.new("localhost:#{@free_port}", "origin", "API", 42)
25
25
  if !using_server
26
26
  @emitter.should_receive(:send_protobuffer).at_least(iterations).times
27
27
  end
@@ -22,47 +22,51 @@ describe LoggregatorEmitter do
22
22
  describe "configuring emitter" do
23
23
  describe "valid configurations" do
24
24
  it "is valid with IP and proper source name" do
25
- expect { LoggregatorEmitter::Emitter.new("0.0.0.0:12345", "DEA") }.not_to raise_error
25
+ expect { LoggregatorEmitter::Emitter.new("0.0.0.0:12345", "origin", "DEA") }.not_to raise_error
26
26
  end
27
27
 
28
28
  it "is valid with resolveable hostname and proper source name" do
29
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", "DEA") }.not_to raise_error
29
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", "DEA") }.not_to raise_error
30
30
  end
31
31
 
32
32
  it "accepts a string as source type/name" do
33
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", "STG") }.not_to raise_error
33
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", "STG") }.not_to raise_error
34
34
  end
35
35
  end
36
36
 
37
37
  describe "invalid configurations" do
38
38
  describe "error based on loggregator_server" do
39
39
  it "raises if host has protocol" do
40
- expect { LoggregatorEmitter::Emitter.new("http://0.0.0.0:12345", "DEA") }.to raise_error(ArgumentError)
40
+ expect { LoggregatorEmitter::Emitter.new("http://0.0.0.0:12345", "origin", "DEA") }.to raise_error(ArgumentError)
41
41
  end
42
42
 
43
43
  it "raises if host is blank" do
44
- expect { LoggregatorEmitter::Emitter.new(":12345", "DEA") }.to raise_error(ArgumentError)
44
+ expect { LoggregatorEmitter::Emitter.new(":12345", "origin", "DEA") }.to raise_error(ArgumentError)
45
45
  end
46
46
 
47
47
  it "raises if host is unresolvable" do
48
- expect { LoggregatorEmitter::Emitter.new("i.cant.resolve.foo:12345", "DEA") }.to raise_error(ArgumentError)
48
+ expect { LoggregatorEmitter::Emitter.new("i.cant.resolve.foo:12345", "origin", "DEA") }.to raise_error(ArgumentError)
49
49
  end
50
50
 
51
- it "raises if source is an unknown integer" do
52
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", 7) }.to raise_error(ArgumentError)
51
+ it "raises if origin is blank" do
52
+ expect { LoggregatorEmitter::Emitter.new(":12345", "", "DEA") }.to raise_error(ArgumentError)
53
53
  end
54
54
 
55
- it "raises if source is not an integer or string" do
56
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", nil) }.to raise_error(ArgumentError)
57
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", 12.0) }.to raise_error(ArgumentError)
55
+ it "raises if source_type is an unknown integer" do
56
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", 7) }.to raise_error(ArgumentError)
58
57
  end
59
58
 
60
- it "raises if source is too large of a string" do
61
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", "ABCD") }.to raise_error(ArgumentError)
59
+ it "raises if source_type is not an integer or string" do
60
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", nil) }.to raise_error(ArgumentError)
61
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", 12.0) }.to raise_error(ArgumentError)
62
62
  end
63
63
 
64
- it "raises if source is too small of a string" do
65
- expect { LoggregatorEmitter::Emitter.new("localhost:12345", "AB") }.to raise_error(ArgumentError)
64
+ it "raises if source_type is too large of a string" do
65
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", "ABCD") }.to raise_error(ArgumentError)
66
+ end
67
+
68
+ it "raises if source_type is too small of a string" do
69
+ expect { LoggregatorEmitter::Emitter.new("localhost:12345", "origin", "AB") }.to raise_error(ArgumentError)
66
70
  end
67
71
  end
68
72
  end
@@ -71,7 +75,7 @@ describe LoggregatorEmitter do
71
75
 
72
76
  describe "emit_log_envelope" do
73
77
  def make_emitter(host)
74
- LoggregatorEmitter::Emitter.new("#{host}:#{@free_port}", "API", 42, "secret")
78
+ LoggregatorEmitter::Emitter.new("#{host}:#{@free_port}", "origin", "API", 42)
75
79
  end
76
80
 
77
81
  it "successfully writes envelope protobuffers" do
@@ -84,16 +88,11 @@ describe LoggregatorEmitter do
84
88
 
85
89
  expect(messages.length).to eq 1
86
90
  message = messages[0]
87
- expect(message.routing_key).to eq "my_app_id"
88
-
89
- actual_digest = Encryption::Symmetric.new.decrypt("secret", message.signature)
90
- expected_digest = Encryption::Symmetric.new.digest(message.log_message.message)
91
- expect(actual_digest).to eq expected_digest
92
91
 
93
- expect(message.log_message.message).to eq "Hello there!"
94
- expect(message.log_message.app_id).to eq "my_app_id"
95
- expect(message.log_message.source_id).to eq "42"
96
- expect(message.log_message.message_type).to eq LogMessage::MessageType::OUT
92
+ expect(message.logMessage.message).to eq "Hello there!"
93
+ expect(message.logMessage.app_id).to eq "my_app_id"
94
+ expect(message.logMessage.source_instance).to eq "42"
95
+ expect(message.logMessage.message_type).to eq ::Sonde::LogMessage::MessageType::OUT
97
96
  end
98
97
 
99
98
  it "gracefully handles failures to send messages" do
@@ -122,7 +121,7 @@ describe LoggregatorEmitter do
122
121
  {"emit" => LogMessage::MessageType::OUT, "emit_error" => LogMessage::MessageType::ERR}.each do |emit_method, message_type|
123
122
  describe "##{emit_method}" do
124
123
  def make_emitter(host)
125
- LoggregatorEmitter::Emitter.new("#{host}:#{@free_port}", "API", 42)
124
+ LoggregatorEmitter::Emitter.new("#{host}:#{@free_port}", "origin", "API", 42)
126
125
  end
127
126
 
128
127
  it "successfully writes protobuffers using ipv4" do
@@ -136,13 +135,13 @@ describe LoggregatorEmitter do
136
135
  messages = @server.messages
137
136
 
138
137
  expect(messages.length).to eq 2
139
- message = messages[0]
138
+ message = messages[0].logMessage
140
139
  expect(message.message).to eq "Hello there!"
141
140
  expect(message.app_id).to eq "my_app_id"
142
- expect(message.source_id).to eq "42"
141
+ expect(message.source_instance).to eq "42"
143
142
  expect(message.message_type).to eq message_type
144
143
 
145
- message = messages[1]
144
+ message = messages[1].logMessage
146
145
  expect(message.message).to eq "Hello again!"
147
146
  end
148
147
 
@@ -154,7 +153,7 @@ describe LoggregatorEmitter do
154
153
 
155
154
  messages = @server.messages
156
155
  expect(messages.length).to eq 1
157
- expect(messages[0].message).to eq "Hello there!"
156
+ expect(messages[0].logMessage.message).to eq "Hello there!"
158
157
  end
159
158
 
160
159
  it "successfully writes protobuffers using a dns name" do
@@ -165,7 +164,7 @@ describe LoggregatorEmitter do
165
164
 
166
165
  messages = @server.messages
167
166
  expect(messages.length).to eq 1
168
- expect(messages[0].message).to eq "Hello there!"
167
+ expect(messages[0].logMessage.message).to eq "Hello there!"
169
168
  end
170
169
 
171
170
  it "swallows empty messages" do
@@ -189,8 +188,9 @@ describe LoggregatorEmitter do
189
188
 
190
189
  messages = @server.messages
191
190
  expect(messages.length).to eq 1
192
- expect(messages[0].message.bytesize <= LoggregatorEmitter::Emitter::MAX_MESSAGE_BYTE_SIZE).to be_true
193
- expect(messages[0].message.slice(-9..-1)).to eq("TRUNCATED")
191
+ logMessage = messages[0].logMessage
192
+ expect(logMessage.message.bytesize <= LoggregatorEmitter::Emitter::MAX_MESSAGE_BYTE_SIZE).to be_true
193
+ expect(logMessage.message.slice(-9..-1)).to eq("TRUNCATED")
194
194
  end
195
195
 
196
196
  it "splits messages by newlines" do
@@ -212,7 +212,7 @@ describe LoggregatorEmitter do
212
212
 
213
213
  messages = @server.messages
214
214
  expect(messages.length).to eq 1
215
- expect(messages[0].message.force_encoding("utf-8")).to eq "測試"
215
+ expect(messages[0].logMessage.message.force_encoding("utf-8")).to eq "測試"
216
216
  end
217
217
  end
218
218
  end
@@ -224,32 +224,32 @@ describe LoggregatorEmitter do
224
224
 
225
225
  @server.wait_for_messages(2)
226
226
 
227
- @server.messages[0]
227
+ @server.messages[0].logMessage
228
228
  end
229
229
 
230
230
  it "when type is known" do
231
- @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "API")
232
- expect(emit_message.source_name).to eq "API"
231
+ @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "origin", "API")
232
+ expect(emit_message.source_type).to eq "API"
233
233
  end
234
234
 
235
235
  it "when type is unknown" do
236
- @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "STG")
237
- expect(emit_message.source_name).to eq "STG"
236
+ @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "origin", "STG")
237
+ expect(emit_message.source_type).to eq "STG"
238
238
  end
239
239
 
240
240
  it "id can be nil" do
241
- @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "API")
242
- expect(emit_message.source_id).to eq nil
241
+ @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "origin", "API")
242
+ expect(emit_message.source_instance).to eq nil
243
243
  end
244
244
 
245
245
  it "id can be passed in as a string" do
246
- @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "API", "some_source_id")
247
- expect(emit_message.source_id).to eq "some_source_id"
246
+ @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "origin", "API", "some_source_id")
247
+ expect(emit_message.source_instance).to eq "some_source_id"
248
248
  end
249
249
 
250
250
  it "id can be passed in as an integer" do
251
- @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "API", 13)
252
- expect(emit_message.source_id).to eq "13"
251
+ @emitter = LoggregatorEmitter::Emitter.new("0.0.0.0:#{@free_port}", "origin", "API", 13)
252
+ expect(emit_message.source_instance).to eq "13"
253
253
  end
254
254
  end
255
255
  end
@@ -1,5 +1,6 @@
1
1
  require 'socket'
2
- require 'loggregator_messages/log_message.pb'
2
+ require 'sonde/sonde.pb'
3
+ require 'sonde/sonde_extender'
3
4
 
4
5
  class FakeLoggregatorServer
5
6
 
@@ -47,16 +48,11 @@ class FakeLoggregatorServer
47
48
  while true
48
49
  begin
49
50
  stuff = socket.recv(65536)
50
- decoded_data = LogMessage.decode(stuff.dup)
51
+ decoded_data = ::Sonde::Envelope.decode(stuff.dup)
51
52
  messages << decoded_data
52
53
  rescue Beefcake::Message::WrongTypeError, Beefcake::Message::RequiredFieldNotSetError, Beefcake::Message::InvalidValueError => e
53
- begin
54
- decoded_data = LogEnvelope.decode(stuff.dup)
55
- messages << decoded_data
56
- rescue Beefcake::Message::WrongTypeError, Beefcake::Message::RequiredFieldNotSetError, Beefcake::Message::InvalidValueError => e
57
- puts "ERROR: neither envelope nor message extraction worked"
58
- puts e
59
- end
54
+ puts "ERROR: envelope extraction failed"
55
+ puts e
60
56
  end
61
57
  end
62
58
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loggregator_emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pivotal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-11 00:00:00.000000000 Z
11
+ date: 2015-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beefcake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 10.1.0
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 10.1.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.14.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.14.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: coveralls
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: Library to emit data to Loggregator
@@ -87,8 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .travis.yml
90
+ - ".gitignore"
91
+ - ".travis.yml"
92
92
  - Gemfile
93
93
  - LICENSE
94
94
  - README.md
@@ -98,6 +98,9 @@ files:
98
98
  - lib/loggregator_messages/log_message.pb.rb
99
99
  - lib/loggregator_messages/log_message.proto
100
100
  - lib/loggregator_messages/log_message_extender.rb
101
+ - lib/sonde/sonde.pb.rb
102
+ - lib/sonde/sonde.proto
103
+ - lib/sonde/sonde_extender.rb
101
104
  - lib/symmetric/encryption.rb
102
105
  - loggregator_emitter.gemspec
103
106
  - spec/loggregator_emitter/emit_performance_spec.rb
@@ -116,17 +119,17 @@ require_paths:
116
119
  - lib
117
120
  required_ruby_version: !ruby/object:Gem::Requirement
118
121
  requirements:
119
- - - '>='
122
+ - - ">="
120
123
  - !ruby/object:Gem::Version
121
124
  version: 1.9.3
122
125
  required_rubygems_version: !ruby/object:Gem::Requirement
123
126
  requirements:
124
- - - '>='
127
+ - - ">="
125
128
  - !ruby/object:Gem::Version
126
129
  version: '0'
127
130
  requirements: []
128
131
  rubyforge_project:
129
- rubygems_version: 2.2.2
132
+ rubygems_version: 2.4.5.1
130
133
  signing_key:
131
134
  specification_version: 4
132
135
  summary: Library to emit data to Loggregator