stackify-ruby-apm 1.10.2 → 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.
- checksums.yaml +4 -4
- data/lib/stackify_apm/config.rb +1 -0
- data/lib/stackify_apm/context.rb +1 -1
- data/lib/stackify_apm/helper/database_helper.rb +1 -1
- data/lib/stackify_apm/instrumenter_helper.rb +3 -4
- data/lib/stackify_apm/root_info.rb +1 -1
- data/lib/stackify_apm/spies/delayed_job.rb +49 -0
- data/lib/stackify_apm/version.rb +1 -1
- data/stackify-ruby-apm.gemspec +1 -0
- metadata +17 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 4b2d9a08bd90459363bada0dcc980ab8ee610d5f7bbb41100c53f4d6dc8be6ac
         | 
| 4 | 
            +
              data.tar.gz: 624b3bd6b64a48270927b77e94663e11416e8f0be84fd86b32b6f5c215251510
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8e749581d00b6d425476dfd7683a86b4ccd67491a5713c50be3602668e666519d94ca3abc74f561454d8cb2283113426caee59e226cea4e2dd83ba1bd0fbc856
         | 
| 7 | 
            +
              data.tar.gz: 9f6784afe5998f4d5c3b5c2501df118d19384b0bd00e9e57c20d58ccc1987021eed0ce114b642624b5ca11339d51c2a91d5527a6a10eab123f57fc8b61fd479b
         | 
    
        data/lib/stackify_apm/config.rb
    CHANGED
    
    
    
        data/lib/stackify_apm/context.rb
    CHANGED
    
    
| @@ -90,9 +90,8 @@ module StackifyRubyAPM | |
| 90 90 | 
             
                                      )
         | 
| 91 91 | 
             
                                    end
         | 
| 92 92 |  | 
| 93 | 
            -
                              req = #{current_method_without}(*args, &block)
         | 
| 94 93 | 
             
                              StackifyRubyAPM.span name, type, context: ctx do
         | 
| 95 | 
            -
                                 | 
| 94 | 
            +
                                #{current_method_without}(*args, &block)
         | 
| 96 95 | 
             
                              end
         | 
| 97 96 | 
             
                            else
         | 
| 98 97 | 
             
                              return #{current_method_without}(*args, &block)
         | 
| @@ -169,9 +168,9 @@ module StackifyRubyAPM | |
| 169 168 | 
             
                                        CATEGORY: 'Ruby'
         | 
| 170 169 | 
             
                                      )
         | 
| 171 170 | 
             
                                    end
         | 
| 172 | 
            -
             | 
| 171 | 
            +
             | 
| 173 172 | 
             
                              StackifyRubyAPM.span name, type, context: ctx do
         | 
| 174 | 
            -
                                 | 
| 173 | 
            +
                                _self_without_apm_#{current_method}(*args, &block)
         | 
| 175 174 | 
             
                              end
         | 
| 176 175 | 
             
                            else
         | 
| 177 176 | 
             
                              return _self_without_apm_#{current_method}(*args, &block)
         | 
| @@ -26,7 +26,7 @@ module StackifyRubyAPM | |
| 26 26 |  | 
| 27 27 | 
             
                  hash = {
         | 
| 28 28 | 
             
                    PROFILER_VERSION: StackifyRubyAPM::VERSION,
         | 
| 29 | 
            -
                    CATEGORY: 'Ruby',
         | 
| 29 | 
            +
                    CATEGORY: @transaction.context.category || 'Ruby',
         | 
| 30 30 | 
             
                    APPLICATION_PATH: '/',
         | 
| 31 31 | 
             
                    APPLICATION_FILESYSTEM_PATH: @config.root_path,
         | 
| 32 32 | 
             
                    APPLICATION_NAME: @config.application_name.strip,
         | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Monkey patch for the delayed_job class for running async tasks.
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module StackifyRubyAPM
         | 
| 7 | 
            +
              # @api private
         | 
| 8 | 
            +
              module Spies
         | 
| 9 | 
            +
                # @api private
         | 
| 10 | 
            +
                class DelayedJobSpy
         | 
| 11 | 
            +
                  def install
         | 
| 12 | 
            +
                    Delayed::Backend::Base.class_eval do
         | 
| 13 | 
            +
                      alias_method 'invoke_job_without_apm', 'invoke_job'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                      def invoke_job(*args, &block)
         | 
| 16 | 
            +
                        ret = nil
         | 
| 17 | 
            +
                        begin
         | 
| 18 | 
            +
                          name = nil
         | 
| 19 | 
            +
                          if payload_object.is_a?(::Delayed::PerformableMethod)
         | 
| 20 | 
            +
                            object = payload_object.object
         | 
| 21 | 
            +
                            klass = object.is_a?(Class) ? object : object.class
         | 
| 22 | 
            +
                            class_name = klass.name
         | 
| 23 | 
            +
                            separator = payload_object.object.is_a?(Class) ? '.' : '#'
         | 
| 24 | 
            +
                            method_name = payload_object.method_name
         | 
| 25 | 
            +
                            name = "#{class_name}#{separator}#{method_name}"
         | 
| 26 | 
            +
                          else
         | 
| 27 | 
            +
                            name = payload_object.class.name
         | 
| 28 | 
            +
                          end
         | 
| 29 | 
            +
                          ctx = StackifyRubyAPM::Context.new
         | 
| 30 | 
            +
                          ctx.category = 'Delayed::Job'
         | 
| 31 | 
            +
                          transaction = StackifyRubyAPM.transaction name, 'TASK', context: ctx
         | 
| 32 | 
            +
                          ret = invoke_job_without_apm(*args, &block)
         | 
| 33 | 
            +
                        rescue StackifyRubyAPM::InternalError
         | 
| 34 | 
            +
                          raise # Don't report StackifyRubyAPM errors
         | 
| 35 | 
            +
                        rescue StandardError => e
         | 
| 36 | 
            +
                          StackifyRubyAPM.report e
         | 
| 37 | 
            +
                          raise e
         | 
| 38 | 
            +
                        ensure
         | 
| 39 | 
            +
                          transaction.submit()
         | 
| 40 | 
            +
                        end
         | 
| 41 | 
            +
                        ret
         | 
| 42 | 
            +
                      end
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                register 'Delayed::Backend::Base', 'delayed/backend/base', DelayedJobSpy.new
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
            end
         | 
    
        data/lib/stackify_apm/version.rb
    CHANGED
    
    
    
        data/stackify-ruby-apm.gemspec
    CHANGED
    
    | @@ -54,6 +54,7 @@ Gem::Specification.new do |spec| | |
| 54 54 | 
             
              spec.add_development_dependency 'timecop'
         | 
| 55 55 | 
             
              spec.add_development_dependency 'to_bool'
         | 
| 56 56 | 
             
              spec.add_development_dependency 'webmock'
         | 
| 57 | 
            +
              spec.add_development_dependency 'delayed_job'
         | 
| 57 58 |  | 
| 58 59 | 
             
              spec.add_dependency('concurrent-ruby', '~> 1.0')
         | 
| 59 60 | 
             
              spec.add_dependency('delegate_matcher', '~> 0.4')
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: stackify-ruby-apm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.10. | 
| 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- | 
| 11 | 
            +
            date: 2020-06-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -332,6 +332,20 @@ dependencies: | |
| 332 332 | 
             
                - - ">="
         | 
| 333 333 | 
             
                  - !ruby/object:Gem::Version
         | 
| 334 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'
         | 
| 335 349 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 336 350 | 
             
              name: concurrent-ruby
         | 
| 337 351 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -457,6 +471,7 @@ files: | |
| 457 471 | 
             
            - lib/stackify_apm/spies/curb/easy.rb
         | 
| 458 472 | 
             
            - lib/stackify_apm/spies/curb/multi.rb
         | 
| 459 473 | 
             
            - lib/stackify_apm/spies/custom_instrumenter.rb
         | 
| 474 | 
            +
            - lib/stackify_apm/spies/delayed_job.rb
         | 
| 460 475 | 
             
            - lib/stackify_apm/spies/httparty.rb
         | 
| 461 476 | 
             
            - lib/stackify_apm/spies/httpclient.rb
         | 
| 462 477 | 
             
            - lib/stackify_apm/spies/httprb.rb
         |