signalfx-lambda 0.2.2 → 0.2.3
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/README.md +7 -2
- data/lib/signalfx/lambda/metrics.rb +8 -2
- data/lib/signalfx/lambda/tracing.rb +4 -4
- data/lib/signalfx/lambda/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: dcbb892d9545a5f51a42fa96a05d6ceca56837feaf63fe1d1f9841cd0f213974
         | 
| 4 | 
            +
              data.tar.gz: 69fe913cbcf61d04852e5ad74c99b87291809272ff55eb2dc4ec49f6633c4399
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 051f24fe3ccb000e698cb08516cb2ed76afb43bf5569dad2c3ec4fa7427e54b1adaa0d30ed8e2d6220fb3e77fac0071b1c343a8310bad74731a16a33d607c9e7
         | 
| 7 | 
            +
              data.tar.gz: 07bca8e0c204e82f783619a04e9adeddb061e2e9a8c93bd19773f47eb7a46f5090da6230bb8ab5f242c46e460b5c082569f9e27dbc8441e5c38c8272647cdce7
         | 
    
        data/README.md
    CHANGED
    
    | @@ -23,8 +23,10 @@ Add this line to the top of your file: | |
| 23 23 | 
             
            require 'signalfx/lambda'
         | 
| 24 24 | 
             
            ```
         | 
| 25 25 |  | 
| 26 | 
            -
            To use the wrapper,  | 
| 27 | 
            -
            in the console, where `source` is your Ruby source file | 
| 26 | 
            +
            To use the wrapper, put `source.SignalFx::Lambda.wrapped_handler` as the handler
         | 
| 27 | 
            +
            in the AWS console, where `source` is your Ruby source file (when you use AWS online
         | 
| 28 | 
            +
            code editor the `source` is `lambda_function` and a complete handler value is
         | 
| 29 | 
            +
            `lambda_function.SignalFx::Lambda.wrapped_handler`). Then somewhere after
         | 
| 28 30 | 
             
            your handler function definition, the function can be registered to be
         | 
| 29 31 | 
             
            automatically traced:
         | 
| 30 32 |  | 
| @@ -105,6 +107,9 @@ ingest endpoint (https://ingest.{REALM}.signalfx.com). To determine what realm | |
| 105 107 | 
             
            you are in, check your profile page in the SignalFx web application (click the
         | 
| 106 108 | 
             
            avatar in the upper right and click My Profile).
         | 
| 107 109 |  | 
| 110 | 
            +
            Send operation timeout (in seconds) can be specified with `SIGNALFX_SEND_TIMEOUT`
         | 
| 111 | 
            +
            environment variable. Default value is 1 second.
         | 
| 112 | 
            +
             
         | 
| 108 113 | 
             
            ## Trace and tags
         | 
| 109 114 |  | 
| 110 115 | 
             
            The wrapper will generate a trace per function invocation. The parent span will
         | 
| @@ -1,8 +1,11 @@ | |
| 1 | 
            +
            require 'set'
         | 
| 1 2 | 
             
            require 'signalfx'
         | 
| 2 3 |  | 
| 3 4 | 
             
            module SignalFx
         | 
| 4 5 | 
             
              module Lambda
         | 
| 5 6 | 
             
                module Metrics
         | 
| 7 | 
            +
                  @@ephemeral_dimensions = Set['aws_request_id', 'log_stream_name']
         | 
| 8 | 
            +
             | 
| 6 9 | 
             
                  class Error < StandardError; end
         | 
| 7 10 |  | 
| 8 11 | 
             
                  class << self
         | 
| @@ -69,7 +72,9 @@ module SignalFx | |
| 69 72 | 
             
                    end
         | 
| 70 73 |  | 
| 71 74 | 
             
                    def populate_dimensions(context)
         | 
| 72 | 
            -
                      dimensions = SignalFx::Lambda.fields | 
| 75 | 
            +
                      dimensions = SignalFx::Lambda.fields
         | 
| 76 | 
            +
                                       .reject {|key, _| @@ephemeral_dimensions.include?(key)}
         | 
| 77 | 
            +
                                       .map do |key, val|
         | 
| 73 78 | 
             
                        { :key => key, :value => val }
         | 
| 74 79 | 
             
                      end
         | 
| 75 80 | 
             
                      dimensions.push({ :key => 'metric_source', :value => SignalFx::Lambda::COMPONENT })
         | 
| @@ -78,8 +83,9 @@ module SignalFx | |
| 78 83 | 
             
                    def init_client
         | 
| 79 84 | 
             
                      access_token = ENV['SIGNALFX_ACCESS_TOKEN']
         | 
| 80 85 | 
             
                      ingest_endpoint = ENV['SIGNALFX_METRICS_URL'] || ENV['SIGNALFX_ENDPOINT_URL'] || 'https://ingest.signalfx.com'
         | 
| 86 | 
            +
                      timeout = ENV['SIGNALFX_SEND_TIMEOUT'] || 1
         | 
| 81 87 |  | 
| 82 | 
            -
                      @client = SignalFx.new access_token, ingest_endpoint: ingest_endpoint
         | 
| 88 | 
            +
                      @client = SignalFx.new access_token, ingest_endpoint: ingest_endpoint, timeout: timeout
         | 
| 83 89 | 
             
                    end
         | 
| 84 90 | 
             
                  end
         | 
| 85 91 | 
             
                end
         | 
| @@ -12,7 +12,7 @@ module SignalFx | |
| 12 12 | 
             
                    attr_accessor :tracer, :reporter
         | 
| 13 13 |  | 
| 14 14 | 
             
                    def wrap_function(event:, context:, &block)
         | 
| 15 | 
            -
                      init_tracer( | 
| 15 | 
            +
                      init_tracer(context) if !@tracer # avoid initializing except on a cold start
         | 
| 16 16 |  | 
| 17 17 | 
             
                      tags = SignalFx::Lambda.fields
         | 
| 18 18 | 
             
                      tags['component'] = SignalFx::Lambda::COMPONENT
         | 
| @@ -41,17 +41,17 @@ module SignalFx | |
| 41 41 | 
             
                    end
         | 
| 42 42 |  | 
| 43 43 | 
             
                    def wrapped_handler(event:, context:)
         | 
| 44 | 
            -
                      wrap_function(event, context, &@handler)
         | 
| 44 | 
            +
                      wrap_function(event: event, context: context, &@handler)
         | 
| 45 45 | 
             
                    end
         | 
| 46 46 |  | 
| 47 47 | 
             
                    def register_handler(&handler)
         | 
| 48 48 | 
             
                      @handler = handler
         | 
| 49 49 | 
             
                    end
         | 
| 50 50 |  | 
| 51 | 
            -
                    def init_tracer( | 
| 51 | 
            +
                    def init_tracer(context)
         | 
| 52 52 | 
             
                      access_token = ENV['SIGNALFX_ACCESS_TOKEN']
         | 
| 53 53 | 
             
                      ingest_url = get_ingest_url
         | 
| 54 | 
            -
                      service_name = ENV['SIGNALFX_SERVICE_NAME'] ||  | 
| 54 | 
            +
                      service_name = ENV['SIGNALFX_SERVICE_NAME'] || context.function_name
         | 
| 55 55 | 
             
                      @span_prefix = ENV['SIGNALFX_SPAN_PREFIX'] || 'lambda_ruby_'
         | 
| 56 56 |  | 
| 57 57 | 
             
                      # configure the trace reporter
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: signalfx-lambda
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ashwin Chandrasekar
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-12-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jaeger-client
         | 
| @@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 119 119 | 
             
                - !ruby/object:Gem::Version
         | 
| 120 120 | 
             
                  version: '0'
         | 
| 121 121 | 
             
            requirements: []
         | 
| 122 | 
            -
            rubygems_version: 3.0. | 
| 122 | 
            +
            rubygems_version: 3.0.3
         | 
| 123 123 | 
             
            signing_key: 
         | 
| 124 124 | 
             
            specification_version: 4
         | 
| 125 125 | 
             
            summary: Lambda handler wrapper
         |