Class: Riemann::Tools::Rdap
- Inherits:
-
Object
- Object
- Riemann::Tools::Rdap
- Includes:
- Riemann::Tools
- Defined in:
- lib/riemann/tools/rdap.rb,
lib/riemann/tools/rdap/version.rb
Constant Summary collapse
- VERSION =
"1.1.0"
Instance Method Summary collapse
- #check_domain(domain) ⇒ Object
- #expiration_state(time_left_days) ⇒ Object
- #public_suffix_domains ⇒ Object
- #report_expiration(domain, time_left_days, description) ⇒ Object
- #tick ⇒ Object
Instance Method Details
#check_domain(domain) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/riemann/tools/rdap.rb', line 27 def check_domain(domain) data = RDAP.domain(domain) expiration_date = DateTime.parse(data["events"].find { |e| e["eventAction"] == "expiration" }["eventDate"]) time_left_days = (expiration_date - DateTime.now).to_i description = "Domain #{domain} will expire in #{time_left_days} days" report_expiration(domain, time_left_days, description) rescue RDAP::NotFound report_expiration(domain, nil, "Domain #{domain} not found") end |
#expiration_state(time_left_days) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/riemann/tools/rdap.rb', line 50 def expiration_state(time_left_days) return nil unless time_left_days if time_left_days < opts[:expiration_critical_days] "critical" elsif time_left_days < opts[:expiration_warning_days] "warning" else "ok" end end |
#public_suffix_domains ⇒ Object
17 18 19 |
# File 'lib/riemann/tools/rdap.rb', line 17 def public_suffix_domains @public_suffix_domains ||= opts[:domains].map { |d| PublicSuffix.domain(d) }.uniq end |
#report_expiration(domain, time_left_days, description) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/riemann/tools/rdap.rb', line 39 def report_expiration(domain, time_left_days, description) event = { service: "domain #{domain} expiration", metric: time_left_days, state: expiration_state(time_left_days), description: description } report event end |
#tick ⇒ Object
21 22 23 24 25 |
# File 'lib/riemann/tools/rdap.rb', line 21 def tick public_suffix_domains.each do |domain| check_domain(domain) end end |