> ## Documentation Index
> Fetch the complete documentation index at: https://docs.costgraph.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Grafana Cloud

> Bring Grafana Cloud cost into CostGraph, pulled by us or pushed by you

Grafana Cloud bills metrics, logs, traces and profiles across every stack in an
organization, so one connection covers them all.

CostGraph reads Grafana Cloud as **FOCUS 1.2** records at a grain of billed dimension
x stack. Where Grafana Cloud returns a per-stack breakdown for a billed dimension, cost
is attributed to each stack; where it does not, that dimension arrives as a single
organization-level row.

## Choose how the data reaches us

<CardGroup cols={2}>
  <Card title="CostGraph pulls it" icon="cloud-arrow-down">
    You supply a read-only token and we call Grafana Cloud once a day. Nothing to run.
  </Card>

  <Card title="You push it" icon="cloud-arrow-up">
    You send us FOCUS records over the API. Credentials never leave your infrastructure.
  </Card>
</CardGroup>

## Let CostGraph pull

1. Open **Settings -> Integrations** and pick **Grafana Cloud**.
2. Name the connection, pick the tenant these charges belong to, and enter your
   organization slug, the `{org}` in `grafana.com/orgs/{org}`.
3. Create an **Access Policy token** whose realm is the organization, carrying the
   billing read scopes: `billing-metrics:read`, `org-billing-info:read`,
   `org-billing-rate:read`, `invoices:read` and `orgs:read`. Paste it in.
4. Select **Connect**.

<Warning>
  The token must be an organization Access Policy token, which starts with `glc_`. A
  stack service account token, starting with `glsa_`, cannot read billing and will fail
  verification.
</Warning>

CostGraph verifies the token with a short fetch before saving, so a wrong value or a
missing scope fails while you are still on the form.

<Note>
  Credentials are encrypted at rest and used only to read billing data. Revoke the token
  in Grafana Cloud at any time and the connection stops; nothing else is affected.
</Note>

## Push it yourself

Send the charges to CostGraph as FOCUS records instead. [Push FOCUS data](/costgraph/integrations/focus-push) covers the connection id,
the `focus:write` key, and the request shape.

## What CostGraph does with it

Records land as raw billing rows, are normalised into line items, and roll up into
daily cost. From there Grafana Cloud spend appears in Cost Overview and in anomaly
detection alongside every other provider, attributed per stack wherever Grafana Cloud
breaks the dimension down that way, and at the organization level where it does not.
