coulomb-social/docs/resource-evidence/service-objectives-and-observations-2026-08.md
tegwick c521adc2f9 Publish CSOC-WP-0005 resource demand and cost evidence
Add low/base/high demand forecasts, service objectives with timestamped
observations, and workload operations labor for resource:tenant:coulomb:coulomb-social.
2026-08-12 11:07:03 +02:00

3.3 KiB
Raw Blame History

Service objectives and usage observations — coulomb-social (2026-08)

Field Value
Resource resource:tenant:coulomb:coulomb-social
Workplan CSOC-WP-0005-T02
Created 2026-08-12T09:03:47Z
Machine record service-objectives-and-observations-2026-08.json

Service objectives (application-owned)

These are planning requirements for evaluating infrastructure options and forecast error — not external contractual SLAs.

Domain Objective Notes
Availability 99.5% monthly for app HTTPS Excludes scheduled maintenance and pure dependency outages
Latency /healthz p99 ≤ 500ms Synthetic-friendly
Latency Auth HTML p95 ≤ 1.5s App home, session pages
Latency Space markdown p95 ≤ 3s Includes Forgejo fetch; cold cache separate
Recovery RPO ≤ 60min, RTO ≤ 4h DB via apps-pg; content via Forgejo policy
Retention DB backups ≥ 30days Executed by platform; app requires recoverability
Retention App logs ≥ 14days Platform log sink when wired
Isolation tenant_id filter + instance-per-client No cross-tenant list/detail
Auth NetKingdom OIDC; no local passwords ADR-0001
Content safety Sanitized markdown HTML ADR-0002

Dependency inheritance (not double-owned)

Dependency What we inherit
apps-pg Physical DB backup/restore mechanics
reef-railiance k3s Node/pod availability
Forgejo Markdown durability and git history
KeyCape / Authelia Sign-in path availability

Observations (timestamped, non-secret)

Measure Value When Authority
public_healthz ok 2026-08-12T09:03:47Z curl app.coulomb.social
public_landing_http_status 200 2026-08-12T09:03:47Z curl
demo_fixture_raw_bytes 586 2026-08-12T09:03:47Z Forgejo public raw
declared_replicas 1 2026-08-12 railiance-apps chart
declared_cpu_request_millicores 100 2026-08-12 chart
declared_memory_request_mi 256 2026-08-12 chart
declared_cpu_limit_millicores 1000 2026-08-12 chart
declared_memory_limit_mi 1024 2026-08-12 chart
media_persistence_enabled false 2026-08-12 chart
helm_image_tag 7fcd0cf 2026-08-12 helm values
portfolio_ready_replicas 1 2026-08-11 RESOURCE-WP-0003 discovery
commissioned_on 2026-08-09 inventory resource-control
app_database_gb_logical unknown 2026-08-12 needs apps-pg measure
production_member_count unknown 2026-08-12 needs prod DB shell
observed_cpu/memory unknown 2026-08-12 cluster metrics authority

Explicit unknown is preferred over invented utilization. Cluster samples belong in railiance-cluster evidence; logical DB size may be published here once an operator can run a non-secret pg_database_size (or app management command) without credentials in git.

Forecast error measurement

After each month, compare demand proxies (T01) to:

  1. request/login counts from ingress or app metrics (when exported),
  2. logical DB size,
  3. member/space counts from app DB,
  4. operator hours from T03.

Record actuals as a dated observation append (new file or JSON revision), never rewrite prior observations.