Zum Inhalt

Polycrate API 0.11.21

Release-Datum: 20. Januar 2026

Highlights

  • 📊 S3 Bucket Metrics für Ceph: Storage-Anzeige funktioniert jetzt auch für Ceph-Buckets in der Detail-UI
  • 🔄 Inkrementelle Timeline: Timeline wird schrittweise aufgebaut für Ceph und junge MinIO-Buckets
  • 🔍 ActionRun/Agent Filter Fix: Organization- und Workspace-Filter funktionieren jetzt korrekt

Artefakte

Docker Images

docker pull cargo.ayedo.cloud/library/polycrate-api:0.11.21

Installation & Update

polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install

Installationsanleitung


Feature: S3 Bucket Metrics für Ceph-Buckets

Problem

S3 Buckets mit Ceph-Backend (RadosGW) zeigten in der Detail-UI keine Storage-Metriken:

  • Listen-Ansicht: Zeigte Storage-Werte korrekt ✅
  • Detail-UI: Zeigte "0 B" und "0 Objects" ❌

Ursache

  • current_usage und current_object_count wurden korrekt befüllt (für Tabelle)
  • metrics_data (JSONField für Detail-UI mit Timeline) blieb leer

Unterschied MinIO vs Ceph:

Cluster-Typ Metrics-Quelle Historie
MinIO VictoriaMetrics ✅ Historische Daten abrufbar
Ceph RadosGW Admin API ❌ Nur Momentaufnahme

Lösung: Inkrementelle Timeline

Neue Methode _update_metrics_data_incremental() in S3Bucket:

  • Bei jedem Reconcile wird ein Datenpunkt zur Timeline hinzugefügt
  • Timeline-Perioden: 1h, 24h, 30d
  • Alte Einträge werden automatisch bereinigt
  • Statistiken (Current, Average, Max) werden aus Timeline berechnet

Vorteile: - Ceph-Buckets haben jetzt Storage-Metriken in der Detail-UI - Junge MinIO-Buckets (ohne VictoriaMetrics-Historie) haben ebenfalls Daten - source: "incremental" markiert die Datenquelle für UI-Unterscheidung

Spezifikation


Fix: ActionRun und Agent Filter

Problem

Die Filter für Organization und Workspace in der ActionRun- und Agent-Tabelle (Table UI v2) funktionierten nicht:

  • Dropdown zeigte Optionen korrekt
  • Nach Auswahl: Keine Filterung oder unveränderte Ergebnisse

Ursache (zweifach)

  1. Lokale Filter-Klassen überschrieben Imports: In views.py waren lokale ActionRunUIFilter und AgentUIFilter Klassen definiert, die die korrekten Imports aus filters.py überschrieben
  2. Veralteter API-Client: Das OpenAPI-Schema und der generierte JavaScript-Client hatten veraltete Parameter-Namen (organization statt organizations)

Lösung

  1. Lokale Filter-Klassen in views.py entfernt
  2. OpenAPI-Schema und JavaScript API-Client neu generiert:
source ~/.nvm/nvm.sh && nvm use 20 && make api-client-js

Ergebnis: Filter für Organization und Workspace funktionieren jetzt für ActionRuns und Agents.

Spezifikation


Migration

Keine Datenbank-Migration erforderlich.


Entwickler-Hinweis

Nach Änderungen an Filter-Klassen muss immer das Schema und der JS-Client neu generiert werden:

source ~/.nvm/nvm.sh && nvm use 20 && make api-client-js

Vollständige Änderungen

GitHub Commits