malsh 0.3.3 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
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.