Skip to main content

A common WSGI stack

Project description

Talisker - an opinionated WSGI app platform

https://img.shields.io/pypi/v/talisker.svg https://img.shields.io/travis/canonical-ols/talisker.svg Documentation Status

Talisker is a runtime for your wsgi app that aims to provide a common platform for your python services.

tl;dr

Simply run your wsgi app with talisker as if it was gunicorn.:

talisker app:wsgi -c config.py …

Talisker will wrap your app in a some simple WSGI middleware, and configure logging to output structured logging like so:

logger = logging.getLogger('app')
logger.info('something happened', extra={'context': 'I haz it'})

will output:

2016-01-13 10:24:07.357Z INFO app "something happened" svc.context="I can haz it" request_id=...

It also exposes some status endpoints you can use, go to the /_status url on your app to see them.

This all works out of the box by using the talisker runner instead of gunicorns, and there are many more features you can use too.

Elevator Pitch

Talisker is based on a number of standard python tools:

  • stdlib logging for logs

  • gunicorn for a wsgi runner

  • requests for http requests

  • statsd for metrics

  • raven for errors

  • werkzeug for thread locals and wsgi utilities

It is designed sepcifically to be used in both development and production, and aims to provide a default set of features out of the box:

  • standard log format, including ISO/UTC timestamps

  • structured logging with python stdlib

  • improved gunicorn access logs, with ms precision UTC timestamps

  • request id tracing

  • standard set of status endpoints for your app

  • easier statsd endpoint configuration

  • sentry/raven middleware (TODO)

All the above are available by just using the talisker entry point script, rather than gunicorn.

In addition, with a small amount of effort, your app can benefit from additional feature:

  • deeper nagios checks - just implement a _status/check url in your app

  • per-thread requests connection pool managment (WIP)

  • automatic statsd metrics for outgoing HTTP requests (WIP)

  • more efficient statsd client management (WIP)

Additionally, talisker provides additional tools for integrating with your infrastructure:

  • grok filters for log parsing (WIP)

  • rsyslog templates and config for log shipping (TODO)

Talisker is opinionated, and derived directly from the authors’ needs and as such not currently very configurable. However, PR’s are very welcome!

For more information, see The Documentation, which should be found at:

https://talisker.readthedocs.io

History

0.4.1 (2016-08-05)

  • publish separate py2/py3 wheels, due to dependency differences

  • some doc changes

0.4.0 (2016-08-05)

  • First public release an PyPI.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

talisker-0.4.1-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

talisker-0.4.1-py2-none-any.whl (22.2 kB view details)

Uploaded Python 2

File details

Details for the file talisker-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for talisker-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 582b5b4afb94729e48f3e2ac28787d439723983cc704ea29adb934e827b3e7e6
MD5 1baeacf39dbea03132f298af7f772e27
BLAKE2b-256 c1384ddb4babf64d6776c49130b2d593b65c5be5657e6e2d868a53a4132b75b1

See more details on using hashes here.

File details

Details for the file talisker-0.4.1-py2-none-any.whl.

File metadata

File hashes

Hashes for talisker-0.4.1-py2-none-any.whl
Algorithm Hash digest
SHA256 b5c3bd2743e5f949ff8753714ae6d26506067a310f0d6a89d1a9657888120f01
MD5 33dcb0293890cb3be42ce429b08a7bc3
BLAKE2b-256 69af0bfa29dda2db8d8a9c2ff5f57dcdd89db0a6907f476c6a4570d56e26d19e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page