mirror of
https://github.com/nicolargo/glances.git
synced 2024-11-25 08:33:22 +03:00
AMP Nginx OK
This commit is contained in:
parent
3894233375
commit
5481771263
@ -29,11 +29,18 @@ from glances.logger import logger
|
|||||||
|
|
||||||
|
|
||||||
class GlancesAmp(object):
|
class GlancesAmp(object):
|
||||||
|
|
||||||
"""Main class for Glances AMP."""
|
"""Main class for Glances AMP."""
|
||||||
|
|
||||||
|
NAME = '?'
|
||||||
|
VERSION = '?'
|
||||||
|
DESCRIPTION = '?'
|
||||||
|
AUTHOR = '?'
|
||||||
|
EMAIL = '?'
|
||||||
|
|
||||||
def __init__(self, args=None):
|
def __init__(self, args=None):
|
||||||
"""Init AMP classe."""
|
"""Init AMP classe."""
|
||||||
|
logger.debug("Init {0} version {1}".format(self.NAME, self.VERSION))
|
||||||
|
|
||||||
# AMP name (= module name without glances_)
|
# AMP name (= module name without glances_)
|
||||||
self.amp_name = self.__class__.__module__[len('glances_'):]
|
self.amp_name = self.__class__.__module__[len('glances_'):]
|
||||||
|
|
||||||
@ -66,7 +73,7 @@ class GlancesAmp(object):
|
|||||||
#
|
#
|
||||||
if (hasattr(config, 'has_section') and
|
if (hasattr(config, 'has_section') and
|
||||||
config.has_section(self.amp_name)):
|
config.has_section(self.amp_name)):
|
||||||
logger.debug("AMP: Load {0} configuration".format(self.amp_name))
|
logger.debug("{0}: Load configuration".format(self.NAME))
|
||||||
for param, _ in config.items(self.amp_name):
|
for param, _ in config.items(self.amp_name):
|
||||||
try:
|
try:
|
||||||
self.configs[param] = config.get_float_value(self.amp_name, param)
|
self.configs[param] = config.get_float_value(self.amp_name, param)
|
||||||
@ -74,19 +81,19 @@ class GlancesAmp(object):
|
|||||||
self.configs[param] = config.get_value(self.amp_name, param).split(',')
|
self.configs[param] = config.get_value(self.amp_name, param).split(',')
|
||||||
if len(self.configs[param]) == 1:
|
if len(self.configs[param]) == 1:
|
||||||
self.configs[param] = self.configs[param][0]
|
self.configs[param] = self.configs[param][0]
|
||||||
logger.debug("AMP: Load {0} parameter: {1} = {2}".format(self.amp_name, param, self.configs[param]))
|
logger.debug("{0}: Load parameter: {1} = {2}".format(self.NAME, param, self.configs[param]))
|
||||||
else:
|
else:
|
||||||
logger.warning("AMP: Can not find section {0} in the configuration file".format(self.amp_name))
|
logger.warning("{0}: Can not find section {1} in the configuration file".format(self.NAME, self.amp_name))
|
||||||
|
|
||||||
# enable, regex and refresh are mandatories
|
# enable, regex and refresh are mandatories
|
||||||
# if not configured then AMP is disabled
|
# if not configured then AMP is disabled
|
||||||
for k in ['enable', 'regex', 'refresh']:
|
for k in ['enable', 'regex', 'refresh']:
|
||||||
if k not in self.configs:
|
if k not in self.configs:
|
||||||
logger.warning("AMP: Can not find configuration key {0} in section {1}".format(k, self.amp_name))
|
logger.warning("{0}: Can not find configuration key {1} in section {2}".format(self.NAME, k, self.amp_name))
|
||||||
self.configs['enable'] = 'false'
|
self.configs['enable'] = 'false'
|
||||||
|
|
||||||
if not self.enable():
|
if not self.enable():
|
||||||
logger.warning("AMP: {0} is disabled".format(self.amp_name))
|
logger.warning("{0} is disabled".format(self.NAME))
|
||||||
|
|
||||||
def get(self, key):
|
def get(self, key):
|
||||||
"""Generic method to get the item in the AMP configuration"""
|
"""Generic method to get the item in the AMP configuration"""
|
||||||
|
@ -19,6 +19,13 @@
|
|||||||
|
|
||||||
"""Nginx AMP."""
|
"""Nginx AMP."""
|
||||||
|
|
||||||
|
"""
|
||||||
|
A Glances AMP is a Python script called if a process is running.
|
||||||
|
The script should define a Amp (GlancesAmp) class with an update method.
|
||||||
|
The update method should call the set_result method to fill the AMP return string.
|
||||||
|
The return string is a string with one or more line (\n between lines).
|
||||||
|
"""
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from glances.logger import logger
|
from glances.logger import logger
|
||||||
@ -26,9 +33,14 @@ from glances.amps.glances_amp import GlancesAmp
|
|||||||
|
|
||||||
|
|
||||||
class Amp(GlancesAmp):
|
class Amp(GlancesAmp):
|
||||||
|
|
||||||
"""Glances' Nginx AMP."""
|
"""Glances' Nginx AMP."""
|
||||||
|
|
||||||
|
NAME = 'Nginx Glances AMP'
|
||||||
|
VERSION = '1.0'
|
||||||
|
DESCRIPTION = 'Get Nginx stats from status-page'
|
||||||
|
AUTHOR = 'Nicolargo'
|
||||||
|
EMAIL = 'contact@nicolargo.com'
|
||||||
|
|
||||||
# def __init__(self, args=None):
|
# def __init__(self, args=None):
|
||||||
# """Init the AMP."""
|
# """Init the AMP."""
|
||||||
# super(Amp, self).__init__(args=args)
|
# super(Amp, self).__init__(args=args)
|
||||||
@ -37,7 +49,7 @@ class Amp(GlancesAmp):
|
|||||||
"""Update the AMP"""
|
"""Update the AMP"""
|
||||||
|
|
||||||
if self.should_update():
|
if self.should_update():
|
||||||
logger.debug('AMPS: Update {0} using status URL {1}'.format(self.amp_name, self.get('status_url')))
|
logger.debug('{0}: Update stats using status URL {1}'.format(self.NAME, self.get('status_url')))
|
||||||
# Get the Nginx status
|
# Get the Nginx status
|
||||||
req = requests.get(self.get('status_url'))
|
req = requests.get(self.get('status_url'))
|
||||||
if req.ok:
|
if req.ok:
|
||||||
@ -47,6 +59,6 @@ class Amp(GlancesAmp):
|
|||||||
else:
|
else:
|
||||||
self.set_result(req.text)
|
self.set_result(req.text)
|
||||||
else:
|
else:
|
||||||
logger.debug('AMPS: Can not grab status URL {0} ({1})'.format(self.get('status_url'), req.reason))
|
logger.debug('{0}: Can not grab status URL {1} ({2})'.format(self.NAME, self.get('status_url'), req.reason))
|
||||||
|
|
||||||
return self.result()
|
return self.result()
|
||||||
|
@ -78,12 +78,12 @@ class Plugin(GlancesPlugin):
|
|||||||
|
|
||||||
# Build the string message
|
# Build the string message
|
||||||
for m in self.stats:
|
for m in self.stats:
|
||||||
|
# Only display AMP if a result exist
|
||||||
if m['result'] is None:
|
if m['result'] is None:
|
||||||
# Only display AMP if a result exist
|
|
||||||
continue
|
continue
|
||||||
# Display AMP
|
# Display AMP
|
||||||
# first_column = '{0} {1}/{2}'.format(m['key'], int(m['timer']), int(m['refresh']))
|
|
||||||
first_column = '{0}'.format(m['key'])
|
first_column = '{0}'.format(m['key'])
|
||||||
|
# first_column = '{0} {1}/{2}'.format(m['key'], int(m['timer']), int(m['refresh']))
|
||||||
for l in m['result'].split('\n'):
|
for l in m['result'].split('\n'):
|
||||||
# Display first column with the process name...
|
# Display first column with the process name...
|
||||||
msg = '{0:<20} '.format(first_column)
|
msg = '{0:<20} '.format(first_column)
|
||||||
|
Loading…
Reference in New Issue
Block a user