diff --git a/docs/en/apm-server/redirects.asciidoc b/docs/en/apm-server/redirects.asciidoc index c5d77572a9..030d2b242c 100644 --- a/docs/en/apm-server/redirects.asciidoc +++ b/docs/en/apm-server/redirects.asciidoc @@ -8,7 +8,7 @@ The following pages have moved or been deleted. [role="exclude",id="event-types"] === Event types -This page has moved. Please see {observability-guide}/data-model.html[APM data model]. +This page has moved. Please see {observability-guide}/apm-data-model.html[APM data model]. // [role="exclude",id="errors"] // === Errors @@ -30,196 +30,196 @@ This page has moved. Please see {observability-guide}/data-model.html[APM data m [role="exclude",id="error-endpoint"] === Error endpoint -The error endpoint has been deprecated. Instead, see <>. +The error endpoint has been deprecated. Please see {observability-guide}/apm-api-events.html[API events]. [role="exclude",id="error-schema-definition"] === Error schema definition -The error schema has moved. Please see {observability-guide}/api-error.html#api-error-schema[Error Schema]. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="error-api-examples"] === Error API examples -The error API examples have moved. Please see <>. +The error API examples have moved. Please see {observability-guide}/apm-api-events.html[API events]. [role="exclude",id="error-payload-schema"] === Error payload schema -This schema has changed. Please see <>. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="error-service-schema"] === Error service schema -This schema has changed. Please see <>. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="error-system-schema"] === Error system schema -This schema has changed. Please see <>. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="error-context-schema"] === Error context schema -This schema has changed. Please see <>. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="error-stacktraceframe-schema"] === Error stack trace frame schema -This schema has changed. Please see <>. +The error schema has moved. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="payload-with-error"] === Payload with error -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="payload-with-minimal-exception"] === Payload with minimal exception -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-error.html[Error Schema]. [role="exclude",id="payload-with-minimal-log"] === Payload with minimal log -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-error.html[Error Schema]. // Transaction API [role="exclude",id="transaction-endpoint"] === Transaction endpoint -The transaction endpoint has been deprecated. Instead, see <>. +The transaction endpoint has been deprecated. Please see {observability-guide}/apm-api-events.html[API events]. [role="exclude",id="transaction-schema-definition"] === Transaction schema definition -The transaction schema has moved. Please see {observability-guide}/api-transaction.html#api-transaction-schema[Transaction Schema]. +The transaction schema has moved. Please see {observability-guide}/apm-api-transaction.html#apm-api-transaction-schema[Transaction Schema]. [role="exclude",id="transaction-api-examples"] === Transaction API examples -The transaction API examples have moved. Please see <>. +The transaction API examples have moved. Please see {observability-guide}/apm-api-events.html[API events]. [role="exclude",id="transaction-span-schema"] === Transaction span schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-span.html[Spans]. [role="exclude",id="transaction-payload-schema"] === Transaction payload schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-service-schema"] === Transaction service schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-system-schema"] === Transaction system schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-context-schema"] === Transaction context schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-stacktraceframe-schema"] === Transaction stack trace frame schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-request-schema"] === Transaction request schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="transaction-user-schema"] === Transaction user schema -This schema has changed. Please see <>. +This schema has changed. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="payload-with-transactions"] === Payload with transactions -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="payload-with-minimal-transaction"] === Payload with minimal transaction -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="payload-with-minimal-span"] === Payload with minimal span -This is no longer helpful. Please see <>. +This is no longer helpful. Please see {observability-guide}/apm-api-span.html[Spans]. [role="exclude",id="example-intakev2-events"] === Example Request Body -This page has moved. Please see <>. +Refer to {observability-guide}/apm-api-event-example.html[Example request body]. // V1 intake API [role="exclude",id="request-too-large"] === HTTP 413: Request body too large -This error can no longer occur. Please see <> for an updated overview of potential issues. +This error can no longer occur. Refer to {observability-guide}/apm-common-problems.html[Common problems]. [role="exclude",id="configuration-v1-api"] === Configuration options: v1 Intake API -Intake API v1 is no longer supported. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +Intake API v1 is no longer supported. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="max_unzipped_size"] === `max_unzipped_size` -This configuration option is no longer supported. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +This configuration option is no longer supported. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="concurrent_requests"] === `concurrent_requests` -This configuration option is no longer supported. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +This configuration option is no longer supported. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="metrics.enabled"] === `metrics.enabled` -This configuration option is no longer supported. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +This configuration option is no longer supported. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="max_request_queue_time"] === `max_request_queue_time` -This configuration option is no longer supported. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +This configuration option is no longer supported. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="configuration-v2-api"] === Configuration options: v2 Intake API -This section has moved. Please see {observability-guide}/configuration-process.html#configuration-apm-server[Configuration options] for current configuration options. +This section has moved. Please see {observability-guide}/apm-configuration-process.html#apm-configuration-apm-server[Configuration options] for current configuration options. [role="exclude",id="configuration-rum-v1"] === `configuration-rum-v1` -This configuration option is no longer supported. Please see <> for current configuration options. +This configuration option is no longer supported. Refer to {observability-guide}/apm-configuration-rum.html[Real User Monitoring (RUM)]. [role="exclude",id="rate_limit_v1"] === `rate_limit_v1` -This configuration option is no longer supported. Please see <> for current configuration options. +This configuration option is no longer supported. Refer to {observability-guide}/apm-configuration-rum.html[Real User Monitoring (RUM)]. [role="exclude",id="configuration-rum-v2"] === `configuration-rum-v2` -This section has moved. Please see <> for current configuration options. +This section has moved. Refer to {observability-guide}/apm-configuration-rum.html[Real User Monitoring (RUM)]. [role="exclude",id="configuration-rum-general"] === Configuration options: general -This section has moved. Please see <> for current configuration options. +This section has moved. Refer to {observability-guide}/apm-configuration-rum.html[Real User Monitoring (RUM)]. [role="exclude",id="use-v1-and-v2"] === Tuning APM Server using both v1 and v2 intake API -This section has moved. Please see {observability-guide}/tune-data-ingestion.html#tune-apm-server[Tune APM Server] for how to tune APM Server. +This section has moved. Please see {observability-guide}/apm-tune-data-ingestion.html#apm-tune-apm-server[Tune APM Server] for how to tune APM Server. // Dashboards @@ -246,11 +246,6 @@ Please use the {kibana-ref}/xpack-apm.html[{kib} APM UI] instead. As an alternative, a small number of dashboards and visualizations are available in the https://github.com/elastic/apm-contrib/tree/main/kibana[apm-contrib] repository. -// [role="exclude",id="rum"] -// === Rum - -// This section has moved. Please see <>. - [role="exclude",id="aws-lambda-arch"] === APM Architecture for AWS Lambda @@ -269,37 +264,37 @@ This section has moved. See {apm-lambda-ref}/aws-lambda-secrets-manager.html[Usi [role="exclude",id="go-compatibility"] === Go Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="java-compatibility"] === Java Agent Compatibility -This page has moved. Please see <>. +This page has moved.Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="dotnet-compatibility"] === .NET Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="nodejs-compatibility"] === Node.js Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="python-compatibility"] === Python Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="ruby-compatibility"] === Ruby Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="rum-compatibility"] === RUM Agent Compatibility -This page has moved. Please see <>. +This page has moved. Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="apm-release-notes"] === APM release highlights @@ -307,8 +302,6 @@ This page has moved. Please see <>. This page has moved. Please see {observability-guide}/whats-new.html[What's new in {observability} {minor-version}]. -Please see <>. - [role="exclude",id="whats-new"] === What's new in APM {minor-version} @@ -319,13 +312,13 @@ Please see {observability-guide}/whats-new.html[What's new in {observability} {m === Troubleshooting This page has moved. -Please see <>. +Refer to {observability-guide}/apm-troubleshoot-apm.html[Troubleshoot]. [role="exclude",id="input-apm"] === Configuring This page has moved. -Please see <>. +Refer to {observability-guide}/apm-configuring-howto-apm-server.html[Configure]. [role="exclude",id="events-api"] === Events Intake API @@ -442,7 +435,7 @@ Refer to {observability-guide}/traces-get-started.html[Quick start with Elastic {move-notice} -Refer to {observability-guide}/getting-started-apm-server.html[Self manage APM Server]. +Refer to {observability-guide}/apm-getting-started-apm-server.html[Self manage APM Server]. [role="exclude",id="_apm_server_binary"] === APM Server binary @@ -456,7 +449,7 @@ Refer to {observability-guide}/_apm_server_binary.html[APM Server binary]. {move-notice} -Refer to {observability-guide}/installing.html[Step 1: Install]. +Refer to {observability-guide}/apm-installing.html[Step 1: Install]. [role="exclude",id="apm-server-configuration"] === Step 2: Set up and configure @@ -477,21 +470,21 @@ Refer to {observability-guide}/apm-server-starting.html[Step 3: Start]. {move-notice} -Refer to {observability-guide}/next-steps.html[Step 4: Next steps]. +Refer to {observability-guide}/apm-next-steps.html[Step 4: Next steps]. [role="exclude",id="setup-repositories"] === Repositories for APT and YUM {move-notice} -Refer to {observability-guide}/setup-repositories.html[Repositories for APT and YUM]. +Refer to {observability-guide}/apm-setup-repositories.html[Repositories for APT and YUM]. [role="exclude",id="running-on-docker"] === Run APM Server on Docker {move-notice} -Refer to {observability-guide}/running-on-docker.html[Run APM Server on Docker]. +Refer to {observability-guide}/apm-running-on-docker.html[Run APM Server on Docker]. [role="exclude",id="_fleet_managed_apm_server"] === Fleet-managed APM Server @@ -533,67 +526,67 @@ Refer to {observability-guide}/_step_4_view_your_data.html[Step 4: View your dat {move-notice} -Refer to {observability-guide}/data-model.html[Data Model]. +Refer to {observability-guide}/apm-data-model.html[Data Model]. [role="exclude",id="data-model-spans"] === Spans {move-notice} -Refer to {observability-guide}/data-model-spans.html[Spans]. +Refer to {observability-guide}/apm-data-model-spans.html[Spans]. [discrete] [[data-model-dropped-spans]] ==== Dropped spans -Refer to {observability-guide}/data-model-spans.html#data-model-dropped-spans[Dropped spans] +Refer to {observability-guide}/apm-data-model-spans.html#apm-data-model-dropped-spans[Dropped spans] [role="exclude",id="data-model-transactions"] === Transactions {move-notice} -Refer to {observability-guide}/data-model-transactions.html[Transactions]. +Refer to {observability-guide}/apm-data-model-transactions.html[Transactions]. [role="exclude",id="data-model-errors"] === Errors {move-notice} -Refer to {observability-guide}/data-model-errors.html[Errors]. +Refer to {observability-guide}/apm-data-model-errors.html[Errors]. [role="exclude",id="data-model-metrics"] === Metrics {move-notice} -Refer to {observability-guide}/data-model-metrics.html[Metrics]. +Refer to {observability-guide}/apm-data-model-metrics.html[Metrics]. [role="exclude",id="data-model-metadata"] === Metadata {move-notice} -Refer to {observability-guide}/data-model-metadata.html[Metadata].. +Refer to {observability-guide}/apm-data-model-metadata.html[Metadata].. [discrete] [[data-model-custom]] === Custom context -Refer to {observability-guide}/data-model-metadata.html#data-model-custom[Custom context]. +Refer to {observability-guide}/apm-data-model-metadata.html#apm-data-model-custom[Custom context]. [discrete] [[data-model-labels]] === Labels -Refer to {observability-guide}/data-model-metadata.html#data-model-labels[Labels]. +Refer to {observability-guide}/apm-data-model-metadata.html#apm-data-model-labels[Labels]. [role="exclude",id="features"] === Features {move-notice} -Refer to {observability-guide}/features.html[Features]. +Refer to {observability-guide}/apm-features.html[Features]. [role="exclude",id="apm-data-security"] === Data security @@ -607,21 +600,21 @@ Refer to {observability-guide}/apm-data-security.html[Data security]. {move-notice} -Refer to {observability-guide}/filtering.html[Built-in data filters]. +Refer to {observability-guide}/apm-filtering.html[Built-in data filters]. [role="exclude",id="custom-filter"] === Custom filters {move-notice} -Refer to {observability-guide}/custom-filter.html[Custom filters]. +Refer to {observability-guide}/apm-custom-filter.html[Custom filters]. [role="exclude",id="data-security-delete"] === Delete sensitive data {move-notice} -Refer to {observability-guide}/data-security-delete.html[Delete sensitive data]. +Refer to {observability-guide}/apm-data-security-delete.html[Delete sensitive data]. [role="exclude",id="apm-distributed-tracing"] === Distributed tracing @@ -642,21 +635,21 @@ Refer to {observability-guide}/apm-rum.html[Real User Monitoring (RUM)]. {move-notice} -Refer to {observability-guide}/sampling.html[Transaction sampling]. +Refer to {observability-guide}/apm-sampling.html[Transaction sampling]. [role="exclude",id="configure-head-based-sampling"] === Configure head-based sampling {move-notice} -Refer to {observability-guide}/configure-head-based-sampling.html[Configure head-based sampling]. +Refer to {observability-guide}/apm-configure-head-based-sampling.html[Configure head-based sampling]. [role="exclude",id="configure-tail-based-sampling"] === Configure tail-based sampling {move-notice} -Refer to {observability-guide}/configure-tail-based-sampling.html[Configure tail-based sampling]. +Refer to {observability-guide}/apm-configure-tail-based-sampling.html[Configure tail-based sampling]. [role="exclude",id="log-correlation"] === Logging integration @@ -676,21 +669,21 @@ Refer to {observability-guide}/application-logs.html[Stream application logs]. {move-notice} -Refer to {observability-guide}/cross-cluster-search.html[Cross-cluster search]. +Refer to {observability-guide}/apm-cross-cluster-search.html[Cross-cluster search]. [role="exclude",id="span-compression"] === Span compression {move-notice} -Refer to {observability-guide}/span-compression.html[Span compression]. +Refer to {observability-guide}/apm-span-compression.html[Span compression]. [role="exclude",id="monitoring-aws-lambda"] === Monitoring AWS Lambda Functions {move-notice} -Refer to {observability-guide}/monitoring-aws-lambda.html[Monitoring AWS Lambda Functions]. +Refer to {observability-guide}/apm-monitoring-aws-lambda.html[Monitoring AWS Lambda Functions]. [role="exclude",id="apm-mutating-admission-webhook"] === APM Attacher @@ -704,100 +697,100 @@ Refer to {observability-guide}/apm-mutating-admission-webhook.html[APM Attacher] {move-notice} -Refer to {observability-guide}/how-to-guides.html[How-to guides]. +Refer to {observability-guide}/apm-how-to-guides.html[How-to guides]. [role="exclude",id="source-map-how-to"] === Create and upload source maps (RUM) -Refer to {observability-guide}/source-map-how-to.html[Create and upload source maps (RUM)] +Refer to {observability-guide}/apm-source-map-how-to.html[Create and upload source maps (RUM)] [discrete] [[source-map-rum-generate]] ==== Generate a source map -Refer to {observability-guide}/source-map-how-to.html#source-map-rum-generate[Generate a source map] +Refer to {observability-guide}/apm-source-map-how-to.html#apm-source-map-rum-generate[Generate a source map] [discrete] [[source-map-rum-upload]] ==== Upload the source map -Refer to {observability-guide}/source-map-how-to.html#source-map-rum-upload[Upload the source map] +Refer to {observability-guide}/apm-source-map-how-to.html#apm-source-map-rum-upload[Upload the source map] [role="exclude",id="jaeger-integration"] === Integrate with Jaeger {move-notice} -Refer to {observability-guide}/jaeger-integration.html[Integrate with Jaeger]. +Refer to {observability-guide}/apm-jaeger-integration.html[Integrate with Jaeger]. [role="exclude",id="ingest-pipelines"] === Parse data using ingest pipelines {move-notice} -Refer to {observability-guide}/ingest-pipelines.html[Parse data using ingest pipelines]. +Refer to {observability-guide}/apm-ingest-pipelines.html[Parse data using ingest pipelines]. [role="exclude",id="custom-index-template"] === View the Elasticsearch index template {move-notice} -Refer to {observability-guide}/custom-index-template.html[View the Elasticsearch index template]. +Refer to {observability-guide}/apm-custom-index-template.html[View the Elasticsearch index template]. [role="exclude",id="open-telemetry"] === OpenTelemetry integration {move-notice} -Refer to {observability-guide}/open-telemetry.html[OpenTelemetry integration]. +Refer to {observability-guide}/apm-open-telemetry.html[OpenTelemetry integration]. [role="exclude",id="open-telemetry-with-elastic"] === OpenTelemetry API/SDK with Elastic APM agents {move-notice} -Refer to {observability-guide}/open-telemetry-with-elastic.html[OpenTelemetry API/SDK with Elastic APM agents]. +Refer to {observability-guide}/apm-open-telemetry-with-elastic.html[OpenTelemetry API/SDK with Elastic APM agents]. [role="exclude",id="open-telemetry-direct"] === OpenTelemetry native support {move-notice} -Refer to {observability-guide}/open-telemetry-direct.html[OpenTelemetry native support]. +Refer to {observability-guide}/apm-open-telemetry-direct.html[OpenTelemetry native support]. [role="exclude",id="open-telemetry-other-env"] === AWS Lambda Support {move-notice} -Refer to {observability-guide}/open-telemetry-other-env.html[AWS Lambda Support]. +Refer to {observability-guide}/apm-open-telemetry-other-env.html[AWS Lambda Support]. [role="exclude",id="open-telemetry-collect-metrics"] === Collect metrics {move-notice} -Refer to {observability-guide}/open-telemetry-collect-metrics.html[Collect metrics]. +Refer to {observability-guide}/apm-open-telemetry-collect-metrics.html[Collect metrics]. [role="exclude",id="open-telemetry-known-limitations"] === Limitations {move-notice} -Refer to {observability-guide}/open-telemetry-known-limitations.html[Limitations]. +Refer to {observability-guide}/apm-open-telemetry-known-limitations.html[Limitations]. [role="exclude",id="open-telemetry-resource-attributes"] === Resource attributes {move-notice} -Refer to {observability-guide}/open-telemetry-resource-attributes.html[Resource attributes]. +Refer to {observability-guide}/apm-open-telemetry-resource-attributes.html[Resource attributes]. [role="exclude",id="manage-storage"] === Manage storage {move-notice} -Refer to {observability-guide}/manage-storage.html[Manage storage]. +Refer to {observability-guide}/apm-manage-storage.html[Manage storage]. [role="exclude",id="apm-data-streams"] === Data streams @@ -811,61 +804,61 @@ Refer to {observability-guide}/apm-data-streams.html[Data streams]. {move-notice} -Refer to {observability-guide}/ilm-how-to.html[Index lifecycle management]. +Refer to {observability-guide}/apm-ilm-how-to.html[Index lifecycle management]. [discrete] [[data-streams-custom-policy]] ==== Configure a custom index lifecycle policy -Refer to {observability-guide}/ilm-how-to.html#data-streams-custom-policy[Configure a custom index lifecycle policy] +Refer to {observability-guide}/apm-ilm-how-to.html#apm-data-streams-custom-policy[Configure a custom index lifecycle policy] [role="exclude",id="storage-guide"] === Storage and sizing guide {move-notice} -Refer to {observability-guide}/storage-guide.html[Storage and sizing guide]. +Refer to {observability-guide}/apm-storage-guide.html[Storage and sizing guide]. [role="exclude",id="reduce-apm-storage"] === Reduce storage {move-notice} -Refer to {observability-guide}/reduce-apm-storage.html[Reduce storage]. +Refer to {observability-guide}/apm-reduce-apm-storage.html[Reduce storage]. [role="exclude",id="exploring-es-data"] === Explore data in Elasticsearch {move-notice} -Refer to {observability-guide}/exploring-es-data.html[Explore data in Elasticsearch]. +Refer to {observability-guide}/apm-exploring-es-data.html[Explore data in Elasticsearch]. [role="exclude",id="configuring-howto-apm-server"] === Configure {move-notice} -Refer to {observability-guide}/configuring-howto-apm-server.html[Configure]. +Refer to {observability-guide}/apm-configuring-howto-apm-server.html[Configure]. [role="exclude",id="configuration-process"] === General configuration options {move-notice} -Refer to {observability-guide}/configuration-process.html[General configuration options]. +Refer to {observability-guide}/apm-configuration-process.html[General configuration options]. [discrete] [[max_event_size]] ==== Max event size -Refer to {observability-guide}/configuration-process.html#max_event_size[Max event size]. +Refer to {observability-guide}/apm-configuration-process.html#apm-max_event_size[Max event size]. [role="exclude",id="configuration-anonymous"] === Anonymous authentication {move-notice} -Refer to {observability-guide}/configuration-anonymous.html[Anonymous authentication]. +Refer to {observability-guide}/apm-configuration-anonymous.html[Anonymous authentication]. [role="exclude",id="apm-agent-auth"] === APM agent authorization @@ -879,476 +872,476 @@ Refer to {observability-guide}/apm-agent-auth.html[APM agent authorization]. {move-notice} -Refer to {observability-guide}/configure-agent-config.html[APM agent configuration]. +Refer to {observability-guide}/apm-configure-agent-config.html[APM agent configuration]. [role="exclude",id="configuration-instrumentation"] === Instrumentation {move-notice} -Refer to {observability-guide}/configuration-instrumentation.html[Instrumentation]. +Refer to {observability-guide}/apm-configuration-instrumentation.html[Instrumentation]. [role="exclude",id="setup-kibana-endpoint"] === Kibana endpoint {move-notice} -Refer to {observability-guide}/setup-kibana-endpoint.html[Kibana endpoint]. +Refer to {observability-guide}/apm-setup-kibana-endpoint.html[Kibana endpoint]. [role="exclude",id="configuration-logging"] === Logging {move-notice} -Refer to {observability-guide}/configuration-logging.html[Logging]. +Refer to {observability-guide}/apm-configuration-logging.html[Logging]. [role="exclude",id="configuring-output"] === Output {move-notice} -Refer to {observability-guide}/configuring-output.html[Output]. +Refer to {observability-guide}/apm-configuring-output.html[Output]. [role="exclude",id="configure-cloud-id"] === Elasticsearch Service {move-notice} -Refer to {observability-guide}/configure-cloud-id.html[Elasticsearch Service]. +Refer to {observability-guide}/apm-configure-cloud-id.html[Elasticsearch Service]. [role="exclude",id="elasticsearch-output"] === Elasticsearch {move-notice} -Refer to {observability-guide}/elasticsearch-output.html[Elasticsearch]. +Refer to {observability-guide}/apm-elasticsearch-output.html[Elasticsearch]. [role="exclude",id="logstash-output"] === Logstash {move-notice} -Refer to {observability-guide}/logstash-output.html[Logstash]. +Refer to {observability-guide}/apm-logstash-output.html[Logstash]. [role="exclude",id="kafka-output"] === Kafka {move-notice} -Refer to {observability-guide}/kafka-output.html[Kafka]. +Refer to {observability-guide}/apm-kafka-output.html[Kafka]. [role="exclude",id="redis-output"] === Redis {move-notice} -Refer to {observability-guide}/redis-output.html[Redis]. +Refer to {observability-guide}/apm-redis-output.html[Redis]. [role="exclude",id="console-output"] === Console {move-notice} -Refer to {observability-guide}/console-output.html[Console]. +Refer to {observability-guide}/apm-console-output.html[Console]. [role="exclude",id="configuration-path"] === Project paths {move-notice} -Refer to {observability-guide}/configuration-path.html[Project paths]. +Refer to {observability-guide}/apm-configuration-path.html[Project paths]. [role="exclude",id="configuration-rum"] === Real User Monitoring (RUM) {move-notice} -Refer to {observability-guide}/configuration-rum.html[Real User Monitoring (RUM)]. +Refer to {observability-guide}/apm-configuration-rum.html[Real User Monitoring (RUM)]. [discrete] [[rum-library-pattern]] ==== Library Frame Pattern -Refer to {observability-guide}/configuration-rum.html#rum-library-pattern[Library Frame Pattern]. +Refer to {observability-guide}/apm-configuration-rum.html#apm-rum-library-pattern[Library Frame Pattern]. [discrete] [[rum-allow-origins]] ==== Allowed Origins -Refer to {observability-guide}/configuration-rum.html#rum-allow-origins[Allowed Origins]. +Refer to {observability-guide}/apm-configuration-rum.html#apm-rum-allow-origins[Allowed Origins]. [role="exclude",id="configuration-ssl-landing"] === SSL/TLS settings {move-notice} -Refer to {observability-guide}/configuration-ssl-landing.html[SSL/TLS settings]. +Refer to {observability-guide}/apm-configuration-ssl-landing.html[SSL/TLS settings]. [role="exclude",id="configuration-ssl"] === SSL/TLS output settings {move-notice} -Refer to {observability-guide}/configuration-ssl.html[SSL/TLS output settings]. +Refer to {observability-guide}/apm-configuration-ssl.html[SSL/TLS output settings]. [role="exclude",id="agent-server-ssl"] === SSL/TLS input settings {move-notice} -Refer to {observability-guide}/agent-server-ssl.html[SSL/TLS input settings]. +Refer to {observability-guide}/apm-agent-server-ssl.html[SSL/TLS input settings]. [role="exclude",id="tail-based-samling-config"] === Tail-based sampling {move-notice} -Refer to {observability-guide}/tail-based-samling-config.html[Tail-based sampling]. +Refer to {observability-guide}/apm-tail-based-samling-config.html[Tail-based sampling]. [role="exclude",id="config-env"] === Use environment variables in the configuration {move-notice} -Refer to {observability-guide}/config-env.html[Use environment variables in th]. +Refer to {observability-guide}/apm-config-env.html[Use environment variables in th]. [role="exclude",id="setting-up-and-running"] === Advanced setup {move-notice} -Refer to {observability-guide}/setting-up-and-running.html[Advanced setup]. +Refer to {observability-guide}/apm-setting-up-and-running.html[Advanced setup]. [role="exclude",id="directory-layout"] === Installation layout {move-notice} -Refer to {observability-guide}/directory-layout.html[Installation layout]. +Refer to {observability-guide}/apm-directory-layout.html[Installation layout]. [role="exclude",id="keystore"] === Secrets keystore {move-notice} -Refer to {observability-guide}/keystore.html[Secrets keystore]. +Refer to {observability-guide}/apm-keystore.html[Secrets keystore]. [role="exclude",id="command-line-options"] === Command reference {move-notice} -Refer to {observability-guide}/command-line-options.html[Command reference]. +Refer to {observability-guide}/apm-command-line-options.html[Command reference]. [role="exclude",id="tune-data-ingestion"] === Tune data ingestion {move-notice} -Refer to {observability-guide}/tune-data-ingestion.html[Tune data ingestion]. +Refer to {observability-guide}/apm-tune-data-ingestion.html[Tune data ingestion]. [role="exclude",id="high-availability"] === High Availability {move-notice} -Refer to {observability-guide}/high-availability.html[High Availability]. +Refer to {observability-guide}/apm-high-availability.html[High Availability]. [role="exclude",id="running-with-systemd"] === APM Server and systemd {move-notice} -Refer to {observability-guide}/running-with-systemd.html[APM Server and systemd]. +Refer to {observability-guide}/apm-running-with-systemd.html[APM Server and systemd]. [role="exclude",id="securing-apm-server"] === Secure communication {move-notice} -Refer to {observability-guide}/securing-apm-server.html[Secure communication]. +Refer to {observability-guide}/apm-securing-apm-server.html[Secure communication]. [role="exclude",id="secure-agent-communication"] === With APM agents {move-notice} -Refer to {observability-guide}/secure-agent-communication.html[With APM agents]. +Refer to {observability-guide}/apm-secure-agent-communication.html[With APM agents]. [role="exclude",id="agent-tls"] === APM agent TLS communication {move-notice} -Refer to {observability-guide}/agent-tls.html[APM agent TLS communication]. +Refer to {observability-guide}/apm-agent-tls.html[APM agent TLS communication]. [discrete] [[agent-client-cert]] ==== Client certificate authentication -Refer to {observability-guide}/agent-tls.html#agent-client-cert[Client certificate authentication]. +Refer to {observability-guide}/apm-agent-tls.html#apm-agent-client-cert[Client certificate authentication]. [role="exclude",id="api-key"] === API keys {move-notice} -Refer to {observability-guide}/api-key.html[API keys]. +Refer to {observability-guide}/apm-api-key.html[API keys]. [role="exclude",id="secret-token"] === Secret token {move-notice} -Refer to {observability-guide}/secret-token.html[Secret token]. +Refer to {observability-guide}/apm-secret-token.html[Secret token]. [role="exclude",id="anonymous-auth"] === Anonymous authentication {move-notice} -Refer to {observability-guide}/anonymous-auth.html[Anonymous authentication]. +Refer to {observability-guide}/apm-anonymous-auth.html[Anonymous authentication]. [role="exclude",id="secure-comms-stack"] === With the Elastic Stack {move-notice} -Refer to {observability-guide}/secure-comms-stack.html[With the Elastic Stack]. +Refer to {observability-guide}/apm-secure-comms-stack.html[With the Elastic Stack]. [role="exclude",id="privileges-to-publish-events"] === Create a _writer_ user {move-notice} -Refer to {observability-guide}/privileges-to-publish-events.html[Create a _writer_ user]. +Refer to {observability-guide}/apm-privileges-to-publish-events.html[Create a _writer_ user]. [role="exclude",id="privileges-to-publish-monitoring"] === Create a _monitoring_ user {move-notice} -Refer to {observability-guide}/privileges-to-publish-monitoring.html[Create a _monitoring_ user]. +Refer to {observability-guide}/apm-privileges-to-publish-monitoring.html[Create a _monitoring_ user]. [role="exclude",id="privileges-api-key"] === Create an _API key_ user {move-notice} -Refer to {observability-guide}/privileges-api-key.html[Create an _API key_ user]. +Refer to {observability-guide}/apm-privileges-api-key.html[Create an _API key_ user]. [role="exclude",id="privileges-agent-central-config"] === Create a _central config_ user {move-notice} -Refer to {observability-guide}/privileges-agent-central-config.html[Create a _central config_ user]. +Refer to {observability-guide}/apm-privileges-agent-central-config.html[Create a _central config_ user]. [role="exclude",id="privileges-rum-source-map"] === Create a _source map_ user {move-notice} -Refer to {observability-guide}/privileges-rum-source-map.html[Create a _source map_ user]. +Refer to {observability-guide}/apm-privileges-rum-source-map.html[Create a _source map_ user]. [role="exclude",id="beats-api-keys"] === Grant access using API keys {move-notice} -Refer to {observability-guide}/beats-api-keys.html[Grant access using API keys]. +Refer to {observability-guide}/apm-beats-api-keys.html[Grant access using API keys]. [role="exclude",id="monitor-apm"] === Monitor {move-notice} -Refer to {observability-guide}/monitor-apm.html[Monitor]. +Refer to {observability-guide}/apm-monitor-apm.html[Monitor]. [role="exclude",id="monitor-apm-self-install"] === Fleet-managed {move-notice} -Refer to {observability-guide}/monitor-apm-self-install.html[Fleet-managed]. +Refer to {observability-guide}/apm-monitor-apm-self-install.html[Fleet-managed]. [role="exclude",id="monitoring"] === APM Server binary {move-notice} -Refer to {observability-guide}/monitoring.html[APM Server binary]. +Refer to {observability-guide}/apm-monitoring.html[APM Server binary]. [role="exclude",id="monitoring-internal-collection"] === Use internal collection {move-notice} -Refer to {observability-guide}/monitoring-internal-collection.html[Use internal collection]. +Refer to {observability-guide}/apm-monitoring-internal-collection.html[Use internal collection]. [role="exclude",id="monitoring-local-collection"] === Use local collection {move-notice} -Refer to {observability-guide}/monitoring-local-collection.html[Use local collection]. +Refer to {observability-guide}/apm-monitoring-local-collection.html[Use local collection]. [role="exclude",id="select-metrics"] === The select metrics {move-notice} -Refer to {observability-guide}/select-metrics.html[The select metrics]. +Refer to {observability-guide}/apm-select-metrics.html[The select metrics]. [role="exclude",id="monitoring-metricbeat-collection"] === Use Metricbeat collection {move-notice} -Refer to {observability-guide}/monitoring-metricbeat-collection.html[Use Metricbeat collection]. +Refer to {observability-guide}/apm-monitoring-metricbeat-collection.html[Use Metricbeat collection]. [role="exclude",id="api"] === API {move-notice} -Refer to {observability-guide}/api.html[API]. +Refer to {observability-guide}/apm-api.html[API]. [role="exclude",id="api-info"] === APM Server information API {move-notice} -Refer to {observability-guide}/api-info.html[APM Server information API]. +Refer to {observability-guide}/apm-api-info.html[APM Server information API]. [role="exclude",id="api-events"] === Elastic APM events intake API {move-notice} -Refer to {observability-guide}/api-events.html[Elastic APM events intake API]. +Refer to {observability-guide}/apm-api-events.html[Elastic APM events intake API]. [role="exclude",id="api-metadata"] === Metadata {move-notice} -Refer to {observability-guide}/api-metadata.html[Metadata]. +Refer to {observability-guide}/apm-api-metadata.html[Metadata]. [discrete] [[api-metadata-schema]] ==== Metadata scheme -Refer to {observability-guide}/api-metadata.html#api-metadata-schema[Metadata scheme]. +Refer to {observability-guide}/apm-api-metadata.html#apm-api-metadata-schema[Metadata scheme]. [role="exclude",id="api-transaction"] === Transactions {move-notice} -Refer to {observability-guide}/api-transaction.html[Transactions]. +Refer to {observability-guide}/apm-api-transaction.html[Transactions]. [role="exclude",id="api-span"] === Spans {move-notice} -Refer to {observability-guide}/api-span.html[Spans]. +Refer to {observability-guide}/apm-api-span.html[Spans]. [role="exclude",id="api-error"] === Errors {move-notice} -Refer to {observability-guide}/api-error.html[Errors]. +Refer to {observability-guide}/apm-api-error.html[Errors]. [role="exclude",id="api-metricset"] === Metrics -Refer to {observability-guide}/api-metricset.html[Metrics] +Refer to {observability-guide}/apm-api-metricset.html[Metrics] [role="exclude",id="api-event-example"] === Example request body {move-notice} -Refer to {observability-guide}/api-event-example.html[Example request body]. +Refer to {observability-guide}/apm-api-event-example.html[Example request body]. [role="exclude",id="api-config"] === Elastic APM agent configuration API {move-notice} -Refer to {observability-guide}/api-config.html[Elastic APM agent configuration]. +Refer to {observability-guide}/apm-api-config.html[Elastic APM agent configuration]. [role="exclude",id="api-otlp"] === OpenTelemetry intake API {move-notice} -Refer to {observability-guide}/api-otlp.html[OpenTelemetry intake API]. +Refer to {observability-guide}/apm-api-otlp.html[OpenTelemetry intake API]. [role="exclude",id="api-jaeger"] === Jaeger event intake {move-notice} -Refer to {observability-guide}/api-jaeger.html[Jaeger event intake]. +Refer to {observability-guide}/apm-api-jaeger.html[Jaeger event intake]. [role="exclude",id="troubleshoot-apm"] === Troubleshoot {move-notice} -Refer to {observability-guide}/troubleshoot-apm.html[Troubleshoot]. +Refer to {observability-guide}/apm-troubleshoot-apm.html[Troubleshoot]. [role="exclude",id="common-problems"] === Common problems {move-notice} -Refer to {observability-guide}/common-problems.html[Common problems]. +Refer to {observability-guide}/apm-common-problems.html[Common problems]. [role="exclude",id="server-es-down"] === What happens when APM Server or Elasticsearch is down? {move-notice} -Refer to {observability-guide}/server-es-down.html[What happens when APM Server or Ela]. +Refer to {observability-guide}/apm-server-es-down.html[What happens when APM Server or Ela]. [role="exclude",id="common-response-codes"] === APM Server response codes {move-notice} -Refer to {observability-guide}/common-response-codes.html[APM Server response codes]. +Refer to {observability-guide}/apm-common-response-codes.html[APM Server response codes]. [role="exclude",id="processing-and-performance"] === Processing and performance {move-notice} -Refer to {observability-guide}/processing-and-performance.html[Processing and performance]. +Refer to {observability-guide}/apm-processing-and-performance.html[Processing and performance]. [role="exclude",id="enable-apm-server-debugging"] === APM Server binary debugging {move-notice} -Refer to {observability-guide}/enable-apm-server-debugging.html[APM Server binary debugging]. +Refer to {observability-guide}/apm-enable-apm-server-debugging.html[APM Server binary debugging]. [role="exclude",id="upgrade"] === Upgrade {move-notice} -Refer to {observability-guide}/upgrade.html[Upgrade]. +Refer to {observability-guide}/apm-upgrade.html[Upgrade]. [role="exclude",id="agent-server-compatibility"] === APM agent compatibility {move-notice} -Refer to {observability-guide}/agent-server-compatibility.html[APM agent compatibility]. +Refer to {observability-guide}/apm-agent-server-compatibility.html[APM agent compatibility]. [role="exclude",id="apm-breaking"] === Breaking Changes @@ -1362,42 +1355,42 @@ Refer to {observability-guide}/apm-breaking.html[Breaking Changes]. {move-notice} -Refer to {observability-guide}/upgrading-to-8.x.html[Upgrade to version 8.11.3]. +Refer to {observability-guide}/apm-upgrading-to-8.x.html[Upgrade to version 8.11.3]. [role="exclude",id="upgrade-8.0-self-standalone"] === Self-installation standalone {move-notice} -Refer to {observability-guide}/upgrade-8.0-self-standalone.html[Self-installation standalone]. +Refer to {observability-guide}/apm-upgrade-8.0-self-standalone.html[Self-installation standalone]. [role="exclude",id="upgrade-8.0-self-integration"] === Self-installation APM integration {move-notice} -Refer to {observability-guide}/upgrade-8.0-self-integration.html[Self-installation APM integration]. +Refer to {observability-guide}/apm-upgrade-8.0-self-integration.html[Self-installation APM integration]. [role="exclude",id="upgrade-8.0-cloud-standalone"] === Elastic Cloud standalone {move-notice} -Refer to {observability-guide}/upgrade-8.0-cloud-standalone.html[Elastic Cloud standalone]. +Refer to {observability-guide}/apm-upgrade-8.0-cloud-standalone.html[Elastic Cloud standalone]. [role="exclude",id="upgrade-8.0-cloud-integration"] === Elastic Cloud APM integration {move-notice} -Refer to {observability-guide}/upgrade-8.0-cloud-integration.html[Elastic Cloud APM integration]. +Refer to {observability-guide}/apm-upgrade-8.0-cloud-integration.html[Elastic Cloud APM integration]. [role="exclude",id="upgrade-to-apm-integration"] === Switch to the Elastic APM integration {move-notice} -Refer to {observability-guide}/upgrade-to-apm-integration.html[Switch to the Elastic APM integration]. +Refer to {observability-guide}/apm-upgrade-to-apm-integration.html[Switch to the Elastic APM integration]. [role="exclude",id="apm-integration-upgrade-steps"] === Switch a self-installation @@ -1418,101 +1411,88 @@ Refer to {observability-guide}/apm-integration-upgrade-steps-ess.html[Switch an {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes.html[Release notes]. +Refer to {observability-guide}/apm-release-notes.html[Release notes]. [role="exclude",id="release-notes-8.11"] === APM version 8.11 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.11.html[APM version 8.11]. +Refer to {observability-guide}/apm-release-notes-8.11.html[APM version 8.11]. [role="exclude",id="release-notes-8.10"] === APM version 8.10 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.10.html[APM version 8.10]. +Refer to {observability-guide}/apm-release-notes-8.10.html[APM version 8.10]. [role="exclude",id="release-notes-8.9"] === APM version 8.9 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.9.html[APM version 8.9]. +Refer to {observability-guide}/apm-release-notes-8.9.html[APM version 8.9]. [role="exclude",id="release-notes-8.8"] === APM version 8.8 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.8.html[APM version 8.8]. +Refer to {observability-guide}/apm-release-notes-8.8.html[APM version 8.8]. [role="exclude",id="release-notes-8.7"] === APM version 8.7 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.7.html[APM version 8.7]. +Refer to {observability-guide}/apm-release-notes-8.7.html[APM version 8.7]. [role="exclude",id="release-notes-8.6"] === APM version 8.6 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.6.html[APM version 8.6]. +Refer to {observability-guide}/apm-release-notes-8.6.html[APM version 8.6]. [role="exclude",id="release-notes-8.5"] === APM version 8.5 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.5.html[APM version 8.5]. +Refer to {observability-guide}/apm-release-notes-8.5.html[APM version 8.5]. [role="exclude",id="release-notes-8.4"] === APM version 8.4 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.4.html[APM version 8.4]. +Refer to {observability-guide}/apm-release-notes-8.4.html[APM version 8.4]. [role="exclude",id="release-notes-8.3"] === APM version 8.3 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.3.html[APM version 8.3]. +Refer to {observability-guide}/apm-release-notes-8.3.html[APM version 8.3]. [role="exclude",id="release-notes-8.2"] === APM version 8.2 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.2.html[APM version 8.2]. +Refer to {observability-guide}/apm-release-notes-8.2.html[APM version 8.2]. [role="exclude",id="release-notes-8.1"] === APM version 8.1 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.1.html[APM version 8.1]. +Refer to {observability-guide}/apm-release-notes-8.1.html[APM version 8.1]. [role="exclude",id="release-notes-8.0"] === APM version 8.0 {move-notice} -Refer to **Application performance monitoring (APM)** → **Release notes** in the {observability-guide}[Observability Guide]. -// Refer to {observability-guide}/release-notes-8.0.html[APM version 8.0]. +Refer to {observability-guide}/apm-release-notes-8.0.html[APM version 8.0]. diff --git a/docs/en/observability/apm.asciidoc b/docs/en/observability/apm.asciidoc index 1048d52b21..9b8d686183 100644 --- a/docs/en/observability/apm.asciidoc +++ b/docs/en/observability/apm.asciidoc @@ -44,7 +44,7 @@ like JVM metrics in the Java Agent, and Go runtime metrics in the Go Agent. === Give Elastic APM a try Use <> to quickly spin up an APM deployment. -Want to host everything yourself instead? See <>. +Want to host everything yourself instead? See <>. include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm-server.asciidoc[] diff --git a/docs/en/observability/apm/access-api-keys.asciidoc b/docs/en/observability/apm/access-api-keys.asciidoc index dc868af316..d8d4b28a7a 100644 --- a/docs/en/observability/apm/access-api-keys.asciidoc +++ b/docs/en/observability/apm/access-api-keys.asciidoc @@ -1,5 +1,5 @@ [role="xpack"] -[[beats-api-keys]] +[[apm-beats-api-keys]] === Grant access using API keys Instead of using usernames and passwords, you can use API keys to grant @@ -15,7 +15,7 @@ NOTE: For security reasons, we recommend using a unique API key per APM Server i You can create as many API keys per user as necessary. [float] -[[beats-api-key-publish]] +[[apm-beats-api-key-publish]] ==== Create an API key for writing events In {kib}, navigate to **{stack-manage-app}** > **API keys** and click **Create API key**. @@ -57,7 +57,7 @@ In the role descriptors box, assign the appropriate privileges to the new API ke ---- NOTE: This example only provides privileges for **writing data**. -See <> for additional privileges and information. +See <> for additional privileges and information. To set an expiration date for the API key, select **Expire after time** and input the lifetime of the API key in days. @@ -74,7 +74,7 @@ output.elasticsearch: <1> Format is `id:api_key` (as shown in the {beats} dropdown) [float] -[[beats-api-key-monitor]] +[[apm-beats-api-key-monitor]] ==== Create an API key for monitoring In {kib}, navigate to **{stack-manage-app}** > **API keys** and click **Create API key**. @@ -101,7 +101,7 @@ For example: ---- NOTE: This example only provides privileges for **publishing monitoring data**. -See <> for additional privileges and information. +See <> for additional privileges and information. To set an expiration date for the API key, select **Expire after time** and input the lifetime of the API key in days. @@ -118,7 +118,7 @@ monitoring.elasticsearch: <1> Format is `id:api_key` (as shown in the {beats} dropdown) [float] -[[beats-api-key-es]] +[[apm-beats-api-key-es]] ==== Create an API key with {es} APIs You can also use {es}'s {ref}/security-api-create-api-key.html[Create API key API] to create a new API key. @@ -158,11 +158,11 @@ POST /_security/api_key } ------------------------------------------------------------ <1> Name of the API key -<2> Granted privileges, see <> +<2> Granted privileges, see <> See the {ref}/security-api-create-api-key.html[Create API key] reference for more information. -[[learn-more-api-keys]] +[[apm-learn-more-api-keys]] [float] ==== Learn more about API keys diff --git a/docs/en/observability/apm/agent-server-compatibility.asciidoc b/docs/en/observability/apm/agent-server-compatibility.asciidoc index 33f935bd06..57f09e0c7c 100644 --- a/docs/en/observability/apm/agent-server-compatibility.asciidoc +++ b/docs/en/observability/apm/agent-server-compatibility.asciidoc @@ -1,4 +1,4 @@ -[[agent-server-compatibility]] +[[apm-agent-server-compatibility]] === {apm-agent} compatibility The chart below outlines the compatibility between different versions of Elastic APM agents and extensions with the APM integration. diff --git a/docs/en/observability/apm/anonymous-auth.asciidoc b/docs/en/observability/apm/anonymous-auth.asciidoc index 8fa2df50cd..59fb8a9007 100644 --- a/docs/en/observability/apm/anonymous-auth.asciidoc +++ b/docs/en/observability/apm/anonymous-auth.asciidoc @@ -1,4 +1,4 @@ -[[anonymous-auth]] +[[apm-anonymous-auth]] === Anonymous authentication Elastic APM agents can send unauthenticated (anonymous) events to the APM Server. @@ -8,7 +8,7 @@ The APM Server's default response to these these requests depends on its configu [options="header"] |==== |Configuration |Default -|An <> or <> is configured | Anonymous requests are rejected and an authentication error is returned. +|An <> or <> is configured | Anonymous requests are rejected and an authentication error is returned. |No API key or secret token is configured | Anonymous requests are accepted by the APM Server. |==== @@ -21,19 +21,19 @@ To solve this problem, you can enable anonymous authentication in the APM Server ingestion of unauthenticated client-side APM data while still requiring authentication for server-side services. [float] -[[anonymous-auth-config]] +[[apm-anonymous-auth-config]] === Configuring anonymous auth for client-side services [NOTE] ==== -You can only enable and configure anonymous authentication if an <> or -<> is configured. If neither are configured, these settings will be ignored. +You can only enable and configure anonymous authentication if an <> or +<> is configured. If neither are configured, these settings will be ignored. ==== include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/anonymous-auth-widget.asciidoc[] [float] -[[derive-client-ip]] +[[apm-derive-client-ip]] === Deriving an incoming request's `client.ip` address The remote IP address of an incoming request might be different @@ -48,7 +48,7 @@ The supported headers are parsed in the following order: If none of these headers are present, the remote address for the incoming request is used. [float] -[[derive-client-ip-concerns]] +[[apm-derive-client-ip-concerns]] ==== Using a reverse proxy or load balancer HTTP headers are easily modified; diff --git a/docs/en/observability/apm/api-config.asciidoc b/docs/en/observability/apm/api-config.asciidoc index ef78db2272..370f7edbc1 100644 --- a/docs/en/observability/apm/api-config.asciidoc +++ b/docs/en/observability/apm/api-config.asciidoc @@ -1,11 +1,11 @@ -[[api-config]] +[[apm-api-config]] === Elastic APM agent configuration API APM Server exposes API endpoints that allow Elastic APM agents to query the APM Server for configuration changes. More information on this feature is available in {kibana-ref}/agent-configuration.html[{apm-agent} configuration in {kib}]. [float] -[[api-config-endpoint]] +[[apm-api-config-endpoint]] === Agent configuration endpoints [options="header"] @@ -16,10 +16,10 @@ More information on this feature is available in {kibana-ref}/agent-configuratio |==== The Agent configuration endpoints accepts both `HTTP GET` and `HTTP POST` requests. -If an <> or <> is configured, requests to this endpoint must be authenticated. +If an <> or <> is configured, requests to this endpoint must be authenticated. [float] -[[api-config-api-get]] +[[apm-api-config-api-get]] ==== HTTP GET `service.name` is a required query string parameter. @@ -30,7 +30,7 @@ http(s)://{hostname}:{port}/config/v1/agents?service.name=SERVICE_NAME ------------------------------------------------------------ [float] -[[api-config-api-post]] +[[apm-api-config-api-post]] ==== HTTP POST Encode parameters as a JSON object in the body. @@ -49,7 +49,7 @@ http(s)://{hostname}:{port}/config/v1/agents ------------------------------------------------------------ [float] -[[api-config-api-response]] +[[apm-api-config-api-response]] ==== Responses * Successful - `200` @@ -57,7 +57,7 @@ http(s)://{hostname}:{port}/config/v1/agents * APM Server is starting up or {es} is unreachable - `503` [float] -[[api-config-api-example]] +[[apm-api-config-api-example]] ==== Example request Example Agent configuration `GET` request including the service name "test-service": @@ -78,7 +78,7 @@ curl -X POST http://127.0.0.1:8200/config/v1/agents \ --------------------------------------------------------------------------- [float] -[[api-config-api-ex-response]] +[[apm-api-config-api-ex-response]] ==== Example response ["source","sh",subs="attributes"] diff --git a/docs/en/observability/apm/api-error.asciidoc b/docs/en/observability/apm/api-error.asciidoc index 85c0de593c..3e49ac2f2e 100644 --- a/docs/en/observability/apm/api-error.asciidoc +++ b/docs/en/observability/apm/api-error.asciidoc @@ -1,10 +1,10 @@ -[[api-error]] +[[apm-api-error]] ==== Errors An error or a logged error message captured by an agent occurring in a monitored service. [float] -[[api-error-schema]] +[[apm-api-error-schema]] ==== Error Schema APM Server uses JSON Schema to validate requests. The specification for errors is defined on diff --git a/docs/en/observability/apm/api-event-example.asciidoc b/docs/en/observability/apm/api-event-example.asciidoc index acdf09c148..7dea62cf5a 100644 --- a/docs/en/observability/apm/api-event-example.asciidoc +++ b/docs/en/observability/apm/api-event-example.asciidoc @@ -1,4 +1,4 @@ -[[api-event-example]] +[[apm-api-event-example]] ==== Example request body A request body example containing one event for all currently supported event types. diff --git a/docs/en/observability/apm/api-events.asciidoc b/docs/en/observability/apm/api-events.asciidoc index e83604972f..1eb1fa3126 100644 --- a/docs/en/observability/apm/api-events.asciidoc +++ b/docs/en/observability/apm/api-events.asciidoc @@ -1,4 +1,4 @@ -[[api-events]] +[[apm-api-events]] === Elastic APM events intake API NOTE: Most users do not need to interact directly with the events intake API. @@ -20,9 +20,9 @@ as soon as they are recorded in the agent. This makes it simple for agents to serialize each event to a stream of newline delimited JSON. The APM Server also treats the HTTP body as a compressed stream and thus reads and handles each event independently. -See the <> to learn more about the different types of events. +See the <> to learn more about the different types of events. -[[api-events-endpoint]] +[[apm-api-events-endpoint]] [float] === Endpoints @@ -36,7 +36,7 @@ APM Server exposes the following endpoints for Elastic APM agent data intake: |RUM event intake (v3) |`/intake/v3/rum/events` |==== -[[api-events-example]] +[[apm-api-events-example]] [float] === Request @@ -70,7 +70,7 @@ For <> send an `HTTP POST` request to the APM Server `intake/v3/rum http(s)://{hostname}:{port}/intake/v3/rum/events ------------------------------------------------------------ -[[api-events-response]] +[[apm-api-events-response]] [float] === Response @@ -78,7 +78,7 @@ On success, the server will respond with a 202 Accepted status code and no body. Keep in mind that events can succeed and fail independently of each other. Only if all events succeed does the server respond with a 202. -[[api-events-errors]] +[[apm-api-events-errors]] [float] === Errors @@ -132,18 +132,18 @@ An example error response might look something like this: If you're developing an agent, these errors can be useful for debugging. -[[api-events-schema-definition]] +[[apm-api-events-schema-definition]] [float] === Event API Schemas The APM Server uses a collection of JSON Schemas for validating requests to the intake API: -* <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +* <> include::./api-metadata.asciidoc[] include::./api-transaction.asciidoc[] diff --git a/docs/en/observability/apm/api-info.asciidoc b/docs/en/observability/apm/api-info.asciidoc index 7651d338e5..b1f315ad92 100644 --- a/docs/en/observability/apm/api-info.asciidoc +++ b/docs/en/observability/apm/api-info.asciidoc @@ -1,11 +1,11 @@ -[[api-info]] +[[apm-api-info]] === APM Server information API The APM Server exposes an API endpoint to query general server information. This lightweight endpoint is useful as a server up/down health check. [float] -[[api-info-endpoint]] +[[apm-api-info-endpoint]] === Server Information endpoint This is the server information endpoint: @@ -19,15 +19,15 @@ Sending an `HTTP GET` or `HTTP POST` request to the server information endpoint will return an HTTP 200, indicating that the server is up. To configure authenticated access to the APM server, -the instructions at <> or <>, +the instructions at <> or <>, must be followed to configure the correct permissions for APM access. -If an <> or a <> is passed along with +If an <> or a <> is passed along with the `HTTP GET` or `HTTP POST` request, in addition to an HTTP 200, the response payload will include some information about the APM server. [float] -[[api-info-example-get-without-credentials]] +[[apm-api-info-example-get-without-credentials]] ==== Example: GET, without credentials Example APM Server status request with GET, without credentials: @@ -54,10 +54,10 @@ curl --verbose -X GET http://127.0.0.1:8200 --------------------------------------------------------------------------- [float] -[[api-info-example-post-with-secret-token]] +[[apm-api-info-example-post-with-secret-token]] ==== Example: POST, with secret token -Example APM Server information request with POST, with a <>: +Example APM Server information request with POST, with a <>: ["source","sh",subs="attributes"] --------------------------------------------------------------------------- diff --git a/docs/en/observability/apm/api-jaeger.asciidoc b/docs/en/observability/apm/api-jaeger.asciidoc index af4a8add47..9750316a9b 100644 --- a/docs/en/observability/apm/api-jaeger.asciidoc +++ b/docs/en/observability/apm/api-jaeger.asciidoc @@ -1,8 +1,8 @@ -[[api-jaeger]] +[[apm-api-jaeger]] === Jaeger event intake Elastic APM natively supports Jaeger, an open-source, distributed tracing system. -<>. +<>. **Jaeger/gRPC paths** diff --git a/docs/en/observability/apm/api-keys.asciidoc b/docs/en/observability/apm/api-keys.asciidoc index 7afe9804cf..03e63933bb 100644 --- a/docs/en/observability/apm/api-keys.asciidoc +++ b/docs/en/observability/apm/api-keys.asciidoc @@ -1,8 +1,8 @@ -[[api-key]] +[[apm-api-key]] === API keys IMPORTANT: API keys are sent as plain-text, -so they only provide security when used in combination with <>. +so they only provide security when used in combination with <>. When enabled, API keys are used to authorize requests to the APM Server. API keys are not applicable for APM agents running on clients, like the RUM agent, @@ -15,20 +15,20 @@ You can assign one or more unique privileges to each API key: * *Ingest* (`event:write`): Required for ingesting agent events. To secure the communication between APM Agents and the APM Server with API keys, -make sure <> is enabled, then complete these steps: +make sure <> is enabled, then complete these steps: -. <> -. <> -. <> -. <> +. <> +. <> +. <> +. <> -[[enable-api-key]] +[[apm-enable-api-key]] [float] === Enable API keys include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/api-key-widget.asciidoc[] -[[create-api-key-user]] +[[apm-create-api-key-user]] [float] === Create an API key user in {kib} @@ -70,7 +70,7 @@ POST /_security/role/apm_agent_key_role Assign the newly created `apm_agent_key_role` role to any user that wishes to create {apm-agent} API keys. -[[create-an-api-key]] +[[apm-create-an-api-key]] [float] === Create an API key in the {apm-app} @@ -91,7 +91,7 @@ You will need this for the next step, and you will not be able to view it again. [role="screenshot"] image::images/apm-ui-api-key.png[{apm-app} API key] -[[agent-api-key]] +[[apm-agent-api-key]] [float] === Set the API key in your APM agents @@ -109,16 +109,16 @@ See the relevant agent documentation for additional information: * *Python agent*: {apm-py-ref}/configuration.html#config-api-key[`api_key`] * *Ruby agent*: {apm-ruby-ref}/configuration.html#config-api-key[`api_key`] -[[configure-api-key-alternative]] +[[apm-configure-api-key-alternative]] [float] === Alternate API key creation methods API keys can also be created and validated outside of {kib}: -* <> -* <> +* <> +* <> -[[create-api-key-workflow-apm-server]] +[[apm-create-api-key-workflow-apm-server]] [float] ==== APM Server API key workflow @@ -129,13 +129,13 @@ deprecated::[8.6.0, Users should create API Keys through {kib} or the {es} REST APM Server provides a command line interface for creating, retrieving, invalidating, and verifying API keys. Keys created using this method can only be used for communication with APM Server. -[[create-api-key-subcommands]] +[[apm-create-api-key-subcommands]] [float] ===== `apikey` subcommands include::{observability-docs-root}/docs/en/observability/apm/command-reference.asciidoc[tag=apikey-subcommands] -[[create-api-key-privileges]] +[[apm-create-api-key-privileges]] [float] ===== Privileges @@ -145,7 +145,7 @@ If privileges are not specified at creation time, the created key will have all * `--ingest` grants the `event:write` privilege * `--sourcemap` grants the `sourcemap:write` privilege -[[create-api-key-workflow]] +[[apm-create-api-key-workflow]] [float] ===== Create an API key @@ -206,9 +206,9 @@ Invalidated keys ... qT4tz28B1g59zC3uAXfW Error count ........ 0 -------------------------------------------------- -A full list of `apikey` subcommands and flags is available in the <>. +A full list of `apikey` subcommands and flags is available in the <>. -[[create-api-key-workflow-es]] +[[apm-create-api-key-workflow-es]] [float] ==== {es} API key workflow diff --git a/docs/en/observability/apm/api-metadata.asciidoc b/docs/en/observability/apm/api-metadata.asciidoc index 3e7eba02ce..1d8a29e5c1 100644 --- a/docs/en/observability/apm/api-metadata.asciidoc +++ b/docs/en/observability/apm/api-metadata.asciidoc @@ -1,4 +1,4 @@ -[[api-metadata]] +[[apm-api-metadata]] ==== Metadata Every new connection to the APM Server starts with a `metadata` stanza. @@ -9,10 +9,10 @@ the APM Server hangs on to this information and applies it to other objects in t TIP: Metadata is stored under `context` when viewing documents in {es}. -* <> -* <> +* <> +* <> -[[api-kubernetes-data]] +[[apm-api-kubernetes-data]] [float] ==== Kubernetes data @@ -53,7 +53,7 @@ The table below maps these environment variables to the APM metadata event field | `KUBERNETES_POD_UID` |system.kubernetes.pod.uid |===== -[[api-metadata-schema]] +[[apm-api-metadata-schema]] [float] ==== Metadata Schema diff --git a/docs/en/observability/apm/api-metricset.asciidoc b/docs/en/observability/apm/api-metricset.asciidoc index c316c3388e..8e9b701f67 100644 --- a/docs/en/observability/apm/api-metricset.asciidoc +++ b/docs/en/observability/apm/api-metricset.asciidoc @@ -1,9 +1,9 @@ -[[api-metricset]] +[[apm-api-metricset]] ==== Metrics Metrics contain application metric data captured by an {apm-agent}. -[[api-metricset-schema]] +[[apm-api-metricset-schema]] [float] ==== Metric Schema diff --git a/docs/en/observability/apm/api-otlp.asciidoc b/docs/en/observability/apm/api-otlp.asciidoc index 99f583c466..9e75dc6fc6 100644 --- a/docs/en/observability/apm/api-otlp.asciidoc +++ b/docs/en/observability/apm/api-otlp.asciidoc @@ -1,4 +1,4 @@ -[[api-otlp]] +[[apm-api-otlp]] === OpenTelemetry intake API APM Server supports receiving traces, metrics, and logs over the @@ -33,5 +33,5 @@ APM Server supports two OTLP communication protocols on the same port: |==== TIP: See our OpenTelemetry documentation to learn how to send data to the APM Server from an -<> or -<>. +<> or +<>. diff --git a/docs/en/observability/apm/api-span.asciidoc b/docs/en/observability/apm/api-span.asciidoc index 41f209416e..6805e1fb3d 100644 --- a/docs/en/observability/apm/api-span.asciidoc +++ b/docs/en/observability/apm/api-span.asciidoc @@ -1,9 +1,9 @@ -[[api-span]] +[[apm-api-span]] ==== Spans Spans are events captured by an agent occurring in a monitored service. -[[api-span-schema]] +[[apm-api-span-schema]] [float] ==== Span Schema diff --git a/docs/en/observability/apm/api-transaction.asciidoc b/docs/en/observability/apm/api-transaction.asciidoc index d9b3509aaf..ff78ee785f 100644 --- a/docs/en/observability/apm/api-transaction.asciidoc +++ b/docs/en/observability/apm/api-transaction.asciidoc @@ -1,9 +1,9 @@ -[[api-transaction]] +[[apm-api-transaction]] ==== Transactions Transactions are events corresponding to an incoming request or similar task occurring in a monitored service. -[[api-transaction-schema]] +[[apm-api-transaction-schema]] [float] ==== Transaction Schema diff --git a/docs/en/observability/apm/api.asciidoc b/docs/en/observability/apm/api.asciidoc index 61e36d21a7..ebf93adbaf 100644 --- a/docs/en/observability/apm/api.asciidoc +++ b/docs/en/observability/apm/api.asciidoc @@ -1,13 +1,13 @@ -[[api]] +[[apm-api]] == API The APM Server exposes endpoints for: -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> include::./api-info.asciidoc[] include::./api-events.asciidoc[] diff --git a/docs/en/observability/apm/apm-data-security.asciidoc b/docs/en/observability/apm/apm-data-security.asciidoc index 071bc69e2b..515da174dd 100644 --- a/docs/en/observability/apm/apm-data-security.asciidoc +++ b/docs/en/observability/apm/apm-data-security.asciidoc @@ -9,15 +9,15 @@ or form field data. Depending on the type of data, we offer several different ways to filter, manipulate, or obfuscate sensitive information during or before ingestion: -* <> -* <> +* <> +* <> -In addition to utilizing filters, you should regularly review the <> table to ensure +In addition to utilizing filters, you should regularly review the <> table to ensure sensitive data is not being ingested. If it is, it's possible to remove or redact it. -See <> for more information. +See <> for more information. [float] -[[built-in-data-filters]] +[[apm-built-in-data-filters]] ==== Built-in data filters // tag::data-filters[] @@ -26,34 +26,34 @@ Built-in data filters allow you to filter or turn off ingestion of the following [options="header"] |==== |Data type |Common sensitive data -|<> |Passwords, credit card numbers, authorization, etc. -|<> |Passwords, credit card numbers, etc. -|<> |Client IP address and user agent. -|<> |URLs visited, click events, user browser errors, resources used, etc. -|<> |Sensitive user or business information +|<> |Passwords, credit card numbers, authorization, etc. +|<> |Passwords, credit card numbers, etc. +|<> |Client IP address and user agent. +|<> |URLs visited, click events, user browser errors, resources used, etc. +|<> |Sensitive user or business information |==== // end::data-filters[] [float] -[[custom-data-filters]] +[[apm-custom-data-filters]] ==== Custom filters // tag::custom-filters[] Custom filters allow you to filter or redact other types of APM data on ingestion: |==== -|<> | Applied at ingestion time. +|<> | Applied at ingestion time. All agents and fields are supported. Data leaves the instrumented service. There are no performance overhead implications on the instrumented service. -|<> | Not supported by all agents. +|<> | Not supported by all agents. Data is sanitized before leaving the instrumented service. Potential overhead implications on the instrumented service |==== // end::custom-filters[] [float] -[[sensitive-fields]] +[[apm-sensitive-fields]] ==== Sensitive fields You should review the following fields regularly to ensure sensitive data is not being captured: @@ -61,28 +61,28 @@ You should review the following fields regularly to ensure sensitive data is not [options="header"] |==== | Field | Description | Remedy -| `client.ip` | The client IP address, as forwarded by proxy. | <> -| `http.request.body.original` | The body of the monitored HTTP request. | <> -| `http.request.headers` | The canonical headers of the monitored HTTP request. | <> -| `http.request.socket.remote_address` | The address of the last proxy or end-user (if no proxy). | <> -| `http.response.headers` | The canonical headers of the monitored HTTP response. | <> -| `process.args` | Process arguments. | <> -| `span.db.statement` | Database statement. | <> -| `stacktrace.vars` | A flat mapping of local variables captured in the stack frame | <> -| `url.query` | The query string of the request, e.g. `?pass=hunter2`. | <> -| `user.*` | Logged-in user information. | <> -| `user_agent.*` | Device and version making the network request. | <> +| `client.ip` | The client IP address, as forwarded by proxy. | <> +| `http.request.body.original` | The body of the monitored HTTP request. | <> +| `http.request.headers` | The canonical headers of the monitored HTTP request. | <> +| `http.request.socket.remote_address` | The address of the last proxy or end-user (if no proxy). | <> +| `http.response.headers` | The canonical headers of the monitored HTTP response. | <> +| `process.args` | Process arguments. | <> +| `span.db.statement` | Database statement. | <> +| `stacktrace.vars` | A flat mapping of local variables captured in the stack frame | <> +| `url.query` | The query string of the request, e.g. `?pass=hunter2`. | <> +| `user.*` | Logged-in user information. | <> +| `user_agent.*` | Device and version making the network request. | <> |==== // **************************************************************** -[[filtering]] +[[apm-filtering]] ==== Built-in data filters include::./apm-data-security.asciidoc[tag=data-filters] [discrete] -[[filters-http-header]] +[[apm-filters-http-header]] ==== HTTP headers By default, APM agents capture HTTP request and response headers (including cookies). @@ -117,7 +117,7 @@ This setting also supports {kibana-ref}/agent-configuration.html[Central configu * Ruby: {apm-ruby-ref-v}/configuration.html#config-capture-headers[`capture_headers`] [discrete] -[[filters-http-body]] +[[apm-filters-http-body]] ==== HTTP bodies By default, the body of HTTP requests is not recorded. @@ -136,7 +136,7 @@ which means the list of sanitized fields can be updated without needing to redep * Ruby: {apm-ruby-ref-v}/configuration.html#config-capture-body[`capture_body`] [discrete] -[[filters-personal-data]] +[[apm-filters-personal-data]] ==== Personal data By default, the APM Server captures some personal data associated with trace events: @@ -144,14 +144,14 @@ By default, the APM Server captures some personal data associated with trace eve * `client.ip`: The client's IP address. Typically derived from the HTTP headers of incoming requests. `client.ip` is also used in conjunction with the {ref}/geoip-processor.html[`geoip` processor] to assign geographical information to trace events. To learn more about how `client.ip` is derived, -see <>. +see <>. * `user_agent`: User agent data, including the client operating system, device name, vendor, and version. The capturing of this data can be turned off by setting **Capture personal data** to `false`. [discrete] -[[filters-real-user-data]] +[[apm-filters-real-user-data]] ==== Real user monitoring data Protecting user data is important. @@ -170,7 +170,7 @@ Disabled instrumentations produce no spans or transactions. |==== [discrete] -[[filters-database-statements]] +[[apm-filters-database-statements]] ==== Database statements For SQL databases, APM agents do not capture the parameters of prepared statements. @@ -186,7 +186,7 @@ or to remove the statement entirely, you can set up an ingest node pipeline. [discrete] -[[filters-agent-specific]] +[[apm-filters-agent-specific]] ==== Agent-specific options Certain agents offer additional filtering and obfuscating options: @@ -201,13 +201,13 @@ disabled by default with {apm-java-ref-v}/config-reporter.html#config-include-pr // **************************************************************** -[[custom-filter]] +[[apm-custom-filter]] ==== Custom filters include::./apm-data-security.asciidoc[tag=custom-filters] [discrete] -[[filters-ingest-pipeline]] +[[apm-filters-ingest-pipeline]] ==== Create an ingest pipeline filter Ingest node pipelines specify a series of processors that transform data in a specific way. @@ -215,10 +215,10 @@ Transformation happens prior to indexing--inflicting no performance overhead on Pipelines are a flexible and easy way to filter or obfuscate Elastic APM data. [discrete] -[[filters-ingest-pipeline-tutorial]] +[[apm-filters-ingest-pipeline-tutorial]] ===== Tutorial: redact sensitive information -Say you decide to <> +Say you decide to <> but quickly notice that sensitive information is being collected in the `http.request.body.original` field: @@ -485,10 +485,10 @@ Use the same naming convention explained previously to ensure your new pipeline That's it! Passwords will now be redacted from your APM HTTP body data. -To learn more about ingest pipelines, see <>. +To learn more about ingest pipelines, see <>. [discrete] -[[filters-in-agent]] +[[apm-filters-in-agent]] ==== APM agent filters Some APM agents offer a way to manipulate or drop APM events _before_ they are sent to the APM Server. @@ -504,22 +504,22 @@ Please see the relevant agent's documentation for more information and examples: // **************************************************************** -[[data-security-delete]] +[[apm-data-security-delete]] ==== Delete sensitive data If you accidentally ingest sensitive data, follow these steps to remove or redact the offending data: . Stop collecting the sensitive data. -Use the *remedy* column of the <> table to determine how to stop collecting +Use the *remedy* column of the <> table to determine how to stop collecting the offending data. . Delete or redact the ingested data. With data collection fixed, you can now delete or redact the offending data: + -* <> -* <> +* <> +* <> [float] -[[redact-field-data]] +[[apm-redact-field-data]] ===== Redact specific fields To redact sensitive data in a specific field, use the {ref}/docs-update-by-query.html[update by query API]. @@ -570,7 +570,7 @@ POST /logs-apm.error-default/_update_by_query See {ref}/docs-update-by-query.html[update by query API] for more information and examples. [float] -[[delete-doc-data]] +[[apm-delete-doc-data]] ===== Delete {es} documents WARNING: This will permanently delete your data. diff --git a/docs/en/observability/apm/apm-distributed-tracing.asciidoc b/docs/en/observability/apm/apm-distributed-tracing.asciidoc index 7ad66f9557..71111252c1 100644 --- a/docs/en/observability/apm/apm-distributed-tracing.asciidoc +++ b/docs/en/observability/apm/apm-distributed-tracing.asciidoc @@ -1,13 +1,13 @@ [[apm-distributed-tracing]] === Distributed tracing -A `trace` is a group of <> and <> with a common root. +A `trace` is a group of <> and <> with a common root. Each `trace` tracks the entirety of a single request. When a `trace` travels through multiple services, as is common in a microservice architecture, it is known as a distributed trace. [float] -[[why-distributed-tracing]] +[[apm-why-distributed-tracing]] === Why is distributed tracing important? Distributed tracing enables you to analyze performance throughout your microservice architecture @@ -22,7 +22,7 @@ service borders. For supported technologies, distributed tracing works out-of-the-box, with no additional configuration required. [float] -[[how-distributed-tracing]] +[[apm-how-distributed-tracing]] === How distributed tracing works Distributed tracing works by injecting a custom `traceparent` HTTP header into outgoing requests. @@ -36,7 +36,7 @@ If it exists, the service ensures the current action is added as a child of the and continues to propagate the trace. [float] -[[trace-propagation]] +[[apm-trace-propagation]] ==== Trace propagation examples In this example, Elastic's Ruby agent communicates with Elastic's Java agent. @@ -59,7 +59,7 @@ image::./images/dt-trace-ex3.png[How traceparent propagation works] [float] -[[w3c-tracecontext-spec]] +[[apm-w3c-tracecontext-spec]] ==== W3C Trace Context specification All Elastic agents now support the official W3C Trace Context specification and `traceparent` header. @@ -82,7 +82,7 @@ NOTE: Older Elastic agents use a unique `elastic-apm-traceparent` header. For backward-compatibility purposes, new versions of Elastic agents still support this header. [float] -[[visualize-distributed-tracing]] +[[apm-visualize-distributed-tracing]] === Visualize distributed tracing The {apm-app}'s timeline visualization provides a visual deep-dive into each of your application's traces: @@ -91,7 +91,7 @@ The {apm-app}'s timeline visualization provides a visual deep-dive into each of image::./images/apm-distributed-tracing.png[Distributed tracing in the APM UI] [float] -[[manual-distributed-tracing]] +[[apm-manual-distributed-tracing]] === Manual distributed tracing Elastic agents automatically propagate distributed tracing context for supported technologies. @@ -100,7 +100,7 @@ you can manually propagate distributed tracing context from a sending service to with each agent's API. [float] -[[distributed-tracing-outgoing]] +[[apm-distributed-tracing-outgoing]] ==== Add the `traceparent` header to outgoing requests Sending services must add the `traceparent` header to outgoing requests. @@ -110,7 +110,7 @@ include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/distrib -- [float] -[[distributed-tracing-incoming]] +[[apm-distributed-tracing-incoming]] ==== Parse the `traceparent` header on incoming requests Receiving services must parse the incoming `traceparent` header, @@ -121,7 +121,7 @@ include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/distrib -- [float] -[[distributed-tracing-rum]] +[[apm-distributed-tracing-rum]] === Distributed tracing with RUM Some additional setup may be required to correlate requests correctly with the Real User Monitoring (RUM) agent. diff --git a/docs/en/observability/apm/apm-response-codes.asciidoc b/docs/en/observability/apm/apm-response-codes.asciidoc index fdbbfc31e0..d6d1dc1f01 100644 --- a/docs/en/observability/apm/apm-response-codes.asciidoc +++ b/docs/en/observability/apm/apm-response-codes.asciidoc @@ -1,42 +1,42 @@ -[[common-response-codes]] +[[apm-common-response-codes]] === APM Server response codes -[[bad-request]] +[[apm-bad-request]] [float] ==== HTTP 400: Data decoding error / Data validation error The most likely cause for this error is using incompatible versions of {apm-agent} and APM Server. -See the <> to verify compatibility. +See the <> to verify compatibility. -[[event-too-large]] +[[apm-event-too-large]] [float] ==== HTTP 400: Event too large -APM agents communicate with the APM server by sending events in an HTTP request. Each event is sent as its own line in the HTTP request body. If events are too large, you should consider increasing the <> +APM agents communicate with the APM server by sending events in an HTTP request. Each event is sent as its own line in the HTTP request body. If events are too large, you should consider increasing the <> setting in the APM integration, and adjusting relevant settings in the agent. -[[unauthorized]] +[[apm-unauthorized]] [float] ==== HTTP 401: Invalid token -Either the <> in the request header doesn't match the secret token configured in the APM integration, -or the <> is invalid. +Either the <> in the request header doesn't match the secret token configured in the APM integration, +or the <> is invalid. -[[forbidden]] +[[apm-forbidden]] [float] ==== HTTP 403: Forbidden request Either you are sending requests to a <> endpoint without RUM enabled, or a request is coming from an origin not specified in the APM integration settings. -See the <> setting for more information. +See the <> setting for more information. -[[request-timed-out]] +[[apm-request-timed-out]] [float] ==== HTTP 503: Request timed out waiting to be processed This happens when APM Server exceeds the maximum number of requests that it can process concurrently. To alleviate this problem, you can try to: reduce the sample rate and/or reduce the collected stack trace information. -See <> for more information. +See <> for more information. Another option is to increase processing power. This can be done by either migrating your {agent} to a more powerful machine diff --git a/docs/en/observability/apm/apm-server-down.asciidoc b/docs/en/observability/apm/apm-server-down.asciidoc index f92c72ac0a..f9e3d00378 100644 --- a/docs/en/observability/apm/apm-server-down.asciidoc +++ b/docs/en/observability/apm/apm-server-down.asciidoc @@ -1,4 +1,4 @@ -[[server-es-down]] +[[apm-server-es-down]] === What happens when APM Server or {es} is down? *If {es} is down* diff --git a/docs/en/observability/apm/aws-lambda-extension.asciidoc b/docs/en/observability/apm/aws-lambda-extension.asciidoc index b3835d4f02..b2efe4673c 100644 --- a/docs/en/observability/apm/aws-lambda-extension.asciidoc +++ b/docs/en/observability/apm/aws-lambda-extension.asciidoc @@ -1,4 +1,4 @@ -[[monitoring-aws-lambda]] +[[apm-monitoring-aws-lambda]] = Monitoring AWS Lambda Functions Elastic APM lets you monitor your AWS Lambda functions. diff --git a/docs/en/observability/apm/command-reference.asciidoc b/docs/en/observability/apm/command-reference.asciidoc index acd3870d70..45e65e570d 100644 --- a/docs/en/observability/apm/command-reference.asciidoc +++ b/docs/en/observability/apm/command-reference.asciidoc @@ -1,4 +1,4 @@ -:global-flags: Also see <>. +:global-flags: Also see <>. :deploy-command-short-desc: Deploys the specified function to your serverless environment @@ -13,7 +13,7 @@ ifdef::serverless[] endif::serverless[] :help-command-short-desc: Shows help for any command -:keystore-command-short-desc: Manages the <> +:keystore-command-short-desc: Manages the <> :modules-command-short-desc: Manages configured modules :package-command-short-desc: Packages the configuration and executable into a zip file :remove-command-short-desc: Removes the specified function from your serverless environment @@ -25,7 +25,7 @@ endif::serverless[] // end::attributes[] -[[command-line-options]] +[[apm-command-line-options]] === APM Server command reference ++++ @@ -37,7 +37,7 @@ IMPORTANT: These commands only apply to the APM Server binary installation metho APM Server provides a command-line interface for starting APM Server and performing common tasks, like testing configuration files. -The command-line also supports <> +The command-line also supports <> for controlling global behaviors. [TIP] @@ -57,31 +57,31 @@ more information, see https://www.elastic.co/subscriptions and [options="header"] |======================= |Commands | -|<> |{apikey-command-short-desc}. -|<> |{export-command-short-desc}. -|<> |{help-command-short-desc}. +|<> |{apikey-command-short-desc}. +|<> |{export-command-short-desc}. +|<> |{help-command-short-desc}. ifndef::serverless[] -|<> |{keystore-command-short-desc}. +|<> |{keystore-command-short-desc}. endif::[] ifndef::serverless[] -|<> |{run-command-short-desc}. +|<> |{run-command-short-desc}. endif::[] -|<> |{test-command-short-desc}. -|<> |{version-command-short-desc}. +|<> |{test-command-short-desc}. +|<> |{version-command-short-desc}. |======================= -Also see <>. +Also see <>. [float] -[[apikey-command]] +[[apm-apikey-command]] ==== `apikey` command experimental::[] -deprecated::[8.6.0, Users should create API Keys through {kib} or the {es} REST API. See <>.] +deprecated::[8.6.0, Users should create API Keys through {kib} or the {es} REST API. See <>.] Communication between APM agents and APM Server now supports sending an -<>. +<>. APM Server provides an `apikey` command that can create, verify, invalidate, and show information about API Keys for agent/server communication. Most operations require the `manage_own_api_key` cluster privilege, @@ -102,7 +102,7 @@ Create an API Key with the specified privilege(s). No required flags. + The user requesting to create an API Key needs to have APM privileges used by the APM Server. A superuser, by default, has these privileges. For other users, -you can create them. See <> for required privileges. +you can create them. See <> for required privileges. *`info`*:: Query API Key(s). `--id` or `--name` required. @@ -168,10 +168,10 @@ apm-server apikey info --name example-001 --valid-only apm-server apikey invalidate --name example-001 ----- -For more information, see <>. +For more information, see <>. [float] -[[export-command]] +[[apm-export-command]] ==== `export` command ifndef::serverless[] @@ -199,35 +199,35 @@ apm-server export SUBCOMMAND [FLAGS] Exports the current configuration to stdout. If you use the `-c` flag, this command exports the configuration that's defined in the specified file. -[[template-subcommand]]*`template`*:: +[[apm-template-subcommand]]*`template`*:: Exports the index template to stdout. You can specify the `--es.version` and `--index` flags to further define what gets exported. Furthermore you can export the template to a file instead of `stdout` by defining a directory via `--dir`. -[[ilm-policy-subcommand]] +[[apm-ilm-policy-subcommand]] *`ilm-policy`*:: Exports the {ilm} policy to stdout. You can specify the `--es.version` and a `--dir` to which the policy should be exported as a file rather than exporting to `stdout`. ifdef::serverless[] -[[function-subcommand]]*`function` FUNCTION_NAME*:: +[[apm-function-subcommand]]*`function` FUNCTION_NAME*:: Exports an {cloudformation-ref} template to stdout. endif::serverless[] *FLAGS* *`--es.version VERSION`*:: -When used with <>, exports an index +When used with <>, exports an index template that is compatible with the specified version. -When used with <>, exports the {ilm-init} policy +When used with <>, exports the {ilm-init} policy if the specified ES version is enabled for {ilm-init}. *`-h, --help`*:: Shows help for the `export` command. *`--index BASE_NAME`*:: -When used with <>, sets the base name to use for +When used with <>, sets the base name to use for the index template. If this flag is not specified, the default base name is +apm-server+. @@ -257,7 +257,7 @@ apm-server export function cloudwatch endif::serverless[] [float] -[[help-command]] +[[apm-help-command]] ==== `help` command {help-command-short-desc}. @@ -290,7 +290,7 @@ apm-server help export ifndef::serverless[] [float] -[[keystore-command]] +[[apm-keystore-command]] ==== `keystore` command {keystore-command-short-desc}. @@ -343,13 +343,13 @@ apm-server keystore remove ES_PWD apm-server keystore list ----- -See <> for more examples. +See <> for more examples. endif::[] ifndef::serverless[] [float] -[[run-command]] +[[apm-run-command]] ==== `run` command {run-command-short-desc}. @@ -408,7 +408,7 @@ apm-server -e endif::[] [float] -[[test-command]] +[[apm-test-command]] ==== `test` command {test-command-short-desc}. @@ -443,7 +443,7 @@ apm-server test config ----- [float] -[[version-command]] +[[apm-version-command]] ==== `version` command {version-command-short-desc}. @@ -471,7 +471,7 @@ apm-server version [float] -[[global-flags]] +[[apm-global-flags]] === Global flags These global flags are available whenever you run APM Server. @@ -511,22 +511,22 @@ If `systemd` or `container` is specified, APM Server will log to stdout and stde by default. *`--path.config`*:: -Sets the path for configuration files. See the <> section for +Sets the path for configuration files. See the <> section for details. *`--path.data`*:: -Sets the path for data files. See the <> section for details. +Sets the path for data files. See the <> section for details. *`--path.home`*:: -Sets the path for miscellaneous files. See the <> section for +Sets the path for miscellaneous files. See the <> section for details. *`--path.logs`*:: -Sets the path for log files. See the <> section for details. +Sets the path for log files. See the <> section for details. *`--strict.perms`*:: Sets strict permission checking on configuration files. The default is `-strict.perms=true`. -See <> for more information. +See <> for more information. *`-v, --v`*:: Logs INFO-level messages. diff --git a/docs/en/observability/apm/common-problems.asciidoc b/docs/en/observability/apm/common-problems.asciidoc index 15fc16fd02..cd1d61b5d1 100644 --- a/docs/en/observability/apm/common-problems.asciidoc +++ b/docs/en/observability/apm/common-problems.asciidoc @@ -1,24 +1,24 @@ -[[common-problems]] +[[apm-common-problems]] === Common problems This section describes common problems you might encounter when using a Fleet-managed APM Server. -* <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +* <> [float] -[[no-data-indexed]] +[[apm-no-data-indexed]] === No data is indexed If no data shows up in {es}, first make sure that your APM components are properly connected. include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/no-data-indexed-widget.asciidoc[] -[[data-indexed-no-apm]] +[[apm-data-indexed-no-apm]] [float] === Data is indexed but doesn't appear in the APM app @@ -70,18 +70,18 @@ GET /_index_template/traces-apm ---- [float] -[[common-ssl-problems]] +[[apm-common-ssl-problems]] === Common SSL-related problems -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> [float] -[[ssl-client-fails]] +[[apm-ssl-client-fails]] ==== SSL client fails to connect The target host might be unreachable or the certificate may not be valid. @@ -102,7 +102,7 @@ telnet 5044 See the https://www.openssl.org/docs/manmaster/man1/openssl-s_client.html[OpenSSL documentation] for more info. [float] -[[cannot-validate-certificate]] +[[apm-cannot-validate-certificate]] ==== x509: cannot validate certificate for because it doesn't contain any IP SANs This happens because your certificate is only valid for the hostname present in the Subject field. @@ -115,25 +115,25 @@ To resolve this problem, try one of these solutions: server's certificate valid for both the hostname and the IP address. [float] -[[getsockopt-no-route-to-host]] +[[apm-getsockopt-no-route-to-host]] ==== getsockopt: no route to host This is not an SSL problem. It's a networking problem. Make sure the two hosts can communicate. [float] -[[getsockopt-connection-refused]] +[[apm-getsockopt-connection-refused]] ==== getsockopt: connection refused This is not an SSL problem. Make sure that {ls} is running and that there is no firewall blocking the traffic. [float] -[[target-machine-refused-connection]] +[[apm-target-machine-refused-connection]] ==== No connection could be made because the target machine actively refused it A firewall is refusing the connection. Check if a firewall is blocking the traffic on the client, the network, or the destination host. -[[io-timeout]] +[[apm-io-timeout]] [float] === I/O Timeout @@ -163,9 +163,9 @@ APM agent --> Load Balancer --> APM Server ---- The APM Server timeout can be configured by updating the -<>. +<>. -[[field-limit-exceeded]] +[[apm-field-limit-exceeded]] [float] === Field limit exceeded @@ -189,7 +189,7 @@ In the agent logs, you won't see a sign of failures as the APM server asynchrono {\"type\":\"illegal_argument_exception\",\"reason\":\"Limit of total fields [1000] in [INDEX_NAME] has been exceeded\"} ---- -[[tail-based-sampling-memory-disk-io]] +[[apm-tail-based-sampling-memory-disk-io]] [float] === Tail-based sampling causing high system memory usage and high disk IO diff --git a/docs/en/observability/apm/config-ownership.asciidoc b/docs/en/observability/apm/config-ownership.asciidoc index dd572f01a8..af08a0aec8 100644 --- a/docs/en/observability/apm/config-ownership.asciidoc +++ b/docs/en/observability/apm/config-ownership.asciidoc @@ -1,5 +1,5 @@ [float] -[[config-file-ownership]] +[[apm-config-file-ownership]] ==== Configuration file ownership On systems with POSIX file permissions, diff --git a/docs/en/observability/apm/configure/agent-config.asciidoc b/docs/en/observability/apm/configure/agent-config.asciidoc index 0e7c1d6262..bcca73c107 100644 --- a/docs/en/observability/apm/configure/agent-config.asciidoc +++ b/docs/en/observability/apm/configure/agent-config.asciidoc @@ -1,4 +1,4 @@ -[[configure-agent-config]] +[[apm-configure-agent-config]] = Configure APM agent configuration ++++ @@ -32,17 +32,17 @@ You can specify these options in the `apm-server.agent.config` section of the +apm-server.yml+ config file: [float] -[[agent-config-cache]] +[[apm-agent-config-cache]] == `apm-server.agent.config.cache.expiration` When using APM agent configuration, information fetched from {es} will be cached in memory for some time. Specify the cache expiration time via this setting. Defaults to `30s` (30 seconds). [float] -[[agent-config-elasticsearch]] +[[apm-agent-config-elasticsearch]] == `apm-server.agent.config.elasticsearch` -Takes the same options as <>. +Takes the same options as <>. For APM Server binary users and Elastic Agent standalone-managed APM Server, APM agent configuration is automatically fetched from {es} using the `output.elasticsearch` @@ -71,4 +71,4 @@ rejecting fetch request: no valid elasticsearch config This occurs because the user or API key set in either `apm-server.agent.config.elasticsearch` or `output.elasticsearch` (if `apm-server.agent.config.elasticsearch` is not set) does not have adequate permissions to read source maps from {es}. -To fix this error, ensure that APM Server has all the required privileges. See <> for more details. \ No newline at end of file +To fix this error, ensure that APM Server has all the required privileges. See <> for more details. diff --git a/docs/en/observability/apm/configure/anonymous-auth.asciidoc b/docs/en/observability/apm/configure/anonymous-auth.asciidoc index 5fa79f3197..16695d34b3 100644 --- a/docs/en/observability/apm/configure/anonymous-auth.asciidoc +++ b/docs/en/observability/apm/configure/anonymous-auth.asciidoc @@ -1,4 +1,4 @@ -[[configuration-anonymous]] +[[apm-configuration-anonymous]] = Configure anonymous authentication ++++ @@ -24,35 +24,35 @@ include::./tab-widgets/anon-auth-widget.asciidoc[] IMPORTANT: All anonymous access configuration is ignored if -<> is disabled. +<> is disabled. [float] -[[config-auth-anon-rum]] +[[apm-config-auth-anon-rum]] = Real User Monitoring (RUM) -If an <> or <> is configured, +If an <> or <> is configured, then anonymous authentication must be enabled to collect RUM data. -For this reason, anonymous auth will be enabled automatically if <> -is set to `true`, and <> is not explicitly defined. +For this reason, anonymous auth will be enabled automatically if <> +is set to `true`, and <> is not explicitly defined. -See <> for additional RUM configuration options. +See <> for additional RUM configuration options. [float] -[[config-auth-anon-mitigating]] +[[apm-config-auth-anon-mitigating]] == Mitigating malicious requests There are a few configuration variables that can mitigate the impact of malicious requests to an unauthenticated APM Server endpoint. -Use the <> and <> configs to ensure that the +Use the <> and <> configs to ensure that the `agent.name` and `service.name` of each incoming request match a specified list. Additionally, the APM Server can rate-limit unauthenticated requests based on the client IP address -(`client.ip`) of the request with <>. +(`client.ip`) of the request with <>. This allows you to specify the maximum number of requests allowed per unique IP address, per second. [float] -[[config-auth-anon-client-ip]] +[[apm-config-auth-anon-client-ip]] == Deriving an incoming request's `client.ip` address The remote IP address of an incoming request might be different @@ -67,7 +67,7 @@ The supported headers are parsed in the following order: If none of these headers are present, the remote address for the incoming request is used. [float] -[[config-auth-anon-client-ip-concerns]] +[[apm-config-auth-anon-client-ip-concerns]] == Using a reverse proxy or load balancer HTTP headers are easily modified; @@ -82,11 +82,11 @@ This prevents malicious users from cycling spoofed IP addresses to bypass the APM Server's rate limiting feature. [float] -[[config-auth-anon]] +[[apm-config-auth-anon]] = Configuration reference [float] -[[config-auth-anon-enabled]] +[[apm-config-auth-anon-enabled]] == Anonymous Agent access Enable or disable anonymous authentication. @@ -98,7 +98,7 @@ Default: `false` (disabled). (bool) |==== [float] -[[config-auth-anon-allow-agent]] +[[apm-config-auth-anon-allow-agent]] == Allowed anonymous agents A list of permitted {apm-agent} names for anonymous authentication. Names in this list must match the agent's `agent.name`. @@ -110,7 +110,7 @@ Default: `[rum-js, js-base]` (only RUM agent events are accepted). (array) |==== [float] -[[config-auth-anon-allow-service]] +[[apm-config-auth-anon-allow-service]] == Allowed services A list of permitted service names for anonymous authentication. Names in this list must match the agent's `service.name`. @@ -123,10 +123,10 @@ Default: Not set (any service name is accepted). (array) |==== [float] -[[config-auth-anon-ip-limit]] +[[apm-config-auth-anon-ip-limit]] == IP limit The number of unique IP addresses to track in an LRU cache. -IP addresses in the cache will be rate limited according to the <> setting. +IP addresses in the cache will be rate limited according to the <> setting. Consider increasing this default if your application has many concurrent clients. Default: `1000`. (int) @@ -136,7 +136,7 @@ Default: `1000`. (int) |==== [float] -[[config-auth-anon-event-limit]] +[[apm-config-auth-anon-event-limit]] == Event limit The maximum number of events allowed per second, per agent IP address. Default: `300`. (int) diff --git a/docs/en/observability/apm/configure/auth.asciidoc b/docs/en/observability/apm/configure/auth.asciidoc index 490c0e7310..f04958beee 100644 --- a/docs/en/observability/apm/configure/auth.asciidoc +++ b/docs/en/observability/apm/configure/auth.asciidoc @@ -12,7 +12,7 @@ Agent authorization APM Server configuration options. include::./tab-widgets/auth-config-widget.asciidoc[] [float] -[[api-key-auth-settings]] +[[apm-api-key-auth-settings]] = API key authentication options These settings apply to API key communication between the APM Server and APM Agents. diff --git a/docs/en/observability/apm/configure/env.asciidoc b/docs/en/observability/apm/configure/env.asciidoc index 41a68ad0a6..b56a66fc93 100644 --- a/docs/en/observability/apm/configure/env.asciidoc +++ b/docs/en/observability/apm/configure/env.asciidoc @@ -1,4 +1,4 @@ -[[config-env]] +[[apm-config-env]] = Use environment variables in the configuration **** diff --git a/docs/en/observability/apm/configure/general.asciidoc b/docs/en/observability/apm/configure/general.asciidoc index b8c4ae56c8..decdc577e8 100644 --- a/docs/en/observability/apm/configure/general.asciidoc +++ b/docs/en/observability/apm/configure/general.asciidoc @@ -1,4 +1,4 @@ -[[configuration-process]] +[[apm-configuration-process]] = General configuration options **** @@ -12,10 +12,10 @@ General APM Server configuration options. include::./tab-widgets/general-config-widget.asciidoc[] [float] -[[configuration-apm-server]] +[[apm-configuration-apm-server]] = Configuration options -[[host]] +[[apm-host]] [float] == Host Defines the host and port the server is listening on. @@ -36,7 +36,7 @@ The publicly reachable server URL. For deployments on Elastic Cloud or ECK, the | Fleet-managed | `URL` |==== -[[max_header_size]] +[[apm-max_header_size]] [float] == Max header size Maximum permitted size of a request's header accepted by the server to be processed (in Bytes). @@ -47,7 +47,7 @@ Defaults to 1048576 Bytes (1 MB). (int) | Fleet-managed | `Maximum size of a request's header` |==== -[[idle_timeout]] +[[apm-idle_timeout]] [float] == Idle timeout Maximum amount of time to wait for the next incoming request before underlying connection is closed. @@ -58,7 +58,7 @@ Defaults to `45s` (45 seconds). (text) | Fleet-managed | `Idle time before underlying connection is closed` |==== -[[read_timeout]] +[[apm-read_timeout]] [float] == Read timeout Maximum permitted duration for reading an entire request. @@ -69,7 +69,7 @@ Defaults to `3600s` (3600 seconds). (text) | Fleet-managed | `Maximum duration for reading an entire request` |==== -[[write_timeout]] +[[apm-write_timeout]] [float] == Write timeout Maximum permitted duration for writing a response. @@ -80,7 +80,7 @@ Defaults to `30s` (30 seconds). (text) | Fleet-managed | `Maximum duration for writing a response` |==== -[[shutdown_timeout]] +[[apm-shutdown_timeout]] [float] === Shutdown timeout Maximum duration in seconds before releasing resources when shutting down the server. @@ -91,7 +91,7 @@ Defaults to `30s` (30 seconds). (text) | Fleet-managed | `Maximum duration before releasing resources when shutting down` |==== -[[max_event_size]] +[[apm-max_event_size]] [float] == Max event size Maximum permitted size of an event accepted by the server to be processed (in Bytes). @@ -102,7 +102,7 @@ Defaults to `307200` Bytes. (int) | Fleet-managed | `Maximum size per event` |==== -[[max_connections]] +[[apm-max_connections]] [float] == Max connections Maximum number of TCP connections to accept simultaneously. @@ -113,7 +113,7 @@ Default value is 0, which means _unlimited_. (int) | Fleet-managed | `Simultaneously accepted connections` |==== -[[custom_http_headers]] +[[apm-custom_http_headers]] [float] == Custom HTTP response headers Custom HTTP headers to add to HTTP responses. Useful for security policy compliance. (text) @@ -123,7 +123,7 @@ Custom HTTP headers to add to HTTP responses. Useful for security policy complia | Fleet-managed | `Custom HTTP response headers` |==== -[[capture_personal_data]] +[[apm-capture_personal_data]] [float] == Capture personal data If true, @@ -136,7 +136,7 @@ Enabled by default. (bool) |==== -[[default_service_environment]] +[[apm-default_service_environment]] [float] == Default service environment Sets the default service environment to associate with data and requests received from agents which have no service environment defined. Default: none. (text) @@ -146,7 +146,7 @@ Sets the default service environment to associate with data and requests receive | Fleet-managed | `Default Service Environment` |==== -[[expvar.enabled]] +[[apm-expvar.enabled]] [float] == expvar support When set to true APM Server exposes https://golang.org/pkg/expvar/[golang expvar] under `/debug/vars`. @@ -157,7 +157,7 @@ Disabled by default. | Fleet-managed | `Enable APM Server Golang expvar support` |==== -[[expvar.url]] +[[apm-expvar.url]] [float] == expvar URL Configure the URL to expose expvar. @@ -168,7 +168,7 @@ Defaults to `debug/vars`. | Fleet-managed | N/A |==== -[[data_streams.namespace]] +[[apm-data_streams.namespace]] [float] == Data stream namespace diff --git a/docs/en/observability/apm/configure/index.asciidoc b/docs/en/observability/apm/configure/index.asciidoc index 3b2b62d32b..c4d2722f8e 100644 --- a/docs/en/observability/apm/configure/index.asciidoc +++ b/docs/en/observability/apm/configure/index.asciidoc @@ -1,29 +1,29 @@ -[[configuring-howto-apm-server]] +[[apm-configuring-howto-apm-server]] = Configure How you configure the APM Server depends on your deployment method. * **APM Server binary** users need to edit the `apm-server.yml` configuration file. -The location of the file varies by platform. To locate the file, see <>. +The location of the file varies by platform. To locate the file, see <>. * **Fleet-managed** users configure the APM Server directly in {kib}. Each configuration page describes the specific location. * **Elastic cloud** users should see {cloud}/ec-manage-apm-settings.html[Add APM user settings] for information on how to configure Elastic APM. The following topics describe how to configure APM Server: -* <> -* <> +* <> +* <> * <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> include::general.asciidoc[leveloffset=+1] diff --git a/docs/en/observability/apm/configure/instrumentation.asciidoc b/docs/en/observability/apm/configure/instrumentation.asciidoc index fc4e70dedb..b22cf07694 100644 --- a/docs/en/observability/apm/configure/instrumentation.asciidoc +++ b/docs/en/observability/apm/configure/instrumentation.asciidoc @@ -1,4 +1,4 @@ -[[configuration-instrumentation]] +[[apm-configuration-instrumentation]] = Configure APM instrumentation ++++ @@ -47,16 +47,16 @@ Environments can be filtered in the {kibana-ref}/xpack-apm.html[{apm-app}]. [float] === `hosts` -The {observability-guide}/getting-started-apm-server.html[APM Server] hosts to report instrumentation data to. +The {observability-guide}/apm-getting-started-apm-server.html[APM Server] hosts to report instrumentation data to. Defaults to `http://localhost:8200`. [float] === `api_key` -{observability-guide}/api-key.html[API key] used to secure communication with the APM Server(s). +{observability-guide}/apm-api-key.html[API key] used to secure communication with the APM Server(s). If `api_key` is set then `secret_token` will be ignored. [float] === `secret_token` -{observability-guide}/secret-token.html[Secret token] used to secure communication with the APM Server(s). +{observability-guide}/apm-secret-token.html[Secret token] used to secure communication with the APM Server(s). diff --git a/docs/en/observability/apm/configure/kibana.asciidoc b/docs/en/observability/apm/configure/kibana.asciidoc index a3d56666cf..06ee297950 100644 --- a/docs/en/observability/apm/configure/kibana.asciidoc +++ b/docs/en/observability/apm/configure/kibana.asciidoc @@ -1,4 +1,4 @@ -[[setup-kibana-endpoint]] +[[apm-setup-kibana-endpoint]] = Configure the {kib} endpoint ++++ @@ -15,7 +15,7 @@ an output other than {es}. For all other use-cases, starting in version 8.7.0, APM agent configurations is fetched directly from {es}. Configuring and enabling the {kib} endpoint is only used as a fallback. -Please see <> instead. +Please see <> instead. **** Here's a sample configuration: @@ -33,13 +33,13 @@ You can specify the following options in the `apm-server.kibana` section of the +apm-server.yml+ config file. These options are not required for a Fleet-managed APM Server. [float] -[[kibana-enabled]] +[[apm-kibana-enabled]] === `apm-server.kibana.enabled` Defaults to `false`. Must be `true` to use APM Agent configuration. [float] -[[kibana-host]] +[[apm-kibana-host]] === `apm-server.kibana.host` The {kib} host that APM Server will communicate with. The default is @@ -47,14 +47,14 @@ The {kib} host that APM Server will communicate with. The default is port is specified, `5601` is used. NOTE: When a node is defined as an `IP:PORT`, the _scheme_ and _path_ are taken -from the <> and -<> config options. +from the <> and +<> config options. IPv6 addresses must be defined using the following format: `https://[2001:db8::1]:5601`. [float] -[[kibana-protocol-option]] +[[apm-kibana-protocol-option]] === `apm-server.kibana.protocol` The name of the protocol {kib} is reachable on. The options are: `http` or @@ -87,7 +87,7 @@ The basic authentication password for connecting to {kib}. Authentication with an API key. Formatted as `id:api_key` [float] -[[kibana-path-option]] +[[apm-kibana-path-option]] === `apm-server.kibana.path` An HTTP path prefix that is prepended to the HTTP API calls. This is useful for @@ -113,4 +113,4 @@ apm-server.kibana.ssl.key: "/etc/pki/client/cert.key" ---- For information on the additional SSL configuration options, -see <>. +see <>. diff --git a/docs/en/observability/apm/configure/logging.asciidoc b/docs/en/observability/apm/configure/logging.asciidoc index 0ab7d6678e..43ef89676b 100644 --- a/docs/en/observability/apm/configure/logging.asciidoc +++ b/docs/en/observability/apm/configure/logging.asciidoc @@ -1,4 +1,4 @@ -[[configuration-logging]] +[[apm-configuration-logging]] = Configure logging ++++ @@ -35,12 +35,12 @@ logging.files: TIP: In addition to setting logging options in the config file, you can modify the logging output configuration from the command line. See -<>. +<>. WARNING: When APM Server is running on a Linux system with systemd, it uses by default the `-e` command line option, that makes it write all the logging output to stderr so it can be captured by journald. Other outputs are disabled. See -<> to know more and learn how to change this. +<> to know more and learn how to change this. [float] == Configuration options @@ -74,12 +74,12 @@ When true, writes all logging output to files. The log files are automatically rotated when the log file size limit is reached. NOTE: APM Server only creates a log file if there is logging output. For -example, if you set the log <> to `error` and there are no +example, if you set the log <> to `error` and there are no errors, there will be no log file in the directory specified for logs. endif::serverless[] [float] -[[level]] +[[apm-level]] === `logging.level` Minimum log level. One of `debug`, `info`, `warning`, or `error`. The default @@ -88,7 +88,7 @@ log level is `info`. `debug`:: Logs debug messages, including a detailed printout of all events flushed. Also logs informational messages, warnings, errors, and critical errors. When the log level is `debug`, you can specify a list of -<> to display debug messages for specific components. If +<> to display debug messages for specific components. If no selectors are specified, the `*` selector is used to display debug messages for all components. @@ -100,7 +100,7 @@ published. Also logs any warnings, errors, or critical errors. `error`:: Logs errors and critical errors. [float] -[[selectors]] +[[apm-selectors]] === `logging.selectors` The list of debugging-only selector tags used by different APM Server components. @@ -125,7 +125,7 @@ logging.selectors: [ harvester, input ] ifndef::serverless[] To override selectors at the command line, use the `-d` global flag (`-d` also -sets the debug log level). For more information, see <>. +sets the debug log level). For more information, see <>. endif::serverless[] [float] @@ -157,7 +157,7 @@ ifndef::serverless[] === `logging.files.path` The directory that log files are written to. The default is the logs path. See -the <> section for details. +the <> section for details. [float] === `logging.files.name` diff --git a/docs/en/observability/apm/configure/output.asciidoc b/docs/en/observability/apm/configure/output.asciidoc index 3aec6201bc..b63f8081c7 100644 --- a/docs/en/observability/apm/configure/output.asciidoc +++ b/docs/en/observability/apm/configure/output.asciidoc @@ -1,4 +1,4 @@ -[[configuring-output]] +[[apm-configuring-output]] = Configure the output ++++ @@ -17,7 +17,7 @@ Output configuration options. include::outputs/outputs-list.asciidoc[tag=outputs-list] -[[sourcemap-output]] +[[apm-sourcemap-output]] [float] == Source maps @@ -25,6 +25,6 @@ include::outputs/outputs-list.asciidoc[tag=outputs-list] Source maps can be uploaded through all outputs but must eventually be stored in {es}. When using outputs other than {es}, `source_mapping.elasticsearch` must be set for source maps to be applied. Be sure to update `source_mapping.index_pattern` if source maps are stored in the non-default location. -See <> for more details. +See <> for more details. include::outputs/outputs-list.asciidoc[tag=outputs-include] \ No newline at end of file diff --git a/docs/en/observability/apm/configure/outputs/codec.asciidoc b/docs/en/observability/apm/configure/outputs/codec.asciidoc index b6045b798b..4cbd0cef91 100644 --- a/docs/en/observability/apm/configure/outputs/codec.asciidoc +++ b/docs/en/observability/apm/configure/outputs/codec.asciidoc @@ -1,4 +1,4 @@ -[[configuration-output-codec]] +[[apm-configuration-output-codec]] == Change the output codec For outputs that do not require a specific encoding, you can change the encoding diff --git a/docs/en/observability/apm/configure/outputs/console.asciidoc b/docs/en/observability/apm/configure/outputs/console.asciidoc index b8f7b74c71..623718040c 100644 --- a/docs/en/observability/apm/configure/outputs/console.asciidoc +++ b/docs/en/observability/apm/configure/outputs/console.asciidoc @@ -1,4 +1,4 @@ -[[console-output]] +[[apm-console-output]] == Configure the Console output ++++ @@ -52,7 +52,7 @@ If `pretty` is set to true, events written to stdout will be nicely formatted. T Output codec configuration. If the `codec` section is missing, events will be JSON encoded using the `pretty` option. -See <> for more information. +See <> for more information. ==== `bulk_max_size` diff --git a/docs/en/observability/apm/configure/outputs/elasticsearch.asciidoc b/docs/en/observability/apm/configure/outputs/elasticsearch.asciidoc index b134852e8f..d4f165f9ad 100644 --- a/docs/en/observability/apm/configure/outputs/elasticsearch.asciidoc +++ b/docs/en/observability/apm/configure/outputs/elasticsearch.asciidoc @@ -1,4 +1,4 @@ -[[elasticsearch-output]] +[[apm-elasticsearch-output]] == Configure the {es} output ++++ @@ -59,7 +59,7 @@ output.elasticsearch: ssl.key: "/etc/pki/client/cert.key" ---- -See <> for details on each authentication method. +See <> for details on each authentication method. === Compatibility @@ -79,7 +79,7 @@ to `false`, the output is disabled. The default value is `true`. -[[hosts-option]] +[[apm-hosts-option]] ==== `hosts` The list of {es} nodes to connect to. The events are distributed to @@ -89,7 +89,7 @@ For example: `http://192.15.3.2`, `https://es.found.io:9230` or `192.24.3.2:9300 If no port is specified, `9200` is used. NOTE: When a node is defined as an `IP:PORT`, the _scheme_ and _path_ are taken from the -<> and <> config options. +<> and <> config options. [source,yaml] ------------------------------------------------------------------------------ @@ -122,14 +122,14 @@ The default value is `false`. Instead of using a username and password, you can use API keys to secure communication with {es}. The value must be the ID of the API key and the API key joined by a colon: `id:api_key`. -See <> for more information. +See <> for more information. ==== `username` The basic authentication username for connecting to {es}. This user needs the privileges required to publish events to {es}. -To create a user like this, see <>. +To create a user like this, see <>. ==== `password` @@ -139,15 +139,15 @@ The basic authentication password for connecting to {es}. Dictionary of HTTP parameters to pass within the URL with index operations. -[[protocol-option]] +[[apm-protocol-option]] ==== `protocol` The name of the protocol {es} is reachable on. The options are: `http` or `https`. The default is `http`. However, if you specify a URL for -<>, the value of `protocol` is overridden by whatever scheme you +<>, the value of `protocol` is overridden by whatever scheme you specify in the URL. -[[path-option]] +[[apm-path-option]] ==== `path` An HTTP path prefix that is prepended to the HTTP API calls. This is useful for @@ -178,7 +178,7 @@ https://golang.org/pkg/net/http/#ProxyFromEnvironment[Go documentation] for more information about the environment variables. ifndef::no_ilm[] -[[ilm-es]] +[[apm-ilm-es]] ==== `ilm` Configuration options for {ilm}. @@ -187,7 +187,7 @@ See <> for more information. endif::no_ilm[] ifndef::no-pipeline[] -[[pipeline-option-es]] +[[apm-pipeline-option-es]] ==== `pipeline` A format string value that specifies the ingest node pipeline to write events to. @@ -199,7 +199,7 @@ output.elasticsearch: pipeline: my_pipeline_id ------------------------------------------------------------------------------ -For more information, see <>. +For more information, see <>. You can set the ingest node pipeline dynamically by using a format string to access any event field. For example, this configuration uses a custom field, @@ -219,17 +219,17 @@ pipeline named `critical_pipeline`. TIP: To learn how to add custom fields to events, see the <> option. -See the <> setting for other ways to set the +See the <> setting for other ways to set the ingest node pipeline dynamically. -[[pipelines-option-es]] +[[apm-pipelines-option-es]] ==== `pipelines` An array of pipeline selector rules. Each rule specifies the ingest node pipeline to use for events that match the rule. During publishing, APM Server uses the first matching rule in the array. Rules can contain conditionals, format string-based fields, and name mappings. If the `pipelines` setting is -missing or no rule matches, the <> setting is +missing or no rule matches, the <> setting is used. Rule settings: @@ -289,7 +289,7 @@ With this configuration, all events with `log_type: critical` are sent to `sev2_pipeline`, and all other events are sent to `sev3_pipeline`. For more information about ingest node pipelines, see -<>. +<>. endif::[] @@ -342,8 +342,8 @@ Configuration options for SSL parameters like the certificate authority to use for HTTPS-based connections. If the `ssl` section is missing, the host CAs are used for HTTPS connections to {es}. -See the <> guide -or <> for more information. +See the <> guide +or <> for more information. // Elasticsearch security include::{apm-server-dir}/https.asciidoc[] diff --git a/docs/en/observability/apm/configure/outputs/kafka.asciidoc b/docs/en/observability/apm/configure/outputs/kafka.asciidoc index fecb59ec22..28324b78b2 100644 --- a/docs/en/observability/apm/configure/outputs/kafka.asciidoc +++ b/docs/en/observability/apm/configure/outputs/kafka.asciidoc @@ -1,4 +1,4 @@ -[[kafka-output]] +[[apm-kafka-output]] == Configure the Kafka output ++++ @@ -35,14 +35,14 @@ output.kafka: max_message_bytes: 1000000 ------------------------------------------------------------------------------ -NOTE: Events bigger than <> will be dropped. To avoid this problem, make sure APM Server does not generate events bigger than <>. +NOTE: Events bigger than <> will be dropped. To avoid this problem, make sure APM Server does not generate events bigger than <>. [float] === {kib} configuration include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] -[[kafka-compatibility]] +[[apm-kafka-compatibility]] === Compatibility This output works with all Kafka versions in between 0.11 and 2.2.2. Older versions @@ -72,7 +72,7 @@ Event timestamps will be added, if version 0.10.0.0+ is enabled. Valid values are all Kafka releases in between `0.8.2.0` and `2.0.0`. -See <> for information on supported versions. +See <> for information on supported versions. ==== `username` @@ -97,7 +97,7 @@ If `sasl.mechanism` is not set, `PLAIN` is used if `username` and `password` are provided. Otherwise, SASL authentication is disabled. -[[topic-option-kafka]] +[[apm-topic-option-kafka]] ==== `topic` The Kafka topic used for produced events. @@ -111,10 +111,10 @@ event field. For example, this configuration uses a custom field, topic: '%{[fields.log_topic]}' ----- -See the <> setting for other ways to set the +See the <> setting for other ways to set the topic dynamically. -[[topics-option-kafka]] +[[apm-topics-option-kafka]] ==== `topics` An array of topic selector rules. Each rule specifies the `topic` to use for @@ -122,7 +122,7 @@ events that match the rule. During publishing, APM Server sets the `topic` for each event based on the first matching rule in the array. Rules can contain conditionals, format string-based fields, and name mappings. If the `topics` setting is missing or no rule matches, the -<> field is used. +<> field is used. Rule settings: @@ -209,7 +209,7 @@ The number of concurrent load-balanced Kafka output workers. Output codec configuration. If the `codec` section is missing, events will be JSON encoded. -See <> for more information. +See <> for more information. ==== `metadata` @@ -298,7 +298,7 @@ Increasing the compression level will reduce the network usage but will increase The default value is 4. -[[kafka-max_message_bytes]] +[[apm-kafka-max_message_bytes]] ==== `max_message_bytes` The maximum permitted size of JSON-encoded messages. Bigger messages will be dropped. The default value is 1000000 (bytes). This value should be equal to or less than the broker's `message.max.bytes`. @@ -321,4 +321,4 @@ Configuration options for SSL parameters like the root CA for Kafka connections. The Kafka host keystore should be created with the `-keyalg RSA` argument to ensure it uses a cipher supported by https://github.com/Shopify/sarama/wiki/Frequently-Asked-Questions#why-cant-sarama-connect-to-my-kafka-cluster-using-ssl[{filebeat}'s Kafka library]. -See <> for more information. \ No newline at end of file +See <> for more information. diff --git a/docs/en/observability/apm/configure/outputs/logstash.asciidoc b/docs/en/observability/apm/configure/outputs/logstash.asciidoc index a3a5a5af9c..ccb2e828bf 100644 --- a/docs/en/observability/apm/configure/outputs/logstash.asciidoc +++ b/docs/en/observability/apm/configure/outputs/logstash.asciidoc @@ -1,4 +1,4 @@ -[[logstash-output]] +[[apm-logstash-output]] == Configure the {ls} output ++++ @@ -20,12 +20,12 @@ protocol, which runs over TCP. To send events to {ls}, you must: -. <> -. <> -. <> +. <> +. <> +. <> [float] -[[ls-output-config]] +[[apm-ls-output-config]] === {ls} output configuration To enable the {ls} output in APM Server, @@ -44,13 +44,13 @@ output.logstash: APM Server connections. [float] -[[ls-kib-config]] +[[apm-ls-kib-config]] === {kib} endpoint configuration include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] [float] -[[ls-config-pipeline]] +[[apm-ls-config-pipeline]] === {ls} configuration pipeline Finally, you must create a {ls} configuration pipeline that listens for incoming @@ -122,12 +122,12 @@ APM Server sends the following `@metadata` to {ls}: } ---- <1> To change the default `apm-server` value, set the -<> option in the APM Server config file. +<> option in the APM Server config file. <2> The current version of APM Server. In addition to `@metadata`, APM Server provides other potentially useful fields, like the `data_stream` field, which can be used to conditionally operate on -{observability-guide}/data-model.html[event types], namespaces, or datasets. +{observability-guide}/apm-data-model.html[event types], namespaces, or datasets. As an example, you might want to use {ls} to route all `metric` events to the same custom metrics data stream, rather than to service-specific data streams: @@ -178,7 +178,7 @@ to false, the output is disabled. The default value is `false`. -[[hosts]] +[[apm-hosts]] ==== `hosts` The list of known {ls} servers to connect to. If load balancing is disabled, but @@ -208,7 +208,7 @@ The number of workers per configured host publishing events to {ls}. This is best used with load balancing mode enabled. Example: If you have 2 hosts and 3 workers, in total 6 workers are started (3 for each host). -[[loadbalance]] +[[apm-loadbalance]] ==== `loadbalance` If set to true and multiple {ls} hosts are configured, the output plugin @@ -254,7 +254,7 @@ password can be embedded in the URL as shown in the example. When using a proxy, hostnames are resolved on the proxy server instead of on the client. You can change this behavior by setting the -<> option. +<> option. ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------ @@ -263,14 +263,14 @@ output.logstash: proxy_url: socks5://user:password@socks5-proxy:2233 ------------------------------------------------------------------------------ -[[logstash-proxy-use-local-resolver]] +[[apm-logstash-proxy-use-local-resolver]] ==== `proxy_use_local_resolver` The `proxy_use_local_resolver` option determines if {ls} hostnames are resolved locally when using a proxy. The default value is false, which means that when a proxy is used the name resolution occurs on the proxy server. -[[logstash-index]] +[[apm-logstash-index]] ==== `index` The index root name to write events to. The default is `apm-server`. For @@ -283,7 +283,7 @@ can then be accessed in {ls}'s output section as `%{[@metadata][beat]}`. ==== `ssl` Configuration options for SSL parameters like the root CA for {ls} connections. See -<> for more information. To use SSL, you must also configure the +<> for more information. To use SSL, you must also configure the {logstash-ref}/plugins-inputs-beats.html[{beats} input plugin for {ls}] to use SSL/TLS. ==== `timeout` diff --git a/docs/en/observability/apm/configure/outputs/output-cloud.asciidoc b/docs/en/observability/apm/configure/outputs/output-cloud.asciidoc index 82d885aaae..886aa6dc02 100644 --- a/docs/en/observability/apm/configure/outputs/output-cloud.asciidoc +++ b/docs/en/observability/apm/configure/outputs/output-cloud.asciidoc @@ -1,4 +1,4 @@ -[[configure-cloud-id]] +[[apm-configure-cloud-id]] == Configure the output for {ess} on {ecloud} [subs="attributes"] diff --git a/docs/en/observability/apm/configure/outputs/outputs-list.asciidoc b/docs/en/observability/apm/configure/outputs/outputs-list.asciidoc index b0b925c0de..13ecc282a4 100644 --- a/docs/en/observability/apm/configure/outputs/outputs-list.asciidoc +++ b/docs/en/observability/apm/configure/outputs/outputs-list.asciidoc @@ -1,10 +1,10 @@ //# tag::outputs-list[] -* <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +* <> //# end::outputs-list[] //# tag::outputs-include[] diff --git a/docs/en/observability/apm/configure/outputs/redis.asciidoc b/docs/en/observability/apm/configure/outputs/redis.asciidoc index 23101f52e6..ef2583014c 100644 --- a/docs/en/observability/apm/configure/outputs/redis.asciidoc +++ b/docs/en/observability/apm/configure/outputs/redis.asciidoc @@ -1,4 +1,4 @@ -[[redis-output]] +[[apm-redis-output]] == Configure the Redis output ++++ @@ -69,7 +69,7 @@ configured, the output uses the system certificate store. The index name added to the events metadata for use by {ls}. The default is "apm-server". -[[key-option-redis]] +[[apm-key-option-redis]] ==== `key` The name of the Redis list or channel the events are published to. If not @@ -86,17 +86,17 @@ output.redis: key: "%{[fields.list]:fallback}" ------------------------------------------------------------------------------ -See the <> setting for other ways to set the key +See the <> setting for other ways to set the key dynamically. -[[keys-option-redis]] +[[apm-keys-option-redis]] ==== `keys` An array of key selector rules. Each rule specifies the `key` to use for events that match the rule. During publishing, APM Server uses the first matching rule in the array. Rules can contain conditionals, format string-based fields, and name mappings. If the `keys` setting is missing or no rule matches, the -<> setting is used. +<> setting is used. Rule settings: @@ -156,7 +156,7 @@ The default value is `list`. Output codec configuration. If the `codec` section is missing, events will be JSON encoded. -See <> for more information. +See <> for more information. ==== `worker` @@ -223,7 +223,7 @@ number of events to be contained in a batch. Configuration options for SSL parameters like the root CA for Redis connections guarded by SSL proxies (for example https://www.stunnel.org[stunnel]). See -<> for more information. +<> for more information. ==== `proxy_url` @@ -236,9 +236,9 @@ a username and password in the URL. When using a proxy, hostnames are resolved on the proxy server instead of on the client. You can change this behavior by setting the -<> option. +<> option. -[[redis-proxy-use-local-resolver]] +[[apm-redis-proxy-use-local-resolver]] ==== `proxy_use_local_resolver` This option determines whether Redis hostnames are resolved locally when using a proxy. diff --git a/docs/en/observability/apm/configure/path.asciidoc b/docs/en/observability/apm/configure/path.asciidoc index 9ec796ba19..bbbd3ddca8 100644 --- a/docs/en/observability/apm/configure/path.asciidoc +++ b/docs/en/observability/apm/configure/path.asciidoc @@ -1,4 +1,4 @@ -[[configuration-path]] +[[apm-configuration-path]] = Configure project paths ++++ @@ -9,7 +9,7 @@ image:./binary-yes-fm-no.svg[supported deployment methods] This documentation is only relevant for APM Server binary users. -Fleet-managed paths are defined in <>. +Fleet-managed paths are defined in <>. **** The `path` section of the +apm-server.yml+ config file contains configuration @@ -20,7 +20,7 @@ ifdef::has_registry[] APM Server looks for its registry files in the data path. endif::[] -Please see the <> section for more details. +Please see the <> section for more details. Here is an example configuration: diff --git a/docs/en/observability/apm/configure/rum.asciidoc b/docs/en/observability/apm/configure/rum.asciidoc index 2bc25ec962..0156fb0c4b 100644 --- a/docs/en/observability/apm/configure/rum.asciidoc +++ b/docs/en/observability/apm/configure/rum.asciidoc @@ -1,4 +1,4 @@ -[[configuration-rum]] +[[apm-configuration-rum]] = Configure Real User Monitoring (RUM) ++++ @@ -22,10 +22,10 @@ In addition, if APM Server is deployed in an origin different than the page’s you will need to configure {apm-rum-ref-v}/configuring-cors.html[Cross-Origin Resource Sharing (CORS)] in the Agent. [float] -[[enable-rum-support]] +[[apm-enable-rum-support]] = Configuration reference -[[rum-enable]] +[[apm-rum-enable]] [float] == Enable RUM To enable RUM support, set to `true`. @@ -38,13 +38,13 @@ By default this is disabled. (bool) [NOTE] ==== -If an <> or <> is configured, -enabling RUM support will automatically enable <>. +If an <> or <> is configured, +enabling RUM support will automatically enable <>. Anonymous authentication is required as the RUM agent runs in the browser. ==== [float] -[[rum-allow-origins]] +[[apm-rum-allow-origins]] == Allowed Origins A list of permitted origins for RUM support. User-agents send an Origin header that will be validated against this list. @@ -59,7 +59,7 @@ Default: `['*']` (allows everything). (text) |==== [float] -[[rum-allow-headers]] +[[apm-rum-allow-headers]] == Access-Control-Allow-Headers HTTP requests made from the RUM agent to the APM Server are limited in the HTTP headers they are allowed to have. If any other headers are added, the request will be rejected by the browser due to Cross-Origin Resource Sharing (CORS) restrictions. @@ -75,7 +75,7 @@ Default: `[]`. (text) |==== [float] -[[rum-response-headers]] +[[apm-rum-response-headers]] == Custom HTTP response headers Custom HTTP headers to add to RUM responses. This can be useful for security policy compliance. @@ -90,7 +90,7 @@ Default: none. (text) |==== [float] -[[rum-library-pattern]] +[[apm-rum-library-pattern]] == Library Frame Pattern RegExp to be matched against a stack trace frame's `file_name` and `abs_path` attributes. If the RegExp matches, the stack trace frame is considered to be a library frame. @@ -119,7 +119,7 @@ Default: `"^/webpack"` (excludes stack trace frames that have a filename startin [float] -[[rum-source-map]] +[[apm-rum-source-map]] = Source map configuration options **** @@ -129,27 +129,27 @@ Source maps are supported by all APM Server deployment methods, however, the options in this section are only supported by the APM Server binary. **** -[[config-sourcemapping-enabled]] +[[apm-config-sourcemapping-enabled]] [float] == `source_mapping.enabled` -Used to enable/disable <> for RUM events. +Used to enable/disable <> for RUM events. When enabled, the APM Server needs additional privileges to read source maps. -See <> for more details. +See <> for more details. Default: `true` -[[config-sourcemapping-elasticsearch]] +[[apm-config-sourcemapping-elasticsearch]] [float] == `source_mapping.elasticsearch` -Configure the {es} source map retrieval location, taking the same options as <>. +Configure the {es} source map retrieval location, taking the same options as <>. This must be set when using an output other than {es}, and that output is writing to {es}. Otherwise leave this section empty. -[[rum-sourcemap-cache]] +[[apm-rum-sourcemap-cache]] [float] == `source_mapping.cache.expiration` If a source map has been uploaded to the APM Server, -<> is automatically applied to documents sent to the RUM endpoint. +<> is automatically applied to documents sent to the RUM endpoint. Source maps are fetched from {es} and then kept in an in-memory cache for the configured time. Values configured without a time unit are treated as seconds. @@ -163,14 +163,14 @@ Search source maps stored in an older version with this setting. Default: `"apm-*-sourcemap*"` [float] -[[rum-deprecated]] +[[apm-rum-deprecated]] = Deprecated configuration options [float] -[[event_rate.limit]] +[[apm-event_rate.limit]] == `event_rate.limit` -deprecated::[7.15.0, Replaced by <>.] +deprecated::[7.15.0, Replaced by <>.] The maximum number of events allowed per second, per agent IP address. @@ -179,19 +179,19 @@ Default: `300` [float] == `event_rate.lru_size` -deprecated::[7.15.0, Replaced by <>.] +deprecated::[7.15.0, Replaced by <>.] The number of unique IP addresses to track in an LRU cache. -IP addresses in the cache will be rate limited according to the <> setting. +IP addresses in the cache will be rate limited according to the <> setting. Consider increasing this default if your site has many concurrent clients. Default: `1000` [float] -[[rum-allow-service-names]] +[[apm-rum-allow-service-names]] == `allow_service_names` -deprecated::[7.15.0, Replaced by <>.] +deprecated::[7.15.0, Replaced by <>.] A list of permitted service names for RUM support. Names in this list must match the agent's `service.name`. This can be set to restrict RUM events to those with one of a set of known service names, @@ -203,4 +203,4 @@ Default: Not set (any service name is accepted) = Ingest pipelines The default APM Server pipeline includes processors that enrich RUM data prior to indexing in {es}. -See <> for details on how to locate, edit, or disable this preprocessing. \ No newline at end of file +See <> for details on how to locate, edit, or disable this preprocessing. \ No newline at end of file diff --git a/docs/en/observability/apm/configure/sampling.asciidoc b/docs/en/observability/apm/configure/sampling.asciidoc index 9a4e78fe83..7932ee17d0 100644 --- a/docs/en/observability/apm/configure/sampling.asciidoc +++ b/docs/en/observability/apm/configure/sampling.asciidoc @@ -1,4 +1,4 @@ -[[tail-based-samling-config]] +[[apm-tail-based-samling-config]] = Tail-based sampling **** @@ -12,10 +12,10 @@ Tail-based sampling configuration options. include::./tab-widgets/sampling-config-widget.asciidoc[] [float] -[[configuration-tbs]] +[[apm-configuration-tbs]] = Top-level tail-based sampling settings -See <> to learn more. +See <> to learn more. :input-type: ref // tag::tbs-top[] @@ -78,10 +78,10 @@ Default: `3GB`. (text) // end::tbs-top[] [float] -[[configuration-tbs-policy]] +[[apm-configuration-tbs-policy]] = Policy-level tail-based sampling settings -See <> to learn more. +See <> to learn more. // tag::tbs-policy[] diff --git a/docs/en/observability/apm/configure/tab-widgets/rum-config.asciidoc b/docs/en/observability/apm/configure/tab-widgets/rum-config.asciidoc index 9e194624ac..fa668965aa 100644 --- a/docs/en/observability/apm/configure/tab-widgets/rum-config.asciidoc +++ b/docs/en/observability/apm/configure/tab-widgets/rum-config.asciidoc @@ -20,7 +20,7 @@ apm-server.rum.source_mapping.elasticsearch.api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE // end::binary[] // tag::fleet-managed[] -To enable RUM, set <> to `true`. +To enable RUM, set <> to `true`. include::../shared/input-apm.asciidoc[tag=fleet-managed-settings] + diff --git a/docs/en/observability/apm/configure/tls.asciidoc b/docs/en/observability/apm/configure/tls.asciidoc index 39a604f236..6d62604417 100644 --- a/docs/en/observability/apm/configure/tls.asciidoc +++ b/docs/en/observability/apm/configure/tls.asciidoc @@ -1,12 +1,12 @@ -[[configuration-ssl-landing]] +[[apm-configuration-ssl-landing]] = SSL/TLS settings SSL/TLS is available for: -* <> (APM Agents) -* <> that support SSL, like {es}, {ls}, or Kafka. +* <> (APM Agents) +* <> that support SSL, like {es}, {ls}, or Kafka. -Additional information on getting started with SSL/TLS is available in <>. +Additional information on getting started with SSL/TLS is available in <>. // :leveloffset: +2 include::{observability-docs-root}/docs/en/observability/apm/shared-ssl-config.asciidoc[] diff --git a/docs/en/observability/apm/cross-cluster-search.asciidoc b/docs/en/observability/apm/cross-cluster-search.asciidoc index 8ae95da9b5..939ab9a1cc 100644 --- a/docs/en/observability/apm/cross-cluster-search.asciidoc +++ b/docs/en/observability/apm/cross-cluster-search.asciidoc @@ -1,4 +1,4 @@ -[[cross-cluster-search]] +[[apm-cross-cluster-search]] === Cross-cluster search Elastic APM utilizes {es}'s cross-cluster search functionality. @@ -9,7 +9,7 @@ This means you can also have deployments per data type, making sizing and scalin and allowing for better performance while managing multiple observability use cases. [float] -[[set-up-cross-cluster-search]] +[[apm-set-up-cross-cluster-search]] ==== Set up cross-cluster search *Step 1. Set up remote clusters.* diff --git a/docs/en/observability/apm/custom-index-template.asciidoc b/docs/en/observability/apm/custom-index-template.asciidoc index aa18b1f16d..2c8b89a33e 100644 --- a/docs/en/observability/apm/custom-index-template.asciidoc +++ b/docs/en/observability/apm/custom-index-template.asciidoc @@ -4,7 +4,7 @@ // [id="name-name{append-legacy}"] ////////////////////////////////////////////////////////////////////////// -[[custom-index-template]] +[[apm-custom-index-template]] === View the {es} index template :append-legacy: @@ -40,14 +40,14 @@ Then click **Manage** → **Edit**. Add any custom metadata, index settings, or mappings. [discrete] -[[custom-index-template-index-settings]] +[[apm-custom-index-template-index-settings]] ==== Index settings In the **Index settings** step, you can specify custom {ref}/index-modules.html#index-modules-settings[index settings]. For example, you could: * Customize the index lifecycle policy applied to a data stream. -See <> for a walk-through. +See <> for a walk-through. * Change the number of {ref}/scalability.html[shards] per index. Specify the number of primary shards: @@ -74,7 +74,7 @@ Specify the number of replica shards: ---- [discrete] -[[custom-index-template-mappings]] +[[apm-custom-index-template-mappings]] ==== Mappings {ref}/mapping.html[Mapping] is the process of defining how a document, and the fields it contains, are stored and indexed. @@ -93,7 +93,7 @@ type, and optionally a script: image::images/custom-index-template-runtime-fields.png[Editing a component template to add a new runtime field] [discrete] -[[custom-index-template-rollover]] +[[apm-custom-index-template-rollover]] === Roll over the data stream Changes to component templates are not applied retroactively to existing indices. diff --git a/docs/en/observability/apm/data-ingestion.asciidoc b/docs/en/observability/apm/data-ingestion.asciidoc index cbe7c07cf5..13c825a97d 100644 --- a/docs/en/observability/apm/data-ingestion.asciidoc +++ b/docs/en/observability/apm/data-ingestion.asciidoc @@ -1,17 +1,17 @@ -[[tune-data-ingestion]] +[[apm-tune-data-ingestion]] === Tune data ingestion This section explains how to adapt data ingestion according to your needs. [float] -[[tune-apm-server]] +[[apm-tune-apm-server]] === Tune APM Server -* <> -* <> -* <> +* <> +* <> +* <> -[[add-apm-server-instances]] +[[apm-add-apm-server-instances]] [float] ==== Add APM Server or {agent} instances @@ -21,9 +21,9 @@ One way to solve this problem is to increase processing power. Increase processing power by either migrating to a more powerful machine or adding more APM Server/Elastic Agent instances. -Having several instances will also increase <>. +Having several instances will also increase <>. -[[reduce-payload-size]] +[[apm-reduce-payload-size]] [float] ==== Reduce the payload size @@ -31,11 +31,11 @@ Large payloads may result in request timeouts. You can reduce the payload size by decreasing the flush interval in the agents. This will cause agents to send smaller and more frequent requests. -Optionally you can also <> or <>. +Optionally you can also <> or <>. Read more in the {apm-agents-ref}/index.html[agents documentation]. -[[adjust-event-rate]] +[[apm-adjust-event-rate]] [float] ==== Adjust anonymous auth rate limit @@ -47,7 +47,7 @@ If the event rate limit is hit while events on an established request are sent, Increasing the default value for the following configuration variable will help avoid `rate limit exceeded` errors: |==== -| APM Server binary | <> +| APM Server binary | <> | Fleet-managed | `Anonymous Event rate limit (event limit)` |==== diff --git a/docs/en/observability/apm/data-model.asciidoc b/docs/en/observability/apm/data-model.asciidoc index 032b257354..7d049cfad2 100644 --- a/docs/en/observability/apm/data-model.asciidoc +++ b/docs/en/observability/apm/data-model.asciidoc @@ -1,20 +1,20 @@ :span-name-type-sheet: https://docs.google.com/spreadsheets/d/1SmWeX5AeqUcayrArUauS_CxGgsjwRgMYH4ZY8yQsMhQ/edit#gid=644582948 :span-spec: https://github.com/elastic/apm/blob/main/tests/agents/json-specs/span_types.json -[[data-model]] +[[apm-data-model]] == Data Model Elastic APM agents capture different types of information from within their instrumented applications. These are known as events, and can be `spans`, `transactions`, `errors`, or `metrics`. -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> -Events can contain additional <> which further enriches your data. +Events can contain additional <> which further enriches your data. -[[data-model-spans]] +[[apm-data-model-spans]] === Spans *Spans* contain information about the execution of a specific code path. @@ -26,7 +26,7 @@ but you can also use the Agent API for custom instrumentation of specific code p Among other things, spans can contain: -* A `transaction.id` attribute that refers to its parent <>. +* A `transaction.id` attribute that refers to its parent <>. * A `parent.id` attribute that refers to its parent span or transaction. * Its start time and duration. * A `name`, `type`, `subtype`, and `action`—see the {span-name-type-sheet}[span name/type alignment] @@ -40,7 +40,7 @@ TIP: Most agents limit keyword fields, like `span.id`, to 1024 characters, and non-keyword fields, like `span.start.us`, to 10,000 characters. [float] -[[data-model-dropped-spans]] +[[apm-data-model-dropped-spans]] ==== Dropped spans For performance reasons, APM agents can choose to sample or omit spans purposefully. @@ -61,7 +61,7 @@ To configure the number of spans recorded per transaction, see the relevant Agen * Ruby: {apm-ruby-ref-v}/configuration.html#config-transaction-max-spans[`transaction_max_spans`] [float] -[[data-model-missing-spans]] +[[apm-data-model-missing-spans]] ==== Missing spans Agents stream spans to the APM Server separately from their transactions. @@ -93,10 +93,10 @@ include::{apm-server-root}/docs/data/elasticsearch/generated/spans.json[] ---- ==== -[[data-model-transactions]] +[[apm-data-model-transactions]] === Transactions -*Transactions* are a special kind of <> that have additional attributes associated with them. +*Transactions* are a special kind of <> that have additional attributes associated with them. They describe an event captured by an Elastic {apm-agent} instrumenting a service. You can think of transactions as the highest level of work you’re measuring within a service. As an example, a transaction might be a: @@ -108,7 +108,7 @@ As an example, a transaction might be a: Agents decide whether to sample transactions or not, and provide settings to control sampling behavior. -If sampled, the <> of a transaction are sent and stored as separate documents. +If sampled, the <> of a transaction are sent and stored as separate documents. Within one transaction there can be 0, 1, or many spans captured. A transaction contains: @@ -120,12 +120,12 @@ A transaction contains: ** Host - architecture, hostname, IP, etc. ** Process - args, PID, PPID, etc. ** URL - full, domain, port, query, etc. -** <> - (if supplied) email, ID, username, etc. +** <> - (if supplied) email, ID, username, etc. * Other relevant information depending on the agent. Example: The JavaScript RUM agent captures transaction marks, which are points in time relative to the start of the transaction with some label. -In addition, agents provide options for users to capture custom <>. -Metadata can be indexed - <>, or not-indexed - <>. +In addition, agents provide options for users to capture custom <>. +Metadata can be indexed - <>, or not-indexed - <>. Transactions are grouped by their `type` and `name` in the APM UI's {kibana-ref}/transactions.html[Transaction overview]. @@ -164,7 +164,7 @@ include::{apm-server-root}/docs/data/elasticsearch/generated/transactions.json[] ---- ==== -[[data-model-errors]] +[[apm-data-model-errors]] === Errors An error event contains at least @@ -177,17 +177,17 @@ An Error contains: * Both the captured `exception` and the captured `log` of an error can contain a `stack trace`, which is helpful for debugging. * The `culprit` of an error indicates where it originated. -* An error might relate to the <> during which it happened, +* An error might relate to the <> during which it happened, via the `transaction.id`. * Data about the environment in which the event is recorded: ** Service - environment, framework, language, etc. ** Host - architecture, hostname, IP, etc. ** Process - args, PID, PPID, etc. ** URL - full, domain, port, query, etc. -** <> - (if supplied) email, ID, username, etc. +** <> - (if supplied) email, ID, username, etc. -In addition, agents provide options for users to capture custom <>. -Metadata can be indexed - <>, or not-indexed - <>. +In addition, agents provide options for users to capture custom <>. +Metadata can be indexed - <>, or not-indexed - <>. TIP: Most agents limit keyword fields (e.g. `error.id`) to 1024 characters, non-keyword fields (e.g. `error.exception.message`) to 10,000 characters. @@ -217,7 +217,7 @@ include::{apm-server-root}/docs/data/elasticsearch/generated/errors.json[] ---- ==== -[[data-model-metrics]] +[[apm-data-model-metrics]] === Metrics **Metrics** measure the state of a system by gathering information on a regular interval. There are two types of APM metrics: @@ -577,14 +577,14 @@ that are based on parameters that can change. For example, user ids, product ids should be stripped away from the dimensions. // This heading is linked to from the APM UI section in Kibana -[[data-model-metadata]] +[[apm-data-model-metadata]] === Metadata Metadata can enrich your events and make application performance monitoring even more useful. Let's explore the different types of metadata that Elastic APM offers. [float] -[[data-model-labels]] +[[apm-data-model-labels]] ==== Labels Labels add *indexed* information to transactions, spans, and errors. @@ -594,7 +594,7 @@ Add additional key-value pairs to define multiple labels. * Indexed: Yes * {es} type: {ref}/object.html[object] * {es} field: `labels` -* Applies to: <> | <> | <> +* Applies to: <> | <> | <> Label values can be a string, boolean, or number, although some agents only support string values at this time. Because labels for a given key, regardless of agent used, are stored in the same place in {es}, @@ -618,7 +618,7 @@ Defining too many unique fields in an index is a condition that can lead to a * Rum: {apm-rum-ref-v}/agent-api.html#apm-add-labels[`addLabels`] [float] -[[data-model-custom]] +[[apm-data-model-custom]] ==== Custom context Custom context adds *non-indexed*, @@ -634,7 +634,7 @@ quickly debug performance issues or errors. * Indexed: No * {es} type: {ref}/object.html[object] * {es} fields: `transaction.custom` | `error.custom` -* Applies to: <> | <> +* Applies to: <> | <> IMPORTANT: Setting a circular object, a large object, or a non JSON serializable object can lead to errors. @@ -652,7 +652,7 @@ IMPORTANT: Setting a circular object, a large object, or a non JSON serializable * Rum: {apm-rum-ref-v}/agent-api.html#apm-set-custom-context[`setCustomContext`] [float] -[[data-model-user]] +[[apm-data-model-user]] ==== User context User context adds *indexed* user information to transactions and errors. @@ -661,7 +661,7 @@ Indexed means the data is searchable and aggregatable in {es}. * Indexed: Yes * {es} type: {ref}/keyword.html[keyword] * {es} fields: `user.email` | `user.name` | `user.id` -* Applies to: <> | <> +* Applies to: <> | <> [float] ===== Agent API reference diff --git a/docs/en/observability/apm/data-streams.asciidoc b/docs/en/observability/apm/data-streams.asciidoc index cdc7a23296..277359f61f 100644 --- a/docs/en/observability/apm/data-streams.asciidoc +++ b/docs/en/observability/apm/data-streams.asciidoc @@ -35,7 +35,7 @@ Or, you might create namespaces that correspond to strategic business units with By type, the APM data streams are: Traces:: -Traces are comprised of {observability-guide}/data-model.html[spans and transactions]. +Traces are comprised of {observability-guide}/apm-data-model.html[spans and transactions]. Traces are stored in the following data streams: + // tag::traces-data-streams[] @@ -90,7 +90,7 @@ Logs are stored in the following data streams: === What's next? * Data streams define not only how data is stored in {es}, but also how data is retained over time. -See <> to learn how to create your own data retention policies. +See <> to learn how to create your own data retention policies. -* See <> for information on APM storage and processing costs, +* See <> for information on APM storage and processing costs, processing and performance, and other index management features. diff --git a/docs/en/observability/apm/debugging.asciidoc b/docs/en/observability/apm/debugging.asciidoc index 4f5fcd91b2..15bd1f613c 100644 --- a/docs/en/observability/apm/debugging.asciidoc +++ b/docs/en/observability/apm/debugging.asciidoc @@ -1,4 +1,4 @@ -[[enable-apm-server-debugging]] +[[apm-enable-apm-server-debugging]] === Enable APM Server binary debugging ++++ diff --git a/docs/en/observability/apm/exploring-es-data.asciidoc b/docs/en/observability/apm/exploring-es-data.asciidoc index 47e80df122..c29e7b30c5 100644 --- a/docs/en/observability/apm/exploring-es-data.asciidoc +++ b/docs/en/observability/apm/exploring-es-data.asciidoc @@ -1,10 +1,10 @@ -[[exploring-es-data]] +[[apm-exploring-es-data]] = Explore data in {es} -* <> +* <> [float] -[[elasticsearch-query-examples]] +[[apm-elasticsearch-query-examples]] == {es} query examples Elastic APM data is stored in <>. diff --git a/docs/en/observability/apm/feature-roles.asciidoc b/docs/en/observability/apm/feature-roles.asciidoc index b880df6c38..39ba018973 100644 --- a/docs/en/observability/apm/feature-roles.asciidoc +++ b/docs/en/observability/apm/feature-roles.asciidoc @@ -1,4 +1,4 @@ -[[secure-comms-stack]] +[[apm-secure-comms-stack]] == Secure communication with the {stack} ++++ @@ -9,20 +9,20 @@ NOTE: This documentation only applies to the APM Server binary. Use role-based access control or API keys to grant APM Server users access to secured resources. -* <> -* <>. +* <> +* <>. After privileged users have been created, use authentication to connect to a secured Elastic cluster. -* <> -* <> +* <> +* <> -For secure communication between APM Server and APM Agents, see <>. +For secure communication between APM Server and APM Agents, see <>. -A reference of all available <> is also available. +A reference of all available <> is also available. [float] -[[security-overview]] +[[apm-security-overview]] === Security Overview APM Server exposes an HTTP endpoint, and as with anything that opens ports on your servers, @@ -30,7 +30,7 @@ you should be careful about who can connect to it. Firewall rules are recommended to ensure only authorized systems can connect. [float] -[[feature-roles]] +[[apm-feature-roles]] === Feature roles You can use role-based access control to grant users access to secured @@ -39,13 +39,13 @@ requirements and the minimum privileges required to use specific features. Typically, you need to create the following separate roles: -* <>: To publish events collected by APM Server. -* <>: One for sending monitoring +* <>: To publish events collected by APM Server. +* <>: One for sending monitoring information, and another for viewing it. -* <>: To create and manage API keys. -* <>: To view +* <>: To create and manage API keys. +* <>: To view APM Agent central configurations. -* <>: To read RUM source maps. +* <>: To read RUM source maps. {es-security-features} provides {ref}/built-in-roles.html[built-in roles] that grant a subset of the privileges needed by APM users. @@ -62,7 +62,7 @@ In general, there are three types of privileges you'll work with: *********************************** *********************************** //// -[[privileges-to-publish-events]] +[[apm-privileges-to-publish-events]] === Grant privileges and roles needed for writing events ++++ @@ -94,14 +94,14 @@ that has the following privileges: . Assign the *general writer role* to users who need to publish APM data. -. If <> is enabled, create a separate <>. +. If <> is enabled, create a separate <>. //// *********************************** *********************************** *********************************** *********************************** //// -[[privileges-to-publish-monitoring]] +[[apm-privileges-to-publish-monitoring]] === Grant privileges and roles needed for monitoring ++++ @@ -112,13 +112,13 @@ that has the following privileges: The privileges and roles needed to publish monitoring data depend on the method used to collect that data. -* <> -** <> -** <> -* <> +* <> +** <> +** <> +* <> [float] -[[privileges-to-publish-monitoring-write]] +[[apm-privileges-to-publish-monitoring-write]] ==== Publish monitoring data [IMPORTANT] @@ -129,10 +129,10 @@ Monitoring on {ecloud} is enabled by clicking the *Enable* button in the *Monito ==== [float] -[[privileges-to-publish-monitoring-internal]] +[[apm-privileges-to-publish-monitoring-internal]] ===== Internal collection -If you're using <> to +If you're using <> to collect metrics about APM Server, {security-features} provides the +apm_system+ {ref}/built-in-users.html[built-in user] and +apm_system+ {ref}/built-in-roles.html[built-in role] to send @@ -167,15 +167,15 @@ If you don't use the +apm_system+ user: -- [float] -[[privileges-to-publish-monitoring-metricbeat]] +[[apm-privileges-to-publish-monitoring-metricbeat]] ===== {metricbeat} collection NOTE: When using {metricbeat} to collect metrics, no roles or users need to be created with APM Server. -See <> +See <> for complete details on setting up {metricbeat} collection. -If you're <> to collect +If you're <> to collect metrics about APM Server, {security-features} provides the `remote_monitoring_user` {ref}/built-in-users.html[built-in user], and the `remote_monitoring_collector` and `remote_monitoring_agent` {ref}/built-in-roles.html[built-in roles] for @@ -205,7 +205,7 @@ information. Assign the following roles to the *monitoring user*: -- [float] -[[privileges-to-publish-monitoring-view]] +[[apm-privileges-to-publish-monitoring-view]] ==== View monitoring data To grant users the required privileges for viewing monitoring data: @@ -242,14 +242,14 @@ need to view monitoring data for APM Server: *********************************** *********************************** //// -[[privileges-api-key]] +[[apm-privileges-api-key]] === Grant privileges and roles needed for API key management ++++ Create an _API key_ user ++++ -You can configure <> to authorize requests to APM Server. +You can configure <> to authorize requests to APM Server. To create an APM Server user with the required privileges for creating and managing API keys: . Create an **API key role**, called something like `apm_api_key`, @@ -274,7 +274,7 @@ also assign the appropriate `apm` application-level privileges: Users with this role can only create API keys that have the same or lower access rights. [float] -[[privileges-api-key-example]] +[[apm-privileges-api-key-example]] === Example API key role The following example assigns the required cluster privileges, @@ -310,14 +310,14 @@ PUT _security/role/apm_api_key <1> *********************************** *********************************** //// -[[privileges-agent-central-config]] +[[apm-privileges-agent-central-config]] === Grant privileges and roles needed for APM Agent central configuration ++++ Create a _central config_ user ++++ -[[privileges-agent-central-config-server]] +[[apm-privileges-agent-central-config-server]] ==== APM Server agent central configuration management APM Server acts as a proxy between your APM agents and the {apm-app}. @@ -353,17 +353,17 @@ which requires the following privileges: TIP: Looking for privileges and roles needed to use central configuration from the {apm-app} or {apm-app} API? See {kibana-ref}/apm-app-central-config-user.html[{apm-app} central configuration user]. -[[privileges-rum-source-map]] +[[apm-privileges-rum-source-map]] === Grant privileges and roles needed for reading source maps ++++ Create a _source map_ user ++++ -[[privileges-rum-source-mapping]] +[[apm-privileges-rum-source-mapping]] ==== APM Server RUM source mapping -If <> is enabled, additional privileges are required to read source maps. +If <> is enabled, additional privileges are required to read source maps. To grant an APM Server user with the required privileges for reading RUM source maps from {es} directly without {kib}, assign the user the following privileges: @@ -388,7 +388,7 @@ See {kibana-ref}/rum-sourcemap-api.html[RUM source map API] for more details. *********************************** *********************************** //// -// [[privileges-create-api-keys]] +// [[apm-privileges-create-api-keys]] // === Grant privileges and roles needed to create APM Server API keys // ++++ diff --git a/docs/en/observability/apm/features.asciidoc b/docs/en/observability/apm/features.asciidoc index fdec4acd42..3a2ec61778 100644 --- a/docs/en/observability/apm/features.asciidoc +++ b/docs/en/observability/apm/features.asciidoc @@ -1,4 +1,4 @@ -[[features]] +[[apm-features]] == Elastic APM features ++++ @@ -8,11 +8,11 @@ * <> * <> * <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> * <> include::./apm-data-security.asciidoc[] diff --git a/docs/en/observability/apm/getting-started-apm-server.asciidoc b/docs/en/observability/apm/getting-started-apm-server.asciidoc index 659f427472..60051fdad8 100644 --- a/docs/en/observability/apm/getting-started-apm-server.asciidoc +++ b/docs/en/observability/apm/getting-started-apm-server.asciidoc @@ -1,4 +1,4 @@ -[[getting-started-apm-server]] +[[apm-getting-started-apm-server]] == Self manage APM Server ++++ @@ -21,12 +21,12 @@ If you're on this page, then you've chosen to self-manage the Elastic Stack, and you now must decide how to run and configure the APM Server. There are two options, and the components required are different for each: -* **<>** -* **<>** +* **<>** +* **<>** // * **<>** [float] -[[setup-apm-server-binary]] +[[apm-setup-apm-server-binary]] === APM Server binary Install, configure, and run the APM Server binary wherever you need it. @@ -58,7 +58,7 @@ image::./images/bin-ov.png[APM Server binary overview] **Configuration method**: YAML [float] -[[setup-fleet-managed-apm]] +[[apm-setup-fleet-managed-apm]] === Fleet-managed APM Server Fleet is a web-based UI in {kib} that is used to centrally manage {agent}s. @@ -91,7 +91,7 @@ image::./images/fm-ov.png[APM Server fleet overview] **Configuration method**: {kib} UI // [float] -// [[setup-apm-server-ea]] +// [[apm-setup-apm-server-ea]] // === Standalone Elastic Agent-managed APM Server // // I really don't know how to sell this option // Instead of installing and configuring the APM Server binary, let {agent} orchestrate it for you. @@ -168,7 +168,7 @@ image::images/apm-architecture-diy.png[Install Elastic APM yourself] // STEP 1 // ******************************************************* -[[installing]] +[[apm-installing]] ==== Step 1: Install NOTE: *Before you begin*: If you haven't installed the {stack}, do that now. @@ -176,7 +176,7 @@ See {stack-ref}/installing-elastic-stack.html[Learn how to install the {stack} on your own hardware]. To download and install APM Server, use the commands below that work with your system. -If you use `apt` or `yum`, you can <> +If you use `apt` or `yum`, you can <> to update to the newest version more easily. ifeval::["{release-state}"!="unreleased"] @@ -184,7 +184,7 @@ See our https://www.elastic.co/downloads/apm[download page] for other installation options, such as 32-bit images. endif::[] -[[deb]] +[[apm-deb]] *deb:* ifeval::["{release-state}"=="unreleased"] @@ -203,7 +203,7 @@ sudo dpkg -i apm-server-{apm_server_version}-amd64.deb endif::[] -[[rpm]] +[[apm-rpm]] *RPM:* ifeval::["{release-state}"=="unreleased"] @@ -222,7 +222,7 @@ sudo rpm -vi apm-server-{apm_server_version}-x86_64.rpm endif::[] -[[linux]] +[[apm-linux]] *Other Linux:* ifeval::["{release-state}"=="unreleased"] @@ -240,7 +240,7 @@ tar xzvf apm-server-{apm_server_version}-linux-x86_64.tar.gz ------------------------------------------------ endif::[] -[[mac]] +[[apm-mac]] *Mac:* ifeval::["{release-state}"=="unreleased"] @@ -259,7 +259,7 @@ tar xzvf apm-server-{apm_server_version}-darwin-x86_64.tar.gz endif::[] -[[installing-on-windows]] +[[apm-installing-on-windows]] *Windows:* ifeval::["{release-state}"=="unreleased"] @@ -294,10 +294,10 @@ For example: `PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-servi endif::[] -[[docker]] +[[apm-docker]] *Docker:* -See <> for deploying Docker containers. +See <> for deploying Docker containers. // ******************************************************* // STEP 2 @@ -370,7 +370,7 @@ See {kibana-ref}/api.html[Kibana API] to learn more about how to use the Kibana ===== Configure APM Configure APM by editing the `apm-server.yml` configuration file. -The location of this file varies by platform--see the <> for help locating it. +The location of this file varies by platform--see the <> for help locating it. A minimal configuration file might look like this: @@ -387,10 +387,10 @@ output.elasticsearch: <2> The {es} `host:port` to connect to. <3> This example uses basic authentication. The user provided here needs the privileges required to publish events to {es}. -To create a dedicated user for this role, see <>. +To create a dedicated user for this role, see <>. All available configuration options are outlined in -{observability-guide}/configuring-howto-apm-server.html[configuring APM Server]. +{observability-guide}/apm-configuring-howto-apm-server.html[configuring APM Server]. // ******************************************************* // STEP 3 @@ -411,9 +411,9 @@ To start APM Server, run: ./apm-server -e ---------------------------------- -NOTE: The `-e` <> enables logging to stderr and disables syslog/file output. +NOTE: The `-e` <> enables logging to stderr and disables syslog/file output. Remove this flag if you've enabled logging in the configuration file. -For Linux systems, see <>. +For Linux systems, see <>. You should see APM Server start up. It will try to connect to {es} on localhost port `9200` and expose an API to agents on port `8200`. @@ -425,13 +425,13 @@ You can change the defaults in `apm-server.yml` or by supplying a different addr ---------------------------------- [float] -[[running-deb-rpm]] +[[apm-running-deb-rpm]] ===== Debian Package / RPM For Debian package and RPM installations, we recommend the `apm-server` process runs as a non-root user. Therefore, these installation methods create an `apm-server` user which you can use to start the process. In addition, APM Server will only start if the configuration file is -<>. +<>. To start the APM Server in this case, run: @@ -441,13 +441,13 @@ sudo -u apm-server apm-server [] ---------------------------------- By default, APM Server loads its configuration file from `/etc/apm-server/apm-server.yml`. -See the <> for a full directory layout. +See the <> for a full directory layout. // ******************************************************* // STEP 4 // ******************************************************* -[[next-steps]] +[[apm-next-steps]] ==== Step 4: Next steps // Use a tagged region to pull APM Agent information from the APM Overview @@ -467,7 +467,7 @@ If you haven't already, you can now install APM Agents in your services! Once you have at least one {apm-agent} sending data to APM Server, you can start visualizing your data in the {kibana-ref}/xpack-apm.html[{apm-app}]. -If you're migrating from Jaeger, see <>. +If you're migrating from Jaeger, see <>. // Shared APM & YUM include::{observability-docs-root}/docs/en/observability/apm/repositories.asciidoc[] diff --git a/docs/en/observability/apm/high-availability.asciidoc b/docs/en/observability/apm/high-availability.asciidoc index 07f14db747..4928c0c09c 100644 --- a/docs/en/observability/apm/high-availability.asciidoc +++ b/docs/en/observability/apm/high-availability.asciidoc @@ -1,4 +1,4 @@ -[[high-availability]] +[[apm-high-availability]] === High Availability To achieve high availability @@ -8,7 +8,7 @@ for example HAProxy or Nginx. The endpoint `/` always returns an `HTTP 200`. You can configure your load balancer to send HTTP requests to this endpoint to determine if an APM Server is running. -See <> for more information on that endpoint. +See <> for more information on that endpoint. In case of temporal issues, like unavailable {es} or a sudden high workload, APM Server does not have an internal queue to buffer requests, diff --git a/docs/en/observability/apm/how-to.asciidoc b/docs/en/observability/apm/how-to.asciidoc index f9e553802e..9c16df1952 100644 --- a/docs/en/observability/apm/how-to.asciidoc +++ b/docs/en/observability/apm/how-to.asciidoc @@ -1,12 +1,12 @@ -[[how-to-guides]] +[[apm-how-to-guides]] == How-to guides Learn how to perform common APM configuration and management tasks. -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> include::./source-map-how-to.asciidoc[] diff --git a/docs/en/observability/apm/https.asciidoc b/docs/en/observability/apm/https.asciidoc index cb8ebf9d36..a73c37445a 100644 --- a/docs/en/observability/apm/https.asciidoc +++ b/docs/en/observability/apm/https.asciidoc @@ -1,5 +1,5 @@ [float] -[[securing-communication-elasticsearch]] +[[apm-securing-communication-elasticsearch]] == Secure communication with {es} When sending data to a secured cluster through the `elasticsearch` @@ -23,7 +23,7 @@ output.elasticsearch: password: "{pwd}" ---------------------------------------------------------------------- <1> This user needs the privileges required to publish events to {es}. -To create a user like this, see <>. +To create a user like this, see <>. -- * To use token-based *API key authentication*, specify the `api_key` under `output.elasticsearch`. @@ -37,10 +37,10 @@ output.elasticsearch: api_key: "KnR6yE41RrSowb0kQ0HWoA" <1> ---------------------------------------------------------------------- <1> This API key must have the privileges required to publish events to {es}. -To create an API key like this, see <>. +To create an API key like this, see <>. -- -[[beats-tls]] +[[apm-beats-tls]] * To use *Public Key Infrastructure (PKI) certificates* to authenticate users, specify the `certificate` and `key` settings under `output.elasticsearch`. For example: @@ -100,10 +100,10 @@ you can associate the IP address with your hostname in `/etc/hosts` ifndef::no_dashboards[] [role="xpack"] [float] -[[securing-communication-kibana]] +[[apm-securing-communication-kibana]] === Secure communication with the {kib} endpoint -If you've configured the <>, +If you've configured the <>, you can also specify credentials for authenticating with {kib} under `kibana.setup`. If no credentials are specified, {kib} will use the configured authentication method in the {es} output. @@ -124,13 +124,13 @@ endif::no_dashboards[] [role="xpack"] [float] -[[securing-communication-learn-more]] +[[apm-securing-communication-learn-more]] === Learn more about secure communication More information on sending data to a secured cluster is available in the configuration reference: -* <> -* <> +* <> +* <> ifndef::no_dashboards[] -* <> -endif::no_dashboards[] \ No newline at end of file +* <> +endif::no_dashboards[] diff --git a/docs/en/observability/apm/ilm-how-to.asciidoc b/docs/en/observability/apm/ilm-how-to.asciidoc index e960c40c88..59d57bcbff 100644 --- a/docs/en/observability/apm/ilm-how-to.asciidoc +++ b/docs/en/observability/apm/ilm-how-to.asciidoc @@ -2,7 +2,7 @@ // This content is reused in the Legacy ILM documentation ////////////////////////////////////////////////////////////////////////// -[[ilm-how-to]] +[[apm-ilm-how-to]] === {ilm-cap} :append-legacy: @@ -55,7 +55,7 @@ Each policy includes a rollover and delete definition: | `metrics-apm.app` | 30 days / 50 GB | 90 days -| Custom application specific metrics +| Custom application specific metrics | `metrics-apm.internal` | 30 days / 50 GB @@ -75,52 +75,52 @@ Each policy includes a rollover and delete definition: | `metrics-apm.service_destination_60m` | 30 days / 50GB | 390 days -| Aggregated transaction metrics powering the APM UI +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_summary_1m` | 7 days / 50GB | 90 days -| Aggregated transaction metrics powering the APM UI +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_summary_10m` | 14 days / 50GB | 180 days -| Aggregated transaction metrics powering the APM UI +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_summary_60m` | 30 days / 50GB | 390 days -| Aggregated transaction metrics powering the APM UI +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_transaction_1m` | 7 days / 50GB | 90 days -| Aggregated transaction metrics powering the APM UI +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_transaction_10m` | 14 days / 50GB -| 180 days -| Aggregated transaction metrics powering the APM UI +| 180 days +| Aggregated transaction metrics powering the APM UI | `metrics-apm.service_transaction_60m` | 30 days / 50GB -| 390 days -| Aggregated transaction metrics powering the APM UI +| 390 days +| Aggregated transaction metrics powering the APM UI | `metrics-apm.transaction_1m` | 7 days / 50GB -| 90 days -| Aggregated transaction metrics powering the APM UI +| 90 days +| Aggregated transaction metrics powering the APM UI | `metrics-apm.transaction_10m` | 14 days / 50GB -| 180 days -| Aggregated transaction metrics powering the APM UI +| 180 days +| Aggregated transaction metrics powering the APM UI | `metrics-apm.transaction_60m` | 30 days / 50GB -| 390 days -| Aggregated transaction metrics powering the APM UI +| 390 days +| Aggregated transaction metrics powering the APM UI |=== @@ -131,7 +131,7 @@ TIP: Default {ilm-init} policies can change between minor versions. This is not considered a breaking change as index management should continually improve and adapt to new features. [discrete] -[id="data-streams-custom-policy{append-legacy}"] +[id="apm-data-streams-custom-policy{append-legacy}"] === Configure a custom index lifecycle policy When the APM integration is installed, {fleet} creates a default `*@custom` component template for each data stream. @@ -140,7 +140,7 @@ The easiest way to configure a custom index lifecycle policy per data stream is This tutorial explains how to apply a custom index lifecycle policy to the `traces-apm` data stream. [discrete] -[id="data-streams-custom-one{append-legacy}"] +[id="apm-data-streams-custom-one{append-legacy}"] === Step 1: View data streams The **Data Streams** view in {kib} shows you the data streams, @@ -155,7 +155,7 @@ You may have more if your setup includes multiple namespaces. image::images/data-stream-overview.png[Data streams info] [discrete] -[id="data-streams-custom-two{append-legacy}"] +[id="apm-data-streams-custom-two{append-legacy}"] === Step 2: Create an index lifecycle policy . Navigate to **{stack-manage-app}** > **Index Lifecycle Policies**. @@ -165,7 +165,7 @@ Name your new policy; For this tutorial, I've chosen `custom-traces-apm-policy`. Customize the policy to your liking, and when you're done, click **Save policy**. [discrete] -[id="data-streams-custom-three{append-legacy}"] +[id="apm-data-streams-custom-three{append-legacy}"] === Step 3: Apply the index lifecycle policy To apply your new index lifecycle policy to the `traces-apm-*` data stream, @@ -190,11 +190,11 @@ If it does, click **Create component template**. image::images/create-component-template.png[Create component template] [discrete] -[id="data-streams-custom-four{append-legacy}"] +[id="apm-data-streams-custom-four{append-legacy}"] === Step 4: Roll over the data stream (optional) To confirm that the data stream is now using the new index template and {ilm-init} policy, -you can either repeat <>, or navigate to **{dev-tools-app}** and run the following: +you can either repeat <>, or navigate to **{dev-tools-app}** and run the following: [source,bash] ---- @@ -230,7 +230,7 @@ POST /traces-apm-default/_rollover/ ---- [discrete] -[id="data-streams-custom-policy-namespace{append-legacy}"] +[id="apm-data-streams-custom-policy-namespace{append-legacy}"] === Namespace-level index lifecycle policies It is also possible to create more granular index lifecycle policies that apply to individual namespaces. diff --git a/docs/en/observability/apm/ingest-pipelines.asciidoc b/docs/en/observability/apm/ingest-pipelines.asciidoc index 05cfcac9d2..6446fc283f 100644 --- a/docs/en/observability/apm/ingest-pipelines.asciidoc +++ b/docs/en/observability/apm/ingest-pipelines.asciidoc @@ -2,7 +2,7 @@ // This content is reused in the Legacy ingest pipeline ////////////////////////////////////////////////////////////////////////// -[[ingest-pipelines]] +[[apm-ingest-pipelines]] === Parse data using ingest pipelines :append-legacy: @@ -63,7 +63,7 @@ The process for creating a custom ingest pipeline is as follows: If you prefer more guidance, see one of these tutorials: -* <> — An APM-specific tutorial where you learn how to obfuscate passwords stored in the `http.request.body.original` field. +* <> — An APM-specific tutorial where you learn how to obfuscate passwords stored in the `http.request.body.original` field. * {fleet-guide}/data-streams-pipeline-tutorial.html[Transform data with custom ingest pipelines] — A basic Elastic integration tutorial where you learn how to add a custom field to incoming data. // end::ingest-pipelines[] \ No newline at end of file diff --git a/docs/en/observability/apm/jaeger-integration.asciidoc b/docs/en/observability/apm/jaeger-integration.asciidoc index 0db13449f1..5e025d1a34 100644 --- a/docs/en/observability/apm/jaeger-integration.asciidoc +++ b/docs/en/observability/apm/jaeger-integration.asciidoc @@ -1,4 +1,4 @@ -[[jaeger-integration]] +[[apm-jaeger-integration]] === Jaeger integration ++++ @@ -11,7 +11,7 @@ to the {stack}. Best of all, no instrumentation changes are needed in your application code. [float] -[[jaeger-architecture]] +[[apm-jaeger-architecture]] === Supported architecture Jaeger architecture supports different data formats and transport protocols @@ -24,25 +24,25 @@ supports communication with *Jaeger agents* via gRPC. SSL settings will automatically be applied to the APM integration's Jaeger gRPC endpoint. * The gRPC endpoint supports probabilistic sampling. -Sampling decisions can be configured <> with {apm-agent} central configuration, or <> in each Jaeger client. +Sampling decisions can be configured <> with {apm-agent} central configuration, or <> in each Jaeger client. See the https://www.jaegertracing.io/docs/1.27/architecture[Jaeger docs] for more information on Jaeger architecture. [float] -[[get-started-jaeger]] +[[apm-get-started-jaeger]] === Get started Connect your preexisting Jaeger setup to Elastic APM in three steps: -* <> -* <> -* <> +* <> +* <> +* <> -IMPORTANT: There are <> to this integration. +IMPORTANT: There are <> to this integration. [float] -[[configure-agent-client-jaeger]] +[[apm-configure-agent-client-jaeger]] ==== Configure Jaeger agents The APM integration serves Jaeger gRPC over the same host and port as the Elastic {apm-agent} protocol. @@ -50,7 +50,7 @@ The APM integration serves Jaeger gRPC over the same host and port as the Elasti include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/jaeger-widget.asciidoc[] [float] -[[configure-sampling-jaeger]] +[[apm-configure-sampling-jaeger]] ==== Configure Sampling The APM integration supports probabilistic sampling, which can be used to reduce the amount of data that your agents collect and send. @@ -59,11 +59,11 @@ For example, a value of `.2` means that 20% of traces will be sampled. There are two different ways to configure the sampling rate of your Jaeger agents: -* <> -* <> +* <> +* <> [float] -[[configure-sampling-central-jaeger]] +[[apm-configure-sampling-central-jaeger]] ===== {apm-agent} central configuration (default) Central sampling, with {apm-agent} central configuration, @@ -72,7 +72,7 @@ This means sample rates can be configured on the fly, on a per-service and per-e See {kibana-ref}/agent-configuration.html[Central configuration] to learn more. [float] -[[configure-sampling-local-jaeger]] +[[apm-configure-sampling-local-jaeger]] ===== Local sampling in each Jaeger client If you don't have access to the {apm-app}, @@ -82,13 +82,13 @@ See the official https://www.jaegertracing.io/docs/1.27/sampling/[Jaeger samplin for more information. [float] -[[configure-start-jaeger]] +[[apm-configure-start-jaeger]] ==== Start sending data That's it! Data sent from Jaeger clients to the APM Server can now be viewed in the {apm-app}. [float] -[[caveats-jaeger]] +[[apm-caveats-jaeger]] === Caveats There are some limitations and differences between Elastic APM and Jaeger that you should be aware of. @@ -105,8 +105,8 @@ it is not possible to mix and match the use of Elastic's APM agents and Jaeger's APM agents support a larger number of features, like multiple types of metrics, and application breakdown charts. When using Jaeger, features like this will not be available in the {apm-app}. -* Elastic APM's <> is different than Jaegers. +* Elastic APM's <> is different than Jaegers. For Jaeger trace data to work with Elastic's data model, we rely on spans being tagged with the appropriate https://github.com/opentracing/specification/blob/master/semantic_conventions.md[`span.kind`]. -** Server Jaeger spans are mapped to Elastic APM <>. -** Client Jaeger spans are mapped to Elastic APM <> -- unless the span is the root, in which case it is mapped to an Elastic APM <>. +** Server Jaeger spans are mapped to Elastic APM <>. +** Client Jaeger spans are mapped to Elastic APM <> -- unless the span is the root, in which case it is mapped to an Elastic APM <>. diff --git a/docs/en/observability/apm/keystore.asciidoc b/docs/en/observability/apm/keystore.asciidoc index 06822a4af1..39183ab3a3 100644 --- a/docs/en/observability/apm/keystore.asciidoc +++ b/docs/en/observability/apm/keystore.asciidoc @@ -1,4 +1,4 @@ -[[keystore]] +[[apm-keystore]] === Secrets keystore for secure settings ++++ @@ -37,14 +37,14 @@ name, the APM Server keystore lets you specify arbitrary names that you can reference in the APM Server configuration. To create and manage keys, use the `keystore` command. -See the <> for the full command syntax, +See the <> for the full command syntax, including optional flags. NOTE: The `keystore` command must be run by the same user who will run APM Server. [discrete] -[[creating-keystore]] +[[apm-creating-keystore]] === Create a keystore To create a secrets keystore, use: @@ -58,7 +58,7 @@ APM Server creates the keystore in the directory defined by the `path.data` configuration setting. [discrete] -[[add-keys-to-keystore]] +[[apm-add-keys-to-keystore]] === Add keys To store sensitive values, such as authentication credentials for {es}, @@ -87,7 +87,7 @@ cat /file/containing/setting/value | apm-server keystore add ES_PWD --stdin --fo ----- [discrete] -[[list-settings]] +[[apm-list-settings]] === List keys To list the keys defined in the keystore, use: @@ -98,7 +98,7 @@ apm-server keystore list ----- [discrete] -[[remove-settings]] +[[apm-remove-settings]] === Remove keys To remove a key from the keystore, use: diff --git a/docs/en/observability/apm/known-issues.asciidoc b/docs/en/observability/apm/known-issues.asciidoc index 5bace974a3..697e91c68a 100644 --- a/docs/en/observability/apm/known-issues.asciidoc +++ b/docs/en/observability/apm/known-issues.asciidoc @@ -1,4 +1,4 @@ -[[known-issues]] +[[apm-known-issues]] = Known issues APM has the following known issues: diff --git a/docs/en/observability/apm/log-correlation.asciidoc b/docs/en/observability/apm/log-correlation.asciidoc index 0eda3c403c..8735b4049e 100644 --- a/docs/en/observability/apm/log-correlation.asciidoc +++ b/docs/en/observability/apm/log-correlation.asciidoc @@ -1,4 +1,4 @@ -[[log-correlation]] +[[apm-log-correlation]] === Logging integration Elastic APM integrates with popular logging frameworks, making it easy to correlate your logs and traces. diff --git a/docs/en/observability/apm/manage-storage.asciidoc b/docs/en/observability/apm/manage-storage.asciidoc index 71d210532f..2b7019c9bf 100644 --- a/docs/en/observability/apm/manage-storage.asciidoc +++ b/docs/en/observability/apm/manage-storage.asciidoc @@ -1,11 +1,11 @@ -[[manage-storage]] +[[apm-manage-storage]] == Manage storage {agent} uses <> to store time series data across multiple indices. -Each data stream ships with a customizable <> that automates data retention as your indices grow and age. +Each data stream ships with a customizable <> that automates data retention as your indices grow and age. -The <> attempts to define a "typical" storage reference for Elastic APM, -and there are additional settings you can tweak to <>, +The <> attempts to define a "typical" storage reference for Elastic APM, +and there are additional settings you can tweak to <>, or to <>. In addition, the APM UI makes it easy to visualize your APM data usage with @@ -18,14 +18,14 @@ include::./data-streams.asciidoc[] include::./ilm-how-to.asciidoc[] -[[storage-guide]] +[[apm-storage-guide]] === Storage and sizing guide APM processing and storage costs are largely dominated by transactions, spans, and stack frames. -* <> describe an event captured by an Elastic {apm-agent} instrumenting a service. +* <> describe an event captured by an Elastic {apm-agent} instrumenting a service. They are the highest level of work being measuring within a service. -* <> belong to transactions. They measure from the start to end of an activity, +* <> belong to transactions. They measure from the start to end of an activity, and contain information about a specific code path that has been executed. * *Stack frames* belong to spans. Stack frames represent a function call on the call stack, and include attributes like function name, file name and path, line number, etc. @@ -81,7 +81,7 @@ APM data compresses quite well, so the storage cost in {es} will be considerably NOTE: These examples were indexing the same data over and over with minimal variation. Because of that, the compression ratios observed of 80-90% are somewhat optimistic. -[[reduce-apm-storage]] +[[apm-reduce-apm-storage]] === Reduce storage The amount of storage for APM data depends on several factors: @@ -92,14 +92,14 @@ Here are some ways you can reduce either the amount of APM data you're ingesting or the amount of data you're retaining. [float] -[[reduce-sample-rate]] +[[apm-reduce-sample-rate]] ==== Reduce the sample rate Distributed tracing can generate a substantial amount of data. More data can mean higher costs and more noise. Sampling aims to lower the amount of data ingested and the effort required to analyze that data. -See <> to learn more. +See <> to learn more. [float] ==== Enable span compression @@ -109,10 +109,10 @@ These repeated, similar spans often don't provide added benefit, especially if t Span compression takes these similar spans and compresses them into a single span-- retaining important information but reducing processing and storage overhead. -See <> to learn more. +See <> to learn more. [float] -[[reduce-stacktrace]] +[[apm-reduce-stacktrace]] ==== Reduce collected stack trace information Elastic APM agents collect `stacktrace` information under certain circumstances. @@ -131,22 +131,22 @@ or deleting specific indices. Depending on your use case, you can delete data: -* periodically with <> -* <> -* with the <> +* periodically with <> +* <> +* with the <> If you want to delete data for security or privacy reasons, see <>. [float] -[[delete-data-with-ilm]] +[[apm-delete-data-with-ilm]] ===== Delete data with {ilm} ({ilm-init}) Index lifecycle management enables you to automate how you want to manage your indices over time. You can base actions on factors such as shard size and performance requirements. -See <> to learn more. +See <> to learn more. [float] -[[delete-data-query]] +[[apm-delete-data-query]] ===== Delete data matching a query You can delete all APM documents matching a specific query with the {ref}/docs-delete-by-query.html[Delete By Query API]. @@ -167,7 +167,7 @@ POST /.ds-*-apm*/_delete_by_query ---- [float] -[[delete-data-in-kibana]] +[[apm-delete-data-in-kibana]] ===== Delete data with {kib} Index Management {kib}'s {ref}/index-mgmt.html[Index Management] allows you to manage your cluster's @@ -177,7 +177,7 @@ In {kib}, navigate to **Stack Management** > **Index Management** > **Data Strea Select the data streams you want to delete, and click **Delete data streams**. [float] -[[update-data]] +[[apm-update-data]] ==== Update existing data You might want to update documents that are already indexed. diff --git a/docs/en/observability/apm/metadata-api.asciidoc b/docs/en/observability/apm/metadata-api.asciidoc index b45c457402..95a770e37d 100644 --- a/docs/en/observability/apm/metadata-api.asciidoc +++ b/docs/en/observability/apm/metadata-api.asciidoc @@ -1,4 +1,4 @@ -[[metadata-api]] +[[apm-metadata-api]] === Metadata Every new connection to the APM Server starts with a `metadata` stanza. @@ -9,10 +9,10 @@ the APM Server hangs on to this information and applies it to other objects in t TIP: Metadata is stored under `context` when viewing documents in {es}. -* <> -* <> +* <> +* <> -[[kubernetes-data]] +[[apm-kubernetes-data]] [float] ==== Kubernetes data @@ -53,7 +53,7 @@ The table below maps these environment variables to the APM metadata event field | `KUBERNETES_POD_UID` |system.kubernetes.pod.uid |===== -[[metadata-schema]] +[[apm-metadata-schema]] [float] ==== Metadata Schema diff --git a/docs/en/observability/apm/metricset-api.asciidoc b/docs/en/observability/apm/metricset-api.asciidoc index bf3e6cca5c..76a02f746f 100644 --- a/docs/en/observability/apm/metricset-api.asciidoc +++ b/docs/en/observability/apm/metricset-api.asciidoc @@ -1,9 +1,9 @@ -[[metricset-api]] +[[apm-metricset-api]] === Metrics Metrics contain application metric data captured by an {apm-agent}. -[[metricset-schema]] +[[apm-metricset-schema]] [float] ==== Metric Schema diff --git a/docs/en/observability/apm/monitor-apm-server.asciidoc b/docs/en/observability/apm/monitor-apm-server.asciidoc index 487ac8574c..c882045b81 100644 --- a/docs/en/observability/apm/monitor-apm-server.asciidoc +++ b/docs/en/observability/apm/monitor-apm-server.asciidoc @@ -1,4 +1,4 @@ -[[monitor-apm]] +[[apm-monitor-apm]] == Monitor APM Server ++++ @@ -11,12 +11,12 @@ output failed event rate, and more. Select your deployment method to get started: -* <> -* <> -* <> +* <> +* <> +* <> [float] -[[monitor-apm-cloud]] +[[apm-monitor-apm-cloud]] === {ecloud} {ecloud} manages the installation and configuration of a monitoring agent for you -- so diff --git a/docs/en/observability/apm/monitor.asciidoc b/docs/en/observability/apm/monitor.asciidoc index fa74864e8b..291378d40c 100644 --- a/docs/en/observability/apm/monitor.asciidoc +++ b/docs/en/observability/apm/monitor.asciidoc @@ -1,4 +1,4 @@ -[[monitor-apm-self-install]] +[[apm-monitor-apm-self-install]] === Monitor a Fleet-managed APM Server ++++ @@ -10,11 +10,11 @@ NOTE: This guide assumes you are already ingesting APM data into the {stack}. In 8.0 and later, you can use {metricbeat} to collect data about APM Server and ship it to a monitoring cluster. To collect and ship monitoring data: -. <> -. <> +. <> +. <> [float] -[[configure-ea-monitoring-data]] +[[apm-configure-ea-monitoring-data]] ==== Configure {agent} to send monitoring data **** @@ -51,7 +51,7 @@ include::{ingest-docs-root}/docs/en/ingest-management/commands.asciidoc[tag=enro See the {fleet-guide}/elastic-agent-cmd-options.html[{agent} command reference] for more information on the enroll command. [float] -[[install-config-metricbeat]] +[[apm-install-config-metricbeat]] ==== Install and configure {metricbeat} to collect monitoring data . Install {metricbeat} on the same server as {agent}. To learn how, see diff --git a/docs/en/observability/apm/monitoring/monitoring-beats.asciidoc b/docs/en/observability/apm/monitoring/monitoring-beats.asciidoc index 3ba8ae3e4a..75a021290b 100644 --- a/docs/en/observability/apm/monitoring/monitoring-beats.asciidoc +++ b/docs/en/observability/apm/monitoring/monitoring-beats.asciidoc @@ -1,4 +1,4 @@ -[[monitoring]] +[[apm-monitoring]] = Monitor the APM Server binary ++++ @@ -9,13 +9,13 @@ There are two methods to monitor the APM Server binary. Make sure monitoring is enabled on your {es} cluster, then configure one of these methods to collect APM Server metrics: -* <> - Internal +* <> - Internal collectors send monitoring data directly to your monitoring cluster. ifndef::serverless[] -* <> - +* <> - {metricbeat} collects monitoring data from your APM Server instance and sends it directly to your monitoring cluster. -* <> - Local collection sends +* <> - Local collection sends select monitoring data directly to the standard indices of your monitoring cluster. endif::[] diff --git a/docs/en/observability/apm/monitoring/monitoring-internal-collection.asciidoc b/docs/en/observability/apm/monitoring/monitoring-internal-collection.asciidoc index be63c31c24..d4c70f65c2 100644 --- a/docs/en/observability/apm/monitoring/monitoring-internal-collection.asciidoc +++ b/docs/en/observability/apm/monitoring/monitoring-internal-collection.asciidoc @@ -1,5 +1,5 @@ [role="xpack"] -[[monitoring-internal-collection]] +[[apm-monitoring-internal-collection]] == Use internal collection to send monitoring data ++++ Use internal collection @@ -9,7 +9,7 @@ Use internal collectors to send {beats} monitoring data directly to your monitoring cluster. ifndef::serverless[] Or as an alternative to internal collection, use -<>. The benefit of using internal collection +<>. The benefit of using internal collection instead of {metricbeat} is that you have fewer pieces of software to install and maintain. endif::[] @@ -22,8 +22,8 @@ endif::[] . Create an API key or user that has appropriate authority to send system-level monitoring data to {es}. For example, you can use the built-in +apm_system+ user or assign the built-in +apm_system+ role to another user. For more -information on the required privileges, see <>. -For more information on how to use API keys, see <>. +information on the required privileges, see <>. +For more information on how to use API keys, see <>. . Add the `monitoring` settings in the APM Server configuration file. If you configured the {es} output and want to send APM Server monitoring events to @@ -98,7 +98,7 @@ monitoring: + You must specify the `username` as `""` explicitly so that the username from the client certificate (`CN`) is used. See -<> for more information about SSL settings. +<> for more information about SSL settings. ifndef::serverless[] . Start APM Server. diff --git a/docs/en/observability/apm/monitoring/monitoring-local-collection.asciidoc b/docs/en/observability/apm/monitoring/monitoring-local-collection.asciidoc index e4b41b2e9a..e6522f3bc7 100644 --- a/docs/en/observability/apm/monitoring/monitoring-local-collection.asciidoc +++ b/docs/en/observability/apm/monitoring/monitoring-local-collection.asciidoc @@ -1,4 +1,4 @@ -[[monitoring-local-collection]] +[[apm-monitoring-local-collection]] = Use the select metrics emitted directly to your monitoring cluster ++++ Use local collection @@ -10,12 +10,12 @@ The benefit of using local collection instead of internal collection is that the metrics are sent directly to your main monitoring index, making it easier to view shared data. -[[select-metrics]] +[[apm-select-metrics]] == The select metrics We only ship a select list of metrics, to avoid overwhelming your monitoring cluster. If you need the entire set of metrics and traces we can expose, you should use -<> instead of local +<> instead of local collection. Here is the list of every metrics we currently expose: diff --git a/docs/en/observability/apm/monitoring/monitoring-metricbeat.asciidoc b/docs/en/observability/apm/monitoring/monitoring-metricbeat.asciidoc index c7b2bcd9a6..19b1bcb942 100644 --- a/docs/en/observability/apm/monitoring/monitoring-metricbeat.asciidoc +++ b/docs/en/observability/apm/monitoring/monitoring-metricbeat.asciidoc @@ -1,5 +1,5 @@ [role="xpack"] -[[monitoring-metricbeat-collection]] +[[apm-monitoring-metricbeat-collection]] == Use {metricbeat} to send monitoring data [subs="attributes"] ++++ @@ -20,12 +20,12 @@ APM Server instance dies. To collect and ship monitoring data: -. <> +. <> -. <> +. <> [float] -[[configure-shipper]] +[[apm-configure-shipper]] === Configure the shipper you want to monitor . Enable the HTTP endpoint to allow external collection of monitoring data: @@ -65,7 +65,7 @@ monitoring.enabled: false // end::disable-beat-collection[] For more information, see -<>. +<>. -- . Configure host (optional). + @@ -99,7 +99,7 @@ ifndef::serverless[] endif::[] [float] -[[configure-metricbeat]] +[[apm-configure-metricbeat]] === Install and configure {metricbeat} to collect monitoring data . Install {metricbeat} on the same server as APM Server. To learn how, see @@ -245,7 +245,7 @@ Alternatively, if it's available in your environment, use the + TIP: If you're using {ilm}, the remote monitoring user requires additional privileges to create and read indices. For more -information, see <>. +information, see <>. .. Add the `username` and `password` settings to the {es} output information in the {metricbeat} configuration file. diff --git a/docs/en/observability/apm/monitoring/shared-monitor-config.asciidoc b/docs/en/observability/apm/monitoring/shared-monitor-config.asciidoc index ffb565b7b3..e69b10c228 100644 --- a/docs/en/observability/apm/monitoring/shared-monitor-config.asciidoc +++ b/docs/en/observability/apm/monitoring/shared-monitor-config.asciidoc @@ -1,5 +1,5 @@ [float] -[[configuration-monitor]] +[[apm-configuration-monitor]] === Settings for internal collection Use the following settings to configure internal collection when you are not @@ -26,13 +26,13 @@ configuration option contains the following fields: ===== `api_key` The detail of the API key to be used to send monitoring information to {es}. -See <> for more information. +See <> for more information. [float] ===== `bulk_max_size` The maximum number of metrics to bulk in a single {es} bulk API index request. -The default is `50`. For more information, see <>. +The default is `50`. For more information, see <>. [float] ===== `backoff.init` @@ -61,21 +61,21 @@ reduces the network usage but increases the CPU usage. ===== `headers` Custom HTTP headers to add to each request. For more information, see -<>. +<>. [float] ===== `hosts` The list of {es} nodes to connect to. Monitoring metrics are distributed to these nodes in round robin order. For more information, see -<>. +<>. [float] ===== `max_retries` The number of times to retry sending the monitoring metrics after a failure. After the specified number of retries, the metrics are typically dropped. The -default value is `3`. For more information, see <>. +default value is `3`. For more information, see <>. [float] ===== `parameters` @@ -113,7 +113,7 @@ however, the value of protocol is overridden by the scheme you specify in the UR ===== `proxy_url` The URL of the proxy to use when connecting to the {es} cluster. For more -information, see <>. +information, see <>. [float] ===== `timeout` @@ -126,7 +126,7 @@ The HTTP request timeout in seconds for the {es} request. The default is `90`. Configuration options for Transport Layer Security (TLS) or Secure Sockets Layer (SSL) parameters like the certificate authority (CA) to use for HTTPS-based connections. If the `ssl` section is missing, the host CAs are used for -HTTPS connections to {es}. For more information, see <>. +HTTPS connections to {es}. For more information, see <>. [float] ===== `username` diff --git a/docs/en/observability/apm/open-telemetry.asciidoc b/docs/en/observability/apm/open-telemetry.asciidoc index 9c2dc24908..b1eda01588 100644 --- a/docs/en/observability/apm/open-telemetry.asciidoc +++ b/docs/en/observability/apm/open-telemetry.asciidoc @@ -1,4 +1,4 @@ -[[open-telemetry]] +[[apm-open-telemetry]] == OpenTelemetry integration https://opentelemetry.io/docs/concepts/what-is-opentelemetry/[OpenTelemetry] is a set of APIs, SDKs, tooling, and integrations that enable the capture and management of @@ -23,7 +23,7 @@ These Elastic APM agents translate OpenTelemetry API calls to Elastic APM API ca This allows you to reuse your existing instrumentation to create Elastic APM transactions and spans-- avoiding vendor lock-in and having to redo manual instrumentation. -<>. +<>. **OpenTelemetry agent** @@ -31,7 +31,7 @@ The {stack} natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure by an OpenTelemetry agent can be sent directly to the {stack}. -<>. +<>. **OpenTelemetry collector** @@ -39,13 +39,13 @@ The {stack} natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure by an OpenTelemetry collector can be sent directly to the {stack}. -<>. +<>. **Lambda collector exporter** AWS Lambda functions can be instrumented with OpenTelemetry and monitored with Elastic {observability}. -<>. +<>. include::./otel-with-elastic.asciidoc[] @@ -66,6 +66,6 @@ Elastic integrates with OpenTelemetry, allowing you to reuse your existing instr to easily send observability data to the {stack}. For more information on how to combine Elastic and OpenTelemetry, -see {observability-guide}/open-telemetry.html[OpenTelemetry integration]. +see {observability-guide}/apm-open-telemetry.html[OpenTelemetry integration]. // end::otel-get-started[] // **** \ No newline at end of file diff --git a/docs/en/observability/apm/otel-attrs.asciidoc b/docs/en/observability/apm/otel-attrs.asciidoc index c32d30217f..7a4bac9654 100644 --- a/docs/en/observability/apm/otel-attrs.asciidoc +++ b/docs/en/observability/apm/otel-attrs.asciidoc @@ -1,4 +1,4 @@ -[[open-telemetry-resource-attributes]] +[[apm-open-telemetry-resource-attributes]] === Resource attributes A resource attribute is a key/value pair containing information about the entity producing telemetry. diff --git a/docs/en/observability/apm/otel-direct.asciidoc b/docs/en/observability/apm/otel-direct.asciidoc index cc88df74eb..8956b16446 100644 --- a/docs/en/observability/apm/otel-direct.asciidoc +++ b/docs/en/observability/apm/otel-direct.asciidoc @@ -1,4 +1,4 @@ -[[open-telemetry-direct]] +[[apm-open-telemetry-direct]] === OpenTelemetry native support ++++ @@ -9,11 +9,11 @@ The {stack} natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure can be sent directly to the {stack}. -* Send data to the {stack} from an <> -* Send data to the {stack} from an <> +* Send data to the {stack} from an <> +* Send data to the {stack} from an <> [float] -[[connect-open-telemetry-collector]] +[[apm-connect-open-telemetry-collector]] ==== Send data from an OpenTelemetry collector Connect your OpenTelemetry collector instances to Elastic {observability} using the OTLP exporter: @@ -64,7 +64,7 @@ To learn more about these exporters, see the OpenTelemetry Collector documentati https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter[OTLP/HTTP Exporter] or https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlpexporter[OTLP/gRPC exporter]. <5> Hostname and port of the APM Server endpoint. For example, `elastic-apm-server:8200`. -<6> Credential for Elastic APM <> (`Authorization: "Bearer a_secret_token"`) or <> (`Authorization: "ApiKey an_api_key"`). +<6> Credential for Elastic APM <> (`Authorization: "Bearer a_secret_token"`) or <> (`Authorization: "ApiKey an_api_key"`). <7> Environment-specific configuration parameters can be conveniently passed in as environment variables documented https://opentelemetry.io/docs/collector/configuration/#environment-variables[here] (e.g. `ELASTIC_APM_SERVER_ENDPOINT` and `ELASTIC_APM_SECRET_TOKEN`). <8> preview:[] To send OpenTelemetry logs to {stack} version 8.0+, declare a `logs` pipeline. @@ -76,7 +76,7 @@ but will bypass all of the validation and data processing that the APM Server pe In addition, your data will not be viewable in the {kib} {observability} apps if you use the `elasticsearch` exporter. [float] -[[instrument-apps-otel]] +[[apm-instrument-apps-otel]] ==== Send data from an OpenTelemetry agent To export traces and metrics to APM Server, instrument your services and applications @@ -104,14 +104,14 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ |=== | `OTEL_RESOURCE_ATTRIBUTES` | Fields that describe the service and the environment that the service runs in. See -<> for more information. +<> for more information. | `OTEL_EXPORTER_OTLP_ENDPOINT` | APM Server URL. The host and port that APM Server listens for events on. | `OTEL_EXPORTER_OTLP_HEADERS` | Authorization header that includes the Elastic APM Secret token or API key: `"Authorization=Bearer an_apm_secret_token"` or `"Authorization=ApiKey an_api_key"`. For information on how to format an API key, see -{observability-guide}/api-key.html[API keys]. +{observability-guide}/apm-api-key.html[API keys]. Please note the required space between `Bearer` and `an_apm_secret_token`, and `ApiKey` and `an_api_key`. @@ -121,11 +121,11 @@ Please note the required space between `Bearer` and `an_apm_secret_token`, and ` |=== -You are now ready to collect traces and <> before <> -and <> in {kib}. +You are now ready to collect traces and <> before <> +and <> in {kib}. [float] -[[open-telemetry-proxy-apm]] +[[apm-open-telemetry-proxy-apm]] ==== Proxy requests to APM Server APM Server supports both the https://opentelemetry.io/docs/specs/otlp/#otlpgrpc[OTLP/gRPC] and https://opentelemetry.io/docs/specs/otlp/#otlphttp[OTLP/HTTP] protocol on the same port as Elastic APM agent requests. For ease of setup, we recommend using OTLP/HTTP when proxying or load balancing requests to the APM Server. @@ -141,8 +141,8 @@ For more information on how APM Server services gRPC requests, see https://github.com/elastic/apm-server/blob/main/dev_docs/otel.md#muxing-grpc-and-http11[Muxing gRPC and HTTP/1.1]. [float] -[[open-telemetry-direct-next]] +[[apm-open-telemetry-direct-next]] ==== Next steps -* <> -* Learn about the <> +* <> +* Learn about the <> diff --git a/docs/en/observability/apm/otel-limitations.asciidoc b/docs/en/observability/apm/otel-limitations.asciidoc index 1158bdb900..b16b3cff72 100644 --- a/docs/en/observability/apm/otel-limitations.asciidoc +++ b/docs/en/observability/apm/otel-limitations.asciidoc @@ -1,8 +1,8 @@ -[[open-telemetry-known-limitations]] +[[apm-open-telemetry-known-limitations]] === Limitations [float] -[[open-telemetry-traces-limitations]] +[[apm-open-telemetry-traces-limitations]] ==== OpenTelemetry traces * Traces of applications using `messaging` semantics might be wrongly displayed as `transactions` in the APM UI, while they should be considered `spans` (see issue https://github.com/elastic/apm-server/issues/7001[#7001]). @@ -10,27 +10,27 @@ * Inability in APM views to view the "Time Spent by Span Type" (see issue https://github.com/elastic/apm-server/issues/5747[#5747]). [float] -[[open-telemetry-metrics-limitations]] +[[apm-open-telemetry-metrics-limitations]] ==== OpenTelemetry metrics * Inability to see host metrics in Elastic Metrics Infrastructure view when using the OpenTelemetry Collector host metrics receiver (see issue https://github.com/elastic/apm-server/issues/5310[#5310]). [float] -[[open-telemetry-logs-intake]] +[[apm-open-telemetry-logs-intake]] ==== OpenTelemetry logs * preview:[] The OpenTelemetry logs intake via APM Server is in technical preview. * The application logs data stream (`app_logs`) has dynamic mapping disabled. This means the automatic detection and mapping of new fields is disabled (see issue https://github.com/elastic/apm-server/issues/9093[#9093]). [float] -[[open-telemetry-otlp-limitations]] +[[apm-open-telemetry-otlp-limitations]] ==== OpenTelemetry Line Protocol (OTLP) APM Server supports both the https://opentelemetry.io/docs/specs/otlp/#otlpgrpc[OTLP/gRPC] and https://opentelemetry.io/docs/specs/otlp/#otlphttp[OTLP/HTTP] protocol with ProtoBuf payload. APM Server does not yet support JSON Encoding for OTLP/HTTP. [float] -[[open-telemetry-collector-exporter]] +[[apm-open-telemetry-collector-exporter]] ==== OpenTelemetry Collector exporter for Elastic The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.57.2/exporter/elasticexporter[OpenTelemetry Collector exporter for Elastic] @@ -38,10 +38,10 @@ has been deprecated and replaced by the native support of the OpenTelemetry Line // To learn more, see https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.57.2/exporter/elasticsearchexporter#migration[migration]. The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter#elasticsearch-exporter[Elasticsearch exporter for the OpenTelemetry Collector] -(which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and Elastic Observability. Use <> instead. +(which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and Elastic Observability. Use <> instead. [float] -[[open-telemetry-tbs]] +[[apm-open-telemetry-tbs]] ==== OpenTelemetry's tail-based sampling Tail-based sampling allows to make sampling decisions after all spans of a trace have been completed. @@ -50,9 +50,9 @@ This allows for more powerful and informed sampling rules. When using OpenTelemetry with Elastic APM, there are two different implementations available for tail-based sampling: * Tail-based sampling using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector -* Native <> +* Native <> Using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector comes with an important limitation. Elastic's APM backend calculates span and transaction metrics based on the incoming span events. These metrics are accurate for 100% sampling scenarios. In scenarios with probabilistic sampling, Elastic's APM backend is being informed about the sampling rate of spans and can extrapolate throughput metrics based on the incoming, partial data. However, with tail-based sampling there's no clear probability for sampling decisions as the rules can be more complex and the OpenTelemetry Collector does not provide sampling probability information to the Elastic backend that could be used for extrapolation of data. Therefore, there's no way for Elastic APM to properly extrapolate throughput and count metrics that are derived from span events that have been tail-based sampled in the OpenTelemetry Collector. In these scenarios, derived throughput and count metrics are likely to be inaccurate. -Therefore, we recommend using Elastic's native tail-based sampling when integrating with OpenTelemetry. \ No newline at end of file +Therefore, we recommend using Elastic's native tail-based sampling when integrating with OpenTelemetry. diff --git a/docs/en/observability/apm/otel-metrics.asciidoc b/docs/en/observability/apm/otel-metrics.asciidoc index e207caa7d1..4ffcf30256 100644 --- a/docs/en/observability/apm/otel-metrics.asciidoc +++ b/docs/en/observability/apm/otel-metrics.asciidoc @@ -1,4 +1,4 @@ -[[open-telemetry-collect-metrics]] +[[apm-open-telemetry-collect-metrics]] === Collect metrics IMPORTANT: When collecting metrics, please note that the https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api/latest/io/opentelemetry/api/metrics/DoubleValueRecorder.html[`DoubleValueRecorder`] @@ -25,7 +25,7 @@ See the https://github.com/open-telemetry/opentelemetry-specification/blob/main/ for more information. [float] -[[open-telemetry-verify-metrics]] +[[apm-open-telemetry-verify-metrics]] ==== Verify OpenTelemetry metrics data Use *Discover* to validate that metrics are successfully reported to {kib}. @@ -43,7 +43,7 @@ include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/open-ki only OpenTelemetry metrics documents. [float] -[[open-telemetry-visualize]] +[[apm-open-telemetry-visualize]] ==== Visualize in {kib} Use *Lens* to create visualizations for OpenTelemetry metrics. Lens enables you to build visualizations by dragging and dropping data fields. It makes smart visualization suggestions for your data, allowing you to switch between visualization types. diff --git a/docs/en/observability/apm/otel-other.asciidoc b/docs/en/observability/apm/otel-other.asciidoc index f896b83215..d044a24e3c 100644 --- a/docs/en/observability/apm/otel-other.asciidoc +++ b/docs/en/observability/apm/otel-other.asciidoc @@ -1,15 +1,15 @@ -[[open-telemetry-other-env]] +[[apm-open-telemetry-other-env]] === AWS Lambda Support -[[open-telemetry-aws-lambda]] +[[apm-open-telemetry-aws-lambda]] AWS Lambda functions can be instrumented with OpenTelemetry and monitored with Elastic {observability}. To get started, follow the official AWS Distro for OpenTelemetry Lambda https://aws-otel.github.io/docs/getting-started/lambda[getting started documentation] and configure the OpenTelemetry Collector to output traces and metrics to your Elastic cluster. [float] -[[open-telemetry-lambda-next]] +[[apm-open-telemetry-lambda-next]] ==== Next steps -* <> -* Add <> -* Learn about the <> +* <> +* Add <> +* Learn about the <> diff --git a/docs/en/observability/apm/otel-with-elastic.asciidoc b/docs/en/observability/apm/otel-with-elastic.asciidoc index 81c599bd4e..5228471775 100644 --- a/docs/en/observability/apm/otel-with-elastic.asciidoc +++ b/docs/en/observability/apm/otel-with-elastic.asciidoc @@ -1,4 +1,4 @@ -[[open-telemetry-with-elastic]] +[[apm-open-telemetry-with-elastic]] === OpenTelemetry API/SDK with Elastic APM agents Use the OpenTelemetry API/SDKs with Elastic APM agents. @@ -6,7 +6,7 @@ Supported Elastic APM agents translate OpenTelemetry API calls to Elastic APM AP This allows you to reuse your existing instrumentation to create Elastic APM transactions and spans. TIP: If you'd like to use OpenTelemetry to send data directly to the APM server instead, -see <>. +see <>. See the relevant Elastic APM agent documentation to get started: @@ -17,9 +17,9 @@ See the relevant Elastic APM agent documentation to get started: [float] -[[open-telemetry-elastic-next]] +[[apm-open-telemetry-elastic-next]] ==== Next steps -* <> -* Add <> -* Learn about the <> \ No newline at end of file +* <> +* Add <> +* Learn about the <> \ No newline at end of file diff --git a/docs/en/observability/apm/processing-performance.asciidoc b/docs/en/observability/apm/processing-performance.asciidoc index 27e66e3afc..6e98bbba0f 100644 --- a/docs/en/observability/apm/processing-performance.asciidoc +++ b/docs/en/observability/apm/processing-performance.asciidoc @@ -1,4 +1,4 @@ -[[processing-and-performance]] +[[apm-processing-and-performance]] === Processing and performance APM Server performance depends on a number of factors: memory and CPU available, @@ -11,8 +11,8 @@ We tested several scenarios to help you understand how to size the APM Server so * For each hardware template, testing with several sizes: 1 GB, 4 GB, 8 GB, and 32 GB. * For each size, using a fixed number of APM agents: 10 agents for 1 GB, 30 agents for 4 GB, 60 agents for 8 GB, and 240 agents for 32 GB. * In all scenarios, using medium sized events. Events include -<> and -<>. +<> and +<>. NOTE: You will also need to scale up {es} accordingly, potentially with an increased number of shards configured. For more details on scaling {es}, refer to the {ref}/scalability.html[{es} documentation]. @@ -83,4 +83,4 @@ This means that with a properly sized {es} instance, APM Server scales out linea NOTE: RUM deserves special consideration. The RUM agent runs in browsers, and there can be many thousands reporting to an APM Server with very variable network latency. Alternatively or in addition to scaling the APM Server, consider -decreasing the ingestion volume. Read more in <>. +decreasing the ingestion volume. Read more in <>. diff --git a/docs/en/observability/apm/release-notes.asciidoc b/docs/en/observability/apm/release-notes.asciidoc index dfd09a1059..bff627fd98 100644 --- a/docs/en/observability/apm/release-notes.asciidoc +++ b/docs/en/observability/apm/release-notes.asciidoc @@ -1,6 +1,6 @@ :root-dir: ../ -[[release-notes]] +[[apm-release-notes]] = Release notes :issue: https://github.com/elastic/apm-server/issues/ :pull: https://github.com/elastic/apm-server/pull/ diff --git a/docs/en/observability/apm/repositories.asciidoc b/docs/en/observability/apm/repositories.asciidoc index 355bb73007..56b61a6331 100644 --- a/docs/en/observability/apm/repositories.asciidoc +++ b/docs/en/observability/apm/repositories.asciidoc @@ -1,4 +1,4 @@ -[[setup-repositories]] +[[apm-setup-repositories]] ==== Repositories for APT and YUM We have repositories available for APT and YUM-based distributions. Note that we diff --git a/docs/en/observability/apm/sampling.asciidoc b/docs/en/observability/apm/sampling.asciidoc index 430f416343..700f652d7c 100644 --- a/docs/en/observability/apm/sampling.asciidoc +++ b/docs/en/observability/apm/sampling.asciidoc @@ -1,4 +1,4 @@ -[[sampling]] +[[apm-sampling]] === Transaction sampling Distributed tracing can generate a substantial amount of data. @@ -9,11 +9,11 @@ and lower mean time to recovery (MTTR). Elastic APM supports two types of sampling: -* <> -* <> +* <> +* <> [float] -[[head-based-sampling]] +[[apm-head-based-sampling]] ==== Head-based sampling In head-based sampling, the sampling decision for each trace is made when the trace is initiated. @@ -27,7 +27,7 @@ Head-based sampling is quick and easy to set up. Its downside is that it's entirely random -- interesting data might be discarded purely due to chance. -See <> to get started. +See <> to get started. **Distributed tracing with head-based sampling** @@ -53,7 +53,7 @@ The sample rate must be propagated between services and the managed intake servi OpenTelemetry offers multiple samplers. However, most samplers do not propagate the sample rate. This results in inaccurate span-based metrics, like APM throughput, latency, and error metrics. -For accurate span-based metrics when using head-based sampling with OpenTelemetry, you must use +For accurate span-based metrics when using head-based sampling with OpenTelemetry, you must use a [consistent probability sampler](https://opentelemetry.io/docs/specs/otel/trace/tracestate-probability-sampling/). These samplers propagate the sample rate between services and the managed intake service, resulting in accurate metrics. @@ -63,7 +63,7 @@ OpenTelemetry users should consider using tail-based sampling instead. Refer to the documentation of your favorite OpenTelemetry agent or SDK for more information on the availability of consistent probability samplers. [float] -[[tail-based-sampling]] +[[apm-tail-based-sampling]] ==== Tail-based sampling In tail-based sampling, the sampling decision for each trace is made after the trace has completed. @@ -78,7 +78,7 @@ The APM Server will therefore use more CPU, memory, and disk than with head-base However, because the tail-based sampling decision happens in APM Server, there is less data to transfer from APM Server to {es}. So running APM Server close to your instrumented services can reduce any increase in transfer costs that tail-based sampling brings. -See <> to get started. +See <> to get started. **Distributed tracing with tail-based sampling** @@ -96,16 +96,16 @@ image::./images/dt-sampling-example-3.png[Distributed tracing and tail based sam Tail-based sampling is implemented entirely in APM Server, and will work with traces sent by either Elastic APM agents or OpenTelemetry SDKs. -Due to <> when using https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor], we recommend using APM Server tail-based sampling instead. +Due to <> when using https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor], we recommend using APM Server tail-based sampling instead. [float] === Sampled data and visualizations A sampled trace retains all data associated with it. -A non-sampled trace drops all <> and <> data^1^. -Regardless of the sampling decision, all traces retain <> data. +A non-sampled trace drops all <> and <> data^1^. +Regardless of the sampling decision, all traces retain <> data. -Some visualizations in the {apm-app}, like latency, are powered by aggregated transaction and span <>. +Some visualizations in the {apm-app}, like latency, are powered by aggregated transaction and span <>. Metrics are based on sampled traces and weighted by the inverse sampling rate. For example, if you sample at 5%, each trace is counted as 20. As a result, as the variance of latency increases, or the sampling rate decreases, your level of error will increase. @@ -130,7 +130,7 @@ Here are some examples: Regardless of the above, cost conscious customers are likely to be fine with a lower sample rate. -[[configure-head-based-sampling]] +[[apm-configure-head-based-sampling]] ==== Configure head-based sampling There are three ways to adjust the head-based sampling rate of your APM agents: @@ -159,7 +159,7 @@ See the relevant agent's documentation for more details: * Python: {apm-py-ref-v}/configuration.html#config-transaction-sample-rate[`transaction_sample_rate`] * Ruby: {apm-ruby-ref-v}/configuration.html#config-transaction-sample-rate[`transaction_sample_rate`] -[[configure-tail-based-sampling]] +[[apm-configure-tail-based-sampling]] ==== Configure tail-based sampling Enable tail-based sampling with <>. diff --git a/docs/en/observability/apm/secret-token.asciidoc b/docs/en/observability/apm/secret-token.asciidoc index 4f65d16aec..1ac8993a1e 100644 --- a/docs/en/observability/apm/secret-token.asciidoc +++ b/docs/en/observability/apm/secret-token.asciidoc @@ -1,23 +1,23 @@ -[[secret-token]] +[[apm-secret-token]] === Secret token IMPORTANT: Secret tokens are sent as plain-text, -so they only provide security when used in combination with <>. +so they only provide security when used in combination with <>. When defined, secret tokens are used to authorize requests to the APM Server. Both the {apm-agent} and APM Server must be configured with the same secret token for the request to be accepted. To secure the communication between APM agents and the APM Server with a secret token: -. Make sure <> is enabled -. <> -. <> +. Make sure <> is enabled +. <> +. <> NOTE: Secret tokens are not applicable for the RUM Agent, as there is no way to prevent them from being publicly exposed. [float] -[[create-secret-token]] +[[apm-create-secret-token]] === Create a secret token // lint ignore fleet @@ -26,7 +26,7 @@ The secret token can be found and reset in the {ecloud} console under **Deployme include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/secret-token-widget.asciidoc[] -[[configure-secret-token]] +[[apm-configure-secret-token]] [float] === Configure the secret token in your APM agents diff --git a/docs/en/observability/apm/secure-agent-communication.asciidoc b/docs/en/observability/apm/secure-agent-communication.asciidoc index e2fca3bee1..2e34ab600b 100644 --- a/docs/en/observability/apm/secure-agent-communication.asciidoc +++ b/docs/en/observability/apm/secure-agent-communication.asciidoc @@ -1,4 +1,4 @@ -[[secure-agent-communication]] +[[apm-secure-agent-communication]] == Secure communication with APM agents ++++ @@ -8,16 +8,16 @@ Communication between APM agents and {agent} can be both encrypted and authenticated. It is strongly recommended to use both TLS encryption and authentication as secrets are sent as plain text. -* <> -* <> -* <> +* <> +* <> +* <> As soon as an authenticated communication is enabled, requests without a valid token or API key will be denied. If both API keys and a secret token are enabled, APM agents can choose whichever mechanism they support. In some use-cases, like when an {apm-agent} is running on the client side, -authentication is not possible. See <> for more information. +authentication is not possible. See <> for more information. include::./tls-comms.asciidoc[] diff --git a/docs/en/observability/apm/secure-comms.asciidoc b/docs/en/observability/apm/secure-comms.asciidoc index 6e1a9ce553..65b03d9543 100644 --- a/docs/en/observability/apm/secure-comms.asciidoc +++ b/docs/en/observability/apm/secure-comms.asciidoc @@ -1,4 +1,4 @@ -[[securing-apm-server]] +[[apm-securing-apm-server]] == Secure communication with the {stack} ++++ @@ -8,9 +8,9 @@ The following topics provide information about securing the APM Server process and connecting securely to APM agents and the {stack}. -* <> -* <> -* <> +* <> +* <> +* <> :leveloffset: +1 include::secure-agent-communication.asciidoc[] diff --git a/docs/en/observability/apm/setting-up-and-running.asciidoc b/docs/en/observability/apm/setting-up-and-running.asciidoc index 5078cd1484..db97f75751 100644 --- a/docs/en/observability/apm/setting-up-and-running.asciidoc +++ b/docs/en/observability/apm/setting-up-and-running.asciidoc @@ -1,5 +1,5 @@ -[[setting-up-and-running]] +[[apm-setting-up-and-running]] == APM Server advanced setup ++++ @@ -11,12 +11,12 @@ for basic installation and running instructions. This section includes additional information on how to set up and run APM Server, including: -* <> -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +* <> include::{observability-docs-root}/docs/en/observability/apm/shared-directory-layout.asciidoc[] diff --git a/docs/en/observability/apm/shared-directory-layout.asciidoc b/docs/en/observability/apm/shared-directory-layout.asciidoc index 5eefe27e17..f9837466cc 100644 --- a/docs/en/observability/apm/shared-directory-layout.asciidoc +++ b/docs/en/observability/apm/shared-directory-layout.asciidoc @@ -9,7 +9,7 @@ //// include::../../libbeat/docs/shared-directory-layout.asciidoc[] ////////////////////////////////////////////////////////////////////////// -[[directory-layout]] +[[apm-directory-layout]] === Installation layout View the installation layout and default paths for both Fleet-managed APM Server and the APM Server binary. diff --git a/docs/en/observability/apm/shared-docker.asciidoc b/docs/en/observability/apm/shared-docker.asciidoc index 5ca686f47a..335e3d68f3 100644 --- a/docs/en/observability/apm/shared-docker.asciidoc +++ b/docs/en/observability/apm/shared-docker.asciidoc @@ -1,4 +1,4 @@ -[[running-on-docker]] +[[apm-running-on-docker]] ==== Run APM Server on Docker Docker images for APM Server are available from the Elastic Docker @@ -121,7 +121,7 @@ docker run \ endif::[] ifndef::has_docker_label_ex[] -The +apm-server.docker.yml+ downloaded earlier should be customized for your environment. See <> for more details. Edit the configuration file and customize it to match your environment then re-deploy your APM Server container. +The +apm-server.docker.yml+ downloaded earlier should be customized for your environment. See <> for more details. Edit the configuration file and customize it to match your environment then re-deploy your APM Server container. endif::[] [float] diff --git a/docs/en/observability/apm/shared-kibana-endpoint.asciidoc b/docs/en/observability/apm/shared-kibana-endpoint.asciidoc index e72315901f..195216122e 100644 --- a/docs/en/observability/apm/shared-kibana-endpoint.asciidoc +++ b/docs/en/observability/apm/shared-kibana-endpoint.asciidoc @@ -2,7 +2,7 @@ APM Server uses the APM integration to set up and manage APM templates, policies, and pipelines. To confirm the integration is installed, APM Server polls either {es} or {kib} on startup. When using a non-{es} output, APM Server requires access to {kib} via the -<>. +<>. Example configuration: diff --git a/docs/en/observability/apm/shared-ssl-config.asciidoc b/docs/en/observability/apm/shared-ssl-config.asciidoc index 11579ab303..b40dca2179 100644 --- a/docs/en/observability/apm/shared-ssl-config.asciidoc +++ b/docs/en/observability/apm/shared-ssl-config.asciidoc @@ -1,4 +1,4 @@ -[[configuration-ssl]] +[[apm-configuration-ssl]] == SSL/TLS output settings **** @@ -20,12 +20,12 @@ output.elasticsearch.ssl.key: "/etc/pki/client/cert.key" There are a number of SSL/TLS configuration options available to you: -* <> -* <> -* <> +* <> +* <> +* <> [discrete] -[[ssl-common-config]] +[[apm-ssl-common-config]] === Common configuration options Common SSL configuration options can be used in both client and server configurations. @@ -33,7 +33,7 @@ You can specify the following options in the `ssl` section of each subsystem tha supports SSL. [float] -[[enabled]] +[[apm-enabled]] ==== `enabled` To disable SSL configuration, set the value to `false`. The default value is `true`. @@ -45,7 +45,7 @@ SSL settings are disabled if either `enabled` is set to `false` or the ===== [float] -[[supported-protocols]] +[[apm-supported-protocols]] ==== `supported_protocols` List of allowed SSL/TLS versions. If SSL/TLS server decides for protocol versions @@ -57,7 +57,7 @@ setting is a list of allowed protocol versions: The default value is `[TLSv1.1, TLSv1.2, TLSv1.3]`. [float] -[[cipher-suites]] +[[apm-cipher-suites]] ==== `cipher_suites` The list of cipher suites to use. The first entry has the highest priority. @@ -128,7 +128,7 @@ Here is a list of acronyms used in defining the cipher suites: // end::cipher_suites[] [float] -[[curve-types]] +[[apm-curve-types]] ==== `curve_types` The list of curve types for ECDHE (Elliptic Curve Diffie-Hellman ephemeral key exchange). @@ -141,7 +141,7 @@ The following elliptic curve types are available: * X25519 [float] -[[ca-sha256]] +[[apm-ca-sha256]] ==== `ca_sha256` This configures a certificate pin that you can use to ensure that a specific certificate is part of the verified chain. @@ -153,14 +153,14 @@ If this option is used with `verification_mode` set to `none`, the check will a it will not receive any verified chains. [discrete] -[[ssl-client-config]] +[[apm-ssl-client-config]] === Client configuration options You can specify the following options in the `ssl` section of each subsystem that supports SSL. [float] -[[client-certificate-authorities]] +[[apm-client-certificate-authorities]] ==== `certificate_authorities` The list of root certificates for verifications is required. @@ -196,7 +196,7 @@ certificate_authorities: ---- [float] -[[client-certificate]] +[[apm-client-certificate]] ==== `certificate: "/etc/pki/client/cert.pem"` The path to the certificate for SSL client authentication is only required if @@ -206,7 +206,7 @@ might fail if the server requests client authentication. If the SSL server does require client authentication, the certificate will be loaded, but not requested or used by the server. -When this option is configured, the <> option is also required. +When this option is configured, the <> option is also required. The certificate option support embedding of the certificate: [source,yaml] @@ -234,7 +234,7 @@ certificate: | ---- [float] -[[client-key]] +[[apm-client-key]] ==== `key: "/etc/pki/client/cert.key"` The client certificate key used for client authentication and is only required @@ -274,14 +274,14 @@ key: | ---- [float] -[[client-key-passphrase]] +[[apm-client-key-passphrase]] ==== `key_passphrase` The passphrase used to decrypt an encrypted key stored in the configured `key` file. [float] -[[client-verification-mode]] +[[apm-client-verification-mode]] ==== `verification_mode` Controls the verification of server certificates. Valid values are: @@ -311,14 +311,14 @@ production environments is strongly discouraged. The default value is `full`. [discrete] -[[ssl-server-config]] +[[apm-ssl-server-config]] === Server configuration options You can specify the following options in the `ssl` section of each subsystem that supports SSL. [float] -[[server-certificate-authorities]] +[[apm-server-certificate-authorities]] ==== `certificate_authorities` The list of root certificates for client verifications is only required if @@ -355,13 +355,13 @@ certificate_authorities: ---- [float] -[[server-certificate]] +[[apm-server-certificate]] ==== `certificate: "/etc/pki/server/cert.pem"` For server authentication, the path to the SSL authentication certificate must be specified for TLS. If the certificate is not specified, startup will fail. -When this option is configured, the <> option is also required. +When this option is configured, the <> option is also required. The certificate option support embedding of the certificate: [source,yaml] @@ -389,7 +389,7 @@ certificate: | ---- [float] -[[server-key]] +[[apm-server-key]] ==== `key: "/etc/pki/server/cert.key"` The server certificate key used for authentication is required. @@ -429,13 +429,13 @@ key: | ---- [float] -[[server-key-passphrase]] +[[apm-server-key-passphrase]] ==== `key_passphrase` The passphrase is used to decrypt an encrypted key stored in the configured `key` file. [float] -[[server-verification-mode]] +[[apm-server-verification-mode]] ==== `verification_mode` Controls the verification of client certificates. Valid values are: @@ -465,7 +465,7 @@ production environments is strongly discouraged. The default value is `full`. [float] -[[server-renegotiation]] +[[apm-server-renegotiation]] ==== `renegotiation` This configures what types of TLS renegotiation are supported. The valid options diff --git a/docs/en/observability/apm/shared-ssl-logstash-config.asciidoc b/docs/en/observability/apm/shared-ssl-logstash-config.asciidoc index ec44a17e77..2047385041 100644 --- a/docs/en/observability/apm/shared-ssl-logstash-config.asciidoc +++ b/docs/en/observability/apm/shared-ssl-logstash-config.asciidoc @@ -1,5 +1,5 @@ [float] -[[configuring-ssl-logstash]] +[[apm-configuring-ssl-logstash]] == Secure communication with {ls} You can use SSL mutual authentication to secure connections between APM Server and {ls}. This ensures that @@ -35,7 +35,7 @@ output.logstash: ssl.key: "/etc/client.key" ------------------------------------------------------------------------------ + -For more information about these configuration options, see <>. +For more information about these configuration options, see <>. . Configure {ls} to use SSL. In the {ls} config file, specify the following settings for the {logstash-ref}/plugins-inputs-beats.html[{beats} input plugin for {ls}]: + @@ -66,7 +66,7 @@ For more information about these options, see the {logstash-ref}/plugins-inputs-beats.html[documentation for the {beats} input plugin]. [float] -[[testing-ssl-logstash]] +[[apm-testing-ssl-logstash]] === Validate the {ls} server's certificate Before running APM Server, you should validate the {ls} server's certificate. You can use `curl` to validate the certificate even though the protocol used to communicate with {ls} is not based on HTTP. For example: @@ -116,7 +116,7 @@ Validation for this test fails because the certificate is not valid for the spec curl: (51) SSL: certificate verification failed (result: 5) ------------------------------------------------------------------------------ -See the <> for info about resolving this issue. +See the <> for info about resolving this issue. [float] === Test the APM Server to {ls} connection @@ -129,5 +129,5 @@ the foreground so you can quickly see any errors that occur: apm-server -c apm-server.yml -e -v ------------------------------------------------------------------------------ -Any errors will be printed to the console. See the <> for info about -resolving common errors. \ No newline at end of file +Any errors will be printed to the console. See the <> for info about +resolving common errors. diff --git a/docs/en/observability/apm/shared-systemd.asciidoc b/docs/en/observability/apm/shared-systemd.asciidoc index 6f2c5b1971..6db6d33565 100644 --- a/docs/en/observability/apm/shared-systemd.asciidoc +++ b/docs/en/observability/apm/shared-systemd.asciidoc @@ -1,4 +1,4 @@ -[[running-with-systemd]] +[[apm-running-with-systemd]] === APM Server and systemd IMPORTANT: These commands only apply to the APM Server binary installation method. @@ -73,7 +73,7 @@ override to change the default options. NOTE: You can use `BEAT_LOG_OPTS` to set debug selectors for logging. However, to configure logging behavior, set the logging options described in -<>. +<>. To override these variables, create a drop-in unit file in the +/etc/systemd/system/apm-server.service.d+ directory. diff --git a/docs/en/observability/apm/source-map-how-to.asciidoc b/docs/en/observability/apm/source-map-how-to.asciidoc index c8b03a785d..7470bd565c 100644 --- a/docs/en/observability/apm/source-map-how-to.asciidoc +++ b/docs/en/observability/apm/source-map-how-to.asciidoc @@ -1,4 +1,4 @@ -[[source-map-how-to]] +[[apm-source-map-how-to]] === Create and upload source maps (RUM) Minifying JavaScript bundles in production is a common practice; @@ -26,12 +26,12 @@ image::images/source-map-after.png[{apm-app} with source mapping] Follow the steps below to enable source mapping your error stack traces in the {apm-app}: -* <> -* <> -* <> +* <> +* <> +* <> [float] -[[source-map-rum-initialize]] +[[apm-source-map-rum-initialize]] === Initialize the RUM Agent Set the service name and version of your application when initializing the RUM Agent. @@ -61,7 +61,7 @@ It can also be any other unique string that indicates a specific version of your The APM integration uses the service name and version to match the correct source map file to each stack trace. [float] -[[source-map-rum-generate]] +[[apm-source-map-rum-generate]] === Generate a source map To be compatible with Elastic APM, source maps must follow the @@ -94,7 +94,7 @@ module.exports = { <1> If you're using a different method of defining `serviceVersion`, you can set it here. [float] -[[source-map-rum-upload]] +[[apm-source-map-rum-upload]] === Upload the source map TIP: When uploading a source map, ensure that RUM support is enabled in the APM integration. @@ -113,7 +113,7 @@ Each example includes the four fields necessary for APM Server to later map mini If you have multiple source maps, you'll need to upload each individually. [float] -[[source-map-curl]] +[[apm-source-map-curl]] ==== Upload via curl Here’s an example curl request that uploads the source map file created in the previous step. @@ -135,7 +135,7 @@ curl -X POST "http://localhost:5601/api/apm/sourcemaps" \ <2> The API key used here needs to have appropriate {kibana-ref}/rum-sourcemap-api.html[privileges] [float] -[[source-map-custom-app]] +[[apm-source-map-custom-app]] ==== Upload via a custom app To ensure uploading source maps become a part of your deployment process, @@ -168,7 +168,7 @@ request.post({url: 'http://localhost:5601/api/apm/sourcemaps',formData: formData ---- [float] -[[source-map-next]] +[[apm-source-map-next]] === What happens next Source maps are stored in {es}. When you upload a source map, a new {es} document is created diff --git a/docs/en/observability/apm/span-compression.asciidoc b/docs/en/observability/apm/span-compression.asciidoc index 74ffa75d0e..8156639bd3 100644 --- a/docs/en/observability/apm/span-compression.asciidoc +++ b/docs/en/observability/apm/span-compression.asciidoc @@ -1,4 +1,4 @@ -[[span-compression]] +[[apm-span-compression]] === Span compression In some cases, APM agents may collect large amounts of very similar or identical spans in a transaction. @@ -19,7 +19,7 @@ Regardless of the compression strategy, a span is eligible for compression if: [float] -[[span-compression-strategy]] +[[apm-span-compression-strategy]] === Compression strategies The {apm-agent} can select between two strategies to decide if two adjacent spans can be compressed. @@ -27,7 +27,7 @@ Both strategies have the benefit that only one previous span needs to be kept in This is important to ensure that the agent doesn't require large amounts of memory to enable span compression. [float] -[[span-compression-same]] +[[apm-span-compression-same]] ==== Same-Kind strategy The agent selects this strategy if two adjacent spans have the same: @@ -37,7 +37,7 @@ The agent selects this strategy if two adjacent spans have the same: * `destination.service.resource` (e.g. database name) [float] -[[span-compression-exact]] +[[apm-span-compression-exact]] ==== Exact-Match strategy The agent selects this strategy if two adjacent spans have the same: @@ -48,7 +48,7 @@ The agent selects this strategy if two adjacent spans have the same: * `destination.service.resource` (e.g. database name) [float] -[[span-compression-settings]] +[[apm-span-compression-settings]] === Settings The agent has configuration settings to define upper thresholds in terms of span duration for both strategies. @@ -56,7 +56,7 @@ For the "Same-Kind" strategy, the default limit is 0 milliseconds, which means t Spans with longer duration are not compressed. Please refer to the agent documentation for specifics. [float] -[[span-compression-support]] +[[apm-span-compression-support]] === Agent support Support for span compression is available in these agents: diff --git a/docs/en/observability/apm/ssl-input-settings.asciidoc b/docs/en/observability/apm/ssl-input-settings.asciidoc index cf44d0bd74..1113c4265d 100644 --- a/docs/en/observability/apm/ssl-input-settings.asciidoc +++ b/docs/en/observability/apm/ssl-input-settings.asciidoc @@ -1,4 +1,4 @@ -[[agent-server-ssl]] +[[apm-agent-server-ssl]] === SSL/TLS input settings **** @@ -8,7 +8,7 @@ Most options on this page are supported by all APM Server deployment methods. **** These settings apply to SSL/TLS communication between the APM Server and APM Agents. -See <> to learn more. +See <> to learn more. include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/tls-widget.asciidoc[] diff --git a/docs/en/observability/apm/tab-widgets/anonymous-auth.asciidoc b/docs/en/observability/apm/tab-widgets/anonymous-auth.asciidoc index 73f6db156b..0f58277b43 100644 --- a/docs/en/observability/apm/tab-widgets/anonymous-auth.asciidoc +++ b/docs/en/observability/apm/tab-widgets/anonymous-auth.asciidoc @@ -1,5 +1,5 @@ // tag::fleet-managed[] -When an <> or <> is configured, +When an <> or <> is configured, anonymous authentication must be enabled to collect RUM data. Set **Anonymous Agent access** to true to enable anonymous authentication. @@ -16,14 +16,14 @@ This allows you to specify the maximum number of requests allowed per unique IP // end::fleet-managed[] // tag::binary[] -When an <> or <> is configured, +When an <> or <> is configured, anonymous authentication must be enabled to collect RUM data. -To enable anonymous access, set either <> or -<> to `true`. +To enable anonymous access, set either <> or +<> to `true`. Because anyone can send anonymous events to the APM Server, additional configuration variables are available to rate limit the number anonymous events the APM Server processes; throughput is equal to the `rate_limit.ip_limit` times the `rate_limit.event_limit`. -See <> for a complete list of options and a sample configuration file. +See <> for a complete list of options and a sample configuration file. // end::binary[] \ No newline at end of file diff --git a/docs/en/observability/apm/tab-widgets/api-key.asciidoc b/docs/en/observability/apm/tab-widgets/api-key.asciidoc index e77ce12121..2332c643c3 100644 --- a/docs/en/observability/apm/tab-widgets/api-key.asciidoc +++ b/docs/en/observability/apm/tab-widgets/api-key.asciidoc @@ -1,5 +1,5 @@ // tag::fleet-managed[] -Enable API key authorization in the <>. +Enable API key authorization in the <>. You should also set a limit on the number of unique API keys that APM Server allows per minute; this value should be the number of unique API keys configured in your monitored services. // end::fleet-managed[] @@ -21,5 +21,5 @@ apm-server.auth.api_key.limit: 50 <2> <2> Restricts the number of unique API keys that {es} allows each minute. This value should be the number of unique API keys configured in your monitored services. -All other configuration options are described in <>. +All other configuration options are described in <>. // end::binary[] \ No newline at end of file diff --git a/docs/en/observability/apm/tab-widgets/no-data-indexed.asciidoc b/docs/en/observability/apm/tab-widgets/no-data-indexed.asciidoc index 57a841a648..3a42063882 100644 --- a/docs/en/observability/apm/tab-widgets/no-data-indexed.asciidoc +++ b/docs/en/observability/apm/tab-widgets/no-data-indexed.asciidoc @@ -19,12 +19,12 @@ containing `[request]` in the APM Server logs. If no requests are logged, confirm that: -. SSL isn't <>. +. SSL isn't <>. . The host is correct. For example, if you're using Docker, ensure a bind to the right interface (for example, set `apm-server.host = 0.0.0.0:8200` to match any IP) and set the `SERVER_URL` setting in the {apm-agent} accordingly. If you see requests coming through the APM Server but they are not accepted (a response code other than `202`), -see <> to narrow down the possible causes. +see <> to narrow down the possible causes. **Instrumentation gaps** @@ -48,7 +48,7 @@ apm-server test output To see if the agent can connect to the APM Server, send requests to the instrumented service and look for lines containing `[request]` in the APM Server logs. -If no requests are logged, it might be that SSL is <> or that the host is wrong. +If no requests are logged, it might be that SSL is <> or that the host is wrong. Particularly, if you are using Docker, ensure to bind to the right interface (for example, set `apm-server.host = 0.0.0.0:8200` to match any IP) and set the `SERVER_URL` setting in the agent accordingly. diff --git a/docs/en/observability/apm/tab-widgets/tls.asciidoc b/docs/en/observability/apm/tab-widgets/tls.asciidoc index 11ce2247bf..5a4bfdbb1c 100644 --- a/docs/en/observability/apm/tab-widgets/tls.asciidoc +++ b/docs/en/observability/apm/tab-widgets/tls.asciidoc @@ -1,5 +1,5 @@ // tag::fleet-managed[] -Enable TLS in the APM integration settings and use the <> to set the path to the server certificate and key. +Enable TLS in the APM integration settings and use the <> to set the path to the server certificate and key. // end::fleet-managed[] // tag::binary[] @@ -13,7 +13,7 @@ apm-server.ssl.certificate: "/path/to/apm-server.crt" apm-server.ssl.key: "/path/to/apm-server.key" ---- -A full list of configuration options is available in <>. +A full list of configuration options is available in <>. TIP: If APM agents are authenticating themselves using a certificate that cannot be authenticated through known CAs (e.g. self signed certificates), use the `ssl.certificate_authorities` to set a custom CA. This will automatically modify the `ssl.client_authentication` configuration to require authentication. diff --git a/docs/en/observability/apm/tls-comms.asciidoc b/docs/en/observability/apm/tls-comms.asciidoc index 64b989a86c..fbcbd16e51 100644 --- a/docs/en/observability/apm/tls-comms.asciidoc +++ b/docs/en/observability/apm/tls-comms.asciidoc @@ -1,4 +1,4 @@ -[[agent-tls]] +[[apm-agent-tls]] === {apm-agent} TLS communication TLS is disabled by default. @@ -7,14 +7,14 @@ of the APM Server by authenticating its certificate. When TLS is enabled, a certificate and corresponding private key are required. The certificate and private key can either be issued by a trusted certificate authority (CA) -or be <>. +or be <>. [float] -[[agent-self-sign]] +[[apm-agent-self-sign]] === Use a self-signed certificate [float] -[[agent-self-sign-1]] +[[apm-agent-self-sign-1]] ==== Step 1: Create a self-signed certificate The {es} distribution offers the `certutil` tool for the creation of self-signed certificates: @@ -27,7 +27,7 @@ location of the output zip archive containing the certificate and the private ke 4. Extract the certificate and key from the resulted zip archive. [float] -[[agent-self-sign-2]] +[[apm-agent-self-sign-2]] ==== Step 2: Configure the APM Server Enable TLS and configure the APM Server to point to the extracted certificate and key: @@ -35,7 +35,7 @@ Enable TLS and configure the APM Server to point to the extracted certificate an include::{observability-docs-root}/docs/en/observability/apm/tab-widgets/tls-widget.asciidoc[] [float] -[[agent-self-sign-3]] +[[apm-agent-self-sign-3]] ==== Step 3: Configure APM agents When the APM server uses a certificate that is not chained to a publicly-trusted certificate @@ -60,7 +60,7 @@ We do not recommend disabling {apm-agent} verification of the server's certifica * *Node.js agent*: {apm-node-ref}/configuration.html#validate-server-cert[`verifyServerCert`] [float] -[[agent-client-cert]] +[[apm-agent-client-cert]] === Client certificate authentication APM Server does not require agents to provide a certificate for authentication, diff --git a/docs/en/observability/apm/troubleshoot-apm.asciidoc b/docs/en/observability/apm/troubleshoot-apm.asciidoc index 58781cbb2f..ee36b88fbc 100644 --- a/docs/en/observability/apm/troubleshoot-apm.asciidoc +++ b/docs/en/observability/apm/troubleshoot-apm.asciidoc @@ -1,19 +1,19 @@ -[[troubleshoot-apm]] +[[apm-troubleshoot-apm]] == Troubleshoot This section provides solutions to common questions and problems, and processing and performance guidance. -* <> -* <> -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> For additional help with other APM components, see the links below. [float] -[[troubleshooting-docs]] +[[apm-troubleshooting-docs]] === Troubleshooting documentation {agent}, the {apm-app}, and each {apm-agent} has its own troubleshooting guide: @@ -32,7 +32,7 @@ For additional help with other APM components, see the links below. * {apm-rum-ref-v}/troubleshooting.html[*RUM agent* troubleshooting] [float] -[[elastic-support]] +[[apm-elastic-support]] === Elastic Support We offer a support experience unlike any other. @@ -40,7 +40,7 @@ Our team of professionals 'speak human and code' and love making your day. https://www.elastic.co/subscriptions[Learn more about subscriptions]. [float] -[[discussion-forum]] +[[apm-discussion-forum]] === Discussion forum For additional questions and feature requests, diff --git a/docs/en/observability/apm/upgrading-to-8.x.asciidoc b/docs/en/observability/apm/upgrading-to-8.x.asciidoc index fea18eacc3..52e2536657 100644 --- a/docs/en/observability/apm/upgrading-to-8.x.asciidoc +++ b/docs/en/observability/apm/upgrading-to-8.x.asciidoc @@ -1,4 +1,4 @@ -[[upgrading-to-8.x]] +[[apm-upgrading-to-8.x]] === Upgrade to version {version} This guide explains the upgrade process for version {version}. @@ -21,7 +21,7 @@ most use cases. As a result of the above changes, a number of index management and index tuning configuration variables have been removed. -See the APM <>, <> for full details. +See the APM <>, <> for full details. [float] === Find your upgrade guide @@ -35,17 +35,17 @@ This mode has been deprecated and will be removed in a future release. **Self-installation (non-{ecloud} users) upgrade guides** -* <> -* <> +* <> +* <> **{ecloud} upgrade guides** -* <> -* <> +* <> +* <> // ******************************************************** -[[upgrade-8.0-self-standalone]] +[[apm-upgrade-8.0-self-standalone]] ==== Upgrade a self-installation of APM Server standalone to {version} ++++ @@ -68,7 +68,7 @@ see the https://www.elastic.co/guide/en/elastic-stack/7.17/upgrading-elastic-sta ** To upgrade APM Server to version 7.17, see {apm-guide-7x}/upgrading-to-717.html[upgrade to version 7.17]. -. Review the APM <>, <>, +. Review the APM <>, <>, and {observability} {observability-guide}/whats-new.html[What's new] content. [float] @@ -89,7 +89,7 @@ include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm . **Install the {version} APM Server release** + -See <> to find the command that works with your system. +See <> to find the command that works with your system. + [WARNING] ==== @@ -108,8 +108,8 @@ If you install version {version} of APM Server before installing the APM integra + Some settings have been removed or changed. You may need to update your `apm-server.yml` configuration file prior to starting the APM Server. -See <> for help in locating this file, -and <> for a list of all available configuration options. +See <> for help in locating this file, +and <> for a list of all available configuration options. . **Start the APM Server** + @@ -125,11 +125,11 @@ Additional details are available in <> . **(Optional) Upgrade to the APM integration** + Got time for one more upgrade? -See <>. +See <>. // ******************************************************** -[[upgrade-8.0-self-integration]] +[[apm-upgrade-8.0-self-integration]] ==== Upgrade a self-installation of the APM integration to {version} ++++ @@ -149,7 +149,7 @@ Only use this guide if both of the following are true: must be upgraded to version 7.17. To upgrade {es} and {kib}, see the https://www.elastic.co/guide/en/elastic-stack/7.17/upgrading-elastic-stack.html[{stack} Installation and Upgrade Guide] -. Review the APM <>, <>, +. Review the APM <>, <>, and {observability} {observability-guide}/whats-new.html[What's new] content. [float] @@ -178,7 +178,7 @@ For more details, or for bulk upgrade instructions, see // ******************************************************** -[[upgrade-8.0-cloud-standalone]] +[[apm-upgrade-8.0-cloud-standalone]] ==== Upgrade {ecloud} APM Server standalone to {version} ++++ @@ -193,7 +193,7 @@ Only use this guide if both of the following are true: Follow these steps to upgrade: -. Review the APM <>, <>, +. Review the APM <>, <>, and {observability} {observability-guide}/whats-new.html[What's new] content. . Upgrade {ecloud} to {version}, @@ -201,11 +201,11 @@ See {cloud}/ec-upgrade-deployment.html[Upgrade versions] for instructions. . (Optional) Upgrade to the APM integration. Got time for one more upgrade? -See <>. +See <>. // ******************************************************** -[[upgrade-8.0-cloud-integration]] +[[apm-upgrade-8.0-cloud-integration]] ==== Upgrade {ecloud} with the APM integration to 8.0 ++++ @@ -220,7 +220,7 @@ Only use this guide if both of the following are true: Follow these steps to upgrade: -. Review the APM <>, <>, +. Review the APM <>, <>, and {observability} {observability-guide}/whats-new.html[What's new] content. . Upgrade your {ecloud} instance to {version}. diff --git a/docs/en/observability/apm/upgrading-to-integration.asciidoc b/docs/en/observability/apm/upgrading-to-integration.asciidoc index 4dd771c3ef..2461ff570e 100644 --- a/docs/en/observability/apm/upgrading-to-integration.asciidoc +++ b/docs/en/observability/apm/upgrading-to-integration.asciidoc @@ -1,4 +1,4 @@ -[[upgrade-to-apm-integration]] +[[apm-upgrade-to-apm-integration]] === Switch to the Elastic APM integration The APM integration offers a number of benefits over the standalone method of running APM Server: @@ -87,7 +87,7 @@ Select a guide below to get started. The {stack} ({es} and {kib}) must be upgraded to version 7.14 or higher. See the {stack-ref}/upgrading-elastic-stack.html[{stack} Installation and Upgrade Guide] for guidance. -Review the APM <>, <>, +Review the APM <>, <>, and {observability} {observability-guide}/whats-new.html[What's new] content for important changes between your current APM version and this one. @@ -131,7 +131,7 @@ If you're adding the APM integration to a {fleet}-managed {agent}, you can use t If you're adding the APM integration to the {fleet-server}, use the policy that the {fleet-server} is running on. TIP: You'll configure the APM integration in this step. -See <> for a reference of all available settings. +See <> for a reference of all available settings. As long as the APM integration is configured with the same secret token or you have API keys enabled on the same host, no reconfiguration is required in your APM agents. @@ -193,7 +193,7 @@ Within minutes your data should begin appearing in the {apm-app} again. ==== Configure the APM integration You can now update settings that were removed during the upgrade. -See <> for a reference of all available settings. +See <> for a reference of all available settings. // lint ignore fleet elastic-cloud In {kib}, navigate to **Management** > **Fleet**. diff --git a/docs/en/observability/apm/upgrading.asciidoc b/docs/en/observability/apm/upgrading.asciidoc index 7fff4d29bf..5435986c07 100644 --- a/docs/en/observability/apm/upgrading.asciidoc +++ b/docs/en/observability/apm/upgrading.asciidoc @@ -1,12 +1,12 @@ -[[upgrade]] +[[apm-upgrade]] == Upgrade This guide gives general recommendations for upgrading Elastic APM. -* <> +* <> * <> -* <> -* <> +* <> +* <> include::./agent-server-compatibility.asciidoc[] diff --git a/docs/en/observability/landing-page/page.asciidoc b/docs/en/observability/landing-page/page.asciidoc index d1e298fe60..9fe6c3135e 100644 --- a/docs/en/observability/landing-page/page.asciidoc +++ b/docs/en/observability/landing-page/page.asciidoc @@ -2,7 +2,7 @@ include::temp/style.asciidoc[] [subs=attributes+] ++++ -

Rely on the most widely deployed observability solution, powered by machine learning and analytics, to converge metrics, logs, and traces that deliver unified visibility and actionable insights.

  • Eliminate tool silos and efficiently store data
  • Get visibility across hybrid and multi-cloud environments
  • Monitor your digital experience — 24/7

What do you want to observe?

Use cases

Cloud monitoring

Cross-platform and multi-cloud visibility and analytics.

DevOps

Observe your entire software lifecycle — from development to production.

  • CI/CD
    Get better visibility into your CI/CD pipelines.
  • ECS logging
    Leverage the Elastic Common Schema logging libraries to automatically link application traces to their corresponding logs.

AIOps

Automate anomaly detection and accelerate root cause analysis.

  • Root cause analysis with logs
    Learn about Elastic’s artificial intelligence for IT operations and machine learning capabilities for root cause analysis.
  • APM Correlations
    Automatically identify the probable causes of slow or failed transactions.

User experience

Measure, gauge, and improve your end users’ experience.

  • Scripting browser monitors
    Simulate critical user workflows on a regular interval to catch bugs before your users report them.
  • User experience
    Learn how to track Core Web Vitals and how to use them to quantify the real-world user experience.
+

Rely on the most widely deployed observability solution, powered by machine learning and analytics, to converge metrics, logs, and traces that deliver unified visibility and actionable insights.

  • Eliminate tool silos and efficiently store data
  • Get visibility across hybrid and multi-cloud environments
  • Monitor your digital experience — 24/7

What do you want to observe?

Use cases

Cloud monitoring

Cross-platform and multi-cloud visibility and analytics.

DevOps

Observe your entire software lifecycle — from development to production.

  • CI/CD
    Get better visibility into your CI/CD pipelines.
  • ECS logging
    Leverage the Elastic Common Schema logging libraries to automatically link application traces to their corresponding logs.

AIOps

Automate anomaly detection and accelerate root cause analysis.

  • Root cause analysis with logs
    Learn about Elastic’s artificial intelligence for IT operations and machine learning capabilities for root cause analysis.
  • APM Correlations
    Automatically identify the probable causes of slow or failed transactions.

User experience

Measure, gauge, and improve your end users’ experience.

  • Scripting browser monitors
    Simulate critical user workflows on a regular interval to catch bugs before your users report them.
  • User experience
    Learn how to track Core Web Vitals and how to use them to quantify the real-world user experience.
++++ ++++ diff --git a/docs/en/observability/monitor-k8s/monitor-k8s-application-performance.asciidoc b/docs/en/observability/monitor-k8s/monitor-k8s-application-performance.asciidoc index 89e9f4635b..ebfc5bc91e 100644 --- a/docs/en/observability/monitor-k8s/monitor-k8s-application-performance.asciidoc +++ b/docs/en/observability/monitor-k8s/monitor-k8s-application-performance.asciidoc @@ -34,13 +34,13 @@ Useful when all pods in a node should share a single APM Server instance. * Deploy APM Server as a sidecar -- For environments that should not share an APM Server, like when directing traces from multiple applications to separate {es} clusters. -* {observability-guide}/getting-started-apm-server.html[Download and install APM Server] -- The classic, non-Kubernetes option. +* {observability-guide}/apm-getting-started-apm-server.html[Download and install APM Server] -- The classic, non-Kubernetes option. ==== [discrete] === Step 2: Save your secret token -A {observability-guide}/secret-token.html[secret token] is used to secure communication between APM agents +A {observability-guide}/apm-secret-token.html[secret token] is used to secure communication between APM agents and APM Server. To create or update your secret token in {kib}: . Open Kibana and navigate to Fleet. @@ -58,7 +58,7 @@ kubectl create secret generic apm-secret --from-literal=ELASTIC_APM_SECRET_TOKEN <1> Create the secret in the same namespace that you'll be deploying your applications in. If you're managing APM Server yourself, -see {observability-guide}/secret-token.html[secret token] for instructions on how to set up your secret token. +see {observability-guide}/apm-secret-token.html[secret token] for instructions on how to set up your secret token. If you are using ECK to set up APM Server, the operator automatically generates an `{APM-server-name}-apm-token` secret for you. diff --git a/docs/en/observability/redirects.asciidoc b/docs/en/observability/redirects.asciidoc index 1ad9227f1c..6e00bc13f5 100644 --- a/docs/en/observability/redirects.asciidoc +++ b/docs/en/observability/redirects.asciidoc @@ -45,7 +45,7 @@ This page no longer exists in the Observability Guide. To learn how to deploy This page no longer exists in the Observability Guide. To learn how to instrument applications with APM, refer to -{observability-guide}/getting-started-apm-server.html[Getting started with APM Server]. +{observability-guide}/apm-getting-started-apm-server.html[Getting started with APM Server]. //End links removed in Spactime revamp (https://github.com/elastic/observability-docs/pull/2880) diff --git a/docs/en/observability/tab-widgets/filebeat-logs/content.asciidoc b/docs/en/observability/tab-widgets/filebeat-logs/content.asciidoc index 8a4e8831e7..c20d3f9f39 100644 --- a/docs/en/observability/tab-widgets/filebeat-logs/content.asciidoc +++ b/docs/en/observability/tab-widgets/filebeat-logs/content.asciidoc @@ -32,7 +32,7 @@ processors: <6> <2> Values from the decoded JSON object overwrite the fields that {filebeat} normally adds (type, source, offset, etc.) in case of conflicts. <3> {filebeat} adds an "error.message" and "error.type: json" key in case of JSON unmarshalling errors. <4> {filebeat} will recursively de-dot keys in the decoded JSON, and expand them into a hierarchical object structure. -<5> The `service.name` (required), `service.version` (optional) and `service.environment` (optional) of the service you're collecting logs from, used for <>. +<5> The `service.name` (required), `service.version` (optional) and `service.environment` (optional) of the service you're collecting logs from, used for <>. <6> Processors enhance your data. See {filebeat-ref}/filtering-and-enhancing-data.html[processors] to learn more. endif::ecs-logs[] ifdef::plaintext[] diff --git a/docs/en/observability/traces-get-started.asciidoc b/docs/en/observability/traces-get-started.asciidoc index 515d1d7adf..8207df6691 100644 --- a/docs/en/observability/traces-get-started.asciidoc +++ b/docs/en/observability/traces-get-started.asciidoc @@ -79,7 +79,7 @@ For a list of indices users need access to, refer to [role="screenshot"] image::images/kibana-apm-sample-data.png[{apm-app} with data] -Not seeing any data? Review our list of {observability-guide}/common-problems.html[common problems] for helpful tips. +Not seeing any data? Review our list of {observability-guide}/apm-common-problems.html[common problems] for helpful tips. [discrete] == What's next? diff --git a/docs/en/observability/uptime-intro.asciidoc b/docs/en/observability/uptime-intro.asciidoc index 55e7fcd9d0..3c6dc6e46e 100644 --- a/docs/en/observability/uptime-intro.asciidoc +++ b/docs/en/observability/uptime-intro.asciidoc @@ -45,7 +45,7 @@ To set up your first monitor, refer to <>. [[view-certificate-status]] == TLS Certificates -The TLS Certificates page in the {uptime-app} lists the TLS certificates that are being monitored and +The TLS Certificates page in the {uptime-app} lists the TLS certificates that are being monitored and shows the TLS certificate data in your indices. In addition to the common name, associated monitors, issuer information, and SHA fingerprints, diff --git a/docs/en/shared/configure-apm-server/content.asciidoc b/docs/en/shared/configure-apm-server/content.asciidoc index 448a27534a..5fd7c8a55b 100644 --- a/docs/en/shared/configure-apm-server/content.asciidoc +++ b/docs/en/shared/configure-apm-server/content.asciidoc @@ -10,6 +10,6 @@ Full details are available in the {cloud}/ec-manage-apm-settings.html[APM user s // tag::self-managed[] If you've installed APM Server yourself, you can edit the `apm-server.yml` configuration file to make changes. -More information is available in {observability-guide}/configuring-howto-apm-server.html[configuring APM Server]. +More information is available in {observability-guide}/apm-configuring-howto-apm-server.html[configuring APM Server]. // end::self-managed[] \ No newline at end of file