Skip to main content

Observability components for Pip.Services in Python

Project description

Pip.Services Logo
Observability Components for Python

This module is a part of the Pip.Services polyglot microservices toolkit.

The Observability module contains observability component definitions that can be used to build applications and services.

The module contains the following packages:

  • Count - performance counters
  • Log - basic logging components that provide console and composite logging, as well as an interface for developing custom loggers
  • Trace - tracing components

Quick links:

Use

Install the Python package as

pip install pip_services4_observability

Example how to use Logging and Performance counters. Here we are going to use CompositeLogger and CompositeCounters components. They will pass through calls to loggers and counters that are set in references.

class MyComponent(IConfigurable, IReferenceable):
    __logger = CompositeLogger()
    __counters = CompositeCounters()

    def configure(self, config):
        self.__logger.configure(config)

    def set_references(self, references):
        self.__logger.set_references(references)
        self.__counters.set_references(references)

    def my_method(self, context, param1):
        try:
            self.__logger.trace(context, "Executed method mycomponent.mymethod")
            self.__counters.increment("mycomponent.mymethod.exec_count", 1)
            timing = self.__counters.begin_timing("mycomponent.mymethod.exec_time")
            # ...
            timing.end_timing()
        except Exception as ex:
            self.__logger.error(context, ex, "Failed to execute mycomponent.mymethod")
            self.__counters.increment("mycomponent.mymethod.error_count", 1)

Develop

For development you shall install the following prerequisites:

  • Python 3.7+
  • Visual Studio Code or another IDE of your choice
  • Docker

Install dependencies:

pip install -r requirements.txt

Run automated tests:

python test.py

Generate API documentation:

./docgen.ps1

Before committing changes run dockerized build and test as:

./build.ps1
./test.ps1
./clear.ps1

Contacts

The initial implementation is done by Sergey Seroukhov. Pip.Services team is looking for volunteers to take ownership over Python implementation in the project.

Project details


Download files

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

Source Distribution

pip_services4_observability-0.0.5.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file pip_services4_observability-0.0.5.tar.gz.

File metadata

File hashes

Hashes for pip_services4_observability-0.0.5.tar.gz
Algorithm Hash digest
SHA256 93262ff745e25b5a91f6e1b19ff37415907257d036db8a3f6bee0e684d4deec9
MD5 cc40e60378366cfe257f04439c039243
BLAKE2b-256 e0f8e679c96ec56ba1fe59bcc8b561d9cf6770a7c597e4a16a5cc04e2911b6c1

See more details on using hashes here.

File details

Details for the file pip_services4_observability-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pip_services4_observability-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0c28d0d8ca9474a1c1513863ce581f53e8f8896b4344d6e46912711d8188e825
MD5 58a70f0337275bd7b34b168a786d8be7
BLAKE2b-256 5b32774ec5bfcf2a6f7fc2233586b3d25d99927e44ccc3a07f3afe99724d9ac3

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