diff --git a/docset.yml b/docset.yml
index 0a8c3e9359..daa68c29e3 100644
--- a/docset.yml
+++ b/docset.yml
@@ -12,6 +12,7 @@ cross_links:
- apm-agent-go
- apm-agent-ios
- apm-agent-java
+ - apm-agent-python
- apm-agent-rum-js
- apm-aws-lambda
- apm-k8s-attacher
diff --git a/raw-migrated-files/docs-content/serverless/observability-apm-get-started.md b/raw-migrated-files/docs-content/serverless/observability-apm-get-started.md
index f5c118e0a1..da35c06073 100644
--- a/raw-migrated-files/docs-content/serverless/observability-apm-get-started.md
+++ b/raw-migrated-files/docs-content/serverless/observability-apm-get-started.md
@@ -248,11 +248,11 @@ To send APM data to Elastic, you must install an APM agent and configure it to s
**Learn more in the {{apm-agent}} reference**
* [Supported technologies](asciidocalypse://docs/apm-agent-php/docs/reference/supported-technologies.md)
- * [Configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+ * [Configuration](apm-agent-python://reference/configuration.md)
- Django and Flask are two of several frameworks that the Elastic APM Python Agent supports. For a complete list of supported technologies, refer to the [Elastic APM Python Agent documentation](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md).
+ Django and Flask are two of several frameworks that the Elastic APM Python Agent supports. For a complete list of supported technologies, refer to the [Elastic APM Python Agent documentation](apm-agent-python://reference/supported-technologies.md).
*Django*
@@ -337,8 +337,8 @@ To send APM data to Elastic, you must install an APM agent and configure it to s
**Learn more in the {{apm-agent}} reference**
- * [Supported technologies](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md)
- * [Advanced configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+ * [Supported technologies](apm-agent-python://reference/supported-technologies.md)
+ * [Advanced configuration](apm-agent-python://reference/configuration.md)
diff --git a/raw-migrated-files/docs-content/serverless/observability-ecs-application-logs.md b/raw-migrated-files/docs-content/serverless/observability-ecs-application-logs.md
index e5c98b71d5..7bb10b17ea 100644
--- a/raw-migrated-files/docs-content/serverless/observability-ecs-application-logs.md
+++ b/raw-migrated-files/docs-content/serverless/observability-ecs-application-logs.md
@@ -43,7 +43,7 @@ Log ECS reformatting is controlled by the `log_ecs_reformatting` configuration o
* [Java](apm-agent-java://reference/config-logging.md#config-log-ecs-reformatting)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-log-ecs-formatting)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-log_ecs_reformatting)
+* [Python](apm-agent-python://reference/configuration.md#config-log_ecs_reformatting)
### Ingest logs [observability-ecs-application-logs-ingest-logs]
diff --git a/raw-migrated-files/docs-content/serverless/observability-plaintext-application-logs.md b/raw-migrated-files/docs-content/serverless/observability-plaintext-application-logs.md
index 8e4ccd04d9..50d347d540 100644
--- a/raw-migrated-files/docs-content/serverless/observability-plaintext-application-logs.md
+++ b/raw-migrated-files/docs-content/serverless/observability-plaintext-application-logs.md
@@ -389,7 +389,7 @@ Learn about correlating plaintext logs in the agent-specific ingestion guides:
* [Java](apm-agent-java://reference/logs.md#log-correlation-ids)
* [.NET](apm-agent-dotnet://reference/logs.md)
* [Node.js](asciidocalypse://docs/apm-agent-nodejs/docs/reference/logs.md)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/logs.md#log-correlation-ids)
+* [Python](apm-agent-python://reference/logs.md#log-correlation-ids)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/logs.md)
diff --git a/solutions/observability/apps/api-keys.md b/solutions/observability/apps/api-keys.md
index 9298a5abe7..72fd207f30 100644
--- a/solutions/observability/apps/api-keys.md
+++ b/solutions/observability/apps/api-keys.md
@@ -113,7 +113,7 @@ You can now apply your newly created API keys in the configuration of each of yo
* **Java agent**: [`api_key`](apm-agent-java://reference/config-reporter.md#config-api-key)
* **Node.js agent**: [`apiKey`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#api-key)
* **PHP agent**: [`api_key`](asciidocalypse://docs/apm-agent-php/docs/reference/configuration-reference.md#config-api-key)
-* **Python agent**: [`api_key`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-api-key)
+* **Python agent**: [`api_key`](apm-agent-python://reference/configuration.md#config-api-key)
* **Ruby agent**: [`api_key`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-api-key)
diff --git a/solutions/observability/apps/apm-agent-central-configuration.md b/solutions/observability/apps/apm-agent-central-configuration.md
index f354c20274..588f6c4162 100644
--- a/solutions/observability/apps/apm-agent-central-configuration.md
+++ b/solutions/observability/apps/apm-agent-central-configuration.md
@@ -53,7 +53,7 @@ PHP agent
: [Configuration reference](asciidocalypse://docs/apm-agent-php/docs/reference/configuration.md)
Python agent
-: [Configuration reference](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+: [Configuration reference](apm-agent-python://reference/configuration.md)
Ruby agent
: [Configuration reference](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md)
diff --git a/solutions/observability/apps/apm-agent-tls-communication.md b/solutions/observability/apps/apm-agent-tls-communication.md
index 2553c35520..99d8d0b0e2 100644
--- a/solutions/observability/apps/apm-agent-tls-communication.md
+++ b/solutions/observability/apps/apm-agent-tls-communication.md
@@ -56,7 +56,7 @@ If APM agents are authenticating themselves using a certificate that cannot be a
When the APM server uses a certificate that is not chained to a publicly-trusted certificate (e.g. self-signed), additional configuration is required in the {{apm-agent}}:
* **Go agent**: certificate pinning through [`ELASTIC_APM_SERVER_CERT`](apm-agent-go://reference/configuration.md#config-server-cert)
-* **Python agent**: certificate pinning through [`server_cert`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-server-cert)
+* **Python agent**: certificate pinning through [`server_cert`](apm-agent-python://reference/configuration.md#config-server-cert)
* **Ruby agent**: certificate pinning through [`server_ca_cert`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-ssl-ca-cert)
* **.NET agent**: [`ServerCert`](apm-agent-dotnet://reference/config-reporter.md#config-server-cert)
* **Node.js agent**: custom CA setting through [`serverCaCertFile`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#server-ca-cert-file)
@@ -68,7 +68,7 @@ We do not recommend disabling {{apm-agent}} verification of the server’s certi
* **.NET agent**: [`VerifyServerCert`](apm-agent-dotnet://reference/config-reporter.md#config-verify-server-cert)
* **Java agent**: [`verify_server_cert`](apm-agent-java://reference/config-reporter.md#config-verify-server-cert)
* **PHP agent**: [`verify_server_cert`](asciidocalypse://docs/apm-agent-php/docs/reference/configuration-reference.md#config-verify-server-cert)
-* **Python agent**: [`verify_server_cert`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-verify-server-cert)
+* **Python agent**: [`verify_server_cert`](apm-agent-python://reference/configuration.md#config-verify-server-cert)
* **Ruby agent**: [`verify_server_cert`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-verify-server-cert)
* **Node.js agent**: [`verifyServerCert`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#validate-server-cert)
diff --git a/solutions/observability/apps/apm-server-binary.md b/solutions/observability/apps/apm-server-binary.md
index 97823c556e..894988cf00 100644
--- a/solutions/observability/apps/apm-server-binary.md
+++ b/solutions/observability/apps/apm-server-binary.md
@@ -600,8 +600,8 @@ apm = ElasticAPM(app)
**Learn more in the agent reference**
-* [Supported technologies](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md)
-* [Advanced configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+* [Supported technologies](apm-agent-python://reference/supported-technologies.md)
+* [Advanced configuration](apm-agent-python://reference/configuration.md)
::::::
::::::{tab-item} Ruby
diff --git a/solutions/observability/apps/built-in-data-filters.md b/solutions/observability/apps/built-in-data-filters.md
index d9a886103f..24259f17a8 100644
--- a/solutions/observability/apps/built-in-data-filters.md
+++ b/solutions/observability/apps/built-in-data-filters.md
@@ -28,7 +28,7 @@ This setting supports [Central configuration](apm-agent-central-configuration.md
* Java: [`sanitize_field_names`](apm-agent-java://reference/config-core.md#config-sanitize-field-names)
* .NET: [`sanitizeFieldNames`](apm-agent-dotnet://reference/config-core.md#config-sanitize-field-names)
* Node.js: [`sanitizeFieldNames`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#sanitize-field-names)
-* Python: [`sanitize_field_names`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-sanitize-field-names)
+* Python: [`sanitize_field_names`](apm-agent-python://reference/configuration.md#config-sanitize-field-names)
* Ruby: [`sanitize_field_names`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-sanitize-field-names)
Alternatively, you can completely disable the capturing of HTTP headers. This setting also supports [Central configuration](apm-agent-central-configuration.md):
@@ -37,7 +37,7 @@ Alternatively, you can completely disable the capturing of HTTP headers. This se
* Java: [`capture_headers`](apm-agent-java://reference/config-core.md#config-capture-headers)
* .NET: [`CaptureHeaders`](apm-agent-dotnet://reference/config-http.md#config-capture-headers)
* Node.js: [`captureHeaders`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#capture-headers)
-* Python: [`capture_headers`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-capture-headers)
+* Python: [`capture_headers`](apm-agent-python://reference/configuration.md#config-capture-headers)
* Ruby: [`capture_headers`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-capture-headers)
@@ -51,7 +51,7 @@ This setting supports [Central configuration](apm-agent-central-configuration.md
* Java: [`capture_body`](apm-agent-java://reference/config-core.md#config-capture-body)
* .NET: [`CaptureBody`](apm-agent-dotnet://reference/config-http.md#config-capture-body)
* Node.js: [`captureBody`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#capture-body)
-* Python: [`capture_body`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-capture-body)
+* Python: [`capture_body`](apm-agent-python://reference/configuration.md#config-capture-body)
* Ruby: [`capture_body`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-capture-body)
diff --git a/solutions/observability/apps/custom-filters.md b/solutions/observability/apps/custom-filters.md
index 6023883c8f..e869866771 100644
--- a/solutions/observability/apps/custom-filters.md
+++ b/solutions/observability/apps/custom-filters.md
@@ -36,7 +36,7 @@ Refer to the relevant agent’s documentation for more information and examples:
* .NET: [Filter API](apm-agent-dotnet://reference/public-api.md#filter-api).
* Node.js: [`addFilter()`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/agent-api.md#apm-add-filter).
-* Python: [custom processors](asciidocalypse://docs/apm-agent-python/docs/reference/sanitizing-data.md).
+* Python: [custom processors](apm-agent-python://reference/sanitizing-data.md).
* Ruby: [`add_filter()`](asciidocalypse://docs/apm-agent-ruby/docs/reference/api-reference.md#api-agent-add-filter).
diff --git a/solutions/observability/apps/elastic-apm-agents.md b/solutions/observability/apps/elastic-apm-agents.md
index bb16bf5598..3cff8853ac 100644
--- a/solutions/observability/apps/elastic-apm-agents.md
+++ b/solutions/observability/apps/elastic-apm-agents.md
@@ -89,12 +89,12 @@ In addition to APM and error data, the Python agent also collects system and app
If you’re ready to give Elastic APM a try, see [Get started with traces and APM](../../../solutions/observability/apps/get-started-with-apm.md).
-See the [Python agent reference](asciidocalypse://docs/apm-agent-python/docs/reference/index.md) for full documentation, including:
+See the [Python agent reference](apm-agent-python://reference/index.md) for full documentation, including:
-* [Supported technologies](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md)
-* [Set up](asciidocalypse://docs/apm-agent-python/docs/reference/set-up-apm-python-agent.md)
-* [Configuration reference](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
-* [API reference](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md)
+* [Supported technologies](apm-agent-python://reference/supported-technologies.md)
+* [Set up](apm-agent-python://reference/set-up-apm-python-agent.md)
+* [Configuration reference](apm-agent-python://reference/configuration.md)
+* [API reference](apm-agent-python://reference/api-reference.md)
::::{important}
Not all APM agent configuration options are compatible with Elastic Cloud serverless.
diff --git a/solutions/observability/apps/filter-application-data.md b/solutions/observability/apps/filter-application-data.md
index 1d4869e4eb..05e3b71f5d 100644
--- a/solutions/observability/apps/filter-application-data.md
+++ b/solutions/observability/apps/filter-application-data.md
@@ -40,6 +40,6 @@ Service environments are defined when configuring your APM agents. It’s vital
* **.NET:** [`Environment`](apm-agent-dotnet://reference/config-core.md#config-environment)
* **Node.js:** [`environment`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/ingestion-tools/apm-agent-nodejs/configuration.md#environment)
* **PHP:** [`environment`](asciidocalypse://docs/apm-agent-php/docs/reference/ingestion-tools/apm-agent-php/configuration-reference.md#config-environment)
-* **Python:** [`environment`](asciidocalypse://docs/apm-agent-python/docs/reference/ingestion-tools/apm-agent-python/configuration.md#config-environment)
+* **Python:** [`environment`](apm-agent-python://reference/configuration.md#config-environment)
* **Ruby:** [`environment`](asciidocalypse://docs/apm-agent-ruby/docs/reference/ingestion-tools/apm-agent-ruby/configuration.md#config-environment)
* **Real User Monitoring (Elastic Stack only):** [`environment`](apm-agent-rum-js://reference/configuration.md#environment)
\ No newline at end of file
diff --git a/solutions/observability/apps/fleet-managed-apm-server.md b/solutions/observability/apps/fleet-managed-apm-server.md
index 303c25ff67..61d4fbb4a6 100644
--- a/solutions/observability/apps/fleet-managed-apm-server.md
+++ b/solutions/observability/apps/fleet-managed-apm-server.md
@@ -645,8 +645,8 @@ apm = ElasticAPM(app)
**Learn more in the agent reference**
-* [Supported technologies](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md)
-* [Advanced configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+* [Supported technologies](apm-agent-python://reference/supported-technologies.md)
+* [Advanced configuration](apm-agent-python://reference/configuration.md)
::::::
::::::{tab-item} Ruby
diff --git a/solutions/observability/apps/metadata.md b/solutions/observability/apps/metadata.md
index 744e171135..e68a3675fc 100644
--- a/solutions/observability/apps/metadata.md
+++ b/solutions/observability/apps/metadata.md
@@ -32,7 +32,7 @@ Avoid defining too many user-specified labels. Defining too many unique fields i
* .NET: [`SetLabel`](apm-agent-dotnet://reference/public-api.md#api-transaction-set-label)
* Node.js: [`setLabel`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/agent-api.md#apm-add-labels)
* PHP: [`Transaction` `setLabel`](asciidocalypse://docs/apm-agent-php/docs/reference/public-api.md#api-transaction-interface-set-label) | [`Span` `setLabel`](asciidocalypse://docs/apm-agent-php/docs/reference/public-api.md#api-span-interface-set-label)
-* Python: [`elasticapm.label()`](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md#api-label)
+* Python: [`elasticapm.label()`](apm-agent-python://reference/api-reference.md#api-label)
* Ruby: [`set_label`](asciidocalypse://docs/apm-agent-ruby/docs/reference/api-reference.md#api-agent-set-label)
* Rum: [`addLabels`](apm-agent-rum-js://reference/agent-api.md#apm-add-labels)
@@ -62,7 +62,7 @@ Setting a circular object, a large object, or a non JSON serializable object can
* .NET: *coming soon*
* Node.js: [`setCustomContext`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/agent-api.md#apm-set-custom-context)
* PHP: *coming soon*
-* Python: [`set_custom_context`](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md#api-set-custom-context)
+* Python: [`set_custom_context`](apm-agent-python://reference/api-reference.md#api-set-custom-context)
* Ruby: [`set_custom_context`](asciidocalypse://docs/apm-agent-ruby/docs/reference/api-reference.md#api-agent-set-custom-context)
* Rum: [`setCustomContext`](apm-agent-rum-js://reference/agent-api.md#apm-set-custom-context)
@@ -85,7 +85,7 @@ User context adds **indexed** user information to transactions and errors. Index
* .NET *coming soon*
* Node.js: [`setUserContext`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/agent-api.md#apm-set-user-context)
* PHP: *coming soon*
-* Python: [`set_user_context`](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md#api-set-user-context)
+* Python: [`set_user_context`](apm-agent-python://reference/api-reference.md#api-set-user-context)
* Ruby: [`set_user`](asciidocalypse://docs/apm-agent-ruby/docs/reference/api-reference.md#api-agent-set-user)
* Rum: [`setUserContext`](apm-agent-rum-js://reference/agent-api.md#apm-set-user-context)
diff --git a/solutions/observability/apps/metrics.md b/solutions/observability/apps/metrics.md
index 8fa440e4a2..e67d7ff1b1 100644
--- a/solutions/observability/apps/metrics.md
+++ b/solutions/observability/apps/metrics.md
@@ -29,7 +29,7 @@ For a full list of tracked metrics, see the relevant agent documentation:
* [Go](apm-agent-go://reference/metrics.md)
* [Java](apm-agent-java://reference/metrics.md)
* [Node.js](asciidocalypse://docs/apm-agent-nodejs/docs/reference/metrics.md)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/metrics.md)
+* [Python](apm-agent-python://reference/metrics.md)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/metrics.md)
diff --git a/solutions/observability/apps/monitoring-aws-lambda-functions.md b/solutions/observability/apps/monitoring-aws-lambda-functions.md
index 7a08fd72b0..defc8d2868 100644
--- a/solutions/observability/apps/monitoring-aws-lambda-functions.md
+++ b/solutions/observability/apps/monitoring-aws-lambda-functions.md
@@ -34,7 +34,7 @@ By using an AWS Lambda extension, Elastic APM agents can send data to a local La
To get started with the setup of Elastic APM for your Lambda functions, checkout the language-specific guides:
* [Quick Start with APM on AWS Lambda - Node.js](asciidocalypse://docs/apm-agent-nodejs/docs/reference/lambda.md)
-* [Quick Start with APM on AWS Lambda - Python](asciidocalypse://docs/apm-agent-python/docs/reference/lambda-support.md)
+* [Quick Start with APM on AWS Lambda - Python](apm-agent-python://reference/lambda-support.md)
* [Quick Start with APM on AWS Lambda - Java](apm-agent-java://reference/aws-lambda.md)
Or, see the [architecture guide](apm-aws-lambda://reference/index.md) to learn more about how the extension works, performance impacts, and more.
\ No newline at end of file
diff --git a/solutions/observability/apps/secret-token.md b/solutions/observability/apps/secret-token.md
index 8f01e55542..d418ffa2b8 100644
--- a/solutions/observability/apps/secret-token.md
+++ b/solutions/observability/apps/secret-token.md
@@ -66,7 +66,7 @@ Each Elastic {{apm-agent}} has a configuration option to set the value of the se
* **.NET agent**: [`ELASTIC_APM_SECRET_TOKEN`](apm-agent-dotnet://reference/config-reporter.md#config-secret-token)
* **Node.js agent**: [`Secret Token`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#secret-token)
* **PHP agent**: [`secret_token`](asciidocalypse://docs/apm-agent-php/docs/reference/configuration-reference.md#config-secret-token)
-* **Python agent**: [`secret_token`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-secret-token)
+* **Python agent**: [`secret_token`](apm-agent-python://reference/configuration.md#config-secret-token)
* **Ruby agent**: [`secret_token`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-secret-token)
In addition to setting the secret token, ensure the configured server URL uses `HTTPS` instead of `HTTP`:
diff --git a/solutions/observability/apps/spans.md b/solutions/observability/apps/spans.md
index 7dece2bb25..dcdd23b51a 100644
--- a/solutions/observability/apps/spans.md
+++ b/solutions/observability/apps/spans.md
@@ -39,7 +39,7 @@ To configure the number of spans recorded per transaction, see the relevant Agen
* .NET: [`TransactionMaxSpans`](apm-agent-dotnet://reference/config-core.md#config-transaction-max-spans)
* Node.js: [`transactionMaxSpans`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#transaction-max-spans)
* PHP: [`transaction_max_spans`](asciidocalypse://docs/apm-agent-php/docs/reference/configuration-reference.md#config-transaction-max-spans)
-* Python: [`transaction_max_spans`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-transaction-max-spans)
+* Python: [`transaction_max_spans`](apm-agent-python://reference/configuration.md#config-transaction-max-spans)
* Ruby: [`transaction_max_spans`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-transaction-max-spans)
@@ -479,4 +479,4 @@ Support for span compression is available in the following agents and can be con
| **Java agent** | [`span_compression_same_kind_max_duration`](apm-agent-java://reference/config-huge-traces.md#config-span-compression-same-kind-max-duration) | [`span_compression_exact_match_max_duration`](apm-agent-java://reference/config-huge-traces.md#config-span-compression-exact-match-max-duration) |
| **.NET agent** | [`SpanCompressionSameKindMaxDuration`](apm-agent-dotnet://reference/config-core.md#config-span-compression-exact-match-max-duration) |
| **Node.js agent** | [`spanCompressionSameKindMaxDuration`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#span-compression-exact-match-max-duration) |
-| **Python agent** | [`span_compression_same_kind_max_duration`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-span-compression-exact-match-max_duration) |
\ No newline at end of file
+| **Python agent** | [`span_compression_same_kind_max_duration`](apm-agent-python://reference/configuration.md#config-span-compression-exact-match-max_duration) |
\ No newline at end of file
diff --git a/solutions/observability/apps/traces.md b/solutions/observability/apps/traces.md
index ad9b970bfd..bb9e152221 100644
--- a/solutions/observability/apps/traces.md
+++ b/solutions/observability/apps/traces.md
@@ -227,7 +227,7 @@ $distDataAsString = ElasticApm::getSerializedCurrentDistributedTracingData(); <1
::::::
::::::{tab-item} Python
-1. Start a transaction with [`begin_transaction()`](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md#client-api-begin-transaction).
+1. Start a transaction with [`begin_transaction()`](apm-agent-python://reference/api-reference.md#client-api-begin-transaction).
2. Get the `trace_parent` of the active transaction.
3. Send the `trace_parent` to the receiving service.
@@ -397,7 +397,7 @@ client.begin_transaction('processors', trace_parent=parent) <2>
::::{tip}
-See the [`TraceParent` API](asciidocalypse://docs/apm-agent-python/docs/reference/api-reference.md#traceparent-api) for additional examples.
+See the [`TraceParent` API](apm-agent-python://reference/api-reference.md#traceparent-api) for additional examples.
::::
::::::
diff --git a/solutions/observability/apps/transaction-sampling.md b/solutions/observability/apps/transaction-sampling.md
index 1582f47bc9..427589a299 100644
--- a/solutions/observability/apps/transaction-sampling.md
+++ b/solutions/observability/apps/transaction-sampling.md
@@ -235,7 +235,7 @@ Each agent provides a configuration value used to set the transaction sample rat
* .NET: [`TransactionSampleRate`](apm-agent-dotnet://reference/config-core.md#config-transaction-sample-rate)
* Node.js: [`transactionSampleRate`](asciidocalypse://docs/apm-agent-nodejs/docs/reference/configuration.md#transaction-sample-rate)
* PHP: [`transaction_sample_rate`](asciidocalypse://docs/apm-agent-php/docs/reference/configuration-reference.md#config-transaction-sample-rate)
-* Python: [`transaction_sample_rate`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-transaction-sample-rate)
+* Python: [`transaction_sample_rate`](apm-agent-python://reference/configuration.md#config-transaction-sample-rate)
* Ruby: [`transaction_sample_rate`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-transaction-sample-rate)
diff --git a/solutions/observability/apps/use-opentelemetry-with-apm.md b/solutions/observability/apps/use-opentelemetry-with-apm.md
index 671ff46ea0..b4051139a7 100644
--- a/solutions/observability/apps/use-opentelemetry-with-apm.md
+++ b/solutions/observability/apps/use-opentelemetry-with-apm.md
@@ -75,7 +75,7 @@ Find more details about how to use an OpenTelemetry API or SDK with an Elastic A
* [**APM Java agent →**](apm-agent-java://reference/opentelemetry-bridge.md)
* [**APM .NET agent →**](apm-agent-dotnet://reference/opentelemetry-bridge.md)
* [**APM Node.js agent →**](asciidocalypse://docs/apm-agent-nodejs/docs/reference/opentelemetry-bridge.md)
-* [**APM Python agent →**](asciidocalypse://docs/apm-agent-python/docs/reference/opentelemetry-api-bridge.md)
+* [**APM Python agent →**](apm-agent-python://reference/opentelemetry-api-bridge.md)
## Upstream OpenTelemetry Collector and language SDKs [apm-otel-upstream]
diff --git a/solutions/observability/apps/what-happens-when-apm-server-elasticsearch-is-down.md b/solutions/observability/apps/what-happens-when-apm-server-elasticsearch-is-down.md
index 1038d3a1a0..8e33cd83a5 100644
--- a/solutions/observability/apps/what-happens-when-apm-server-elasticsearch-is-down.md
+++ b/solutions/observability/apps/what-happens-when-apm-server-elasticsearch-is-down.md
@@ -17,7 +17,7 @@ Some agents have internal queues or buffers that will temporarily store data if
* **Java agent** - Internal buffer with configurable size: [`max_queue_size`](apm-agent-java://reference/config-reporter.md#config-max-queue-size).
* **Node.js agent** - No internal queue. Data is lost.
* **PHP agent** - No internal queue. Data is lost.
-* **Python agent** - Internal [Transaction queue](asciidocalypse://docs/apm-agent-python/docs/reference/performance-tuning.md#tuning-queue) with configurable size and time between flushes.
+* **Python agent** - Internal [Transaction queue](apm-agent-python://reference/performance-tuning.md#tuning-queue) with configurable size and time between flushes.
* **Ruby agent** - Internal queue with configurable size: [`api_buffer_size`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-api-buffer-size).
* **RUM agent** - No internal queue. Data is lost.
* **.NET agent** - No internal queue. Data is lost.
diff --git a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md
index e95d0e623d..273a7760f4 100644
--- a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md
+++ b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md
@@ -968,8 +968,8 @@ Configure the agent using environment variables:
**Learn more in the agent reference**
-* [Supported technologies](asciidocalypse://docs/apm-agent-python/docs/reference/supported-technologies.md)
-* [Advanced configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md)
+* [Supported technologies](apm-agent-python://reference/supported-technologies.md)
+* [Advanced configuration](apm-agent-python://reference/configuration.md)
::::::
::::::{tab-item} Ruby
diff --git a/solutions/observability/logs/ecs-formatted-application-logs.md b/solutions/observability/logs/ecs-formatted-application-logs.md
index 17f1afe15d..09e0e7792a 100644
--- a/solutions/observability/logs/ecs-formatted-application-logs.md
+++ b/solutions/observability/logs/ecs-formatted-application-logs.md
@@ -52,7 +52,7 @@ Log ECS reformatting is controlled by the `log_ecs_reformatting` configuration o
* [Java](apm-agent-java://reference/config-logging.md#config-log-ecs-reformatting)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-log-ecs-formatting)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-log_ecs_reformatting)
+* [Python](apm-agent-python://reference/configuration.md#config-log_ecs_reformatting)
### Ingest logs [ingest-ecs-logs]
diff --git a/solutions/observability/logs/plaintext-application-logs.md b/solutions/observability/logs/plaintext-application-logs.md
index ec914c3cb3..09c82eb9ae 100644
--- a/solutions/observability/logs/plaintext-application-logs.md
+++ b/solutions/observability/logs/plaintext-application-logs.md
@@ -345,7 +345,7 @@ Learn about correlating plaintext logs in the agent-specific ingestion guides:
* [Java](apm-agent-java://reference/logs.md#log-correlation-ids)
* [.NET](apm-agent-dotnet://reference/logs.md)
* [Node.js](asciidocalypse://docs/apm-agent-nodejs/docs/reference/logs.md)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/logs.md#log-correlation-ids)
+* [Python](apm-agent-python://reference/logs.md#log-correlation-ids)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/logs.md)
diff --git a/solutions/observability/logs/stream-application-logs.md b/solutions/observability/logs/stream-application-logs.md
index f136a9a34a..46d92d7653 100644
--- a/solutions/observability/logs/stream-application-logs.md
+++ b/solutions/observability/logs/stream-application-logs.md
@@ -70,7 +70,7 @@ Some Elastic {{apm-agent}}s can automatically reformat application logs to ECS f
This feature is supported for the following {{apm-agent}}s:
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-log-ecs-formatting)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/logs.md#log-reformatting)
+* [Python](apm-agent-python://reference/logs.md#log-reformatting)
* [Java](apm-agent-java://reference/logs.md#log-reformatting)
** Learn more in [ECS formatted logs](../../../solutions/observability/logs/ecs-formatted-application-logs.md)**
@@ -99,5 +99,5 @@ Learn more about log correlation in the agent-specific ingestion guides:
* [Java](apm-agent-java://reference/logs.md#log-correlation-ids)
* [.NET](apm-agent-dotnet://reference/logs.md)
* [Node.js](asciidocalypse://docs/apm-agent-nodejs/docs/reference/logs.md)
-* [Python](asciidocalypse://docs/apm-agent-python/docs/reference/logs.md#log-correlation-ids)
+* [Python](apm-agent-python://reference/logs.md#log-correlation-ids)
* [Ruby](asciidocalypse://docs/apm-agent-ruby/docs/reference/logs.md)
\ No newline at end of file
diff --git a/troubleshoot/observability/apm-agent-python/apm-python-agent.md b/troubleshoot/observability/apm-agent-python/apm-python-agent.md
index 522f8b7c51..086fe1de9f 100644
--- a/troubleshoot/observability/apm-agent-python/apm-python-agent.md
+++ b/troubleshoot/observability/apm-agent-python/apm-python-agent.md
@@ -27,7 +27,7 @@ Before you try anything else, go through the following sections to ensure that t
Most frameworks support a debug mode. Generally, this mode is intended for non-production environments and provides detailed error messages and logging of potentially sensitive data. Because of these security issues, the agent will not collect traces if the app is in debug mode by default.
-You can override this behavior with the [`DEBUG`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-debug) configuration.
+You can override this behavior with the [`DEBUG`](apm-agent-python://reference/configuration.md#config-debug) configuration.
Note that configuration of the agent should occur before creation of any `ElasticAPM` objects:
@@ -49,12 +49,12 @@ python3 -m pip install psutil
### Credential issues [apm-server-credentials]
-In order for the agent to send data to the APM Server, it may need an [`API_KEY`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-api-key) or a [`SECRET_TOKEN`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-secret-token). Double check your APM Server settings and make sure that your credentials are configured correctly. Additionally, check that [`SERVER_URL`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-server-url) is correct.
+In order for the agent to send data to the APM Server, it may need an [`API_KEY`](apm-agent-python://reference/configuration.md#config-api-key) or a [`SECRET_TOKEN`](apm-agent-python://reference/configuration.md#config-secret-token). Double check your APM Server settings and make sure that your credentials are configured correctly. Additionally, check that [`SERVER_URL`](apm-agent-python://reference/configuration.md#config-server-url) is correct.
## Django `check` and `test` [django-test]
-When used with Django, the agent provides two management commands to help debug common issues. Head over to the [Django troubleshooting section](asciidocalypse://docs/apm-agent-python/docs/reference/django-support.md#django-troubleshooting) for more information.
+When used with Django, the agent provides two management commands to help debug common issues. Head over to the [Django troubleshooting section](apm-agent-python://reference/django-support.md#django-troubleshooting) for more information.
## Agent logging [agent-logging]
@@ -130,7 +130,7 @@ See the [python logging docs](https://docs.python.org/3/library/logging.html) fo
In the unlikely event the agent causes disruptions to a production application, you can disable the agent while you troubleshoot.
-If you have access to [dynamic configuration](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#dynamic-configuration), you can disable the recording of events by setting [`recording`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-recording) to `false`. When changed at runtime from a supported source, there’s no need to restart your application.
+If you have access to [dynamic configuration](apm-agent-python://reference/configuration.md#dynamic-configuration), you can disable the recording of events by setting [`recording`](apm-agent-python://reference/configuration.md#config-recording) to `false`. When changed at runtime from a supported source, there’s no need to restart your application.
-If that doesn’t work, or you don’t have access to dynamic configuration, you can disable the agent by setting [`enabled`](asciidocalypse://docs/apm-agent-python/docs/reference/configuration.md#config-enabled) to `false`. You’ll need to restart your application for the changes to take effect.
+If that doesn’t work, or you don’t have access to dynamic configuration, you can disable the agent by setting [`enabled`](apm-agent-python://reference/configuration.md#config-enabled) to `false`. You’ll need to restart your application for the changes to take effect.
diff --git a/troubleshoot/observability/apm/what-happens-when-apm-server-elasticsearch-is-down.md b/troubleshoot/observability/apm/what-happens-when-apm-server-elasticsearch-is-down.md
index 43f97d3987..9f661772de 100644
--- a/troubleshoot/observability/apm/what-happens-when-apm-server-elasticsearch-is-down.md
+++ b/troubleshoot/observability/apm/what-happens-when-apm-server-elasticsearch-is-down.md
@@ -19,7 +19,7 @@ Some agents have internal queues or buffers that will temporarily store data if
* **Java agent** - Internal buffer with configurable size: [`max_queue_size`](apm-agent-java://reference/config-reporter.md#config-max-queue-size).
* **Node.js agent** - No internal queue. Data is lost.
* **PHP agent** - No internal queue. Data is lost.
-* **Python agent** - Internal [Transaction queue](asciidocalypse://docs/apm-agent-python/docs/reference/performance-tuning.md#tuning-queue) with configurable size and time between flushes.
+* **Python agent** - Internal [Transaction queue](apm-agent-python://reference/performance-tuning.md#tuning-queue) with configurable size and time between flushes.
* **Ruby agent** - Internal queue with configurable size: [`api_buffer_size`](asciidocalypse://docs/apm-agent-ruby/docs/reference/configuration.md#config-api-buffer-size).
* **RUM agent** - No internal queue. Data is lost.
* **.NET agent** - No internal queue. Data is lost.