Skip to main content

Python client SDK for Streamdal's open source observability server

Project description

Streamdal Python SDK

Release Pull Request Discord

Python SDK for Streamdal.

For more details, see the main streamdal repo.


Documentation

See https://docs.streamdal.com

Installation

python -m pip install streamdal

Requirements

Example Usage

import json
from streamdal import (OPERATION_TYPE_CONSUMER, ProcessRequest, StreamdalClient, StreamdalConfig, EXEC_STATUS_TRUE)

client = StreamdalClient(
    cfg=StreamdalConfig(
        service_name="order-ingest",
        streamdal_url="streamdal-server.svc.cluster.local:8082",
        streamdal_token="1234",
    )
)

res = client.process(
    ProcessRequest(
        operation_type=OPERATION_TYPE_CONSUMER,
        operation_name="new-order-topic",
        component_name="kafka",
        data=b'{"object": {"email": "user@streamdal.com"}}',
    )
)

# Check that process() completed successfully
if res.status == EXEC_STATUS_TRUE:
    print("Success processed payload")
    data = json.loads(res.data)
    print("Response:", json.dumps(data, indent=2))
else:
    print("Failed to process payload")
    print("Error:", res.status_message)

Metrics

Metrics are published to Streamdal server and are available in Prometheus format at http://streamdal_server_url:8081/metrics

Metric Description Labels
streamdal_counter_consume_bytes Number of bytes consumed by the client service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_consume_errors Number of errors encountered while consuming payloads service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_consume_processed Number of payloads processed by the client service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_produce_bytes Number of bytes produced by the client service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_produce_errors Number of errors encountered while producing payloads service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_produce_processed Number of payloads processed by the client service, component_name, operation_name, pipeline_id, pipeline_name
streamdal_counter_notify Number of notifications sent to the server service, component_name, operation_name, pipeline_id, pipeline_name

Release

Any push or merge to the main branch with any changes in /sdks/python/* will automatically tag and release a new console version with sdks/python/vX.Y.Z.

(1) If you'd like to skip running the release action on push/merge to main, include norelease anywhere in the commit message.

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

streamdal-0.1.18.tar.gz (24.7 kB view details)

Uploaded Source

File details

Details for the file streamdal-0.1.18.tar.gz.

File metadata

  • Download URL: streamdal-0.1.18.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for streamdal-0.1.18.tar.gz
Algorithm Hash digest
SHA256 b61271113450bae0153a0a74e3f56fe7a2dc585d844d7889f50b0be34d0edbfa
MD5 14e803bebf44234089f759057b2b1f1e
BLAKE2b-256 d9dd328c5e2b29f0f2fa87144437f569377c8562c0f56e5b5ce5c765a9b468ac

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