signalfx 2.0.5 → 3.2.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 +5 -5
- data/.gitignore +3 -3
- data/.travis.yml +7 -2
- data/README.md +51 -5
- data/lib/signalfx.rb +8 -4
- data/lib/signalfx/signal_fx_client.rb +14 -11
- data/lib/signalfx/signalflow/client.rb +2 -2
- data/lib/signalfx/signalflow/websocket.rb +69 -29
- data/lib/signalfx/version.rb +3 -3
- data/signalfx.gemspec +2 -3
- metadata +19 -29
- data/Gemfile.lock +0 -121
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6ce1db5601fdadfa9bf04572cc0cfee2449a9de8bc16aa906cdcd958f87a578e
|
4
|
+
data.tar.gz: 79ab897c2ba2b576ca19b52b49f93ac4871f406c4ec96337bb184ca2674b17df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bffa247b278caa35adb51d1bc87160e1d49836d3cf9a28f1f1ea886aae2c6407d17ac6385781a3fac080c2eee420e6902b298a73abfcb17bb69b5bb692195caa
|
7
|
+
data.tar.gz: a480615cc7a023d7c49f6876dd229281f13554e49b6fa114e7a84f1fbf36cbebb20e5e4c0f1a42159ec962f40ced466f92d592eff81f0f35f9f1a55d2fd071fd
|
data/.gitignore
CHANGED
@@ -33,9 +33,9 @@ build/
|
|
33
33
|
|
34
34
|
# for a library or gem, you might want to ignore these files since the code is
|
35
35
|
# intended to run in multiple environments; otherwise, check them in:
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
Gemfile.lock
|
37
|
+
.ruby-version
|
38
|
+
.ruby-gemset
|
39
39
|
|
40
40
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
41
41
|
.rvmrc
|
data/.travis.yml
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
sudo: required
|
2
1
|
language: ruby
|
3
|
-
dist:
|
2
|
+
dist: xenial
|
3
|
+
os: linux
|
4
|
+
|
5
|
+
# See: https://docs.travis-ci.com/user/languages/ruby/#bundler-20
|
6
|
+
before_install:
|
7
|
+
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
8
|
+
- gem install bundler -v '< 2'
|
4
9
|
|
5
10
|
rvm:
|
6
11
|
- 2.2.3
|
data/README.md
CHANGED
@@ -31,9 +31,33 @@ installing a more recent gem. Building and installing signalfx from source will
|
|
31
31
|
|
32
32
|
## Usage
|
33
33
|
|
34
|
-
### API access token
|
35
34
|
|
36
|
-
|
35
|
+
### Configuring your endpoints
|
36
|
+
|
37
|
+
In order to send your data to the correct realm, you may need to configure your
|
38
|
+
endpoints. If no endpoints are set manually, this library uses the ``us0`` realm by default.
|
39
|
+
If you are not in this realm, you will need to explicitly set the
|
40
|
+
endpoint config options below. To determine if you are in a different realm and need to
|
41
|
+
explicitly set the endpoints, check your profile page in the SignalFx
|
42
|
+
web application.
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
require('signalfx')
|
46
|
+
# Create client with alternate ingest endpoint
|
47
|
+
client = SignalFx.new('ORG_TOKEN', ingest_endpoint: 'https://ingest.{REALM}.signalfx.com',
|
48
|
+
stream_endpoint: 'https:/stream.{REALM}.signalfx.com')
|
49
|
+
|
50
|
+
```
|
51
|
+
|
52
|
+
### Access tokens
|
53
|
+
|
54
|
+
To use this library, you will also need to specify an access token when requesting
|
55
|
+
one of those clients. For the ingest client, you need to specify your
|
56
|
+
organization access token (which can be obtained from the
|
57
|
+
SignalFx organization you want to report data into). For the SignalFlow client, either an
|
58
|
+
organization access token or a user access token may be used. For more
|
59
|
+
information on access tokens, see the API's [authentication documentation](https://developers.signalfx.com/basics/authentication.html).
|
60
|
+
|
37
61
|
|
38
62
|
### Create client
|
39
63
|
|
@@ -55,7 +79,7 @@ Optional constructor parameters:
|
|
55
79
|
deployed on Amazon AWS.
|
56
80
|
+ **ingest_endpoint** (string): to override the target ingest API
|
57
81
|
endpoint.
|
58
|
-
+ **
|
82
|
+
+ **stream_endpoint** (string): to override the target stream endpoint for SignalFlow.
|
59
83
|
+ **timeout** (number): timeout, in seconds, for requests to SignalFx.
|
60
84
|
+ **batch_size** (number): size of datapoint batches to send to
|
61
85
|
SignalFx.
|
@@ -105,6 +129,11 @@ actually make it to SignalFx).
|
|
105
129
|
To send data through a HTTP proxy, set the environment variable `http_proxy`
|
106
130
|
with the proxy URL.
|
107
131
|
|
132
|
+
The SignalFlow client by default will use the proxy set in the `http_proxy`
|
133
|
+
envvar by default. To send SignalFlow websocket data through a separate proxy,
|
134
|
+
set the `proxy_url` keyword arg on the `client.signalflow` call.
|
135
|
+
|
136
|
+
|
108
137
|
### Sending multi-dimensional data
|
109
138
|
|
110
139
|
Reporting dimensions for the data is also optional, and can be
|
@@ -174,9 +203,26 @@ sending events.
|
|
174
203
|
|
175
204
|
You can run SignalFlow computations as well. This library supports all of the
|
176
205
|
functionality described in our [API docs for
|
177
|
-
SignalFlow](https://developers.signalfx.com/
|
206
|
+
SignalFlow](https://developers.signalfx.com/signalflow_reference.html). Right
|
178
207
|
now, the only supported transport mechanism is WebSockets.
|
179
208
|
|
209
|
+
#### Configure the SignalFlow client endpoint
|
210
|
+
|
211
|
+
By default, this library connects to the `us0` stream endpoint.
|
212
|
+
If you are not in this realm, you will need to explicitly set the
|
213
|
+
endpoint config options below when creating the client.
|
214
|
+
To determine if you are in a different realm and need to
|
215
|
+
explicitly set the endpoints, check your profile page in the SignalFx web application.
|
216
|
+
|
217
|
+
```ruby
|
218
|
+
client = SignalFx.new(
|
219
|
+
'ORG_TOKEN',
|
220
|
+
ingest_endpoint: 'https://ingest.{REALM}.signalfx.com',
|
221
|
+
stream_endpoint: 'wss://stream.{REALM}.signalfx.com'
|
222
|
+
)
|
223
|
+
```
|
224
|
+
|
225
|
+
|
180
226
|
To create a new SignalFlow client instance from an existing SignalFx client:
|
181
227
|
|
182
228
|
```ruby
|
@@ -185,7 +231,7 @@ signalflow = client.signalflow()
|
|
185
231
|
|
186
232
|
For the full API see [the RubyDocs for
|
187
233
|
the SignalFlow
|
188
|
-
client](
|
234
|
+
client](https://www.rubydoc.info/github/signalfx/signalfx-ruby/master/SignalFlowClient/)
|
189
235
|
(the `signalflow` var above).
|
190
236
|
|
191
237
|
There is also [a demo script](./examples/signalflow.rb) that shows basic usage.
|
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
|
@@ -171,8 +171,11 @@ class SignalFxClient
|
|
171
171
|
#
|
172
172
|
# @return [SignalFlowClient] a newly instantiated client, configured with the
|
173
173
|
# api token and endpoints from this class
|
174
|
-
def signalflow
|
175
|
-
|
174
|
+
def signalflow(proxy_url: nil, debug: false)
|
175
|
+
if ENV["http_proxy"] and proxy_url == nil
|
176
|
+
proxy_url = ENV["http_proxy"]
|
177
|
+
end
|
178
|
+
SignalFlowClient.new(@api_token, @stream_endpoint, proxy_url: proxy_url, debug: debug)
|
176
179
|
end
|
177
180
|
|
178
181
|
protected
|
@@ -223,14 +226,14 @@ class SignalFxClient
|
|
223
226
|
block.call(response)
|
224
227
|
end
|
225
228
|
else
|
226
|
-
|
229
|
+
@logger.error("Failed to send datapoints. Response code: #{response.code}")
|
227
230
|
if block
|
228
231
|
block.call(nil)
|
229
232
|
end
|
230
233
|
end
|
231
234
|
}
|
232
235
|
rescue Exception => e
|
233
|
-
|
236
|
+
@logger.error("Failed to send datapoints. Error: #{e}")
|
234
237
|
if block
|
235
238
|
block.call(nil)
|
236
239
|
end
|
@@ -246,12 +249,12 @@ class SignalFxClient
|
|
246
249
|
when 200
|
247
250
|
return block.call(response)
|
248
251
|
else
|
249
|
-
|
252
|
+
@logger.warn("Failed to retrieve AWS unique ID. Response code: #{response.code}")
|
250
253
|
return block.call(nil)
|
251
254
|
end
|
252
255
|
}
|
253
256
|
rescue Exception => e
|
254
|
-
|
257
|
+
@logger.warn("Failed to retrieve AWS unique ID. Error: #{e}")
|
255
258
|
block.call(nil)
|
256
259
|
end
|
257
260
|
end
|
@@ -19,8 +19,8 @@ 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,
|
23
|
-
@transport = SignalFlowWebsocketTransport.new(api_token, stream_endpoint)
|
22
|
+
def initialize(api_token, stream_endpoint, proxy_url = nil)
|
23
|
+
@transport = SignalFlowWebsocketTransport.new(api_token, stream_endpoint, proxy_url)
|
24
24
|
end
|
25
25
|
|
26
26
|
# Start a computation and attach to its output. If using WebSockets (the
|
@@ -2,12 +2,18 @@
|
|
2
2
|
|
3
3
|
require 'json'
|
4
4
|
require 'thread'
|
5
|
-
require 'websocket
|
5
|
+
require 'faye/websocket'
|
6
6
|
|
7
7
|
require_relative './binary'
|
8
8
|
require_relative './channel'
|
9
9
|
require_relative './computation'
|
10
10
|
|
11
|
+
class WebsocketError < StandardError
|
12
|
+
def initialize(ws_err)
|
13
|
+
super ws_err.message
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
11
17
|
|
12
18
|
# A WebSocket transport for SignalFlow. This should not be used directly by
|
13
19
|
# end-users.
|
@@ -17,13 +23,17 @@ class SignalFlowWebsocketTransport
|
|
17
23
|
# A lower bound on the amount of time to wait for a computation to start
|
18
24
|
COMPUTATION_START_TIMEOUT_SECONDS = 30
|
19
25
|
|
20
|
-
def initialize(api_token, stream_endpoint)
|
26
|
+
def initialize(api_token, stream_endpoint, proxy_url: nil, logger: Logger.new(STDOUT, progname: "signalfx"), debug: false)
|
21
27
|
@api_token = api_token
|
22
28
|
@stream_endpoint = stream_endpoint
|
29
|
+
@logger = logger
|
23
30
|
@compress = true
|
31
|
+
@proxy_url = proxy_url
|
32
|
+
@debug = debug
|
24
33
|
|
25
34
|
@lock = Mutex.new
|
26
35
|
@close_reason = nil
|
36
|
+
@last_error = nil
|
27
37
|
reinit
|
28
38
|
end
|
29
39
|
|
@@ -187,6 +197,9 @@ class SignalFlowWebsocketTransport
|
|
187
197
|
# The socket will be closed by the server if auth isn't successful
|
188
198
|
# within 5 seconds so no point in waiting longer
|
189
199
|
if Time.now - start_time > 5 || @close_reason
|
200
|
+
if @last_error
|
201
|
+
raise WebsocketError.new(@last_error)
|
202
|
+
end
|
190
203
|
raise "Could not authenticate to SignalFlow WebSocket: #{@close_reason}"
|
191
204
|
end
|
192
205
|
sleep 0.1
|
@@ -199,7 +212,11 @@ class SignalFlowWebsocketTransport
|
|
199
212
|
private :send_msg
|
200
213
|
|
201
214
|
def on_close(msg)
|
202
|
-
@
|
215
|
+
if @debug
|
216
|
+
@logger.info("Websocket on_close: #{msg}")
|
217
|
+
end
|
218
|
+
|
219
|
+
@close_reason = "(#{msg.code}, #{msg.reason})"
|
203
220
|
@chan_callbacks.keys.each do |channel_name|
|
204
221
|
invoke_callback_for_channel({ :event => "CONNECTION_CLOSED" }, channel_name)
|
205
222
|
end
|
@@ -207,21 +224,31 @@ class SignalFlowWebsocketTransport
|
|
207
224
|
reinit
|
208
225
|
end
|
209
226
|
|
227
|
+
def on_error(e)
|
228
|
+
@logger.error("ERROR #{e.inspect}")
|
229
|
+
@last_error = e
|
230
|
+
end
|
231
|
+
|
232
|
+
|
210
233
|
def on_message(m)
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
on_close(m)
|
215
|
-
return
|
216
|
-
end
|
234
|
+
if @debug
|
235
|
+
@logger.info("Websocket on_message: #{m}")
|
236
|
+
end
|
217
237
|
|
218
|
-
|
238
|
+
is_text = m.data.kind_of?(String)
|
239
|
+
|
240
|
+
begin
|
241
|
+
message_received(m.data, is_text)
|
219
242
|
rescue Exception => e
|
220
|
-
|
243
|
+
@logger.error("Error processing SignalFlow message: #{e.backtrace.first}: #{e.message} (#{e.class})")
|
221
244
|
end
|
222
245
|
end
|
223
246
|
|
224
247
|
def on_open
|
248
|
+
if @debug
|
249
|
+
@logger.info("Websocket on_open")
|
250
|
+
end
|
251
|
+
|
225
252
|
@ws.send({
|
226
253
|
:type => "authenticate",
|
227
254
|
:token => @api_token,
|
@@ -232,26 +259,38 @@ class SignalFlowWebsocketTransport
|
|
232
259
|
# reactor.
|
233
260
|
def startup_client
|
234
261
|
this = self
|
235
|
-
WebSocket::Client::Simple.connect("#{@stream_endpoint}/v2/signalflow/connect",
|
236
|
-
# Verification is disabled by default so this is essential
|
237
|
-
{verify_mode: OpenSSL::SSL::VERIFY_PEER}) do |ws|
|
238
|
-
@ws = ws
|
239
|
-
ws.on :error do |e|
|
240
|
-
puts "ERROR #{e.inspect}"
|
241
|
-
end
|
242
262
|
|
243
|
-
|
244
|
-
|
245
|
-
|
263
|
+
options = {
|
264
|
+
:tls => {
|
265
|
+
:verify_peer => true,
|
266
|
+
}
|
267
|
+
}
|
268
|
+
if @proxy_url
|
269
|
+
options[:proxy] = {
|
270
|
+
:origin => @proxy_url,
|
271
|
+
}
|
272
|
+
end
|
273
|
+
Thread.new {
|
274
|
+
EM.run {
|
275
|
+
@ws = Faye::WebSocket::Client.new("#{@stream_endpoint}/v2/signalflow/connect", [], options)
|
276
|
+
@ws.on :error do |e|
|
277
|
+
this.on_error(e)
|
278
|
+
end
|
246
279
|
|
247
|
-
|
248
|
-
|
249
|
-
|
280
|
+
@ws.on :close do |e|
|
281
|
+
this.on_close(e)
|
282
|
+
EM.stop_event_loop
|
283
|
+
end
|
250
284
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
285
|
+
@ws.on :message do |m|
|
286
|
+
this.on_message(m)
|
287
|
+
end
|
288
|
+
|
289
|
+
@ws.on :open do
|
290
|
+
this.on_open
|
291
|
+
end
|
292
|
+
}
|
293
|
+
}
|
255
294
|
end
|
256
295
|
private :startup_client
|
257
296
|
|
@@ -293,7 +332,8 @@ class SignalFlowWebsocketTransport
|
|
293
332
|
if is_text
|
294
333
|
JSON.parse(raw_msg, {:symbolize_names => true})
|
295
334
|
else
|
296
|
-
|
335
|
+
# Convert the byte array to a string
|
336
|
+
BinaryMessageParser.parse(raw_msg.pack("c*"))
|
297
337
|
end
|
298
338
|
end
|
299
339
|
private :parse_message
|
data/lib/signalfx/version.rb
CHANGED
data/signalfx.gemspec
CHANGED
@@ -29,13 +29,12 @@ Gem::Specification.new do |spec|
|
|
29
29
|
|
30
30
|
spec.required_ruby_version = '>= 2.2.0'
|
31
31
|
|
32
|
-
spec.add_development_dependency "bundler", "~> 1.
|
32
|
+
spec.add_development_dependency "bundler", "~> 1.17.3"
|
33
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.3"
|
35
35
|
spec.add_development_dependency "webmock", "~> 2.3.1"
|
36
36
|
spec.add_development_dependency "thin", "~> 1.7"
|
37
37
|
spec.add_development_dependency "pry"
|
38
|
-
spec.add_development_dependency "faye-websocket", "~> 0.10.7"
|
39
38
|
|
40
39
|
# protobuf enforces this check but builds with a newer Ruby version so it's not enabled.
|
41
40
|
# Incorporating here to allow 2.2.0-1 users to successfully build and install signalfx.
|
@@ -44,5 +43,5 @@ Gem::Specification.new do |spec|
|
|
44
43
|
|
45
44
|
spec.add_dependency "protobuf", ">= 3.5.1"
|
46
45
|
spec.add_dependency "rest-client", "~> 2.0"
|
47
|
-
spec.add_dependency
|
46
|
+
spec.add_dependency "faye-websocket", ">= 0.10.7", "< 0.12.0"
|
48
47
|
end
|
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: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SignalFx, Inc
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.17.3
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.17.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,20 +94,6 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: faye-websocket
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.10.7
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.10.7
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: activesupport
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,19 +137,25 @@ dependencies:
|
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: '2.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
|
-
name: websocket
|
140
|
+
name: faye-websocket
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
|
-
- - "
|
143
|
+
- - ">="
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
145
|
+
version: 0.10.7
|
146
|
+
- - "<"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: 0.12.0
|
160
149
|
type: :runtime
|
161
150
|
prerelease: false
|
162
151
|
version_requirements: !ruby/object:Gem::Requirement
|
163
152
|
requirements:
|
164
|
-
- - "
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 0.10.7
|
156
|
+
- - "<"
|
165
157
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
158
|
+
version: 0.12.0
|
167
159
|
description: This is a programmatic interface in Ruby for SignalFx's metadata and
|
168
160
|
ingest APIs. It is meant to provide a base for communicating with SignalFx APIs
|
169
161
|
that can be easily leveraged by scripts and applications to interact with SignalFx
|
@@ -177,7 +169,6 @@ files:
|
|
177
169
|
- ".gitignore"
|
178
170
|
- ".travis.yml"
|
179
171
|
- Gemfile
|
180
|
-
- Gemfile.lock
|
181
172
|
- README.md
|
182
173
|
- Rakefile
|
183
174
|
- bin/console
|
@@ -202,7 +193,7 @@ homepage: https://signalfx.com
|
|
202
193
|
licenses:
|
203
194
|
- Apache Software License v2 © SignalFx
|
204
195
|
metadata: {}
|
205
|
-
post_install_message:
|
196
|
+
post_install_message:
|
206
197
|
rdoc_options: []
|
207
198
|
require_paths:
|
208
199
|
- lib
|
@@ -217,9 +208,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
208
|
- !ruby/object:Gem::Version
|
218
209
|
version: '0'
|
219
210
|
requirements: []
|
220
|
-
|
221
|
-
|
222
|
-
signing_key:
|
211
|
+
rubygems_version: 3.1.2
|
212
|
+
signing_key:
|
223
213
|
specification_version: 4
|
224
214
|
summary: Ruby client library for SignalFx
|
225
215
|
test_files: []
|
data/Gemfile.lock
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
signalfx (2.0.5)
|
5
|
-
activesupport (>= 3.2)
|
6
|
-
protobuf (>= 3.5.1)
|
7
|
-
rest-client (~> 2.0)
|
8
|
-
websocket-client-simple (~> 0.3.0)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: https://rubygems.org/
|
12
|
-
specs:
|
13
|
-
activesupport (5.2.1)
|
14
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
15
|
-
i18n (>= 0.7, < 2)
|
16
|
-
minitest (~> 5.1)
|
17
|
-
tzinfo (~> 1.1)
|
18
|
-
addressable (2.5.2)
|
19
|
-
public_suffix (>= 2.0.2, < 4.0)
|
20
|
-
coderay (1.1.1)
|
21
|
-
concurrent-ruby (1.0.5)
|
22
|
-
crack (0.4.3)
|
23
|
-
safe_yaml (~> 1.0.0)
|
24
|
-
daemons (1.2.4)
|
25
|
-
diff-lcs (1.2.5)
|
26
|
-
docile (1.3.1)
|
27
|
-
domain_name (0.5.20180417)
|
28
|
-
unf (>= 0.0.5, < 1.0.0)
|
29
|
-
event_emitter (0.2.6)
|
30
|
-
eventmachine (1.2.5)
|
31
|
-
faye-websocket (0.10.7)
|
32
|
-
eventmachine (>= 0.12.0)
|
33
|
-
websocket-driver (>= 0.5.1)
|
34
|
-
hashdiff (0.3.7)
|
35
|
-
http-cookie (1.0.3)
|
36
|
-
domain_name (~> 0.5)
|
37
|
-
i18n (1.1.0)
|
38
|
-
concurrent-ruby (~> 1.0)
|
39
|
-
json (2.1.0)
|
40
|
-
method_source (0.8.2)
|
41
|
-
middleware (0.1.0)
|
42
|
-
mime-types (3.2.2)
|
43
|
-
mime-types-data (~> 3.2015)
|
44
|
-
mime-types-data (3.2018.0812)
|
45
|
-
minitest (5.11.3)
|
46
|
-
netrc (0.11.0)
|
47
|
-
protobuf (3.8.4)
|
48
|
-
activesupport (>= 3.2)
|
49
|
-
middleware
|
50
|
-
thor
|
51
|
-
thread_safe
|
52
|
-
pry (0.10.4)
|
53
|
-
coderay (~> 1.1.0)
|
54
|
-
method_source (~> 0.8.1)
|
55
|
-
slop (~> 3.4)
|
56
|
-
public_suffix (3.0.2)
|
57
|
-
rack (2.0.3)
|
58
|
-
rake (10.4.2)
|
59
|
-
rest-client (2.0.2)
|
60
|
-
http-cookie (>= 1.0.2, < 2.0)
|
61
|
-
mime-types (>= 1.16, < 4.0)
|
62
|
-
netrc (~> 0.8)
|
63
|
-
rspec (3.3.0)
|
64
|
-
rspec-core (~> 3.3.0)
|
65
|
-
rspec-expectations (~> 3.3.0)
|
66
|
-
rspec-mocks (~> 3.3.0)
|
67
|
-
rspec-core (3.3.2)
|
68
|
-
rspec-support (~> 3.3.0)
|
69
|
-
rspec-expectations (3.3.1)
|
70
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
71
|
-
rspec-support (~> 3.3.0)
|
72
|
-
rspec-mocks (3.3.2)
|
73
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
74
|
-
rspec-support (~> 3.3.0)
|
75
|
-
rspec-support (3.3.0)
|
76
|
-
safe_yaml (1.0.4)
|
77
|
-
simplecov (0.16.1)
|
78
|
-
docile (~> 1.1)
|
79
|
-
json (>= 1.8, < 3)
|
80
|
-
simplecov-html (~> 0.10.0)
|
81
|
-
simplecov-html (0.10.2)
|
82
|
-
slop (3.6.0)
|
83
|
-
thin (1.7.2)
|
84
|
-
daemons (~> 1.0, >= 1.0.9)
|
85
|
-
eventmachine (~> 1.0, >= 1.0.4)
|
86
|
-
rack (>= 1, < 3)
|
87
|
-
thor (0.20.0)
|
88
|
-
thread_safe (0.3.6)
|
89
|
-
tzinfo (1.2.5)
|
90
|
-
thread_safe (~> 0.1)
|
91
|
-
unf (0.1.4)
|
92
|
-
unf_ext
|
93
|
-
unf_ext (0.0.7.5)
|
94
|
-
webmock (2.3.2)
|
95
|
-
addressable (>= 2.3.6)
|
96
|
-
crack (>= 0.3.2)
|
97
|
-
hashdiff
|
98
|
-
websocket (1.2.8)
|
99
|
-
websocket-client-simple (0.3.0)
|
100
|
-
event_emitter
|
101
|
-
websocket
|
102
|
-
websocket-driver (0.6.5)
|
103
|
-
websocket-extensions (>= 0.1.0)
|
104
|
-
websocket-extensions (0.1.2)
|
105
|
-
|
106
|
-
PLATFORMS
|
107
|
-
ruby
|
108
|
-
|
109
|
-
DEPENDENCIES
|
110
|
-
bundler (~> 1.10)
|
111
|
-
faye-websocket (~> 0.10.7)
|
112
|
-
pry
|
113
|
-
rake (~> 10.0)
|
114
|
-
rspec (~> 3.3)
|
115
|
-
signalfx!
|
116
|
-
simplecov
|
117
|
-
thin (~> 1.7)
|
118
|
-
webmock (~> 2.3.1)
|
119
|
-
|
120
|
-
BUNDLED WITH
|
121
|
-
1.16.3
|