1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- // $Id$
- /**
- * @file
- * An API to help modules expose their instrumentation to Munin.
- */
- define('MUNIN_API_COUNTER', 'COUNTER');
- define('MUNIN_API_GAUGE', 'GAUGE');
- function munin_api_menu() {
- $items = array();
- $items['admin/reports/munin_api'] = array(
- 'title' => 'Munin',
- 'description' => 'Reports about Munin data collectors and their probes',
- 'page callback' => 'munin_api_page_report_global',
- 'access arguments' => array('access site reports'),
- );
- $items['admin/reports/munin_api/list'] = array(
- 'type' => MENU_DEFAULT_LOCAL_TASK,
- 'title' => 'General',
- 'weight' => -1,
- );
- foreach (module_implements('munin_api_info') as $name) {
- $module = module_invoke($name, 'munin_api_info');
- $module = $module[$name];
- $items['admin/reports/munin_api/'. $name] = array(
- 'type' => MENU_LOCAL_TASK,
- 'title' => $module['#title'],
- 'description' => $module['#description'],
- 'page callback' => 'munin_api_page_report_instance',
- 'page arguments' => array(3),
- 'access arguments' => array('access site reports'),
- );
- }
- return $items;
- }
- /**
- * Page callback for Munin report
- *
- * @return string
- */
- function munin_api_page_report_global() {
- $items = module_invoke_all('munin_api_info');
- $header = array(
- t('Module'),
- t('Description'),
- t('Stats'),
- );
- $rows = array();
- foreach ($items as $name => $item) {
- $link_title = $item['#title'] ? $item['#title'] : $name;
- $rows[] = array(
- l($link_title, 'admin/reports/munin_api/'. $name),
- isset($item['#description']) ? $item['#description'] : t('<missing>'),
- count(element_children($item)),
- );
- }
- $ret = theme('table', $header, $rows);
- return $ret;
- }
- function munin_api_page_report_instance($module) {
- $module = module_invoke($module, 'munin_api_info');
- $module = reset($module);
- $header = array(t('Name'), t('Description'), t('Type'));
- $rows = array();
- foreach (element_children($module) as $name) {
- $rows[] = array(
- $name,
- isset($module[$name]['#title']) ? $module[$name]['#title'] : t('<missing>'),
- $module[$name]['#type'],
- );
- }
- $ret = theme('table', $header, $rows);
- return $ret;
- }
|