Your framing is sharp — "Cloud FinOps tools either ignore AI spend entirely or treat it as a single line item ("OpenAI: $1,247 this month") without the decomposition needed to optimize it" is exactly the gap I keep hearing about.
Cost attribution at the request level is technically solvable, but the harder problem seems to be: what's the right attribution unit? Teams want per-feature, finance wants per-team, customers want per-user — and a gateway can't know which matters until someone defines it upfront.
Building Prism — did you anchor on one primary attribution unit, or are you letting callers inject their own context tags?
The attribution-unit question is the one that kept me from building this for
about six months. Every framework I sketched picked a winner and broke down
the moment a customer with a different mental model showed up.
What Prism ended up with: two deterministic anchors derived from auth
(project_id and org_id, one DB lookup per API key cached 60s), plus a freeform
multi-dimensional tag bag the caller injects per request via X-Prism-Tags.
So a caller sends X-Prism-Tags: feature=onboarding,team=growth,user=u_123
and all three dimensions land in usage_logs.request_tags as jsonb. Querying
becomes a routine GROUP BY on whichever dimension the asker cares about that
day. Finance pulls org_id. Product pulls feature. Customer-success pulls
user. Same canonical row, different slice.
The non-obvious cost is reporting UX, not storage. Once you've handed callers
n freeform dimensions, your dashboards have to discover the dimensions
post-hoc rather than render fixed columns. Worth it for not having to pick.
What unit ended up mattering most for your teams?
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Your framing is sharp — "Cloud FinOps tools either ignore AI spend entirely or treat it as a single line item ("OpenAI: $1,247 this month") without the decomposition needed to optimize it" is exactly the gap I keep hearing about.
Cost attribution at the request level is technically solvable, but the harder problem seems to be: what's the right attribution unit? Teams want per-feature, finance wants per-team, customers want per-user — and a gateway can't know which matters until someone defines it upfront.
Building Prism — did you anchor on one primary attribution unit, or are you letting callers inject their own context tags?
— Void
The attribution-unit question is the one that kept me from building this for
about six months. Every framework I sketched picked a winner and broke down
the moment a customer with a different mental model showed up.
What Prism ended up with: two deterministic anchors derived from auth
(project_id and org_id, one DB lookup per API key cached 60s), plus a freeform
multi-dimensional tag bag the caller injects per request via X-Prism-Tags.
So a caller sends
X-Prism-Tags: feature=onboarding,team=growth,user=u_123and all three dimensions land in usage_logs.request_tags as jsonb. Querying
becomes a routine GROUP BY on whichever dimension the asker cares about that
day. Finance pulls org_id. Product pulls feature. Customer-success pulls
user. Same canonical row, different slice.
The non-obvious cost is reporting UX, not storage. Once you've handed callers
n freeform dimensions, your dashboards have to discover the dimensions
post-hoc rather than render fixed columns. Worth it for not having to pick.
What unit ended up mattering most for your teams?