---
title: "Reduce Grafana Cloud Application Observability costs | Grafana Cloud documentation"
description: "Reduce your Grafana Cloud Application Observability costs."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Reduce Grafana Cloud Application Observability costs

## Introduction

Grafana Cloud calculates Application Observability usage based on the total number of [host hours](/docs/grafana-cloud/monitor-applications/application-observability/pricing/) ingested per month.

This guide discusses how to identify and optimize billable usage.

## Review your usage and create billing alerts

You can review usage on the Billing and Usage dashboard on the Application Observability panels and create alerts to notify you about unexpected activity.

- [Billing and Usage dashboard](/docs/grafana-cloud/platform/cost-management-and-billing/understand-usage-cost/)
- [Understand your Grafana Cloud Application Observability invoice](/docs/grafana-cloud/platform/pricing-and-usage/application-observability/)
- [Set up usage alerts for Grafana Cloud billing](/docs/grafana-cloud/cost-management-and-billing/set-up-usage-alerts/)

## Identify sources of high metric cardinality

When you add additional group and filter attributes it contributes to your Grafana Cloud data usage and bill.

Think carefully about the cardinality of your data and select attributes with minimal variation in value, for example geographical region and cloud provider have less cardinality than instance id.

To learn more about metric cardinality, see:

- [Analyze metrics usage with cardinality management dashboards](/docs/grafana-cloud/cost-management-and-billing/analyze-costs/metrics-costs/prometheus-metrics-costs/cardinality-management/)

To inspect span attributes to understand high cardinality, see:

- [Analyze tracing data](/docs/grafana-cloud/visualizations/simplified-exploration/traces/investigate/#analyze-tracing-data)
- [Write TraceQL queries in Grafana](/docs/tempo/latest/traceql/query-editor/)

## Reduce your usage

### Reduce metric cardinality

After identifying sources of high metrics cardinality, remove unnecessary attributes or improve consistent naming conventions to optimize the number of attributes.

For a guide on best practices, refer to:

- [Best practices for tracing](/docs/grafana-cloud/send-data/traces/tracing-best-practices/)

### Limit connection KPIs

Service graph metrics for inbound and outbound connections are a common source of high metrics cost. Grafana Cloud Traces can generate a time series for every client-server pair. Latency histograms add many more series than request and error counts.

Connection KPIs let you choose how much of that data is generated, instead of turning the service graph off:

- **Generate all KPIs** keeps requests, errors, and latency. This option has the highest cost.
- **Generate requests and errors** stops latency histograms. This is usually the largest saving, and traffic and errors stay visible.
- **Don’t generate KPIs** keeps only which services connect, with no request, error, or latency metrics.

Fewer series means a lower metrics bill. The setting is stack-wide and applies only to connected-service metrics from traces metrics generation. A service’s own rate, error, and duration metrics stay unchanged. Existing series remain until they age out of retention.

Configure this on the **Service graph** tab under **Observability** &gt; **Configuration** &gt; **Traces metrics generation**. For the procedure, refer to [Choose connection KPIs](/docs/grafana-cloud/knowledge-graph/configure/traces-metrics-generation/#choose-connection-kpis).

### Sampling

Sampling is a means to reduce the cost of processing and storing large volumes of data. For example, a service with 100 requests per second and a sample rate of 10% sends 10 spans/sec.

Even though tail-sampling sometimes can yield more precise results and could focus on specific aspects, in most cases, head-sampling is a robust choice. However regardless of the sampling method, to ensure Application Observability can provide accurate results, it is critical that you need to generate metrics from traces before applying the sampling.

To read more about sampling strategies, refer to:

- [Head sampling](/docs/grafana-cloud/monitor-applications/application-observability/sampling/head/)
- [Tail sampling](/docs/grafana-cloud/monitor-applications/application-observability/sampling/tail/)
