statsd-instrument 2.3.2 → 2.6.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 +4 -4
 - data/.github/CODEOWNERS +1 -0
 - data/.github/workflows/benchmark.yml +32 -0
 - data/.github/workflows/ci.yml +47 -0
 - data/.gitignore +1 -0
 - data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +1027 -0
 - data/.rubocop.yml +50 -0
 - data/.yardopts +5 -0
 - data/CHANGELOG.md +288 -2
 - data/CONTRIBUTING.md +28 -6
 - data/Gemfile +5 -0
 - data/README.md +54 -46
 - data/Rakefile +4 -2
 - data/benchmark/README.md +29 -0
 - data/benchmark/datagram-client +41 -0
 - data/benchmark/send-metrics-to-dev-null-log +47 -0
 - data/benchmark/send-metrics-to-local-udp-receiver +57 -0
 - data/lib/statsd/instrument/assertions.rb +179 -30
 - data/lib/statsd/instrument/backend.rb +3 -2
 - data/lib/statsd/instrument/backends/capture_backend.rb +4 -1
 - data/lib/statsd/instrument/backends/logger_backend.rb +3 -3
 - data/lib/statsd/instrument/backends/null_backend.rb +2 -0
 - data/lib/statsd/instrument/backends/udp_backend.rb +39 -45
 - data/lib/statsd/instrument/capture_sink.rb +27 -0
 - data/lib/statsd/instrument/client.rb +313 -0
 - data/lib/statsd/instrument/datagram.rb +75 -0
 - data/lib/statsd/instrument/datagram_builder.rb +101 -0
 - data/lib/statsd/instrument/dogstatsd_datagram_builder.rb +71 -0
 - data/lib/statsd/instrument/environment.rb +108 -29
 - data/lib/statsd/instrument/helpers.rb +16 -8
 - data/lib/statsd/instrument/log_sink.rb +24 -0
 - data/lib/statsd/instrument/matchers.rb +14 -11
 - data/lib/statsd/instrument/metric.rb +72 -45
 - data/lib/statsd/instrument/metric_expectation.rb +32 -18
 - data/lib/statsd/instrument/null_sink.rb +13 -0
 - data/lib/statsd/instrument/railtie.rb +2 -1
 - data/lib/statsd/instrument/rubocop/measure_as_dist_argument.rb +39 -0
 - data/lib/statsd/instrument/rubocop/metaprogramming_positional_arguments.rb +42 -0
 - data/lib/statsd/instrument/rubocop/metric_prefix_argument.rb +37 -0
 - data/lib/statsd/instrument/rubocop/metric_return_value.rb +32 -0
 - data/lib/statsd/instrument/rubocop/metric_value_keyword_argument.rb +36 -0
 - data/lib/statsd/instrument/rubocop/positional_arguments.rb +99 -0
 - data/lib/statsd/instrument/rubocop/splat_arguments.rb +31 -0
 - data/lib/statsd/instrument/rubocop.rb +64 -0
 - data/lib/statsd/instrument/statsd_datagram_builder.rb +14 -0
 - data/lib/statsd/instrument/strict.rb +235 -0
 - data/lib/statsd/instrument/udp_sink.rb +62 -0
 - data/lib/statsd/instrument/version.rb +3 -1
 - data/lib/statsd/instrument.rb +340 -163
 - data/lib/statsd-instrument.rb +2 -0
 - data/statsd-instrument.gemspec +13 -10
 - data/test/assertions_test.rb +167 -156
 - data/test/benchmark/clock_gettime.rb +27 -0
 - data/test/benchmark/default_tags.rb +47 -0
 - data/test/benchmark/metrics.rb +9 -8
 - data/test/benchmark/tags.rb +5 -3
 - data/test/capture_backend_test.rb +4 -2
 - data/test/capture_sink_test.rb +44 -0
 - data/test/client_test.rb +164 -0
 - data/test/compatibility/dogstatsd_datagram_compatibility_test.rb +162 -0
 - data/test/datagram_builder_test.rb +120 -0
 - data/test/deprecations_test.rb +132 -0
 - data/test/dogstatsd_datagram_builder_test.rb +32 -0
 - data/test/environment_test.rb +75 -8
 - data/test/helpers/rubocop_helper.rb +47 -0
 - data/test/helpers_test.rb +2 -1
 - data/test/integration_test.rb +31 -7
 - data/test/log_sink_test.rb +37 -0
 - data/test/logger_backend_test.rb +10 -8
 - data/test/matchers_test.rb +42 -28
 - data/test/metric_test.rb +18 -22
 - data/test/null_sink_test.rb +13 -0
 - data/test/rubocop/measure_as_dist_argument_test.rb +44 -0
 - data/test/rubocop/metaprogramming_positional_arguments_test.rb +58 -0
 - data/test/rubocop/metric_prefix_argument_test.rb +38 -0
 - data/test/rubocop/metric_return_value_test.rb +78 -0
 - data/test/rubocop/metric_value_keyword_argument_test.rb +39 -0
 - data/test/rubocop/positional_arguments_test.rb +110 -0
 - data/test/rubocop/splat_arguments_test.rb +27 -0
 - data/test/statsd_datagram_builder_test.rb +22 -0
 - data/test/statsd_instrumentation_test.rb +109 -100
 - data/test/statsd_test.rb +113 -79
 - data/test/test_helper.rb +12 -1
 - data/test/udp_backend_test.rb +38 -36
 - data/test/udp_sink_test.rb +85 -0
 - metadata +85 -5
 - data/.travis.yml +0 -12
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0e0581a0deec7cbdfae1ca0b03d336b3e08cf1d14599087678f1a6a6ec35b321
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f10c0f102d13bb71a8365a1cc9707c848af954adb02eea3b8bbb95a9bbc2f0b7
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0fc4c808a257a72bf0d86edb1e9ec9ae6c700f80408f83d574e466e1ce7cf2d627aee5e71dc5fdbb998850395881421cba97172db446fc102d04314546d55f60
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 748ffe0481def020345c33029a630b266f033d84dcf80429316e0ec95a7394b82e20f82e9ee568efa3f455ac853fcbb3fec99243da482f8af3967069dffae13e
         
     | 
    
        data/.github/CODEOWNERS
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            * @wvanbergen
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            name: Benchmarks
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            on: push
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 6 
     | 
    
         
            +
              test:
         
     | 
| 
      
 7 
     | 
    
         
            +
                name: Send metric over UDP
         
     | 
| 
      
 8 
     | 
    
         
            +
                runs-on: ubuntu-18.04
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 11 
     | 
    
         
            +
                - uses: actions/checkout@v1
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                - name: Setup Ruby
         
     | 
| 
      
 14 
     | 
    
         
            +
                  uses: actions/setup-ruby@v1
         
     | 
| 
      
 15 
     | 
    
         
            +
                  with:
         
     | 
| 
      
 16 
     | 
    
         
            +
                    ruby-version: 2.6
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                - name: Install dependencies
         
     | 
| 
      
 19 
     | 
    
         
            +
                  run: gem install bundler && bundle install --jobs 4 --retry 3
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                - name: Run benchmark on branch
         
     | 
| 
      
 22 
     | 
    
         
            +
                  run: benchmark/send-metrics-to-local-udp-receiver
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                - uses: actions/checkout@v1
         
     | 
| 
      
 25 
     | 
    
         
            +
                  with:
         
     | 
| 
      
 26 
     | 
    
         
            +
                    ref: 'master'
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                - name: Install dependencies if needed
         
     | 
| 
      
 29 
     | 
    
         
            +
                  run: bundle check || bundle install --jobs 4 --retry 3
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                - name: Run benchmark on master
         
     | 
| 
      
 32 
     | 
    
         
            +
                  run: benchmark/send-metrics-to-local-udp-receiver
         
     | 
| 
         @@ -0,0 +1,47 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            name: CI
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            on: push
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 6 
     | 
    
         
            +
              test:
         
     | 
| 
      
 7 
     | 
    
         
            +
                name: Ruby ${{ matrix.ruby }} on ${{ matrix.platform }}
         
     | 
| 
      
 8 
     | 
    
         
            +
                runs-on: ${{ matrix.platform }}
         
     | 
| 
      
 9 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 10 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 11 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 12 
     | 
    
         
            +
                    platform: [ubuntu-18.04, windows-2019, macOS-10.14]
         
     | 
| 
      
 13 
     | 
    
         
            +
                    ruby: [2.3, 2.4, 2.5, 2.6]
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    exclude:
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # The Windows environment does not support older Ruby versions. We only test against the latest version
         
     | 
| 
      
 17 
     | 
    
         
            +
                    - platform: windows-2019
         
     | 
| 
      
 18 
     | 
    
         
            +
                      ruby: 2.3
         
     | 
| 
      
 19 
     | 
    
         
            +
                    - platform: windows-2019
         
     | 
| 
      
 20 
     | 
    
         
            +
                      ruby: 2.4
         
     | 
| 
      
 21 
     | 
    
         
            +
                    - platform: windows-2019
         
     | 
| 
      
 22 
     | 
    
         
            +
                      ruby: 2.5
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    # On macOS, we only test against the Ruby version macOS ships with (2.3)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    - platform: macOS-10.14
         
     | 
| 
      
 26 
     | 
    
         
            +
                      ruby: 2.4
         
     | 
| 
      
 27 
     | 
    
         
            +
                    - platform: macOS-10.14
         
     | 
| 
      
 28 
     | 
    
         
            +
                      ruby: 2.5
         
     | 
| 
      
 29 
     | 
    
         
            +
                    - platform: macOS-10.14
         
     | 
| 
      
 30 
     | 
    
         
            +
                      ruby: 2.6
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 33 
     | 
    
         
            +
                - uses: actions/checkout@v1
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                - name: Setup Ruby
         
     | 
| 
      
 36 
     | 
    
         
            +
                  uses: actions/setup-ruby@v1
         
     | 
| 
      
 37 
     | 
    
         
            +
                  with:
         
     | 
| 
      
 38 
     | 
    
         
            +
                    ruby-version: ${{ matrix.ruby }}
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                - name: Install dependencies
         
     | 
| 
      
 41 
     | 
    
         
            +
                  run: gem install bundler && bundle install --jobs 4 --retry 3
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                - name: Run test suite
         
     | 
| 
      
 44 
     | 
    
         
            +
                  run: bundle exec rake
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                - name: Run Rubocop
         
     | 
| 
      
 47 
     | 
    
         
            +
                  run: bundle exec rubocop
         
     | 
    
        data/.gitignore
    CHANGED