signalfx 2.0.5 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/signalfx.rb +8 -4
- data/lib/signalfx/signal_fx_client.rb +10 -10
- data/lib/signalfx/signalflow/client.rb +1 -1
- data/lib/signalfx/signalflow/websocket.rb +4 -3
- data/lib/signalfx/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4d9b5d2fd10a70d0b431b6e6d4200e3f4634ff5
|
4
|
+
data.tar.gz: 711835760cb429f574c776435eba20a46b45afa1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9ab6fa6dc20607bb4516534e674206af91bb8ffd7304e2b579a36cbcb1cd85dc23e0b2e25620bec371738b90d4dedb00bc5af22bf7871370167b8470d74f739
|
7
|
+
data.tar.gz: 9f3d726b842f389cc7e5732b3124d376898cd5639fe657133420c6633bf3ee811c82d139ea4261726f7440842fc98a421819ca3bcd343f6382a21d388212168b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -55,7 +55,7 @@ Optional constructor parameters:
|
|
55
55
|
deployed on Amazon AWS.
|
56
56
|
+ **ingest_endpoint** (string): to override the target ingest API
|
57
57
|
endpoint.
|
58
|
-
+ **
|
58
|
+
+ **stream_endpoint** (string): to override the target stream endpoint for SignalFlow.
|
59
59
|
+ **timeout** (number): timeout, in seconds, for requests to SignalFx.
|
60
60
|
+ **batch_size** (number): size of datapoint batches to send to
|
61
61
|
SignalFx.
|
data/lib/signalfx.rb
CHANGED
@@ -16,31 +16,35 @@ module SignalFx
|
|
16
16
|
# and set it as `AWSUniqueId` dimension for each datapoint and event.
|
17
17
|
# Use this option only if your application deployed to Amazon
|
18
18
|
# @param ingest_endpoint - string
|
19
|
-
# @param
|
19
|
+
# @param stream_endpoint - string
|
20
20
|
# @param timeout - number
|
21
21
|
# @param batch_size - number
|
22
22
|
# @param user_agents - array
|
23
23
|
def self.new(api_token,
|
24
24
|
enable_aws_unique_id: false,
|
25
25
|
ingest_endpoint: RbConfig::DEFAULT_INGEST_ENDPOINT,
|
26
|
+
stream_endpoint: RbConfig::DEFAULT_STREAM_ENDPOINT,
|
26
27
|
timeout: RbConfig::DEFAULT_TIMEOUT,
|
27
28
|
batch_size: RbConfig::DEFAULT_BATCH_SIZE,
|
28
|
-
user_agents: []
|
29
|
+
user_agents: [],
|
30
|
+
logger: Logger.new(STDOUT, progname: "signalfx"))
|
29
31
|
begin
|
30
32
|
require_relative './proto/signal_fx_protocol_buffers.pb'
|
31
33
|
ProtoBufSignalFx.new(api_token,
|
32
34
|
enable_aws_unique_id: enable_aws_unique_id,
|
33
35
|
ingest_endpoint: ingest_endpoint,
|
36
|
+
stream_endpoint: stream_endpoint,
|
34
37
|
timeout: timeout,
|
35
38
|
batch_size: batch_size,
|
36
39
|
user_agents: user_agents)
|
37
40
|
|
38
41
|
rescue Exception => e
|
39
|
-
|
40
|
-
#{e}"
|
42
|
+
logger.warn("Protocol Buffers not installed properly. Switching to JSON.
|
43
|
+
#{e}")
|
41
44
|
JsonSignalFx.new(api_token,
|
42
45
|
enable_aws_unique_id: enable_aws_unique_id,
|
43
46
|
ingest_endpoint: ingest_endpoint,
|
47
|
+
stream_endpoint: stream_endpoint,
|
44
48
|
timeout: timeout,
|
45
49
|
batch_size: batch_size,
|
46
50
|
user_agents: user_agents)
|
@@ -31,19 +31,19 @@ class SignalFxClient
|
|
31
31
|
def initialize(api_token,
|
32
32
|
enable_aws_unique_id: false,
|
33
33
|
ingest_endpoint: RbConfig::DEFAULT_INGEST_ENDPOINT,
|
34
|
-
api_endpoint: RbConfig::DEFAULT_API_ENDPOINT,
|
35
34
|
stream_endpoint: RbConfig::DEFAULT_STREAM_ENDPOINT,
|
36
35
|
timeout: RbConfig::DEFAULT_TIMEOUT,
|
37
36
|
batch_size: RbConfig::DEFAULT_BATCH_SIZE,
|
38
|
-
user_agents: []
|
37
|
+
user_agents: [],
|
38
|
+
logger: Logger.new(STDOUT, progname: "signalfx"))
|
39
39
|
|
40
40
|
@api_token = api_token
|
41
41
|
@ingest_endpoint = ingest_endpoint
|
42
|
-
@api_endpoint = api_endpoint
|
43
42
|
@stream_endpoint = stream_endpoint
|
44
43
|
@timeout = timeout
|
45
44
|
@batch_size = batch_size
|
46
45
|
@user_agents = user_agents
|
46
|
+
@logger = logger
|
47
47
|
|
48
48
|
@aws_unique_id = nil
|
49
49
|
|
@@ -55,9 +55,9 @@ class SignalFxClient
|
|
55
55
|
if request != nil
|
56
56
|
json_resp = JSON.parse(request.body)
|
57
57
|
@aws_unique_id = json_resp['instanceId']+'_'+json_resp['region']+'_'+json_resp['accountId']
|
58
|
-
|
58
|
+
@logger.info("AWS Unique ID loaded: #{@aws_unique_id}")
|
59
59
|
else
|
60
|
-
|
60
|
+
@logger.warn('Failed to retrieve AWS unique ID.')
|
61
61
|
end
|
62
62
|
}
|
63
63
|
end
|
@@ -172,7 +172,7 @@ class SignalFxClient
|
|
172
172
|
# @return [SignalFlowClient] a newly instantiated client, configured with the
|
173
173
|
# api token and endpoints from this class
|
174
174
|
def signalflow
|
175
|
-
SignalFlowClient.new(@api_token, @
|
175
|
+
SignalFlowClient.new(@api_token, @stream_endpoint)
|
176
176
|
end
|
177
177
|
|
178
178
|
protected
|
@@ -223,14 +223,14 @@ class SignalFxClient
|
|
223
223
|
block.call(response)
|
224
224
|
end
|
225
225
|
else
|
226
|
-
|
226
|
+
@logger.error("Failed to send datapoints. Response code: #{response.code}")
|
227
227
|
if block
|
228
228
|
block.call(nil)
|
229
229
|
end
|
230
230
|
end
|
231
231
|
}
|
232
232
|
rescue Exception => e
|
233
|
-
|
233
|
+
@logger.error("Failed to send datapoints. Error: #{e}")
|
234
234
|
if block
|
235
235
|
block.call(nil)
|
236
236
|
end
|
@@ -246,12 +246,12 @@ class SignalFxClient
|
|
246
246
|
when 200
|
247
247
|
return block.call(response)
|
248
248
|
else
|
249
|
-
|
249
|
+
@logger.warn("Failed to retrieve AWS unique ID. Response code: #{response.code}")
|
250
250
|
return block.call(nil)
|
251
251
|
end
|
252
252
|
}
|
253
253
|
rescue Exception => e
|
254
|
-
|
254
|
+
@logger.warn("Failed to retrieve AWS unique ID. Error: #{e}")
|
255
255
|
block.call(nil)
|
256
256
|
end
|
257
257
|
end
|
@@ -19,7 +19,7 @@ require_relative "./websocket"
|
|
19
19
|
# our API reference for SignalFlow}. Hash keys will be symbols instead of
|
20
20
|
# strings.
|
21
21
|
class SignalFlowClient
|
22
|
-
def initialize(api_token,
|
22
|
+
def initialize(api_token, stream_endpoint)
|
23
23
|
@transport = SignalFlowWebsocketTransport.new(api_token, stream_endpoint)
|
24
24
|
end
|
25
25
|
|
@@ -17,9 +17,10 @@ class SignalFlowWebsocketTransport
|
|
17
17
|
# A lower bound on the amount of time to wait for a computation to start
|
18
18
|
COMPUTATION_START_TIMEOUT_SECONDS = 30
|
19
19
|
|
20
|
-
def initialize(api_token, stream_endpoint)
|
20
|
+
def initialize(api_token, stream_endpoint, logger: Logger.new(STDOUT, progname: "signalfx"))
|
21
21
|
@api_token = api_token
|
22
22
|
@stream_endpoint = stream_endpoint
|
23
|
+
@logger = logger
|
23
24
|
@compress = true
|
24
25
|
|
25
26
|
@lock = Mutex.new
|
@@ -217,7 +218,7 @@ class SignalFlowWebsocketTransport
|
|
217
218
|
|
218
219
|
message_received(m.data, m.type == :text)
|
219
220
|
rescue Exception => e
|
220
|
-
|
221
|
+
@logger.error("Error processing SignalFlow message: #{e.backtrace.first}: #{e.message} (#{e.class})")
|
221
222
|
end
|
222
223
|
end
|
223
224
|
|
@@ -237,7 +238,7 @@ class SignalFlowWebsocketTransport
|
|
237
238
|
{verify_mode: OpenSSL::SSL::VERIFY_PEER}) do |ws|
|
238
239
|
@ws = ws
|
239
240
|
ws.on :error do |e|
|
240
|
-
|
241
|
+
@logger.error("ERROR #{e.inspect}")
|
241
242
|
end
|
242
243
|
|
243
244
|
ws.on :close do |e|
|
data/lib/signalfx/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signalfx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SignalFx, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
218
|
version: '0'
|
219
219
|
requirements: []
|
220
220
|
rubyforge_project:
|
221
|
-
rubygems_version: 2.5.2
|
221
|
+
rubygems_version: 2.5.2.3
|
222
222
|
signing_key:
|
223
223
|
specification_version: 4
|
224
224
|
summary: Ruby client library for SignalFx
|