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
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
Close
Hashes for SQLAlchemy_Zipkin-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 922f97a0671ef01cbc7561b31b8a3133662ab60afe01c25180654afa384a7af1 |
|
MD5 | d2ce01fa9723d35e55e4dd045ba4ff36 |
|
BLAKE2b-256 | 851938dcb794b17976fe543d2ad332bb98030465d954eb71b25e33b2383e9373 |