Fixes the healthcheck factory method and docs
This change fix the factory method of the healthcheck middleware It also adds documentation about how to configure the middleware Change-Id: Ie549d4686e921a9d407ba2829f69f92216bfcf9a
This commit is contained in:
6
doc/source/healthcheck_plugins.rst
Normal file
6
doc/source/healthcheck_plugins.rst
Normal file
@@ -0,0 +1,6 @@
|
||||
================================
|
||||
Healthcheck middleware plugins
|
||||
================================
|
||||
|
||||
.. automodule:: oslo_middleware.healthcheck.disable_by_file
|
||||
:members:
|
||||
@@ -8,4 +8,5 @@ Contents
|
||||
|
||||
installation
|
||||
api
|
||||
healthcheck_plugins
|
||||
contributing
|
||||
|
||||
@@ -22,10 +22,52 @@ from oslo_middleware import base
|
||||
|
||||
|
||||
class Healthcheck(base.Middleware):
|
||||
"""Helper class that returns debug information.
|
||||
"""Healthcheck middleware used for monitoring.
|
||||
|
||||
If the path is /healthcheck, it will respond 200 with "OK" as the body.
|
||||
Or 503 with the reason as the body if one of the backend report
|
||||
an application issue.
|
||||
|
||||
Example of paste configuration:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[filter:healthcheck]
|
||||
paste.filter_factory = oslo_middleware:Healthcheck.factory
|
||||
path = /healthcheck
|
||||
backends = disable_by_file
|
||||
disable_by_file_path = /var/run/nova/healthcheck_disable
|
||||
|
||||
[pipeline:public_api]
|
||||
pipeline = healthcheck sizelimit [...] public_service
|
||||
|
||||
|
||||
Multiple filter sections can be defined if it desired to have
|
||||
pipelines with different healthcheck configuration, example:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[pipeline:public_api]
|
||||
pipeline = healthcheck_public sizelimit [...] public_service
|
||||
|
||||
[pipeline:admin_api]
|
||||
pipeline = healthcheck_admin sizelimit [...] admin_service
|
||||
|
||||
[filter:healthcheck_public]
|
||||
paste.filter_factory = oslo_middleware:Healthcheck.factory
|
||||
path = /healthcheck_public
|
||||
backends = disable_by_file
|
||||
disable_by_file_path = /var/run/nova/healthcheck_public_disable
|
||||
|
||||
[filter:healthcheck_admin]
|
||||
paste.filter_factory = oslo_middleware:Healthcheck.factory
|
||||
path = /healthcheck_admin
|
||||
backends = disable_by_file
|
||||
disable_by_file_path = /var/run/nova/healthcheck_admin_disable
|
||||
|
||||
More details on available backends and their configuration can be found
|
||||
on this page: :doc:`healthcheck_plugins`.
|
||||
|
||||
Can be inserted into any WSGI application chain to get information about
|
||||
the request and response.
|
||||
"""
|
||||
|
||||
NAMESPACE = "oslo.middleware.healthcheck"
|
||||
@@ -38,7 +80,7 @@ class Healthcheck(base.Middleware):
|
||||
|
||||
def healthcheck_filter(app):
|
||||
return cls(app, conf)
|
||||
return cls
|
||||
return healthcheck_filter
|
||||
|
||||
def __init__(self, application, conf):
|
||||
super(Healthcheck, self).__init__(application)
|
||||
|
||||
@@ -23,6 +23,22 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DisableByFileHealthcheck(pluginbase.HealthcheckBaseExtension):
|
||||
"""DisableByFile healthcheck middleware plugin
|
||||
|
||||
This plugin checks presence of a file to report if the service
|
||||
is unavailable or not.
|
||||
|
||||
Example of middleware configuration:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[filter:healthcheck]
|
||||
paste.filter_factory = oslo_middleware:Healthcheck.factory
|
||||
path = /healthcheck
|
||||
backends = disable_by_file
|
||||
disable_by_file_path = /var/run/nova/healthcheck_disable
|
||||
"""
|
||||
|
||||
def healthcheck(self):
|
||||
path = self.conf.get('disable_by_file_path')
|
||||
if path is None:
|
||||
|
||||
Reference in New Issue
Block a user