---
title: "Why this works | Grafana Labs"
description: "Each signal is priced and indexed for a different job, plus the journey recap"
---

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

## Why this works

Each signal is priced and indexed for a different job. Metrics are cheap per series but multiply by label combinations. Logs carry arbitrary detail, and structured metadata makes high-cardinality fields queryable without indexing them. Traces hold per-request detail natively, and exemplars link them to your metrics without adding labels. Putting each value where it belongs is what a labeling strategy actually is; not fewer data points, just the right home for each one.

## What you’ve done

Throughout this journey, you have:

- Learned how label combinations multiply into unique active series and log streams, and that this is what you’re billed for
- Explored your own stack’s cardinality with the Cardinality tab in the Cost Management and Billing app
- Learned the rules for metric labels: bounded values only, added only when queried, and audited at ingestion setup
- Reviewed Adaptive Metrics recommendations to reduce cardinality you already have
- Applied the logs decision framework: labels for origin, structured metadata for high-cardinality fields, filter expressions for the rest
- Learned to correlate signals so high-cardinality detail lives on logs and traces, not metric labels

## Two questions to keep asking

Keep the two questions from this journey in your team’s review habits: *Is this label value bounded?* and *Will anyone query by it?* Most cardinality problems never happen when someone asks those questions at instrumentation time.
