Skip to main content

Typed Python client for the Syvain Metrics REST API

Project description

Syvain Metrics API Client

Typed Python client for the Syvain Metrics REST API.

This package maps directly onto the REST surface for experiments, folders, metrics, annotations, ingestion keys, and comparison queries. If you only need to record metrics from a training or evaluation job, use syvain-metrics-collector instead.

Install

uv add syvain-metrics-api-client

Authentication

Use an explicit API key:

from syvain_metrics_api_client import SyvainMetricsApiClient

client = SyvainMetricsApiClient("ak_org_...")

Use installed Syvain CLI auth:

client = SyvainMetricsApiClient("local")

local reads ~/.config/syvain-metrics/auth.json.

Usage

from syvain_metrics_api_client import ComparisonMetricSeries, SyvainMetricsApiClient

client = SyvainMetricsApiClient("local")

experiment = client.create_experiment(
    "mamba-run-001",
    description="Baseline mamba training run",
    metadata={"model": "mamba"},
).experiment

client.ingest_metrics(
    experiment.id,
    [
        {
            "client_event_id": "mamba-run-001/loss/1",
            "name": "loss",
            "value": 0.42,
            "step": 1,
            "metadata": {"split": "train"},
        }
    ],
    sync=True,
)

rows = client.compare_metrics(
    [
        ComparisonMetricSeries(
            experiment_id=experiment.id,
            metric_name="loss",
            metadata_key="split",
            metadata_value="train",
        )
    ],
    limit=500,
)

Every metric must include a stable client_event_id. Reuse the same value when retrying the same event so ingestion can remain idempotent.

Ingest and annotation creation calls mint and cache ingestion keys per experiment. General API calls use the configured API key directly.

Client Surface

Folders:

  • list_folders(...)
  • create_folder(...)
  • get_folder(...)
  • patch_folder(...)
  • rename_folder(...)
  • move_folder(...)

Experiments:

  • list_experiments(...)
  • create_experiment(...)
  • get_experiment(...)
  • update_experiment_status(...)
  • move_experiment(...)

Metrics:

  • list_metrics(...)
  • compare_metrics(...)
  • ingest_metrics(...)
  • list_metric_catalog(...)
  • inspect_metric_catalog_values(...)

Ingestion keys:

  • list_ingestion_keys(...)
  • create_ingestion_key(...)
  • revoke_ingestion_key(...)
  • forget_ingestion_credential(...)

Annotations:

  • list_annotations(...)
  • create_annotation(...)

Authentication:

  • auth_status()

Host and Timeouts

The client defaults to https://metrics.syvain.com.

client = SyvainMetricsApiClient(
    "ak_org_...",
    host="https://metrics.syvain.com",
    timeout=10.0,
    ingest_timeout=60.0,
)

timeout applies to ordinary API calls. ingest_timeout applies to metric and annotation ingestion calls, which may wait for synchronous ingestion when sync=True.

Write Retries and Idempotency

The client retries transient request failures for idempotent write operations. For POST and PATCH requests it sends a generated Idempotency-Key header and reuses that key across retry attempts for the same logical request.

Metric ingestion idempotency is controlled by each metric's client_event_id. Use deterministic IDs derived from the run, metric name, step, and series metadata when the same event may be retried by caller code.

Errors

All package-specific failures inherit from MetricsApiError.

  • MetricsApiRequestError: the API returned an HTTP error or could not be reached
  • MetricsApiResponseError: the API returned a successful response that did not match the expected schema
  • MetricsApiAuthError: local CLI auth was requested but unavailable or invalid

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

syvain_metrics_api_client-0.0.62.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

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

syvain_metrics_api_client-0.0.62-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file syvain_metrics_api_client-0.0.62.tar.gz.

File metadata

  • Download URL: syvain_metrics_api_client-0.0.62.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for syvain_metrics_api_client-0.0.62.tar.gz
Algorithm Hash digest
SHA256 013591d3a769169317df43b0239c1dbb4f3a1893da5f07977284b878bae4fce7
MD5 282ce922ac9f9b53190f1df7eb32658f
BLAKE2b-256 44fd532d49786c9f8a32b80efd3aa939da928a0afb15260be03b522b7ad34a40

See more details on using hashes here.

File details

Details for the file syvain_metrics_api_client-0.0.62-py3-none-any.whl.

File metadata

  • Download URL: syvain_metrics_api_client-0.0.62-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for syvain_metrics_api_client-0.0.62-py3-none-any.whl
Algorithm Hash digest
SHA256 f83f15db5b22a549e95d571a235d2ba5f63ea6d0f57b76c849041b593eb7f700
MD5 9c821bd185ffe20a1834a5705ce476d4
BLAKE2b-256 2c9f43c7294ca0cd218821bd80a29a16b5f932e70280d504427b350e707b83c5

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