pliny-librato 0.5.0 → 0.5.1
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/CHANGELOG.md +11 -0
 - data/README.md +5 -4
 - data/lib/pliny/librato/metrics/backend.rb +27 -22
 - data/lib/pliny/librato/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5dad320432446a53b261cac33b5fc636eeb492c8
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 234d35819926bb0ddb1b27be431478d2b7f43a3a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fd225bebe9d5c1539da97b63072b33da4b1698946f4f75a4ac3dee9924951b957a23cd74185de160ad4abcb1d64d2f437cc58cc102076ed8d605a5f394c119b6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 4250c8362aa9d8e91e2aad1ba85f83193fe76453263baa3955942a7b0d83cf177918ea5f58f33489fa6aa68ef4f05bab7e473b1946ad71cf10bc9b4b1188c22e
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. 
     | 
|
| 
       4 
4 
     | 
    
         
             
            The format is based on [Keep a Changelog](http://keepachangelog.com/)
         
     | 
| 
       5 
5 
     | 
    
         
             
            and this project adheres to [Semantic Versioning](http://semver.org/).
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
            ## Unreleased
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ## 0.5.1
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ### Changed
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            - The default submission interval is now 60 seconds for consistency with
         
     | 
| 
      
 14 
     | 
    
         
            +
              l2met and this project's README.
         
     | 
| 
      
 15 
     | 
    
         
            +
            - Metrics are now regularly submitted on the desired interval. Previously,
         
     | 
| 
      
 16 
     | 
    
         
            +
              a new metric would need to be queued after the interval expired.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       7 
18 
     | 
    
         
             
            ## 0.5.0
         
     | 
| 
       8 
19 
     | 
    
         | 
| 
       9 
20 
     | 
    
         
             
            ### Added
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -43,15 +43,16 @@ Pliny::Metrics.measure(:bar) do 
     | 
|
| 
       43 
43 
     | 
    
         
             
            end
         
     | 
| 
       44 
44 
     | 
    
         
             
            ```
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
            By default, it will send queued metrics every minute,  
     | 
| 
       47 
     | 
    
         
            -
            queue reaches  
     | 
| 
      
 46 
     | 
    
         
            +
            By default, it will send queued metrics every minute, and anytime the
         
     | 
| 
      
 47 
     | 
    
         
            +
            queue reaches 500 metrics. These settings can be configured on initialization.
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
            ## Shutdown
         
     | 
| 
       50 
     | 
    
         
            -
            By default, any unsubmitted metrics on the queue will not be sent at shutdown.  
     | 
| 
      
 50 
     | 
    
         
            +
            By default, any unsubmitted metrics on the queue will not be sent at shutdown. 
         
     | 
| 
      
 51 
     | 
    
         
            +
            It is the responsibility of the caller to trigger this.
         
     | 
| 
       51 
52 
     | 
    
         | 
| 
       52 
53 
     | 
    
         
             
            ```ruby
         
     | 
| 
       53 
54 
     | 
    
         
             
            # In the main process
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 55 
     | 
    
         
            +
            Kernel.on_exit do
         
     | 
| 
       55 
56 
     | 
    
         
             
              librato_backend.stop
         
     | 
| 
       56 
57 
     | 
    
         
             
            end
         
     | 
| 
       57 
58 
     | 
    
         | 
| 
         @@ -9,7 +9,7 @@ module Pliny 
     | 
|
| 
       9 
9 
     | 
    
         
             
                  class Backend
         
     | 
| 
       10 
10 
     | 
    
         
             
                    POISON_PILL = :'❨╯°□°❩╯︵┻━┻'
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
                    def initialize(source: nil, interval:  
     | 
| 
      
 12 
     | 
    
         
            +
                    def initialize(source: nil, interval: 60, count: 500)
         
     | 
| 
       13 
13 
     | 
    
         
             
                      @source   = source
         
     | 
| 
       14 
14 
     | 
    
         
             
                      @interval = interval
         
     | 
| 
       15 
15 
     | 
    
         
             
                      @count    = count
         
     | 
| 
         @@ -24,61 +24,66 @@ module Pliny 
     | 
|
| 
       24 
24 
     | 
    
         
             
                    end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
                    def start
         
     | 
| 
       27 
     | 
    
         
            -
                       
     | 
| 
      
 27 
     | 
    
         
            +
                      start_counter
         
     | 
| 
      
 28 
     | 
    
         
            +
                      start_timer
         
     | 
| 
       28 
29 
     | 
    
         
             
                      self
         
     | 
| 
       29 
30 
     | 
    
         
             
                    end
         
     | 
| 
       30 
31 
     | 
    
         | 
| 
       31 
32 
     | 
    
         
             
                    def stop
         
     | 
| 
       32 
33 
     | 
    
         
             
                      metrics_queue.push(POISON_PILL)
         
     | 
| 
       33 
     | 
    
         
            -
                       
     | 
| 
      
 34 
     | 
    
         
            +
                      timer.terminate
         
     | 
| 
      
 35 
     | 
    
         
            +
                      counter.join
         
     | 
| 
      
 36 
     | 
    
         
            +
                      flush_librato
         
     | 
| 
       34 
37 
     | 
    
         
             
                    end
         
     | 
| 
       35 
38 
     | 
    
         | 
| 
       36 
39 
     | 
    
         
             
                    private
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                    attr_reader :source, :interval, :count, : 
     | 
| 
      
 41 
     | 
    
         
            +
                    attr_reader :source, :interval, :count, :timer, :counter
         
     | 
| 
       39 
42 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                    def  
     | 
| 
       41 
     | 
    
         
            -
                      @ 
     | 
| 
      
 43 
     | 
    
         
            +
                    def start_timer
         
     | 
| 
      
 44 
     | 
    
         
            +
                      @timer = Thread.new do
         
     | 
| 
       42 
45 
     | 
    
         
             
                        loop do
         
     | 
| 
       43 
     | 
    
         
            -
                           
     | 
| 
       44 
     | 
    
         
            -
                           
     | 
| 
      
 46 
     | 
    
         
            +
                          sleep interval
         
     | 
| 
      
 47 
     | 
    
         
            +
                          flush_librato
         
     | 
| 
       45 
48 
     | 
    
         
             
                        end
         
     | 
| 
       46 
49 
     | 
    
         
             
                      end
         
     | 
| 
       47 
50 
     | 
    
         
             
                    end
         
     | 
| 
       48 
51 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
                    def  
     | 
| 
       50 
     | 
    
         
            -
                       
     | 
| 
       51 
     | 
    
         
            -
                         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                         
     | 
| 
       55 
     | 
    
         
            -
                        true
         
     | 
| 
      
 52 
     | 
    
         
            +
                    def start_counter
         
     | 
| 
      
 53 
     | 
    
         
            +
                      @counter = Thread.new do
         
     | 
| 
      
 54 
     | 
    
         
            +
                        loop do
         
     | 
| 
      
 55 
     | 
    
         
            +
                          msg = metrics_queue.pop
         
     | 
| 
      
 56 
     | 
    
         
            +
                          msg == POISON_PILL ? break : enqueue_librato(msg)
         
     | 
| 
      
 57 
     | 
    
         
            +
                        end
         
     | 
| 
       56 
58 
     | 
    
         
             
                      end
         
     | 
| 
       57 
59 
     | 
    
         
             
                    end
         
     | 
| 
       58 
60 
     | 
    
         | 
| 
       59 
61 
     | 
    
         
             
                    def enqueue_librato(msg)
         
     | 
| 
       60 
     | 
    
         
            -
                       
     | 
| 
      
 62 
     | 
    
         
            +
                      sync { librato_queue.add(msg) }
         
     | 
| 
       61 
63 
     | 
    
         
             
                    end
         
     | 
| 
       62 
64 
     | 
    
         | 
| 
       63 
65 
     | 
    
         
             
                    def flush_librato
         
     | 
| 
       64 
     | 
    
         
            -
                       
     | 
| 
      
 66 
     | 
    
         
            +
                      sync { librato_queue.submit }
         
     | 
| 
       65 
67 
     | 
    
         
             
                    end
         
     | 
| 
       66 
68 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                    def  
     | 
| 
       68 
     | 
    
         
            -
                       
     | 
| 
      
 69 
     | 
    
         
            +
                    def sync(&block)
         
     | 
| 
      
 70 
     | 
    
         
            +
                      mutex.synchronize(&block)
         
     | 
| 
       69 
71 
     | 
    
         
             
                    rescue => error
         
     | 
| 
       70 
72 
     | 
    
         
             
                      Pliny::ErrorReporters.notify(error)
         
     | 
| 
       71 
73 
     | 
    
         
             
                    end
         
     | 
| 
       72 
74 
     | 
    
         | 
| 
      
 75 
     | 
    
         
            +
                    def mutex
         
     | 
| 
      
 76 
     | 
    
         
            +
                      @mutex ||= Mutex.new
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
       73 
79 
     | 
    
         
             
                    def metrics_queue
         
     | 
| 
       74 
80 
     | 
    
         
             
                      @metrics_queue ||= Queue.new
         
     | 
| 
       75 
81 
     | 
    
         
             
                    end
         
     | 
| 
       76 
82 
     | 
    
         | 
| 
       77 
83 
     | 
    
         
             
                    def librato_queue
         
     | 
| 
       78 
84 
     | 
    
         
             
                      @librato_queue ||= ::Librato::Metrics::Queue.new(
         
     | 
| 
       79 
     | 
    
         
            -
                        source: 
     | 
| 
       80 
     | 
    
         
            -
                         
     | 
| 
       81 
     | 
    
         
            -
                        autosubmit_count:    count
         
     | 
| 
      
 85 
     | 
    
         
            +
                        source:           source,
         
     | 
| 
      
 86 
     | 
    
         
            +
                        autosubmit_count: count
         
     | 
| 
       82 
87 
     | 
    
         
             
                      )
         
     | 
| 
       83 
88 
     | 
    
         
             
                    end
         
     | 
| 
       84 
89 
     | 
    
         
             
                  end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: pliny-librato
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Andrew Appleton
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2017-01- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2017-01-12 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: librato-metrics
         
     |