sumo-check-sumo 0.0.22 → 0.0.23

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
  SHA1:
3
- metadata.gz: 8daa0ae342c22e737918fd5fa0129e92075f6df7
4
- data.tar.gz: ec1beba596680aca570790ad0e5f3cb3ca606c68
3
+ metadata.gz: 9a0f870e07ebe0ce302e00a2326d711f2cf31c8e
4
+ data.tar.gz: 932ff67a0ba0fa312fff471c8e7964cb30d92257
5
5
  SHA512:
6
- metadata.gz: 9efa2b000504a82eacd9eb6698d0109d9f10c5dd91f0bd0fa8dccbe5a40840803520bc70b3ec748735070e39807a08fd057b13786eeb34743258614012d78005
7
- data.tar.gz: 6f498aa3cf8e04515160d5acb93c85d8f8fe7a5c00eafad32aee3105997c5e6ee63ac328be2be446819bcb9e0508cb526f356382f6c9aa8ba5490cc9fab4dd88
6
+ metadata.gz: f4e8ac285e10db628a6339f6e33f6ad17c94a1898862acd858feecb8e7c2f91c9646bc344a964d454c8b89a8bc2c838696e526a7817b20651de13efec0f8c8c3
7
+ data.tar.gz: e16d1ae8b8ee33668b461a30cf4cfeb6596f59ea61bd2b74fbc91b3aca557a7042a20258c197292a76e1dc171eac5a5afe01354a4363d54db8335710b9ddc568
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ require 'sensu-plugin/metric/cli'
5
+ require 'mysql2'
6
+ require 'inifile'
7
+
8
+ class SumoMessageCenterMetrics < Sensu::Plugin::Metric::CLI::Graphite
9
+
10
+ def run
11
+ ini = IniFile.load('/root/.my.cnf')
12
+ check_prefix_name="SumoMailMetrics"
13
+ section = ini['client']
14
+ db = Mysql2::Client.new(:host => "127.0.0.1", :username => section['user'], :database => "sumome", :password => section['password'])
15
+ metrics = ['errorsending','timedout','optedout','excluded','pending','inprogress','delivered']
16
+
17
+ list_types = db.query("select DISTINCT email_list_type from SumoMailEmail;",:as => :array).to_a.flatten
18
+ list_types.each do |type|
19
+ metrics.each do |m|
20
+ result = db.query("SELECT count(id) FROM SumoMailEmail where state='#{m}' and email_list_type='#{type}';")
21
+ if result.count > 0
22
+ output "#{check_prefix_name}.#{type}.#{m}.count".tr(' ', '_'),result.first["count(id)"].to_i,Time.now.to_i
23
+ end
24
+ end
25
+ end
26
+
27
+ ok
28
+ rescue Mysql2::Error => e
29
+ errstr = "Error code: #{e.errno} Error message: #{e.error}"
30
+ critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
31
+ rescue => e
32
+ critical e
33
+ ensure
34
+ db.close if db
35
+ end
36
+ end
37
+
38
+
39
+ # mysql> select DISTINCT email_list_type from SumoMailEmail;
40
+ # +-------------------------+
41
+ # | email_list_type |
42
+ # +-------------------------+
43
+ # | auto-response-email |
44
+ # | automation-email |
45
+ # | customer-outreach-email |
46
+ # | customer-outreach-test |
47
+ # | customer-outreach-type |
48
+ # | sumo-chat-email |
49
+ # +-------------------------+
50
+ # 6 rows in set (0.00 sec)
51
+
52
+
53
+ # mysql> show columns from SumoMailEmail;
54
+ # +--------------------------------+------------------------------------------------------------------------------------------+------+-----+---------+-------+
55
+ # | Field | Type | Null | Key | Default | Extra |
56
+ # +--------------------------------+------------------------------------------------------------------------------------------+------+-----+---------+-------+
57
+ # | id | varchar(36) | NO | PRI | NULL | |
58
+ # | email | varchar(255) | YES | MUL | NULL | |
59
+ # | site_id | varchar(64) | YES | MUL | NULL | |
60
+ # | sender | varchar(255) | YES | | NULL | |
61
+ # | app_id | varchar(36) | YES | MUL | NULL | |
62
+ # | rule_id | varchar(36) | YES | MUL | NULL | |
63
+ # | email_id | varchar(36) | YES | MUL | NULL | |
64
+ # | sendgrid_id | text | YES | | NULL | |
65
+ # | campaign_rule_id | varchar(36) | YES | MUL | NULL | |
66
+ # | template | text | NO | | NULL | |
67
+ # | header | text | YES | | NULL | |
68
+ # | subheader | text | YES | | NULL | |
69
+ # | html_body | text | YES | | NULL | |
70
+ # | markdown_body | text | YES | | NULL | |
71
+ # | label | varchar(255) | NO | MUL | NULL | |
72
+ # | state | enum('errorsending','timedout','optedout','excluded','pending','inprogress','delivered') | NO | MUL | pending | |
73
+ # | dont_send_if_has_same_label | tinyint(1) | NO | | 0 | |
74
+ # | same_label_timeout | int(11) unsigned | YES | | NULL | |
75
+ # | dont_send_if_has_same_email_id | tinyint(1) | NO | | 0 | |
76
+ # | same_email_id_timeout | int(11) unsigned | YES | | NULL | |
77
+ # | context | text | YES | | NULL | |
78
+ # | scheduled_for | datetime | NO | MUL | NULL | |
79
+ # | email_task_id | varchar(36) | YES | MUL | NULL | |
80
+ # | email_task_at | datetime | YES | | NULL | |
81
+ # | email_sent_at | datetime | YES | MUL | NULL | |
82
+ # | email_open_at | datetime | YES | MUL | NULL | |
83
+ # | email_unsubbed_at | datetime | YES | MUL | NULL | |
84
+ # | email_bounced_at | datetime | YES | | NULL | |
85
+ # | email_complained_at | datetime | YES | | NULL | |
86
+ # | email_clicked_at | datetime | YES | MUL | NULL | |
87
+ # | email_list_type | varchar(100) | YES | MUL | NULL | |
88
+ # | created_at | datetime | NO | MUL | NULL | |
89
+ # | updated_at | datetime | NO | MUL | NULL | |
90
+ # | reply_to | varchar(255) | YES | | NULL | |
91
+ # | is_test | tinyint(1) | YES | MUL | NULL | |
92
+ # | json_body | text | YES | | NULL | |
93
+ # | tokens | text | YES | | NULL | |
94
+ # +--------------------------------+------------------------------------------------------------------------------------------+------+-----+---------+-------+
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ruby
2
+ require 'sensu-plugin/check/cli'
3
+ require 'mysql2'
4
+ require 'inifile'
5
+
6
+ class SumoSumoMailEmailCheck < Sensu::Plugin::Check::CLI
7
+
8
+ option :warn_value,
9
+ short: '-W VALUE',
10
+ long: '--warn_value VALUE',
11
+ description: 'Warning for Pending Messages',
12
+ required: false,
13
+ default: 1000
14
+
15
+ option :critical_value,
16
+ short: '-c VALUE',
17
+ long: '--critical_value VALUE',
18
+ description: 'critical for Pending Messages',
19
+ required: false,
20
+ default: 1500
21
+
22
+ option :interval_value,
23
+ short: '-i VALUE',
24
+ long: '--interval VALUE',
25
+ description: 'interval window in minutes',
26
+ required: false,
27
+ default: 10
28
+
29
+ def run
30
+ ini = IniFile.load('/root/.my.cnf')
31
+ section = ini['client']
32
+ db = Mysql2::Client.new(:host => "127.0.0.1", :username => section['user'], :database => "sumome", :password => section['password'])
33
+ # pending_count = db.query("SELECT count(id) FROM SumoMailEmail where state='pending' and scheduled_for <= NOW() - INTERVAL #{config[:interval_value].to_i} MINUTE;").first["count(id)"].to_i
34
+ pending_count = db.query("SELECT count(id) FROM SumoMailEmail where state='pending').first["count(id)"].to_i
35
+
36
+ case
37
+ when pending_count == 0
38
+ ok "SumoMailEmail Pending Count is: #{pending_count} "
39
+ when pending_count >config[:critical_value].to_i
40
+ critical "SumoMailEmail Pending Count is: #{pending_count} "
41
+ when pending_count >config[:warn_value].to_i
42
+ warning "SumoMailEmailPending Count is: #{pending_count} "
43
+ else
44
+ warning "ODD: we did not match any cases for alerts, this should not happen, SumoMailEmail Pending Count is: #{pending_count} "
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -30,7 +30,8 @@ class SumoMessageCenterCheck < Sensu::Plugin::Check::CLI
30
30
  ini = IniFile.load('/root/.my.cnf')
31
31
  section = ini['client']
32
32
  db = Mysql2::Client.new(:host => "127.0.0.1", :username => section['user'], :database => "sumome", :password => section['password'])
33
- pending_count = db.query("SELECT count(id) FROM SumoMailEmail where state='pending' and scheduled_for <= NOW() - INTERVAL #{config[:interval_value].to_i} MINUTE;").first["count(id)"].to_i
33
+ # pending_count = db.query("SELECT count(id) FROM MessageCenterEmail where state='pending' and scheduled_for <= NOW() - INTERVAL #{config[:interval_value].to_i} MINUTE;").first["count(id)"].to_i
34
+ pending_count = db.query("SELECT count(id) FROM MessageCenterEmail where state='pending').first["count(id)"].to_i
34
35
 
35
36
  case
36
37
  when pending_count == 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sumo-check-sumo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr. Ogg
@@ -108,9 +108,13 @@ executables:
108
108
  - sumo-platform-audit.rb
109
109
  - sumo-message-center-metrics.rb
110
110
  - sumo-check-message-center.rb
111
+ - sumo-check-SumoMailEmail.rb
112
+ - sumo-SumoMailEmail-metrics.rb
111
113
  extensions: []
112
114
  extra_rdoc_files: []
113
115
  files:
116
+ - bin/sumo-SumoMailEmail-metrics.rb
117
+ - bin/sumo-check-SumoMailEmail.rb
114
118
  - bin/sumo-check-docker.rb
115
119
  - bin/sumo-check-message-center.rb
116
120
  - bin/sumo-check-new-relic-apdex.rb