diff --git a/docs/en/observability/apm/configure/general.asciidoc b/docs/en/observability/apm/configure/general.asciidoc index 16d889230a..66decd46fe 100644 --- a/docs/en/observability/apm/configure/general.asciidoc +++ b/docs/en/observability/apm/configure/general.asciidoc @@ -173,7 +173,7 @@ Defaults to `debug/vars`. === Data stream namespace Change the default namespace. -This setting changes the name of the integration's data stream. +This setting changes the name of the data stream. For {fleet}-managed users, the namespace is inherited from the selected {agent} policy. diff --git a/docs/en/observability/apm/configure/outputs/console.asciidoc b/docs/en/observability/apm/configure/outputs/console.asciidoc index 1fbafe9c0f..1b21d63ea1 100644 --- a/docs/en/observability/apm/configure/outputs/console.asciidoc +++ b/docs/en/observability/apm/configure/outputs/console.asciidoc @@ -26,13 +26,6 @@ output.console: pretty: true ------------------------------------------------------------------------------ -ifdef::apm-server[] -[float] -=== {kib} configuration - -include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] -endif::[] - [float] === Configuration options diff --git a/docs/en/observability/apm/configure/outputs/kafka.asciidoc b/docs/en/observability/apm/configure/outputs/kafka.asciidoc index 317a220487..295c71e081 100644 --- a/docs/en/observability/apm/configure/outputs/kafka.asciidoc +++ b/docs/en/observability/apm/configure/outputs/kafka.asciidoc @@ -37,11 +37,6 @@ output.kafka: 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] - [float] [[apm-kafka-compatibility]] === Compatibility diff --git a/docs/en/observability/apm/configure/outputs/logstash.asciidoc b/docs/en/observability/apm/configure/outputs/logstash.asciidoc index 66800273c0..11a65ccb8c 100644 --- a/docs/en/observability/apm/configure/outputs/logstash.asciidoc +++ b/docs/en/observability/apm/configure/outputs/logstash.asciidoc @@ -21,7 +21,6 @@ protocol, which runs over TCP. To send events to {ls}, you must: . <> -. <> . <> [float] @@ -43,12 +42,6 @@ output.logstash: <1> The `hosts` option specifies the {ls} server and the port (`5044`) where {ls} is configured to listen for incoming APM Server connections. -[float] -[[apm-ls-kib-config]] -=== {kib} endpoint configuration - -include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] - [float] [[apm-ls-config-pipeline]] === {ls} configuration pipeline diff --git a/docs/en/observability/apm/configure/outputs/redis.asciidoc b/docs/en/observability/apm/configure/outputs/redis.asciidoc index 833415813e..058ef0ae21 100644 --- a/docs/en/observability/apm/configure/outputs/redis.asciidoc +++ b/docs/en/observability/apm/configure/outputs/redis.asciidoc @@ -30,11 +30,6 @@ output.redis: timeout: 5 ------------------------------------------------------------------------------ -[float] -=== {kib} configuration - -include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] - [float] === Compatibility diff --git a/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc b/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc index 82b7b23a53..06b350b4a1 100644 --- a/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc +++ b/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc @@ -165,69 +165,6 @@ See <> for deploying Docker containers [[apm-server-configuration]] == Step 2: Set up and configure -// This content is reused in the upgrading guide -// tag::why-apm-integration[] -Starting in version 8.0.0, {fleet} uses the APM integration to set up and manage APM index templates, -{ilm-init} policies, and ingest pipelines. APM Server will only send data to {es} _after_ the APM integration has been installed. -// end::why-apm-integration[] - -[float] -=== Install the APM integration - -// This content is reused in the upgrading guide -// tag::install-apm-integration[] -[%collapsible%open] -.**If you have an internet connection** -==== -An internet connection is required to install the APM integration via the {fleet} UI in {kib}. - -// lint ignore elastic-agent -. Open {kib} and select **Add integrations** > **Elastic APM**. -. Click **APM integration**. -. Click **Add Elastic APM**. -. Click **Save and continue**. -. Click **Add Elastic Agent later**. You do not need to run an {agent} to complete the setup. -==== - -// tag::install-apm-integration-no-internet[] -[%collapsible] -.**If you don't have an internet connection** -==== -If your environment has network traffic restrictions, there are other ways to install the APM integration. -See {fleet-guide}/air-gapped.html[Air-gapped environments] for more information. - -Option 1: Update `kibana.yml`:: -+ -Update `kibana.yml` to include the following, then restart {kib}. -+ -[source,yaml] ----- -xpack.fleet.packages: -- name: apm - version: latest ----- -+ -See {kibana-ref}/settings.html[Configure Kibana] to learn more about how to edit the Kibana configuration file. - -Option 2: Use the {fleet} API:: -+ -Use the {fleet} API to install the APM integration. To be successful, this needs to be run against the {kib} -API, not the {es} API. -+ -["source","yaml",subs="attributes"] ----- -POST kbn:/api/fleet/epm/packages/apm/{apm_server_version} -{ "force": true } ----- -+ -See {kibana-ref}/api.html[Kibana API] to learn more about how to use the Kibana APIs. -==== -// end::install-apm-integration-no-internet[] -// end::install-apm-integration[] - -[float] -=== 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. diff --git a/docs/en/observability/apm/getting-started-apm/get-started-with-fleet-apm-server.asciidoc b/docs/en/observability/apm/getting-started-apm/get-started-with-fleet-apm-server.asciidoc index f68f9a49e1..fa430fca08 100644 --- a/docs/en/observability/apm/getting-started-apm/get-started-with-fleet-apm-server.asciidoc +++ b/docs/en/observability/apm/getting-started-apm/get-started-with-fleet-apm-server.asciidoc @@ -32,7 +32,7 @@ include::{observability-docs-root}/docs/en/observability/tab-widgets/add-apm-int An internet connection is required to install the APM integration via the Fleet UI in Kibana. -- -include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc[leveloffset=+2,tag=install-apm-integration-no-internet] +include::{observability-docs-root}/docs/en/observability/apm/shared/install-apm-integration-no-internet.asciidoc[] -- **** diff --git a/docs/en/observability/apm/getting-started-apm/index.asciidoc b/docs/en/observability/apm/getting-started-apm/index.asciidoc index 44dca348f9..a1fb35315f 100644 --- a/docs/en/observability/apm/getting-started-apm/index.asciidoc +++ b/docs/en/observability/apm/getting-started-apm/index.asciidoc @@ -12,9 +12,8 @@ The {es} Service is available on AWS, GCP, and Azure. *To get started in minutes, follow the steps in <>.* **** -// TODO: MOVE THIS -IMPORTANT: Starting in version 8.0.0, {fleet} uses the APM integration to set up and manage APM index templates, -{ilm-init} policies, and ingest pipelines. APM Server will only send data to {es} _after_ the APM integration has been installed. +IMPORTANT: Starting in version 8.15.0, the {es} apm-data plugin manages APM index templates, +lifecycle policies, and ingest pipelines. The APM Server receives performance data from your APM agents, validates and processes it, and then transforms the data into {es} documents. diff --git a/docs/en/observability/apm/images/bin-ov.png b/docs/en/observability/apm/images/bin-ov.png index 7702dd7d76..848294ab82 100644 Binary files a/docs/en/observability/apm/images/bin-ov.png and b/docs/en/observability/apm/images/bin-ov.png differ diff --git a/docs/en/observability/apm/manage-storage/data-streams.asciidoc b/docs/en/observability/apm/manage-storage/data-streams.asciidoc index cd9b794561..a7ec3c5b77 100644 --- a/docs/en/observability/apm/manage-storage/data-streams.asciidoc +++ b/docs/en/observability/apm/manage-storage/data-streams.asciidoc @@ -20,7 +20,7 @@ See the {fleet-guide}/data-streams.html[{fleet} and {agent} Guide] to learn more // tag::data-streams[] APM data follows the `--` naming scheme. -The `type` and `dataset` are predefined by the APM integration, +The `type` and `dataset` are predefined by the {es} apm-data plugin, but the `namespace` is your opportunity to customize how different types of data are stored in {es}. There is no recommendation for what to use as your namespace--it is intentionally flexible. For example, you might create namespaces for each of your environments, diff --git a/docs/en/observability/apm/manage-storage/ilm-how-to.asciidoc b/docs/en/observability/apm/manage-storage/ilm-how-to.asciidoc index 6da32cf5d4..ee855c1800 100644 --- a/docs/en/observability/apm/manage-storage/ilm-how-to.asciidoc +++ b/docs/en/observability/apm/manage-storage/ilm-how-to.asciidoc @@ -8,133 +8,133 @@ :append-legacy: // tag::ilm-integration[] -Index lifecycle policies allow you to automate the -lifecycle of your APM indices as they grow and age. -A default policy is applied to each APM data stream, -but can be customized depending on your business needs. - -See {ref}/index-lifecycle-management.html[{ilm-init}: Manage the index lifecycle] to learn more. +Lifecycle policies allow you to automate the lifecycle of your APM indices as they grow and age. +A default policy is applied to each APM data stream, but can be customized depending on your business needs. [discrete] [id="index-lifecycle-policies-default{append-legacy}"] == Default policies -The table below describes the default index lifecycle policy applied to each APM data stream. -Each policy includes a rollover and delete definition: +[NOTE] +==== +// Explain what changed +// Before +Before 8.15, clusters used {ref}/index-lifecycle-management.html[index lifecycle management (ILM)] to provide the default data retention settings for APM data. +// After +As of 8.15, new clusters use {ref}/data-stream-lifecycle.html[data stream lifecycle (DSL)] to provide default data retention settings, but the customization for lifecycle is still performed using ILM policies, which are now configured to override the default DSL polices. + +// What this means for existing clusters that are upgraded +For _existing_ clusters upgrading to 8.15, the default ILM policies should still work as expected. +You can can continue using ILM or switch the default to DSL explicitly using the {ref}/data-stream-apis.html[data stream API]. + +// What this means for new clusters that are created +For _new_ clusters created in 8.15 or later, if you prefer to continue using ILM, +follow the steps in this guide to create a custom ILM policy and add it to the `*@custom` component template for each data stream. +==== -* **Rollover**: Using rollover indices prevents a single index from growing too large and optimizes indexing and search performance. Rollover, i.e. writing to a new index, occurs after either an age or size metric is met. -* **Delete**: The delete phase permanently removes the index after a time threshold is met. +Each APM data stream has its own default lifecycle policy including a delete definition and a rollover definition. -[cols="1,1,1,1",options="header"] +The table below describes the delete definition for each APM data stream. +The delete phase permanently removes the index after a time threshold is met. + +[cols="1,1,1",options="header"] |=== |Data stream -|Rollover after |Delete after |Notes | `traces-apm` -| 30 days / 50 GB | 10 days | Raw trace event data | `traces-apm.rum` -| 30 days / 50 GB | 90 days | Raw RUM trace event data, used in the UI | `logs-apm.error` -| 30 days / 50 GB | 10 days | Error event data | `logs-apm.app` -| 30 days / 50 GB | 10 days | Logs event data | `metrics-apm.app` -| 30 days / 50 GB | 90 days | Custom application specific metrics | `metrics-apm.internal` -| 30 days / 50 GB | 90 days | Common system metrics and language specific metrics (for example, CPU and memory usage) | `metrics-apm.service_destination_1m` -| 7 days / 50GB | 90 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_destination_10m` -| 14 days / 50GB | 180 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_destination_60m` -| 30 days / 50GB | 390 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_summary_1m` -| 7 days / 50GB | 90 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_summary_10m` -| 14 days / 50GB | 180 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_summary_60m` -| 30 days / 50GB | 390 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_transaction_1m` -| 7 days / 50GB | 90 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_transaction_10m` -| 14 days / 50GB | 180 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.service_transaction_60m` -| 30 days / 50GB | 390 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.transaction_1m` -| 7 days / 50GB | 90 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.transaction_10m` -| 14 days / 50GB | 180 days | Aggregated transaction metrics powering the Applications UI | `metrics-apm.transaction_60m` -| 30 days / 50GB | 390 days | Aggregated transaction metrics powering the Applications UI |=== -The APM index lifecycle policies can be viewed in {kib}. -Navigate to *{stack-manage-app}* / *Index Lifecycle Management*, and search for `apm`. +Rollover (writing to a new index) prevents a single index from growing too large and optimizes indexing and search performance. +Rollover occurs after either an age or size metric is met. +The default rollover definition for each APM data stream is applied based on {ref}/data-stream-lifecycle-settings.html#cluster-lifecycle-default-rollover[`cluster.lifecycle.default.rollover`]. + +The APM data stream lifecycle policies can be viewed in {kib}: + +. Navigate to *{stack-manage-app}* → *Index Management* → *Component Templates*. +. Search for `apm`. +. Look for templates with `@lifecycle` suffix. -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. +TIP: Default lifecycle 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="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. +Mappings and settings for data streams can be customized through the creation of `*@custom` component templates, +which are referenced by the index templates created by the {es} apm-data plugin. The easiest way to configure a custom index lifecycle policy per data stream is to edit this template. This tutorial explains how to apply a custom index lifecycle policy to the `traces-apm` data stream. @@ -143,10 +143,10 @@ This tutorial explains how to apply a custom index lifecycle policy to the `trac [id="apm-data-streams-custom-one{append-legacy}"] == Step 1: View data streams -The **Data Streams** view in {kib} shows you the data streams, -index templates, and index lifecycle policies associated with a given integration. +The **Data Streams** view in {kib} shows you data streams, +index templates, and lifecycle policies: -. Navigate to **{stack-manage-app}** > **Index Management** > **Data Streams**. +. Navigate to **{stack-manage-app}** → **Index Management** → **Data Streams**. . Search for `traces-apm` to see all data streams associated with APM trace data. . In this example, I only have one data stream because I'm only using the `default` namespace. You may have more if your setup includes multiple namespaces. @@ -158,7 +158,7 @@ image::images/data-stream-overview.png[Data streams info] [id="apm-data-streams-custom-two{append-legacy}"] == Step 2: Create an index lifecycle policy -. Navigate to **{stack-manage-app}** > **Index Lifecycle Policies**. +. Navigate to **{stack-manage-app}** → **Index Lifecycle Policies**. . Click **Create policy**. Name your new policy; For this tutorial, I've chosen `custom-traces-apm-policy`. @@ -172,14 +172,15 @@ To apply your new index lifecycle policy to the `traces-apm-*` data stream, edit the `@custom` component template. . Click on the **Component Template** tab and search for `traces-apm`. -. Select the `traces-apm@custom` template and click **Manage** > **Edit**. +. Select the `traces-apm@custom` template and click **Manage** → **Edit**. . Under **Index settings**, set the {ilm-init} policy name created in the previous step: + [source,json] ---- { "lifecycle": { - "name": "custom-traces-apm-policy" + "name": "custom-traces-apm-policy", + "prefer_ilm": true } } ---- diff --git a/docs/en/observability/apm/manage-storage/ingest-pipelines.asciidoc b/docs/en/observability/apm/manage-storage/ingest-pipelines.asciidoc index fdbf6d7b74..96b5e9447d 100644 --- a/docs/en/observability/apm/manage-storage/ingest-pipelines.asciidoc +++ b/docs/en/observability/apm/manage-storage/ingest-pipelines.asciidoc @@ -19,7 +19,7 @@ The default APM pipelines are defined in {es} apm-data plugin index templates. [id="custom-ingest-pipelines{append-legacy}"] == Custom ingest pipelines -The Elastic APM integration supports custom ingest pipelines. +Elastic APM supports custom ingest pipelines. A custom pipeline allows you to transform data to better match your specific use case. This can be useful, for example, to ensure data security by removing or obfuscating sensitive information. diff --git a/docs/en/observability/apm/shared-kibana-endpoint.asciidoc b/docs/en/observability/apm/shared-kibana-endpoint.asciidoc deleted file mode 100644 index 195216122e..0000000000 --- a/docs/en/observability/apm/shared-kibana-endpoint.asciidoc +++ /dev/null @@ -1,18 +0,0 @@ -// tag::shared-kibana-config[] -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: - -[source,yaml] ----- -apm-server: - kibana: - enabled: true - host: "https://..." - username: "elastic" - password: "xxx" ----- -// end::shared-kibana-config[] \ No newline at end of file diff --git a/docs/en/observability/apm/shared/install-apm-integration-no-internet.asciidoc b/docs/en/observability/apm/shared/install-apm-integration-no-internet.asciidoc new file mode 100644 index 0000000000..2c2e0cc74d --- /dev/null +++ b/docs/en/observability/apm/shared/install-apm-integration-no-internet.asciidoc @@ -0,0 +1,32 @@ +[%collapsible] +.**If you don't have an internet connection** +==== +If your environment has network traffic restrictions, there are other ways to install the APM integration. +See {fleet-guide}/air-gapped.html[Air-gapped environments] for more information. + +Option 1: Update `kibana.yml`:: ++ +Update `kibana.yml` to include the following, then restart {kib}. ++ +[source,yaml] +---- +xpack.fleet.packages: +- name: apm + version: latest +---- ++ +See {kibana-ref}/settings.html[Configure Kibana] to learn more about how to edit the Kibana configuration file. + +Option 2: Use the {fleet} API:: ++ +Use the {fleet} API to install the APM integration. To be successful, this needs to be run against the {kib} +API, not the {es} API. ++ +["source","yaml",subs="attributes"] +---- +POST kbn:/api/fleet/epm/packages/apm/{apm_server_version} +{ "force": true } +---- ++ +See {kibana-ref}/api.html[Kibana API] to learn more about how to use the Kibana APIs. +==== diff --git a/docs/en/observability/apm/troubleshooting/common-problems.asciidoc b/docs/en/observability/apm/troubleshooting/common-problems.asciidoc index 9e5a4eb272..e82b5f9cb3 100644 --- a/docs/en/observability/apm/troubleshooting/common-problems.asciidoc +++ b/docs/en/observability/apm/troubleshooting/common-problems.asciidoc @@ -13,7 +13,6 @@ This section describes common problems you might encounter when using APM Server *Applications UI*: -* <> * <> * <> * <> @@ -158,75 +157,6 @@ it is possible to see a significant increase in OS page cache memory usage due t If you see a drop in throughput and excessive disk activity after enabling tail-based sampling, please ensure that there is enough memory headroom in the system for OS page cache to perform disk IO efficiently. -[float] -[[no-apm-data-found]] -== Data doesn't appear in the Applications UI - -This section can help with any of the following: - -* Data isn't displaying in the Applications UI -* Data isn't displaying in the Applications UI after an upgrade -* You see a message like "No Services Found", -* You see errors like "Fielddata is disabled on text fields by default..." - -These problems are likely to be caused by a missing index template or ingest pipeline. -By default, {fleet} sets up these and other APM assets when the APM integration is installed. -Try reinstalling the APM integration by navigating to -**Integrations** → **Elastic APM** → **Manage in Fleet** → **Settings** → **Reinstall Elastic APM**. - -Because assets cannot be applied to indices retroactively, -after reinstalling the APM integration you must either wait for the index to rollover or force a rollover. -To force a rollover, use the {ref}/indices-rollover-index.html[rollover API] to target the relevant {apm-guide-ref}/apm-data-streams.html[APM data streams]. - -[float] -[[apm-data-indexed-no-apm]] -=== Data is indexed but doesn't appear in the Applications UI - -The Applications UI relies on index mappings to query and display data. -If your APM data isn't showing up in the Applications UI, but is elsewhere in {kib}, like the Discover app, -you may have a missing index mapping. - -You can determine if a field was mapped correctly with the `_mapping` API. -For example, run the following command in the {kib} {kibana-ref}/console-kibana.html[console]. -This will display the field data type of the `service.name` field. - -[source,curl] ----- -GET *apm*/_mapping/field/service.name ----- - -If the `mapping.name.type` is `"text"`, your APM indices were not set up correctly. - -[source,yml] ----- -".ds-metrics-apm.transaction.1m-default-2023.04.12-000038": { - "mappings": { - "service.name": { - "full_name": "service.name", - "mapping": { - "name": { - "type": "text" <1> - } - } - } - } -} ----- -<1> The `service.name` `mapping.name.type` would be `"keyword"` if this field had been set up correctly. - -To fix this problem, install the APM integration by following these steps: - -include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc[leveloffset=+2,tag=install-apm-integration] - -This will reinstall the APM index templates and trigger a data stream index rollover. - -You can verify the correct index templates were installed by running the following command in the {kib} console: - -[source,curl] ----- -GET /_index_template/traces-apm ----- - [float] [[troubleshooting-too-many-transactions]] == Too many unique transaction names @@ -318,7 +248,7 @@ You can also use the agent's public API to manually set a name for the transacti == Fields are not searchable In Elasticsearch, index templates are used to define settings and mappings that determine how fields should be analyzed. -The recommended index templates for APM are installed by {fleet} when the Elastic APM integration is installed. +The recommended index templates for APM come from the built-in {es} apm-data plugin. These templates, by default, enable and disable indexing on certain fields. As an example, some APM agents store cookie values in `http.request.cookies`. @@ -334,9 +264,6 @@ If you don't, the data view doesn't exist. To fix this, navigate to the Applications UI in {kib} and select *Add data*. In the APM tutorial, click *Load Kibana objects* to create the APM data view. -If creating an APM data view doesn't solve the problem, -see <> for further troubleshooting. - *Ensure a field is searchable* There are two things you can do to if you'd like to ensure a field is searchable: diff --git a/docs/en/observability/apm/upgrading-to-8.x.asciidoc b/docs/en/observability/apm/upgrading-to-8.x.asciidoc index 5279a463dc..06fb375d5a 100644 --- a/docs/en/observability/apm/upgrading-to-8.x.asciidoc +++ b/docs/en/observability/apm/upgrading-to-8.x.asciidoc @@ -12,7 +12,7 @@ For a detailed look at what's new, see: === Notable APM changes * All index management has been removed from APM Server; -{fleet} is now entirely responsible for setting up index templates, index lifecycle polices, +the built-in {es} apm-data plugin is entirely responsible for setting up index templates, index lifecycle polices, and index pipelines. * APM Server now only writes to well-defined data streams; writing to classic indices is no longer supported. @@ -78,30 +78,9 @@ and {observability} {observability-guide}/whats-new.html[What's new] content. The {stack} ({es} and {kib}) must be upgraded before APM Server. See the {stack-ref}/upgrading-elastic-stack.html[{stack} Installation and Upgrade Guide] for guidance. -. **Install the APM integration via the {fleet} UI** -+ -include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc[leveloffset=+2,tag=why-apm-integration] -+ --- -include::{observability-docs-root}/docs/en/observability/apm/getting-started-apm/get-started-with-apm-server-binary.asciidoc[leveloffset=+2,tag=install-apm-integration] --- - . **Install the {version} APM Server release** + See <> to find the command that works with your system. -+ -[WARNING] -==== -If you install version {version} of APM Server before installing the APM integration, you will see error logs similar to the following. You must go back and install the APM integration before data can be ingested into {es}. - -[source,json] ----- -... -{"log.level":"error","@timestamp":"2022-01-19T10:45:34.923+0800","log.logger":"beater","log.origin":{"file.name":"beater/waitready.go","file.line":62},"message":"precondition 'apm integration installed' failed: error querying Elasticsearch for integration index templates: unexpected HTTP status: 404 Not Found ({\"error\":{\"root_cause\":[{\"type\":\"resource_not_found_exception\",\"reason\":\"index template matching [traces-apm.sampled] not found\"}],\"type\":\"resource_not_found_exception\",\"reason\":\"index template matching [traces-apm.sampled] not found\"},\"status\":404}): to remediate, please install the apm integration: https://ela.st/apm-integration-quickstart","service.name":"apm-server","ecs.version":"1.6.0"} -{"log.level":"error","@timestamp":"2022-01-19T10:45:37.461+0800","log.logger":"beater","log.origin":{"file.name":"beater/waitready.go","file.line":62},"message":"precondition 'apm integration installed' failed: error querying Elasticsearch for integration index templates: unexpected HTTP status: 404 Not Found ({\"error\":{\"root_cause\":[{\"type\":\"resource_not_found_exception\",\"reason\":\"index template matching [logs-apm.error] not found\"}],\"type\":\"resource_not_found_exception\",\"reason\":\"index template matching [logs-apm.error] not found\"},\"status\":404}): to remediate, please install the apm integration: https://ela.st/apm-integration-quickstart","service.name":"apm-server","ecs.version":"1.6.0"} -... ----- -==== . **Review your configuration file** + diff --git a/docs/en/observability/apm/view-and-analyze/interpret/mobile-session-explorer.asciidoc b/docs/en/observability/apm/view-and-analyze/interpret/mobile-session-explorer.asciidoc index 62329f7dc4..ca3c6d149e 100644 --- a/docs/en/observability/apm/view-and-analyze/interpret/mobile-session-explorer.asciidoc +++ b/docs/en/observability/apm/view-and-analyze/interpret/mobile-session-explorer.asciidoc @@ -15,7 +15,7 @@ The steps to follow are: * copy the `session.id` from the relevant document. * Open the Discover page. -* Select the appropriate data view (use `APM` to search all datastreams) +* Select the appropriate data view (use `APM` to search all data streams) * set filter to the copied `session.id` Here we can see the `session.id` guid in the metadata viewer in the error detail view: