---
title: "Reduce Grafana Cloud Frontend Observability costs | Grafana Cloud documentation"
description: "Reduce your Grafana Cloud Frontend 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 Frontend Observability costs

Control your Frontend Observability costs by managing the number of sessions you track and the volume of logs and traces your application sends.

Grafana Cloud Frontend Observability usage is measured in three dimensions: sessions, logs, and traces. Sessions are the primary cost driver, as each session also generates logs and trace data. Reducing the number of sessions also reduces log and trace generation. You can also reduce logs and traces independently by limiting what your application instruments and sends. The [Adaptive Telemetry](/docs/grafana-cloud/adaptive-telemetry/) features can also be used to filter logs and traces that are not being used in dashboards, alert rules, or recent Explore queries.

For more details about how Frontend Observability usage is calculated, refer to [Understand your Grafana Cloud Frontend Observability invoice](/docs/grafana-cloud/cost-management-and-billing/understand-your-invoice/frontend-observability-invoice/).

## Review your usage

You can review your Frontend Observability usage in the [**Usage** tab](/docs/grafana-cloud/cost-management-and-billing/understand-usage-cost/) of the Cost Management and Billing app. Configure [usage and cost alerts](/docs/grafana-cloud/cost-management-and-billing/usage-cost-alerts/) to notify your team when activity exceeds expected levels.

## Reduce your session volume

Sessions are the primary billable unit in Frontend Observability. Reducing session volume lowers costs and also reduces the logs and traces generated per session.

### Use sampling

Faro makes sampling decisions on a per-session basis. For sampled sessions, Faro collects and transmits all signals. If a session is not sampled, Faro discards all signals.

Setting a sampling rate lower than 1 (100%) reduces the number of billable sessions and the telemetry generation.

For example, a sampling rate of 0.5 tracks 50% of user sessions, which halves session costs and reduces logs and trace volume proportionally.

ts ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```ts
initializeFaro({
  ...
  sessionTracking: {
    samplingRate: 0.5,
  },
});
```

You can also define a custom sampler function to apply different sampling rates based on user attributes, application state, or other context. For example, you can sample a higher proportion of users in a specific region or reduce sampling during off-peak hours.

Refer to [Configure sampling in Faro](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/sampling/) for configuration details and examples.

## Reduce log volume

Browser logs contribute to your logs usage. You can reduce log volume by limiting what your application sends to Grafana Cloud.

### Disable or limit console instrumentation

Faro captures `console.error`, `console.warn`, and `console.info` output by default. The more verbose levels (`console.debug`, `console.trace`, and `console.log`) are already disabled by default.

If you don’t need console logs at all, disable the instrumentation entirely using `captureConsole: false`. If you need some console output, enable only the levels that provide diagnostic value and leave the rest disabled.

ts ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```ts
initializeFaro({
  ...
  instrumentations: [
    ...getWebInstrumentations({
      captureConsole: false,
    }),
  ],
});
```

Refer to [Console instrumentation](/docs/grafana-cloud/monitor-applications/frontend-observability/instrument/console-instrumentation/) for configuration options.

### Drop signals before sending

Use the `beforeSend` hook to inspect and discard specific signals before Faro transmits them. Returning `null` from the hook drops the item entirely, which lets you filter out high-volume or low-value signals without disabling entire instrumentations.

For example, to suppress all logs:

ts ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```ts
initializeFaro({
  ...
  beforeSend: (item) => {
    if (item.type === 'log') {
      return null;
    }
    return item;
  },
});
```

Refer to [Modify beacon data before send](/docs/grafana-cloud/monitor-applications/frontend-observability/instrument/custom-signals/events/#modify-beacon-data-before-send) for details and examples.

## Reduce trace volume

Client-side traces contribute to your traces usage. You can reduce trace volume by limiting what your application instruments and which URLs it tracks.

### Exclude third-party endpoints

By default, Faro’s performance instrumentation captures all resource entries, including requests to third-party services such as analytics platforms or content delivery networks. These requests often add trace volume without providing useful observability data.

Use the `ignoreUrls` property to exclude URLs from performance tracking:

ts ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```ts
initializeFaro({
  ...
  ignoreUrls: [/.*.analytics.vendor.com.*/, 'https://other-analytics.com/foo'],
});
```

Refer to [Exclude endpoints from tracking](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/exclude-endpoints/) for configuration details.

### Disable tracing instrumentation

If you don’t use client-side traces, you can remove the tracing package from your Faro initialization entirely. Traces are only collected when you include the `@grafana/faro-web-tracing` package and add a tracing instrumentation.

If you added tracing during initial setup but don’t use trace data in your workflows, removing the tracing instrumentation eliminates all client-side trace volume.

### Filter bot traffic

Automated traffic from bots and crawlers generates sessions and telemetry without representing real user activity. Excluding bot traffic reduces session counts and the logs and traces associated with them.

Refer to [Filter bots](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/filter-bots/) for details on how to exclude bot sessions from tracking.
