stackify-ruby-apm 1.8.0 → 1.10.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.
@@ -0,0 +1,53 @@
1
+ require 'base64'
2
+ require 'stringio'
3
+ require 'zlib'
4
+ require 'stackify_apm/root_info'
5
+ require 'stackify_apm/serializers'
6
+
7
+
8
+ module StackifyRubyAPM
9
+ # This class will handle the writing of messages through a logfile.
10
+ # @api private
11
+ class AWSLoggerClient
12
+ include Log
13
+ COMPRESS_DEFAULT_LEVEL = 6
14
+
15
+ def initialize(config)
16
+ @config = config
17
+ @transaction_serializers = Serializers::Transactions.new(@config)
18
+ @logger = Logger.new(STDOUT)
19
+ @logger.level = :debug
20
+ @logger.formatter = proc do |severity, datetime, progname, msg|
21
+ "STACKIFY-TRACE: #{msg}\n"
22
+ end
23
+ end
24
+
25
+ # This method will build an Array of Transactions in a json format.
26
+ # It will accept Array of transactions.
27
+ def post(transactions = [])
28
+ # convert transactions to json
29
+ json_traces = []
30
+ transactions.each do |transaction|
31
+ # convert transaction to json
32
+ json_transaction = @transaction_serializers.build_json(@config, transaction).to_json
33
+
34
+ # add to json traces array
35
+ json_traces.push(json_transaction)
36
+ end
37
+
38
+ return unless ENV['STACKIFY_RUBY_ENV'] != 'rspec'
39
+
40
+ json_traces.each do |json_trace|
41
+ str = StringIO.new mode='w'
42
+ gz = Zlib::GzipWriter.new str, 6
43
+ gz.write json_trace.to_s
44
+ gz.close
45
+ compressed = Base64.strict_encode64 str.string
46
+ @logger.debug compressed
47
+ end
48
+ debug '[LogClient] post() Successfully write to logfile.' if ENV['STACKIFY_TRANSPORT_LOG_LEVEL'] == '0'
49
+ rescue StandardError => e
50
+ debug "[LogClient] post() exception: #{e.inspect}"
51
+ end
52
+ end
53
+ end
@@ -4,7 +4,7 @@ require 'net_http_unix'
4
4
  require 'ostruct'
5
5
 
6
6
  module StackifyRubyAPM
7
- # This class will handle the sending of protobuf messages through unix domain socket.
7
+ # This class will handle the sending of transaction messages through unix domain socket.
8
8
  # @api private
9
9
  class UnixSocketClient < AgentBaseTransport
10
10
  include Log
@@ -14,10 +14,18 @@ module StackifyRubyAPM
14
14
  super(config)
15
15
  end
16
16
 
17
+ def get_protobuf_headers
18
+ 'application/x-protobuf'
19
+ end
20
+
21
+ def get_json_headers
22
+ 'application/json'
23
+ end
24
+
17
25
  # rubocop:disable Metrics/CyclomaticComplexity
18
26
  # rubocop:disable Metrics/PerceivedComplexity
19
27
  #
20
- # This method will send a protobuf message to the unix domain socket.
28
+ # This method will send a transaction message to the unix domain socket.
21
29
  # It will accept Array of transactions.
22
30
  def post(transactions = [])
23
31
  debug '[UnixSocketClient] post()' if ENV['STACKIFY_TRANSPORT_LOG_LEVEL'] == '0'
@@ -27,11 +35,10 @@ module StackifyRubyAPM
27
35
  delay = @config.delay_seconds
28
36
  begin
29
37
  # Convert message into binary and send it to unix domain socket
30
- protobuf_obj = build_message(transactions)
31
- message = StackifyProtoBuf::Traces.encode(protobuf_obj)
38
+ message = get_json_message(transactions)
32
39
  client = NetX::HTTPUnix.new('unix://' + @config.unix_socket_path)
33
40
  req = Net::HTTP::Post.new(@config.agent_traces_url)
34
- req.set_content_type('application/x-protobuf')
41
+ req.set_content_type(get_json_headers)
35
42
  req.body = message
36
43
  response = client.request(req)
37
44
  debug "[UnixSocketClient] status_code = #{response.code}" if ENV['STACKIFY_TRANSPORT_LOG_LEVEL'] == '0'
@@ -14,6 +14,8 @@ module StackifyRubyAPM
14
14
  StackifyRubyAPM::UnixSocketClient.new(config)
15
15
  when StackifyRubyAPM::AGENT_HTTP
16
16
  StackifyRubyAPM::AgentHTTPClient.new(config)
17
+ when StackifyRubyAPM::LOGGING
18
+ StackifyRubyAPM::AWSLoggerClient.new(config)
17
19
  else
18
20
  StackifyRubyAPM::LogClient.new(config)
19
21
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Sets the version of the APM
4
4
  module StackifyRubyAPM
5
- VERSION = '1.8.0'.freeze
5
+ VERSION = '1.10.4'.freeze
6
6
  end
@@ -33,9 +33,7 @@ require 'stackify_apm/transport/agent_base'
33
33
  require 'stackify_apm/transport/log_client'
34
34
  require 'stackify_apm/transport/unix_socket_client'
35
35
  require 'stackify_apm/transport/agent_http_client'
36
-
37
- require 'google/protobuf'
38
- require 'proto/stackify_trace'
36
+ require 'stackify_apm/transport/aws_lambda_logging'
39
37
 
40
38
  # Checks if the framework using is Rails
41
39
  require 'stackify_apm/railtie' if defined?(::Rails::Railtie)
@@ -0,0 +1,62 @@
1
+ require 'stackify_ruby_apm'
2
+
3
+ module AWS
4
+ def self.instrument
5
+ config = {
6
+ transport: 'logging',
7
+ queue: false,
8
+ }
9
+ StackifyRubyAPM.start config
10
+ end
11
+
12
+ def self.handler(event:, context:, &block)
13
+ begin
14
+ ctx = StackifyRubyAPM::Context.new
15
+ ctx.add_aws_context({:arn => context.invoked_function_arn})
16
+ transaction = StackifyRubyAPM.transaction context.function_name, 'TASK', context: ctx
17
+ ret = block.call
18
+ rescue StackifyRubyAPM::InternalError
19
+ raise # Don't report StackifyRubyAPM errors
20
+ rescue StandardError => e
21
+ StackifyRubyAPM.report e
22
+ raise e
23
+ ensure
24
+ transaction.submit()
25
+ end
26
+ ret
27
+ end
28
+
29
+ # STACKIFY LAMBDA HANDLER
30
+ #
31
+ # @return original function execution
32
+ def self.stackify_handler(event:, context:)
33
+ begin
34
+ if !StackifyRubyAPM.running?
35
+ config = {
36
+ transport: 'logging',
37
+ queue: false,
38
+ }
39
+ StackifyRubyAPM.start config
40
+ end
41
+
42
+ ctx = StackifyRubyAPM::Context.new
43
+ ctx.add_aws_context({:arn => context.invoked_function_arn})
44
+ transaction = StackifyRubyAPM.transaction context.function_name, 'TASK', context: ctx
45
+
46
+ lambda_handler = StackifyRubyAPM.agent.config.lambda_handler.split('.')
47
+ function_file = lambda_handler[0]
48
+ function_name = lambda_handler[-1]
49
+
50
+ require "./#{function_file}"
51
+
52
+ send(function_name, event: event, context: context)
53
+ rescue StackifyRubyAPM::InternalError
54
+ raise # Don't report StackifyRubyAPM errors
55
+ rescue StandardError => e
56
+ StackifyRubyAPM.report e
57
+ raise e
58
+ ensure
59
+ transaction.submit()
60
+ end
61
+ end
62
+ end
@@ -21,13 +21,44 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
+ # rails
25
+ if RUBY_VERSION > '2.5'
26
+ spec.add_development_dependency 'rails', '~> 5.0'
27
+ else
28
+ spec.add_development_dependency 'rails', '~> 4.0'
29
+ end
30
+
31
+ # bigdecimal
32
+ if RUBY_VERSION > '2.5'
33
+ spec.add_development_dependency 'bigdecimal'
34
+ end
35
+
24
36
  spec.add_development_dependency 'bundler', '~> 1.16'
25
37
  spec.add_development_dependency 'rake', '~> 10.0'
26
38
  spec.add_development_dependency 'rspec', '~> 3.0'
39
+ spec.add_development_dependency 'activerecord'
40
+ spec.add_development_dependency 'curb', '0.9.8'
41
+ spec.add_development_dependency 'fakeredis'
42
+ spec.add_development_dependency 'http'
43
+ spec.add_development_dependency 'httpclient'
44
+ spec.add_development_dependency 'mongo'
45
+ spec.add_development_dependency 'mysql2'
46
+ spec.add_development_dependency 'pg', '~> 0.20'
47
+ spec.add_development_dependency 'rack-test'
48
+ spec.add_development_dependency 'rubocop'
49
+ spec.add_development_dependency 'sequel'
50
+ spec.add_development_dependency 'sinatra'
51
+ spec.add_development_dependency 'sinatra-activerecord'
52
+ spec.add_development_dependency 'sqlite3', '1.3.13'
53
+ spec.add_development_dependency 'stackify-api-ruby'
54
+ spec.add_development_dependency 'timecop'
55
+ spec.add_development_dependency 'to_bool'
56
+ spec.add_development_dependency 'webmock'
57
+ spec.add_development_dependency 'delayed_job'
58
+
27
59
  spec.add_dependency('concurrent-ruby', '~> 1.0')
28
60
  spec.add_dependency('delegate_matcher', '~> 0.4')
29
61
  spec.add_dependency('faraday', '~> 0.8')
30
- spec.add_dependency('google-protobuf', '3.5.0')
31
62
  spec.add_dependency('net_http_unix', '~> 0.2')
32
- spec.add_dependency('rufus-scheduler', '~> 3.5')
63
+ spec.add_dependency('rufus-scheduler', '~> 3.0')
33
64
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackify-ruby-apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.10.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stackify
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-20 00:00:00.000000000 Z
11
+ date: 2020-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bigdecimal
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,272 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activerecord
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: curb
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.9.8
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.9.8
111
+ - !ruby/object:Gem::Dependency
112
+ name: fakeredis
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: http
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: httpclient
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mongo
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: mysql2
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: pg
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.20'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.20'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rack-test
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubocop
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: sequel
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: sinatra
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: sinatra-activerecord
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: sqlite3
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - '='
270
+ - !ruby/object:Gem::Version
271
+ version: 1.3.13
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - '='
277
+ - !ruby/object:Gem::Version
278
+ version: 1.3.13
279
+ - !ruby/object:Gem::Dependency
280
+ name: stackify-api-ruby
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: timecop
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: to_bool
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
321
+ - !ruby/object:Gem::Dependency
322
+ name: webmock
323
+ requirement: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - ">="
326
+ - !ruby/object:Gem::Version
327
+ version: '0'
328
+ type: :development
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ version: '0'
335
+ - !ruby/object:Gem::Dependency
336
+ name: delayed_job
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ">="
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ version: '0'
55
349
  - !ruby/object:Gem::Dependency
56
350
  name: concurrent-ruby
57
351
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +388,6 @@ dependencies:
94
388
  - - "~>"
95
389
  - !ruby/object:Gem::Version
96
390
  version: '0.8'
97
- - !ruby/object:Gem::Dependency
98
- name: google-protobuf
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '='
102
- - !ruby/object:Gem::Version
103
- version: 3.5.0
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '='
109
- - !ruby/object:Gem::Version
110
- version: 3.5.0
111
391
  - !ruby/object:Gem::Dependency
112
392
  name: net_http_unix
113
393
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +408,14 @@ dependencies:
128
408
  requirements:
129
409
  - - "~>"
130
410
  - !ruby/object:Gem::Version
131
- version: '3.5'
411
+ version: '3.0'
132
412
  type: :runtime
133
413
  prerelease: false
134
414
  version_requirements: !ruby/object:Gem::Requirement
135
415
  requirements:
136
416
  - - "~>"
137
417
  - !ruby/object:Gem::Version
138
- version: '3.5'
418
+ version: '3.0'
139
419
  description:
140
420
  email:
141
421
  - support@stackify.com
@@ -143,18 +423,12 @@ executables: []
143
423
  extensions: []
144
424
  extra_rdoc_files: []
145
425
  files:
146
- - ".gemignore"
147
- - ".gitignore"
148
- - ".rspec"
149
- - ".rubocop.yml"
150
- - ".ruby-version"
151
426
  - Gemfile
152
- - Gemfile.lock
153
427
  - LICENSE.md
154
428
  - README.md
155
429
  - Rakefile
156
- - docker-compose.yml
157
430
  - lib/proto/stackify_trace.rb
431
+ - lib/stackify-ruby-apm-lambda.rb
158
432
  - lib/stackify-ruby-apm.rb
159
433
  - lib/stackify_apm/agent.rb
160
434
  - lib/stackify_apm/config.rb
@@ -197,6 +471,7 @@ files:
197
471
  - lib/stackify_apm/spies/curb/easy.rb
198
472
  - lib/stackify_apm/spies/curb/multi.rb
199
473
  - lib/stackify_apm/spies/custom_instrumenter.rb
474
+ - lib/stackify_apm/spies/delayed_job.rb
200
475
  - lib/stackify_apm/spies/httparty.rb
201
476
  - lib/stackify_apm/spies/httpclient.rb
202
477
  - lib/stackify_apm/spies/httprb.rb
@@ -204,6 +479,7 @@ files:
204
479
  - lib/stackify_apm/spies/net_http.rb
205
480
  - lib/stackify_apm/spies/redis.rb
206
481
  - lib/stackify_apm/spies/sequel.rb
482
+ - lib/stackify_apm/spies/sidekiq.rb
207
483
  - lib/stackify_apm/spies/sinatra.rb
208
484
  - lib/stackify_apm/spies/sinatra_activerecord/mysql_adapter.rb
209
485
  - lib/stackify_apm/spies/sinatra_activerecord/postgresql_adapter.rb
@@ -218,6 +494,7 @@ files:
218
494
  - lib/stackify_apm/transaction.rb
219
495
  - lib/stackify_apm/transport/agent_base.rb
220
496
  - lib/stackify_apm/transport/agent_http_client.rb
497
+ - lib/stackify_apm/transport/aws_lambda_logging.rb
221
498
  - lib/stackify_apm/transport/log_client.rb
222
499
  - lib/stackify_apm/transport/unix_socket_client.rb
223
500
  - lib/stackify_apm/transport_selector.rb
@@ -230,6 +507,7 @@ files:
230
507
  - lib/stackify_apm/version.rb
231
508
  - lib/stackify_apm/worker.rb
232
509
  - lib/stackify_ruby_apm.rb
510
+ - lib/stackify_ruby_apm_lambda.rb
233
511
  - stackify-ruby-apm.gemspec
234
512
  homepage: http://www.stackify.com
235
513
  licenses: