Skip to main content

A simple way of logging how long it takes for SQLAlchemy queries to run.

Project description

Formatter Build Status codecov PyPI version PyPI - Python Version

Description

Provides a simple way to find slow SQL queries when using SQLAlchemy.

Hooks into the SQLAlchemy events system to find when queries start and finish. Note that this is not meant to serve as a profiler and will not explain why your queries are slow, just tell you which ones are. See SQLAlchemy docs about performance for profiling if you need to find out how much time a query spends waiting for database response, fetching the data and ORM operations.

Installation

This is a pure python package, so it can be installed with pip install simple-sqla-timer or any other dependency manager.

Usage

Run this function at the start of your application:

from simple_sqla_timer import setup_query_timer

setup_query_timer()

By default, this will log the start of the statements and their durations to the simple_sqla_timer logger, with debug level. You can override this behaviour by specifying a custom logging function:

import logging
from simple_sqla_timer import setup_query_timer

def my_log_function(statement: str, duration: float) -> None:
    logging.info("Query: %s\nDuration:%f", statement, duration)

setup_query_timer(my_log_function)

Important: The query timer must be set up before the application opens SQLAlchemy Engine connections. Any connections opened before setting up the timer will not have their statements logged.

Development

This library uses the poetry package manager, which has to be installed before installing other dependencies. Afterwards, run poetry install to create a virtualenv and install all dependencies.

Black is used (and enforced via workflows) to format all code. Poetry will install it automatically, but running it is up to the user. To format the entire project, run black ..

Contributing

This project uses the Apache 2.0 license and is maintained by the data science team @ Barbora. All contributions are welcome in the form of PRs or raised issues.

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

simple-sqla-timer-0.1.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

simple_sqla_timer-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file simple-sqla-timer-0.1.0.tar.gz.

File metadata

  • Download URL: simple-sqla-timer-0.1.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Linux/5.8.0-1039-azure

File hashes

Hashes for simple-sqla-timer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2eb359cd5c390ee9dc199a1dea196e57c6def976f15a922c5e880c4d3bb78f27
MD5 c97c3078d55833527531ce590fb0e791
BLAKE2b-256 876a34000529a87c0d78f2d02f1a771dbd1b38162704ebf13ba41e7637b99229

See more details on using hashes here.

File details

Details for the file simple_sqla_timer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: simple_sqla_timer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Linux/5.8.0-1039-azure

File hashes

Hashes for simple_sqla_timer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ff06edfb898da2134299de592ea69464df8bd9a82029faf9f896708df36e08e
MD5 3ff29cfaa9685eba305f72fdb5fc6b7b
BLAKE2b-256 9808c5cf190e597ceaa5356fc85a9ad02b335536063efdd94b6c149064806188

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