---
title: Integration Override Removal
description: Learn how to remove integration overrides from Datadog.
breadcrumbs: Docs > APM > Service Observability > Integration Override Removal
---

# Integration Override Removal

{% 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 %}

This page explains how to remove integration overrides, which use integration-specific service names to represent calls to other services. For conceptual background, see [Base Service, Integration Overrides, and Service Overrides](https://docs.datadoghq.com/tracing/guide/service_overrides) and [Inferred Services](https://docs.datadoghq.com/tracing/services/inferred_services).

## Prerequisites{% #prerequisites %}

Before you remove integration overrides:

1. You must have the `apm_service_renaming_write` permission.
1. Your Datadog SDK version must support override removal. See SDK version requirements.

### SDK version requirements{% #sdk-version-requirements %}

| Language | Minimum supported version                                               |
| -------- | ----------------------------------------------------------------------- |
| .NET     | [3.4.0](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v3.4.0) |
| Go       | [1.55.0](https://github.com/DataDog/dd-trace-go/releases/tag/v1.55.0)   |
| Java     | [1.20.0](https://github.com/DataDog/dd-trace-java/releases/tag/v1.20.0) |
| Node.js  | [4.16.0](https://github.com/DataDog/dd-trace-js/releases/tag/v4.16.0)   |
| PHP      | [0.94.1](https://github.com/DataDog/dd-trace-php/releases/tag/0.94.1)   |
| Python   | [1.19.0](https://github.com/DataDog/dd-trace-py/releases/tag/v1.19.0)   |
| Ruby     | [1.15.0](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.15.0)   |

## Remove integration overrides{% #remove-integration-overrides %}

To remove integration overrides in Datadog:

1. Navigate to **Software Catalog** > **Manage** > [**Manage Remapping Rules**](https://app.datadoghq.com/software/settings/service-remapping), and click **Manage Overrides**.

   {% image
      source="https://datadog-docs.imgix.net/images/tracing/guide/base_service/SO_removal_page.f6f674f922ccf60cb2066057652308b1.png?auto=format"
      alt="Integration Overrides page showing migration progress and removal options" /%}

1. For each override you plan to remove, review the related monitors and dashboards.

These assets reference the overridden service name and stop matching after removal. Update them to use the base service name (`service:<DD_SERVICE>`) to preserve functionality.

   {% image
      source="https://datadog-docs.imgix.net/images/tracing/guide/base_service/SO_removal_page_sidepanel.c20c8dc302159b7ecc12eec56842a2d5.png?auto=format"
      alt="Service override side panel showing affected monitors and dashboards" /%}

1. Remove overrides individually or in bulk:

   - **Select specific overrides to remove**: Choose individual integration overrides to remove. A **Migration Progress** bar shows your progress as you remove overrides.
   - **Remove all overrides**: Select **Finish Migration** to remove all integration overrides and prevent future ones from appearing as APM usage increases. Custom service overrides are not affected.

Removing overrides is reversible.

## Examples: Service naming after removal{% #examples-service-naming-after-removal %}

Removing integration overrides changes how client spans are tagged and how downstream dependencies are identified. After overrides are removed, client spans use the calling service's name (`service:<DD_SERVICE>`) instead of the integration-specific name. The called dependency is identified using [`peer.*` attributes](https://docs.datadoghq.com/tracing/services/inferred_services/#peer-tags) (for example, database or queue).

**gRPC example:**

| Scenario                      | Service name                                              | Additional `peer.*` attributes |
| ----------------------------- | --------------------------------------------------------- | ------------------------------ |
| With integration overrides    | `service:my-service-grpc-client` or `service:grpc-client` | None                           |
| Without integration overrides | `service:myservice`                                       | `@peer.service:otherservice`   |

**MySQL example:**

| Scenario                      | Service name                                  | Additional `peer.*` attributes                   |
| ----------------------------- | --------------------------------------------- | ------------------------------------------------ |
| With integration overrides    | `service:my-service-mysql` or `service:mysql` | None                                             |
| Without integration overrides | `service:myservice`                           | `@peer.db.name:user-db`, `@peer.db.system:mysql` |

## Configuration-based removal{% #configuration-based-removal %}

You can also remove integration overrides by setting an environment variable in your application configuration. This approach is useful if you cannot access the Datadog UI.

1. Confirm that your SDK meets the minimum version requirements.
1. Set the following environment variable:
   ```sh
   DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED=true
   ```

This ensures the `service` attribute always uses the base service name instead of appending the integration name (for example, `*-postgres`, `*-http-client`). Custom service overrides are not affected and must be removed directly in your code.

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

- [Service Overrides](https://docs.datadoghq.com/tracing/guide/service_overrides)
- [Inferred Services](https://docs.datadoghq.com/tracing/services/inferred_services)
