---
title: Enable Dynamic Instrumentation for PHP
description: >-
  Set up Dynamic Instrumentation for PHP applications to add probes and capture
  data without code changes.
breadcrumbs: >-
  Docs > APM > Application Instrumentation > Dynamic Instrumentation > Enabling
  Dynamic Instrumentation > Enable Dynamic Instrumentation for PHP
---

# Enable Dynamic Instrumentation for PHP

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site). ().
{% /alert %}

{% /callout %}

{% callout %}
##### Limited Availability

Dynamic Instrumentation for PHP is in Limited Availability and may not be available for your organization. Request access to join the waiting list.Note: Some limitations apply.

[Request Access](https://www.datadoghq.com/product-preview/live-debugger/)
{% /callout %}

Dynamic Instrumentation is a feature of the Datadog tracing library that lets you add instrumentation to your application at runtime without code changes or redeployments. Follow these instructions to set up Dynamic Instrumentation for PHP.

## Prerequisites{% #prerequisites %}

Before you begin, review the [Dynamic Instrumentation prerequisites](https://docs.datadoghq.com/dynamic_instrumentation/#prerequisites). PHP applications also require:

- Tracing library [`dd-trace-php`](https://github.com/DataDog/dd-trace-php) version 1.5.0 or higher. See the [installation instructions](https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/php/) for setup details.

## Installation{% #installation %}

1. If you don't already have APM enabled, in your Agent configuration, set the `DD_APM_ENABLED` environment variable to `true` and listening to the port `8126/TCP`.
1. Run your service with Dynamic Instrumentation enabled by setting the `DD_DYNAMIC_INSTRUMENTATION_ENABLED` environment variable to `true`. Specify `DD_SERVICE`, `DD_ENV`, and `DD_VERSION` Unified Service Tags so you can filter and group your instrumentations and target active clients across these dimensions.
1. After starting your service with Dynamic Instrumentation enabled, you can start using Dynamic Instrumentation on the [APM > Dynamic Instrumentation page](https://app.datadoghq.com/dynamic-instrumentation).

## Configuration{% #configuration %}

Configure Dynamic Instrumentation using the following environment variables:

| Environment variable                 | Type    | Description                                                                                                                    |
| ------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `DD_DYNAMIC_INSTRUMENTATION_ENABLED` | Boolean | Set to `true` to enable Dynamic Instrumentation.                                                                               |
| `DD_SERVICE`                         | String  | The [service](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging) name, for example, `web-backend`.    |
| `DD_ENV`                             | String  | The [environment](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging) name, for example, `production`. |
| `DD_VERSION`                         | String  | The [version](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging) of your service.                     |
| `DD_TAGS`                            | String  | Tags to apply to produced data. Must be a list of `<key>:<value>` separated by commas such as: `layer:api,team:intake`.        |

## What to do next{% #what-to-do-next %}

See [Dynamic Instrumentation](https://docs.datadoghq.com/dynamic_instrumentation/) for information about adding instrumentations and browsing and indexing the data.

## Limitations{% #limitations %}

### Supported features{% #supported-features %}

- Dynamic Logs, Metrics, Spans, and Span Tags
- Local variable capture for Dynamic Logs
- Dynamic Log conditions
- Expression evaluation in Dynamic Log templates
- [PII redaction](https://docs.datadoghq.com/dynamic_instrumentation/sensitive-data-scrubbing/#custom-identifier-redaction) based on variable/property names and classes
- [Source code integration](https://docs.datadoghq.com/integrations/guide/source-code-integration/?tab=php)

### Unsupported features{% #unsupported-features %}

- Instrumentation attached to a specific file/line

## Further reading{% #further-reading %}

- [Getting Started with Datadog Agent](https://docs.datadoghq.com/agent)
