Narration: Welcome. This is our fourth demo — covering everything we built
since the live dashboard demo on July 1. Focus areas: custom metric
extraction (REQ-13), observability stack, CI pipeline, integration testing,
and tooling.
Narration: Since demo 3 we shipped custom metrics, full observability,
a CI pipeline with integration testing, and developer tooling. 13 of 18
requirements are done.
Narration: This is the most important functional feature we added.
OSAC is evolving — new resource types, new metrics. Without REQ-13,
every new dimension means a code change. With it, an operator drops
a JSON config file and the system meters it automatically. No code
changes, no recompile, no redeploy.
Narration: Left side is the CloudEvent that arrives. Right side is the
config that tells the system which fields to extract as meters. The
field names in the config point at the field names in the event data.
Rating, reporting, and quotas all work on free-text meter names — so
custom metrics flow through the entire pipeline with zero code changes.
Narration: The built-in dashboard shows the pipeline in action. $94.62
in total cost, split across 4 tenants. The "shared" tenant has both
infrastructure ($7.39 from VMs) and supplementary ($70.45 from MaaS
tokens). Each tenant's cost is isolated.
Narration: The Environment tab shows operational config. OSAC connection
URL, database (credentials masked), processing intervals, auth status.
This is served from the binary itself — no separate tool needed.
Narration: The Grafana dashboard scrapes our Prometheus metrics on port
9000. You can see 17 live VMs, metering entries being created for both
compute instances and MaaS tokens, cost entries flowing from the rating
sweep. This starts with docker compose up — dashboard is pre-provisioned.
Narration: All metrics use the cost_consumer_ namespace. Counters for
events, metering entries, cost entries. Histograms for sweep duration.
Gauges for live resources. Served on a separate port without auth so
Prometheus can scrape without a JWT.
Narration: LOG_FORMAT=json for production. Every request gets a request
ID. Probe endpoints are exempt from JWT auth so Kubernetes can reach
them. Graceful shutdown drains in-flight requests. If a goroutine panics,
the error propagates to the errgroup and the pod restarts.
Narration: Every PR runs 6 CI jobs. The integration test deploys the
full stack — OSAC gRPC, REST gateway, OIDC mock, two PostgreSQL
instances, and our consumer — on k3s in GitHub Actions. Then it runs
12 end-to-end checks. All green.
Narration: Bruno is a local HTTP client like Postman but file-based —
the collection is committed to git. Each request has documentation with
valid parameter values. Click to fire, see the response. Great for demos
and for developers exploring the API.
Narration: Four rounds of adversarial review. 72 total findings, 46
fixed, 16 accepted as known PoC limitations. Zero critical or high
severity open. The 14 remaining are medium and low — none blocking.
Narration: We deployed the full OSAC AI gateway stack locally and proved
that our cost consumer works as a drop-in replacement for OpenMeter.
The IPP plugin calls our checkBalance and reportUsage endpoints — both
verified against the upstream source code and OpenAPI spec.
Narration: We hammered the pipeline with 40,000 requests at up to 100
concurrent connections. 850 requests per second sustained, zero failures.
Balance check averages 0.36ms, usage report 2.17ms. This is on a local
k3d cluster running on ARM Mac via QEMU — production would be faster.
Narration: The main open item is MaaS tenant attribution — we've
researched the IPP pipeline and found that TokenMetadata on the
MaaSSubscription CRD has the fields we need but they're not wired
through to the CloudEvent. Project-level quotas and catalog pricing
are new requirements from Pau's review. The gRPC Watch PoC is done
and tested — ready to switch if needed.