Skip to main content

Logging, Monitoring, and Tracing library for Selise Blocks applications using Azure Service Bus and RabbitMQ.

Project description

Selise Blocks LMT

Selise Blocks LMT (Logging, Monitoring, and Tracing) library for Selise Blocks applications. It sends logs and traces to Azure Service Bus for centralized processing.


Installation

Using pip:

pip install seliseblocks-lmt

Using uv:

uv add seliseblocks-lmt

Add to pyproject.toml:

[project]
dependencies = [
    "seliseblocks-lmt>=0.0.1",
]

Complete Example

import logging
from fastapi import FastAPI, Request
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
from blocks_lmt.log_config import configure_logger
from blocks_lmt.tracing import configure_tracing
from blocks_lmt.activity import Activity

app = FastAPI(title="Example Service with LMT")
FastAPIInstrumentor.instrument_app(app)

configure_logger(
    x_blocks_key="default-tenant",
    blocks_service_id="example-service",
    connection_string="Endpoint=sb://your-namespace.servicebus.windows.net/;..."
)

configure_tracing(
    x_blocks_key="default-tenant",
    blocks_service_id="example-service",
    connection_string="Endpoint=sb://your-namespace.servicebus.windows.net/;..."
)

logger = logging.getLogger(__name__)

@app.get("/")
async def root():
    logger.info("Root endpoint called")
    with Activity.start("handle_root_request") as activity:
        activity.set_property("endpoint", "/")
        return {"message": "Hello World"}

@app.get("/health")
async def health(request: Request):
    logger.info("Health endpoint called")
    Activity.set_current_properties({
        "http.query": str(dict(request.query_params)),
        "http.headers": str(dict(request.headers))
    })
    return {"status": "healthy"}

Activity API Reference

Context Manager

with Activity.start("operation_name") as activity:
    activity.set_property("key", "value")
    activity.set_properties({"key1": "val1", "key2": "val2"})

Status Handling

from opentelemetry.trace import StatusCode

Activity.set_current_status(StatusCode.ERROR, "Error message")

Best Practices

  1. Always instrument FastAPI:
FastAPIInstrumentor.instrument_app(app)
  1. Use context managers for activities to ensure proper cleanup:
with Activity.start("operation"):
    ...
  1. Log inside active spans to maintain trace correlation:
logger.info("This log is trace-correlated")
  1. Add meaningful properties to activities:
activity.set_property("user_id", user_id)

Dependencies

azure-servicebus = ">=7.14.2"
opentelemetry-api = ">=1.33.1"
opentelemetry-sdk = ">=1.33.1"
opentelemetry-instrumentation-fastapi = ">=0.54b1"

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

seliseblocks_lmt-0.0.4.tar.gz (49.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seliseblocks_lmt-0.0.4-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file seliseblocks_lmt-0.0.4.tar.gz.

File metadata

  • Download URL: seliseblocks_lmt-0.0.4.tar.gz
  • Upload date:
  • Size: 49.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.12

File hashes

Hashes for seliseblocks_lmt-0.0.4.tar.gz
Algorithm Hash digest
SHA256 8325a5027a2f1a2f6ad1cd68f3e9a456ed05532fe4c262601719a20dfbf0471f
MD5 3caad26948ecd0dde919f10559d35b33
BLAKE2b-256 8272d692264f37eb5a8b24c85a9a89e1955fe1d23beddebf0c4cf8ae9cb05efb

See more details on using hashes here.

File details

Details for the file seliseblocks_lmt-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for seliseblocks_lmt-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f905907ba285f97867d3b2d0157c34981bd5e279e35f804e9735babb1b62f612
MD5 347d6eb46891baf91cbcc5b79afe43ce
BLAKE2b-256 d71f112b60e4e72c50ce684f5155cb8ca7f6d89f08a868539954a34507f17088

See more details on using hashes here.

Supported by

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