---
title: "Tracing"
description: "Learn how to enable tracing in your app."
url: https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/
---

# Set Up Tracing | Sentry for Azure Functions

With [tracing](https://docs.sentry.io/product/insights/overview.md), Sentry automatically tracks your software performance across your application services, measuring metrics like throughput and latency, and displaying the impact of errors across multiple systems.

If you’re adopting Tracing in a high-throughput environment, we recommend testing prior to deployment to ensure that your service’s performance characteristics maintain expectations.

Sentry can integrate with **OpenTelemetry**. You can find more information about it [here](https://docs.sentry.io/platforms/javascript/guides/azure-functions/opentelemetry.md).

## [Configure](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#configure)

Enable tracing by setting the sample rate for your traces.

```javascript
import * as Sentry from "___SDK_PACKAGE___";

Sentry.init({
  dsn: "___PUBLIC_DSN___",

  // This enables automatic instrumentation (highly recommended),
  // but is not necessary for purely manual usage
  // If you only want to use custom instrumentation:
  // * Remove the `BrowserTracing` integration
  // * add `Sentry.addTracingExtensions()` above your Sentry.init() call
  integrations: [Sentry.browserTracingIntegration()],

  // We recommend adjusting this value in production, or using tracesSampler
  // for finer control
  tracesSampleRate: 1.0,

  // Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled
  tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/],
});
```

* You can establish a uniform sample rate for all transactions by setting the `tracesSampleRate` option in your SDK config to a number between `0` and `1`. (For example, to send 20% of transactions, set `tracesSampleRate` to `0.2`.)
* For more granular control over sampling, you can set the sample rate based on the transaction itself and the context in which it's captured, by providing a function to the `tracesSampler` config option.

The two options are mutually exclusive. If both are set, `tracesSampler` will take precedence.

You can find more in-depth explanations and examples about sampling configuration in [Configure Sampling](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/configure-sampling.md).

## [Distributed Tracing](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#distributed-tracing)

Sentry captures distributed traces consisting of transactions and spans, which measure individual services and individual operations within those services, respectively. Learn more about our model in [Distributed Tracing](https://docs.sentry.io/product/sentry-basics/tracing/distributed-tracing.md).

## [Verify](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#verify)

While you're testing, set `tracesSampleRate` to `1.0`, as that ensures that every transaction will be sent to Sentry. Once testing is complete, you may want to set a lower `tracesSampleRate` value, or switch to using `tracesSampler` to selectively sample and filter your transactions, based on contextual data.

If you leave your sample rate at `1.0`, a transaction will be sent every time a user loads a page or navigates within your app. Depending on the amount of traffic your application gets, this may mean a lot of transactions. If you have a high-load, backend application, you may want to consider setting a lower `tracesSampleRate` value, or switching to using `tracesSampler` to selectively sample and filter your transactions, based on contextual data.

## [Automatic Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#automatic-instrumentation)

See [Automatic Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/instrumentation/automatic-instrumentation.md) to learn about all the things that the SDK automatically instruments for you.

## [Custom Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#custom-instrumentation)

You can also manually start spans to instrument specific parts of your code. This is useful when you want to measure the performance of a specific operation or function.

* [Tracing APIs](https://docs.sentry.io/platforms/javascript/guides/azure-functions/apis.md#tracing): Find information about APIs for custom tracing instrumentation
* [Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/instrumentation.md): Find information about manual instrumentation with the Sentry SDK
* [Sending Span Metrics](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/span-metrics.md): Learn how to capture metrics on your spans

## [Disabling Tracing](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#disabling-tracing)

If you want to disable tracing, you *should not* set `tracesSampleRate` at all. Setting it to `0` will not disable tracing, it will simply never send any traces to Sentry. Instead, neither `tracesSampleRate` nor `tracesSampler` should be defined in your SDK config to fully disable tracing.

## [Related Features](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#related-features)

*
* [Logs](https://docs.sentry.io/platforms/javascript/guides/azure-functions/logs.md) — Logs emitted during a trace are automatically linked, giving you diagnostic context for each operation.

## [Tracing Next Steps](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing.md#tracing-next-steps)

* #### [Sending Span Metrics](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/span-metrics.md)

  Learn how to add attributes to spans to monitor performance and debug applications

* #### [Set Up Distributed Tracing](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/distributed-tracing.md)

  Learn how to connect events across applications/services.

* #### [Configure Sampling](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/configure-sampling.md)

  Learn how to configure sampling in your app.

* #### [Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/instrumentation.md)

  Learn how to configure spans to capture trace data on any action in your app.

* #### [Troubleshooting](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/troubleshooting.md)

  Learn how to troubleshoot your tracing setup.

## Pages in this section

- [Sending Span Metrics](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/span-metrics.md)
- [Set Up Distributed Tracing](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/distributed-tracing.md)
- [Configure Sampling](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/configure-sampling.md)
- [Instrumentation](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/instrumentation.md)
- [Troubleshooting](https://docs.sentry.io/platforms/javascript/guides/azure-functions/tracing/troubleshooting.md)
