diff --git a/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md b/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md
index 66e619a4e0..b04d1dc0cf 100644
--- a/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md
+++ b/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md
@@ -109,7 +109,7 @@ This table compares Observability capabilities between {{ech}} deployments and S
| **APM integration** | ✅ | ✅ | Use **Managed Intake Service** (supports Elastic APM and OTLP protocols) |
| [**APM Agent Central Configuration**](/solutions/observability/apm/apm-agent-central-configuration.md) | ✅ | ❌ | Not available in Serverless |
| [**APM Tail-based sampling**](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) | ✅ | ❌ | - Not available in Serverless
- Consider **OpenTelemetry** tail sampling processor as an alternative |
-| [**Android agent/SDK instrumentation**](apm-agent-android://reference/index.md) | ✅ | ❌ | Not available in Serverless |
+| [**Android agent/SDK instrumentation**](opentelemetry://reference/edot-sdks/android/index.md) | ✅ | ❌ | Not available in Serverless |
| [**AWS Firehose integration**](/solutions/observability/cloud/monitor-amazon-web-services-aws-with-amazon-data-firehose.md) | ✅ | ✅ | |
| **Custom roles for Kibana Spaces** | ✅ | **Planned** | Anticipated in a future release |
| [**Data stream lifecycle**](/manage-data/lifecycle/data-stream.md) | ✅ | ✅ | Primary lifecycle management method in Serverless |
@@ -118,7 +118,7 @@ This table compares Observability capabilities between {{ech}} deployments and S
| **[Fleet Agent policies](/reference/fleet/agent-policy.md)** | ✅ | ✅ | |
| **[Fleet server](/reference/fleet/fleet-server.md)** | - Self-hosted
- Hosted | ✅ | Fully managed by Elastic |
| [**Index lifecycle management**](/manage-data/lifecycle/index-lifecycle-management.md) | ✅ | ❌ | Use [**Data stream lifecycle**](/manage-data/lifecycle/data-stream.md) instead |
-| **[iOS agent/SDK instrumentation](apm-agent-ios://reference/index.md)** | ✅ | ❌ | Not available in Serverless |
+| **[iOS agent/SDK instrumentation](opentelemetry://reference/edot-sdks/ios/index.md)** | ✅ | ❌ | Not available in Serverless |
| **[Kibana Alerts](/deploy-manage/monitor/monitoring-data/configure-stack-monitoring-alerts.md)** | ✅ | ✅ | |
| **[LogsDB index mode](/manage-data/data-store/data-streams/logs-data-stream.md)** | ✅ | ✅ | - Reduces storage footprint
- Enabled by default
- Cannot be disabled |
| **[Logs management](/solutions/observability/logs.md)** | ✅ | ✅ | |
diff --git a/docset.yml b/docset.yml
index ddbfd2e95b..c3765cf861 100644
--- a/docset.yml
+++ b/docset.yml
@@ -9,10 +9,8 @@ exclude:
- 'raw-migrated-files/**'
cross_links:
- - apm-agent-android
- apm-agent-dotnet
- apm-agent-go
- - apm-agent-ios
- apm-agent-java
- apm-agent-nodejs
- apm-agent-php
diff --git a/redirects.yml b/redirects.yml
index f8aa702bfe..cc045b5ae0 100644
--- a/redirects.yml
+++ b/redirects.yml
@@ -212,3 +212,18 @@ redirects:
'solutions/observability/get-started/get-started-with-dashboards.md': 'solutions/observability/get-started.md'
# Related to https://github.com/elastic/docs-content/pull/1329
'manage-data/ingest/transform-enrich/ingest-pipelines-serverless.md': 'manage-data/ingest/transform-enrich/ingest-pipelines.md'
+
+# Related to https://github.com/elastic/opentelemetry/issues/228
+ 'apm-agent-android://reference/apm/agents/android/index.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/index.md'
+ 'apm-agent-android://reference/apm/agents/android/getting-started.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/getting-started.md'
+ 'apm-agent-android://reference/apm/agents/android/configuration.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/configuration.md'
+ 'apm-agent-android://reference/apm/agents/android/manual-instrumentation.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/manual-instrumentation.md'
+ 'apm-agent-android://reference/apm/agents/android/automatic-instrumentation.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/automatic-instrumentation.md'
+ 'apm-agent-android://reference/apm/agents/android/faq.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android'
+ 'apm-agent-android://reference/apm/agents/android/how-tos.md': 'opentelemetry://reference/opentelemetry/edot-sdks/android/getting-started'
+ 'apm-agent-android://reference/apm/agents/android/troubleshooting': 'opentelemetry://reference/opentelemetry/edot-sdks/android/troubleshooting'
+ 'apm-agent-ios://reference/apm/agents/ios/index.md': 'opentelemetry://reference/opentelemetry/edot-sdks/ios/index.md'
+ 'apm-agent-ios://reference/apm/agents/ios/supported-technologies.md': 'opentelemetry://reference/opentelemetry/edot-sdks/ios/supported-technologies.md'
+ 'apm-agent-ios://reference/apm/agents/ios/set-up-apm-ios-agent.md': 'opentelemetry://reference/opentelemetry/edot-sdks/ios/set-up-apm-ios-agent.md'
+ 'apm-agent-ios://reference/apm/agents/ios/configuration.md': 'opentelemetry://reference/opentelemetry/edot-sdks/ios/configuration.md'
+ 'apm-agent-ios://reference/apm/agents/ios/instrumentation.md': 'opentelemetry://reference/opentelemetry/edot-sdks/ios/instrumentation.md'
\ No newline at end of file
diff --git a/solutions/observability/apm/api-keys.md b/solutions/observability/apm/api-keys.md
index 3128546eff..98a21fd241 100644
--- a/solutions/observability/apm/api-keys.md
+++ b/solutions/observability/apm/api-keys.md
@@ -151,10 +151,10 @@ To view all API keys for your project:
You can now apply your newly created API keys in the configuration of each of your APM agents. See the relevant agent documentation for additional information:
-* **Android**: [`apiKey`](apm-agent-android://reference/configuration.md)
+* **Android**: [`apiKey`](opentelemetry://reference/edot-sdks/android/configuration.md)
* **Go agent**: [`ELASTIC_APM_API_KEY`](apm-agent-go://reference/configuration.md#config-api-key)
* **.NET agent**: [`ApiKey`](apm-agent-dotnet://reference/config-reporter.md#config-api-key)
-* **iOS**: [`withApiKey`](apm-agent-ios://reference/configuration.md#withapikey)
+* **iOS**: [`withApiKey`](opentelemetry://reference/edot-sdks/ios/configuration.md#withapikey)
* **Java agent**: [`api_key`](apm-agent-java://reference/config-reporter.md#config-api-key)
* **Node.js agent**: [`apiKey`](apm-agent-nodejs://reference/configuration.md#api-key)
* **PHP agent**: [`api_key`](apm-agent-php://reference/configuration-reference.md#config-api-key)
diff --git a/solutions/observability/apm/apm-agent-central-configuration.md b/solutions/observability/apm/apm-agent-central-configuration.md
index 6ad522f41b..8a2a8fb776 100644
--- a/solutions/observability/apm/apm-agent-central-configuration.md
+++ b/solutions/observability/apm/apm-agent-central-configuration.md
@@ -31,13 +31,13 @@ Each APM agent has a list of supported configurations. After selecting a Service
Supported configurations are also tagged with the  badge in each APM agent’s configuration reference:
Android agent
-: [Configuration reference](apm-agent-android://reference/configuration.md)
+: [Configuration reference](opentelemetry://reference/edot-sdks/android/configuration.md)
Go agent
: [Configuration reference](apm-agent-go://reference/configuration.md)
iOS agent
-: [Configuration reference](apm-agent-ios://reference/configuration.md)
+: [Configuration reference](opentelemetry://reference/edot-sdks/ios/configuration.md)
Java agent
: [Configuration reference](apm-agent-java://reference/configuration.md)
diff --git a/solutions/observability/apm/get-started-apm-server-binary.md b/solutions/observability/apm/get-started-apm-server-binary.md
index dcb663d9a2..2dbfd968ef 100644
--- a/solutions/observability/apm/get-started-apm-server-binary.md
+++ b/solutions/observability/apm/get-started-apm-server-binary.md
@@ -214,7 +214,7 @@ All that’s left is to compile and run your application. That’s it!
**Learn more in the agent reference**
-Read more in the [APM Android Agent Reference](apm-agent-android://reference/index.md).
+Read more in the [APM Android Agent Reference](opentelemetry://reference/edot-sdks/android/index.md).
::::::
::::::{tab-item} Go
@@ -340,7 +340,7 @@ var config = AgentConfigBuilder()
**Learn more in the agent reference**
-Read more in the [APM iOS Agent Reference](apm-agent-ios://reference/index.md).
+Read more in the [APM iOS Agent Reference](opentelemetry://reference/edot-sdks/ios/index.md).
::::::
::::::{tab-item} Java
diff --git a/solutions/observability/apm/get-started-fleet-managed-apm-server.md b/solutions/observability/apm/get-started-fleet-managed-apm-server.md
index f3d1816a4c..dabb9c80cb 100644
--- a/solutions/observability/apm/get-started-fleet-managed-apm-server.md
+++ b/solutions/observability/apm/get-started-fleet-managed-apm-server.md
@@ -255,7 +255,7 @@ All that’s left is to compile and run your application. That’s it!
**Learn more in the agent reference**
-Read more in the [APM Android Agent Reference](apm-agent-android://reference/index.md).
+Read more in the [APM Android Agent Reference](opentelemetry://reference/edot-sdks/android/index.md).
::::::
::::::{tab-item} Go
@@ -381,7 +381,7 @@ var config = AgentConfigBuilder()
**Learn more in the agent reference**
-Read more in the [APM iOS Agent Reference](apm-agent-ios://reference/index.md).
+Read more in the [APM iOS Agent Reference](opentelemetry://reference/edot-sdks/ios/index.md).
::::::
::::::{tab-item} Java
diff --git a/solutions/observability/apm/secret-token.md b/solutions/observability/apm/secret-token.md
index 758ee0427b..c17e0e9c93 100644
--- a/solutions/observability/apm/secret-token.md
+++ b/solutions/observability/apm/secret-token.md
@@ -62,9 +62,9 @@ apm-server.auth.secret_token:
Each Elastic {{apm-agent}} has a configuration option to set the value of the secret token:
-* **Android agent**: [`secretToken`](apm-agent-android://reference/configuration.md)
+* **Android agent**: [`secretToken`](opentelemetry://reference/edot-sdks/android/configuration.md)
* **Go agent**: [`ELASTIC_APM_SECRET_TOKEN`](apm-agent-go://reference/configuration.md#config-secret-token)
-* **iOS agent**: [`secretToken`](apm-agent-ios://reference/configuration.md#secrettoken)
+* **iOS agent**: [`secretToken`](opentelemetry://reference/edot-sdks/ios/configuration.md#secrettoken)
* **Java agent**: [`secret_token`](apm-agent-java://reference/config-reporter.md#config-secret-token)
* **.NET agent**: [`ELASTIC_APM_SECRET_TOKEN`](apm-agent-dotnet://reference/config-reporter.md#config-secret-token)
* **Node.js agent**: [`Secret Token`](apm-agent-nodejs://reference/configuration.md#secret-token)
diff --git a/troubleshoot/observability/apm-agent-swift/apm-ios-agent.md b/troubleshoot/observability/apm-agent-swift/apm-ios-agent.md
index 37d715e631..a6f1a5c900 100644
--- a/troubleshoot/observability/apm-agent-swift/apm-ios-agent.md
+++ b/troubleshoot/observability/apm-agent-swift/apm-ios-agent.md
@@ -10,7 +10,7 @@ products:
# Troubleshoot APM iOS Agent [troubleshooting]
-Is something not working as expected? Don’t worry if you can’t figure out what the problem is; we’re here to help! As a first step, ensure your app is compatible with the agent’s [supported technologies](apm-agent-ios://reference/supported-technologies.md).
+Is something not working as expected? Don’t worry if you can’t figure out what the problem is; we’re here to help! As a first step, ensure your app is compatible with the agent’s [supported technologies](opentelemetry://reference/edot-sdks/ios/supported-technologies.md).
If you’re an existing Elastic customer with a support contract, create a ticket in the [Elastic Support portal](https://support.elastic.co/customers/s/login/). Other users can post in the [APM discuss forum](https://discuss.elastic.co/c/apm).
diff --git a/troubleshoot/observability/apm.md b/troubleshoot/observability/apm.md
index ee20b47bab..d8c2ce330e 100644
--- a/troubleshoot/observability/apm.md
+++ b/troubleshoot/observability/apm.md
@@ -32,10 +32,8 @@ For additional help with other APM components, see the links below.
{{agent}}, the Applications UI, and each {{apm-agent}} has its own troubleshooting guide:
* [**{{fleet}} and {{agent}}** troubleshooting](../ingest/fleet/fleet-elastic-agent.md)
-* [**Android agent** FAQ](apm-agent-android://reference/faq.md)
* [**.NET agent** troubleshooting](/troubleshoot/observability/apm-agent-dotnet/apm-net-agent.md)
* [**Go agent** troubleshooting](/troubleshoot/observability/apm-agent-go/apm-go-agent.md)
-* [**iOS agent** troubleshooting](/troubleshoot/observability/apm-agent-swift/apm-ios-agent.md)
* [**Java agent** troubleshooting](/troubleshoot/observability/apm-agent-java/apm-java-agent.md)
* [**Node.js agent** troubleshooting](/troubleshoot/observability/apm-agent-nodejs/apm-nodejs-agent.md)
* [**PHP agent** troubleshooting](/troubleshoot/observability/apm-agent-php/apm-php-agent.md)