Skip to main content

SeqPulse SDK for metrics endpoint instrumentation and HMAC validation

Project description

seqpulse (Python SDK)

SeqPulse Python SDK couvre deux usages:

  • Runtime application: instrumentation HTTP + endpoint metrics + validation HMAC v2
  • CI/CD integration: client trigger/finish pour orchestrer un deployment SeqPulse

Install

pip install seqpulse

Runtime (FastAPI)

from fastapi import FastAPI
from seqpulse import SeqPulse

app = FastAPI()

seqpulse = SeqPulse(
    endpoint="/seqpulse-metrics",
    hmac_enabled=True,
    hmac_secret="hmac_xxx",
)

# Note: hmac_enabled accepte aussi des strings ("true"/"false").

app.middleware("http")(seqpulse.middleware())

GET /seqpulse-metrics returns:

{
  "metrics": {
    "requests_per_sec": 0.25,
    "latency_p95": 31.221,
    "error_rate": 0,
    "cpu_usage": 0.42,
    "memory_usage": 0.18
  }
}

CI/CD client (trigger/finish)

from seqpulse import create_ci_client

client = create_ci_client(
    base_url="https://api.seqpulse.dev",
    api_key="sp_xxx",
    metrics_endpoint="https://your-app.example.com/seqpulse-metrics",
    env="prod",
    non_blocking=True,
)

trigger = client.trigger(branch="main")

# Deploy your app here...
deploy_succeeded = True

if trigger.get("ok") and trigger.get("deployment_id"):
    client.finish(
        deployment_id=trigger["deployment_id"],
        result="success" if deploy_succeeded else "failed",
    )

CI behavior

  • non_blocking=True (default): retourne un resultat skipped/error, sans lever d'exception.
  • non_blocking=False: leve une exception sur erreur API/config.
  • helpers inclus: build_ci_idempotency_key(), infer_result_from_pipeline_status().

Compatibility note

Cette evolution n'ecrase pas le SDK runtime actuel:

  • l'endpoint /seqpulse-metrics reste le meme
  • la logique HMAC runtime reste la meme
  • le client CI est ajoute en couche supplementaire

Local smoke test

python scripts/smoke.py

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

seqpulse-0.4.1.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

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

seqpulse-0.4.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file seqpulse-0.4.1.tar.gz.

File metadata

  • Download URL: seqpulse-0.4.1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for seqpulse-0.4.1.tar.gz
Algorithm Hash digest
SHA256 2ef098a4ec6f732620473c2ed2b85605339a96ebd77eaf046083f0101ba98d1b
MD5 1dcf4a62816827213b99676726fa85a1
BLAKE2b-256 ddeeaa9d6e2eb19f3c421890c10742112dda376db4e6a001229471548208726c

See more details on using hashes here.

File details

Details for the file seqpulse-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: seqpulse-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for seqpulse-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 48a8c170cf0ad2f2974ef59f51378dc11aede9a685fde2cac865e3713a2e2406
MD5 da1cd8e80cee81056244d6d52eadafe6
BLAKE2b-256 74a2283720897403c6f4204948928d1007d83f677f570d95e15deaeab60c6077

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