Skip to content

Telemetry

TelemetrySink sends log events to any external collector via a custom emit callable. HttpJsonSink is a convenience class for HTTP JSON endpoints.

Installation

No additional dependencies required. This integration uses Python's standard library.

Quick Setup

python
from logly import logger
from logly.integrations.telemetry import HttpJsonSink

logger.add(HttpJsonSink(endpoint="http://localhost:8080/logs"), level="INFO")

Manual Setup

python
from logly import logger
from logly.integrations.telemetry import TelemetrySink

def my_collector(event):
    print(f"Telemetry event: {event}")

logger.add(TelemetrySink(emit=my_collector, service_name="my-service"), level="INFO")

Parameters

TelemetrySink

ArgumentTypeDefaultDescription
emitCallable(required)Callable that forwards telemetry events
service_namestr"logly"Service name attached to every event
environmentstr | NoneNoneOptional deployment environment

HttpJsonSink

ArgumentTypeDefaultDescription
endpointstr(required)URL to POST log events to
headersdict | NoneNoneOptional HTTP headers
timeoutfloat5.0Request timeout in seconds

Tips

  • Use HttpJsonSink for HTTP-based log ingestion APIs.
  • Use TelemetrySink with a custom callable for non-HTTP backends.
  • Add authentication headers for secured endpoints.

Full Example

python
from logly import logger
from logly.integrations.telemetry import HttpJsonSink

logger.add(
    HttpJsonSink(
        endpoint="http://localhost:8080/telemetry",
        headers={"Authorization": "Bearer token123"},
        timeout=10.0,
    ),
    level="INFO",
)

logger.info("Telemetry event", event_type="api_call", latency_ms=42)

Released under the MIT License.