mirror of
https://github.com/nicolargo/glances.git
synced 2024-11-28 14:12:21 +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)
|
* Add CouchDB exporter (issue #928)
|
||||||
* Highlight max stats in the processes list (issue #878)
|
* Highlight max stats in the processes list (issue #878)
|
||||||
|
* Docker alerts and actions (issue #875)
|
||||||
* Glances API returns the processes PPID (issue #926)
|
* Glances API returns the processes PPID (issue #926)
|
||||||
* Configure server cached time from the command line --cached-time (issue #901)
|
* Configure server cached time from the command line --cached-time (issue #901)
|
||||||
|
|
||||||
|
@ -209,12 +209,12 @@ port_default_gateway=True
|
|||||||
|
|
||||||
[docker]
|
[docker]
|
||||||
# Thresholds for CPU and MEM (in %)
|
# Thresholds for CPU and MEM (in %)
|
||||||
cpu_careful=50
|
#cpu_careful=50
|
||||||
cpu_warning=70
|
#cpu_warning=70
|
||||||
cpu_critical=90
|
#cpu_critical=90
|
||||||
mem_careful=20
|
#mem_careful=20
|
||||||
mem_warning=50
|
#mem_warning=50
|
||||||
mem_critical=70
|
#mem_critical=70
|
||||||
# Per container thresholds
|
# Per container thresholds
|
||||||
#containername_cpu_careful=10
|
#containername_cpu_careful=10
|
||||||
#containername_cpu_warning=20
|
#containername_cpu_warning=20
|
||||||
|
@ -8,4 +8,25 @@ Glances uses the Docker API through the `docker-py`_ library.
|
|||||||
|
|
||||||
.. image:: ../_static/docker.png
|
.. 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
|
.. _docker-py: https://github.com/docker/docker-py
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.\" Man page generated from reStructuredText.
|
.\" 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
|
.SH NAME
|
||||||
glances \- An eye on your system
|
glances \- An eye on your system
|
||||||
.
|
.
|
||||||
|
@ -524,20 +524,31 @@ class GlancesPlugin(object):
|
|||||||
glances_logs.add(ret, stat_name.upper(), value)
|
glances_logs.add(ret, stat_name.upper(), value)
|
||||||
|
|
||||||
# Manage action
|
# 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 ?
|
# Here is a command line for the current trigger ?
|
||||||
try:
|
try:
|
||||||
command = self.__get_limit_action(ret.lower(), stat_name=stat_name)
|
command = self.__get_limit_action(trigger, stat_name=stat_name)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# Reset the trigger
|
# Reset the trigger
|
||||||
self.actions.set(stat_name, ret.lower())
|
self.actions.set(stat_name, trigger)
|
||||||
else:
|
else:
|
||||||
# Define the action key for the stats dict
|
# Define the action key for the stats dict
|
||||||
# If not define, then it sets to header
|
# If not define, then it sets to header
|
||||||
if action_key is None:
|
if action_key is None:
|
||||||
action_key = header
|
action_key = header
|
||||||
|
|
||||||
# A command line is available for the current alert, run it
|
# A command line is available for the current alert
|
||||||
# Build the {{mustache}} dictionnary
|
# 1) Build the {{mustache}} dictionnary
|
||||||
if isinstance(self.get_stats_action(), list):
|
if isinstance(self.get_stats_action(), list):
|
||||||
# If the stats are stored in a list of dict (fs plugin for exemple)
|
# If the stats are stored in a list of dict (fs plugin for exemple)
|
||||||
# Return the dict for the current header
|
# Return the dict for the current header
|
||||||
@ -549,19 +560,22 @@ class GlancesPlugin(object):
|
|||||||
else:
|
else:
|
||||||
# Use the stats dict
|
# Use the stats dict
|
||||||
mustache_dict = self.get_stats_action()
|
mustache_dict = self.get_stats_action()
|
||||||
# Run the action
|
# 2) Run the action
|
||||||
self.actions.run(
|
self.actions.run(
|
||||||
stat_name, ret.lower(), command, mustache_dict=mustache_dict)
|
stat_name, trigger, command, mustache_dict=mustache_dict)
|
||||||
|
|
||||||
# Default is ok
|
def get_alert_log(self,
|
||||||
return ret + log_str
|
current=0,
|
||||||
|
minimum=0,
|
||||||
def get_alert_log(self, current=0, minimum=0, maximum=100, header=""):
|
maximum=100,
|
||||||
|
header="",
|
||||||
|
action_key=None):
|
||||||
"""Get the alert log."""
|
"""Get the alert log."""
|
||||||
return self.get_alert(current=current,
|
return self.get_alert(current=current,
|
||||||
minimum=minimum,
|
minimum=minimum,
|
||||||
maximum=maximum,
|
maximum=maximum,
|
||||||
header=header,
|
header=header,
|
||||||
|
action_key=action_key,
|
||||||
log=True)
|
log=True)
|
||||||
|
|
||||||
def __get_limit(self, criticity, stat_name=""):
|
def __get_limit(self, criticity, stat_name=""):
|
||||||
|
Loading…
Reference in New Issue
Block a user