7cb969b0d9
MXS-2271 Clean up server list parsing functions, use in monitor config
...
The functions now return the parsed array.
2019-02-01 14:59:51 +02:00
03411e825d
MXS-2271 Move journal_max_age inside settings container
2019-01-31 17:05:35 +02:00
ce9b49d8d5
MXS-2271 Move script-related settings to the settings-container
...
Also moves related functions to class methods.
2019-01-31 17:05:34 +02:00
0903648542
MXS-2271 Move connection settings inside settings struct
...
Since the settings are now protected fields, all related functions were
moved inside the monitor class. mon_ping_or_connect_to_db() is now a method
of MXS_MONITORED_SERVER. The connection settings class is defined inside the
server since that is the class actually using the settings.
2019-01-31 17:00:47 +02:00
b650dd4f67
MXS-2273 Drop unnecessary SERVER prefix in names
...
MXS_MONITORED_SERVER provides enough scope.
2019-01-30 12:16:57 +02:00
bc4a52acb0
MXS-2273 Set SERVER_BEING_DRAINED properly
...
The maintenance and being-drained modes are now set using the same
mechanism.
2019-01-30 12:16:57 +02:00
e3d74bd18d
MXS-2273 Generalise names
...
The maintenance flag and being-drain flags will be turned on using
the same variable, so the variable and constant names needs to be
generalized.
2019-01-30 12:16:57 +02:00
159d9ccba9
MXS-2273 Move constants to more appropriate locations
...
Constants now used in the context of MXS_MONITORED_SERVER or
Monitor are now moved from SERVER to MXS_MONITORED_SERVER or
Monitor, respectively.
2019-01-30 12:16:57 +02:00
57a94b417d
MXS-2273 Move maint_request from SERVER to MXS_MONITORED_SERVER
...
The _request_ for setting the status of a server relates to the
monitor and its MXS_MONITORED_SERVER, not to the SERVER itself.
2019-01-30 12:16:57 +02:00
727d3feb3b
MXS-2273 Move code for setting maintenance bit to monitor.cc
...
Applies to being-drained as well.
Better that this special handling is handled by Monitor that needs it.
2019-01-30 12:16:57 +02:00
6326172325
MXS-2271 Rename basic Monitor fields
...
Adds the m_-prefix.
2019-01-28 15:41:00 +02:00
cef4e836bc
MXS-2271 Store monitored servers in a vector
...
The array is still a public member because it's used in several non-member functions.
2019-01-28 15:41:00 +02:00
546b80de4b
MXS-2271 Move monitor interval to settings container
2019-01-25 13:46:01 +02:00
10dc0f53e0
MXS-2177 Move check_monitor_permissions() into class
2019-01-25 13:46:01 +02:00
0fe5b0bec9
MXS-2276 Expose lower level mon_ping_or_connect_to_db
...
The functionality is useful also when you do not have a
MXS_MONITORED_SERVER instance.
2019-01-25 10:28:34 +02:00
f559bf3d95
MXS-2271 Move disk space settings to a settings-container
2019-01-24 09:49:53 +02:00
00594cc369
MXS-2271 Move global monitor list inside a local class
...
Cleans up list locking and handling.
2019-01-24 09:49:53 +02:00
f6cec41dd8
MXS-2271 Monitor config name and instance name are parameters of createInstance()
...
Also adds/moves some comments from previous entrypoints. Name and module
are now constant fields.
2019-01-24 09:49:53 +02:00
9ac8bf93bb
MXS-2271 Rename monitor-related classes
...
MXS_MONITOR->Monitor
MonitorInstance->MonitorWorker
MonitorInstanceSimple->MonitorWorkerSimple
2019-01-22 15:59:17 +02:00
465f9f16c4
MXS-2271 Remove unused monitor entrypoints
2019-01-22 15:59:17 +02:00
dadb6a1a79
MXS-2271 All monitors inherit from MXS_MONITOR
...
Most of the API entrypoints are replaced with virtual functions.
2019-01-22 15:59:17 +02:00
3321a591ef
MXS-2271 Move some monitor management functions to an internal class
...
The class MonitorManager contains monitor-related functions that should not
be called from modules. MonitorManager can access private fields and methods
of the monitor.
2019-01-22 10:31:06 +02:00
dd16a09342
MXS-2271 Move some initializers out of monitor_create()
2019-01-17 18:24:28 +02:00
40f58ddec8
MXS-2271 Use std::mutex instead of pthread_mutex
2019-01-17 17:51:39 +02:00
3125d1babf
MXS-2271 Convert MXS_MONITOR and MXS_MONITORED_SERVER to classes
...
First step in monitor refactoring and cleanup.
2019-01-17 17:43:54 +02:00
f7d97825fb
MXS-2219 Add monitor_stash_current_status
...
The functions stores the current server status to the monitored
server's mon_prev_status and pending_status fields.
To be used at the start of the monitor loop, before the pending
status fields are updated.
2019-01-17 11:11:21 +02:00
994b76ff79
MXS-2219 Provide STL iterator for MXS_MONITORED_SERVER
2019-01-17 11:11:21 +02:00
8a8ac26e32
Cleanup monitor.hh
...
Also removes an unused field from several monitors.
2018-12-11 10:41:56 +02:00
9f721f725e
MXS-2205 Convert maxscale/protocol/mysql.h to .hh
2018-12-05 11:12:20 +02:00
ad12ff6d06
MXS-2196: Rename dcb.h to dcb.hh
2018-12-04 11:50:43 +02:00
8a570eb6a1
MXS-2205 Combine maxscale/monitor.h with maxscale/monitor.hh
2018-12-03 15:28:06 +02:00
ecc7442358
Detect manual commands faster
...
Previous, MariaDBMonitor would wait until the next monitor interval before detecting
a new manual command. The commands are now checked every 100 ms.
2018-11-08 19:12:00 +02:00
f518b38364
Initialize disk_space_checked
...
Was reading an uninitialized value.
2018-10-16 16:09:38 +03:00
75ea1b6ea1
Fix formatting of new(std::nothrow)
...
The code previously formatted everything as `new( std::nothrow)`.
2018-10-04 21:50:44 +03:00
8b9fdaa0cb
Remove HTTP functionality
...
It wasn't used so it can be removed.
2018-10-03 08:41:45 +03:00
c447e5cf15
Uncrustify maxscale
...
See script directory for method. The script to run in the top level
MaxScale directory is called maxscale-uncrustify.sh, which uses
another script, list-src, from the same directory (so you need to set
your PATH). The uncrustify version was 0.66.
2018-09-09 22:26:19 +03:00
a6bef0a80d
Add credentials for remove REST API calls
...
The base URL and credentials used for REST API calls can now be defined in
the [maxscale] section. This allows encrypted passwords to be used.
2018-08-23 15:46:46 +03:00
13c04324cf
Add master extraction via REST API
...
The master server of a monitor can now be extracted with the
mon_get_external_master function. It uses the REST API to find a master
server in the set of servers monitored by a monitor.
2018-08-23 15:46:45 +03:00
24ab3c099c
Move top of the file "#pragma once" to after the following comment (swap them). If the comment is a BPL update it to the latest one
2018-08-21 13:13:15 +03:00
88f1795412
MXS-2008 Move Worker and MessageQueue to maxbase
2018-08-21 10:02:39 +03:00
d8255d0cac
MXS-2017 Move maxscale::Semaphore to maxbase::Semaphore
2018-08-17 15:53:54 +03:00
57706e7758
Hide the MonitorInstance m_state field
...
The field had the same purpose as MXS_MONITOR->state. Now the field
is only used for checking if the MonitorInstance thread is running.
2018-08-17 09:47:32 +03:00
fe5df6d379
Remove duplicate monitor state definitions
...
The state is still stored in two different variables. Also, removed the
ALLOC and FREED states.
2018-08-17 09:47:32 +03:00
f9ba8824d4
MXS-2004 Remove additional dependencies on maxscale/thread.h
2018-08-13 13:38:39 +03:00
b9ec3f5130
Monitor json diagnostics printing cleanup
...
The 'events' and 'script' config values were defined for every monitor.
Removed the extra definitions and moved the variables to MXS_MONITOR.
MariaDBMonitor was printing config values a second time, they are
already printed by the caller.
Moved the events enum definition to the internal header since it's no longer
required by modules.
Added a default config setting "all" to 'events' to clarify that it enables
all events.
2018-08-10 11:19:09 +03:00
f14380243b
Rename cppdefs.hh to ccdefs.hh
...
For obvious reasons; the c++ suffix is .cc and not .cpp
2018-08-10 07:50:18 +03:00
d412b8d729
Move execute_worker_task into mxs::Worker
...
The function has use outside of the monitors as it makes execution of
worker tasks much more convenient. Currently, this change only moves the
code and takes it into use: there should be no functional changes.
2018-08-02 18:56:35 +03:00
b421e56d1c
Move execute_worker_task to MonitorInstance
...
The function is rather general and may of use to other monitor modules.
2018-07-24 15:07:18 +03:00
862ae099b0
Construct diagnostics results in the monitor thread
...
MariaDBMonitor diagnostics printing is unsafe as some of the read
fields are arrays. To be on the safe side, the fields are now read
in the monitor worker thread.
Since diagnostics must work even for stopped monitors, a worker task
is used. In practice, it usually runs when the monitor is sleeping.
2018-07-20 10:18:58 +03:00
1eddb29d91
MXS-1915 Move Monitors on top of mxs::Worker
...
Monitors are now workers, so the path for making all interaction
between MaxScale proper and the monitors message based is now
open.
2018-06-26 09:19:46 +03:00