Grafana Cloud cost vs self-hosted Grafana stack

Grafana Cloud bills a platform fee plus usage, while a self-hosted stack moves that spend into servers, storage, upgrades and on-call staff. Build the comparison from your own series, log volume and retention.

On this page

Is self-hosting Grafana cheaper than Grafana Cloud for our telemetry volume?

Self-hosting removes the metered fees, but it adds servers, storage and operating staff, so the answer depends on your telemetry volume and how long you keep it. If your renewal or usage bill is driven mostly by active series, GB processed and retention, run the numbers for your own volume before deciding. The Grafana Cloud pricing page lists a free tier, a Pro tier with a 19 US dollar monthly platform fee plus usage, and an Enterprise tier with a minimum commitment of 25,000 US dollars per year. Those are the only Grafana Cloud fees we can state here. Ask Grafana for a written estimate based on your actual series counts, log volume and retention, and compare it line by line with the costs below.

On the self-hosted side, the software itself carries no license fee for the core projects. Grafana, Loki and Mimir are all AGPL-3.0-only, and Prometheus is Apache-2.0 with no paid edition, so your costs are infrastructure, object storage, implementation and people. Grafana's own guidance requires MySQL or PostgreSQL for production and high availability, and Loki recommends object stores such as Amazon S3, Google Cloud Storage or Azure Blob Storage. Your recurring costs are compute, database, object storage, backups and the engineering time to upgrade and patch each component. Loki's retention is disabled by default, so logs accumulate until you configure it, which is a cost you control only if someone sets it. Ask your team to price each tier of storage and time spent on upgrades, on-call and capacity planning.

The decision usually turns on three checks. First, estimate steady-state volume and retention for each signal, because storage cost grows with both. Second, count the people who will run Grafana, Prometheus and Loki and what share of their week that takes, which is the cost most often left out. Third, confirm the features you rely on. SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud, so an identity requirement may push you toward a paid edition or a cloud tier even if the telemetry math favors self-hosting. If your volume is modest and your team is small, a scoped pilot with real retention settings will tell you more than a spreadsheet.

Which cost components move between Grafana Cloud and a self-hosted stack

This table sets each Grafana Cloud billing or effort component beside its self-hosted counterpart and marks whether it is one-time or recurring. Read it to see which costs disappear when you operate the stack yourself and which new ones you take on. Most of the decision turns on who staffs operations, not on the software license, since the core projects are open source.

Cost componentGrafana CloudSelf-hosted Grafana, Prometheus and Loki
Platform fee or licenseTiered platform fee (Pro starts at 19 US dollars per month plus usage, per Grafana pricing); Enterprise has a 25,000 US dollar per year minimumNo license fee for Grafana, Prometheus or Loki (AGPLv3 and Apache-2.0); Grafana Enterprise is a separate paid option. Recurring
Active series and metricsBilled on active series and samples, so cardinality growth raises the bill directly. RecurringStorage and compute for Prometheus or Mimir grow with series count. Recurring, with a one-time sizing exercise
Log volume and retentionBilled on GB ingested, written and retained. RecurringObject storage and compactor capacity for Loki chunks and index. Retention is off by default, so set it deliberately. Recurring
User seatsPer-user charges depend on tier and role. Confirm current seat rates with Grafana Labs before you model them. RecurringNo per-user fee. SAML, team sync and SCIM are Enterprise or Cloud only, so confirm your identity needs. One-time setup
ComputeIncluded in the service fee and not visible to youServers or Kubernetes nodes for Grafana (small deployments start at 2 cores and 2 to 4 GB RAM), Prometheus, Loki and Alertmanager. Recurring
Object storageIncluded in usage feesS3-compatible or cloud object storage for Loki and Mimir, plus backup copies. Recurring; Loki recommends S3, GCS or Azure Blob for production
ImplementationOnboarding, dashboards, provisioning and Alloy or OpenTelemetry pipelines are mostly internal work. One-timeInstall, high availability (two or more Grafana servers with MySQL or PostgreSQL), provisioning, authentication and hardening. One-time, often with an implementation partner
MigrationMoving in is supported by Grafana's tooling; moving out is manual (exporting dashboards and alert rules through the HTTP API, repointing remote write). One-timeRepointing Alloy or Prometheus remote write, moving logs to Loki and cutting over users. One-time, sized by dashboard and alert count
Upgrades and patchingHandled by Grafana Labs as part of the service. Recurring in your budget only as internal review timeGrafana minor releases every other month and patch releases at least monthly; Prometheus minor releases every 6 weeks. Recurring staff time and test environments
On-call and internal skillsPlatform staffing is minimal, but dashboard and alert engineering stays internal. RecurringStaff who run Prometheus storage, Loki compaction, Alertmanager clusters and backups around the clock. Recurring, and the largest line for most teams

What pushes the self-hosted total up or down

Most of the self-hosted cost follows from four quantities: how many series you emit, how many logs you keep, how long you keep them, and how many people need access. Availability and edition choices then decide how much infrastructure and operating effort sit underneath those volumes.

Metric series count and cardinality

Prometheus and Mimir cost grows with the number of active series, and each new label combination creates another one. Before sizing storage or compute, ask your team to count active series per service and find labels with unbounded values such as user IDs or request paths. Grafana Cloud bills on active series, so the same cardinality problem shows up on the invoice. Also confirm which exporters and OpenTelemetry pipelines add labels by default.

Log volume per day

Loki's sizing depends on how many gigabytes of logs arrive each day, because that number determines which deployment mode fits and how large the object store must be. Grafana Cloud charges for GB processed, so log volume is a direct cost on both sides. Measure current ingest from your log shippers over a normal week and a peak week, and separate debug logs that may not need long-term retention.

Retention period

Loki retention is disabled by default, so logs persist indefinitely until you set retention_enabled and define rules. Each extra month of retention adds object storage capacity and compactor work, and it keeps growing. Decide retention per tenant or per stream selector, and confirm which regulatory or audit requirements set the minimum. Prometheus keeps only 15 days by default, so long-term metrics need remote write to Mimir or another store.

Users and edition requirements

Self-hosted Grafana has no per-user charge, but your identity requirements can force an edition choice. SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud, so a team that needs SCIM provisioning from its identity provider must price Enterprise or stay on the open-source options such as LDAP or OIDC-based OAuth. Count the people who need edit rights, not just viewers, and confirm the identity provider features you rely on.

Availability and database needs

A single Grafana node with SQLite is enough for small teams, but production and high availability need two or more active-active Grafana servers behind a load balancer, sharing MySQL or PostgreSQL. That adds load balancer, database, backup and failover work, and alert deduplication needs extra configuration. Ask whether your uptime target justifies the extra nodes and database, and whether Grafana Live limitations affect your dashboards.

How the self-hosted stack's parts drive server and storage cost

The server and storage bill for a self-hosted Grafana stack comes from a few separate components, and each one scales differently. Start with Grafana itself, which stores its configuration in SQLite 3 by default. The installation docs say SQLite does not scale for production, so plan for MySQL 8.0 or later or PostgreSQL 12 or later from the start. High availability needs two or more active-active Grafana servers behind a load balancer sharing that database. Small deployments under 25 concurrent users are sized at 2 cores and 2 to 4 GB of RAM, so the Grafana tier is usually a small share of the bill. The database, load balancer and backups are the recurring items to price.

Prometheus is the component most teams underestimate. Its local time series database uses two-hour blocks and a write-ahead log, with a default retention of 15 days, and its storage is not clustered or replicated. Anything you want to keep longer, or to query across replicas, needs remote write to long-term storage such as Mimir, which is AGPL-3.0-only and horizontally scalable. That adds a second system to size, run and upgrade. Confirm the sample rate, series count and retention period you need before choosing node sizes, since these drive disk and memory far more than the number of dashboards. Alertmanager runs alongside Prometheus and should be deployed as a cluster for high availability, with Prometheus pointing at every instance.

Loki brings the largest storage decision. Its documented deployment modes are monolithic (up to about 20 GB of logs per day), simple scalable and microservices. Simple scalable mode is being deprecated and will be removed with Loki 4.0, so a new build should plan for microservices or monolithic mode rather than depending on it. Loki keeps compressed chunks and its index in object storage, and its recommended production stores are Amazon S3, Google Cloud Storage and Azure Blob Storage. Confirm whether your data residency rules allow those services, because MinIO and filesystem storage are supported but not typically recommended for production. Retention is disabled by default, so set it deliberately or storage will grow without limit.

How to build the comparison with your own numbers

This sequence turns a vague sense that self-hosting is cheaper into a side-by-side model built from your own usage, retention targets, staffing and quotes, so the decision rests on figures you can defend.

  1. Export current Grafana Cloud usage and invoices

    Finance or the platform lead pulls the last several billing periods from the Grafana Cloud account, including the platform fee, each usage line for metrics, logs, traces and any per-user charges, and any overage or commitment terms. Keep the invoices as the baseline. The step is done when every recurring line on the bill maps to a row in a spreadsheet and you can explain each one in your own words.

  2. Measure active series and daily log volume

    The team that operates the telemetry pipeline measures active metric series, samples written per second, and daily log ingestion for representative periods, including peak days. Record cardinality by team or service, since high-cardinality labels drive both bills and storage. The step is done when you have average and peak figures per data type and a note on which services produce most of the volume.

  3. Set target retention for each data type

    Architects and compliance owners agree how long metrics, logs and traces must be kept, separately for each data type and environment, and whether any data needs a different tenant or stricter access. Retention is the multiplier that turns daily volume into stored bytes, so it must be fixed before any sizing. The step is done when a signed retention table exists and each entry names the requirement it satisfies.

  4. Size compute and object storage for those volumes

    Platform engineers translate volumes and retention into compute for Grafana, Prometheus or Mimir, Loki and the collector tier, plus object storage capacity and the expected request load. Grafana's installation guidance sizes only small deployments, so treat larger sizing as something to validate with a load test in your environment. Ask whether the chosen backends are supported for production with object storage. The step is done when a sized architecture diagram and a monthly infrastructure estimate from your cloud or data center rate card are attached to the model.

  5. Price staff hours for build, upgrades and on-call

    Engineering management estimates the hours needed to install, configure, back up and secure the stack, then the recurring hours for patching, upgrades and incident response. Grafana ships minor releases roughly every other month and patch releases at least monthly, and each minor release is supported for a limited window, so budget for regular upgrade work. Include on-call rotation load and whether the team already covers this skill set. The step is done when hours are listed by role with a loaded cost rate, and recurring hours are kept apart from one-time setup hours.

  6. Request written quotes for any implementation

    If you bring in an implementation partner, request a written scope covering architecture, deployment, integration, hardening, backup, documentation and support, with deliverables and timelines agreed before work begins. DeployOpen works to fixed scope and does not publish prices, so ask for a quote that follows from that written scope. The step is done when each external line in the model is backed by a scope document rather than an assumption.

  7. Model one-time and recurring costs in separate columns

    Build the comparison with one column for one-time costs such as design, migration, dashboard and alert rule conversion, and setup, and separate columns for recurring costs such as infrastructure, storage, licenses for any enterprise features, support and staff time. Show the Grafana Cloud baseline beside the self-hosted scenario using the same time window and volume assumptions. Label any hypothetical figure as illustrative. The step is done when both scenarios use identical inputs and the difference is traceable to a single line.

  8. Run a parallel period before cutover

    Send the same telemetry to Grafana Cloud and the self-hosted stack at the same time, using OpenTelemetry or Alloy, and compare query results, alert behavior, dashboard fidelity and actual resource use against the model. Confirm that retention and tenant isolation behave as designed before any team depends on the new stack. The step is done when measured usage matches the sized estimate within an agreed tolerance and the cutover checklist has been signed off.

Costs teams forget on each side

Both paths carry costs that do not appear in the first quote. On Grafana Cloud, usage growth and retention settings drive the bill. On a self-hosted stack, the work of keeping data safe, alerts reliable and the platform current is paid in staff time rather than invoices.

Overage and retention surprises

Grafana Cloud bills on usage, so active series, logs and traces written and the period they are kept all move the invoice. A retention setting chosen for convenience can multiply storage charges long after the original dashboard was built. Ask the vendor for a written model that prices your current series count, daily log volume and retention window, then rerun it with 2x growth.

Per-user growth

Seats are a separate cost line from telemetry, and they tend to expand when on-call engineers, product teams and auditors all need access. Check which roles your organization needs, how many are viewers and how many can edit dashboards or alerts. Ask whether access controls such as SAML and SCIM are included in the tier you are pricing, since the authentication docs list them as Enterprise and Cloud features.

Backups and restore tests

A self-hosted stack has several stateful parts: the Grafana database, Prometheus local data, Loki chunks and index in object storage, and dashboards held as code. Each needs a backup schedule, an owner and a tested restore procedure. Budget time for restore drills, because an untested backup of Grafana configuration or Loki object storage is not a recovery plan.

Alertmanager high availability

Prometheus should point at every Alertmanager instance rather than a load balancer, and Alertmanager runs as a cluster using its cluster flags. Grafana high availability also needs extra configuration to avoid duplicate notifications. Confirm who maintains this design, how failover is tested, and who is paged when the alerting path itself fails.

Reverse proxy authentication for Loki

Loki has no built-in authentication layer, so an authenticating reverse proxy such as nginx, HAProxy, OAuth2 Proxy or Pomerium must sit in front of it. Multi-tenant deployments also depend on the X-Scope-OrgID header being set correctly on every request. Plan the proxy, its certificates, tenant mapping and its own patching as part of the platform, not as an afterthought.

Security hardening and Prometheus lifecycle

Grafana's hardening guidance covers secure and SameSite cookies, a Content Security Policy, Trusted Types, hiding the version from unauthenticated users and authentication on the metrics endpoint. Separately, Prometheus minor releases receive fixes for only about six weeks, while LTS lines get one year. Assign someone to track the current LTS line and its end-of-support date, and to schedule upgrades before they lapse.

Questions buyers ask before comparing costs or hiring help

How much does a self-hosted Grafana stack cost in total?

The total depends on the components you run, the data volume you keep, and the people who operate them. The software itself is open source: Grafana, Prometheus and Loki carry no license fee for self-hosting, though Grafana is licensed under AGPL-3.0-only and Grafana Enterprise is a separate commercial option. Your recurring costs are compute, object storage for Loki chunks and any long-term metrics store, backups, monitoring of the monitoring stack, and staff time for upgrades and on-call. Grafana Cloud bills a platform fee plus usage, so ask for a model that lists each cost line against your own series, log volume and retention. Build the estimate from your own telemetry numbers, not from a generic figure.

How long does a migration from Grafana Cloud take?

The duration depends mainly on how many dashboards, alert rules, data sources and log pipelines you have, how many teams depend on them, and how much history you need to keep. Grafana's migration assistant only moves data into the cloud, so leaving requires exporting dashboards, folders and alert rules through the HTTP API, repointing Grafana Alloy or Prometheus remote write to your own backends, and moving logs to Loki. Run both paths in parallel during cutover so you can compare results before users switch. Confirm the timeline with a written scope that lists these inventories, rather than relying on an estimate from anyone who has not seen your environment.

Can an internal team run a self-hosted Grafana stack without outside help?

Many teams with existing Kubernetes or Linux operations skills can run the stack, but the answer depends on your staffing and on how much you want to build yourself. Grafana documents packages, Docker images and Helm charts, and Prometheus and Loki have published deployment guidance, so the building blocks are documented. The harder parts are high availability, object storage tuning, retention policy, upgrades on the Grafana release schedule, and alerting that does not send duplicate notifications. Ask your team to run a short proof of concept against your own data before deciding, and identify who owns each component after go-live.

What skills and staff time does a self-hosted stack need?

You need people who can operate Linux or Kubernetes, manage databases such as MySQL or PostgreSQL for Grafana configuration, run object storage, and write PromQL and LogQL queries. Staff time recurs for patch upgrades, since Grafana publishes patch releases at least monthly and minor releases every other month, and each minor release is supported for 9 months. Prometheus releases follow a 6-week minor cycle, so plan a steady upgrade routine. Include on-call coverage for the observability platform itself, because a monitoring outage hides other incidents. Ask any provider to state these roles and hours in the scope, and confirm them against your own on-call rota.

Do we need Grafana Cloud's exclusive features to replace it?

Probably not for core monitoring, since Grafana, Prometheus, Loki and Alertmanager cover dashboards, metrics, logs and alerting. Grafana documents that SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud, so if you depend on SCIM or SAML you will need an Enterprise license or another identity approach. Check any other cloud-only features your teams use, such as hosted alerting or managed plugins, against your own dashboard and alert inventory. Confirm each gap in writing before you decide what to replace and what to keep on the cloud service.

What should a fixed-scope quote for this work include?

A fixed-scope quote should name the components to be deployed, the data sources and volumes in scope, the number of dashboards, alert rules and log pipelines to migrate, the high availability design, the backup and restore approach, and the handover documentation. It should also state what is excluded, such as Grafana Enterprise licensing, cloud storage charges, and ongoing support. Ask for deliverables and acceptance criteria per phase, the assumptions about your environment, and who on your side must provide access and sign-off. DeployOpen does not publish a price list; a quote follows from the written scope, and ongoing support or continuous operation is available as a retainer.

How do we compare Grafana Cloud pricing with self-hosted costs fairly?

Compare the same workload on both sides, using the same series count, log volume, retention period and user count. Grafana Cloud's pricing page lists a free tier, a Pro tier starting with a 19 US dollar monthly platform fee plus usage, and an Enterprise tier with a minimum commitment of 25,000 US dollars per year, and these figures should be checked against the current page before you use them. On the self-hosted side, include compute, storage, backup, networking, staff time and the cost of any Enterprise license you need. Add a note on what drives each side up, such as ingest growth, retention length and upgrade frequency, so the comparison stays valid as volumes change.

What to confirm with Grafana Labs and inside your environment

Any cost model for this comparison depends on figures that move with contract terms, so confirm them before comparing totals. Start with Grafana Labs' current Grafana pricing page, which lists the free tier, the Pro tier with its monthly platform fee plus usage, and the Enterprise tier with its minimum annual commitment. Usage charges for active series, log volume, traces and users are the figures that drive the bill, so ask Grafana Labs for the per-unit rates that apply to your tier and region, the included allowances, and how retention beyond the default is priced. Ask how each usage meter is measured, because series counts and log bytes are easy to misjudge from the first month of data.

On the self-hosted side, the figures are yours to collect. Obtain the compute, block or object storage and egress rates from your cloud account or data center team, and price the highly available Grafana databases, load balancers and backup copies that a production setup needs. Then decide who operates the stack. Staffing for upgrades, Mimir and Loki capacity planning, on-call rotations and retention tuning is an internal decision, and it should be costed at your own loaded labor rates. If you plan to buy implementation or support from a partner, request a quote built on a written scope so that one-time build work and recurring support are shown separately.

Edition choice changes the model as well as the feature list. Per the Grafana authentication documentation, LDAP, generic OAuth, Entra ID, Okta, GitHub, GitLab, Google OAuth, auth proxy and JWT work in every edition, but SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud. If your identity provider requires SAML or SCIM, confirm the Enterprise price with Grafana Labs, or plan a non-Enterprise integration path and test it. Counsel should also review the AGPL-3.0 obligations that apply to Grafana, Loki and Mimir, particularly whether any internal modification or network-facing change triggers source disclosure, before the stack goes into production.

How DeployOpen scopes a fixed-price self-hosted Grafana implementation

DeployOpen plans, implements, hardens, backs up and documents self-hosted Grafana, Prometheus, Loki and related open-source components inside your own cloud accounts, data centers or air-gapped networks. For a cost comparison against Grafana Cloud, we start from a written scope that names every component, the volumes it must handle and who will operate it after handover.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • The written scope lists which signals, retention periods and dashboards move from Grafana Cloud to self-hosted components.
  • We document the storage, compute, database and network resources your environment needs before any build begins.
  • Quotes follow from the written scope, so the cost model and the implementation plan reference the same components.

How we build

  • We deploy Grafana, Prometheus or Mimir, and Loki in your environment, with the database backend chosen for production use.
  • Data sources, dashboards and alert rules are defined as code through provisioning files so the stack can be rebuilt.
  • Authentication, reverse proxying for Loki and tenant separation are configured and tested against your identity provider.
  • We apply security hardening settings from Grafana's documentation and verify the results in a test environment.

How we hand over

  • You receive runbooks covering upgrades, retention changes, backups, scaling steps and alert routing for your operators.
  • Architecture and cost documentation records each component, its licence and the recurring infrastructure it needs.
  • We run knowledge transfer sessions with the people who will operate the stack, using your own environment as the example.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after the fixed-scope build is complete.
  • Retainers can cover tracking of Grafana and Prometheus release cycles, so patch and minor upgrades follow a planned window.
  • Before any retainer starts, we agree in writing which components, environments and response expectations it covers.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.