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.71.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.71-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: syvain_metrics_api_client-0.0.71.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.71.tar.gz
Algorithm Hash digest
SHA256 e74a8e7fe5275a32380446720ffdcbd5b30c170f2fb63481f361957f975801c4
MD5 1567738fae30456b840aa6ccf0e011ae
BLAKE2b-256 c18872ab1cb4d4bf8ff34bd3b5cc815b12b3c87187445a8e79f8e41f4e69e3a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: syvain_metrics_api_client-0.0.71-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.71-py3-none-any.whl
Algorithm Hash digest
SHA256 2604c84ad1130501a726d2be17dcb28c51886433022b705dc58a8b4376040bdc
MD5 24a00c3c9c725a497fe09cdfa8fac60c
BLAKE2b-256 58cf590b5a1acf76d1d76486def9c4d67f7247cb4250a168ab6de0a1ecb8a76f

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