Polycrate API 0.11.18
Polycrate API 0.11.18
Release-Datum: 20. Januar 2026
Highlights
- Hotfix:
timezone.utcAttributeError in Timeline-Extraktion behoben - UI: Timeline-Charts auf Bar-Chart-Stil geändert (wie Endpoint Detail UI)
Artefakte
Docker Images
docker pull cargo.ayedo.cloud/library/polycrate-api:0.11.18
Installation & Update
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install
Hotfix: timezone.utc AttributeError
Problem
Nach Deploy von 0.11.17 erschien folgender Fehler:
Error extracting storage timeline: module 'django.utils.timezone' has no attribute 'utc'
Dieser Fehler verhinderte die Timeline-Datenextraktion für S3 Buckets und LoadBalancer Instances.
Root Cause
Django's timezone Modul hat kein utc Attribut. In 0.11.17 wurde fälschlicherweise django.utils.timezone.utc verwendet.
Lösung
Verwendung von datetime.timezone.utc aus der Python Standard-Library:
# Vorher (FALSCH)
from django.utils import timezone
datetime.fromtimestamp(ts, tz=timezone.utc) # AttributeError!
# Nachher (RICHTIG)
import datetime
datetime.datetime.fromtimestamp(ts, tz=datetime.timezone.utc)
Betroffene Komponenten
| Komponente | Methode | Fix |
|---|---|---|
| S3 Bucket | _extract_storage_timeline() |
dt.timezone.utc |
| LoadBalancer | _extract_bandwidth_timeline() |
datetime.timezone.utc |
UI: Bar-Chart-Stil für Timeline-Charts
Die Timeline-Charts für S3 Buckets und LoadBalancer Instances wurden von Area-Charts auf Bar-Charts umgestellt, um Konsistenz mit dem Endpoint Detail UI herzustellen.
Vorher vs. Nachher
| Komponente | Vorher | Nachher |
|---|---|---|
| S3 Bucket Storage Timeline | Area-Chart (Linien mit Füllung) | Bar-Chart |
| LoadBalancer Bandwidth Timeline | Area-Chart (Linien mit Füllung) | Bar-Chart |
Alle drei Detail-UIs (Endpoint, S3 Bucket, LoadBalancer) verwenden jetzt denselben visuellen Stil für Timeline-Daten.
Migration
Keine Datenbank-Migration erforderlich.
Testing nach Update
- S3 Bucket reconcilen (über UI oder API)
- Logs prüfen - kein "Error extracting storage timeline" mehr
- Django Admin:
metrics_data.storage_timelinesollte jetzt Daten enthalten