Python library to aid consistent configuration of logging, metrics (future) and tracing (further in future). Packaging and wiring existing open tooling to work effortlessly on UIS DevOps managed cloud infrastructure.
Project description
Observability Python Library
Currently a POC in the Wilson team. Python library to aid consistent configuration of logging, metrics (future) and tracing (further in future). Packaging and wiring existing open tooling to work effortlessly on UIS DevOps managed cloud infrastructure.
Install this module
pip install ucam-observe
Usage
Logging
NOTE: Currently only vanilla python is supported, not Django.
Usage is similar to using structlog directly with the function get_structlog_logger returning
an object compatible with that returned by structlog's get_logger function. No further
configuration is needed.
logger = get_structlog_logger(__name__)
logger.info("some_event")
logger.info("some_other_event", foo=bar)
Metrics and Tracing
raise NotImplemented
Include Gunicorn structlog configuration in your project
Adapt Gunicorn configuration
In the root of your project, create/amend a gunicorn.conf.py. Add the following code to the file.
from ucam_observe.gunicorn import ( # noqa F401 used by gunicorn as magic variable
logconfig_dict
)
Be sure not to set any log config values via the CLI or config files.
Environment Configuration
Log Level
Set the LOG_LEVEL environment variable to control the logging level (e.g., DEBUG, INFO, WARNING, ERROR, CRITICAL). This setting adjusts the verbosity of the log outputs:
export LOG_LEVEL=DEBUG
Console Logging
Set the CONSOLE_LOGGING environment variable to control whether logs should be output in a console-friendly format. Set it to True to use console-friendly formatting:
export CONSOLE_LOGGING=True
Example Docker Compose Configuration
When using Docker Compose for local development, you can set the environment variables in your docker-compose.yml file:
version: '3.8'
services:
your_service:
build: .
environment:
- LOG_LEVEL=DEBUG
- CONSOLE_LOGGING=True
Developer quickstart
Firstly, install docker-compose. Install poethepoet
pip install poethepoet
Then, most tasks can be performed via the poe command.
E.g.
# Build the containers
$ poe build
Run the follow command to see available commands:
$ poe
Optional extras
NOTE: The Django optional extra is currently empty with a ticket open to add the required functionality
This library includes optional extras, e.g. ucam-observe[django]. Some
tests will require these optional dependencies to pass. The following command
will install all optional dependencies.
$ poe install-all-extras
Some tests require the absence of dependencies and these are excluded by default. See the tox.ini file for how these tests are run.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ucam_observe-0.2.2.tar.gz.
File metadata
- Download URL: ucam_observe-0.2.2.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3af4cbbdcbee93e2f84ce5f18ce42df164e046da59bc7fba6558224554aa2183
|
|
| MD5 |
97290d2902c152a2f528098cc74f0208
|
|
| BLAKE2b-256 |
222048ad277fbf02d4e006c937868b354db5b72ec54d6ddab81e1eb450afcacb
|
File details
Details for the file ucam_observe-0.2.2-py3-none-any.whl.
File metadata
- Download URL: ucam_observe-0.2.2-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d32c3e72c39cdf54ae353ed4c404ec41057b02d723938558c01d39bbd47ce339
|
|
| MD5 |
331575fc22f8c49d0687491f566c34fb
|
|
| BLAKE2b-256 |
3a7c411c48644b01c74c2338e434939e10e43f3f0ac6155eefa3d90ad39972b3
|