Skip to content

feat: surface objectStore upload reason, attempts, and retry logs#144

Merged
gma1k merged 1 commit into
mainfrom
feat/session-objectstore-hardening
May 22, 2026
Merged

feat: surface objectStore upload reason, attempts, and retry logs#144
gma1k merged 1 commit into
mainfrom
feat/session-objectstore-hardening

Conversation

@gma1k
Copy link
Copy Markdown
Owner

@gma1k gma1k commented May 22, 2026

Four hardening cuts on the existing session objectStore sink, aimed at operator-grade observability rather than new feature surface:

  • Doc alignmentdocs/operator.md and docs/crd-podtracesession.md no longer claim reportRef.objectStore
    is "reserved" or that the webhook rejects it. Both have been false since the feature actually landed; new copy points at
    docs/object-store-reports.md for semantics.
  • Failure observability — new typed enum ReportFailureReason (InvalidURI | CredentialMissing |
    BucketNotFound | AccessDenied | NetworkTimeout | Unknown) on status.reportFailureReason, plus status.reportAttempts mirroring the sidecar's RestartCount. Two new operator-side
    Prometheus series (session_report_upload_attempts_total with result+reason labels, session_report_upload_duration_seconds histogram) for SLO and trend tracking.
  • Idempotent timestamp — the sidecar persists its chosen object-key suffix to an emptyDir state file on first run and rereads it on every subsequent restart, so a kubelet-induced restart no longer produces a duplicate object under a fresh timestamp.
  • Retry transparency — each S3/GCS/Azure SDK retry boundary now produces a structured JSON log line on the sidecar's stderr with backend, method, url, status, attempt, took_ms, and error. Wiring is per-SDK (S3 via awsconfig.WithHTTPClient, GCS via storage.Client.SetRetry(storage.WithErrorFunc), Azure via a policy.PerRetryPolicies entry).

@gma1k gma1k merged commit 9f4937e into main May 22, 2026
17 checks passed
@gma1k gma1k deleted the feat/session-objectstore-hardening branch May 22, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant