pingdom 0.1.4 → 0.1.6
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 +106 -2
- data/lib/pingdom/base.rb +3 -0
- data/lib/pingdom/check.rb +0 -2
- data/lib/pingdom/server_time.rb +38 -0
- data/lib/pingdom/summary_average.rb +56 -0
- data/lib/pingdom/summary_outage.rb +0 -2
- data/lib/pingdom/summary_performance.rb +1 -3
- data/lib/pingdom/validator.rb +3 -2
- data/lib/pingdom/version.rb +1 -1
- data/lib/pingdom.rb +2 -0
- metadata +3 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 903ee6f2adac2105596099e2105ff22c8b4f681b
         | 
| 4 | 
            +
              data.tar.gz: b2744b0aee1013468c80c82d5a8d379722bcac79
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1f68477de6fb1fab126a899c48c30eb20fadfad26b7ac2f7b91e1e608dd15f4360f0d62c6acbd65afbe58fa0ad47dd0bcebf1f8934b168139c02ab5a52ff4b6e
         | 
| 7 | 
            +
              data.tar.gz: 9d3cbcb180811f3bb49f9c718b562e6ed553bc7522aa0881e5d6a4483b53d75923e18a556de6d47fc166fae318a08364a7e6e84f19efdd3fc22ad2afd5a396d5
         | 
    
        data/README.md
    CHANGED
    
    | @@ -55,8 +55,74 @@ checks.each do |check| | |
| 55 55 | 
             
            To get one check using find, you need the id
         | 
| 56 56 |  | 
| 57 57 | 
             
            ```ruby
         | 
| 58 | 
            -
            check =  | 
| 58 | 
            +
            check = Pingdom::Check.find 85975
         | 
| 59 59 | 
             
            # return a check or raise an error if the chech is not found
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            # with tags
         | 
| 62 | 
            +
            check = Pingdom::Check.find 85975, include_tags: true
         | 
| 63 | 
            +
            ```
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            ### Summary Average
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            Get the Sumary Average by check id:
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            ```ruby
         | 
| 70 | 
            +
            average = Pingdom::SummaryAverage.find check_id
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            average.from # is a Time
         | 
| 73 | 
            +
            => 1970-01-01 01:00:00 +0100
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            average.to # is a Time
         | 
| 76 | 
            +
            => 2017-09-05 15:43:53 +0100
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            average.avgresponse # is a Integer
         | 
| 79 | 
            +
            => 381
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            # with parameters
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            average = Pingdom::SummaryAverage.find check_id, from: 10.days.ago , to: 1.day.ago, probes: '44,33'
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            # includeuptime
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            average = Pingdom::SummaryAverage.find check_id, includeuptime: true
         | 
| 88 | 
            +
            # get status data
         | 
| 89 | 
            +
            average.status.totalup
         | 
| 90 | 
            +
            average.status.totaldown
         | 
| 91 | 
            +
            average.status.totalunknown
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            # bycountry
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            average = Pingdom::SummaryAverage.find check_id, bycountry: true
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            average.avgresponse # is an Array of Struct::AvgResponse
         | 
| 98 | 
            +
            r = average.avgresponse.firt
         | 
| 99 | 
            +
            r.country
         | 
| 100 | 
            +
            => 'UK'
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            r.avgresponse
         | 
| 103 | 
            +
            => 92
         | 
| 104 | 
            +
             | 
| 105 | 
            +
            r.from # and r.to are Times
         | 
| 106 | 
            +
            => 1970-01-01 01:00:00 +0100
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            # byprobe
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            average = Pingdom::SummaryAverage.find check_id, byprobe: true
         | 
| 111 | 
            +
            a=average.probe_responses # is array of Struct::ProbeResponse
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            # Get data of each probe response
         | 
| 114 | 
            +
            r=a.first
         | 
| 115 | 
            +
            r.id # the id of the probe
         | 
| 116 | 
            +
            r.avgresponse
         | 
| 117 | 
            +
            r.n # integer
         | 
| 118 | 
            +
            r.from
         | 
| 119 | 
            +
            r.to
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            average.from # Time of request filter
         | 
| 122 | 
            +
            => 1970-01-01 01:00:00 +0100
         | 
| 123 | 
            +
            average.to # Time of request filter
         | 
| 124 | 
            +
            => 2017-09-05 15:43:53 +0100
         | 
| 125 | 
            +
             | 
| 60 126 | 
             
            ```
         | 
| 61 127 |  | 
| 62 128 | 
             
            ### Summary Outages
         | 
| @@ -69,7 +135,7 @@ summary_outage = Pingdom::SummaryOutage.find check_id | |
| 69 135 |  | 
| 70 136 | 
             
            # With params from, to and order are not mandatory params
         | 
| 71 137 |  | 
| 72 | 
            -
            summary_outage = Pingdom::SummaryOutage.find check_id , from: 2.days.ago, to: 1.days.ago, order: ' | 
| 138 | 
            +
            summary_outage = Pingdom::SummaryOutage.find check_id , from: 2.days.ago, to: 1.days.ago, order: 'desc'
         | 
| 73 139 |  | 
| 74 140 | 
             
            # get up and down times
         | 
| 75 141 | 
             
            summary_outage.ups
         | 
| @@ -87,6 +153,44 @@ summary_outage.downs min_interval: 180 # more than 3 minutes | |
| 87 153 |  | 
| 88 154 | 
             
            ```
         | 
| 89 155 |  | 
| 156 | 
            +
            ### Summary Performance
         | 
| 157 | 
            +
             | 
| 158 | 
            +
            Get the Summary Performance by check id:
         | 
| 159 | 
            +
             | 
| 160 | 
            +
            ```ruby
         | 
| 161 | 
            +
             | 
| 162 | 
            +
            summary_performance= Pingodm::SummaryPerformance find check_id
         | 
| 163 | 
            +
             | 
| 164 | 
            +
            # available params from: Time , to: Time, resolution: 'hour' | 'day'| 'week' , includeuptime: true | false
         | 
| 165 | 
            +
             | 
| 166 | 
            +
            # When you find by a hour resolution you can get hours
         | 
| 167 | 
            +
            summary_performance.hours.each do |h|
         | 
| 168 | 
            +
              puts h.starttime # Time
         | 
| 169 | 
            +
              puts h.avgresponse # Integer
         | 
| 170 | 
            +
              puts h.uptime # Integer
         | 
| 171 | 
            +
              puts h.downtime # Integer
         | 
| 172 | 
            +
              puts h.unmonitored # Integer
         | 
| 173 | 
            +
            end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
            # the same behavior with 'week' and 'day' resolutions, you can get the data of each one use the same methods.
         | 
| 176 | 
            +
             | 
| 177 | 
            +
            summary_performance.weeks.is_a
         | 
| 178 | 
            +
            => Array # of Struct::Week
         | 
| 179 | 
            +
             | 
| 180 | 
            +
            summary_performance.day.is_a
         | 
| 181 | 
            +
            => Array # of Struct::Day
         | 
| 182 | 
            +
             | 
| 183 | 
            +
            ```
         | 
| 184 | 
            +
             | 
| 185 | 
            +
            ### ServerTime
         | 
| 186 | 
            +
             | 
| 187 | 
            +
            Easy way to get the servertime
         | 
| 188 | 
            +
             | 
| 189 | 
            +
            ```ruby
         | 
| 190 | 
            +
            Pingdom::ServerTime.time
         | 
| 191 | 
            +
            => 2017-09-05 17:47:56 +0100 #Time object of the servertime
         | 
| 192 | 
            +
            ```
         | 
| 193 | 
            +
             | 
| 90 194 | 
             
            ## Development
         | 
| 91 195 |  | 
| 92 196 | 
             
            After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
         | 
    
        data/lib/pingdom/base.rb
    CHANGED
    
    
    
        data/lib/pingdom/check.rb
    CHANGED
    
    
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            module Pingdom
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              class ServerTime < Pingdom::Base
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                class << self
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  def path
         | 
| 8 | 
            +
                    '/servertime'
         | 
| 9 | 
            +
                  end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  def get
         | 
| 12 | 
            +
                    parse client.get( path: path )
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    if body.include?('servertime')
         | 
| 15 | 
            +
                      server_time=self.new body
         | 
| 16 | 
            +
                    end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    server_time
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def time
         | 
| 23 | 
            +
                    get.servertime
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                attr_accessor :servertime
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                private
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  def time_attributes
         | 
| 34 | 
            +
                    %q{servertime}
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
| @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            module Pingdom
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              Struct.new('AvgResponse',:countryiso, :avgresponse)
         | 
| 4 | 
            +
              Struct.new('ProbeResponse',:id, :avgresponse,:from,:n, :to)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              class SummaryAverage < Pingdom::Base
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                class << self
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def path
         | 
| 11 | 
            +
                    '/summary.average'
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def collection_type
         | 
| 15 | 
            +
                    'summary'
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  def permit
         | 
| 19 | 
            +
                    {
         | 
| 20 | 
            +
                      to: :valid_time?,
         | 
| 21 | 
            +
                      from: :valid_time?,
         | 
| 22 | 
            +
                      probes: :valid_int_list?,
         | 
| 23 | 
            +
                      includeuptime: :valid_boolean?,
         | 
| 24 | 
            +
                      bycountry: :valid_boolean?,
         | 
| 25 | 
            +
                      byprobe: :valid_boolean?
         | 
| 26 | 
            +
                    }
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                attr_accessor :responsetime, :status, :probe_responses
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def avgresponse
         | 
| 34 | 
            +
                  data = responsetime['avgresponse'] || []
         | 
| 35 | 
            +
                  data.map do |v|
         | 
| 36 | 
            +
                    Struct::AvgResponse.new(v['countryiso'], v['avgresponse'])
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                def probe_responses
         | 
| 41 | 
            +
                  responsetime.each_pair.map do |k,v|
         | 
| 42 | 
            +
                    next if %q(from to).include?(k)
         | 
| 43 | 
            +
                    Struct::ProbeResponse.new(k.to_i,v['avgresponse'],Time.at(v['from']),v['n'], Time.at(v['to']))
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                def from
         | 
| 48 | 
            +
                  Time.at responsetime['from']
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                def to
         | 
| 52 | 
            +
                  Time.at responsetime['to']
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
            end
         | 
| @@ -1,5 +1,3 @@ | |
| 1 | 
            -
            require 'json'
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            module Pingdom
         | 
| 4 2 |  | 
| 5 3 | 
             
              Struct.new('Week',:starttime, :avgresponse, :uptime, :downtime, :unmonitored)
         | 
| @@ -25,7 +23,7 @@ module Pingdom | |
| 25 23 | 
             
                      from: :valid_time?,
         | 
| 26 24 | 
             
                      resolution: :valid_resolution?,
         | 
| 27 25 | 
             
                      order: :valid_order?,
         | 
| 28 | 
            -
                      includeuptime: : | 
| 26 | 
            +
                      includeuptime: :valid_boolean?
         | 
| 29 27 | 
             
                    }
         | 
| 30 28 | 
             
                  end
         | 
| 31 29 |  | 
    
        data/lib/pingdom/validator.rb
    CHANGED
    
    | @@ -28,6 +28,7 @@ module Pingdom | |
| 28 28 | 
             
                def format
         | 
| 29 29 | 
             
                  validate_all.each_pair.map do |key, value|
         | 
| 30 30 | 
             
                    value=value.to_i if permit[key]==:valid_time?
         | 
| 31 | 
            +
                    value=value.to_s if permit[key]==:valid_boolean?
         | 
| 31 32 | 
             
                    [key, value]
         | 
| 32 33 | 
             
                  end.to_h
         | 
| 33 34 | 
             
                end
         | 
| @@ -48,8 +49,8 @@ module Pingdom | |
| 48 49 | 
             
                  %q(hour day week).include? resolution
         | 
| 49 50 | 
             
                end
         | 
| 50 51 |  | 
| 51 | 
            -
                def  | 
| 52 | 
            -
                   | 
| 52 | 
            +
                def valid_boolean? bool
         | 
| 53 | 
            +
                  bool.is_a?(TrueClass) || bool.is_a?(FalseClass)
         | 
| 53 54 | 
             
                end
         | 
| 54 55 |  | 
| 55 56 | 
             
                def valid_int_list? int_list
         | 
    
        data/lib/pingdom/version.rb
    CHANGED
    
    
    
        data/lib/pingdom.rb
    CHANGED
    
    | @@ -5,7 +5,9 @@ require "pingdom/base" | |
| 5 5 | 
             
            require 'pingdom/check'
         | 
| 6 6 | 
             
            require 'pingdom/summary_outage'
         | 
| 7 7 | 
             
            require 'pingdom/summary_performance'
         | 
| 8 | 
            +
            require 'pingdom/summary_average'
         | 
| 8 9 | 
             
            require 'pingdom/validator'
         | 
| 10 | 
            +
            require 'pingdom/server_time'
         | 
| 9 11 | 
             
            require 'active_support/core_ext/numeric/time'
         | 
| 10 12 | 
             
            require 'active_support/core_ext/time/acts_like'
         | 
| 11 13 | 
             
            require 'active_support/core_ext/time/calculations'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pingdom
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.6
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Diego Piccinini Lagos
         | 
| @@ -129,6 +129,8 @@ files: | |
| 129 129 | 
             
            - lib/pingdom/base.rb
         | 
| 130 130 | 
             
            - lib/pingdom/check.rb
         | 
| 131 131 | 
             
            - lib/pingdom/client.rb
         | 
| 132 | 
            +
            - lib/pingdom/server_time.rb
         | 
| 133 | 
            +
            - lib/pingdom/summary_average.rb
         | 
| 132 134 | 
             
            - lib/pingdom/summary_outage.rb
         | 
| 133 135 | 
             
            - lib/pingdom/summary_performance.rb
         | 
| 134 136 | 
             
            - lib/pingdom/validator.rb
         |