Skip to main content

Shared code logic in the project Thoth.

Project description

GitHub tag (latest by date) PyPI - Module Version PyPI - License PyPI - Downloads

A library used in project Thoth. It’s aim is to provide core utilities for logger setup, manipulation with datetimes and similar handy helpers. Namely, you can find:

  • operations used for cluster object management (e.g. obtaining logs of pods)

  • operations used for scheduling workload using Argo Workflows

  • Thoth’s configuration abstraction used for serialization/deserialization of Thoth’s config file across all the components

  • application logging setup

  • manipulation with date and time

Installation

This project is released on PyPI, so the latest release can be installed via pip or Pipenv as shown below:

pipenv install thoth-common

This library will automatically discover installed packages and enable Sentry integrations if you use Flask, SQLAlchemy or AIOHTTP. An exception is for Flask applications, that need to explicitly install sentry-sdk[flask] due to integrations dependencies.

Logging setup

To setup a logger in any of Thoth’s component (component that are namespaced with thoth), you can simply set an environment variable. The name of environment variable is constructed from module name. Let’s say you want to debug thoth.adviser.pipeline module, in that case you can set environment variable THOTH_LOG_ADVISER_PIPELINE=DEBUG which will cause loggers thoth.adviser.pipeline to be set to DEBUG mode. See log-levels documentation for more info. If a module has underscore in its name, replace it with double underscore in the environment variable name.

To setup a logger that is not introduced by a Thoth’s component, you can set THOTH_ADJUST_LOGGING environment variable. The format of this environment variable THOTH_ADJUST_LOGGING is a comma separated list where each entry is made out of a logger name and a corresponding log-level (”DEBUG”, “INFO”, “WARNING”, “ERROR” as for standard Python’s logging). These two are delimited by a colon, an example:

THOTH_ADJUST_LOGGING="flask:WARNING,alembic.migrations:ERROR"

Structured logging

The library will automatically detect when it is running inside an OpenShift cluster (based on STI_SCRIPTS_PATH environment variable that is inserted into the container if build the container was built in an OpenShift cluster), In such case, the library will setup structured logging suitable for automated logs aggregation (e.g. automated logs aggregation using the ELK stack). This behavior can be suppressed by setting environment variable THOTH_LOGGING_NO_JSON=1.

Ignoring reports from a logger

In some cases it’s expected to turn off reporting of some logger to Sentry. You can provide THOTH_SENTRY_IGNORE_LOGGER environment variable which holds a comma separated list of loggers that should be ignored when reporting errors to Sentry:

THOTH_SENTRY_IGNORE_LOGGER="thoth.adviser.resolver,thoth.adviser.run"

This is helpful if you want to report errors to users but not to Thoth application itself.

If you want some certain classes of error not to be reported to Sentry, you can can provide THOTH_SENTRY_IGNORE_EXCEPTION environment variable which holds a comma-separated list of exception classes to be ignored when reporting to Sentry:

THOTH_SENTRY_IGNORE_EXCEPTION="connexion.decorators.validation,builtins.ValueError"

Remember all builtin exception classes need to be specified as in the same manner as ValueError is specified above.

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

thoth-common-0.32.0.tar.gz (116.7 kB view details)

Uploaded Source

Built Distribution

thoth_common-0.32.0-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file thoth-common-0.32.0.tar.gz.

File metadata

  • Download URL: thoth-common-0.32.0.tar.gz
  • Upload date:
  • Size: 116.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.8

File hashes

Hashes for thoth-common-0.32.0.tar.gz
Algorithm Hash digest
SHA256 d2a8805fdaad8d304b1a6479d9460cef4c8aaa26785f900aa5adbf240e53198b
MD5 0c1c09762366359940795cfa3a524ba6
BLAKE2b-256 003a173876e8fe300a0f1b2c4972e9547a1a9be93b316fd334c88ae32ef35ab1

See more details on using hashes here.

File details

Details for the file thoth_common-0.32.0-py3-none-any.whl.

File metadata

  • Download URL: thoth_common-0.32.0-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.8

File hashes

Hashes for thoth_common-0.32.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f8f04d8013cfb7b41e170f46cbde683f9bb5b6db2b01d7c36a47c9d4ef29b7c
MD5 71c7702fdce087a80325767df7c07ad1
BLAKE2b-256 6d8b3e4a68db9f79dcee7a82fb5621f86c5ec7506e7fe2ce7b8d1384d85d9d03

See more details on using hashes here.

Supported by

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