Skip to main content

An zipkin extension for sqlalchemy library based on py_zipkin.

Project description

An zipkin extension for SQLAlchemy library based on py_zipkin.

Installation

pip install SQLAlchemy-Zipkin

Usage

import requests
import sqlalchemy_zipkin


PREAMBLE = sqlalchemy_zipkin.ZIPKIN_THRIFT_PREAMBLE


def http_transport(encoded_span):
    # type: (bytes) -> None

    # The collector expects a thrift-encoded list of spans. Instead of
    # decoding and re-encoding the already thrift-encoded message, we can just
    # add header bytes that specify that what follows is a list of length 1.
    url = 'http://zipkin:9411/api/v1/spans'

    body = PREAMBLE + encoded_span
    requests.post(
        url,
        data=body,
        headers={'Content-Type': 'application/x-thrift'},
    )


 sqla_instance = sqlalchemy_zipkin.SqlAlchemyZipkinInstrumentation(
     http_transport, sample_rate=50.0)
 sqla_instance.start()

Usage with Kafka

import functools
import sqlalchemy_zipkin
from kafka import KafkaProducer


def kafka_transport(stream_name, encoded_span):
    # type: (string) -> None
    # type: (bytes) -> None

    try:
        # If you use zipnkin kafka docker compose use port 19092
        producer = KafkaProducer(bootstrap_servers='localhost:9092')
        future = producer.send(stream_name, message)
    except Exception as e:
        print(str(e))


 sqla_instance = sqlalchemy_zipkin.SqlAlchemyZipkinInstrumentation(
     functools.partial(kafka_transport, 'zipkin'), sample_rate=50.0)
 sqla_instance.start()

0.2.0

  • Update py_zipkin dependency

  • Add note about using kafka collectors.

  • Prepare for PyPi release.

0.1.0

  • Initial version

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

SQLAlchemy-Zipkin-0.2.0.tar.gz (5.0 kB view hashes)

Uploaded Source

Built Distribution

SQLAlchemy_Zipkin-0.2.0-py2.py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 2 Python 3

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