mirror of
https://github.com/nicolargo/glances.git
synced 2024-11-28 05:42:57 +03:00
Update docs for Docker limits and actions (issue #875)
This commit is contained in:
parent
4396634e60
commit
92ec33c272
1
NEWS
1
NEWS
@ -9,6 +9,7 @@ Enhancements and new features:
|
||||
|
||||
* Add CouchDB exporter (issue #928)
|
||||
* Highlight max stats in the processes list (issue #878)
|
||||
* Docker alerts and actions (issue #875)
|
||||
* Glances API returns the processes PPID (issue #926)
|
||||
* Configure server cached time from the command line --cached-time (issue #901)
|
||||
|
||||
|
@ -209,12 +209,12 @@ port_default_gateway=True
|
||||
|
||||
[docker]
|
||||
# Thresholds for CPU and MEM (in %)
|
||||
cpu_careful=50
|
||||
cpu_warning=70
|
||||
cpu_critical=90
|
||||
mem_careful=20
|
||||
mem_warning=50
|
||||
mem_critical=70
|
||||
#cpu_careful=50
|
||||
#cpu_warning=70
|
||||
#cpu_critical=90
|
||||
#mem_careful=20
|
||||
#mem_warning=50
|
||||
#mem_critical=70
|
||||
# Per container thresholds
|
||||
#containername_cpu_careful=10
|
||||
#containername_cpu_warning=20
|
||||
|
@ -8,4 +8,25 @@ Glances uses the Docker API through the `docker-py`_ library.
|
||||
|
||||
.. image:: ../_static/docker.png
|
||||
|
||||
It is possible to define limits and actions from the configuration file
|
||||
under the ``[docker]`` section:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[docker]
|
||||
# Global containers' thresholds for CPU and MEM (in %)
|
||||
cpu_careful=50
|
||||
cpu_warning=70
|
||||
cpu_critical=90
|
||||
mem_careful=20
|
||||
mem_warning=50
|
||||
mem_critical=70
|
||||
# Per container thresholds
|
||||
containername_cpu_careful=10
|
||||
containername_cpu_warning=20
|
||||
containername_cpu_critical=30
|
||||
containername_cpu_critical_action=echo {{Image}} {{Id}} {{cpu}} > /tmp/container_{{name}}.alert
|
||||
|
||||
You can use all the variables ({{foo}}) available in the Docker plugin.
|
||||
|
||||
.. _docker-py: https://github.com/docker/docker-py
|
||||
|
@ -1,6 +1,6 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "GLANCES" "1" "Sep 24, 2016" "2.8_DEVELOP" "Glances"
|
||||
.TH "GLANCES" "1" "Oct 10, 2016" "2.8_DEVELOP" "Glances"
|
||||
.SH NAME
|
||||
glances \- An eye on your system
|
||||
.
|
||||
|
@ -524,20 +524,31 @@ class GlancesPlugin(object):
|
||||
glances_logs.add(ret, stat_name.upper(), value)
|
||||
|
||||
# Manage action
|
||||
self.manage_action(stat_name, ret.lower(), header, action_key)
|
||||
|
||||
# Default is ok
|
||||
return ret + log_str
|
||||
|
||||
def manage_action(self,
|
||||
stat_name,
|
||||
trigger,
|
||||
header,
|
||||
action_key):
|
||||
"""Manage the action for the current stat"""
|
||||
# Here is a command line for the current trigger ?
|
||||
try:
|
||||
command = self.__get_limit_action(ret.lower(), stat_name=stat_name)
|
||||
command = self.__get_limit_action(trigger, stat_name=stat_name)
|
||||
except KeyError:
|
||||
# Reset the trigger
|
||||
self.actions.set(stat_name, ret.lower())
|
||||
self.actions.set(stat_name, trigger)
|
||||
else:
|
||||
# Define the action key for the stats dict
|
||||
# If not define, then it sets to header
|
||||
if action_key is None:
|
||||
action_key = header
|
||||
|
||||
# A command line is available for the current alert, run it
|
||||
# Build the {{mustache}} dictionnary
|
||||
# A command line is available for the current alert
|
||||
# 1) Build the {{mustache}} dictionnary
|
||||
if isinstance(self.get_stats_action(), list):
|
||||
# If the stats are stored in a list of dict (fs plugin for exemple)
|
||||
# Return the dict for the current header
|
||||
@ -549,19 +560,22 @@ class GlancesPlugin(object):
|
||||
else:
|
||||
# Use the stats dict
|
||||
mustache_dict = self.get_stats_action()
|
||||
# Run the action
|
||||
# 2) Run the action
|
||||
self.actions.run(
|
||||
stat_name, ret.lower(), command, mustache_dict=mustache_dict)
|
||||
stat_name, trigger, command, mustache_dict=mustache_dict)
|
||||
|
||||
# Default is ok
|
||||
return ret + log_str
|
||||
|
||||
def get_alert_log(self, current=0, minimum=0, maximum=100, header=""):
|
||||
def get_alert_log(self,
|
||||
current=0,
|
||||
minimum=0,
|
||||
maximum=100,
|
||||
header="",
|
||||
action_key=None):
|
||||
"""Get the alert log."""
|
||||
return self.get_alert(current=current,
|
||||
minimum=minimum,
|
||||
maximum=maximum,
|
||||
header=header,
|
||||
action_key=action_key,
|
||||
log=True)
|
||||
|
||||
def __get_limit(self, criticity, stat_name=""):
|
||||
|
Loading…
Reference in New Issue
Block a user