malsh 0.3.3 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53560007bf799b565171bcfb12e482e6b197b55114259f6df3795df69f1427cf
4
- data.tar.gz: 71469c9e09c80c1386b31b5a06a0d3fb80bc38850fa225d36ef7ebc02e3d471d
3
+ metadata.gz: 496b75cce4bfa94893f699050d52c6eb43b56cf3863fd9f0bfe0e07748961b8d
4
+ data.tar.gz: 84f4216c6c2e56b81332d2a777b6953413f43a09a5216ad0a5aaed1a14421271
5
5
  SHA512:
6
- metadata.gz: a62d25c6b1906f595cc816765cbd38957b03393826e46def774ea348d440978cd6f223e8a9ad98769b3a66561ff3f1d6cbc2efaf13545fc860be522fc683fd77
7
- data.tar.gz: 884c91493164eae6609000338255ccd8dcd78083c25410c437cf1a718a3b8f115a2699aae44d56e15b6f60ffc1d9e98ba12fe1265aad22a74c05adac9388df0a
6
+ metadata.gz: bf1876097f304d5a5a6736f24c474de58beab2609f70c5ba4a9d955fb6e2183a53f48f86aaf8e067979cac67f495fbce2147d3b110bec460aa5f920ffc874df3
7
+ data.tar.gz: cf51581d01a034a937bd46fa5b80336d247713185e05806b5444e0137fee4d485af18f2171bf4038c94bd678b013461a3a582db89865343fe0c591af2e7cc79d
@@ -10,11 +10,10 @@ module Malsh::Notification
10
10
  def self.notify_alert(subject, alerts)
11
11
  puts "#{subject}: "
12
12
  alerts.each do |alert|
13
- title = case alert.type
14
- when 'external'
15
- alert.monitor.name
16
- else
13
+ title = if Malsh.alert_has_host?(alert)
17
14
  alert.host.name
15
+ else
16
+ alert.monitor.name
18
17
  end
19
18
  puts "#{title}: #{alert.message}"
20
19
  end
@@ -30,16 +30,16 @@ module Malsh::Notification
30
30
  ''
31
31
  end
32
32
 
33
- title = if alert.type == 'external'
34
- alert.monitor.name
35
- else
33
+ title = if Malsh.alert_has_host?(alert)
36
34
  alert.host.name
35
+ else
36
+ alert.monitor.name
37
37
  end
38
38
 
39
- author_name = if alert.type == 'external'
40
- ''
41
- else
39
+ author_name = if Malsh.alert_has_host?(alert)
42
40
  alert.host.roles.map{|k, v| v.map{|r| "#{k}: #{r}"}}.flatten.join(" ")
41
+ else
42
+ ''
43
43
  end
44
44
 
45
45
  attachments << {
data/lib/malsh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Malsh
2
- VERSION = "0.3.3"
2
+ VERSION = '0.3.6'
3
3
  end
data/lib/malsh.rb CHANGED
@@ -1,9 +1,9 @@
1
- require "malsh/version"
1
+ require 'malsh/version'
2
2
  require 'thor'
3
3
  require 'mackerel-rb'
4
- require "malsh/cli"
5
- require "malsh/notification"
6
- require "malsh/host_metrics"
4
+ require 'malsh/cli'
5
+ require 'malsh/notification'
6
+ require 'malsh/host_metrics'
7
7
 
8
8
  module Malsh
9
9
  class << self
@@ -19,7 +19,7 @@ module Malsh
19
19
  end
20
20
  end
21
21
 
22
- def options(ops=nil)
22
+ def options(ops = nil)
23
23
  @_options = ops if ops
24
24
  @_options
25
25
  end
@@ -38,9 +38,9 @@ module Malsh
38
38
 
39
39
  def hosts(options = {})
40
40
  @_hosts ||= Mackerel.hosts(options).reject do |h|
41
- Malsh.options[:invert_match] && Malsh.options[:invert_match].find {|v| host_name(h).match(/#{v}/) }
41
+ Malsh.options[:invert_match] && Malsh.options[:invert_match].find { |v| host_name(h).match(/#{v}/) }
42
42
  end.reject do |h|
43
- Malsh.options[:regexp] && Malsh.options[:regexp].all? {|r| !host_name(h).match(/#{r}/)}
43
+ Malsh.options[:regexp] && Malsh.options[:regexp].all? { |r| !host_name(h).match(/#{r}/) }
44
44
  end.reject do |h|
45
45
  Malsh.options[:invert_role] && Malsh.options[:invert_role].find do |r|
46
46
  service, role = r.split(/:/)
@@ -49,12 +49,12 @@ module Malsh
49
49
  end
50
50
  end
51
51
 
52
- def alerts()
52
+ def alerts
53
53
  @_alerts ||= Mackerel.alerts.map do |alert|
54
- if alert.type == 'external'
55
- alert['monitor'] = Mackerel.monitor(alert.monitorId)
56
- else
54
+ if alert_has_host?(alert)
57
55
  alert['host'] = Malsh.host_by_id(alert.hostId)
56
+ else
57
+ alert['monitor'] = Mackerel.monitor(alert.monitorId)
58
58
  end
59
59
  alert
60
60
  end
@@ -71,25 +71,28 @@ module Malsh
71
71
  def metrics(name)
72
72
  hash = {}
73
73
  hosts.map(&:id).each_slice(200) do |ids|
74
- hash.merge!(Mackerel.latest_tsdb({hostId: ids, name: name}))
74
+ hash.merge!(Mackerel.latest_tsdb({ hostId: ids, name: name }))
75
75
  end
76
76
  hash
77
77
  end
78
78
 
79
79
  def host_metrics(id, name, from, to)
80
- begin
81
- Mackerel.host_metrics(id, name: name, from: from, to: to)
82
- rescue => e
83
- puts e
84
- end
80
+ Mackerel.host_metrics(id, name: name, from: from, to: to)
81
+ rescue StandardError => e
82
+ puts e
85
83
  end
86
84
 
87
85
  def host_metric_names(id)
88
- begin
89
- Mackerel.host_metric_names(id)
90
- rescue => e
91
- puts e
92
- end
86
+ Mackerel.host_metric_names(id)
87
+ rescue StandardError => e
88
+ puts e
89
+ end
90
+
91
+ def alert_has_host?(alert)
92
+ exclude_types = %w[external service expression]
93
+ return false if exclude_types.include?(alert.type)
94
+
95
+ true
93
96
  end
94
97
  end
95
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: malsh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazuhiko yamahsita
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-11 00:00:00.000000000 Z
11
+ date: 2022-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubygems_version: 3.1.4
159
+ rubygems_version: 3.3.3
160
160
  signing_key:
161
161
  specification_version: 4
162
162
  summary: mackerel tools.