Class: MysqlAlterMonitoring::PerformanceSchemaSetting

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_alter_monitoring/performance_schema_setting.rb

Overview

MysqlAlterMonitoring::PerformanceSchemaSetting

Instance Method Summary collapse

Constructor Details

#initialize(client, io) ⇒ void

Parameters:



9
10
11
12
# File 'lib/mysql_alter_monitoring/performance_schema_setting.rb', line 9

def initialize(client, io)
  @client = client
  @logger = JsonLogger.new(io)
end

Instance Method Details

#disable!void

This method returns an undefined value.



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/mysql_alter_monitoring/performance_schema_setting.rb', line 44

def disable!
  client.query <<~SQL
    UPDATE performance_schema.setup_instruments SET ENABLED = 'NO'
    WHERE NAME LIKE 'stage/innodb/alter%'
  SQL

  client.query <<~SQL
    UPDATE performance_schema.setup_consumers SET ENABLED = 'NO'
    WHERE NAME LIKE '%stages%'
  SQL

  logger.info({ message: 'Disable monitoring settings for the performance schema' })
end

#enable!void

This method returns an undefined value.



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mysql_alter_monitoring/performance_schema_setting.rb', line 15

def enable!
  client.query <<~SQL
    UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
    WHERE NAME LIKE 'stage/innodb/alter%'
  SQL

  client.query <<~SQL
    UPDATE performance_schema.setup_consumers SET ENABLED = 'YES'
    WHERE NAME LIKE '%stages%'
  SQL

  logger.info({ message: 'Enable monitoring settings for the performance schema' })
end

#enable?Boolean

Returns:



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mysql_alter_monitoring/performance_schema_setting.rb', line 30

def enable?
  disabled_instruments = client.query <<~SQL
    SELECT * FROM performance_schema.setup_instruments
    WHERE NAME LIKE 'stage/innodb/alter%' AND ENABLED = 'NO'
  SQL
  disabled_consumers = client.query <<~SQL
    SELECT * FROM performance_schema.setup_consumers
    WHERE NAME LIKE '%stages%' AND ENABLED = 'NO'
  SQL

  disabled_instruments.count.zero? && disabled_consumers.count.zero?
end