Skip to main content

Load balancer health checker for a Plone/Zope Instance

Project description


Provides a mechanism to front-end load balancers to check whether a Zope
instance with one or more Plone sites installed is suitable for sending
requests to.

Suitability for a load balancer in this case is
- Are the Plone sites and their sub-resources pre-cached into memory? and
- Do the Plone sites and their sub-resources return valid HTTP status codes?

The health check works in this way:
- http://my.zope.instance/@@healthcheck is called
- If the health check has already run successfully 200 OK is returned
- The health checker traverses the ZODB looking for Plone insistences
- For each instance the front page is sub-requested (by making a sub-requests,
this forces the relevant Zope objects in the cache)
- The front page is inspected for second level pages and resources associated
with the page like images and css.
- Those resources are sub-requested to bring them into the cache
- CSS is inspected for resources and those resources and also sub-requested
- If successful a status code of 200 OK is returned otherwise 503 Service
Unavailable is returned

The health check will fail if
- The Plone front-page returns a 4xx client error or a 5xx server error. Except
for 401 Unauthorised access (unauthorised access is valid because a
restricted Plone site is a valid situation.)
- If a sub-resource returns a 5xx (server) error.

- http://my.zope.instance/@@healthcheck?verbose=yes gives more output to the
instance logs
- http://my.zope.instance/@@healthcheck?ignoreResourceServerError=yes ignores
5xx server errors on sub-requests to resources discovered on the front page
or CSS


1.0 (2011-06-24)

- Removed force=yes option to prevent DoS attacks
- Output now to instance stderr

0.1dev (unreleased)

- Plone instance discovery / ZODB traveersal
- Resource sub-requesting
- Page xml interigation and sub-requesting
- CSS interigation and sub-requesting
- Second level page sub-requesting
- Added verbose=yes for better output control
- Added force=yes to force a re-check
- Added ignoreResourceServerError=yes option to ignore 5xx errors returned by

Project details

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (10.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page