Correlate your costs with technical or business metrics
Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.
Billing explains what you spent. External metrics explain why. Connect a usage source in Integrations, then query it next to cloud cost in Advanced Explorer.Use this when you need to:
Reallocate shared infrastructure with a technical signal (requests, latency, schema size)
Track such as cost per active user or cost per transaction
Overlay business activity (orders, sessions, pipeline runs) on the same chart as spend
Add integration, External metric tiles for AWS, GCP, Datadog, Amplitude, Tsuga, and Google Sheets
The page title is Add integration. The subtitle is Choose a provider to connect billing or external metrics. Tiles are split into Billing and External metric.
3
Validate, then save
Connect screens are two columns: instructions on the left, Connection details on the right. Click Validate. Save connection stays disabled until validation succeeds. Custom metrics has no Validate step: Save connection creates the table.
After you save, the source appears under Integrations > Data sources. Most external metric sources use the External metrics badge. Google Sheets uses the Metrics badge. Custom metrics uses the Custom metrics badge. A Datadog connection shows metrics and, if you enabled CI Visibility, metrics_ci.
Integrations Data sources list with Datadog, External metrics, and Metrics badges
Query external metrics in Advanced Explorer only. Open Explore your data, then switch Classic to Advanced. Classic greys out non-cost metrics.
Click Explore your data in the sidebar, then switch Classic to Advanced.
2
Add a metric
Click + Add Metric. In the metric picker, use the chips cost, usage, metric, budget, and integrations.
Metric picker chips: cost, usage, metric, budget, and integrations
3
Pick the integration
Open integrations, then choose the source you connected. Helper text describes it as a live external usage metric.
4
Configure the series
For BigQuery, choose a table, then set Date field, Value column, Aggregate (for example SUM), Gap fill (FORWARD FILL, ZERO, or LINEAR), and optional Group by.
BigQuery table picker after you select the BigQuery integration
5
Fix an empty chart
If the chart is empty, pick a different table and change Period. Options include Custom dates, Trailing 7 / 30 / 45 / 90 Days, MTD, QTD, YTD, Last Week, Last Month, Last 3 / 6 / 12 months, and Last Invoice Month.
Period dropdown with Trailing 45 Days selected
In the demo workspace, demo_raw.artifact_* tables stayed empty at every range. demo_raw.raw_v2 with Trailing 90 Days rendered using date billing_period_end, value billed_cost, SUM, and FORWARD FILL.
External metric chart for demo_raw.raw_v2 with billed_cost SUM and FORWARD FILL
6
Add cost or a formula
Optionally click + Add Metric for Cost, then + Add Formula such as b / a.
Combine cost with external metrics in Explorer formulas.
Shared Cost Allocation
Split shared infrastructure using a usage metric.
Explorer
Query cost, usage, and formulas in one chart.
Billing Data
Connect AWS, GCP, Azure, and SaaS invoices first.
Last modified on October 21, 2026
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Costory Documentation","colors":{"primary":"#1D3C93","light":"#305DD9","dark":"#1D3C93"},"logo":{"light":"https://mintcdn.com/costory/jdghijjvsrOsYiTC/logo/light.png?fit=max\u0026auto=format\u0026n=jdghijjvsrOsYiTC\u0026q=85\u0026s=dee63acdba91bf952855557cc5c5ec16","dark":"https://mintcdn.com/costory/jdghijjvsrOsYiTC/logo/light.png?fit=max\u0026auto=format\u0026n=jdghijjvsrOsYiTC\u0026q=85\u0026s=dee63acdba91bf952855557cc5c5ec16","href":"https://costory.io"},"favicon":"https://mintcdn.com/costory/stODLWETeKeyz7ed/favicon-new.svg?fit=max\u0026auto=format\u0026n=stODLWETeKeyz7ed\u0026q=85\u0026s=334ff5307103e4ffc0473bb6e1b9b56c","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://costory.io","label":"Website"}],"primary":{"type":"button","label":"Start a free trial","href":"https://app.costory.io/welcome-demo?utm_source=get-started"}},"integrations":{"posthog":{"apiKey":"phc_jgU0iQbU4Arfu5ouKpn9YhzkTWv3P5VfW2n7sJsKR0P","apiHost":"https://user.costory.io","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude","aistudio"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"costory","hasAudioNarration":false,"actualSubdomain":"costory","customDomains":["docs.costory.io"],"gitSource":{"type":"github","owner":"costory-io","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af2033088844f4e905da51d","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":124},{"language":"default","tag":"Documentation","count":70},{"language":"default","tag":"Setup","count":44},{"language":"default","tag":"Alerts V2","count":26},{"language":"default","tag":"Dashboards","count":23},{"language":"default","tag":"Billing Data","count":22},{"language":"default","tag":"Use Cases","count":17},{"language":"default","tag":"Reports","count":16},{"language":"default","tag":"Metrics Correlation","count":13},{"language":"default","tag":"Events","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"setup/usage-metrics","slug":"/setup/usage-metrics","pageMetadata":{"title":"Correlate your costs with technical or business metrics","description":"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.","sidebarTitle":"Metrics Correlation","href":"/setup/usage-metrics"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Tooltip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Billing explains what you spent. External metrics explain why. Connect a usage source in `,_jsx(_components.strong,{children:`Integrations`}),`, then query it next to cloud cost in `,_jsx(_components.strong,{children:`Advanced Explorer`}),`.`]}),`\n`,_jsx(_components.p,{children:`Use this when you need to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Reallocate shared infrastructure with a technical signal (requests, latency, schema size)`}),`\n`,_jsxs(_components.li,{children:[`Track `,_jsx(Tooltip,{tip:`Financial metrics expressed on a per-unit basis: cost per customer, cost per API call, cost per transaction.`,cta:`See Glossary`,href:`/docs/glossary#unit-economics`,children:`unit economics`}),` such as cost per active user or cost per transaction`]}),`\n`,_jsx(_components.li,{children:`Overlay business activity (orders, sessions, pipeline runs) on the same chart as spend`}),`\n`]}),`\n`,_jsx(Frame,{caption:`Add integration, External metric tiles for AWS, GCP, Datadog, Amplitude, Tsuga, and Google Sheets`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=9c59528a5772931faac45e405038bb02`,alt:`Add integration page showing the External metric section with AWS, GCP, Datadog, Amplitude, Tsuga, and Google Sheets`,\"data-og-width\":`6720`,width:`6720`,\"data-og-height\":`4200`,height:`4200`,\"data-path\":`images/external-metrics/add-integration-external-metrics.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=8ba432f04238a60b2536aa339ef66f6d 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=62ed0ed5fa7f0cb4ca2dfa73fd499432 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=142832aaf4085382a72860a35714a735 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=9e0d6753ae9de16807c297a3db850936 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=8ec71d8280839410bd2697d444f923db 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/add-integration-external-metrics.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=9c06d23b5cebe5db8619c367dc5e0af9 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`add-an-external-metric`,children:`Add an external metric`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Add integration`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.costory.io/integration`,children:`Integrations`}),` and click `,_jsx(_components.strong,{children:`+ Add integration`}),`. `]})}),_jsx(Step,{title:`Pick an External metric tile`,children:_jsxs(_components.p,{children:[`The page title is `,_jsx(_components.strong,{children:`Add integration`}),`. The subtitle is `,_jsx(_components.strong,{children:`Choose a provider to connect billing or external metrics.`}),` Tiles are split into `,_jsx(_components.strong,{children:`Billing`}),` and `,_jsx(_components.strong,{children:`External metric`}),`.`]})}),_jsx(Step,{title:`Validate, then save`,children:_jsxs(_components.p,{children:[`Connect screens are two columns: instructions on the left, `,_jsx(_components.strong,{children:`Connection details`}),` on the right. Click `,_jsx(_components.strong,{children:`Validate`}),`. `,_jsx(_components.strong,{children:`Save connection`}),` stays disabled until validation succeeds. `,_jsx(_components.a,{href:`/setup/usage-metrics/custom-metrics-push`,children:`Custom metrics`}),` has no Validate step: `,_jsx(_components.strong,{children:`Save connection`}),` creates the table.`]})})]}),`\n`,_jsxs(_components.p,{children:[`After you save, the source appears under `,_jsx(_components.strong,{children:`Integrations`}),` > `,_jsx(_components.strong,{children:`Data sources`}),`. Most external metric sources use the `,_jsx(_components.strong,{children:`External metrics`}),` badge. `,_jsx(_components.a,{href:`/setup/usage-metrics/google-sheet`,children:`Google Sheets`}),` uses the `,_jsx(_components.strong,{children:`Metrics`}),` badge. `,_jsx(_components.a,{href:`/setup/usage-metrics/custom-metrics-push`,children:`Custom metrics`}),` uses the `,_jsx(_components.strong,{children:`Custom metrics`}),` badge. A Datadog connection shows `,_jsx(_components.strong,{children:`metrics`}),` and, if you enabled CI Visibility, `,_jsx(_components.strong,{children:`metrics_ci`}),`.`]}),`\n`,_jsx(Frame,{caption:`Integrations Data sources list with Datadog, External metrics, and Metrics badges`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=bd65a15ff233474f18d0858164157474`,alt:`Integrations Data sources list showing Docs Datadog, Tsuga, BigQuery, a Google Sheet, and billing datasources`,\"data-og-width\":`2048`,width:`2048`,\"data-og-height\":`1312`,height:`1312`,\"data-path\":`images/external-metrics/integrations-datasources-with-datadog.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=c04ad29168ec8496f781b26547c956f4 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=4866ccb3a69a80a62acfbaa4dcad0b5c 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=e5b38cff64d75578222e63cc2f4cfa38 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=991b32a06811a006b29a45f66d40ab16 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=95cd46e7b97c6ec7a768a2530c9aebf3 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/integrations-datasources-with-datadog.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=aaa2db8ae1ddf29b08093c98e6f07981 2500w`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Query external metrics in `,_jsx(_components.strong,{children:`Advanced Explorer`}),` only. Open `,_jsx(_components.strong,{children:`Explore your data`}),`, then switch `,_jsx(_components.strong,{children:`Classic`}),` to `,_jsx(_components.strong,{children:`Advanced`}),`. Classic greys out non-cost metrics.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`external-metric-providers`,children:`External metric providers`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`AWS CloudWatch`,icon:`chart-line`,href:`/setup/usage-metrics/aws-cloudwatch`,children:_jsx(_components.p,{children:`CloudWatch metrics. Sub-choice on the AWS tile.`})}),_jsx(Card,{title:`GCP Cloud Monitoring`,icon:`chart-line`,href:`/setup/usage-metrics/gcp-cloud-monitoring`,children:_jsx(_components.p,{children:`Live GCP metrics. Sub-choice on the GCP tile.`})}),_jsx(Card,{title:`S3 metrics`,icon:`box`,href:`/setup/usage-metrics/s3-parquet`,children:_jsx(_components.p,{children:`Parquet files from S3. Sub-choice on the AWS tile.`})}),_jsx(Card,{title:`BigQuery`,icon:`database`,href:`/setup/usage-metrics/bigquery`,children:_jsx(_components.p,{children:`Any BigQuery table, queried live.`})}),_jsx(Card,{title:`BigQuery jobs (beta)`,icon:`code`,href:`/setup/usage-metrics/bigquery-jobs`,children:_jsx(_components.p,{children:`Reallocate slots to the user who ran the query. On-demand and reservations in one view.`})}),_jsx(Card,{title:`Datadog`,icon:`dog`,href:`/setup/usage-metrics/datadog`,children:_jsx(_components.p,{children:`Standard metrics. Same connect page as billing.`})}),_jsx(Card,{title:`Datadog CI Visibility`,icon:`code-branch`,href:`/setup/usage-metrics/datadog-ci`,children:_jsx(_components.p,{children:`CI and pipeline visibility. Same Datadog connect page.`})}),_jsx(Card,{title:`Amplitude`,icon:`chart-simple`,href:`/setup/usage-metrics/amplitude`,children:_jsx(_components.p,{children:`Active users, new users, WAU, and MAU, queried live.`})}),_jsx(Card,{title:`Tsuga`,icon:`chart-mixed`,href:`/setup/usage-metrics/tsuga`,children:_jsx(_components.p,{children:`Live cluster metrics, logs, and traces.`})}),_jsx(Card,{title:`Google Sheets`,icon:`table`,href:`/setup/usage-metrics/google-sheet`,children:_jsx(_components.p,{children:`Numeric columns from a spreadsheet.`})}),_jsx(Card,{title:`Snowflake`,icon:`database`,href:`/setup/usage-metrics/snowflake`,children:_jsx(_components.p,{children:`Tables from a database on your existing Snowflake integration.`})}),_jsx(Card,{title:`Custom metrics`,icon:`plug`,href:`/setup/usage-metrics/custom-metrics-push`,children:_jsx(_components.p,{children:`Hourly points you POST with an organization API key.`})})]}),`\n`,_jsxs(_components.p,{children:[`GCS Inventory is not on the `,_jsx(_components.strong,{children:`External metric`}),` grid. See `,_jsx(_components.a,{href:`/setup/usage-metrics/gcs-inventory`,children:`GCS Inventory`}),` for what to use instead.`]}),`\n`,_jsx(Heading,{level:`2`,id:`query-after-you-connect`,children:`Query after you connect`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Advanced Explorer`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Explore your data`}),` in the sidebar, then switch `,_jsx(_components.strong,{children:`Classic`}),` to `,_jsx(_components.strong,{children:`Advanced`}),`.`]})}),_jsxs(Step,{title:`Add a metric`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`+ Add Metric`}),`. In the metric picker, use the chips `,_jsx(_components.strong,{children:`cost`}),`, `,_jsx(_components.strong,{children:`usage`}),`, `,_jsx(_components.strong,{children:`metric`}),`, `,_jsx(_components.strong,{children:`budget`}),`, and `,_jsx(_components.strong,{children:`integrations`}),`.`]}),_jsx(Frame,{caption:`Metric picker chips: cost, usage, metric, budget, and integrations`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=83a364e7392e46a8df87ec385843e3f9`,alt:`Advanced Explorer metric picker open on Cost, with integrations listing Tsuga and BigQuery`,\"data-og-width\":`6720`,width:`6720`,\"data-og-height\":`4200`,height:`4200`,\"data-path\":`images/external-metrics/explorer-metric-picker.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=a205f10e6ba65f35073438e597bac90e 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=18386b2207596c9372a42b9d3c47ec2e 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=7a6a7ea748326254f29b73de9a4105ae 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=bf47c1c1c752eb1eb56c1165051fab4d 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=938267c18c78fc06205a1a83a325d010 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-metric-picker.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=65328e4eae4535153aa973b3a3f82990 2500w`})})]}),_jsx(Step,{title:`Pick the integration`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`integrations`}),`, then choose the source you connected. Helper text describes it as a live external usage metric.`]})}),_jsxs(Step,{title:`Configure the series`,children:[_jsxs(_components.p,{children:[`For BigQuery, choose a `,_jsx(_components.strong,{children:`table`}),`, then set `,_jsx(_components.strong,{children:`Date field`}),`, `,_jsx(_components.strong,{children:`Value column`}),`, `,_jsx(_components.strong,{children:`Aggregate`}),` (for example `,_jsx(_components.strong,{children:`SUM`}),`), `,_jsx(_components.strong,{children:`Gap fill`}),` (`,_jsx(_components.strong,{children:`FORWARD FILL`}),`, `,_jsx(_components.strong,{children:`ZERO`}),`, or `,_jsx(_components.strong,{children:`LINEAR`}),`), and optional `,_jsx(_components.strong,{children:`Group by`}),`.`]}),_jsx(Frame,{caption:`BigQuery table picker after you select the BigQuery integration`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=72f9ac21292f4f27c3ab6d0382e60619`,alt:`Select metric dropdown listing BigQuery tables such as demo_raw.artifact_registry and demo_raw.aws_ec2`,\"data-og-width\":`6720`,width:`6720`,\"data-og-height\":`4200`,height:`4200`,\"data-path\":`images/external-metrics/explorer-table-picker.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=7bf2ff9f19fba05fdce6f41859821abb 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=bd6e8e67fa49184b449a702e188adfbf 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=880ef074ce0385305dd49b0b242e2f16 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=757ced7dd1c37af8b31988791cbef76c 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=f6327de75351b4d2c18697df15ceef87 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-table-picker.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=1e68d1d4c1e33d6e7e66a37f9143a293 2500w`})})]}),_jsxs(Step,{title:`Fix an empty chart`,children:[_jsxs(_components.p,{children:[`If the chart is empty, pick a different table and change `,_jsx(_components.strong,{children:`Period`}),`. Options include Custom dates, Trailing 7 / 30 / 45 / 90 Days, MTD, QTD, YTD, Last Week, Last Month, Last 3 / 6 / 12 months, and Last Invoice Month.`]}),_jsx(Frame,{caption:`Period dropdown with Trailing 45 Days selected`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=7c5f901ae6651511c71163f3bb3254c2`,alt:`Advanced Explorer Period menu listing Custom dates, trailing ranges, MTD, QTD, YTD, and Last Invoice Month`,\"data-og-width\":`6720`,width:`6720`,\"data-og-height\":`4200`,height:`4200`,\"data-path\":`images/external-metrics/explorer-period-dropdown.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=ee14efa3f408d953aba340450a9e3ab5 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=3e9ac224946e77e56bd12d2c08c27a78 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=7f74d24c86afa265a964a7e2b07439d9 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=cb5ffbfb0a8375052fd8708eda138728 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=0b4326d91e05ea2a5584200d694ee7cf 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-period-dropdown.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=ca3052679ecf66c1fd3115a29e037187 2500w`})}),_jsxs(_components.p,{children:[`In the demo workspace, `,_jsx(_components.code,{children:`demo_raw.artifact_*`}),` tables stayed empty at every range. `,_jsx(_components.code,{children:`demo_raw.raw_v2`}),` with `,_jsx(_components.strong,{children:`Trailing 90 Days`}),` rendered using date `,_jsx(_components.code,{children:`billing_period_end`}),`, value `,_jsx(_components.code,{children:`billed_cost`}),`, `,_jsx(_components.strong,{children:`SUM`}),`, and `,_jsx(_components.strong,{children:`FORWARD FILL`}),`.`]}),_jsx(Frame,{caption:`External metric chart for demo_raw.raw_v2 with billed_cost SUM and FORWARD FILL`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=ee158e91580b31d7e8b0ddf9a5685f1c`,alt:`Advanced Explorer bar chart of Externalmetric from BigQuery demo_raw.raw_v2 over Trailing 90 Days`,\"data-og-width\":`6720`,width:`6720`,\"data-og-height\":`4200`,height:`4200`,\"data-path\":`images/external-metrics/explorer-chart-raw-v2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=280\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=85eaf7c56b5b150aff0a1d3936a5f6dd 280w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=560\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=f804f1ae9167cd950631cc53d523d75d 560w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=840\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=9ec09b0119d6c74dadcb5275d4caab7a 840w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=7e530c36a3dd1e768035580984876b03 1100w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=6b5a25b04df7fe26537bfaa09bb152f4 1650w, https://mintcdn.com/costory/7N_qRRx_7ACcj7QT/images/external-metrics/explorer-chart-raw-v2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7N_qRRx_7ACcj7QT\u0026q=85\u0026s=b0c3e5f2d650fa42adb0b9e5670f8caf 2500w`})})]}),_jsx(Step,{title:`Add cost or a formula`,children:_jsxs(_components.p,{children:[`Optionally click `,_jsx(_components.strong,{children:`+ Add Metric`}),` for `,_jsx(_components.strong,{children:`Cost`}),`, then `,_jsx(_components.strong,{children:`+ Add Formula`}),` such as `,_jsx(_components.code,{children:`b / a`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/setup/usage-metrics/bigquery`,children:`BigQuery`}),` for the live table picker and a worked query. See `,_jsx(_components.a,{href:`/features/unit-economics`,children:`Unit Economics`}),` for formula patterns, or `,_jsx(_components.a,{href:`/use-cases/amplitude/cost_per_active_users`,children:`cost per active user`}),` and `,_jsx(_components.a,{href:`/use-cases/allocate_shared_cloud_sql_database/allocate`,children:`shared Cloud SQL allocation`}),` for end-to-end examples.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related-pages`,children:`Related pages`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Unit Economics`,icon:`calculator`,href:`/features/unit-economics`,children:_jsx(_components.p,{children:`Combine cost with external metrics in Explorer formulas.`})}),_jsx(Card,{title:`Shared Cost Allocation`,icon:`chart-pie`,href:`/features/tagging/shared-cost-allocation`,children:_jsx(_components.p,{children:`Split shared infrastructure using a usage metric.`})}),_jsx(Card,{title:`Explorer`,icon:`magnifying-glass`,href:`/features/cost-explorer`,children:_jsx(_components.p,{children:`Query cost, usage, and formulas in one chart.`})}),_jsx(Card,{title:`Billing Data`,icon:`database`,href:`/setup/billing`,children:_jsx(_components.p,{children:`Connect AWS, GCP, Azure, and SaaS invoices first.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Correlate your costs with technical or business metrics","description":"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.","sidebarTitle":"Metrics Correlation","href":"/setup/usage-metrics"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Add an external metric","slug":"add-an-external-metric","depth":2,"children":[]},{"title":"External metric providers","slug":"external-metric-providers","depth":2,"children":[]},{"title":"Query after you connect","slug":"query-after-you-connect","depth":2,"children":[]},{"title":"Related pages","slug":"related-pages","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"costory","siteName":"Costory Documentation","title":"Correlate your costs with technical or business metrics - Costory Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T11:57:00.099Z","gitLastModified":"2026-10-21T11:56:14.000Z","originalFileLocation":"setup/usage-metrics.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Costory Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/costory/stODLWETeKeyz7ed/favicon-new.svg?fit=max\u0026amp;auto=format\u0026amp;n=stODLWETeKeyz7ed\u0026amp;q=85\u0026amp;s=334ff5307103e4ffc0473bb6e1b9b56c\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/costory/stODLWETeKeyz7ed/favicon-new.svg?fit=max\u0026amp;auto=format\u0026amp;n=stODLWETeKeyz7ed\u0026amp;q=85\u0026amp;s=334ff5307103e4ffc0473bb6e1b9b56c\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/costory/stODLWETeKeyz7ed/favicon-new.svg?fit=max\u0026amp;auto=format\u0026amp;n=stODLWETeKeyz7ed\u0026amp;q=85\u0026amp;s=334ff5307103e4ffc0473bb6e1b9b56c\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/costory/stODLWETeKeyz7ed/favicon-new.svg?fit=max\u0026amp;auto=format\u0026amp;n=stODLWETeKeyz7ed\u0026amp;q=85\u0026amp;s=334ff5307103e4ffc0473bb6e1b9b56c\">\u003cmeta data-mint-head property=\"og:title\" content=\"Correlate your costs with technical or business metrics - Costory Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Costory Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.costory.io/setup/usage-metrics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://costory.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Correlate+your+costs+with+technical+or+business+metrics\u0026amp;description=Connect+external+metrics+in+Costory+Integrations%2C+then+query+usage+metrics+next+to+cloud+cost+in+Advanced+Explorer.\u0026amp;theme=1281d3dcbd6f73a9ab3b217e\u0026amp;signature=a1158d4a882f6c24c07a64f72679f7ecfc5c058d2431867b96edc33f6550c049\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Correlate your costs with technical or business metrics - Costory Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://costory.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Correlate+your+costs+with+technical+or+business+metrics\u0026amp;description=Connect+external+metrics+in+Costory+Integrations%2C+then+query+usage+metrics+next+to+cloud+cost+in+Advanced+Explorer.\u0026amp;theme=1281d3dcbd6f73a9ab3b217e\u0026amp;signature=a1158d4a882f6c24c07a64f72679f7ecfc5c058d2431867b96edc33f6550c049\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/costory/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Costory Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1D3C93\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.costory.io/setup/usage-metrics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/setup/usage-metrics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.costory.io/#organization\",\"name\":\"Costory Documentation\",\"url\":\"https://docs.costory.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/costory/jdghijjvsrOsYiTC/logo/light.png?fit=max\u0026auto=format\u0026n=jdghijjvsrOsYiTC\u0026q=85\u0026s=dee63acdba91bf952855557cc5c5ec16\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.costory.io#website\",\"name\":\"Costory Documentation\",\"url\":\"https://docs.costory.io\",\"publisher\":{\"@id\":\"https://docs.costory.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.costory.io/setup/usage-metrics#webpage\",\"url\":\"https://docs.costory.io/setup/usage-metrics\",\"name\":\"Correlate your costs with technical or business metrics\",\"description\":\"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\",\"dateModified\":\"2026-10-21T11:56:14.000Z\",\"isPartOf\":{\"@id\":\"https://docs.costory.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.costory.io/setup/usage-metrics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.costory.io/setup/usage-metrics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Setup\",\"item\":\"https://docs.costory.io/setup/billing/aiven\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Correlate your costs with technical or business metrics\",\"item\":\"https://docs.costory.io/setup/usage-metrics\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.costory.io/setup/usage-metrics#article\",\"headline\":\"Correlate your costs with technical or business metrics\",\"name\":\"Correlate your costs with technical or business metrics\",\"description\":\"Connect external metrics in Costory Integrations, then query usage metrics next to cloud cost in Advanced Explorer.\",\"url\":\"https://docs.costory.io/setup/usage-metrics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.costory.io/setup/usage-metrics#webpage\"},\"dateModified\":\"2026-10-21T11:56:14.000Z\",\"publisher\":{\"@id\":\"https://docs.costory.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.costory.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Costory Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Costory Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/setup/usage-metrics.md","siteName":"Costory Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":"Get Started","pages":[{"title":"Welcome to Costory","href":"/get-started/welcome"},{"title":"Quickstart: How to set up automated cloud cost reporting in 30 minutes","sidebarTitle":"Quickstart: Automate your cloud cost reporting","href":"/get-started/quickstart"},{"title":"Plans and fair use","icon":"tags","href":"/get-started/plans"}]},{"group":"Setup","pages":[{"group":"Billing Data","root":{"title":"Billing Data","href":"/setup/billing"},"pages":[{"title":"Aiven Billing Setup","href":"/setup/billing/aiven"},{"title":"Anthropic Billing Setup","href":"/setup/billing/anthropic"},{"title":"AWS Billing Setup","href":"/setup/billing/aws"},{"title":"Azure Billing Setup","href":"/setup/billing/azure"},{"title":"BytePlus Billing Setup","sidebarTitle":"BytePlus","href":"/setup/billing/byteplus"},{"title":"ClickHouse Billing Setup","href":"/setup/billing/clickhouse"},{"title":"Cloudflare Billing Setup","href":"/setup/billing/cloudflare"},{"title":"Confluent Billing Setup","href":"/setup/billing/confluent"},{"title":"Cursor Billing Setup","href":"/setup/billing/cursor"},{"title":"Databricks Billing Setup","sidebarTitle":"Databricks","href":"/setup/billing/databricks"},{"title":"Custom Billing Format (FOCUS) in BigQuery","href":"/setup/billing/focus"},{"title":"Datadog Billing Setup","href":"/setup/billing/datadog"},{"title":"Elastic Cloud Billing Setup","href":"/setup/billing/elastic-cloud"},{"title":"ElevenLabs Billing Setup","sidebarTitle":"ElevenLabs","href":"/setup/billing/elevenlabs"},{"title":"GCP Billing Setup","href":"/setup/billing/gcp"},{"title":"GCP CUD Metadata","href":"/setup/billing/gcp-cud-metadata"},{"title":"Kling AI Billing Setup","sidebarTitle":"Kling AI","href":"/setup/billing/kling-ai"},{"title":"OpenAI Billing Setup","href":"/setup/billing/openai"},{"title":"OpenRouter Billing Setup","sidebarTitle":"OpenRouter","href":"/setup/billing/openrouter"},{"title":"Oracle Cloud Infrastructure Billing Setup","sidebarTitle":"Oracle Cloud","href":"/setup/billing/oci"},{"title":"Scaleway Billing Setup","href":"/setup/billing/scaleway"},{"title":"Snowflake Billing Setup","description":"Connect Snowflake account usage and billing data to Costory using key-pair authentication and a reusable Snowflake integration.","href":"/setup/billing/snowflake"}]},{"group":"Metrics Correlation","root":{"title":"Correlate your costs with technical or business metrics","sidebarTitle":"Metrics Correlation","href":"/setup/usage-metrics"},"pages":[{"title":"Amplitude","description":"Query Amplitude active users, new users, WAU, and MAU live in Costory Advanced Explorer. No time series is synced to BigQuery.","href":"/setup/usage-metrics/amplitude"},{"title":"AWS CloudWatch","description":"Connect AWS CloudWatch as an external metric in Costory. Attach a CloudWatch read policy and trust policy, then query metrics in Advanced Explorer.","href":"/setup/usage-metrics/aws-cloudwatch"},{"title":"BigQuery","description":"Query BigQuery tables live as external metrics in Costory Advanced Explorer. Grant dataset access, validate the project, then pick a table.","href":"/setup/usage-metrics/bigquery"},{"title":"BigQuery jobs","description":"Beta: attach BigQuery job metadata to GCP cost, reallocate slots to the user who ran each query, and see on-demand and reservation spend in one view.","sidebarTitle":"BigQuery jobs (beta)","href":"/setup/usage-metrics/bigquery-jobs"},{"title":"GCP Cloud Monitoring","description":"Connect Google Cloud Monitoring as a live external metric in Costory. Grant Monitoring Viewer, validate a project, then query GCP metrics in Advanced Explorer.","sidebarTitle":"Cloud Monitoring","href":"/setup/usage-metrics/gcp-cloud-monitoring"},{"title":"Custom Metrics Push","description":"Push hourly custom metrics to Costory over HTTP with an organization API key, then query them in Advanced Explorer, MCP, and virtual dimensions.","sidebarTitle":"Custom metrics","href":"/setup/usage-metrics/custom-metrics-push"},{"title":"Datadog","description":"Connect Datadog in Costory Integrations for billing, standard metrics, and CI visibility. Query standard metrics with rollups in Advanced Explorer.","href":"/setup/usage-metrics/datadog"},{"title":"Datadog CI Visibility","description":"Connect Datadog CI Visibility from the same Costory Integrations page as Datadog billing and standard metrics.","href":"/setup/usage-metrics/datadog-ci"},{"title":"GCS Inventory (Parquet)","description":"GCS Inventory is not on the Costory Add integration External metric grid. Query warehouse-native metrics with BigQuery instead.","href":"/setup/usage-metrics/gcs-inventory"},{"title":"Google Sheets","description":"Connect numeric metrics from a Google spreadsheet in Costory and query them as external metrics in Advanced Explorer.","href":"/setup/usage-metrics/google-sheet"},{"title":"S3 metrics","description":"Connect Parquet files from AWS S3 as external metrics in Costory. Scan a bucket prefix, then query discovered metrics in Advanced Explorer.","href":"/setup/usage-metrics/s3-parquet"},{"title":"Snowflake Metrics","description":"Query Snowflake tables as live external metrics in Costory. Reuse the billing integration, grant one database, then pick tables in Advanced Explorer.","href":"/setup/usage-metrics/snowflake"},{"title":"Tsuga","description":"Connect Tsuga live cluster metrics to Costory with an Operation API key, then query them in Advanced Explorer.","href":"/setup/usage-metrics/tsuga"}]},{"group":"Data Exports","pages":[{"title":"BigQuery Data Exports","sidebarTitle":"BigQuery exports","href":"/setup/destinations/bigquery"}]},{"group":"Events","root":{"title":"Connect Engineering Events to Costory (GitHub, CI/CD, Custom API)","sidebarTitle":"Events","href":"/setup/events"},"pages":[{"title":"Connect GitHub Events","href":"/setup/events/github"},{"title":"Send Events from CI/CD Pipelines","href":"/setup/events/ci-cd"},{"title":"Send Custom Events via API","href":"/setup/events/custom-api"},{"title":"Provider Events","href":"/setup/events/provider"}]},{"group":"Collaboration","pages":[{"title":"Slack","href":"/setup/collaboration/slack"},{"title":"Microsoft Teams","href":"/setup/collaboration/teams"},{"title":"Email","href":"/setup/collaboration/email"}]},{"title":"FinOps MCP: Cloud Cost Automation for AI Assistants and Slack","href":"/features/mcp"}]},{"group":"Understand","pages":[{"title":"Explorer","sidebarTitle":"Explorer","href":"/features/cost-explorer"},{"group":"Dashboards","root":{"title":"Cloud Cost Dashboards","sidebarTitle":"Dashboards","href":"/features/dashboards"},"pages":[{"title":"Create and Organize Dashboards","sidebarTitle":"Create dashboards","href":"/features/dashboards/create-dashboard"},{"title":"Dashboard Templates","sidebarTitle":"Templates","href":"/features/dashboards/templates"},{"title":"Dashboard Widgets and Chart Types","sidebarTitle":"Widgets and charts","href":"/features/dashboards/widgets"}]},{"title":"Events","sidebarTitle":"Events","href":"/features/events"},{"title":"Unit Economics","sidebarTitle":"Unit Economics","href":"/features/unit-economics"}]},{"group":"Tag \u0026 Allocate","expanded":true,"pages":[{"title":"Tag \u0026 Allocate Cloud Costs","sidebarTitle":"Overview","href":"/features/tagging"},{"title":"Dimensions","sidebarTitle":"Dimensions","href":"/features/tagging/dimensions"},{"title":"Split Shared Infrastructure Costs Across Teams","sidebarTitle":"Shared Cost Allocation","href":"/features/tagging/shared-cost-allocation"},{"title":"Enrichments","sidebarTitle":"Enrichments","href":"/features/tagging/enrichments"}]},{"group":"Share","pages":[{"title":"Share cost views","sidebarTitle":"Sharing","href":"/features/sharing"},{"title":"Cost Reports","sidebarTitle":"Cost Reports","href":"/v2/Automate/reports"},{"title":"Cost Digest: automate your FinOps reporting","sidebarTitle":"Digest","href":"/features/digest"},{"title":"Alerts","sidebarTitle":"Alerts","href":"/features/alerts"}]},{"group":"Teams","pages":[{"title":"Teams","sidebarTitle":"Teams","href":"/features/teams"},{"title":"Cloud Cost Budgets and Budget Alerts","sidebarTitle":"Budgets","href":"/features/budgets"}]},{"group":"Technical Documentation","pages":[{"group":"Cost Metrics","root":{"title":"Cost Metrics","href":"/docs/cost-metrics"},"pages":[{"title":"Contracted Cost vs Billed Cost: Savings Plan discount sharing issues","sidebarTitle":"Savings Plan discount sharing issues","href":"/docs/savings-plan-cost-fluctuation"},{"title":"Cloud Cost Currency Conversion","href":"/docs/currency-conversion"}]},{"title":"Standard Columns","href":"/docs/standard-columns"},{"title":"Billing Data Refresh Schedule and Cloud Cost Data Freshness","href":"/docs/data-refresh"},{"title":"Settings","sidebarTitle":"Settings","href":"/get-started/settings"},{"group":"Security","root":{"title":"Security","href":"/docs/security"},"pages":[{"title":"Identity and Access","href":"/docs/sso-access-control"},{"title":"Subprocessors","href":"/docs/subprocessors"}]}]},{"group":"Glossary","pages":[{"title":"Glossary","href":"/docs/glossary"}]}]},{"tab":"Use Cases","icon":"lightbulb","pages":[{"title":"Use Cases","href":"/use-cases/overview"}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"FinOps Memes","icon":"face-laugh-squint","pages":[{"title":"FinOps Memes","href":"/docs/finops-memes"}]}]},"basePath":"","title":"Correlate your costs with technical or business metrics - Costory Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}