| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Documentation for hooks defined by prod_check.
 
-  */
 
- /**
 
-  * hook_prod_check_alter()
 
-  *
 
-  * You can implement hook_prod_check_alter() in your own module to add
 
-  * additional checks or modify the core checks.
 
-  * The hook receives the default functions divided into 7 categories:
 
-  *
 
-  *  - settings
 
-  *  - server
 
-  *  - performance
 
-  *  - security
 
-  *  - modules
 
-  *  - seo
 
-  *  - prod_mon
 
-  *  - perf_data
 
-  *
 
-  * 'prod_mon' & 'perf_data' are special categories that will only be used by the
 
-  * accompanying Production monitor module.
 
-  *
 
-  * Your function that implements the actual check must accept 1 string parameter
 
-  * and return an array using the prod_check_execute_check() function.
 
-  *
 
-  * An example implementation (note the pass by reference in the hook!):
 
-  */
 
- /**
 
-  * Implements hook_prod_check_alter()
 
-  * @param array reference to an associative array of all available checks
 
-  */
 
- function my_module_prod_check_alter(&$checks) {
 
-   // Add custom check to the server category:
 
-   //  function_name => title
 
-   // Do not use t() for the title!
 
-   $checks['server']['functions']['my_module_additional_check'] = 'Additional check title';
 
-   // Add custom check for Production Monitor only
 
-   $checks['prod_mon']['functions']['my_module_prod_mon_check'] = 'My Production Monitor only check';
 
-   // Gather performance data
 
-   $checks['perf_data']['functions']['my_module_prod_check_return_data'] = 'Performance logging';
 
-   // Add entirely new category.
 
-   $checks['my_category'] = array(
 
-     'title' => 'Custom category',
 
-     'description' => 'Collection of checks I find important.',
 
-     'functions' => array(
 
-       'my_module_check_stuff' => 'Check stuff',
 
-       'my_module_check_more_stuff' => 'Check more stuff',
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * Custom function to check some things.
 
-  * @param string the caller of the function, defaults to 'internal' but can also
 
-  *        be 'xmlrpc' or 'nagios'
 
-  * @return array you _must_ return prod_check_execute_check($check, $caller) as
 
-  *         per the example below to insure a proper status array is returned.
 
-  */
 
- function my_module_additional_check($caller = 'internal') {
 
-   $check = array();
 
-   $title = 'My modules settings';
 
-   $setting1 = t('Enable debug info');
 
-   $setting2 = t('Disable debug info');
 
-   $path = 'admin/settings/my-module-settings-page';
 
-   if ($caller != 'internal') {
 
-     $path = PRODCHECK_BASEURL . $path;
 
-   }
 
-   $check['my_module_additional_check'] = array(
 
-     '#title' => t($title),
 
-     '#state' => variable_get('my_module_debug', 1) != 1,
 
-     '#severity' => ($caller == 'nagios') ? NAGIOS_STATUS_CRITICAL : PROD_CHECK_REQUIREMENT_ERROR,
 
-     '#value_ok'  => $setting2,
 
-     '#value_nok'  => $setting1,
 
-     '#description_ok'  => prod_check_ok_title($title, $path),
 
-     '#description_nok' => t('Your !link settings are set to %setting1, they should be set to %setting2 on a producion environment!',
 
-       array(
 
-         '!link' => '<em>'.l(t($title), $path, array('attributes' => array('title' => t($title)))).'</em>',
 
-         '%setting1' => $setting1,
 
-         '%setting2' => $setting2,
 
-       )
 
-     ),
 
-     '#nagios_key' => 'MYCHCK',
 
-     '#nagios_type' => 'state',
 
-   );
 
-   return prod_check_execute_check($check, $caller);
 
- }
 
- function my_module_check_stuff($caller = 'internal') {
 
-   [...]
 
-   return prod_check_execute_check($check, $caller);
 
- }
 
- function my_module_check_more_stuff($caller = 'internal') {
 
-   [...]
 
-   return prod_check_execute_check($check, $caller);
 
- }
 
- /**
 
-  * Custom callback for a prod_mon only check. Note the additional parameter in
 
-  * the prod_check_execute_check() call!
 
-  */
 
- function my_module_prod_mon_check($caller = 'internal') {
 
-   [...]
 
-   return prod_check_execute_check($check, $caller, 'prod_mon');
 
- }
 
- /**
 
-  * Return performance data to Production Monitor.
 
-  */
 
- function my_module_prod_check_return_data() {
 
-   $data = my_module_gather_summary_data();
 
-   if (!$data) {
 
-     return array(
 
-       'my_module' => array (
 
-         'title' => 'Performance logging',
 
-         'data' => 'No performance data found.',
 
-        ),
 
-     );
 
-   }
 
-   return array(
 
-     'my_module' => array (
 
-       'title' => 'Performance logging',
 
-       'data' => array(
 
-         'Total number of page accesses' => array($data['total_accesses']),
 
-         'Average duration per page' => array($data['ms_avg'], 'ms'),
 
-         'Average memory per page' => array($data['mb_avg'], 'MB'),
 
-         'Average querycount' => array($data['query_count']),
 
-         'Average duration per query' => array($data['ms_query'], 'ms'),
 
-       ),
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * hook_prod_check_disabled_modules_whitelist()
 
-  *
 
-  * Check for updates for these modules even if they are disabled. Some modules
 
-  * (f.e. cache backends) are included directly but don't necessarily have the
 
-  * module enabled in the module list. This list can be extended by other modules
 
-  * or updated with other commonly used modules that are used in such a way.
 
-  */
 
- /**
 
-  * Implements hook_prod_check_disabled_modules_whitelist().
 
-  */
 
- function my_module_prod_check_disabled_modules_whitelist() {
 
-   return array('apc', 'memcache', 'varnish');
 
- }
 
- /**
 
-  * hook_prod_check_disabled_modules_whitelist_alter()
 
-  *
 
-  * Allow other modules to add or delete modules to force check.
 
-  */
 
- /**
 
-  * Implements hook_prod_check_disabled_modules_whitelist_alter().
 
-  */
 
- function my_module_prod_check_disabled_modules_whitelist_alter(&$modules) {
 
-   // Remove apc module from the whitelist.
 
-   if ($pos = array_search('apc', $modules)) {
 
-     unset($modules[$pos]);
 
-   }
 
- }
 
 
  |