diff --git a/deploy-manage/cloud-organization/billing/elastic-observability-billing-dimensions.md b/deploy-manage/cloud-organization/billing/elastic-observability-billing-dimensions.md index 07b695c89..e286dd918 100644 --- a/deploy-manage/cloud-organization/billing/elastic-observability-billing-dimensions.md +++ b/deploy-manage/cloud-organization/billing/elastic-observability-billing-dimensions.md @@ -20,6 +20,6 @@ Data volumes for ingest and retention are based on the fully enriched normalized ## Synthetics [synthetics-billing] -[Synthetic monitoring](../../../solutions/observability/apps/synthetic-monitoring.md) is an optional add-on to Observability Serverless projects that allows you to periodically check the status of your services and applications. In addition to the core ingest and retention dimensions, there is a charge to execute synthetic monitors on our testing infrastructure. Browser (journey) based tests are charged per-test-run, and ping (lightweight) tests have an all-you-can-use model per location used. +[Synthetic monitoring](/solutions/observability/synthetics/index.md) is an optional add-on to Observability Serverless projects that allows you to periodically check the status of your services and applications. In addition to the core ingest and retention dimensions, there is a charge to execute synthetic monitors on our testing infrastructure. Browser (journey) based tests are charged per-test-run, and ping (lightweight) tests have an all-you-can-use model per location used. Refer to [Serverless billing dimensions](serverless-project-billing-dimensions.md) and the [{{ecloud}} pricing table](https://cloud.elastic.co/cloud-pricing-table?productType=serverless&project=observability) for more details about {{obs-serverless}} billing dimensions and rates. diff --git a/deploy-manage/deploy.md b/deploy-manage/deploy.md index ebb96ff48..1b587ba83 100644 --- a/deploy-manage/deploy.md +++ b/deploy-manage/deploy.md @@ -24,7 +24,7 @@ This section focuses on deploying and managing {{es}} and {{kib}}, as well as su To learn how to deploy optional {{stack}} components, refer to the following sections: * [Fleet and Elastic Agent](/reference/fleet/index.md) -* [APM](/solutions/observability/apps/application-performance-monitoring-apm.md) +* [APM](/solutions/observability/apm/index.md) * [Beats](beats://reference/index.md) * [Logstash](logstash://reference/index.md) ::: diff --git a/deploy-manage/deploy/_snippets/installation-order.md b/deploy-manage/deploy/_snippets/installation-order.md index f5595b4cf..586a6349d 100644 --- a/deploy-manage/deploy/_snippets/installation-order.md +++ b/deploy-manage/deploy/_snippets/installation-order.md @@ -4,7 +4,7 @@ If you're deploying the {{stack}} in a self-managed cluster, then install the {{ * [{{kib}}](/deploy-manage/deploy/self-managed/install-kibana.md) * [Logstash](logstash://reference/index.md) * [{{agent}}](/reference/fleet/index.md) or [Beats](beats://reference/index.md) -* [APM](/solutions/observability/apps/application-performance-monitoring-apm.md) +* [APM](/solutions/observability/apm/index.md) * [{{es}} Hadoop](elasticsearch-hadoop://reference/index.md) Installing in this order ensures that the components each product depends on are in place. diff --git a/deploy-manage/deploy/_snippets/other-apis.md b/deploy-manage/deploy/_snippets/other-apis.md index 4ed247dfe..8299d0dc4 100644 --- a/deploy-manage/deploy/_snippets/other-apis.md +++ b/deploy-manage/deploy/_snippets/other-apis.md @@ -1,5 +1,5 @@ Some other Elastic products have APIs to support machine-to-machine operations: -* [APM event intake API](/solutions/observability/apps/elastic-apm-events-intake-api.md) +* [APM event intake API](/solutions/observability/apm/elastic-apm-events-intake-api.md) * [Fleet APIs](/reference/fleet/fleet-api-docs.md) * [Logstash APIs](logstash://reference/monitoring-logstash.md) \ No newline at end of file diff --git a/deploy-manage/deploy/cloud-enterprise/configure-deployment.md b/deploy-manage/deploy/cloud-enterprise/configure-deployment.md index e750a577b..ac2a02fc9 100644 --- a/deploy-manage/deploy/cloud-enterprise/configure-deployment.md +++ b/deploy-manage/deploy/cloud-enterprise/configure-deployment.md @@ -27,7 +27,7 @@ Refer to [](./working-with-deployments.md) for additional actions and configurab You might want to change the configuration of your deployment to: -* Add features, such as [machine learning](/explore-analyze/machine-learning.md) or [APM (application performance monitoring)](/solutions/observability/apps/application-performance-monitoring-apm.md). +* Add features, such as [machine learning](/explore-analyze/machine-learning.md) or [APM (application performance monitoring)](/solutions/observability/apm/index.md). * [Increase or decrease capacity](./resize-deployment.md) by changing the amount of reserved memory and storage for different parts of your deployment. * Enable [autoscaling](/deploy-manage/autoscaling/autoscaling-in-ece-and-ech.md) so that the available resources for deployment components, such as [data tiers](/manage-data/lifecycle/data-tiers.md) and machine learning nodes, adjust automatically as the demands on them change over time. * Enable [high availability](./ece-ha.md), also known as fault tolerance, by adjusting the number of availability zones that parts of your deployment run on. diff --git a/deploy-manage/deploy/cloud-enterprise/edit-stack-settings-apm.md b/deploy-manage/deploy/cloud-enterprise/edit-stack-settings-apm.md index 20a043329..3f2f329a1 100644 --- a/deploy-manage/deploy/cloud-enterprise/edit-stack-settings-apm.md +++ b/deploy-manage/deploy/cloud-enterprise/edit-stack-settings-apm.md @@ -15,7 +15,7 @@ Starting in {{stack}} version 8.0, how you change APM settings and the settings : New deployments created in {{stack}} version 8.0 and later will be managed by {{fleet}}. * This mode requires SSL/TLS configuration. Check [TLS configuration for {{fleet}}-managed mode](#ece-edit-apm-fleet-tls) for details. - * Check [APM integration input settings](/solutions/observability/apps/configure-apm-server.md) for all other Elastic APM configuration options in this mode. + * Check [APM integration input settings](/solutions/observability/apm/configure-apm-server.md) for all other Elastic APM configuration options in this mode. Standalone APM Server (legacy) @@ -24,7 +24,7 @@ Standalone APM Server (legacy) Check [Edit standalone APM settings (legacy)](#ece-edit-apm-standalone-settings-ece)for information on how to configure Elastic APM in this mode. -To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apps/switch-to-elastic-apm-integration.md). +To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). ## TLS configuration for {{fleet}}-managed mode [ece-edit-apm-fleet-tls] @@ -42,7 +42,7 @@ Pick one of the following options: {{ece}} supports most of the legacy APM settings. Through a YAML editor in the console, you can append your APM Server properties to the `apm-server.yml` file. Your changes to the configuration file are read on startup. ::::{important} -Be aware that some settings could break your cluster if set incorrectly and that the syntax might change between major versions. Before upgrading, be sure to review the full list of the [latest APM settings and syntax](/solutions/observability/apps/configure-apm-server.md). +Be aware that some settings could break your cluster if set incorrectly and that the syntax might change between major versions. Before upgrading, be sure to review the full list of the [latest APM settings and syntax](/solutions/observability/apm/configure-apm-server.md). :::: diff --git a/deploy-manage/deploy/cloud-enterprise/manage-integrations-server.md b/deploy-manage/deploy/cloud-enterprise/manage-integrations-server.md index abc372736..7c39941a0 100644 --- a/deploy-manage/deploy/cloud-enterprise/manage-integrations-server.md +++ b/deploy-manage/deploy/cloud-enterprise/manage-integrations-server.md @@ -8,7 +8,7 @@ mapped_pages: # Manage your Integrations Server [ece-manage-integrations-server] -For deployments that are version 8.0 and later, you have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apps/application-performance-monitoring-apm.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. +For deployments that are version 8.0 and later, you have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apm/index.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. As part of provisioning, the APM Server and Fleet Server are already configured to work with {{es}} and {{kib}}. At the end of provisioning, you are shown the secret token to configure communication between the APM Server and the backend [APM Agents](https://www.elastic.co/guide/en/apm/agent/index.html). The APM Agents get deployed within your services and applications. @@ -23,7 +23,7 @@ From the deployment **Integrations Server** page you can also: * Fully remove the Integrations Server, delete it from the disk, and stop the charges. ::::{important} -The APM secret token can no longer be reset from the {{ece}} UI. Check [Secret token](/solutions/observability/apps/secret-token.md) for instructions on managing a secret token. Note that resetting the token disrupts your APM service and restarts the server. When the server restarts, you’ll need to update all of your agents with the new token. +The APM secret token can no longer be reset from the {{ece}} UI. Check [Secret token](/solutions/observability/apm/secret-token.md) for instructions on managing a secret token. Note that resetting the token disrupts your APM service and restarts the server. When the server restarts, you’ll need to update all of your agents with the new token. :::: ## Routing to Fleet Server [ece-integrations-server-fleet-routing] diff --git a/deploy-manage/deploy/cloud-enterprise/switch-from-apm-to-integrations-server-payload.md b/deploy-manage/deploy/cloud-enterprise/switch-from-apm-to-integrations-server-payload.md index 1160f6be2..5dd77457f 100644 --- a/deploy-manage/deploy/cloud-enterprise/switch-from-apm-to-integrations-server-payload.md +++ b/deploy-manage/deploy/cloud-enterprise/switch-from-apm-to-integrations-server-payload.md @@ -15,7 +15,7 @@ This example shows how to use the {{ece}} RESTful API to switch from using [APM Given a deployment that is using an APM & Fleet Server with {{stack}} version 8.0 or later, it is possible to start using Integrations Server instead by updating the deployment with an Integrations Server payload. Switching from APM & Fleet Server to Integrations Server in this way ensures that the endpoints and credentials currently used by APM Server and Fleet Server remain the same after the switch. -In order to start using the Integrations Server payload, you first need to enable the APM integration for Elastic Agent by following the steps in [Switch to the Elastic APM integration](/solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md). +In order to start using the Integrations Server payload, you first need to enable the APM integration for Elastic Agent by following the steps in [Switch to the Elastic APM integration](/solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md). ## API request example [ece_api_request_example_3] diff --git a/deploy-manage/deploy/cloud-on-k8s/advanced-configuration.md b/deploy-manage/deploy/cloud-on-k8s/advanced-configuration.md index 64c00a2bf..b0087fc2f 100644 --- a/deploy-manage/deploy/cloud-on-k8s/advanced-configuration.md +++ b/deploy-manage/deploy/cloud-on-k8s/advanced-configuration.md @@ -17,7 +17,7 @@ This section covers the following topics: ## Use APM Agent central configuration [k8s-apm-agent-central-configuration] -[APM Agent configuration management](/solutions/observability/apps/apm-agent-central-configuration.md) [7.5.1] allows you to configure your APM Agents centrally from the {{kib}} APM app. To use this feature, the APM Server needs to be configured with connection details of the {{kib}} instance. If {{kib}} is managed by ECK, you can simply add a `kibanaRef` attribute to the APM Server specification: +[APM Agent configuration management](/solutions/observability/apm/apm-agent-central-configuration.md) [7.5.1] allows you to configure your APM Agents centrally from the {{kib}} APM app. To use this feature, the APM Server needs to be configured with connection details of the {{kib}} instance. If {{kib}} is managed by ECK, you can simply add a `kibanaRef` attribute to the APM Server specification: ```yaml cat <- Consider **OpenTelemetry** tail sampling processor as an alternative | +| [**APM Agent Central Configuration**](/solutions/observability/apm/apm-agent-central-configuration.md) | ✅ | ❌ | Not available in Serverless | +| [**APM Tail-based sampling**](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) | ✅ | ❌ | - Not available in Serverless
- Consider **OpenTelemetry** tail sampling processor as an alternative | | [**Android agent/SDK instrumentation**](apm-agent-android://reference/index.md) | ✅ | ❌ | Not available in Serverless | | [**AWS Firehose integration**](/solutions/observability/cloud/monitor-amazon-web-services-aws-with-amazon-data-firehose.md) | ✅ | ✅ | | | **Custom roles for Kibana Spaces** | ✅ | **Planned** | Anticipated in a future release | | [**Data stream lifecycle**](/manage-data/lifecycle/data-stream.md) | ✅ | ✅ | Primary lifecycle management method in Serverless | | **[Elastic Serverless Forwarder](elastic-serverless-forwarder://reference/index.md)** | ✅ | ❌ | | -| **[Elastic Synthetics Private Locations](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-add)** | ✅ | ✅ | | +| **[Elastic Synthetics Private Locations](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add)** | ✅ | ✅ | | | **[Fleet Agent policies](/reference/fleet/agent-policy.md)** | ✅ | ✅ | | | **[Fleet server](/reference/fleet/fleet-server.md)** | - Self-hosted
- Hosted | ✅ | Fully managed by Elastic | | [**Index lifecycle management**](/manage-data/lifecycle/index-lifecycle-management.md) | ✅ | ❌ | Use [**Data stream lifecycle**](/manage-data/lifecycle/data-stream.md) instead | @@ -118,11 +118,11 @@ This table compares Observability capabilities between {{ech}} deployments and S | **[Kibana Alerts](/deploy-manage/monitor/monitoring-data/configure-stack-monitoring-alerts.md)** | ✅ | ✅ | | | **[LogsDB index mode](/manage-data/data-store/data-streams/logs-data-stream.md)** | ✅ | ✅ | - Reduces storage footprint
- Enabled by default
- Cannot be disabled | | **[Logs management](/solutions/observability/logs.md)** | ✅ | ✅ | | -| **[Metrics monitoring](/solutions/observability/apps/metrics.md)** | ✅ | ✅ | | +| **[Metrics monitoring](/solutions/observability/apm/metrics.md)** | ✅ | ✅ | | | **[Observability SLO](/solutions/observability/incident-management/service-level-objectives-slos.md)** | ✅ | ✅ | | -| [**Real User Monitoring (RUM)**](/solutions/observability/apps/real-user-monitoring-user-experience.md) | ✅ | **Planned** | Anticipated in a future release | +| [**Real User Monitoring (RUM)**](/solutions/observability/applications/user-experience.md) | ✅ | **Planned** | Anticipated in a future release | | **[Universal Profiling](/solutions/observability/infra-and-hosts/get-started-with-universal-profiling.md)** | ✅ | ❌ | Not available in Serverless | -| **Uptime monitoring** | ❌ | ❌ | - Deprecated in all deployment types
- Use [**Synthetics app**](/solutions/observability/apps/synthetic-monitoring.md) instead | +| **Uptime monitoring** | ❌ | ❌ | - Deprecated in all deployment types
- Use [**Synthetics app**](/solutions/observability/synthetics/index.md) instead | ### Security diff --git a/deploy-manage/deploy/elastic-cloud/edit-stack-settings.md b/deploy-manage/deploy/elastic-cloud/edit-stack-settings.md index f27b4ab46..45cbe9678 100644 --- a/deploy-manage/deploy/elastic-cloud/edit-stack-settings.md +++ b/deploy-manage/deploy/elastic-cloud/edit-stack-settings.md @@ -111,4 +111,4 @@ If a setting is not supported by {{ech}}, you will get an error message when you ## Edit APM user settings [ec-manage-apm-settings] Change how Elastic APM runs by providing your own user settings. -Check [APM configuration reference](/solutions/observability/apps/configure-apm-server.md) for information on how to configure the {{fleet}}-managed APM integration. \ No newline at end of file +Check [APM configuration reference](/solutions/observability/apm/configure-apm-server.md) for information on how to configure the {{fleet}}-managed APM integration. \ No newline at end of file diff --git a/deploy-manage/deploy/elastic-cloud/heroku.md b/deploy-manage/deploy/elastic-cloud/heroku.md index 45dbcdab6..148d1090f 100644 --- a/deploy-manage/deploy/elastic-cloud/heroku.md +++ b/deploy-manage/deploy/elastic-cloud/heroku.md @@ -28,7 +28,7 @@ Not all features of {{ecloud}} are available to Heroku users. Specifically, you Generally, if a feature is shown as available in the [{{heroku}} console](https://cloud.elastic.co?page=docs&placement=docs-body), you can use it. -[{{es}} Machine Learning](https://www.elastic.co/guide/en/machine-learning/current/index.html), [Elastic APM](/solutions/observability/apps/application-performance-monitoring-apm.md) and [Elastic Fleet Server](https://www.elastic.co/guide/en/fleet/current/fleet-overview.html) are not supported by the {{es}} Add-On for Heroku. +[{{es}} Machine Learning](https://www.elastic.co/guide/en/machine-learning/current/index.html), [Elastic APM](/solutions/observability/apm/index.md) and [Elastic Fleet Server](https://www.elastic.co/guide/en/fleet/current/fleet-overview.html) are not supported by the {{es}} Add-On for Heroku. For other restrictions that apply to all of {{ecloud}}, refer to [](/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md). diff --git a/deploy-manage/deploy/elastic-cloud/manage-integrations-server.md b/deploy-manage/deploy/elastic-cloud/manage-integrations-server.md index 077ca1056..9702a149e 100644 --- a/deploy-manage/deploy/elastic-cloud/manage-integrations-server.md +++ b/deploy-manage/deploy/elastic-cloud/manage-integrations-server.md @@ -8,7 +8,7 @@ mapped_pages: # Manage your Integrations server [ec-manage-integrations-server] -For deployments that are version 8.0 and later, you have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apps/application-performance-monitoring-apm.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. +For deployments that are version 8.0 and later, you have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apm/index.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. As part of provisioning, the APM Server and Fleet Server are already configured to work with {{es}} and {{kib}}. At the end of provisioning, you are shown the secret token to configure communication between the APM Server and the backend [APM Agents](https://www.elastic.co/guide/en/apm/agent/index.html). The APM Agents get deployed within your services and applications. @@ -23,7 +23,7 @@ From the deployment **Integrations Server** page you can also: * Fully remove the Integrations Server, delete it from the disk, and stop the charges. ::::{important} -The APM secret token can no longer be reset from the {{ecloud}} UI. Check [Secret token](/solutions/observability/apps/secret-token.md) for instructions on managing a secret token. Note that resetting the token disrupts your APM service and restarts the server. When the server restarts, you’ll need to update all of your agents with the new token. +The APM secret token can no longer be reset from the {{ecloud}} UI. Check [Secret token](/solutions/observability/apm/secret-token.md) for instructions on managing a secret token. Note that resetting the token disrupts your APM service and restarts the server. When the server restarts, you’ll need to update all of your agents with the new token. :::: diff --git a/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md b/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md index ca7c2e4f5..972efff6f 100644 --- a/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md +++ b/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md @@ -106,7 +106,7 @@ Currently you can’t use SSO to login directly from {{ecloud}} into {{kib}} end % If you are using APM 7.9.0 or older: -% * You cannot use [APM Agent central configuration](/solutions/observability/apps/apm-agent-central-configuration.md) if your deployment is secured by [traffic filters](../../security/traffic-filtering.md). +% * You cannot use [APM Agent central configuration](/solutions/observability/apm/apm-agent-central-configuration.md) if your deployment is secured by [traffic filters](../../security/traffic-filtering.md). % * If you access your APM deployment over [PrivateLink](../../security/aws-privatelink-traffic-filters.md), to use APM Agent central configuration you need to allow access to the APM deployment over public internet. diff --git a/deploy-manage/deploy/elastic-cloud/switch-from-apm-to-integrations-server-payload.md b/deploy-manage/deploy/elastic-cloud/switch-from-apm-to-integrations-server-payload.md index 1dfeed3d9..9d8ec1265 100644 --- a/deploy-manage/deploy/elastic-cloud/switch-from-apm-to-integrations-server-payload.md +++ b/deploy-manage/deploy/elastic-cloud/switch-from-apm-to-integrations-server-payload.md @@ -15,7 +15,7 @@ This example shows how to use the {{ecloud}} RESTful API to switch from using [A Given a deployment that is using an APM & Fleet Server with {{stack}} version 8.0 or later, it is possible to start using Integrations Server instead by updating the deployment with an Integrations Server payload. Switching from APM & Fleet Server to Integrations Server in this way ensures that the endpoints and credentials currently used by APM Server and Fleet Server remain the same after the switch. -In order to start using the Integrations Server payload, you first need to enable the APM integration for Elastic Agent by following the steps in [Switch to the Elastic APM integration](/solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md). +In order to start using the Integrations Server payload, you first need to enable the APM integration for Elastic Agent by following the steps in [Switch to the Elastic APM integration](/solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md). ### API request example [ec_api_request_example_3] @@ -379,7 +379,7 @@ Beginning with {{stack}} version 8.0, [Integrations Server](manage-integrations- :::: -You have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apps/application-performance-monitoring-apm.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. +You have the option to add a combined [Application Performance Monitoring (APM) Server](/solutions/observability/apm/index.md) and [Fleet Server](/reference/fleet/index.md) to your deployment. APM allows you to monitor software services and applications in real time, turning that data into documents stored in the {{es}} cluster. Fleet allows you to centrally manage Elastic Agents on many hosts. As part of provisioning, the APM Server and Fleet Server are already configured to work with {{es}} and {{kib}}. At the end of provisioning, you are shown the secret token to configure communication between the APM Server and the backend [APM Agents](https://www.elastic.co/guide/en/apm/agent/index.html). The APM Agents get deployed within your services and applications. @@ -402,7 +402,7 @@ From the deployment **APM & Fleet** page you can also: ### Upgrading to {{stack}} 8.0 [ec-upgrade-apm-stack-8] -The following APM settings have been removed in {{stack}} version 8.0. This change is only relevant to users upgrading a standalone (legacy) deployment of APM Server to {{stack}} version 8.0. Check [Add APM user settings](../../../solutions/observability/apps/configure-apm-server.md) for more details. +The following APM settings have been removed in {{stack}} version 8.0. This change is only relevant to users upgrading a standalone (legacy) deployment of APM Server to {{stack}} version 8.0. Check [Add APM user settings](/solutions/observability/apm/configure-apm-server.md) for more details. ```yaml apm-server.api_key.enabled diff --git a/deploy-manage/deploy/self-managed/air-gapped-install.md b/deploy-manage/deploy/self-managed/air-gapped-install.md index 7a172e677..3e9657704 100644 --- a/deploy-manage/deploy/self-managed/air-gapped-install.md +++ b/deploy-manage/deploy/self-managed/air-gapped-install.md @@ -66,8 +66,8 @@ To learn more about installing {{fleet-server}}, refer to the [{{fleet-server}} Air-gapped setup of the APM server is possible in two ways: -* By setting up one of the {{agent}} deployments with an APM integration, as described in [Switch a self-installation to the APM integration](/solutions/observability/apps/switch-self-installation-to-apm-integration.md). See [air gapped installation guidance for {{agent}}](#air-gapped-elastic-agent). -* Or, by installing a standalone Elastic APM Server, as described in the [APM configuration documentation](/solutions/observability/apps/configure-apm-server.md). +* By setting up one of the {{agent}} deployments with an APM integration, as described in [Switch a self-installation to the APM integration](/solutions/observability/apm/switch-self-installation-to-apm-integration.md). See [air gapped installation guidance for {{agent}}](#air-gapped-elastic-agent). +* Or, by installing a standalone Elastic APM Server, as described in the [APM configuration documentation](/solutions/observability/apm/configure-apm-server.md). ## {{ems}} [air-gapped-elastic-maps-service] diff --git a/deploy-manage/monitor/logging-configuration.md b/deploy-manage/monitor/logging-configuration.md index d0c2a4660..6fb947207 100644 --- a/deploy-manage/monitor/logging-configuration.md +++ b/deploy-manage/monitor/logging-configuration.md @@ -111,7 +111,7 @@ You can also consume logs using [stack monitoring](/deploy-manage/monitor/stack- You can also collect and index the following types of logs from other components in your deployments: -[**APM**](/solutions/observability/apps/configure-logging.md) +[**APM**](/solutions/observability/apm/configure-logging.md) * `apm*.log*` diff --git a/deploy-manage/monitor/stack-monitoring.md b/deploy-manage/monitor/stack-monitoring.md index b22c3bca8..a7b8e7297 100644 --- a/deploy-manage/monitor/stack-monitoring.md +++ b/deploy-manage/monitor/stack-monitoring.md @@ -87,7 +87,7 @@ Most of these methods require that you configure monitoring of {{es}} before mon * [Packetbeat](beats://reference/packetbeat/monitoring.md) * [Winlogbeat](beats://reference/winlogbeat/monitoring.md) -* [**APM Server**](/solutions/observability/apps/monitor-apm-server.md) +* [**APM Server**](/solutions/observability/apm/monitor-apm-server.md) * **{{agent}}s**: * [{{fleet}}-managed {{agent}}s](/reference/fleet/monitor-elastic-agent.md) diff --git a/deploy-manage/upgrade/deployment-or-cluster/elasticsearch.md b/deploy-manage/upgrade/deployment-or-cluster/elasticsearch.md index 1fc0303e4..2d458b2a2 100644 --- a/deploy-manage/upgrade/deployment-or-cluster/elasticsearch.md +++ b/deploy-manage/upgrade/deployment-or-cluster/elasticsearch.md @@ -4,7 +4,7 @@ applies_to: deployment: self: all --- - + # Upgrade {{es}} [upgrading-elasticsearch] An {{es}} cluster can be upgraded one node at a time so upgrading does not interrupt service. Running multiple versions of {{es}} in the same cluster beyond the duration of an upgrade is not supported, as shards cannot be replicated from upgraded nodes to nodes running the older version. @@ -206,5 +206,5 @@ If you upgrade an {{es}} cluster that uses deprecated cluster or index settings Once you've successfully upgraded {{es}}, continue upgrading the remaining {{stack}} components: * [{{kib}}](/deploy-manage/upgrade/deployment-or-cluster/kibana.md) -* [Elastic APM](../../../solutions/observability/apps/upgrade.md) -* [Ingest components](/deploy-manage/upgrade/ingest-components.md) \ No newline at end of file +* [Elastic APM](/solutions/observability/apm/upgrade.md) +* [Ingest components](/deploy-manage/upgrade/ingest-components.md) \ No newline at end of file diff --git a/deploy-manage/upgrade/deployment-or-cluster/kibana.md b/deploy-manage/upgrade/deployment-or-cluster/kibana.md index 897a0a61e..12a05204c 100644 --- a/deploy-manage/upgrade/deployment-or-cluster/kibana.md +++ b/deploy-manage/upgrade/deployment-or-cluster/kibana.md @@ -7,7 +7,7 @@ applies_to: # Upgrade {{kib}} [upgrade-kibana] -When you upgrade {{kib}}, you also upgrade the {{observability}} and {{elastic-sec}} solutions, which use {{kib}} as their main interface. +When you upgrade {{kib}}, you also upgrade the {{observability}} and {{elastic-sec}} solutions, which use {{kib}} as their main interface. ::::{warning} {{kib}} automatically runs saved object migrations when required. To roll back to an earlier version in case of an upgrade failure, you **must** have a [backup snapshot](../../tools/snapshot-and-restore.md) that includes the `kibana` feature state. Snapshots include this feature state by default. @@ -77,4 +77,4 @@ To upgrade {{kib}}: ## Next steps -Once you've successfully upgraded {{kib}}, [upgrade Elastic APM](../../../solutions/observability/apps/upgrade.md), then [upgrade your ingest components](/deploy-manage/upgrade/ingest-components.md). \ No newline at end of file +Once you've successfully upgraded {{kib}}, [upgrade Elastic APM](/solutions/observability/apm/upgrade.md), then [upgrade your ingest components](/deploy-manage/upgrade/ingest-components.md). \ No newline at end of file diff --git a/deploy-manage/upgrade/deployment-or-cluster/self-managed.md b/deploy-manage/upgrade/deployment-or-cluster/self-managed.md index ed3d6a20a..985ab57e0 100644 --- a/deploy-manage/upgrade/deployment-or-cluster/self-managed.md +++ b/deploy-manage/upgrade/deployment-or-cluster/self-managed.md @@ -8,12 +8,12 @@ applies_to: # Upgrade the {{stack}} on a self-managed cluster -If you've installed the {{stack}} on your own self-managed infrastructure, once you're [prepared to upgrade](/deploy-manage/upgrade/prepare-to-upgrade.md), you'll need to upgrade each of your Elastic components individually. +If you've installed the {{stack}} on your own self-managed infrastructure, once you're [prepared to upgrade](/deploy-manage/upgrade/prepare-to-upgrade.md), you'll need to upgrade each of your Elastic components individually. -It's important that you upgrade your components in this order: +It's important that you upgrade your components in this order: * [{{es}}](/deploy-manage/upgrade/deployment-or-cluster/elasticsearch.md) * [{{kib}}](/deploy-manage/upgrade/deployment-or-cluster/kibana.md) -* [Elastic APM](../../../solutions/observability/apps/upgrade.md) +* [Elastic APM](/solutions/observability/apm/upgrade.md) * [Ingest components](/deploy-manage/upgrade/ingest-components.md) :::{important} diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/quickstart.md b/deploy-manage/users-roles/cluster-or-deployment-auth/quickstart.md index 2d16ea23a..32a8fbfd4 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/quickstart.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/quickstart.md @@ -21,7 +21,7 @@ This guide introduces you to three basic user and access management features: [s Do you have multiple teams using {{kib}}? Do you want a “playground” to experiment with new visualizations or rules? If so, then [{{kib}} Spaces](../../manage-spaces.md) can help. -Think of a space as another instance of {{kib}}. A space allows you to organize your [dashboards](../../../explore-analyze/dashboards.md), [rules](../../../explore-analyze/alerts-cases/alerts.md), [machine learning jobs](../../../explore-analyze/machine-learning/machine-learning-in-kibana.md), and much more into their own categories. For example, you might have a **Marketing** space for your marketers to track the results of their campaigns, and an **Engineering** space for your developers to [monitor application performance](/solutions/observability/apps/application-performance-monitoring-apm.md). +Think of a space as another instance of {{kib}}. A space allows you to organize your [dashboards](../../../explore-analyze/dashboards.md), [rules](../../../explore-analyze/alerts-cases/alerts.md), [machine learning jobs](../../../explore-analyze/machine-learning/machine-learning-in-kibana.md), and much more into their own categories. For example, you might have a **Marketing** space for your marketers to track the results of their campaigns, and an **Engineering** space for your developers to [monitor application performance](/solutions/observability/apm/index.md). The assets you create in one space are isolated from other spaces, so when you enter a space, you only see the assets that belong to that space. diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 1288c381f..b6fd293cd 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -45,7 +45,7 @@ Trying to decide which ingest component to use? Refer to [Adding data to {{es}}] #### APM [stack-components-apm] -Elastic APM is an application performance monitoring system built on the {{stack}}. It allows you to monitor software services and applications in real-time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. This makes it easy to pinpoint and fix performance problems quickly. [Learn more about APM](/solutions/observability/apps/application-performance-monitoring-apm.md). +Elastic APM is an application performance monitoring system built on the {{stack}}. It allows you to monitor software services and applications in real-time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. This makes it easy to pinpoint and fix performance problems quickly. [Learn more about APM](/solutions/observability/apm/index.md). #### {{beats}} [stack-components-beats] diff --git a/manage-data/ingest/ingesting-data-for-elastic-solutions.md b/manage-data/ingest/ingesting-data-for-elastic-solutions.md index 0fa6b3417..d5a2d606e 100644 --- a/manage-data/ingest/ingesting-data-for-elastic-solutions.md +++ b/manage-data/ingest/ingesting-data-for-elastic-solutions.md @@ -62,7 +62,7 @@ With [Elastic Observability](https://www.elastic.co/observability), you can moni * [Monitor hosts with {{agent}} ({{serverless-short}})](https://docs.elastic.co/serverless/observability/quickstarts/monitor-hosts-with-elastic-agent) * [Monitor your K8s cluster with {{agent}} ({{serverless-short}})](https://docs.elastic.co/serverless/observability/quickstarts/k8s-logs-metrics) -* [Use OpenTelemetry with APM](../../solutions/observability/apps/use-opentelemetry-with-apm.md) +* [Use OpenTelemetry with APM](/solutions/observability/apm/use-opentelemetry-with-apm.md) **Resources** diff --git a/manage-data/ingest/tools.md b/manage-data/ingest/tools.md index 27801a8c0..2b4fef4f9 100644 --- a/manage-data/ingest/tools.md +++ b/manage-data/ingest/tools.md @@ -49,7 +49,7 @@ Depending on the type of data you want to ingest, you have a number of methods a | {{elastic-defend}} | {{elastic-defend}} provides organizations with prevention, detection, and response capabilities with deep visibility for EPP, EDR, SIEM, and Security Analytics use cases across Windows, macOS, and Linux operating systems running on both traditional endpoints and public cloud environments. | [Configure endpoint protection with {{elastic-defend}}](/solutions/security/configure-elastic-defend.md) | | {{ls}} | Dynamically unify data from a wide variety of data sources and normalize it into destinations of your choice with {{ls}}. | [Logstash (Serverless)](logstash://reference/index.md)
[Logstash pipelines](/manage-data/ingest/transform-enrich/logstash-pipelines.md) | | {{beats}} | Use {{beats}} data shippers to send operational data to Elasticsearch directly or through Logstash. | [{{beats}} (Serverless)](beats://reference/index.md)
[What are {{beats}}?](beats://reference/index.md)
[{{beats}} and {{agent}} capabilities](/manage-data/ingest/tools.md)| -| APM | Collect detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. | [Application performance monitoring (APM)](/solutions/observability/apps/application-performance-monitoring-apm.md) | +| APM | Collect detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. | [Application performance monitoring (APM)](/solutions/observability/apm/index.md) | | Application logs | Ingest application logs using Filebeat, {{agent}}, or the APM agent, or reformat application logs into Elastic Common Schema (ECS) logs and then ingest them using Filebeat or {{agent}}. | [Stream application logs](/solutions/observability/logs/stream-application-logs.md)
[ECS formatted application logs](/solutions/observability/logs/ecs-formatted-application-logs.md) | | Elastic Serverless forwarder for AWS | Ship logs from your AWS environment to cloud-hosted, self-managed Elastic environments, or {{ls}}. | [Elastic Serverless Forwarder](elastic-serverless-forwarder://reference/index.md) | | Connectors | Use connectors to extract data from an original data source and sync it to an {{es}} index. | [Ingest content with Elastic connectors diff --git a/redirects.yml b/redirects.yml index d2deca412..78574e95a 100644 --- a/redirects.yml +++ b/redirects.yml @@ -4,4 +4,183 @@ redirects: 'deploy-manage/security/security-certificates-keys.md': '!deploy-manage/security/self-auto-setup.md' 'deploy-manage/security/ece-traffic-filtering-through-the-api.md': 'deploy-manage/security/ec-traffic-filtering-through-the-api.md' 'deploy-manage/security/install-stack-demo-secure.md': '!deploy-manage/security/self-setup.md' - 'reference/observability/fields-and-object-schemas/logs-app-fields.md': '!reference/observability/fields-and-object-schemas.md' \ No newline at end of file + 'reference/observability/fields-and-object-schemas/logs-app-fields.md': '!reference/observability/fields-and-object-schemas.md' + # Related to https://github.com/elastic/docs-content/pull/1069 + 'solutions/observability/apps/llm-observability.md': 'solutions/observability/applications/llm-observability.md' + 'solutions/observability/apps.md': 'solutions/observability/applications/index.md' + 'solutions/observability/apps/application-performance-monitoring-apm.md': 'solutions/observability/apm/index.md' + 'solutions/observability/apps/get-started-with-apm.md': 'solutions/observability/apm/get-started.md' + 'solutions/observability/apps/get-started-apm-serverless.md': 'solutions/observability/apm/get-started-serverless.md' + 'solutions/observability/apps/fleet-managed-apm-server.md': 'solutions/observability/apm/get-started-fleet-managed-apm-server.md' + 'solutions/observability/apps/apm-server-binary.md': 'solutions/observability/apm/get-started-apm-server-binary.md' + 'solutions/observability/apps/learn-about-application-data-types.md': 'solutions/observability/apm/data-types.md' + 'solutions/observability/apps/spans.md': 'solutions/observability/apm/spans.md' + 'solutions/observability/apps/transactions.md': 'solutions/observability/apm/transactions.md' + 'solutions/observability/apps/transaction-sampling.md': 'solutions/observability/apm/transaction-sampling.md' + 'solutions/observability/apps/traces.md': 'solutions/observability/apm/traces.md' + 'solutions/observability/apps/errors.md': 'solutions/observability/apm/errors.md' + 'solutions/observability/apps/metrics.md': 'solutions/observability/apm/metrics.md' + 'solutions/observability/apps/metadata.md': 'solutions/observability/apm/metadata.md' + 'solutions/observability/apps/collect-application-data.md': 'solutions/observability/apm/collect-application-data.md' + 'solutions/observability/apps/elastic-apm-agents.md': 'solutions/observability/apm/elastic-apm-agents.md' + 'solutions/observability/apps/apm-agent-central-configuration.md': 'solutions/observability/apm/apm-agent-central-configuration.md' + 'solutions/observability/apps/real-user-monitoring-rum.md': 'solutions/observability/apm/real-user-monitoring-rum.md' + 'solutions/observability/apps/create-upload-source-maps-rum.md': 'solutions/observability/apm/create-upload-source-maps-rum.md' + 'solutions/observability/apps/use-opentelemetry-with-apm.md': 'solutions/observability/apm/use-opentelemetry-with-apm.md' + 'solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md': 'solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md' + 'solutions/observability/apps/collect-metrics.md': 'solutions/observability/apm/collect-metrics.md' + 'solutions/observability/apps/limitations.md': 'solutions/observability/apm/limitations.md' + 'solutions/observability/apps/resource-atrributes.md': 'solutions/observability/apm/resource-attributes.md' + 'solutions/observability/apps/apm-k8s-attacher.md': 'solutions/observability/apm/apm-k8s-attacher.md' + 'solutions/observability/apps/monitoring-aws-lambda-functions.md': 'solutions/observability/apm/monitor-aws-lambda-functions.md' + 'solutions/observability/apps/integrate-with-jaeger-deprecated.md': 'solutions/observability/apm/jaeger.md' + 'solutions/observability/apps/view-analyze-data.md': 'solutions/observability/apm/view-analyze-data.md' + 'solutions/observability/apps/overviews.md': 'solutions/observability/apm/overviews.md' + 'solutions/observability/apps/services.md': 'solutions/observability/apm/services.md' + 'solutions/observability/apps/traces-2.md': 'solutions/observability/apm/traces-ui.md' + 'solutions/observability/apps/dependencies.md': 'solutions/observability/apm/dependencies.md' + 'solutions/observability/apps/service-map.md': 'solutions/observability/apm/service-map.md' + 'solutions/observability/apps/service-overview.md': 'solutions/observability/apm/service-overview.md' + 'solutions/observability/apps/mobile-service-overview.md': 'solutions/observability/apm/mobile-service-overview.md' + 'solutions/observability/apps/inventory.md': 'solutions/observability/apm/inventory.md' + 'solutions/observability/apps/drill-down-into-data.md': 'solutions/observability/apm/drill-down-into-data.md' + 'solutions/observability/apps/transactions-2.md': 'solutions/observability/apm/transactions-ui.md' + 'solutions/observability/apps/trace-sample-timeline.md': 'solutions/observability/apm/trace-sample-timeline.md' + 'solutions/observability/apps/errors-2.md': 'solutions/observability/apm/errors-ui.md' + 'solutions/observability/apps/metrics-2.md': 'solutions/observability/apm/metrics-ui.md' + 'solutions/observability/apps/infrastructure.md': 'solutions/observability/apm/infrastructure.md' + 'solutions/observability/apps/logs.md': 'solutions/observability/apm/logs.md' + 'solutions/observability/apps/filter-search-application-data.md': 'solutions/observability/apm/filter-search-data.md' + 'solutions/observability/apps/filter-application-data.md': 'solutions/observability/apm/filter-data.md' + 'solutions/observability/apps/use-advanced-queries-on-application-data.md': 'solutions/observability/apm/advanced-queries.md' + 'solutions/observability/apps/cross-cluster-search-with-application-data.md': 'solutions/observability/apm/cross-cluster-search.md' + 'solutions/observability/apps/interpret-application-data.md': 'solutions/observability/apm/interpret-data.md' + 'solutions/observability/apps/find-transaction-latency-failure-correlations.md': 'solutions/observability/apm/find-transaction-latency-failure-correlations.md' + 'solutions/observability/apps/track-deployments-with-annotations.md': 'solutions/observability/apm/track-deployments-with-annotations.md' + 'solutions/observability/apps/explore-mobile-sessions-with-discover.md': 'solutions/observability/apm/explore-mobile-sessions.md' + 'solutions/observability/apps/observe-lambda-functions.md': 'solutions/observability/apm/observe-lambda-functions.md' + 'solutions/observability/apps/integrate-with-machine-learning.md': 'solutions/observability/apm/machine-learning.md' + 'solutions/observability/apps/apm-agent-explorer.md': 'solutions/observability/apm/apm-agent-explorer.md' + 'solutions/observability/apps/applications-ui-settings.md': 'solutions/observability/apm/applications-ui-settings.md' + 'solutions/observability/apps/act-on-data.md': 'solutions/observability/apm/act-on-data.md' + 'solutions/observability/apps/create-apm-rules-alerts.md': 'solutions/observability/apm/create-apm-rules-alerts.md' + 'solutions/observability/apps/create-custom-links.md': 'solutions/observability/apm/create-custom-links.md' + 'solutions/observability/apps/use-apm-securely.md': 'solutions/observability/apm/use-apm-securely.md' + 'solutions/observability/apps/application-data-security.md': 'solutions/observability/apm/secure-data.md' + 'solutions/observability/apps/control-access-to-apm-data.md': 'solutions/observability/apm/control-access-to-apm-data.md' + 'solutions/observability/apps/built-in-data-filters.md': 'solutions/observability/apm/built-in-data-filters.md' + 'solutions/observability/apps/custom-filters.md': 'solutions/observability/apm/custom-filters.md' + 'solutions/observability/apps/delete-sensitive-data.md': 'solutions/observability/apm/delete-sensitive-data.md' + 'solutions/observability/apps/secure-communication-with-apm-agents.md': 'solutions/observability/apm/secure-communication-with-apm-agents.md' + 'solutions/observability/apps/apm-agent-tls-communication.md': 'solutions/observability/apm/apm-agent-tls-communication.md' + 'solutions/observability/apps/api-keys.md': 'solutions/observability/apm/api-keys.md' + 'solutions/observability/apps/secret-token.md': 'solutions/observability/apm/secret-token.md' + 'solutions/observability/apps/anonymous-authentication.md': 'solutions/observability/apm/anonymous-authentication.md' + 'solutions/observability/apps/secure-communication-with-elastic-stack.md': 'solutions/observability/apm/secure-communication-with-elastic-stack.md' + 'solutions/observability/apps/create-assign-feature-roles-to-apm-server-users.md': 'solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md' + 'solutions/observability/apps/grant-access-using-api-keys.md': 'solutions/observability/apm/grant-access-using-api-keys.md' + 'solutions/observability/apps/secure-access-to-applications-ui.md': 'solutions/observability/apm/secure-access-to-applications-ui.md' + 'solutions/observability/apps/apm-reader-user.md': 'solutions/observability/apm/ui-user-reader.md' + 'solutions/observability/apps/applications-ui-annotation-user.md': 'solutions/observability/apm/ui-user-annotation.md' + 'solutions/observability/apps/applications-ui-api-user.md': 'solutions/observability/apm/ui-user-api.md' + 'solutions/observability/apps/applications-ui-central-config-user.md': 'solutions/observability/apm/ui-user-central-config.md' + 'solutions/observability/apps/applications-ui-storage-explorer-user.md': 'solutions/observability/apm/ui-user-storage-explorer.md' + 'solutions/observability/apps/manage-storage.md': 'solutions/observability/apm/manage-storage.md' + 'solutions/observability/apps/storage-explorer.md': 'solutions/observability/apm/storage-explorer.md' + 'solutions/observability/apps/data-streams.md': 'solutions/observability/apm/data-streams.md' + 'solutions/observability/apps/index-lifecycle-management.md': 'solutions/observability/apm/index-lifecycle-management.md' + 'solutions/observability/apps/view-elasticsearch-index-template.md': 'solutions/observability/apm/view-elasticsearch-index-template.md' + 'solutions/observability/apps/parse-data-using-ingest-pipelines.md': 'solutions/observability/apm/parse-data-using-ingest-pipelines.md' + 'solutions/observability/apps/storage-sizing-guide.md': 'solutions/observability/apm/storage-sizing-guide.md' + 'solutions/observability/apps/reduce-storage.md': 'solutions/observability/apm/reduce-storage.md' + 'solutions/observability/apps/explore-data-in-elasticsearch.md': 'solutions/observability/apm/explore-data-in-elasticsearch.md' + 'solutions/observability/apps/configure-apm-server.md': 'solutions/observability/apm/configure-apm-server.md' + 'solutions/observability/apps/general-configuration-options.md': 'solutions/observability/apm/general-configuration-options.md' + 'solutions/observability/apps/configure-anonymous-authentication.md': 'solutions/observability/apm/configure-anonymous-authentication.md' + 'solutions/observability/apps/apm-agent-authorization.md': 'solutions/observability/apm/apm-agent-authorization.md' + 'solutions/observability/apps/configure-apm-agent-central-configuration.md': 'solutions/observability/apm/configure-apm-agent-central-configuration.md' + 'solutions/observability/apps/configure-apm-instrumentation.md': 'solutions/observability/apm/configure-apm-instrumentation.md' + 'solutions/observability/apps/configure-kibana-endpoint.md': 'solutions/observability/apm/configure-kibana-endpoint.md' + 'solutions/observability/apps/configure-logging.md': 'solutions/observability/apm/configure-logging.md' + 'solutions/observability/apps/configure-output.md': 'solutions/observability/apm/configure-output.md' + 'solutions/observability/apps/configure-output-for-elasticsearch-service-on-elastic-cloud.md': 'solutions/observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md' + 'solutions/observability/apps/configure-elasticsearch-output.md': 'solutions/observability/apm/configure-elasticsearch-output.md' + 'solutions/observability/apps/configure-logstash-output.md': 'solutions/observability/apm/configure-logstash-output.md' + 'solutions/observability/apps/configure-kafka-output.md': 'solutions/observability/apm/configure-kafka-output.md' + 'solutions/observability/apps/configure-redis-output.md': 'solutions/observability/apm/configure-redis-output.md' + 'solutions/observability/apps/configure-console-output.md': 'solutions/observability/apm/configure-console-output.md' + 'solutions/observability/apps/configure-project-paths.md': 'solutions/observability/apm/configure-project-paths.md' + 'solutions/observability/apps/configure-real-user-monitoring-rum.md': 'solutions/observability/apm/configure-real-user-monitoring-rum.md' + 'solutions/observability/apps/ssltls-settings.md': 'solutions/observability/apm/ssl-tls-settings.md' + 'solutions/observability/apps/ssltls-output-settings.md': 'solutions/observability/apm/ssl-tls-output-settings.md' + 'solutions/observability/apps/ssltls-input-settings.md': 'solutions/observability/apm/ssl-tls-input-settings.md' + 'solutions/observability/apps/tail-based-sampling.md': 'solutions/observability/apm/tail-based-sampling.md' + 'solutions/observability/apps/use-environment-variables-in-configuration.md': 'solutions/observability/apm/use-environment-variables-in-configuration.md' + 'solutions/observability/apps/apm-server-advanced-setup.md': 'solutions/observability/apm/apm-server-advanced-setup.md' + 'solutions/observability/apps/installation-layout.md': 'solutions/observability/apm/installation-layout.md' + 'solutions/observability/apps/secrets-keystore-for-secure-settings.md': 'solutions/observability/apm/secrets-keystore-for-secure-settings.md' + 'solutions/observability/apps/apm-server-command-reference.md': 'solutions/observability/apm/apm-server-command-reference.md' + 'solutions/observability/apps/tune-data-ingestion.md': 'solutions/observability/apm/tune-data-ingestion.md' + 'solutions/observability/apps/high-availability.md': 'solutions/observability/apm/high-availability.md' + 'solutions/observability/apps/apm-server-systemd.md': 'solutions/observability/apm/apm-server-systemd.md' + 'solutions/observability/apps/monitor-apm-server.md': 'solutions/observability/apm/monitor-apm-server.md' + 'solutions/observability/apps/monitor-fleet-managed-apm-server.md': 'solutions/observability/apm/monitor-fleet-managed-apm-server.md' + 'solutions/observability/apps/monitor-apm-server-binary.md': 'solutions/observability/apm/monitor-apm-server-binary.md' + 'solutions/observability/apps/use-internal-collection-to-send-monitoring-data.md': 'solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md' + 'solutions/observability/apps/use-metricbeat-to-send-monitoring-data.md': 'solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md' + 'solutions/observability/apps/use-select-metrics-emitted-directly-to-monitoring-cluster.md': 'solutions/observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md' + 'solutions/observability/apps/apm-apis.md': 'solutions/observability/apm/apis.md' + 'solutions/observability/apps/apm-ui-api.md': 'solutions/observability/apm/apm-ui-api.md' + 'solutions/observability/apps/apm-server-api.md': 'solutions/observability/apm/apm-server-api.md' + 'solutions/observability/apps/apm-server-information-api.md': 'solutions/observability/apm/apm-server-information-api.md' + 'solutions/observability/apps/elastic-apm-events-intake-api.md': 'solutions/observability/apm/elastic-apm-events-intake-api.md' + 'solutions/observability/apps/elastic-apm-agent-configuration-api.md': 'solutions/observability/apm/elastic-apm-agent-configuration-api.md' + 'solutions/observability/apps/opentelemetry-intake-api.md': 'solutions/observability/apm/opentelemetry-intake-api.md' + 'solutions/observability/apps/jaeger-event-intake.md': 'solutions/observability/apm/jaeger-event-intake.md' + 'solutions/observability/apps/managed-intake-service-event-api.md': 'solutions/observability/apm/managed-intake-service-event-api.md' + 'solutions/observability/apps/upgrade.md': 'solutions/observability/apm/upgrade.md' + 'solutions/observability/apps/apm-agent-compatibility.md': 'solutions/observability/apm/apm-agent-compatibility.md' + 'solutions/observability/apps/upgrade-to-version-90.md': 'solutions/observability/apm/upgrade-to-version-9.md' + 'solutions/observability/apps/upgrade-self-installation-of-apm-server-standalone-to-90.md': 'solutions/observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md' + 'solutions/observability/apps/upgrade-self-installation-of-apm-integration-to-90.md': 'solutions/observability/apm/upgrade-self-installation-of-apm-integration-to-9.md' + 'solutions/observability/apps/upgrade-elastic-cloud-apm-server-standalone-to-90.md': 'solutions/observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md' + 'solutions/observability/apps/upgrade-elastic-cloud-with-apm-integration-to-90.md': 'solutions/observability/apm/upgrade-elastic-cloud-with-apm-integration-to-9.md' + 'solutions/observability/apps/switch-to-elastic-apm-integration.md': 'solutions/observability/apm/switch-to-elastic-apm-integration.md' + 'solutions/observability/apps/switch-self-installation-to-apm-integration.md': 'solutions/observability/apm/switch-self-installation-to-apm-integration.md' + 'solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md': 'solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md' + 'solutions/observability/apps/synthetic-monitoring.md': 'solutions/observability/synthetics/index.md' + 'solutions/observability/apps/get-started.md': 'solutions/observability/synthetics/get-started.md' + 'solutions/observability/apps/create-monitors-with-project-monitors.md': 'solutions/observability/synthetics/create-monitors-with-projects.md' + 'solutions/observability/apps/create-monitors-in-synthetics-app.md': 'solutions/observability/synthetics/create-monitors-ui.md' + 'solutions/observability/apps/scripting-browser-monitors.md': 'solutions/observability/synthetics/scripting-browser-monitors.md' + 'solutions/observability/apps/write-synthetic-test.md': 'solutions/observability/synthetics/write-synthetic-test.md' + 'solutions/observability/apps/configure-individual-browser-monitors.md': 'solutions/observability/synthetics/configure-individual-browser-monitors.md' + 'solutions/observability/apps/use-synthetics-recorder.md': 'solutions/observability/synthetics/use-synthetics-recorder.md' + 'solutions/observability/apps/configure-lightweight-monitors.md': 'solutions/observability/synthetics/configure-lightweight-monitors.md' + 'solutions/observability/apps/manage-monitors.md': 'solutions/observability/synthetics/manage-monitors.md' + 'solutions/observability/apps/work-with-params-secrets.md': 'solutions/observability/synthetics/work-with-params-secrets.md' + 'solutions/observability/apps/analyze-data-from-synthetic-monitors.md': 'solutions/observability/synthetics/analyze-data.md' + 'solutions/observability/apps/monitor-resources-on-private-networks.md': 'solutions/observability/synthetics/monitor-resources-on-private-networks.md' + 'solutions/observability/apps/use-synthetics-cli.md': 'solutions/observability/synthetics/cli.md' + 'solutions/observability/apps/configure-synthetics-projects.md': 'solutions/observability/synthetics/configure-projects.md' + 'solutions/observability/apps/multi-factor-authentication-mfa-for-browser-monitors.md': 'solutions/observability/synthetics/mfa-for-browser-monitors.md' + 'solutions/observability/apps/configure-synthetics-settings.md': 'solutions/observability/synthetics/configure-settings.md' + 'solutions/observability/apps/grant-users-access-to-secured-resources.md': 'solutions/observability/synthetics/grant-access-to-secured-resources.md' + 'solutions/observability/apps/setup-role.md': 'solutions/observability/synthetics/setup-role.md' + 'solutions/observability/apps/writer-role.md': 'solutions/observability/synthetics/writer-role.md' + 'solutions/observability/apps/reader-role.md': 'solutions/observability/synthetics/reader-role.md' + 'solutions/observability/apps/manage-data-retention.md': 'solutions/observability/synthetics/manage-data-retention.md' + 'solutions/observability/apps/use-synthetics-with-traffic-filters.md': 'solutions/observability/synthetics/traffic-filters.md' + 'solutions/observability/apps/migrate-from-elastic-synthetics-integration.md': 'solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md' + 'solutions/observability/apps/scale-architect-synthetics-deployment.md': 'solutions/observability/synthetics/scale-architect-synthetics-deployment.md' + 'solutions/observability/apps/synthetics-support-matrix.md': 'solutions/observability/synthetics/support-matrix.md' + 'solutions/observability/apps/synthetics-encryption-security.md': 'solutions/observability/synthetics/encryption-security.md' + 'solutions/observability/apps/real-user-monitoring-user-experience.md': 'solutions/observability/applications/user-experience.md' + 'solutions/observability/apps/uptime-monitoring-deprecated.md': 'solutions/observability/uptime/index.md' + 'solutions/observability/apps/get-started-with-uptime.md': 'solutions/observability/uptime/get-started.md' + 'solutions/observability/apps/analyze.md': 'solutions/observability/uptime/analyze.md' + 'solutions/observability/apps/view-monitor-status.md': 'solutions/observability/uptime/view-monitor-status.md' + 'solutions/observability/apps/analyze-monitors.md': 'solutions/observability/uptime/analyze-monitors.md' + 'solutions/observability/apps/inspect-uptime-duration-anomalies.md': 'solutions/observability/uptime/inspect-duration-anomalies.md' + 'solutions/observability/apps/configure-settings.md': 'solutions/observability/uptime/configure-settings.md' + 'solutions/observability/apps/tutorial-monitor-java-application.md': 'solutions/observability/applications/tutorial-monitor-java-application.md' \ No newline at end of file diff --git a/reference/apm/cloud-enterprise/apm-settings.md b/reference/apm/cloud-enterprise/apm-settings.md index 866eb6389..be9397b56 100644 --- a/reference/apm/cloud-enterprise/apm-settings.md +++ b/reference/apm/cloud-enterprise/apm-settings.md @@ -11,7 +11,7 @@ Starting in {{stack}} version 8.0, how you change APM settings and the settings : New deployments created in {{stack}} version 8.0 and later will be managed by {{fleet}}. * This mode requires SSL/TLS configuration. Check [TLS configuration for {{fleet}}-managed mode](#ece-edit-apm-fleet-tls) for details. - * Check [APM integration input settings](/solutions/observability/apps/configure-apm-server.md) for all other Elastic APM configuration options in this mode. + * Check [APM integration input settings](/solutions/observability/apm/configure-apm-server.md) for all other Elastic APM configuration options in this mode. Standalone APM Server (legacy) @@ -20,7 +20,7 @@ Standalone APM Server (legacy) Check [Edit standalone APM settings (legacy)](#ece-edit-apm-standalone-settings-ece)for information on how to configure Elastic APM in this mode. -To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apps/switch-to-elastic-apm-integration.md). +To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). ## TLS configuration for {{fleet}}-managed mode [ece-edit-apm-fleet-tls] @@ -38,7 +38,7 @@ Pick one of the following options: Elastic Cloud Enterprise supports most of the legacy APM settings. Through a YAML editor in the console, you can append your APM Server properties to the `apm-server.yml` file. Your changes to the configuration file are read on startup. ::::{important} -Be aware that some settings could break your cluster if set incorrectly and that the syntax might change between major versions. Before upgrading, be sure to review the full list of the [latest APM settings and syntax](/solutions/observability/apps/configure-apm-server.md). +Be aware that some settings could break your cluster if set incorrectly and that the syntax might change between major versions. Before upgrading, be sure to review the full list of the [latest APM settings and syntax](/solutions/observability/apm/configure-apm-server.md). :::: diff --git a/reference/apm/cloud/apm-settings.md b/reference/apm/cloud/apm-settings.md index dcb83bb0d..b957e5af3 100644 --- a/reference/apm/cloud/apm-settings.md +++ b/reference/apm/cloud/apm-settings.md @@ -10,7 +10,7 @@ Change how Elastic APM runs by providing your own user settings. Starting in {{s {{fleet}}-managed APM integration : New deployments created in {{stack}} version 8.0 and later will be managed by {{fleet}}. - Check [APM configuration reference](/solutions/observability/apps/configure-apm-server.md) for information on how to configure Elastic APM in this mode. + Check [APM configuration reference](/solutions/observability/apm/configure-apm-server.md) for information on how to configure Elastic APM in this mode. Standalone APM Server (legacy) @@ -19,7 +19,7 @@ Standalone APM Server (legacy) Check [Edit standalone APM settings (legacy)](#ec-edit-apm-standalone-settings) and [Supported standalone APM settings (legacy)](#ec-apm-settings) for information on how to configure Elastic APM in this mode. -To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apps/switch-to-elastic-apm-integration.md). +To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). ## Edit standalone APM settings (legacy) [ec-edit-apm-standalone-settings] @@ -48,7 +48,7 @@ If a setting is not supported by {{ech}}, you will get an error message when you {{ech}} supports the following setting when running APM in standalone mode (legacy). ::::{tip} -Some settings that could break your cluster if set incorrectly are blocklisted. The following settings are generally safe in cloud environments. For detailed information about APM settings, check the [APM documentation](/solutions/observability/apps/configure-apm-server.md). +Some settings that could break your cluster if set incorrectly are blocklisted. The following settings are generally safe in cloud environments. For detailed information about APM settings, check the [APM documentation](/solutions/observability/apm/configure-apm-server.md). :::: @@ -228,7 +228,7 @@ Allow anonymous access only for specified agents and/or services. This is primar : Specifies the maximum allowed size of an event for processing by the server, in bytes. Defaults to `307200`. `output.elasticsearch.pipelines` -: Adds an array for pipeline selector configurations that support conditionals, format string-based field access, and name mappings used to [parse data using ingest node pipelines](/solutions/observability/apps/application-performance-monitoring-apm.md). +: Adds an array for pipeline selector configurations that support conditionals, format string-based field access, and name mappings used to [parse data using ingest node pipelines](/solutions/observability/apm/index.md). `apm-server.register.ingest.pipeline.enabled` : Loads the pipeline definitions to Elasticsearch when the APM Server starts up. Defaults to `false`. diff --git a/reference/apm/observability/apm-settings.md b/reference/apm/observability/apm-settings.md index 1f5e422d4..2ec77d007 100644 --- a/reference/apm/observability/apm-settings.md +++ b/reference/apm/observability/apm-settings.md @@ -7,22 +7,22 @@ mapped_pages: 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 [Installation layout](/solutions/observability/apps/installation-layout.md). +* **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 [Installation layout](/solutions/observability/apm/installation-layout.md). * **Fleet-managed** users configure the APM Server directly in {{kib}}. Each configuration page describes the specific location. * **Elastic cloud** users should see [Add APM user settings](/reference/apm/cloud/apm-settings.md) for information on how to configure Elastic APM. The following topics describe how to configure APM Server: -* [General configuration options](/solutions/observability/apps/general-configuration-options.md) -* [Anonymous authentication](/solutions/observability/apps/configure-anonymous-authentication.md) -* [APM agent authorization](/solutions/observability/apps/apm-agent-authorization.md) -* [APM agent central configuration](/solutions/observability/apps/configure-apm-agent-central-configuration.md) -* [Instrumentation](/solutions/observability/apps/configure-apm-instrumentation.md) -* [{{kib}} endpoint](/solutions/observability/apps/configure-kibana-endpoint.md) -* [Logging](/solutions/observability/apps/configure-logging.md) -* [Output](/solutions/observability/apps/configure-output.md) -* [Project paths](/solutions/observability/apps/configure-project-paths.md) -* [Real User Monitoring (RUM)](/solutions/observability/apps/configure-real-user-monitoring-rum.md) -* [SSL/TLS settings](/solutions/observability/apps/ssltls-settings.md) -* [Tail-based sampling](/solutions/observability/apps/tail-based-sampling.md) -* [Use environment variables in the configuration](/solutions/observability/apps/use-environment-variables-in-configuration.md) +* [General configuration options](/solutions/observability/apm/general-configuration-options.md) +* [Anonymous authentication](/solutions/observability/apm/configure-anonymous-authentication.md) +* [APM agent authorization](/solutions/observability/apm/apm-agent-authorization.md) +* [APM agent central configuration](/solutions/observability/apm/configure-apm-agent-central-configuration.md) +* [Instrumentation](/solutions/observability/apm/configure-apm-instrumentation.md) +* [{{kib}} endpoint](/solutions/observability/apm/configure-kibana-endpoint.md) +* [Logging](/solutions/observability/apm/configure-logging.md) +* [Output](/solutions/observability/apm/configure-output.md) +* [Project paths](/solutions/observability/apm/configure-project-paths.md) +* [Real User Monitoring (RUM)](/solutions/observability/apm/configure-real-user-monitoring-rum.md) +* [SSL/TLS settings](/solutions/observability/apm/ssl-tls-settings.md) +* [Tail-based sampling](/solutions/observability/apm/tail-based-sampling.md) +* [Use environment variables in the configuration](/solutions/observability/apm/use-environment-variables-in-configuration.md) diff --git a/reference/apm/observability/apm.md b/reference/apm/observability/apm.md index e8847c7dc..debe5e942 100644 --- a/reference/apm/observability/apm.md +++ b/reference/apm/observability/apm.md @@ -19,7 +19,7 @@ Metrics are another vital source of information when debugging production system ## Give Elastic APM a try [_give_elastic_apm_a_try] -Use [Get started with application traces and APM](/solutions/observability/apps/fleet-managed-apm-server.md) to quickly spin up an APM deployment. Want to host everything yourself instead? See [Get started](/solutions/observability/apps/get-started-with-apm.md). +Use [Get started with application traces and APM](/solutions/observability/apm/get-started-fleet-managed-apm-server.md) to quickly spin up an APM deployment. Want to host everything yourself instead? See [Get started](/solutions/observability/apm/get-started.md). diff --git a/reference/data-analysis/machine-learning/ootb-ml-jobs-apm.md b/reference/data-analysis/machine-learning/ootb-ml-jobs-apm.md index 81fb267ca..da3deef3f 100644 --- a/reference/data-analysis/machine-learning/ootb-ml-jobs-apm.md +++ b/reference/data-analysis/machine-learning/ootb-ml-jobs-apm.md @@ -7,7 +7,7 @@ mapped_pages: This {{anomaly-job}} appears in the {{apm-app}} and the {{ml-app}} app when you have data from APM Agents or an APM Server in your cluster. It is available only if data exists that matches the query specified in the [manifest file](https://github.com/elastic/kibana/blob/master/x-pack/platform/plugins/shared/ml/server/models/data_recognizer/modules/apm_transaction/manifest.json). -For more information about {{anomaly-detect}} in the {{apm-app}}, refer to [{{ml-cap}} integration](/solutions/observability/apps/integrate-with-machine-learning.md). +For more information about {{anomaly-detect}} in the {{apm-app}}, refer to [{{ml-cap}} integration](/solutions/observability/apm/machine-learning.md). ## Transactions [apm-transaction-jobs] diff --git a/reference/data-analysis/machine-learning/ootb-ml-jobs-uptime.md b/reference/data-analysis/machine-learning/ootb-ml-jobs-uptime.md index 4ff3aa384..ab99be31f 100644 --- a/reference/data-analysis/machine-learning/ootb-ml-jobs-uptime.md +++ b/reference/data-analysis/machine-learning/ootb-ml-jobs-uptime.md @@ -5,7 +5,7 @@ mapped_pages: # Uptime {{anomaly-detect}} configurations [ootb-ml-jobs-uptime] -If you have appropriate {{heartbeat}} data in {{es}}, you can enable this {{anomaly-job}} in the [{{uptime-app}}](/solutions/observability/apps/synthetic-monitoring.md#monitoring-uptime) in {{kib}}. For more usage information, refer to [Inspect uptime duration anomalies](/solutions/observability/apps/inspect-uptime-duration-anomalies.md). +If you have appropriate {{heartbeat}} data in {{es}}, you can enable this {{anomaly-job}} in the [{{uptime-app}}](/solutions/observability/synthetics/index.md#monitoring-uptime) in {{kib}}. For more usage information, refer to [Inspect uptime duration anomalies](/solutions/observability/uptime/inspect-duration-anomalies.md). ## Uptime: {{heartbeat}} [uptime-heartbeat] diff --git a/reference/fleet/add-integration-to-policy.md b/reference/fleet/add-integration-to-policy.md index d8299c54c..47b1b961d 100644 --- a/reference/fleet/add-integration-to-policy.md +++ b/reference/fleet/add-integration-to-policy.md @@ -40,4 +40,4 @@ You can update the settings for an installed integration at any time: If you haven’t deployed any {{agent}}s yet or set up agent policies, start with one of our quick start guides: * [Get started with logs and metrics](/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md) -* [Get started with application traces and APM](/solutions/observability/apps/get-started-with-apm.md) +* [Get started with application traces and APM](/solutions/observability/apm/get-started.md) diff --git a/reference/fleet/data-streams-ilm-tutorial.md b/reference/fleet/data-streams-ilm-tutorial.md index 01a803a53..51e334e6b 100644 --- a/reference/fleet/data-streams-ilm-tutorial.md +++ b/reference/fleet/data-streams-ilm-tutorial.md @@ -12,8 +12,8 @@ These tutorials explain how to apply a custom {{ilm-init}} policy to an integrat For certain features you’ll need to use a slightly different procedure to manage the index lifecycle: -* APM: For verions 8.15 and later, refer to [Index lifecycle management](/solutions/observability/apps/index-lifecycle-management.md). -* Synthetic monitoring: Refer to [Manage data retention](/solutions/observability/apps/manage-data-retention.md). +* APM: For verions 8.15 and later, refer to [Index lifecycle management](/solutions/observability/apm/index-lifecycle-management.md). +* Synthetic monitoring: Refer to [Manage data retention](/solutions/observability/synthetics/manage-data-retention.md). * Universal Profiling: Refer to [Universal Profiling index life cycle management](/solutions/observability/infra-and-hosts/universal-profiling-index-life-cycle-management.md). diff --git a/reference/fleet/data-streams.md b/reference/fleet/data-streams.md index 866dd4a8f..dd5ae45df 100644 --- a/reference/fleet/data-streams.md +++ b/reference/fleet/data-streams.md @@ -101,7 +101,7 @@ You can edit a `@custom` component template to customize your {{es}} indices: 5. Search for the name of the data stream’s custom component template and click the edit icon. 6. Add any custom index settings, metadata, or mappings. For example, you may want to: - * Customize the index lifecycle policy applied to a data stream. See [Configure a custom index lifecycle policy](/solutions/observability/apps/index-lifecycle-management.md#apm-data-streams-custom-policy) in the APM Guide for a walk-through. + * Customize the index lifecycle policy applied to a data stream. See [Configure a custom index lifecycle policy](/solutions/observability/apm/index-lifecycle-management.md#apm-data-streams-custom-policy) in the APM Guide for a walk-through. Specify lifecycle name in the **index settings**: diff --git a/reference/fleet/elastic-agent-container.md b/reference/fleet/elastic-agent-container.md index ad9418b4e..04226dbf9 100644 --- a/reference/fleet/elastic-agent-container.md +++ b/reference/fleet/elastic-agent-container.md @@ -134,7 +134,7 @@ docker run \ 1. Set to 1 to enroll the {{agent}} into {{fleet-server}}. 2. URL to enroll the {{fleet-server}} into. You can find it in {{kib}}. Select **Management → {{fleet}} → Fleet Settings**, and copy the {{fleet-server}} host URL. 3. The token to use for enrollment. Close the flyout panel and select **Enrollment tokens**. Find the Agent policy you want to enroll {{agent}} into, and display and copy the secret token. To learn how to create a policy, refer to [Create an agent policy without using the UI](/reference/fleet/create-policy-no-ui.md). -4. If you want to run **elastic-agent-complete** image, replace `elastic-agent` to `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/apps/get-started.md) for more information. +4. If you want to run **elastic-agent-complete** image, replace `elastic-agent` to `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information. Refer to [Environment variables](/reference/fleet/agent-environment-variables.md) for all available options. ::: @@ -158,7 +158,7 @@ docker run \ 3. The {{fleet}} service token. [Generate one in the {{fleet}} UI](/reference/fleet/fleet-enrollment-tokens.md#create-fleet-enrollment-tokens) if you don’t have one already. 4. ID of the {{fleet-server}} policy. We recommend only having one fleet-server policy. To learn how to create a policy, refer to [Create an agent policy without using the UI](/reference/fleet/create-policy-no-ui.md). 5. publish container port 8220 to host. -6. If you want to run the **elastic-agent-complete** image, replace `elastic-agent` with `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/apps/get-started.md) for more information. +6. If you want to run the **elastic-agent-complete** image, replace `elastic-agent` with `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information. Refer to [Environment variables](/reference/fleet/agent-environment-variables.md) for all available options. ::: @@ -242,7 +242,7 @@ services: - FLEET_URL= ``` -1. Switch `elastic-agent` to `elastic-agent-complete` if you intend to use the complete version. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/apps/get-started.md) for more information. +1. Switch `elastic-agent` to `elastic-agent-complete` if you intend to use the complete version. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information. 2. Synthetic browser monitors require this set to `elastic-agent`. diff --git a/reference/fleet/index.md b/reference/fleet/index.md index 3a881626d..72bb3f9eb 100644 --- a/reference/fleet/index.md +++ b/reference/fleet/index.md @@ -142,4 +142,4 @@ The data collected by {{agent}} is stored in indices that are more granular than Want to get up and running with {{fleet}} and {{agent}} quickly? Read our getting started guides: * [Get started with logs and metrics](/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md) -* [Get started with APM](/solutions/observability/apps/get-started-with-apm.md) +* [Get started with APM](/solutions/observability/apm/get-started.md) diff --git a/reference/fleet/install-elastic-agents.md b/reference/fleet/install-elastic-agents.md index 05f468d16..d6cb46405 100644 --- a/reference/fleet/install-elastic-agents.md +++ b/reference/fleet/install-elastic-agents.md @@ -88,7 +88,7 @@ This basic package is suitable for most use cases and it offers a reduced size o The servers {{agent}} flavor is installed using the `elastic-agent install --install-servers` command, or for RPM and DEB packages the `ELATIC_AGENT_FLAVOR=servers` environment variable. In addition to components included in the basic flavor, this flavor also includes: -* `apm-server` - implements the Elastic [APM Server](../../solutions/observability/apps/get-started-with-apm.md). +* `apm-server` - implements the Elastic [APM Server](/solutions/observability/apm/get-started.md). * `cloudbeat` - implements [Cloud Security Posture Management (CSPM)](../../solutions/security/cloud/cloud-security-posture-management.md) integrations. * `fleet-server`, implements [Fleet Server](../fleet/fleet-server.md) for managing {{agents}}. * `pf-elastic-symbolizer` - a server side component of Elastic [Universal Profiling](../../solutions/observability/infra-and-hosts/get-started-with-universal-profiling.md). @@ -96,7 +96,7 @@ The servers {{agent}} flavor is installed using the `elastic-agent install --ins Beginning in version 9.0, for {{agents}} to have the full functionality that was supported by default in pre-9.x versions, you need to install the servers {[agent]} flavor. -### Flavors for container package installs +### Flavors for container package installs #### Basic flavor [elastic-agent-basic-flavor-container] @@ -108,7 +108,7 @@ For containerized environments, the servers {{agent}} flavor is installed using #### Complete flavor [elastic-agent-complete-flavor] -For containerized environments, the complete {{agent}} flavor is installed using the `elastic-agent-complete` command with an agent container package. This flavor includes all of the components in the servers flavor, and also includes additional dependencies to run browser monitors through Elastic Synthetics. It also includes the [journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html) dependences necessary to use the [journald input](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-journald.html). Refer to [Synthetic monitoring via Elastic Agent and Fleet](/solutions/observability/apps/get-started.md) for more information. +For containerized environments, the complete {{agent}} flavor is installed using the `elastic-agent-complete` command with an agent container package. This flavor includes all of the components in the servers flavor, and also includes additional dependencies to run browser monitors through Elastic Synthetics. It also includes the [journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html) dependences necessary to use the [journald input](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-journald.html). Refer to [Synthetic monitoring via Elastic Agent and Fleet](/solutions/observability/synthetics/get-started.md) for more information. ## Resource requirements [elastic-agent-installation-resource-requirements] diff --git a/reference/fleet/upgrade-integration.md b/reference/fleet/upgrade-integration.md index bf79231df..856b7fac9 100644 --- a/reference/fleet/upgrade-integration.md +++ b/reference/fleet/upgrade-integration.md @@ -63,7 +63,7 @@ Note that for the following integrations, when the integration is updated automa * [Elastic APM](integration-docs://reference/apm/index.md) * [Cloud Security Posture Management](integration-docs://reference/cloud_security_posture/index.md#cloud-security-posture-management-cspm) -* [Elastic Synthetics](/solutions/observability/apps/synthetic-monitoring.md) +* [Elastic Synthetics](/solutions/observability/synthetics/index.md) For integrations that support the option to auto-upgrade the integration policy, when this option is selected (the default), {{fleet}} automatically upgrades your policies when a new version of the integration is available. If there are conflicts during the upgrade, your integration policies will not be upgraded, and you’ll need to [upgrade integration policies manually](#upgrade-integration-policies-manually). diff --git a/reference/glossary/index.md b/reference/glossary/index.md index cdf10f7bd..471bbe1de 100644 --- a/reference/glossary/index.md +++ b/reference/glossary/index.md @@ -712,7 +712,7 @@ $$$glossary-space$$$ space : A place for organizing [dashboards](/reference/glossary/index.md#glossary-dashboard), [visualizations](/reference/glossary/index.md#glossary-visualization), and other [saved objects](/reference/glossary/index.md#glossary-saved-object) by category. For example, you might have different spaces for each team, use case, or individual. See [Spaces](/deploy-manage/manage-spaces.md). $$$glossary-span$$$ span -: Information about the execution of a specific code path. [Spans](/solutions/observability/apps/spans.md) measure from the start to the end of an activity and can have a parent/child relationship with other spans. +: Information about the execution of a specific code path. [Spans](/solutions/observability/apm/spans.md) measure from the start to the end of an activity and can have a parent/child relationship with other spans. $$$glossary-split$$$ split : Adds more [primary shards](/reference/glossary/index.md#glossary-primary-shard) to an [index](/reference/glossary/index.md#glossary-index). @@ -772,7 +772,7 @@ $$$glossary-trained-model$$$ trained model : A {{ml}} model that is trained and tested against a labeled data set and can be referenced in an ingest pipeline or in a pipeline aggregation to perform {{classification}} or {{reganalysis}} or [{{nlp}}](/reference/glossary/index.md#glossary-nlp) on new data. $$$glossary-transaction$$$ transaction -: A special kind of [span](/reference/glossary/index.md#glossary-span) that has additional attributes associated with it. [Transactions](/solutions/observability/apps/transactions.md) describe an event captured by an Elastic [APM agent](/reference/glossary/index.md#glossary-apm-agent) instrumenting a service. +: A special kind of [span](/reference/glossary/index.md#glossary-span) that has additional attributes associated with it. [Transactions](/solutions/observability/apm/transactions.md) describe an event captured by an Elastic [APM agent](/reference/glossary/index.md#glossary-apm-agent) instrumenting a service. $$$glossary-tsvb$$$ TSVB : A time series data visualizer that allows you to combine an infinite number of aggregations to display complex data. See [TSVB](/explore-analyze/dashboards.md). diff --git a/reference/index.md b/reference/index.md index 0d8e3d24e..ecdc90223 100644 --- a/reference/index.md +++ b/reference/index.md @@ -87,6 +87,6 @@ Explore the reference documentation for Elastic APIs. | {{es}} | • [{{es}}](elasticsearch://reference/elasticsearch/rest-apis/index.md)
• [{{es}} Serverless](https://www.elastic.co/docs/api/doc/elasticsearch-serverless)
| | {{kib}} | • [{{kib}}](https://www.elastic.co/docs/api/doc/kibana)
• [{{kib}} Serverless](https://www.elastic.co/docs/api/doc/serverless)
• [{{fleet}}](/reference/fleet/fleet-api-docs.md)
• [{{observability}} Serverless SLOs](https://www.elastic.co/docs/api/doc/serverless/group/endpoint-slo)
• [{{elastic-sec}}](https://www.elastic.co/docs/api/doc/kibana/group/endpoint-security-ai-assistant-api)
• [{{elastic-sec}} Serverless](https://www.elastic.co/docs/api/doc/serverless/group/endpoint-security-ai-assistant-api)
| | {{ls}} | • [Monitoring {{ls}}](https://www.elastic.co/guide/en/logstash/current/monitoring-logstash.html)
| -| APM | • [APM](/solutions/observability/apps/apm-server-api.md)
• [APM Serverless](https://www.elastic.co/docs/api/doc/serverless/group/endpoint-apm-agent-configuration)
• [Observability intake Serverless](https://www.elastic.co/docs/api/doc/observability-serverless)
| +| APM | • [APM](/solutions/observability/apm/apm-server-api.md)
• [APM Serverless](https://www.elastic.co/docs/api/doc/serverless/group/endpoint-apm-agent-configuration)
• [Observability intake Serverless](https://www.elastic.co/docs/api/doc/observability-serverless)
| | {{ecloud}} | • [{{ech}}](https://www.elastic.co/docs/api/doc/cloud)
• [{{ecloud}} Serverless](https://www.elastic.co/docs/api/doc/elastic-cloud-serverless)
• [{{ece}}](https://www.elastic.co/docs/api/doc/cloud-enterprise)
• [{{eck}}](cloud-on-k8s://reference/api-docs.md)
| diff --git a/reference/observability/elastic-entity-model.md b/reference/observability/elastic-entity-model.md index cf0696f6b..cb33c4a22 100644 --- a/reference/observability/elastic-entity-model.md +++ b/reference/observability/elastic-entity-model.md @@ -21,7 +21,7 @@ In the context of Elastic Observability, an *entity* is an object of interest th The concept of an entity is important as a means to unify observability signals based on the underlying entity that the signals describe. ::::{note} -* The Elastic Entity Model currently supports the [new Inventory experience](/solutions/observability/apps/inventory.md) limited to service, host, and container entities. +* The Elastic Entity Model currently supports the [new Inventory experience](/solutions/observability/apm/inventory.md) limited to service, host, and container entities. * During Technical Preview, Entity Discovery Framework components are not enabled by default. :::: @@ -30,7 +30,7 @@ The concept of an entity is important as a means to unify observability signals ## Enable the Elastic Entity Model [_enable_the_elastic_entity_model] -You can enable the Elastic Entity Model from the new [Inventory](/solutions/observability/apps/inventory.md). If already enabled, you will not be prompted to enable the Elastic Entity Model. +You can enable the Elastic Entity Model from the new [Inventory](/solutions/observability/apm/inventory.md). If already enabled, you will not be prompted to enable the Elastic Entity Model. The following {{es}} privileges are required: diff --git a/solutions/observability.md b/solutions/observability.md index 6fd686fcb..575397fb1 100644 --- a/solutions/observability.md +++ b/solutions/observability.md @@ -15,20 +15,20 @@ applies_to: ## Get started [_get_started] -* [**Get started**](observability/get-started.md): Discover more about our observability features and how to get started. -* [**Quickstart: Monitor hosts with Elastic Agent**](observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md): Scan your host to detect and collect logs and metrics. -* [**Quickstart: Monitor your Kubernetes cluster with Elastic Agent**](observability/get-started/quickstart-monitor-kubernetes-cluster-with-elastic-agent.md): Create the Kubernetes resources that are required to monitor your cluster infrastructure. -* [**Get started with Logs**](observability/logs/get-started-with-system-logs.md): Add your log data to {{observability}} and start exploring your logs. -* [**Get started with traces and APM**](observability/apps/get-started-with-apm.md): Collect Application Performance Monitoring (APM) data and visualize it in real time. -* [**Get started with metrics**](observability/infra-and-hosts/get-started-with-system-metrics.md): Add your metrics data to {{observability}} and visualize it in real time. +* [**Get started**](/solutions/observability/get-started.md): Discover more about our observability features and how to get started. +* [**Quickstart: Monitor hosts with Elastic Agent**](/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md): Scan your host to detect and collect logs and metrics. +* [**Quickstart: Monitor your Kubernetes cluster with Elastic Agent**](/solutions/observability/get-started/quickstart-monitor-kubernetes-cluster-with-elastic-agent.md): Create the Kubernetes resources that are required to monitor your cluster infrastructure. +* [**Get started with Logs**](/solutions/observability/logs/get-started-with-system-logs.md): Add your log data to {{observability}} and start exploring your logs. +* [**Get started with traces and APM**](/solutions/observability/apm/get-started.md): Collect Application Performance Monitoring (APM) data and visualize it in real time. +* [**Get started with metrics**](/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md): Add your metrics data to {{observability}} and visualize it in real time. ## How to [_how_to] -* [**Explore log data**](observability/logs/discover-logs.md): Use Discover to explore your log data. -* [**Trigger alerts and triage problems**](../solutions/observability/incident-management/create-manage-rules.md): Create rules to detect complex conditions and trigger alerts. -* [**Track and deliver on your SLOs**](observability/incident-management/service-level-objectives-slos.md): Measure key metrics important to the business. -* [**Detect anomalies and spikes**](../explore-analyze/machine-learning/anomaly-detection.md): Find unusual behavior in time series data. -* [**Monitor application performance**](observability/apps/application-performance-monitoring-apm.md): Monitor your software services and applications in real time. -* [**Integrate with OpenTelemetry**](observability/apps/use-opentelemetry-with-apm.md): Reuse existing APM instrumentation to capture logs, traces, and metrics. -* [**Monitor your hosts and services**](observability/infra-and-hosts/analyze-compare-hosts.md): Get a metrics-driven view of your hosts backed by an interface called Lens. \ No newline at end of file +* [**Explore log data**](/solutions/observability/logs/discover-logs.md): Use Discover to explore your log data. +* [**Trigger alerts and triage problems**](/solutions/observability/incident-management/create-manage-rules.md): Create rules to detect complex conditions and trigger alerts. +* [**Track and deliver on your SLOs**](/solutions/observability/incident-management/service-level-objectives-slos.md): Measure key metrics important to the business. +* [**Detect anomalies and spikes**](/explore-analyze/machine-learning/anomaly-detection.md): Find unusual behavior in time series data. +* [**Monitor application performance**](/solutions/observability/apm/index.md): Monitor your software services and applications in real time. +* [**Integrate with OpenTelemetry**](/solutions/observability/apm/use-opentelemetry-with-apm.md): Reuse existing APM instrumentation to capture logs, traces, and metrics. +* [**Monitor your hosts and services**](/solutions/observability/infra-and-hosts/analyze-compare-hosts.md): Get a metrics-driven view of your hosts backed by an interface called Lens. \ No newline at end of file diff --git a/solutions/observability/apps/_snippets/apm-server-vs-mis.md b/solutions/observability/apm/_snippets/apm-server-vs-mis.md similarity index 100% rename from solutions/observability/apps/_snippets/apm-server-vs-mis.md rename to solutions/observability/apm/_snippets/apm-server-vs-mis.md diff --git a/solutions/observability/apm/act-on-data.md b/solutions/observability/apm/act-on-data.md new file mode 100644 index 000000000..3b4057551 --- /dev/null +++ b/solutions/observability/apm/act-on-data.md @@ -0,0 +1,18 @@ +--- +navigation_title: "Act on data" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-act-on-data.html + - https://www.elastic.co/guide/en/serverless/current/observability-apm-act-on-data.html +applies_to: + stack: + serverless: +--- + +# Act on application data + +In addition to exploring visualizations in the Applications UI in {{kib}}, you can make your application data more actionable with: + +| | | +| --- | --- | +| [Rules and alerts](/solutions/observability/apm/create-apm-rules-alerts.md) | The Applications UI allows you to define rules to detect complex conditions within your APM data and trigger built-in actions when those conditions are met. | +| [Custom links](/solutions/observability/apm/create-custom-links.md) | Build URLs that contain relevant metadata from a specific trace. For example, you can create a link that will take you to a page where you can open a new GitHub issue with context already auto-populated in the issue body. These links will be shown in the *Actions* context menu in selected areas of the Applications UI (for example, by transaction details). | \ No newline at end of file diff --git a/solutions/observability/apps/use-advanced-queries-on-application-data.md b/solutions/observability/apm/advanced-queries.md similarity index 93% rename from solutions/observability/apps/use-advanced-queries-on-application-data.md rename to solutions/observability/apm/advanced-queries.md index 076b864a6..8b56d067d 100644 --- a/solutions/observability/apps/use-advanced-queries-on-application-data.md +++ b/solutions/observability/apm/advanced-queries.md @@ -30,7 +30,7 @@ To learn more about the {{kib}} query language capabilities, see the [Kibana Que ### APM queries [apm-app-queries] -APM queries can be handy for removing noise from your data in the [Services](/solutions/observability/apps/services.md), [Transactions](/solutions/observability/apps/transactions-2.md), [Errors](/solutions/observability/apps/errors-2.md), [Metrics](/solutions/observability/apps/metrics-2.md), and [Traces](/solutions/observability/apps/traces-2.md) views. +APM queries can be handy for removing noise from your data in the [Services](/solutions/observability/apm/services.md), [Transactions](/solutions/observability/apm/transactions-ui.md), [Errors](/solutions/observability/apm/errors-ui.md), [Metrics](/solutions/observability/apm/metrics-ui.md), and [Traces](/solutions/observability/apm/traces-ui.md) views. For example, in the **Services** view, you can quickly view a list of all the instrumented services running on your production environment: `service.environment : production`. Or filter the list by including the APM agent’s name and the host it’s running on: `service.environment : "production" and agent.name : "java" and host.name : "prod-server1"`. diff --git a/solutions/observability/apps/anonymous-authentication.md b/solutions/observability/apm/anonymous-authentication.md similarity index 72% rename from solutions/observability/apps/anonymous-authentication.md rename to solutions/observability/apm/anonymous-authentication.md index 811c04be3..697ad0eed 100644 --- a/solutions/observability/apps/anonymous-authentication.md +++ b/solutions/observability/apm/anonymous-authentication.md @@ -11,7 +11,7 @@ Elastic APM agents can send unauthenticated (anonymous) events to the APM Server | Configuration | Default | | --- | --- | -| An [API key](api-keys.md) or [secret token](secret-token.md) is configured | Anonymous requests are rejected and an authentication error is returned. | +| An [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) 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. | In some cases, however, it makes sense to allow both authenticated and anonymous requests. For example, it isn’t possible to authenticate requests from front-end services as the secret token or API key can’t be protected. This is the case with the Real User Monitoring (RUM) agent running in a browser, or the Android or iOS/Swift agent running in a user application. However, you still likely want to authenticate requests from back-end services. To solve this problem, you can enable anonymous authentication in the APM Server to allow the ingestion of unauthenticated client-side APM data while still requiring authentication for server-side services. @@ -19,14 +19,14 @@ In some cases, however, it makes sense to allow both authenticated and anonymous ## Configuring anonymous auth for client-side services [apm-anonymous-auth-config] ::::{note} -You can only enable and configure anonymous authentication if an [API key](api-keys.md) or [secret token](secret-token.md) is configured. If neither are configured, these settings will be ignored. +You can only enable and configure anonymous authentication if an [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) is configured. If neither are configured, these settings will be ignored. :::: :::::::{tab-set} ::::::{tab-item} Fleet-managed -When an [API key](api-keys.md) or [secret token](secret-token.md) is configured, anonymous authentication must be enabled to collect RUM data. Set **Anonymous Agent access** to true to enable anonymous authentication. +When an [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) is configured, anonymous authentication must be enabled to collect RUM data. Set **Anonymous Agent access** to true to enable anonymous authentication. When configuring anonymous authentication for client-side services, there are a few configuration variables that can mitigate the impact of malicious requests to an unauthenticated APM Server endpoint. @@ -36,11 +36,11 @@ Additionally, the APM Server can rate-limit unauthenticated requests based on th :::::: ::::::{tab-item} APM Server binary -When an [API key](api-keys.md) or [secret token](secret-token.md) is configured, anonymous authentication must be enabled to collect RUM data. To enable anonymous access, set either [`apm-server.rum.enabled`](configure-real-user-monitoring-rum.md#apm-rum-enable) or [`apm-server.auth.anonymous.enabled`](configure-anonymous-authentication.md#apm-config-auth-anon-enabled) to `true`. +When an [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) is configured, anonymous authentication must be enabled to collect RUM data. To enable anonymous access, set either [`apm-server.rum.enabled`](/solutions/observability/apm/configure-real-user-monitoring-rum.md#apm-rum-enable) or [`apm-server.auth.anonymous.enabled`](/solutions/observability/apm/configure-anonymous-authentication.md#apm-config-auth-anon-enabled) 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 [Anonymous authentication](configure-anonymous-authentication.md) for a complete list of options and a sample configuration file. +See [Anonymous authentication](/solutions/observability/apm/configure-anonymous-authentication.md) for a complete list of options and a sample configuration file. :::::: ::::::: diff --git a/solutions/observability/apps/api-keys.md b/solutions/observability/apm/api-keys.md similarity index 94% rename from solutions/observability/apps/api-keys.md rename to solutions/observability/apm/api-keys.md index 38d744543..c27586dac 100644 --- a/solutions/observability/apps/api-keys.md +++ b/solutions/observability/apm/api-keys.md @@ -11,17 +11,17 @@ applies_to: ::: ::::{important} -API keys are sent as plain-text, so they only provide security when used in combination with [TLS](apm-agent-tls-communication.md). +API keys are sent as plain-text, so they only provide security when used in combination with [TLS](/solutions/observability/apm/apm-agent-tls-communication.md). :::: When enabled, API keys are used to authorize requests to {{apm-server-or-mis}}. API keys are not applicable for APM agents running on clients, like the RUM agent, as there is no way to prevent them from being publicly exposed. You can assign one or more unique privileges to each API key: -* **Agent configuration** (`config_agent:read`): Required for agents to read [Agent configuration remotely](apm-agent-central-configuration.md). +* **Agent configuration** (`config_agent:read`): Required for agents to read [Agent configuration remotely](/solutions/observability/apm/apm-agent-central-configuration.md). * **Ingest** (`event:write`): Required for ingesting agent events. -To secure the communication between APM Agents and either {{apm-server-or-mis}} with API keys, make sure [TLS](apm-agent-tls-communication.md) is enabled, then complete these steps: +To secure the communication between APM Agents and either {{apm-server-or-mis}} with API keys, make sure [TLS](/solutions/observability/apm/apm-agent-tls-communication.md) is enabled, then complete these steps: 1. [Enable API keys](#apm-enable-api-key) 2. [Create an API key user](#apm-create-api-key-user) @@ -33,7 +33,7 @@ To secure the communication between APM Agents and either {{apm-server-or-mis}} :::::::{tab-set} ::::::{tab-item} Fleet-managed -Enable API key authorization in the [API key authentication options](apm-agent-authorization.md#apm-api-key-auth-settings). 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. +Enable API key authorization in the [API key authentication options](/solutions/observability/apm/apm-agent-authorization.md#apm-api-key-auth-settings). 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. :::::: ::::::{tab-item} APM Server binary @@ -273,7 +273,7 @@ Invalidated keys ... qT4tz28B1g59zC3uAXfW Error count ........ 0 ``` -A full list of `apikey` subcommands and flags is available in the [API key command reference](apm-server-command-reference.md#apm-apikey-command). +A full list of `apikey` subcommands and flags is available in the [API key command reference](/solutions/observability/apm/apm-server-command-reference.md#apm-apikey-command). ### {{es}} API key workflow [apm-create-api-key-workflow-es] diff --git a/solutions/observability/apm/apis.md b/solutions/observability/apm/apis.md new file mode 100644 index 000000000..9338302dc --- /dev/null +++ b/solutions/observability/apm/apis.md @@ -0,0 +1,21 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-apis.html +applies_to: + stack: + serverless: +--- + +# APM APIs [apm-apis] + +:::{include} _snippets/apm-server-vs-mis.md +::: + +There are two kinds of APIs related to Elastic APM: + +| | | +| --- | --- | +| [APM UI API](/solutions/observability/apm/apm-ui-api.md) | {{kib}} APIs specific to working with the Applications UI including updating configuration options, uploading real user monitoring (RUM) source maps, adding annotations, and more. | +| [APM Server API](/solutions/observability/apm/apm-server-api.md) | APIs for working with APM Server. These are mainly intake APIs that accept data from APM agents and are used primarily by APM agent developers. | +| [Observability Intake Serverless API](/solutions/observability/apm/managed-intake-service-event-api.md) | The managed intake service exposes an API endpoint to query general server information. This lightweight endpoint is useful as a server up/down health check. This API is exclusively for APM agent developers. | + diff --git a/solutions/observability/apps/apm-agent-authorization.md b/solutions/observability/apm/apm-agent-authorization.md similarity index 100% rename from solutions/observability/apps/apm-agent-authorization.md rename to solutions/observability/apm/apm-agent-authorization.md diff --git a/solutions/observability/apps/apm-agent-central-configuration.md b/solutions/observability/apm/apm-agent-central-configuration.md similarity index 96% rename from solutions/observability/apps/apm-agent-central-configuration.md rename to solutions/observability/apm/apm-agent-central-configuration.md index 3584143c9..9a1da6595 100644 --- a/solutions/observability/apps/apm-agent-central-configuration.md +++ b/solutions/observability/apm/apm-agent-central-configuration.md @@ -61,5 +61,5 @@ Real User Monitoring (RUM) agent For most users, APM agent configuration should work out-of-the-box. If you run into trouble, it may be because you’re not using the {{es}} output, or because your {{es}} credentials don’t have sufficient privileges. -See [configure APM agent configuration](/solutions/observability/apps/configure-apm-agent-central-configuration.md) to learn how to configure APM Server to avoid these problems. +See [configure APM agent configuration](/solutions/observability/apm/configure-apm-agent-central-configuration.md) to learn how to configure APM Server to avoid these problems. diff --git a/solutions/observability/apps/apm-agent-compatibility.md b/solutions/observability/apm/apm-agent-compatibility.md similarity index 100% rename from solutions/observability/apps/apm-agent-compatibility.md rename to solutions/observability/apm/apm-agent-compatibility.md diff --git a/solutions/observability/apps/apm-agent-explorer.md b/solutions/observability/apm/apm-agent-explorer.md similarity index 100% rename from solutions/observability/apps/apm-agent-explorer.md rename to solutions/observability/apm/apm-agent-explorer.md diff --git a/solutions/observability/apps/apm-agent-tls-communication.md b/solutions/observability/apm/apm-agent-tls-communication.md similarity index 95% rename from solutions/observability/apps/apm-agent-tls-communication.md rename to solutions/observability/apm/apm-agent-tls-communication.md index 9919023d2..268412032 100644 --- a/solutions/observability/apps/apm-agent-tls-communication.md +++ b/solutions/observability/apm/apm-agent-tls-communication.md @@ -29,7 +29,7 @@ Enable TLS and configure the APM Server to point to the extracted certificate an :::::::{tab-set} ::::::{tab-item} Fleet-managed -Enable TLS in the APM integration settings and use the [SSL/TLS input settings](ssltls-input-settings.md) to set the path to the server certificate and key. +Enable TLS in the APM integration settings and use the [SSL/TLS input settings](/solutions/observability/apm/ssl-tls-input-settings.md) to set the path to the server certificate and key. :::::: ::::::{tab-item} APM Server binary @@ -41,7 +41,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 [SSL/TLS input settings](ssltls-input-settings.md). +A full list of configuration options is available in [SSL/TLS input settings](/solutions/observability/apm/ssl-tls-input-settings.md). ::::{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/solutions/observability/apps/apm-k8s-attacher.md b/solutions/observability/apm/apm-k8s-attacher.md similarity index 100% rename from solutions/observability/apps/apm-k8s-attacher.md rename to solutions/observability/apm/apm-k8s-attacher.md diff --git a/solutions/observability/apm/apm-server-advanced-setup.md b/solutions/observability/apm/apm-server-advanced-setup.md new file mode 100644 index 000000000..f946d1e0b --- /dev/null +++ b/solutions/observability/apm/apm-server-advanced-setup.md @@ -0,0 +1,21 @@ +--- +navigation_title: "Advanced setup" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-setting-up-and-running.html +applies_to: + stack: +--- + +# APM Server advanced setup [apm-setting-up-and-running] + +Before reading this section, see the [getting started documentation](/solutions/observability/apm/get-started-fleet-managed-apm-server.md) for basic installation and running instructions. + +This section includes additional information on how to set up and run APM Server, including: + +* [Installation layout](/solutions/observability/apm/installation-layout.md) +* [Secrets keystore](/solutions/observability/apm/secrets-keystore-for-secure-settings.md) +* [Command reference](/solutions/observability/apm/apm-server-command-reference.md) +* [Tune data ingestion](/solutions/observability/apm/tune-data-ingestion.md) +* [High Availability](/solutions/observability/apm/high-availability.md) +* [Run APM Server on Docker](/solutions/observability/apm/get-started-apm-server-binary.md#apm-running-on-docker) + diff --git a/solutions/observability/apm/apm-server-api.md b/solutions/observability/apm/apm-server-api.md new file mode 100644 index 000000000..bd8817a0e --- /dev/null +++ b/solutions/observability/apm/apm-server-api.md @@ -0,0 +1,17 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-api.html +applies_to: + stack: +--- + +# APM Server API [apm-api] + +The APM Server exposes endpoints for: + +* [APM Server information API](/solutions/observability/apm/apm-server-information-api.md) +* [Elastic APM events intake API](/solutions/observability/apm/elastic-apm-events-intake-api.md) +* [Elastic APM agent configuration API](/solutions/observability/apm/elastic-apm-agent-configuration-api.md) +* [OpenTelemetry intake API](/solutions/observability/apm/opentelemetry-intake-api.md) +* [Jaeger event intake](/solutions/observability/apm/jaeger-event-intake.md) + diff --git a/solutions/observability/apps/apm-server-command-reference.md b/solutions/observability/apm/apm-server-command-reference.md similarity index 90% rename from solutions/observability/apps/apm-server-command-reference.md rename to solutions/observability/apm/apm-server-command-reference.md index 0b5559cf2..4e1ecfd6c 100644 --- a/solutions/observability/apps/apm-server-command-reference.md +++ b/solutions/observability/apm/apm-server-command-reference.md @@ -31,7 +31,7 @@ Some of the features described here require an Elastic license. For more informa | [`apikey`](#apm-apikey-command) | Manage API Keys for communication between APM agents and server. [8.6.0] | | [`export`](#apm-export-command) | Exports the configuration, index template, or {{ilm-init}} policy to stdout. | | [`help`](#apm-help-command) | Shows help for any command. | -| [`keystore`](#apm-keystore-command) | Manages the [secrets keystore](secrets-keystore-for-secure-settings.md). | +| [`keystore`](#apm-keystore-command) | Manages the [secrets keystore](/solutions/observability/apm/secrets-keystore-for-secure-settings.md). | | [`run`](#apm-run-command) | Runs APM Server. This command is used by default if you start APM Server without specifying a command. | | [`test`](#apm-test-command) | Tests the configuration. | | [`version`](#apm-version-command) | Shows information about the current version. | @@ -47,10 +47,10 @@ This functionality is in technical preview and may be changed or removed in a fu ::::{admonition} Deprecated in 8.6.0. :class: warning -Users should create API Keys through {{kib}} or the {{es}} REST API. See [API keys](api-keys.md). +Users should create API Keys through {{kib}} or the {{es}} REST API. See [API keys](/solutions/observability/apm/api-keys.md). :::: -Communication between APM agents and APM Server now supports sending an [API Key in the Authorization header](api-keys.md). 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, and you must ensure that `apm-server.api_key` or `output.elasticsearch` are configured appropriately. +Communication between APM agents and APM Server now supports sending an [API Key in the Authorization header](/solutions/observability/apm/api-keys.md). 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, and you must ensure that `apm-server.api_key` or `output.elasticsearch` are configured appropriately. **SYNOPSIS** @@ -130,7 +130,7 @@ apm-server apikey info --name example-001 --valid-only apm-server apikey invalidate --name example-001 ``` -For more information, see [API keys](api-keys.md). +For more information, see [API keys](/solutions/observability/apm/api-keys.md). ## `export` command [apm-export-command] @@ -206,7 +206,7 @@ apm-server help export ## `keystore` command [apm-keystore-command] -Manages the [secrets keystore](secrets-keystore-for-secure-settings.md). +Manages the [secrets keystore](/solutions/observability/apm/secrets-keystore-for-secure-settings.md). **SYNOPSIS** @@ -250,7 +250,7 @@ apm-server keystore remove ES_PWD apm-server keystore list ``` -See [Secrets keystore](secrets-keystore-for-secure-settings.md) for more examples. +See [Secrets keystore](/solutions/observability/apm/secrets-keystore-for-secure-settings.md) for more examples. ## `run` command [apm-run-command] @@ -382,19 +382,19 @@ These global flags are available whenever you run APM Server. : For logging purposes, specifies the environment that APM Server is running in. This setting is used to select a default log output when no log output is configured. Supported values are: `systemd`, `container`, `macos_service`, and `windows_service`. If `systemd` or `container` is specified, APM Server will log to stdout and stderr by default. **`--path.config`** -: Sets the path for configuration files. See the [Installation layout](installation-layout.md) section for details. +: Sets the path for configuration files. See the [Installation layout](/solutions/observability/apm/installation-layout.md) section for details. **`--path.data`** -: Sets the path for data files. See the [Installation layout](installation-layout.md) section for details. +: Sets the path for data files. See the [Installation layout](/solutions/observability/apm/installation-layout.md) section for details. **`--path.home`** -: Sets the path for miscellaneous files. See the [Installation layout](installation-layout.md) section for details. +: Sets the path for miscellaneous files. See the [Installation layout](/solutions/observability/apm/installation-layout.md) section for details. **`--path.logs`** -: Sets the path for log files. See the [Installation layout](installation-layout.md) section for details. +: Sets the path for log files. See the [Installation layout](/solutions/observability/apm/installation-layout.md) section for details. **`--strict.perms`** -: Sets strict permission checking on configuration files. The default is `-strict.perms=true`. See [Configuration file ownership](apm-server-systemd.md#apm-config-file-ownership) for more information. +: Sets strict permission checking on configuration files. The default is `-strict.perms=true`. See [Configuration file ownership](/solutions/observability/apm/apm-server-systemd.md#apm-config-file-ownership) for more information. **`-v, --v`** : Logs INFO-level messages. diff --git a/solutions/observability/apps/apm-server-information-api.md b/solutions/observability/apm/apm-server-information-api.md similarity index 75% rename from solutions/observability/apps/apm-server-information-api.md rename to solutions/observability/apm/apm-server-information-api.md index c9485fcb8..54c407666 100644 --- a/solutions/observability/apps/apm-server-information-api.md +++ b/solutions/observability/apm/apm-server-information-api.md @@ -19,9 +19,9 @@ http(s)://{hostname}:{port}/ Sending an `HTTP GET` 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 [APM API key](api-keys.md) or [APM Secret Token](secret-token.md), must be followed to configure the correct permissions for APM access. +To configure authenticated access to the APM server, the instructions at [APM API key](/solutions/observability/apm/api-keys.md) or [APM Secret Token](/solutions/observability/apm/secret-token.md), must be followed to configure the correct permissions for APM access. -If an [API keys](api-keys.md) or a [Secret token](secret-token.md) is passed along with the `HTTP GET` request, in addition to an HTTP 200, the response payload will include some information about the APM server. +If an [API keys](/solutions/observability/apm/api-keys.md) or a [Secret token](/solutions/observability/apm/secret-token.md) is passed along with the `HTTP GET` request, in addition to an HTTP 200, the response payload will include some information about the APM server. ### Example: GET, without credentials [apm-api-info-example-get-without-credentials] @@ -49,7 +49,7 @@ curl --verbose -X GET http://127.0.0.1:8200 ### Example: GET, with secret token [apm-api-info-example-get-with-secret-token] -Example APM Server information request with GET, with a [Secret token](secret-token.md): +Example APM Server information request with GET, with a [Secret token](/solutions/observability/apm/secret-token.md): ```sh curl -X GET http://127.0.0.1:8200/ \ diff --git a/solutions/observability/apps/apm-server-systemd.md b/solutions/observability/apm/apm-server-systemd.md similarity index 98% rename from solutions/observability/apps/apm-server-systemd.md rename to solutions/observability/apm/apm-server-systemd.md index 2e1b0bbf7..f880cc30a 100644 --- a/solutions/observability/apps/apm-server-systemd.md +++ b/solutions/observability/apm/apm-server-systemd.md @@ -62,7 +62,7 @@ The systemd service unit file includes environment variables that you can overri | `BEAT_PATH_OPTS` | Other paths | ``-path.home /usr/share/apm-server -path.config /etc/apm-server -path.data /var/lib/apm-server -path.logs /var/log/apm-server`` | ::::{note} -You can use `BEAT_LOG_OPTS` to set debug selectors for logging. However, to configure logging behavior, set the logging options described in [Configure logging](configure-logging.md). +You can use `BEAT_LOG_OPTS` to set debug selectors for logging. However, to configure logging behavior, set the logging options described in [Configure logging](/solutions/observability/apm/configure-logging.md). :::: To override these variables, create a drop-in unit file in the `/etc/systemd/system/apm-server.service.d` directory. diff --git a/solutions/observability/apps/apm-ui-api.md b/solutions/observability/apm/apm-ui-api.md similarity index 100% rename from solutions/observability/apps/apm-ui-api.md rename to solutions/observability/apm/apm-ui-api.md diff --git a/solutions/observability/apps/applications-ui-settings.md b/solutions/observability/apm/applications-ui-settings.md similarity index 96% rename from solutions/observability/apps/applications-ui-settings.md rename to solutions/observability/apm/applications-ui-settings.md index 40daaf447..3489c99aa 100644 --- a/solutions/observability/apps/applications-ui-settings.md +++ b/solutions/observability/apm/applications-ui-settings.md @@ -62,7 +62,7 @@ To change APM settings, select **Settings** from any **Applications** page. The The Applications UI uses data views to query APM indices. In non-serverless versions, change the default APM indices that the Applications UI queries by opening the Applications UI and select **Settings** → **Indices**. Index settings in the Applications UI take precedence over those set in `kibana.yml`. -APM indices are {{kib}} Spaces-aware; Changes to APM index settings will only apply to the currently enabled space. See [Control access to APM data](/solutions/observability/apps/control-access-to-apm-data.md) for more information. +APM indices are {{kib}} Spaces-aware; Changes to APM index settings will only apply to the currently enabled space. See [Control access to APM data](/solutions/observability/apm/control-access-to-apm-data.md) for more information. ## APM Labs [observability-apm-kibana-settings-apm-labs] diff --git a/solutions/observability/apps/built-in-data-filters.md b/solutions/observability/apm/built-in-data-filters.md similarity index 89% rename from solutions/observability/apps/built-in-data-filters.md rename to solutions/observability/apm/built-in-data-filters.md index 37c2a6d4b..83fe99b85 100644 --- a/solutions/observability/apps/built-in-data-filters.md +++ b/solutions/observability/apm/built-in-data-filters.md @@ -27,7 +27,7 @@ By default, APM agents capture HTTP request and response headers (including cook The default list of sanitized fields attempts to target common field names for data relating to passwords, credit card numbers, authorization, etc., but can be customized to fit your data. This sensitive data never leaves the instrumented service. -This setting supports [Central configuration](apm-agent-central-configuration.md), which means the list of sanitized fields can be updated without needing to redeploy your services: +This setting supports [Central configuration](/solutions/observability/apm/apm-agent-central-configuration.md), which means the list of sanitized fields can be updated without needing to redeploy your services: * Go: [`ELASTIC_APM_SANITIZE_FIELD_NAMES`](apm-agent-go://reference/configuration.md#config-sanitize-field-names) * Java: [`sanitize_field_names`](apm-agent-java://reference/config-core.md#config-sanitize-field-names) @@ -36,7 +36,7 @@ This setting supports [Central configuration](apm-agent-central-configuration.md * Python: [`sanitize_field_names`](apm-agent-python://reference/configuration.md#config-sanitize-field-names) * Ruby: [`sanitize_field_names`](apm-agent-ruby://reference/configuration.md#config-sanitize-field-names) -Alternatively, you can completely disable the capturing of HTTP headers. This setting also supports [Central configuration](apm-agent-central-configuration.md): +Alternatively, you can completely disable the capturing of HTTP headers. This setting also supports [Central configuration](/solutions/observability/apm/apm-agent-central-configuration.md): * Go: [`ELASTIC_APM_CAPTURE_HEADERS`](apm-agent-go://reference/configuration.md#config-capture-headers) * Java: [`capture_headers`](apm-agent-java://reference/config-core.md#config-capture-headers) @@ -49,7 +49,7 @@ Alternatively, you can completely disable the capturing of HTTP headers. This se By default, the body of HTTP requests is not recorded. Request bodies often contain sensitive data like passwords or credit card numbers, so use care when enabling this feature. -This setting supports [Central configuration](apm-agent-central-configuration.md), which means the list of sanitized fields can be updated without needing to redeploy your services: +This setting supports [Central configuration](/solutions/observability/apm/apm-agent-central-configuration.md), which means the list of sanitized fields can be updated without needing to redeploy your services: * Go: [`ELASTIC_APM_CAPTURE_BODY`](apm-agent-go://reference/configuration.md#config-capture-body) * Java: [`capture_body`](apm-agent-java://reference/config-core.md#config-capture-body) @@ -62,13 +62,13 @@ This setting supports [Central configuration](apm-agent-central-configuration.md By default, {{apm-server-or-mis}} captures some personal data associated with trace events: -* `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 [`geoip` processor](elasticsearch://reference/enrich-processor/geoip-processor.md) to assign geographical information to trace events. To learn more about how `client.ip` is derived, see [Deriving an incoming request’s `client.ip` address](anonymous-authentication.md#apm-derive-client-ip). +* `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 [`geoip` processor](elasticsearch://reference/enrich-processor/geoip-processor.md) to assign geographical information to trace events. To learn more about how `client.ip` is derived, see [Deriving an incoming request’s `client.ip` address](/solutions/observability/apm/anonymous-authentication.md#apm-derive-client-ip). * `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`. :::{note} -This setting only prevents {{apm-server-or-mis}} from capturing already ingested personal data. It does not prevent such data from appearing in ingestion logs where applicable. See [{{apm-agent}} filters](custom-filters.md#apm-filters-in-agent) for redacting data on ingestion. +This setting only prevents {{apm-server-or-mis}} from capturing already ingested personal data. It does not prevent such data from appearing in ingestion logs where applicable. See [{{apm-agent}} filters](/solutions/observability/apm/custom-filters.md#apm-filters-in-agent) for redacting data on ingestion. ::: ## Real user monitoring data [apm-filters-real-user-data] diff --git a/solutions/observability/apps/collect-application-data.md b/solutions/observability/apm/collect-application-data.md similarity index 78% rename from solutions/observability/apps/collect-application-data.md rename to solutions/observability/apm/collect-application-data.md index d13d29b98..13e28c7dc 100644 --- a/solutions/observability/apps/collect-application-data.md +++ b/solutions/observability/apm/collect-application-data.md @@ -18,15 +18,15 @@ applies_to: :::: ::::{note} -Want to get started quickly? See [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +Want to get started quickly? See [Get started with traces and APM](/solutions/observability/apm/get-started.md). :::: ## Language-specific options [_language_specific_options] Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service in the language its written in: -* [**Elastic APM agents**](/solutions/observability/apps/elastic-apm-agents.md): Elastic APM agents are instrumentation libraries written in the same language as your service. -* [**OpenTelemetry**](/solutions/observability/apps/use-opentelemetry-with-apm.md): OpenTelemetry is an open source set of APIs, SDKs, tooling, and integrations that enable the capture and management of telemetry data from your services and applications. +* [**Elastic APM agents**](/solutions/observability/apm/elastic-apm-agents.md): Elastic APM agents are instrumentation libraries written in the same language as your service. +* [**OpenTelemetry**](/solutions/observability/apm/use-opentelemetry-with-apm.md): OpenTelemetry is an open source set of APIs, SDKs, tooling, and integrations that enable the capture and management of telemetry data from your services and applications. * This option includes Elastic Distributions of OpenTelemetry, which are customized versions of [OpenTelemetry language SDKs](https://opentelemetry.io/docs/languages/) that are optimized to work with an Elastic backend. @@ -36,9 +36,9 @@ Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service | | Elastic APM agent | Elastic Distribution of OpenTelemetry | | --- | --- | --- | -| **Support level** | Fully supported | Mixed support
*Refer to the* [*availability table*](/solutions/observability/apps/collect-application-data.md#apm-collect-data-availability) | +| **Support level** | Fully supported | Mixed support
*Refer to the* [*availability table*](/solutions/observability/apm/collect-application-data.md#apm-collect-data-availability) | | **Data protocol** | Elastic protocol | [OpenTelemetry protocol (OTLP)](https://opentelemetry.io/docs/specs/otel/protocol/) | -| **Central configuration** | Supported
*Refer to* [*APM agent central configuration*](/solutions/observability/apps/apm-agent-central-configuration.md) | Not supported | +| **Central configuration** | Supported
*Refer to* [*APM agent central configuration*](/solutions/observability/apm/apm-agent-central-configuration.md) | Not supported | % Stateful only after this comment? @@ -62,4 +62,4 @@ Elastic also offers several tools to help you collect data from specific service * **Kubernetes**: The Elastic APM attacher for Kubernetes simplifies the instrumentation and configuration of your application pods. Read more in the [APM attacher for Kubernetes docs](apm-k8s-attacher://reference/index.md). * **AWS Lambda Functions**: Helps you monitor your AWS Lambda functions. Read more in the [APM Architecture for AWS Lambda docs](apm-aws-lambda://reference/index.md). -* **Jaeger (deprecated)**: Helps you to switch an existing Jaeger setup from the default Jaeger backend to the {{stack}}. Read more in [Integrate with Jaeger](/solutions/observability/apps/integrate-with-jaeger-deprecated.md). \ No newline at end of file +* **Jaeger (deprecated)**: Helps you to switch an existing Jaeger setup from the default Jaeger backend to the {{stack}}. Read more in [Integrate with Jaeger](/solutions/observability/apm/jaeger.md). \ No newline at end of file diff --git a/solutions/observability/apps/collect-metrics.md b/solutions/observability/apm/collect-metrics.md similarity index 100% rename from solutions/observability/apps/collect-metrics.md rename to solutions/observability/apm/collect-metrics.md diff --git a/solutions/observability/apps/configure-anonymous-authentication.md b/solutions/observability/apm/configure-anonymous-authentication.md similarity index 89% rename from solutions/observability/apps/configure-anonymous-authentication.md rename to solutions/observability/apm/configure-anonymous-authentication.md index 8ce55bb5e..d9d0c1ab3 100644 --- a/solutions/observability/apps/configure-anonymous-authentication.md +++ b/solutions/observability/apm/configure-anonymous-authentication.md @@ -44,14 +44,14 @@ Configure and customize Fleet-managed APM settings directly in {{kib}}: ::::::: ::::{important} -All anonymous access configuration is ignored if [authenticated communication](secure-communication-with-apm-agents.md) is disabled. +All anonymous access configuration is ignored if [authenticated communication](/solutions/observability/apm/secure-communication-with-apm-agents.md) is disabled. :::: ## Real User Monitoring (RUM) [apm-config-auth-anon-rum] -If an [API key](api-keys.md) or [secret token](secret-token.md) is configured, then anonymous authentication must be enabled to collect RUM data. For this reason, anonymous auth will be enabled automatically if [Enable RUM](configure-real-user-monitoring-rum.md#apm-rum-enable) is set to `true`, and [Anonymous Agent access](#apm-config-auth-anon-enabled) is not explicitly defined. +If an [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) is configured, then anonymous authentication must be enabled to collect RUM data. For this reason, anonymous auth will be enabled automatically if [Enable RUM](/solutions/observability/apm/configure-real-user-monitoring-rum.md#apm-rum-enable) is set to `true`, and [Anonymous Agent access](#apm-config-auth-anon-enabled) is not explicitly defined. -See [Real User Monitoring (RUM)](configure-real-user-monitoring-rum.md) for additional RUM configuration options. +See [Real User Monitoring (RUM)](/solutions/observability/apm/configure-real-user-monitoring-rum.md) for additional RUM configuration options. ### Mitigating malicious requests [apm-config-auth-anon-mitigating] diff --git a/solutions/observability/apps/configure-apm-agent-central-configuration.md b/solutions/observability/apm/configure-apm-agent-central-configuration.md similarity index 84% rename from solutions/observability/apps/configure-apm-agent-central-configuration.md rename to solutions/observability/apm/configure-apm-agent-central-configuration.md index 4134faede..849564a98 100644 --- a/solutions/observability/apps/configure-apm-agent-central-configuration.md +++ b/solutions/observability/apm/configure-apm-agent-central-configuration.md @@ -17,7 +17,7 @@ APM agent central configuration is supported by all APM Server deployment method APM agent central configuration allows you to fine-tune your APM agents from within the Applications UI. Changes are automatically propagated to your APM agents, so there’s no need to redeploy your applications. -To learn more about this feature, see [APM agent central configuration](apm-agent-central-configuration.md). +To learn more about this feature, see [APM agent central configuration](/solutions/observability/apm/apm-agent-central-configuration.md). ## APM agent configuration options [_apm_agent_configuration_options] @@ -30,7 +30,7 @@ apm-server.agent.config.cache.expiration: 45s apm-server.agent.config.elasticsearch.api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA <1> ``` -1. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](grant-access-using-api-keys.md#apm-beats-api-key-publish). +1. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](/solutions/observability/apm/grant-access-using-api-keys.md#apm-beats-api-key-publish). ### `apm-server.agent.config.cache.expiration` [apm-agent-config-cache] @@ -38,7 +38,7 @@ When using APM agent central configuration, information fetched from {{es}} will ### `apm-server.agent.config.elasticsearch` [apm-agent-config-elasticsearch] -Takes the same options as [output.elasticsearch](configure-elasticsearch-output.md). +Takes the same options as [output.elasticsearch](/solutions/observability/apm/configure-elasticsearch-output.md). For APM Server binary users and Elastic Agent standalone-managed APM Server, APM agent central configuration is automatically fetched from {{es}} using the `output.elasticsearch` configuration. If `output.elasticsearch` isn’t set or doesn’t have sufficient privileges, use these {{es}} options to provide {{es}} access. @@ -62,8 +62,8 @@ 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. For more details, refer to [Create a *central configuration management* role](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-agent-central-config-server). +To fix this error, ensure that APM Server has all the required privileges. For more details, refer to [Create a *central configuration management* role](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-agent-central-config-server). #### HTTP 401 errors [_http_401_errors] -If you get an HTTP 401 error from APM Server, make sure that you’re using an API key that is configured to **Beats**. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](grant-access-using-api-keys.md#apm-beats-api-key-publish). +If you get an HTTP 401 error from APM Server, make sure that you’re using an API key that is configured to **Beats**. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](/solutions/observability/apm/grant-access-using-api-keys.md#apm-beats-api-key-publish). diff --git a/solutions/observability/apps/configure-apm-instrumentation.md b/solutions/observability/apm/configure-apm-instrumentation.md similarity index 74% rename from solutions/observability/apps/configure-apm-instrumentation.md rename to solutions/observability/apm/configure-apm-instrumentation.md index 3fd4e36b8..db30ab055 100644 --- a/solutions/observability/apps/configure-apm-instrumentation.md +++ b/solutions/observability/apm/configure-apm-instrumentation.md @@ -38,17 +38,17 @@ Set to `true` to enable instrumentation of APM Server. Defaults to `false`. ### `environment` [_environment] -Set the environment in which APM Server is running, for example, `staging`, `production`, `dev`, etc. Environments can be filtered in the [{{kib}} Applications UI](overviews.md). +Set the environment in which APM Server is running, for example, `staging`, `production`, `dev`, etc. Environments can be filtered in the [{{kib}} Applications UI](/solutions/observability/apm/overviews.md). ### `hosts` [_hosts] -The [APM Server](get-started-with-apm.md) hosts to report instrumentation data to. Defaults to `http://localhost:8200`. +The [APM Server](/solutions/observability/apm/get-started.md) hosts to report instrumentation data to. Defaults to `http://localhost:8200`. ### `api_key` [_api_key] -[API key](api-keys.md) used to secure communication with the APM Server(s). If `api_key` is set then `secret_token` will be ignored. +[API key](/solutions/observability/apm/api-keys.md) used to secure communication with the APM Server(s). If `api_key` is set then `secret_token` will be ignored. ### `secret_token` [_secret_token_2] -[Secret token](secret-token.md) used to secure communication with the APM Server(s). +[Secret token](/solutions/observability/apm/secret-token.md) used to secure communication with the APM Server(s). diff --git a/solutions/observability/apps/configure-apm-server.md b/solutions/observability/apm/configure-apm-server.md similarity index 92% rename from solutions/observability/apps/configure-apm-server.md rename to solutions/observability/apm/configure-apm-server.md index 2a4be636d..1ebf0f41e 100644 --- a/solutions/observability/apps/configure-apm-server.md +++ b/solutions/observability/apm/configure-apm-server.md @@ -10,25 +10,25 @@ applies_to: 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 [Installation layout](/solutions/observability/apps/installation-layout.md). +* **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 [Installation layout](/solutions/observability/apm/installation-layout.md). * **Fleet-managed** users configure the APM Server directly in {{kib}}. Each configuration page describes the specific location. -* **Elastic cloud** users should see [Add APM user settings](/solutions/observability/apps/configure-apm-server.md) for information on how to configure Elastic APM. +* **Elastic cloud** users should see [Add APM user settings](/solutions/observability/apm/configure-apm-server.md) for information on how to configure Elastic APM. The following topics describe how to configure APM Server: -* [General configuration options](/solutions/observability/apps/general-configuration-options.md) -* [Anonymous authentication](/solutions/observability/apps/configure-anonymous-authentication.md) -* [APM agent authorization](/solutions/observability/apps/apm-agent-authorization.md) -* [APM agent central configuration](/solutions/observability/apps/configure-apm-agent-central-configuration.md) -* [Instrumentation](/solutions/observability/apps/configure-apm-instrumentation.md) -* [{{kib}} endpoint](/solutions/observability/apps/configure-kibana-endpoint.md) -* [Logging](/solutions/observability/apps/configure-logging.md) -* [Output](/solutions/observability/apps/configure-output.md) -* [Project paths](/solutions/observability/apps/configure-project-paths.md) -* [Real User Monitoring (RUM)](/solutions/observability/apps/configure-real-user-monitoring-rum.md) -* [SSL/TLS settings](/solutions/observability/apps/ssltls-settings.md) -* [Tail-based sampling](/solutions/observability/apps/tail-based-sampling.md) -* [Use environment variables in the configuration](/solutions/observability/apps/use-environment-variables-in-configuration.md) +* [General configuration options](/solutions/observability/apm/general-configuration-options.md) +* [Anonymous authentication](/solutions/observability/apm/configure-anonymous-authentication.md) +* [APM agent authorization](/solutions/observability/apm/apm-agent-authorization.md) +* [APM agent central configuration](/solutions/observability/apm/configure-apm-agent-central-configuration.md) +* [Instrumentation](/solutions/observability/apm/configure-apm-instrumentation.md) +* [{{kib}} endpoint](/solutions/observability/apm/configure-kibana-endpoint.md) +* [Logging](/solutions/observability/apm/configure-logging.md) +* [Output](/solutions/observability/apm/configure-output.md) +* [Project paths](/solutions/observability/apm/configure-project-paths.md) +* [Real User Monitoring (RUM)](/solutions/observability/apm/configure-real-user-monitoring-rum.md) +* [SSL/TLS settings](/solutions/observability/apm/ssl-tls-settings.md) +* [Tail-based sampling](/solutions/observability/apm/tail-based-sampling.md) +* [Use environment variables in the configuration](/solutions/observability/apm/use-environment-variables-in-configuration.md) ## Edit APM user settings [ec-manage-apm-settings] @@ -37,14 +37,14 @@ Change how Elastic APM runs by providing your own user settings. Starting in {{s {{fleet}}-managed APM integration : New deployments created in {{stack}} version 8.0 and later will be managed by {{fleet}}. - Check [APM configuration reference](/solutions/observability/apps/configure-apm-server.md) for information on how to configure Elastic APM in this mode. + Check [APM configuration reference](/solutions/observability/apm/configure-apm-server.md) for information on how to configure Elastic APM in this mode. Standalone APM Server (legacy) : Deployments created prior to {{stack}} version 8.0 are in legacy mode. Upgrading to or past {{stack}} 8.0 will not remove you from legacy mode. - Check [Edit standalone APM settings (legacy)](/solutions/observability/apps/configure-apm-server.md#ec-edit-apm-standalone-settings) and [Supported standalone APM settings (legacy)](/solutions/observability/apps/configure-apm-server.md#ec-apm-settings) for information on how to configure Elastic APM in this mode. + Check [Edit standalone APM settings (legacy)](/solutions/observability/apm/configure-apm-server.md#ec-edit-apm-standalone-settings) and [Supported standalone APM settings (legacy)](/solutions/observability/apm/configure-apm-server.md#ec-apm-settings) for information on how to configure Elastic APM in this mode. -To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apps/switch-to-elastic-apm-integration.md). +To learn more about the differences between these modes, or to switch from Standalone APM Server (legacy) mode to {{fleet}}-managed, check [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). ## Edit standalone APM settings (legacy) [ec-edit-apm-standalone-settings] @@ -71,7 +71,7 @@ If a setting is not supported on {{ecloud}}, you will get an error message when {{ech}} supports the following setting when running APM in standalone mode (legacy). ::::{tip} -Some settings that could break your cluster if set incorrectly are blocklisted. The following settings are generally safe in cloud environments. For detailed information about APM settings, check the [APM documentation](/solutions/observability/apps/configure-apm-server.md). +Some settings that could break your cluster if set incorrectly are blocklisted. The following settings are generally safe in cloud environments. For detailed information about APM settings, check the [APM documentation](/solutions/observability/apm/configure-apm-server.md). :::: ### Version 8.0+ [ec_version_8_0_3] @@ -248,7 +248,7 @@ Allow anonymous access only for specified agents and/or services. This is primar : Specifies the maximum allowed size of an event for processing by the server, in bytes. Defaults to `307200`. `output.elasticsearch.pipelines` -: Adds an array for pipeline selector configurations that support conditionals, format string-based field access, and name mappings used to [parse data using ingest node pipelines](/solutions/observability/apps/application-performance-monitoring-apm.md). +: Adds an array for pipeline selector configurations that support conditionals, format string-based field access, and name mappings used to [parse data using ingest node pipelines](/solutions/observability/apm/index.md). `apm-server.register.ingest.pipeline.enabled` : Loads the pipeline definitions to Elasticsearch when the APM Server starts up. Defaults to `false`. diff --git a/solutions/observability/apps/configure-console-output.md b/solutions/observability/apm/configure-console-output.md similarity index 100% rename from solutions/observability/apps/configure-console-output.md rename to solutions/observability/apm/configure-console-output.md diff --git a/solutions/observability/apps/configure-elasticsearch-output.md b/solutions/observability/apm/configure-elasticsearch-output.md similarity index 92% rename from solutions/observability/apps/configure-elasticsearch-output.md rename to solutions/observability/apm/configure-elasticsearch-output.md index 7f97cf716..5ad576e0a 100644 --- a/solutions/observability/apps/configure-elasticsearch-output.md +++ b/solutions/observability/apm/configure-elasticsearch-output.md @@ -49,7 +49,7 @@ output.elasticsearch: api_key: "ZCV7VnwBgnX0T19fN8Qe:KnR6yE41RrSowb0kQ0HWoA" <1> ``` -1. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](grant-access-using-api-keys.md#apm-beats-api-key-publish). +1. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](/solutions/observability/apm/grant-access-using-api-keys.md#apm-beats-api-key-publish). **PKI certificate authentication:** @@ -111,7 +111,7 @@ 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`. -You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](grant-access-using-api-keys.md#apm-beats-api-key-publish). +You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](/solutions/observability/apm/grant-access-using-api-keys.md#apm-beats-api-key-publish). :::{image} /solutions/images/observability-apm-api-key-beats.png :alt: API key dropdown highlighting the Beats option @@ -121,7 +121,7 @@ You *must* set the API key to be configured to **Beats**. Base64 encoded API key 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 [Create a *writer* role](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). +This user needs the privileges required to publish events to {{es}}. To create a user like this, see [Create a *writer* role](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). ### `password` [_password] @@ -186,7 +186,7 @@ The HTTP request timeout in seconds for the {{es}} request. The default is 90. 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 [secure communication with {{es}}](#apm-securing-communication-elasticsearch) guide or [SSL configuration reference](ssltls-output-settings.md) for more information. +See the [secure communication with {{es}}](#apm-securing-communication-elasticsearch) guide or [SSL configuration reference](/solutions/observability/apm/ssl-tls-output-settings.md) for more information. ## Secure communication with {{es}} [apm-securing-communication-elasticsearch] @@ -207,7 +207,7 @@ Authentication is specified in the APM Server configuration file: password: "{pwd}" ``` - 1. This user needs the privileges required to publish events to {{es}}. To create a user like this, see [Create a *writer* role](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). + 1. This user needs the privileges required to publish events to {{es}}. To create a user like this, see [Create a *writer* role](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). * To use token-based **API key authentication**, specify the `api_key` under `output.elasticsearch`. For example: @@ -217,7 +217,7 @@ Authentication is specified in the APM Server configuration file: api_key: "KnR6yE41RrSowb0kQ0HWoA" <1> ``` - 1. This API key must have the privileges required to publish events to {{es}}. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](grant-access-using-api-keys.md#apm-beats-api-key-publish). + 1. This API key must have the privileges required to publish events to {{es}}. You *must* set the API key to be configured to **Beats**. Base64 encoded API keys are not currently supported in this configuration. For details on how to create and configure a compatible API key, refer to [Create an API key for writing events](/solutions/observability/apm/grant-access-using-api-keys.md#apm-beats-api-key-publish). * To use **Public Key Infrastructure (PKI) certificates** to authenticate users, specify the `certificate` and `key` settings under `output.elasticsearch`. For example: @@ -259,4 +259,4 @@ Authentication is specified in the APM Server configuration file: More information on sending data to a secured cluster is available in the configuration reference: -* [SSL/TLS output settings](ssltls-output-settings.md) +* [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md) diff --git a/solutions/observability/apps/configure-kafka-output.md b/solutions/observability/apm/configure-kafka-output.md similarity index 97% rename from solutions/observability/apps/configure-kafka-output.md rename to solutions/observability/apm/configure-kafka-output.md index 9ad546a72..8c442900c 100644 --- a/solutions/observability/apps/configure-kafka-output.md +++ b/solutions/observability/apm/configure-kafka-output.md @@ -173,7 +173,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 [Change the output codec](configure-console-output.md#apm-configuration-output-codec) for more information. +See [Change the output codec](/solutions/observability/apm/configure-console-output.md#apm-configuration-output-codec) for more information. ### `metadata` [_metadata] @@ -270,5 +270,5 @@ Enable Kerberos FAST authentication. This may conflict with some Active Director ### `ssl` [_ssl_3] -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 [{{filebeat}}'s Kafka library](https://github.com/Shopify/sarama/wiki/Frequently-Asked-Questions#why-cant-sarama-connect-to-my-kafka-cluster-using-ssl). See [SSL/TLS output settings](ssltls-output-settings.md) for more information. +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 [{{filebeat}}'s Kafka library](https://github.com/Shopify/sarama/wiki/Frequently-Asked-Questions#why-cant-sarama-connect-to-my-kafka-cluster-using-ssl). See [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md) for more information. diff --git a/solutions/observability/apps/configure-kibana-endpoint.md b/solutions/observability/apm/configure-kibana-endpoint.md similarity index 94% rename from solutions/observability/apps/configure-kibana-endpoint.md rename to solutions/observability/apm/configure-kibana-endpoint.md index ca61ad46a..56fa16d6f 100644 --- a/solutions/observability/apps/configure-kibana-endpoint.md +++ b/solutions/observability/apm/configure-kibana-endpoint.md @@ -13,7 +13,7 @@ applies_to: You must configure the {{kib}} endpoint when running the APM Server binary with a non-{{es}} output. Configuring the {{kib}} endpoint allows the APM Server to communicate with {{kib}} and ensure that the APM integration was properly set up. It is also required for APM agent configuration when using 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 [APM agent central configuration](configure-apm-agent-central-configuration.md) instead. +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 [APM agent central configuration](/solutions/observability/apm/configure-apm-agent-central-configuration.md) instead. :::: @@ -84,5 +84,5 @@ apm-server.kibana.ssl.certificate: "/etc/pki/client/cert.pem" apm-server.kibana.ssl.key: "/etc/pki/client/cert.key" ``` -For information on the additional SSL configuration options, see [SSL/TLS output settings](ssltls-output-settings.md). +For information on the additional SSL configuration options, see [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md). diff --git a/solutions/observability/apps/configure-logging.md b/solutions/observability/apm/configure-logging.md similarity index 94% rename from solutions/observability/apps/configure-logging.md rename to solutions/observability/apm/configure-logging.md index cddbf9b41..4216bb694 100644 --- a/solutions/observability/apps/configure-logging.md +++ b/solutions/observability/apm/configure-logging.md @@ -30,11 +30,11 @@ 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 [Command reference](apm-server-command-reference.md). +In addition to setting logging options in the config file, you can modify the logging output configuration from the command line. See [Command reference](/solutions/observability/apm/apm-server-command-reference.md). :::: ::::{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 [APM Server and systemd](apm-server-systemd.md) to know more and learn how to change this. +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 [APM Server and systemd](/solutions/observability/apm/apm-server-systemd.md) to know more and learn how to change this. :::: ## Configuration options [_configuration_options_2] @@ -98,7 +98,7 @@ To configure multiple selectors, use the following [YAML list syntax](beats://re logging.selectors: [ harvester, input ] ``` -To override selectors at the command line, use the `-d` global flag (`-d` also sets the debug log level). For more information, see [Command reference](apm-server-command-reference.md). +To override selectors at the command line, use the `-d` global flag (`-d` also sets the debug log level). For more information, see [Command reference](/solutions/observability/apm/apm-server-command-reference.md). ### `logging.metrics.enabled` [_logging_metrics_enabled] @@ -118,7 +118,7 @@ The period after which to log the internal metrics. The default is `30s`. ### `logging.files.path` [_logging_files_path] -The directory that log files are written to. The default is the logs path. See the [Installation layout](installation-layout.md) section for details. +The directory that log files are written to. The default is the logs path. See the [Installation layout](/solutions/observability/apm/installation-layout.md) section for details. ### `logging.files.name` [_logging_files_name] diff --git a/solutions/observability/apps/configure-logstash-output.md b/solutions/observability/apm/configure-logstash-output.md similarity index 97% rename from solutions/observability/apps/configure-logstash-output.md rename to solutions/observability/apm/configure-logstash-output.md index 6078c4bb7..1bdf3184d 100644 --- a/solutions/observability/apps/configure-logstash-output.md +++ b/solutions/observability/apm/configure-logstash-output.md @@ -103,7 +103,7 @@ Every event sent to {{ls}} contains a special field called [`@metadata`](logstas 1. To change the default `apm-server` value, set the [`index`](#apm-logstash-index) 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 [event types](learn-about-application-data-types.md), namespaces, or datasets. +In addition to `@metadata`, APM Server provides other potentially useful fields, like the `data_stream` field, which can be used to conditionally operate on [event types](/solutions/observability/apm/data-types.md), namespaces, or datasets. As an example, you might want to use {{ls}} to route all `metrics` events to the same custom metrics data stream, rather than to service-specific data streams. @@ -226,7 +226,7 @@ This parameter’s value will be assigned to the `metadata.beat` field. It can t #### `ssl` [_ssl_2] -Configuration options for SSL parameters like the root CA for {{ls}} connections. See [SSL/TLS output settings](ssltls-output-settings.md) for more information. To use SSL, you must also configure the [{{beats}} input plugin for {{ls}}](logstash-docs-md://lsr/plugins-inputs-beats.md) to use SSL/TLS. +Configuration options for SSL parameters like the root CA for {{ls}} connections. See [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md) for more information. To use SSL, you must also configure the [{{beats}} input plugin for {{ls}}](logstash-docs-md://lsr/plugins-inputs-beats.md) to use SSL/TLS. #### `timeout` [_timeout_2] @@ -291,7 +291,7 @@ To use SSL mutual authentication: ssl.key: "/etc/client.key" ``` - For more information about these configuration options, see [SSL/TLS output settings](ssltls-output-settings.md). + For more information about these configuration options, see [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md). 3. Configure {{ls}} to use SSL. In the {{ls}} config file, specify the following settings for the [{{beats}} input plugin for {{ls}}](logstash-docs-md://lsr/plugins-inputs-beats.md): diff --git a/solutions/observability/apps/configure-output-for-elasticsearch-service-on-elastic-cloud.md b/solutions/observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md similarity index 95% rename from solutions/observability/apps/configure-output-for-elasticsearch-service-on-elastic-cloud.md rename to solutions/observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md index 49634a371..486b3b5ee 100644 --- a/solutions/observability/apps/configure-output-for-elasticsearch-service-on-elastic-cloud.md +++ b/solutions/observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md @@ -16,7 +16,7 @@ This documentation only applies to APM Server binary users. :::: ::::{note} -This page refers to using a separate instance of APM Server with an existing [{{ech}} deployment](https://www.elastic.co/cloud/elasticsearch-service?page=docs&placement=docs-body). If you want to use APM on {{ech}}, see: [Create your deployment](/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md) and [Add APM user settings](configure-apm-server.md). +This page refers to using a separate instance of APM Server with an existing [{{ech}} deployment](https://www.elastic.co/cloud/elasticsearch-service?page=docs&placement=docs-body). If you want to use APM on {{ech}}, see: [Create your deployment](/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md) and [Add APM user settings](/solutions/observability/apm/configure-apm-server.md). :::: APM Server comes with two settings that simplify the output configuration when used together with [{{ech}}](https://www.elastic.co/cloud/elasticsearch-service?page=docs&placement=docs-body). When defined, these setting overwrite settings from other parts in the configuration. diff --git a/solutions/observability/apm/configure-output.md b/solutions/observability/apm/configure-output.md new file mode 100644 index 000000000..5b62f5fbf --- /dev/null +++ b/solutions/observability/apm/configure-output.md @@ -0,0 +1,23 @@ +--- +navigation_title: "Output" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-configuring-output.html +applies_to: + stack: +--- + +# Configure the output [apm-configuring-output] + +Output configuration options. + +* [{{ech}}](/solutions/observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md) +* [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md) +* [{{ls}}](/solutions/observability/apm/configure-logstash-output.md) +* [Kafka](/solutions/observability/apm/configure-kafka-output.md) +* [Redis](/solutions/observability/apm/configure-redis-output.md) +* [Console](/solutions/observability/apm/configure-console-output.md) + +## Source maps [apm-sourcemap-output] + +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 [`source_mapping.elasticsearch`](/solutions/observability/apm/configure-real-user-monitoring-rum.md#apm-config-sourcemapping-elasticsearch) for more details. + diff --git a/solutions/observability/apps/configure-project-paths.md b/solutions/observability/apm/configure-project-paths.md similarity index 92% rename from solutions/observability/apps/configure-project-paths.md rename to solutions/observability/apm/configure-project-paths.md index f6cfff9dc..0890e3ca3 100644 --- a/solutions/observability/apps/configure-project-paths.md +++ b/solutions/observability/apm/configure-project-paths.md @@ -11,13 +11,13 @@ applies_to: ::::{note} ![supported deployment methods](/solutions/images/observability-binary-yes-fm-no.svg "") -This documentation is only relevant for APM Server binary users. Fleet-managed paths are defined in [Installation layout](installation-layout.md). +This documentation is only relevant for APM Server binary users. Fleet-managed paths are defined in [Installation layout](/solutions/observability/apm/installation-layout.md). :::: The `path` section of the `apm-server.yml` config file contains configuration options that define where APM Server looks for its files. For example, APM Server looks for the {{es}} template file in the configuration path and writes log files in the logs path. -Please see the [Installation layout](installation-layout.md) section for more details. +Please see the [Installation layout](/solutions/observability/apm/installation-layout.md) section for more details. Here is an example configuration: diff --git a/solutions/observability/apps/configure-real-user-monitoring-rum.md b/solutions/observability/apm/configure-real-user-monitoring-rum.md similarity index 82% rename from solutions/observability/apps/configure-real-user-monitoring-rum.md rename to solutions/observability/apm/configure-real-user-monitoring-rum.md index 91e5930fc..c32a122c4 100644 --- a/solutions/observability/apps/configure-real-user-monitoring-rum.md +++ b/solutions/observability/apm/configure-real-user-monitoring-rum.md @@ -65,7 +65,7 @@ To enable RUM support, set to `true`. By default this is disabled. (bool) | Fleet-managed | `Enable RUM` | ::::{note} -If an [API key](api-keys.md) or [secret token](secret-token.md) is configured, enabling RUM support will automatically enable [Anonymous authentication](configure-anonymous-authentication.md). Anonymous authentication is required as the RUM agent runs in the browser. +If an [API key](/solutions/observability/apm/api-keys.md) or [secret token](/solutions/observability/apm/secret-token.md) is configured, enabling RUM support will automatically enable [Anonymous authentication](/solutions/observability/apm/configure-anonymous-authentication.md). Anonymous authentication is required as the RUM agent runs in the browser. :::: @@ -137,17 +137,17 @@ Source maps are supported by all APM Server deployment methods, however, the opt ### `source_mapping.enabled` [apm-config-sourcemapping-enabled] -Used to enable/disable [source mapping](create-upload-source-maps-rum.md) for RUM events. When enabled, the APM Server needs additional privileges to read source maps. See [Use feature roles](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-rum-source-mapping) for more details. +Used to enable/disable [source mapping](/solutions/observability/apm/create-upload-source-maps-rum.md) for RUM events. When enabled, the APM Server needs additional privileges to read source maps. See [Use feature roles](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-rum-source-mapping) for more details. Default: `true` ### `source_mapping.elasticsearch` [apm-config-sourcemapping-elasticsearch] -Configure the {{es}} source map retrieval location, taking the same options as [output.elasticsearch](configure-elasticsearch-output.md). This must be set when using an output other than {{es}}, and that output is writing to {{es}}. Otherwise leave this section empty. +Configure the {{es}} source map retrieval location, taking the same options as [output.elasticsearch](/solutions/observability/apm/configure-elasticsearch-output.md). This must be set when using an output other than {{es}}, and that output is writing to {{es}}. Otherwise leave this section empty. ### `source_mapping.cache.expiration` [apm-rum-sourcemap-cache] -If a source map has been uploaded to the APM Server, [source mapping](create-upload-source-maps-rum.md) 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. +If a source map has been uploaded to the APM Server, [source mapping](/solutions/observability/apm/create-upload-source-maps-rum.md) 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. Default: `5m` (5 minutes) @@ -159,4 +159,4 @@ Default: `"apm-*-sourcemap*"` ## Ingest pipelines [_ingest_pipelines] -The default APM Server pipeline includes processors that enrich RUM data prior to indexing in {{es}}. See [Parse data using ingest pipelines](parse-data-using-ingest-pipelines.md) for details on how to locate, edit, or disable this preprocessing. +The default APM Server pipeline includes processors that enrich RUM data prior to indexing in {{es}}. See [Parse data using ingest pipelines](/solutions/observability/apm/parse-data-using-ingest-pipelines.md) for details on how to locate, edit, or disable this preprocessing. diff --git a/solutions/observability/apps/configure-redis-output.md b/solutions/observability/apm/configure-redis-output.md similarity index 96% rename from solutions/observability/apps/configure-redis-output.md rename to solutions/observability/apm/configure-redis-output.md index a0c09abf6..fd80e2f74 100644 --- a/solutions/observability/apps/configure-redis-output.md +++ b/solutions/observability/apm/configure-redis-output.md @@ -120,7 +120,7 @@ The Redis data type to use for publishing events.If the data type is `list`, the Output codec configuration. If the `codec` section is missing, events will be JSON encoded. -See [Change the output codec](configure-console-output.md#apm-configuration-output-codec) for more information. +See [Change the output codec](/solutions/observability/apm/configure-console-output.md#apm-configuration-output-codec) for more information. ### `worker` [_worker_3] @@ -162,7 +162,7 @@ Setting `bulk_max_size` to values less than or equal to 0 disables the splitting ### `ssl` [_ssl_4] -Configuration options for SSL parameters like the root CA for Redis connections guarded by SSL proxies (for example [stunnel](https://www.stunnel.org)). See [SSL/TLS output settings](ssltls-output-settings.md) for more information. +Configuration options for SSL parameters like the root CA for Redis connections guarded by SSL proxies (for example [stunnel](https://www.stunnel.org)). See [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md) for more information. ### `proxy_url` [_proxy_url_3] diff --git a/solutions/observability/apps/control-access-to-apm-data.md b/solutions/observability/apm/control-access-to-apm-data.md similarity index 98% rename from solutions/observability/apps/control-access-to-apm-data.md rename to solutions/observability/apm/control-access-to-apm-data.md index 9896a9b2a..3a8965462 100644 --- a/solutions/observability/apps/control-access-to-apm-data.md +++ b/solutions/observability/apm/control-access-to-apm-data.md @@ -20,7 +20,7 @@ This guide will explain how to separate your staging and production data. This c This guide assumes that you: * Are sending both staging and production APM data to an {{es}} cluster. -* Have configured the `environment` variable in your APM agent configurations. This variable sets the `service.environment` field in APM documents. You should have documents where `service.environment: production` and `service.environment: staging`. If this field is empty, see [service environment filter](filter-application-data.md#apm-filter-your-data-service-environment-filter) to learn how to set this value. +* Have configured the `environment` variable in your APM agent configurations. This variable sets the `service.environment` field in APM documents. You should have documents where `service.environment: production` and `service.environment: staging`. If this field is empty, see [service environment filter](/solutions/observability/apm/filter-data.md#apm-filter-your-data-service-environment-filter) to learn how to set this value. ### Step 1: Create filtered aliases [_step_1_create_filtered_aliases] diff --git a/solutions/observability/apps/create-apm-rules-alerts.md b/solutions/observability/apm/create-apm-rules-alerts.md similarity index 93% rename from solutions/observability/apps/create-apm-rules-alerts.md rename to solutions/observability/apm/create-apm-rules-alerts.md index eea5e1fcb..c399f7fb1 100644 --- a/solutions/observability/apps/create-apm-rules-alerts.md +++ b/solutions/observability/apm/create-apm-rules-alerts.md @@ -41,7 +41,7 @@ Active alerts are displayed and grouped in multiple ways in the Applications UI. #### View alerts by service group [apm-alert-view-group] -If you’re using the [service groups](/solutions/observability/apps/services.md#service-groups) feature, you can view alerts by service group. From the service group overview page, click the red alert indicator to open the **Alerts** tab with a predefined filter that matches the filter used when creating the service group. +If you’re using the [service groups](/solutions/observability/apm/services.md#service-groups) feature, you can view alerts by service group. From the service group overview page, click the red alert indicator to open the **Alerts** tab with a predefined filter that matches the filter used when creating the service group. :::{image} /solutions/images/observability-apm-service-group.png :alt: Example view of service group in the Applications UI in Kibana diff --git a/solutions/observability/apps/create-assign-feature-roles-to-apm-server-users.md b/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md similarity index 90% rename from solutions/observability/apps/create-assign-feature-roles-to-apm-server-users.md rename to solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md index 41f25bb74..1153a32de 100644 --- a/solutions/observability/apps/create-assign-feature-roles-to-apm-server-users.md +++ b/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md @@ -29,7 +29,7 @@ In general, there are three types of privileges you’ll work with when creating The following are common roles that APM Server users might need: * [**Writer role**](#apm-privileges-to-publish-events): Allows a user to publish events collected by APM Server, which is **required** to write to {{es}}. -* [**Central configuration management role**](#apm-privileges-agent-central-config): Allows a user to view APM Agent central configurations, which is **required** when [central configuration management](apm-agent-central-configuration.md) is enabled (it is enabled by default). +* [**Central configuration management role**](#apm-privileges-agent-central-config): Allows a user to view APM Agent central configurations, which is **required** when [central configuration management](/solutions/observability/apm/apm-agent-central-configuration.md) is enabled (it is enabled by default). * [**Monitoring role**](#apm-privileges-to-publish-monitoring): Allows a user to publish monitoring data, view monitoring data, or both. * [**RUM source mapping role**](#apm-privileges-rum-source-mapping): Allows a user to read RUM source maps. @@ -47,7 +47,7 @@ If you want to create an APM Server user who can use the Elastic APM Real User M APM users that publish events to {{es}} *must* have privileges to write to APM data streams. ::::{note} -This is not needed when APM Server doesn’t write to {{es}} directly. For example, in some cases you may configure APM Server to write to another output like Logstash, Kafka, or any other output supported by libbeat. In these cases, different authentication credentials will need to be passed to [`apm-server.agent.config.elasticsearch`](configure-apm-agent-central-configuration.md#apm-agent-config-elasticsearch). +This is not needed when APM Server doesn’t write to {{es}} directly. For example, in some cases you may configure APM Server to write to another output like Logstash, Kafka, or any other output supported by libbeat. In these cases, different authentication credentials will need to be passed to [`apm-server.agent.config.elasticsearch`](/solutions/observability/apm/configure-apm-agent-central-configuration.md#apm-agent-config-elasticsearch). :::: @@ -59,7 +59,7 @@ To grant an APM Server user the required privileges for writing events to {{es}} | --- | --- | --- | | Index | `auto_configure` on `traces-apm*`, `logs-apm*`, and `metrics-apm*` indices | Permits auto-creation of indices and data streams | | Index | `create_doc` on `traces-apm*`, `logs-apm*`, and `metrics-apm*` indices | Write events into {{es}} | - | Cluster | `monitor` | Allows cluster UUID checks, which are performed as part of APM server startup preconditionsif [Elasticsearch security](elasticsearch://reference/elasticsearch/configuration-reference/security-settings.md) is enabled (it is enabled by default), and allows a license check, which is required if [tail-based sampling](transaction-sampling.md#apm-tail-based-sampling) is enabled. | + | Cluster | `monitor` | Allows cluster UUID checks, which are performed as part of APM server startup preconditionsif [Elasticsearch security](elasticsearch://reference/elasticsearch/configuration-reference/security-settings.md) is enabled (it is enabled by default), and allows a license check, which is required if [tail-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) is enabled. | ::::{note} If you have explicitly disabled Elastic security *and* you are *not* using tail-based sampling, the `monitor` privilege may not be necessary. @@ -77,7 +77,7 @@ Assign additional APM feature roles to users as needed including the *Central co ::::{important} :name: apm-central-config-role-note -The privileges included in this role are **required** for all users when [central configuration management](apm-agent-central-configuration.md) is enabled (it is enabled by default). You need this role unless central configuration management has been explicitly disabled in the Applications UI. +The privileges included in this role are **required** for all users when [central configuration management](/solutions/observability/apm/apm-agent-central-configuration.md) is enabled (it is enabled by default). You need this role unless central configuration management has been explicitly disabled in the Applications UI. :::: @@ -112,7 +112,7 @@ Assign additional APM feature roles to users as needed including the *Writer rol :::: ::::{tip} -Looking for privileges and roles needed to use central configuration from the Applications UI or APM UI API? See [Applications UI central configuration user](applications-ui-central-config-user.md). +Looking for privileges and roles needed to use central configuration from the Applications UI or APM UI API? See [Applications UI central configuration user](/solutions/observability/apm/ui-user-central-config.md). :::: ## Create a *monitoring* role [apm-privileges-to-publish-monitoring] @@ -135,7 +135,7 @@ Looking for privileges and roles needed to use central configuration from the Ap #### Internal collection [apm-privileges-to-publish-monitoring-internal] -If you’re using [internal collection](use-internal-collection-to-send-monitoring-data.md) to collect metrics about APM Server, either: +If you’re using [internal collection](/solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md) to collect metrics about APM Server, either: * Use the built-in `apm_system` user or role * Create a custom role @@ -167,10 +167,10 @@ Assign additional APM feature roles to users as needed including the [*Writer ro #### {{metricbeat}} collection [apm-privileges-to-publish-monitoring-metricbeat] ::::{note} -When using {{metricbeat}} to collect metrics, no roles or users need to be created with APM Server. See [Use {{metricbeat}} collection](use-metricbeat-to-send-monitoring-data.md) for complete details on setting up {{metricbeat}} collection. +When using {{metricbeat}} to collect metrics, no roles or users need to be created with APM Server. See [Use {{metricbeat}} collection](/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md) for complete details on setting up {{metricbeat}} collection. :::: -If you’re [using {{metricbeat}}](use-metricbeat-to-send-monitoring-data.md) to collect metrics about APM Server, you can either: +If you’re [using {{metricbeat}}](/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md) to collect metrics about APM Server, you can either: * Use the built-in `remote_monitoring_user` user or role * Create a custom user @@ -222,7 +222,7 @@ Assign additional APM feature roles to users as needed including the [*Writer ro ## Create a *source map* role [apm-privileges-rum-source-map] $$$apm-privileges-rum-source-mapping$$$ -If [real user monitoring](configure-real-user-monitoring-rum.md) is enabled, additional privileges are required to read source maps. +If [real user monitoring](/solutions/observability/apm/configure-real-user-monitoring-rum.md) 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: diff --git a/solutions/observability/apps/create-custom-links.md b/solutions/observability/apm/create-custom-links.md similarity index 100% rename from solutions/observability/apps/create-custom-links.md rename to solutions/observability/apm/create-custom-links.md diff --git a/solutions/observability/apps/create-upload-source-maps-rum.md b/solutions/observability/apm/create-upload-source-maps-rum.md similarity index 100% rename from solutions/observability/apps/create-upload-source-maps-rum.md rename to solutions/observability/apm/create-upload-source-maps-rum.md diff --git a/solutions/observability/apps/cross-cluster-search-with-application-data.md b/solutions/observability/apm/cross-cluster-search.md similarity index 100% rename from solutions/observability/apps/cross-cluster-search-with-application-data.md rename to solutions/observability/apm/cross-cluster-search.md diff --git a/solutions/observability/apps/custom-filters.md b/solutions/observability/apm/custom-filters.md similarity index 97% rename from solutions/observability/apps/custom-filters.md rename to solutions/observability/apm/custom-filters.md index 6075a151a..13be849fd 100644 --- a/solutions/observability/apps/custom-filters.md +++ b/solutions/observability/apm/custom-filters.md @@ -57,7 +57,7 @@ stack: serverless: unavailable ``` -Say you decide to [capture HTTP request bodies](built-in-data-filters.md#apm-filters-http-body) but quickly notice that sensitive information is being collected in the `http.request.body.original` field: +Say you decide to [capture HTTP request bodies](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-body) but quickly notice that sensitive information is being collected in the `http.request.body.original` field: ```json { @@ -320,5 +320,5 @@ That’s it! Passwords will now be redacted from your APM HTTP body data. ### Next steps [_next_steps] -To learn more about ingest pipelines, see [View the {{es}} index template](view-elasticsearch-index-template.md). +To learn more about ingest pipelines, see [View the {{es}} index template](/solutions/observability/apm/view-elasticsearch-index-template.md). diff --git a/solutions/observability/apps/data-streams.md b/solutions/observability/apm/data-streams.md similarity index 88% rename from solutions/observability/apps/data-streams.md rename to solutions/observability/apm/data-streams.md index 184b41155..574878443 100644 --- a/solutions/observability/apps/data-streams.md +++ b/solutions/observability/apm/data-streams.md @@ -28,7 +28,7 @@ APM data follows the `--` naming scheme. The `type` an By type, the APM data streams are: Traces -: Traces are comprised of [spans and transactions](learn-about-application-data-types.md). Traces are stored in the following data streams: +: Traces are comprised of [spans and transactions](/solutions/observability/apm/data-types.md). Traces are stored in the following data streams: * Application traces: `traces-apm-` * RUM and iOS agent application traces: `traces-apm.rum-` @@ -87,10 +87,10 @@ For example, consider traces that would originally be indexed to `traces-apm-def To find other ingest pipelines from the {{es}} apm-data plugin that are called by default, go to **Stack management** → **Ingest pipelines** [in Kibana](/deploy-manage/index.md) and search for `apm`. Default APM ingest pipelines will follow the pattern `*-apm*@default-pipeline`. -For more custom APM ingest pipeline guides, see [parse data using ingest pipelines](parse-data-using-ingest-pipelines.md). +For more custom APM ingest pipeline guides, see [parse data using ingest pipelines](/solutions/observability/apm/parse-data-using-ingest-pipelines.md). ## What’s next? [apm-data-streams-next] -* Data streams define not only how data is stored in {{es}}, but also how data is retained over time. See [{{ilm-cap}}](index-lifecycle-management.md) to learn how to create your own data retention policies. -* See [Manage storage](manage-storage.md) for information on APM storage and processing costs, processing and performance, and other index management features. +* Data streams define not only how data is stored in {{es}}, but also how data is retained over time. See [{{ilm-cap}}](/solutions/observability/apm/index-lifecycle-management.md) to learn how to create your own data retention policies. +* See [Manage storage](/solutions/observability/apm/manage-storage.md) for information on APM storage and processing costs, processing and performance, and other index management features. diff --git a/solutions/observability/apm/data-types.md b/solutions/observability/apm/data-types.md new file mode 100644 index 000000000..089a16da5 --- /dev/null +++ b/solutions/observability/apm/data-types.md @@ -0,0 +1,29 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-data-model.html + - https://www.elastic.co/guide/en/serverless/current/observability-apm-data-types.html +applies_to: + stack: + serverless: +--- + +# Application data types [observability-apm-data-types] + +Elastic APM agents capture different types of information from within their instrumented applications. These are known as events, and can be spans, transactions, traces, errors, or metrics. + +Elastic APM helps you see what happens from start to finish when a request is made to an application: + +* [**Spans**](/solutions/observability/apm/spans.md): A span contain information about the execution of a specific code path. They are the building blocks of *transactions* and *traces*. +* [**Transactions**](/solutions/observability/apm/transactions.md): A transaction describes an event captured by an Elastic APM agent instrumenting a service. A transaction is technically a type of span that has additional attributes associated with it and often contains multiple child *spans*. You can think of transactions as the highest level of work you’re measuring within a service. +* [**Traces**](/solutions/observability/apm/traces.md#apm-distributed-tracing): A trace is a group of *transactions* and *spans* with a common root. Each trace tracks the entirety of a single request. When a trace travels through multiple services, it is known as a *distributed trace*. + +:::{image} /solutions/images/observability-spans-transactions-and-traces.png +:alt: Diagram illustrating the relationship between spans +::: + +In addition to the building blocks of traces, Elastic APM agents also capture: + +* [**Errors**](/solutions/observability/apm/errors.md): An error is created when something goes wrong with a request to an application. This event contains information to help you determine where and why an error occurred, often including in which *transaction* the error occurred. +* [**Metrics**](/solutions/observability/apm/metrics.md): Metrics measure the state of a system by gathering information on a regular interval. + +Events can contain additional [metadata](/solutions/observability/apm/metadata.md) which further enriches your data. \ No newline at end of file diff --git a/solutions/observability/apps/delete-sensitive-data.md b/solutions/observability/apm/delete-sensitive-data.md similarity index 94% rename from solutions/observability/apps/delete-sensitive-data.md rename to solutions/observability/apm/delete-sensitive-data.md index aaf0f25a9..61c59927b 100644 --- a/solutions/observability/apps/delete-sensitive-data.md +++ b/solutions/observability/apm/delete-sensitive-data.md @@ -9,7 +9,7 @@ applies_to: If you accidentally ingest sensitive data, follow these steps to remove or redact the offending data: -1. Stop collecting the sensitive data. Use the **remedy** column of the [sensitive fields](application-data-security.md#apm-sensitive-fields) table to determine how to stop collecting the offending data. +1. Stop collecting the sensitive data. Use the **remedy** column of the [sensitive fields](/solutions/observability/apm/secure-data.md#apm-sensitive-fields) table to determine how to stop collecting the offending data. 2. Delete or redact the ingested data. With data collection fixed, you can now delete or redact the offending data: * [Redact specific fields](#apm-redact-field-data) diff --git a/solutions/observability/apps/dependencies.md b/solutions/observability/apm/dependencies.md similarity index 84% rename from solutions/observability/apps/dependencies.md rename to solutions/observability/apm/dependencies.md index 07c8c7a15..621f78fa4 100644 --- a/solutions/observability/apps/dependencies.md +++ b/solutions/observability/apm/dependencies.md @@ -9,7 +9,7 @@ applies_to: # Dependencies [apm-dependencies] -APM agents collect details about external calls made from instrumented services. Sometimes, these external calls resolve into a downstream service that’s instrumented — in these cases, you can utilize [distributed tracing](/solutions/observability/apps/trace-sample-timeline.md#distributed-tracing) to drill down into problematic downstream services. Other times, though, it’s not possible to instrument a downstream dependency — like with a database or third-party service. **Dependencies** gives you a window into these uninstrumented, downstream dependencies. +APM agents collect details about external calls made from instrumented services. Sometimes, these external calls resolve into a downstream service that’s instrumented — in these cases, you can utilize [distributed tracing](/solutions/observability/apm/trace-sample-timeline.md#distributed-tracing) to drill down into problematic downstream services. Other times, though, it’s not possible to instrument a downstream dependency — like with a database or third-party service. **Dependencies** gives you a window into these uninstrumented, downstream dependencies. :::{image} /solutions/images/observability-dependencies.png :alt: Dependencies view in the Applications UI @@ -44,7 +44,7 @@ The Dependency operations functionality is in beta and is subject to change. The :screenshot: ::: -Selecting an operation displays the operation’s impact and performance trends over time, via key metrics like latency, throughput, and failed transaction rate. In addition, the [**Trace sample timeline**](/solutions/observability/apps/trace-sample-timeline.md) provides a visual drill-down into an end-to-end trace sample. +Selecting an operation displays the operation’s impact and performance trends over time, via key metrics like latency, throughput, and failed transaction rate. In addition, the [**Trace sample timeline**](/solutions/observability/apm/trace-sample-timeline.md) provides a visual drill-down into an end-to-end trace sample. :::{image} /solutions/images/observability-operations-detail.png :alt: operations detail view in the Applications UI diff --git a/solutions/observability/apps/drill-down-into-data.md b/solutions/observability/apm/drill-down-into-data.md similarity index 51% rename from solutions/observability/apps/drill-down-into-data.md rename to solutions/observability/apm/drill-down-into-data.md index 8ae953df8..50531d396 100644 --- a/solutions/observability/apps/drill-down-into-data.md +++ b/solutions/observability/apm/drill-down-into-data.md @@ -12,9 +12,9 @@ applies_to: Notice something awry? Select a service or trace and dive deeper with: -* [Transactions](/solutions/observability/apps/transactions-2.md) -* [Trace sample timeline](/solutions/observability/apps/trace-sample-timeline.md) -* [Errors](/solutions/observability/apps/errors-2.md) -* [Metrics](/solutions/observability/apps/metrics-2.md) -* [Infrastructure](/solutions/observability/apps/infrastructure.md) -* [Logs](/solutions/observability/apps/logs.md) +* [Transactions](/solutions/observability/apm/transactions-ui.md) +* [Trace sample timeline](/solutions/observability/apm/trace-sample-timeline.md) +* [Errors](/solutions/observability/apm/errors-ui.md) +* [Metrics](/solutions/observability/apm/metrics-ui.md) +* [Infrastructure](/solutions/observability/apm/infrastructure.md) +* [Logs](/solutions/observability/apm/logs.md) diff --git a/solutions/observability/apps/elastic-apm-agent-configuration-api.md b/solutions/observability/apm/elastic-apm-agent-configuration-api.md similarity index 88% rename from solutions/observability/apps/elastic-apm-agent-configuration-api.md rename to solutions/observability/apm/elastic-apm-agent-configuration-api.md index 9986f994c..14e95b53d 100644 --- a/solutions/observability/apps/elastic-apm-agent-configuration-api.md +++ b/solutions/observability/apm/elastic-apm-agent-configuration-api.md @@ -7,7 +7,7 @@ applies_to: # Elastic APM agent configuration API [apm-api-config] -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 [{{apm-agent}} configuration in {{kib}}](apm-agent-central-configuration.md). +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 [{{apm-agent}} configuration in {{kib}}](/solutions/observability/apm/apm-agent-central-configuration.md). ## Agent configuration endpoints [apm-api-config-endpoint] @@ -16,7 +16,7 @@ APM Server exposes API endpoints that allow Elastic APM agents to query the APM | Agent configuration intake | `/config/v1/agents` | | RUM configuration intake | `/config/v1/rum/agents` | -The Agent configuration endpoints accepts both `HTTP GET` and `HTTP POST` requests. If an [API keys](api-keys.md) or [Secret token](secret-token.md) is configured, requests to this endpoint must be authenticated. +The Agent configuration endpoints accepts both `HTTP GET` and `HTTP POST` requests. If an [API keys](/solutions/observability/apm/api-keys.md) or [Secret token](/solutions/observability/apm/secret-token.md) is configured, requests to this endpoint must be authenticated. ### HTTP GET [apm-api-config-api-get] diff --git a/solutions/observability/apps/elastic-apm-agents.md b/solutions/observability/apm/elastic-apm-agents.md similarity index 95% rename from solutions/observability/apps/elastic-apm-agents.md rename to solutions/observability/apm/elastic-apm-agents.md index 4fb8d4f3a..572fe38ff 100644 --- a/solutions/observability/apps/elastic-apm-agents.md +++ b/solutions/observability/apm/elastic-apm-agents.md @@ -31,7 +31,7 @@ Spans are grouped in transactions—by default, one for each incoming HTTP reque **Learn more** -If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [Java agent reference](apm-agent-java://reference/index.md) for full documentation, including: @@ -57,7 +57,7 @@ These events, called Transactions and Spans, are sent to Elastic, where they're **Learn more** -If you’re ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you’re ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [Node.js agent reference](apm-agent-nodejs://reference/index.md) for full documentation, including: @@ -87,7 +87,7 @@ In addition to APM and error data, the Python agent also collects system and app **Learn more** -If you’re ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you’re ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [Python agent reference](apm-agent-python://reference/index.md) for full documentation, including: @@ -113,7 +113,7 @@ These events, called Transactions and Spans, are sent to Elastic, where they're **Learn more** -If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [Ruby agent reference](apm-agent-ruby://reference/index.md) for full documentation, including: @@ -145,7 +145,7 @@ In addition to capturing events like those mentioned here, the agent also collec **Learn more** -If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [Go agent reference](apm-agent-go://reference/index.md) for full documentation, including: @@ -169,7 +169,7 @@ The Agent automatically registers callback methods for built-in Diagnostic Sourc **Learn more** -If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [.NET agent reference](apm-agent-dotnet://reference/index.md) for full documentation, including: @@ -191,7 +191,7 @@ The Elastic APM PHP agent measures application performance and tracks errors. Th **Learn more** -If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apps/get-started-with-apm.md). +If you're ready to give Elastic APM a try, see [Get started with traces and APM](/solutions/observability/apm/get-started.md). See the [PHP agent reference](apm-agent-php://reference/index.md) for full documentation, including: diff --git a/solutions/observability/apps/elastic-apm-events-intake-api.md b/solutions/observability/apm/elastic-apm-events-intake-api.md similarity index 99% rename from solutions/observability/apps/elastic-apm-events-intake-api.md rename to solutions/observability/apm/elastic-apm-events-intake-api.md index 6fe5ff519..052e0e703 100644 --- a/solutions/observability/apps/elastic-apm-events-intake-api.md +++ b/solutions/observability/apm/elastic-apm-events-intake-api.md @@ -22,7 +22,7 @@ Each event is sent as its own line in the HTTP request body. This is known as [n With NDJSON, agents can open an HTTP POST request and use chunked encoding to stream events to the APM Server 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 [APM data model](learn-about-application-data-types.md) to learn more about the different types of events. +See the [APM data model](/solutions/observability/apm/data-types.md) to learn more about the different types of events. ### Endpoints [apm-api-events-endpoint] @@ -52,7 +52,7 @@ http(s)://{hostname}:{port}/intake/v2/events?async=true Since asynchronous processing defers some of the event processing to the background and takes place after the client has closed the request, some errors can’t be communicated back to the client and are logged by the APM Server. Furthermore, asynchronous processing requests will only be scheduled if the APM Server can service the incoming request, requests that cannot be serviced will receive an internal error `503` "queue is full" error. :::: -For [RUM](real-user-monitoring-rum.md) send an `HTTP POST` request to the APM Server `intake/v3/rum/events` endpoint instead: +For [RUM](/solutions/observability/apm/real-user-monitoring-rum.md) send an `HTTP POST` request to the APM Server `intake/v3/rum/events` endpoint instead: ```bash http(s)://{hostname}:{port}/intake/v3/rum/events diff --git a/solutions/observability/apps/errors-2.md b/solutions/observability/apm/errors-ui.md similarity index 100% rename from solutions/observability/apps/errors-2.md rename to solutions/observability/apm/errors-ui.md diff --git a/solutions/observability/apps/errors.md b/solutions/observability/apm/errors.md similarity index 97% rename from solutions/observability/apps/errors.md rename to solutions/observability/apm/errors.md index b34698e61..df3f2d94c 100644 --- a/solutions/observability/apps/errors.md +++ b/solutions/observability/apm/errors.md @@ -14,16 +14,16 @@ 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 [transaction](transactions.md) during which it happened, via the `transaction.id`. +* An error might relate to the [transaction](/solutions/observability/apm/transactions.md) 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. - * [User](metadata.md#apm-data-model-user) - (if supplied) email, ID, username, etc. + * [User](/solutions/observability/apm/metadata.md#apm-data-model-user) - (if supplied) email, ID, username, etc. -In addition, agents provide options for users to capture custom [metadata](metadata.md). Metadata can be indexed - [`labels`](metadata.md#apm-data-model-labels), or not-indexed - [`custom`](metadata.md#apm-data-model-custom). +In addition, agents provide options for users to capture custom [metadata](/solutions/observability/apm/metadata.md). Metadata can be indexed - [`labels`](/solutions/observability/apm/metadata.md#apm-data-model-labels), or not-indexed - [`custom`](/solutions/observability/apm/metadata.md#apm-data-model-custom). ::::{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. @@ -38,7 +38,7 @@ Errors are stored in the following data streams: * APM error/exception logging: `logs-apm.error-` * Applications UI logging: `logs-apm.app.-` -See [Data streams](data-streams.md) to learn more. +See [Data streams](/solutions/observability/apm/data-streams.md) to learn more. ## Example error document [_example_error_document] diff --git a/solutions/observability/apps/explore-data-in-elasticsearch.md b/solutions/observability/apm/explore-data-in-elasticsearch.md similarity index 92% rename from solutions/observability/apps/explore-data-in-elasticsearch.md rename to solutions/observability/apm/explore-data-in-elasticsearch.md index 0a0e016b8..67494633d 100644 --- a/solutions/observability/apps/explore-data-in-elasticsearch.md +++ b/solutions/observability/apm/explore-data-in-elasticsearch.md @@ -11,7 +11,7 @@ applies_to: ## {{es}} query examples [apm-elasticsearch-query-examples] -Elastic APM data is stored in [Data streams](data-streams.md). +Elastic APM data is stored in [Data streams](/solutions/observability/apm/data-streams.md). The following examples enable you to interact with {{es}}'s REST API. One possible way to do this is using {{kib}}'s [{{dev-tools-app}} console](/explore-analyze/query-filter/tools/console.md). diff --git a/solutions/observability/apps/explore-mobile-sessions-with-discover.md b/solutions/observability/apm/explore-mobile-sessions.md similarity index 100% rename from solutions/observability/apps/explore-mobile-sessions-with-discover.md rename to solutions/observability/apm/explore-mobile-sessions.md diff --git a/solutions/observability/apps/filter-application-data.md b/solutions/observability/apm/filter-data.md similarity index 97% rename from solutions/observability/apps/filter-application-data.md rename to solutions/observability/apm/filter-data.md index 0eab5b311..8471fb9e1 100644 --- a/solutions/observability/apps/filter-application-data.md +++ b/solutions/observability/apm/filter-data.md @@ -18,7 +18,7 @@ Global filters are ways you can filter your APM data based on a specific time ra ::: ::::{note} -If you prefer to use advanced queries on your data to filter on specific pieces of information, see [Query your data](/solutions/observability/apps/use-advanced-queries-on-application-data.md). +If you prefer to use advanced queries on your data to filter on specific pieces of information, see [Query your data](/solutions/observability/apm/advanced-queries.md). :::: diff --git a/solutions/observability/apps/filter-search-application-data.md b/solutions/observability/apm/filter-search-data.md similarity index 67% rename from solutions/observability/apps/filter-search-application-data.md rename to solutions/observability/apm/filter-search-data.md index 061176e07..cbaf71d5e 100644 --- a/solutions/observability/apps/filter-search-application-data.md +++ b/solutions/observability/apm/filter-search-data.md @@ -12,6 +12,6 @@ applies_to: Because Elastic APM is built on top of the {{stack}}, you have the full power of Elastic’s powerful search capabilities to filter and search through your application data. Mastering how to filter and search your data can help you find bottlenecks in your code faster: -* Use global filters to [filter data](/solutions/observability/apps/filter-application-data.md) across the Applications UI based on a specific time range or environment. -* Use [advanced queries](/solutions/observability/apps/use-advanced-queries-on-application-data.md) on your data to filter on specific pieces of information. -* Use {{es}}'s [cross-cluster search](/solutions/observability/apps/cross-cluster-search-with-application-data.md) functionality to search APM data across multiple sources. \ No newline at end of file +* Use global filters to [filter data](/solutions/observability/apm/filter-data.md) across the Applications UI based on a specific time range or environment. +* Use [advanced queries](/solutions/observability/apm/advanced-queries.md) on your data to filter on specific pieces of information. +* Use {{es}}'s [cross-cluster search](/solutions/observability/apm/cross-cluster-search.md) functionality to search APM data across multiple sources. \ No newline at end of file diff --git a/solutions/observability/apps/find-transaction-latency-failure-correlations.md b/solutions/observability/apm/find-transaction-latency-failure-correlations.md similarity index 100% rename from solutions/observability/apps/find-transaction-latency-failure-correlations.md rename to solutions/observability/apm/find-transaction-latency-failure-correlations.md diff --git a/solutions/observability/apps/general-configuration-options.md b/solutions/observability/apm/general-configuration-options.md similarity index 100% rename from solutions/observability/apps/general-configuration-options.md rename to solutions/observability/apm/general-configuration-options.md diff --git a/solutions/observability/apps/apm-server-binary.md b/solutions/observability/apm/get-started-apm-server-binary.md similarity index 95% rename from solutions/observability/apps/apm-server-binary.md rename to solutions/observability/apm/get-started-apm-server-binary.md index 01e6d0df6..5a4d7dc7b 100644 --- a/solutions/observability/apps/apm-server-binary.md +++ b/solutions/observability/apm/get-started-apm-server-binary.md @@ -86,7 +86,7 @@ See [Running on Docker](#apm-running-on-docker) for deploying Docker containers. ## Step 2: Set up and configure [apm-server-configuration] -Configure APM by editing the `apm-server.yml` configuration file. The location of this file varies by platform—​see the [Installation layout](installation-layout.md) for help locating it. +Configure APM by editing the `apm-server.yml` configuration file. The location of this file varies by platform—​see the [Installation layout](/solutions/observability/apm/installation-layout.md) for help locating it. A minimal configuration file might look like this: @@ -101,9 +101,9 @@ output.elasticsearch: 1. The `host:port` APM Server listens on. 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 [Create a *writer* role](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). +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 [Create a *writer* role](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-events). -All available configuration options are outlined in [configuring APM Server](configure-apm-server.md). +All available configuration options are outlined in [configuring APM Server](/solutions/observability/apm/configure-apm-server.md). ## Step 3: Start [apm-server-starting] @@ -116,7 +116,7 @@ To start APM Server, run: ``` ::::{note} -The `-e` [global flag](apm-server-command-reference.md#apm-global-flags) 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 [APM Server status and logs](apm-server-systemd.md). +The `-e` [global flag](/solutions/observability/apm/apm-server-command-reference.md#apm-global-flags) 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 [APM Server status and logs](/solutions/observability/apm/apm-server-systemd.md). :::: 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`. You can change the defaults in `apm-server.yml` or by supplying a different address on the command line: @@ -127,7 +127,7 @@ You should see APM Server start up. It will try to connect to {{es}} on localhos ### Debian Package / RPM [apm-running-deb-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 [owned by the user running the process](apm-server-systemd.md#apm-config-file-ownership). +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 [owned by the user running the process](/solutions/observability/apm/apm-server-systemd.md#apm-config-file-ownership). To start the APM Server in this case, run: @@ -135,7 +135,7 @@ To start the APM Server in this case, run: sudo -u apm-server apm-server [] ``` -By default, APM Server loads its configuration file from `/etc/apm-server/apm-server.yml`. See the [deb & rpm default paths](installation-layout.md) for a full directory layout. +By default, APM Server loads its configuration file from `/etc/apm-server/apm-server.yml`. See the [deb & rpm default paths](/solutions/observability/apm/installation-layout.md) for a full directory layout. ## Step 4: Install APM agents [apm-next-steps] @@ -735,14 +735,14 @@ const apm = initApm({ ::::::{tab-item} OpenTelemetry Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to the {{stack}}. -For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](use-opentelemetry-with-apm.md). +For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](/solutions/observability/apm/use-opentelemetry-with-apm.md). :::::: ::::::: ## Step 5: View your data [_step_5_view_your_data] -Once you have at least one {{apm-agent}} sending data to APM Server, you can start visualizing your data in the [{{kib}} Applications UI](overviews.md). +Once you have at least one {{apm-agent}} sending data to APM Server, you can start visualizing your data in the [{{kib}} Applications UI](/solutions/observability/apm/overviews.md). :::{image} /solutions/images/observability-kibana-apm-sample-data.png :alt: Applications UI with data @@ -814,7 +814,7 @@ docker run -d \ #### Customize your configuration [_customize_your_configuration] -The `apm-server.docker.yml` downloaded earlier should be customized for your environment. See [Configure APM Server](configure-apm-server.md) 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 [Configure APM Server](/solutions/observability/apm/configure-apm-server.md) for more details. Edit the configuration file and customize it to match your environment then re-deploy your APM Server container. #### Custom image configuration [_custom_image_configuration] diff --git a/solutions/observability/apps/fleet-managed-apm-server.md b/solutions/observability/apm/get-started-fleet-managed-apm-server.md similarity index 99% rename from solutions/observability/apps/fleet-managed-apm-server.md rename to solutions/observability/apm/get-started-fleet-managed-apm-server.md index 19b92cf2a..9bfca274c 100644 --- a/solutions/observability/apps/fleet-managed-apm-server.md +++ b/solutions/observability/apm/get-started-fleet-managed-apm-server.md @@ -775,7 +775,7 @@ const apm = initApm({ ::::::{tab-item} OpenTelemetry Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to the {{stack}}. -For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](use-opentelemetry-with-apm.md). +For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](/solutions/observability/apm/use-opentelemetry-with-apm.md). :::::: ::::::: diff --git a/solutions/observability/apps/get-started-apm-serverless.md b/solutions/observability/apm/get-started-serverless.md similarity index 97% rename from solutions/observability/apps/get-started-apm-serverless.md rename to solutions/observability/apm/get-started-serverless.md index b8a2b2a07..45442cf78 100644 --- a/solutions/observability/apps/get-started-apm-serverless.md +++ b/solutions/observability/apm/get-started-serverless.md @@ -395,7 +395,7 @@ To send APM data to Elastic, you must install an APM agent and configure it to s :::::{tab-item} OpenTelemetry Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to Elastic. - For more information on how to combine Elastic and OpenTelemetry, refer to [OpenTelemetry](/solutions/observability/apps/use-opentelemetry-with-apm.md). + For more information on how to combine Elastic and OpenTelemetry, refer to [OpenTelemetry](/solutions/observability/apm/use-opentelemetry-with-apm.md). ::::: :::::: @@ -428,7 +428,7 @@ To send APM data to Elastic, you must install an APM agent and configure it to s 3. If you’re using the step-by-step instructions in the UI, after you’ve installed and configured an agent, you can click **Check Agent Status** to verify that the agent is sending data. -To learn more about APM agents, including how to fine-tune how agents send traces to Elastic, refer to [Collect application data](/solutions/observability/apps/collect-application-data.md). +To learn more about APM agents, including how to fine-tune how agents send traces to Elastic, refer to [Collect application data](/solutions/observability/apm/collect-application-data.md). ## Step 2: View your data [view-apm-integration-data] @@ -436,7 +436,7 @@ After one or more APM agents are installed and successfully sending data, you ca In the *Applications* section of the main menu, select **Service Inventory**. This will show a high-level overview of the health and general performance of all your services. -Learn more about visualizing APM data in [View and analyze data](/solutions/observability/apps/view-analyze-data.md). +Learn more about visualizing APM data in [View and analyze data](/solutions/observability/apm/view-analyze-data.md). ::::{tip} Not seeing any data? Find helpful tips in [Troubleshooting](/troubleshoot/observability/apm.md). @@ -445,4 +445,4 @@ Not seeing any data? Find helpful tips in [Troubleshooting](/troubleshoot/observ ## Next steps [observability-apm-get-started-next-steps] -Now that data is streaming into your project, take your investigation to a deeper level. Learn how to use [Elastic’s built-in visualizations for APM data](/solutions/observability/apps/view-analyze-data.md), [alert on APM data](/solutions/observability/incident-management/alerting.md), or [fine-tune how agents send traces to Elastic](/solutions/observability/apps/collect-application-data.md). +Now that data is streaming into your project, take your investigation to a deeper level. Learn how to use [Elastic’s built-in visualizations for APM data](/solutions/observability/apm/view-analyze-data.md), [alert on APM data](/solutions/observability/incident-management/alerting.md), or [fine-tune how agents send traces to Elastic](/solutions/observability/apm/collect-application-data.md). diff --git a/solutions/observability/apps/get-started-with-apm.md b/solutions/observability/apm/get-started.md similarity index 89% rename from solutions/observability/apps/get-started-with-apm.md rename to solutions/observability/apm/get-started.md index f3f751d9e..bc332d399 100644 --- a/solutions/observability/apps/get-started-with-apm.md +++ b/solutions/observability/apm/get-started.md @@ -16,9 +16,9 @@ Starting in version 8.15.0, the {{es}} apm-data plugin manages APM index templat The APM Server receives performance data from your APM agents, validates and processes it, and then transforms the data into {{es}} documents. 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: -* **[Elastic Cloud Serverless](/solutions/observability/apps/get-started-with-apm.md#get-started-apm-serverless)** -* **[Fleet-managed APM Server](/solutions/observability/apps/get-started-with-apm.md#apm-setup-fleet-managed-apm)** -* **[APM Server binary](/solutions/observability/apps/get-started-with-apm.md#apm-setup-apm-server-binary)** +* **[Elastic Cloud Serverless](/solutions/observability/apm/get-started.md#get-started-apm-serverless)** +* **[Fleet-managed APM Server](/solutions/observability/apm/get-started.md#apm-setup-fleet-managed-apm)** +* **[APM Server binary](/solutions/observability/apm/get-started.md#apm-setup-apm-server-binary)** ## Elastic Cloud Serverless [get-started-apm-serverless] diff --git a/solutions/observability/apps/grant-access-using-api-keys.md b/solutions/observability/apm/grant-access-using-api-keys.md similarity index 93% rename from solutions/observability/apps/grant-access-using-api-keys.md rename to solutions/observability/apm/grant-access-using-api-keys.md index b50e67cb4..1154ea4b3 100644 --- a/solutions/observability/apps/grant-access-using-api-keys.md +++ b/solutions/observability/apm/grant-access-using-api-keys.md @@ -61,7 +61,7 @@ To create an API key: ``` ::::{note} - This example only provides privileges for **writing data**. See [Use feature roles](create-assign-feature-roles-to-apm-server-users.md) for additional privileges and information. + This example only provides privileges for **writing data**. See [Use feature roles](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md) for additional privileges and information. :::: 4. To set an expiration date for the API key, select **Expire after time** and input the lifetime of the API key in days. @@ -106,7 +106,7 @@ Enter a name for your API key and select **Restrict privileges**. In the role de ``` ::::{note} -This example only provides privileges for **publishing monitoring data**. See [Use feature roles](create-assign-feature-roles-to-apm-server-users.md) for additional privileges and information. +This example only provides privileges for **publishing monitoring data**. See [Use feature roles](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md) 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. @@ -162,7 +162,7 @@ POST /_security/api_key ``` 1. Name of the API key -2. Granted privileges, see [Use feature roles](create-assign-feature-roles-to-apm-server-users.md) +2. Granted privileges, see [Use feature roles](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md) See the [Create API key](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-create-api-key) reference for more information. diff --git a/solutions/observability/apps/high-availability.md b/solutions/observability/apm/high-availability.md similarity index 90% rename from solutions/observability/apps/high-availability.md rename to solutions/observability/apm/high-availability.md index f46fbbd1e..dfbc0b755 100644 --- a/solutions/observability/apps/high-availability.md +++ b/solutions/observability/apm/high-availability.md @@ -9,7 +9,7 @@ applies_to: To achieve high availability you can place multiple instances of APM Server behind a regular HTTP load balancer, 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 [APM Server information API](apm-server-information-api.md) for more information on that endpoint. +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 [APM Server information API](/solutions/observability/apm/apm-server-information-api.md) 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, but instead leverages an HTTP request timeout to act as back-pressure. diff --git a/solutions/observability/apps/index-lifecycle-management.md b/solutions/observability/apm/index-lifecycle-management.md similarity index 100% rename from solutions/observability/apps/index-lifecycle-management.md rename to solutions/observability/apm/index-lifecycle-management.md diff --git a/solutions/observability/apps/application-performance-monitoring-apm.md b/solutions/observability/apm/index.md similarity index 87% rename from solutions/observability/apps/application-performance-monitoring-apm.md rename to solutions/observability/apm/index.md index 88c6ffe8b..119efabec 100644 --- a/solutions/observability/apps/application-performance-monitoring-apm.md +++ b/solutions/observability/apm/index.md @@ -22,4 +22,4 @@ Metrics are another vital source of information when debugging production system ## Give Elastic APM a try [give_elastic_apm_a_try] -Use [Get started with application traces and APM](/solutions/observability/apps/fleet-managed-apm-server.md) to quickly spin up an APM deployment. Want to host everything yourself instead? See [Get started](/solutions/observability/apps/get-started-with-apm.md). \ No newline at end of file +Use [Get started with application traces and APM](/solutions/observability/apm/get-started-fleet-managed-apm-server.md) to quickly spin up an APM deployment. Want to host everything yourself instead? See [Get started](/solutions/observability/apm/get-started.md). \ No newline at end of file diff --git a/solutions/observability/apps/infrastructure.md b/solutions/observability/apm/infrastructure.md similarity index 94% rename from solutions/observability/apps/infrastructure.md rename to solutions/observability/apm/infrastructure.md index 99656b926..d4e8c571a 100644 --- a/solutions/observability/apps/infrastructure.md +++ b/solutions/observability/apm/infrastructure.md @@ -17,8 +17,8 @@ The Applications UI Infrastructure functionality is in beta and is subject to ch The **Infrastructure** tab provides information about the containers, pods, and hosts that the selected service is linked to. -* **Pods**: Uses the `kubernetes.pod.name` from the [APM metrics data streams](/solutions/observability/apps/metrics.md). -* **Containers**: Uses the `container.id` from the [APM metrics data streams](/solutions/observability/apps/metrics.md). +* **Pods**: Uses the `kubernetes.pod.name` from the [APM metrics data streams](/solutions/observability/apm/metrics.md). +* **Containers**: Uses the `container.id` from the [APM metrics data streams](/solutions/observability/apm/metrics.md). * **Hosts**: If the application is containerized—​if the APM metrics documents include `container.id`-- the `host.name` is used from the infrastructure data streams (filtered by `container.id`). If not, `host.hostname` is used from the APM metrics data streams. :::{image} /solutions/images/serverless-infra.png diff --git a/solutions/observability/apps/installation-layout.md b/solutions/observability/apm/installation-layout.md similarity index 100% rename from solutions/observability/apps/installation-layout.md rename to solutions/observability/apm/installation-layout.md diff --git a/solutions/observability/apm/interpret-data.md b/solutions/observability/apm/interpret-data.md new file mode 100644 index 000000000..8a6874f00 --- /dev/null +++ b/solutions/observability/apm/interpret-data.md @@ -0,0 +1,22 @@ +--- +navigation_title: "Interpret data" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-interpret-data.html + - https://www.elastic.co/guide/en/serverless/current/observability-apm-interpret-data.html +applies_to: + stack: + serverless: +--- + +# Interpret application data [observability-apm-interpret-data] + +Learn how to get the most out of your data using the Applications UI. + +% Stateful only for exploring mobile sessions with Discover? + +| | | +| --- | --- | +| [Finding transaction latency and failure correlations](/solutions/observability/apm/find-transaction-latency-failure-correlations.md) | Surface characteristics of your data that are potentially correlated with high-latency or erroneous transactions. | +| [Tracking deployments with annotations](/solutions/observability/apm/track-deployments-with-annotations.md) | Annotations enable you to easily determine if your deployment has increased response times for an end-user or if the memory/CPU footprint of your application has changed. | +| [Exploring mobile sessions with Discover](/solutions/observability/apm/explore-mobile-sessions.md) | **Elastic Stack only:** Use session tracking via a globally unique identifier to explore the activities of a specific user during a specific period of time. | +| [Observing Lambda functions](/solutions/observability/apm/observe-lambda-functions.md) | Learn how your AWS Lambda functions relate to and depend on other services, and get insight into function execution and runtime behavior, like lambda duration, cold start rate, cold start duration, compute usage, memory usage, and more. | \ No newline at end of file diff --git a/solutions/observability/apps/inventory.md b/solutions/observability/apm/inventory.md similarity index 100% rename from solutions/observability/apps/inventory.md rename to solutions/observability/apm/inventory.md diff --git a/solutions/observability/apps/jaeger-event-intake.md b/solutions/observability/apm/jaeger-event-intake.md similarity index 89% rename from solutions/observability/apps/jaeger-event-intake.md rename to solutions/observability/apm/jaeger-event-intake.md index 3a353c87e..a34d3df3e 100644 --- a/solutions/observability/apps/jaeger-event-intake.md +++ b/solutions/observability/apm/jaeger-event-intake.md @@ -12,7 +12,7 @@ applies_to: :::: -Elastic APM natively supports Jaeger, an open-source, distributed tracing system. [Learn more](integrate-with-jaeger-deprecated.md). +Elastic APM natively supports Jaeger, an open-source, distributed tracing system. [Learn more](/solutions/observability/apm/jaeger.md). **Jaeger/gRPC paths** diff --git a/solutions/observability/apps/integrate-with-jaeger-deprecated.md b/solutions/observability/apm/jaeger.md similarity index 90% rename from solutions/observability/apps/integrate-with-jaeger-deprecated.md rename to solutions/observability/apm/jaeger.md index 80e6a079c..62b460180 100644 --- a/solutions/observability/apps/integrate-with-jaeger-deprecated.md +++ b/solutions/observability/apm/jaeger.md @@ -104,7 +104,7 @@ There are two different ways to configure the sampling rate of your Jaeger agent #### {{apm-agent}} central configuration (default) [apm-configure-sampling-central-jaeger] -Central sampling, with {{apm-agent}} central configuration, allows Jaeger clients to poll APM Server for the sampling rate. This means sample rates can be configured on the fly, on a per-service and per-environment basis. See [Central configuration](apm-agent-central-configuration.md) to learn more. +Central sampling, with {{apm-agent}} central configuration, allows Jaeger clients to poll APM Server for the sampling rate. This means sample rates can be configured on the fly, on a per-service and per-environment basis. See [Central configuration](/solutions/observability/apm/apm-agent-central-configuration.md) to learn more. #### Local sampling in each Jaeger client [apm-configure-sampling-local-jaeger] @@ -126,7 +126,7 @@ There are some limitations and differences between Elastic APM and Jaeger that y **Differences between APM Agents and Jaeger Clients:** * Jaeger clients only sends trace data. 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 Applications UI. -* Elastic APM’s [Learn about data types](learn-about-application-data-types.md) is different than Jaegers. For Jaeger trace data to work with Elastic’s data model, we rely on spans being tagged with the appropriate [`span.kind`](https://github.com/opentracing/specification/blob/master/semantic_conventions.md). +* Elastic APM’s [Learn about data types](/solutions/observability/apm/data-types.md) is different than Jaegers. For Jaeger trace data to work with Elastic’s data model, we rely on spans being tagged with the appropriate [`span.kind`](https://github.com/opentracing/specification/blob/master/semantic_conventions.md). - * Server Jaeger spans are mapped to Elastic APM [Transactions](transactions.md). - * Client Jaeger spans are mapped to Elastic APM [Spans](spans.md) — unless the span is the root, in which case it is mapped to an Elastic APM [Transactions](transactions.md). + * Server Jaeger spans are mapped to Elastic APM [Transactions](/solutions/observability/apm/transactions.md). + * Client Jaeger spans are mapped to Elastic APM [Spans](/solutions/observability/apm/spans.md) — unless the span is the root, in which case it is mapped to an Elastic APM [Transactions](/solutions/observability/apm/transactions.md). diff --git a/solutions/observability/apps/limitations.md b/solutions/observability/apm/limitations.md similarity index 95% rename from solutions/observability/apps/limitations.md rename to solutions/observability/apm/limitations.md index ebed4f3f6..2de20e626 100644 --- a/solutions/observability/apps/limitations.md +++ b/solutions/observability/apm/limitations.md @@ -28,7 +28,7 @@ Elastic supports both the [OTLP/gRPC](https://opentelemetry.io/docs/specs/otlp/ The [OpenTelemetry Collector exporter for Elastic](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.57.2/exporter/elasticexporter) has been deprecated and replaced by the native support of the OpenTelemetry Line Protocol in Elastic Observability (OTLP). -The [OpenTelemetry Collector exporter for Elastic](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter) (which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and Elastic Observability. Use [Elastic’s native OTLP support](/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md) instead. +The [OpenTelemetry Collector exporter for Elastic](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter) (which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and Elastic Observability. Use [Elastic’s native OTLP support](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md) instead. % Statefull only for tail-based sampling? @@ -42,7 +42,7 @@ Tail-based sampling allows to make sampling decisions after all spans of a trace When using OpenTelemetry with Elastic APM, there are two different implementations available for tail-based sampling: * Tail-based sampling using the [tailsamplingprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor) in the OpenTelemetry Collector -* Native [tail-based sampling in the Elastic APM backend](/solutions/observability/apps/transaction-sampling.md#apm-tail-based-sampling) +* Native [tail-based sampling in the Elastic APM backend](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) Using the [tailsamplingprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/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. diff --git a/solutions/observability/apps/logs.md b/solutions/observability/apm/logs.md similarity index 100% rename from solutions/observability/apps/logs.md rename to solutions/observability/apm/logs.md diff --git a/solutions/observability/apps/integrate-with-machine-learning.md b/solutions/observability/apm/machine-learning.md similarity index 94% rename from solutions/observability/apps/integrate-with-machine-learning.md rename to solutions/observability/apm/machine-learning.md index ee780efd0..c6e1a45e8 100644 --- a/solutions/observability/apps/integrate-with-machine-learning.md +++ b/solutions/observability/apm/machine-learning.md @@ -49,6 +49,6 @@ To make machine learning as easy as possible to set up, Elastic will warn you wh After enabling anomaly detection, service health may display as "Unknown". Here are some reasons why this can occur: -1. No machine learning job exists. See [Enable anomaly detection](/solutions/observability/apps/integrate-with-machine-learning.md#observability-apm-integrate-with-machine-learning-enable-anomaly-detection) to enable anomaly detection and create a machine learning job. +1. No machine learning job exists. See [Enable anomaly detection](/solutions/observability/apm/machine-learning.md#observability-apm-integrate-with-machine-learning-enable-anomaly-detection) to enable anomaly detection and create a machine learning job. 2. There is no machine learning data for the job. If you just created the machine learning job you’ll need to wait a few minutes for data to be available. Alternatively, if the service or its environment are new, you’ll need to wait for more trace data. 3. No "request" or "page-load" transaction type exists for this service; service health is only available for these transaction types. \ No newline at end of file diff --git a/solutions/observability/apm/manage-storage.md b/solutions/observability/apm/manage-storage.md new file mode 100644 index 000000000..6d1069f68 --- /dev/null +++ b/solutions/observability/apm/manage-storage.md @@ -0,0 +1,15 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-manage-storage.html +applies_to: + stack: +--- + +# Manage storage [apm-manage-storage] + +{{agent}} uses [data streams](/solutions/observability/apm/data-streams.md) to store time series data across multiple indices. [Index templates](/solutions/observability/apm/view-elasticsearch-index-template.md) are used to configure the backing indices of data streams as they are created. Each data stream ships with a customizable [index lifecycle policy](/solutions/observability/apm/index-lifecycle-management.md) that automates data retention as your indices grow and age. Use [ingest pipelines](/solutions/observability/apm/parse-data-using-ingest-pipelines.md) to process and enrich APM documents before indexing them. + +The [storage and sizing guide](/solutions/observability/apm/storage-sizing-guide.md) attempts to define a "typical" storage reference for Elastic APM, and there are additional settings you can tweak to [reduce storage](/solutions/observability/apm/reduce-storage.md), or to [tune data ingestion in {{es}}](/solutions/observability/apm/tune-data-ingestion.md#apm-tune-elasticsearch). + +In addition, the Applications UI makes it easy to visualize your APM data usage with [storage explorer](/solutions/observability/apm/storage-explorer.md). Storage explorer allows you to analyze the storage footprint of each of your services to see which are producing large amounts of data—​so you can better reduce the data you’re collecting or forecast and prepare for future storage needs. + diff --git a/solutions/observability/apps/managed-intake-service-event-api.md b/solutions/observability/apm/managed-intake-service-event-api.md similarity index 99% rename from solutions/observability/apps/managed-intake-service-event-api.md rename to solutions/observability/apm/managed-intake-service-event-api.md index 8a69cae58..0ed6e85d5 100644 --- a/solutions/observability/apps/managed-intake-service-event-api.md +++ b/solutions/observability/apm/managed-intake-service-event-api.md @@ -67,7 +67,7 @@ Each event is sent as its own line in the HTTP request body. This is known as [n With NDJSON, agents can open an HTTP POST request and use chunked encoding to stream events to the managed intake service 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 managed intake service also treats the HTTP body as a compressed stream and thus reads and handles each event independently. -Refer to [Learn about data types](learn-about-application-data-types.md) to learn more about the different types of events. +Refer to [Learn about data types](/solutions/observability/apm/data-types.md) to learn more about the different types of events. ### Endpoints [api-events-endpoint] @@ -4476,7 +4476,7 @@ The managed intake service supports two OTLP communication protocols on the same | OTLP logs intake | `/v1/logs` | ::::{tip} -See our [OpenTelemetry docs](upstream-opentelemetry-collectors-language-sdks.md) to learn how to send data to the managed intake service from an OpenTelemetry agent OpenTelemetry collector. +See our [OpenTelemetry docs](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md) to learn how to send data to the managed intake service from an OpenTelemetry agent OpenTelemetry collector. :::: diff --git a/solutions/observability/apps/metadata.md b/solutions/observability/apm/metadata.md similarity index 91% rename from solutions/observability/apps/metadata.md rename to solutions/observability/apm/metadata.md index 903ac1ca7..914a74c13 100644 --- a/solutions/observability/apps/metadata.md +++ b/solutions/observability/apm/metadata.md @@ -17,7 +17,7 @@ Labels add **indexed** information to transactions, spans, and errors. Indexed m * Indexed: Yes * {{es}} type: [object](elasticsearch://reference/elasticsearch/mapping-reference/object.md) * {{es}} field: `labels` -* Applies to: [Transactions](transactions.md) | [Spans](spans.md) | [Errors](errors.md) +* Applies to: [Transactions](/solutions/observability/apm/transactions.md) | [Spans](/solutions/observability/apm/spans.md) | [Errors](/solutions/observability/apm/errors.md) 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}}, all label values of a given key must have the same data type. Multiple data types per key will throw an exception, for example: `{foo: bar}` and `{foo: 42}` is not allowed. @@ -45,7 +45,7 @@ Non-indexed information is useful for providing contextual information to help y * Indexed: No * {{es}} type: [object](elasticsearch://reference/elasticsearch/mapping-reference/object.md) * {{es}} fields: `transaction.custom` | `error.custom` -* Applies to: [Transactions](transactions.md) | [Errors](errors.md) +* Applies to: [Transactions](/solutions/observability/apm/transactions.md) | [Errors](/solutions/observability/apm/errors.md) ::::{important} Setting a circular object, a large object, or a non JSON serializable object can lead to errors. @@ -70,7 +70,7 @@ User context adds **indexed** user information to transactions and errors. Index * Indexed: Yes * {{es}} type: [keyword](elasticsearch://reference/elasticsearch/mapping-reference/keyword.md) * {{es}} fields: `user.email` | `user.name` | `user.id` -* Applies to: [Transactions](transactions.md) | [Errors](errors.md) +* Applies to: [Transactions](/solutions/observability/apm/transactions.md) | [Errors](/solutions/observability/apm/errors.md) ### Agent API reference [_agent_api_reference_3] diff --git a/solutions/observability/apps/metrics-2.md b/solutions/observability/apm/metrics-ui.md similarity index 100% rename from solutions/observability/apps/metrics-2.md rename to solutions/observability/apm/metrics-ui.md diff --git a/solutions/observability/apps/metrics.md b/solutions/observability/apm/metrics.md similarity index 95% rename from solutions/observability/apps/metrics.md rename to solutions/observability/apm/metrics.md index 2590aa2ef..61c664802 100644 --- a/solutions/observability/apps/metrics.md +++ b/solutions/observability/apm/metrics.md @@ -20,7 +20,7 @@ applies_to: APM agents automatically pick up basic host-level metrics, including system and process-level CPU and memory metrics. Agent specific metrics are also available, like [JVM metrics](apm-agent-java://reference/metrics.md) in the Java Agent, and [Go runtime](apm-agent-go://reference/metrics.md) metrics in the Go Agent. -Infrastructure and application metrics are important sources of information when debugging production systems, which is why we’ve made it easy to filter metrics for specific hosts or containers in the {{kib}} [metrics overview](metrics-2.md). +Infrastructure and application metrics are important sources of information when debugging production systems, which is why we’ve made it easy to filter metrics for specific hosts or containers in the {{kib}} [metrics overview](/solutions/observability/apm/metrics-ui.md). ::::{tip} Most agents limit keyword fields to 1024 characters, non-keyword fields (e.g. `system.memory.total`) to 10,000 characters. @@ -127,7 +127,7 @@ These metrics are described below. ### Breakdown metrics [_breakdown_metrics] -To power the [Time spent by span type](transactions-2.md) graph, agents collect summarized metrics about the timings of spans and transactions, broken down by span type. +To power the [Time spent by span type](/solutions/observability/apm/transactions-ui.md) graph, agents collect summarized metrics about the timings of spans and transactions, broken down by span type. **`span.self_time.count`** and **`span.self_time.sum.us`** : These metrics measure the "self-time" for a span type, and optional subtype, within a transaction group. Together these metrics can be used to calculate the average duration and percentage of time spent on each type of operation within a transaction group. @@ -235,7 +235,7 @@ This example shows what breakdown metric documents can look like when indexed in ### Transaction metrics [_transaction_metrics] -To power [{{kib}} Applications UI](overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction events into latency distribution metrics. +To power [{{kib}} Applications UI](/solutions/observability/apm/overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction events into latency distribution metrics. **`transaction.duration.summary`** and **`transaction.duration.histogram`** : These metrics represent the latency summary and latency distribution of transaction groups, used to power transaction-oriented visualizations and analytics in Elastic APM. @@ -421,7 +421,7 @@ This example shows what transaction documents can look like when indexed in {{es ### Service-transaction metrics [_service_transaction_metrics] -To power [{{kib}} Applications UI](overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction events into service-transaction metrics. Service-transaction metrics are similar to transaction metrics, but they usually have a much lower cardinality as they have significantly fewer dimensions. The UI uses them when fewer details of the transactions are needed. +To power [{{kib}} Applications UI](/solutions/observability/apm/overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction events into service-transaction metrics. Service-transaction metrics are similar to transaction metrics, but they usually have a much lower cardinality as they have significantly fewer dimensions. The UI uses them when fewer details of the transactions are needed. **`transaction.duration.summary`** and **`transaction.duration.histogram`** : These metrics represent the latency summary and latency distribution of service transaction groups, used to power service-oriented visualizations and analytics in Elastic APM. @@ -955,10 +955,10 @@ This example shows what service-transaction documents can look like when indexed ### Service-destination metrics [_service_destination_metrics] -To power [{{kib}} Applications UI](overviews.md) visualizations, either {{apm-server-or-mis}} aggregates span events into service-destination metrics. +To power [{{kib}} Applications UI](/solutions/observability/apm/overviews.md) visualizations, either {{apm-server-or-mis}} aggregates span events into service-destination metrics. **`span.destination.service.response_time.count`** and **`span.destination.service.response_time.sum.us`** -: These metrics measure the count and total duration of requests from one service to another service. These are used to calculate the throughput and latency of requests to backend services such as databases in [Service maps](service-map.md). +: These metrics measure the count and total duration of requests from one service to another service. These are used to calculate the throughput and latency of requests to backend services such as databases in [Service maps](/solutions/observability/apm/service-map.md). These metric documents can be identified by searching for `metricset.name: service_destination`. @@ -1048,7 +1048,7 @@ This example shows what service-destination documents can look like when indexed ### Service-summary metrics [_service_summary_metrics] -To power [{{kib}} Applications UI](overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction, error, log, and metric events into service-summary metrics. +To power [{{kib}} Applications UI](/solutions/observability/apm/overviews.md) visualizations, either {{apm-server-or-mis}} aggregates transaction, error, log, and metric events into service-summary metrics. These metric documents can be identified by searching for `metricset.name: service_summary`. @@ -1123,7 +1123,7 @@ Metrics are stored in the following data streams: * APM service summary metrics: `metrics-apm.service_summary.-` * Application metrics: `metrics-apm.app.-` -See [Data streams](data-streams.md) to learn more. +See [Data streams](/solutions/observability/apm/data-streams.md) to learn more. ## Aggregated metrics: limits and overflows [_aggregated_metrics_limits_and_overflows] diff --git a/solutions/observability/apps/mobile-service-overview.md b/solutions/observability/apm/mobile-service-overview.md similarity index 96% rename from solutions/observability/apps/mobile-service-overview.md rename to solutions/observability/apm/mobile-service-overview.md index a0f0337cb..be51489fd 100644 --- a/solutions/observability/apps/mobile-service-overview.md +++ b/solutions/observability/apm/mobile-service-overview.md @@ -48,7 +48,7 @@ The **Throughput** chart visualizes the average number of transactions per minut The **Transactions** table displays a list of *transaction groups* for the selected service and includes the latency, traffic, error rate, and the impact for each transaction. Transactions that share the same name are grouped, and only one entry is displayed for each group. -By default, transaction groups are sorted by *Impact* to show the most used and slowest endpoints in your service. If there is a particular endpoint you are interested in, click **View transactions** to view a list of similar transactions on the [transactions overview](transactions-2.md) page. +By default, transaction groups are sorted by *Impact* to show the most used and slowest endpoints in your service. If there is a particular endpoint you are interested in, click **View transactions** to view a list of similar transactions on the [transactions overview](/solutions/observability/apm/transactions-ui.md) page. :::{image} /solutions/images/observability-traffic-transactions.png :alt: Traffic and transactions @@ -68,7 +68,7 @@ If there is no HTTP status, both transactions and spans are considered successfu :::: -The **Dependencies** table displays a list of downstream services or external connections relevant to the service at the selected time range. The table displays latency, throughput, failed transaction rate, and the impact of each dependency. By default, dependencies are sorted by *Impact* to show the most used and the slowest dependency. If there is a particular dependency you are interested in, click **[View dependencies](dependencies.md)** to learn more about it. +The **Dependencies** table displays a list of downstream services or external connections relevant to the service at the selected time range. The table displays latency, throughput, failed transaction rate, and the impact of each dependency. By default, dependencies are sorted by *Impact* to show the most used and the slowest dependency. If there is a particular dependency you are interested in, click **[View dependencies](/solutions/observability/apm/dependencies.md)** to learn more about it. ::::{note} Displaying dependencies for services instrumented with the Real User Monitoring (RUM) agent requires an agent version ≥ v5.6.3. diff --git a/solutions/observability/apm/monitor-apm-server-binary.md b/solutions/observability/apm/monitor-apm-server-binary.md new file mode 100644 index 000000000..89b7e0ff2 --- /dev/null +++ b/solutions/observability/apm/monitor-apm-server-binary.md @@ -0,0 +1,15 @@ +--- +navigation_title: "APM Server binary" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-monitoring.html +applies_to: + stack: all +--- + +# Monitor the APM Server binary [apm-monitoring] + +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 collection](/solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md) - Internal collectors send monitoring data directly to your monitoring cluster. +* [{{metricbeat}} collection](/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md) - {{metricbeat}} collects monitoring data from your APM Server instance and sends it directly to your monitoring cluster. +* [Local collection](/solutions/observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md) - Local collection sends select monitoring data directly to the standard indices of your monitoring cluster. \ No newline at end of file diff --git a/solutions/observability/apps/monitor-apm-server.md b/solutions/observability/apm/monitor-apm-server.md similarity index 85% rename from solutions/observability/apps/monitor-apm-server.md rename to solutions/observability/apm/monitor-apm-server.md index 0372f6fb9..f1fdd1f8a 100644 --- a/solutions/observability/apps/monitor-apm-server.md +++ b/solutions/observability/apm/monitor-apm-server.md @@ -12,8 +12,8 @@ Use the {{stack}} {{monitor-features}} to gain insight into the real-time health Select your deployment method to get started: * [{{ecloud}}](#apm-monitor-apm-cloud) -* [Fleet-managed](monitor-fleet-managed-apm-server.md) -* [APM Server binary](monitor-apm-server-binary.md) +* [Fleet-managed](/solutions/observability/apm/monitor-fleet-managed-apm-server.md) +* [APM Server binary](/solutions/observability/apm/monitor-apm-server-binary.md) ## {{ecloud}} [apm-monitor-apm-cloud] diff --git a/solutions/observability/apps/monitoring-aws-lambda-functions.md b/solutions/observability/apm/monitor-aws-lambda-functions.md similarity index 92% rename from solutions/observability/apps/monitoring-aws-lambda-functions.md rename to solutions/observability/apm/monitor-aws-lambda-functions.md index 86bacd58c..8fa5e6c62 100644 --- a/solutions/observability/apps/monitoring-aws-lambda-functions.md +++ b/solutions/observability/apm/monitor-aws-lambda-functions.md @@ -10,7 +10,7 @@ applies_to: # Monitoring AWS Lambda Functions [apm-monitoring-aws-lambda] -Elastic APM lets you monitor your AWS Lambda functions. The natural integration of [distributed tracing](/solutions/observability/apps/traces.md#apm-distributed-tracing) into your AWS Lambda functions provides insights into the function’s execution and runtime behavior as well as its relationships and dependencies to other services. +Elastic APM lets you monitor your AWS Lambda functions. The natural integration of [distributed tracing](/solutions/observability/apm/traces.md#apm-distributed-tracing) into your AWS Lambda functions provides insights into the function’s execution and runtime behavior as well as its relationships and dependencies to other services. ## AWS Lambda architecture [aws-lambda-arch] diff --git a/solutions/observability/apps/monitor-fleet-managed-apm-server.md b/solutions/observability/apm/monitor-fleet-managed-apm-server.md similarity index 100% rename from solutions/observability/apps/monitor-fleet-managed-apm-server.md rename to solutions/observability/apm/monitor-fleet-managed-apm-server.md diff --git a/solutions/observability/apps/observe-lambda-functions.md b/solutions/observability/apm/observe-lambda-functions.md similarity index 88% rename from solutions/observability/apps/observe-lambda-functions.md rename to solutions/observability/apm/observe-lambda-functions.md index c7b393ac5..76f8623c8 100644 --- a/solutions/observability/apps/observe-lambda-functions.md +++ b/solutions/observability/apm/observe-lambda-functions.md @@ -11,7 +11,7 @@ applies_to: Elastic APM provides performance and error monitoring for AWS Lambda functions. See how your Lambda functions relate to and depend on other services, and get insight into function execution and runtime behavior, like lambda duration, cold start rate, cold start duration, compute usage, memory usage, and more. -To set up Lambda monitoring, refer to [AWS Lambda functions](/solutions/observability/apps/monitoring-aws-lambda-functions.md). +To set up Lambda monitoring, refer to [AWS Lambda functions](/solutions/observability/apm/monitor-aws-lambda-functions.md). :::{image} /solutions/images/observability-lambda-overview.png :alt: lambda overview @@ -32,7 +32,7 @@ Cold start is also displayed in the trace waterfall, where you can drill-down in ### Latency distribution correlation [apm-lambda-cold-start-latency] -The [latency correlations](/solutions/observability/apps/find-transaction-latency-failure-correlations.md) feature can be used to visualize the impact of Lambda cold starts on latency—​just select the `faas.coldstart` field. +The [latency correlations](/solutions/observability/apm/find-transaction-latency-failure-correlations.md) feature can be used to visualize the impact of Lambda cold starts on latency—​just select the `faas.coldstart` field. ## AWS Lambda function grouping [apm-lambda-service-config] diff --git a/solutions/observability/apps/opentelemetry-intake-api.md b/solutions/observability/apm/opentelemetry-intake-api.md similarity index 78% rename from solutions/observability/apps/opentelemetry-intake-api.md rename to solutions/observability/apm/opentelemetry-intake-api.md index 815a0c065..0066a923c 100644 --- a/solutions/observability/apps/opentelemetry-intake-api.md +++ b/solutions/observability/apm/opentelemetry-intake-api.md @@ -31,6 +31,6 @@ APM Server supports two OTLP communication protocols on the same port: | OTLP logs intake | `/v1/logs` | ::::{tip} -See our OpenTelemetry documentation to learn how to send data to the APM Server from an [OpenTelemetry agent](upstream-opentelemetry-collectors-language-sdks.md#apm-instrument-apps-otel) or [OpenTelemetry collector](upstream-opentelemetry-collectors-language-sdks.md#apm-connect-open-telemetry-collector). +See our OpenTelemetry documentation to learn how to send data to the APM Server from an [OpenTelemetry agent](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-instrument-apps-otel) or [OpenTelemetry collector](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-connect-open-telemetry-collector). :::: diff --git a/solutions/observability/apps/overviews.md b/solutions/observability/apm/overviews.md similarity index 55% rename from solutions/observability/apps/overviews.md rename to solutions/observability/apm/overviews.md index a97eab1e6..34f6fa47c 100644 --- a/solutions/observability/apps/overviews.md +++ b/solutions/observability/apm/overviews.md @@ -12,14 +12,14 @@ applies_to: For a quick, high-level overview of the health and performance of your application, start with: -* [Services](/solutions/observability/apps/services.md) -* [Traces](/solutions/observability/apps/traces-2.md) -* [Dependencies](/solutions/observability/apps/dependencies.md) -* [Service Map](/solutions/observability/apps/service-map.md) +* [Services](/solutions/observability/apm/services.md) +* [Traces](/solutions/observability/apm/traces-ui.md) +* [Dependencies](/solutions/observability/apm/dependencies.md) +* [Service Map](/solutions/observability/apm/service-map.md) ## View an individual service [apm-ui-individual-service] View an individual service: -* [Service overview](/solutions/observability/apps/service-overview.md) -* [Mobile service overview](/solutions/observability/apps/mobile-service-overview.md) +* [Service overview](/solutions/observability/apm/service-overview.md) +* [Mobile service overview](/solutions/observability/apm/mobile-service-overview.md) diff --git a/solutions/observability/apps/parse-data-using-ingest-pipelines.md b/solutions/observability/apm/parse-data-using-ingest-pipelines.md similarity index 90% rename from solutions/observability/apps/parse-data-using-ingest-pipelines.md rename to solutions/observability/apm/parse-data-using-ingest-pipelines.md index 354b38523..a9ba9a002 100644 --- a/solutions/observability/apps/parse-data-using-ingest-pipelines.md +++ b/solutions/observability/apm/parse-data-using-ingest-pipelines.md @@ -47,6 +47,6 @@ The process for creating a custom ingest pipeline is as follows: If you prefer more guidance, see one of these tutorials: -* [Ingest pipeline filters](custom-filters.md#apm-filters-ingest-pipeline) — Learn how to obfuscate passwords stored in the `http.request.body.original` field. -* [APM data stream rerouting](data-streams.md#apm-data-stream-rerouting) — Learn how to reroute APM data to user-defined APM data streams. +* [Ingest pipeline filters](/solutions/observability/apm/custom-filters.md#apm-filters-ingest-pipeline) — Learn how to obfuscate passwords stored in the `http.request.body.original` field. +* [APM data stream rerouting](/solutions/observability/apm/data-streams.md#apm-data-stream-rerouting) — Learn how to reroute APM data to user-defined APM data streams. diff --git a/solutions/observability/apps/real-user-monitoring-rum.md b/solutions/observability/apm/real-user-monitoring-rum.md similarity index 100% rename from solutions/observability/apps/real-user-monitoring-rum.md rename to solutions/observability/apm/real-user-monitoring-rum.md diff --git a/solutions/observability/apps/reduce-storage.md b/solutions/observability/apm/reduce-storage.md similarity index 88% rename from solutions/observability/apps/reduce-storage.md rename to solutions/observability/apm/reduce-storage.md index 5e173d50d..97b8939e7 100644 --- a/solutions/observability/apps/reduce-storage.md +++ b/solutions/observability/apm/reduce-storage.md @@ -15,13 +15,13 @@ The richness and volume of APM data provides unique insights into your applicati 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 [Transaction sampling](/solutions/observability/apps/transaction-sampling.md) to learn more. +See [Transaction sampling](/solutions/observability/apm/transaction-sampling.md) to learn more. ## Enable span compression [enable_span_compression] In some cases, APM agents may collect large amounts of very similar or identical spans in a transaction. These repeated, similar spans often don’t provide added benefit, especially if they are of very short duration. Span compression takes these similar spans and compresses them into a single span-- retaining important information but reducing processing and storage overhead. -See [Span compression](/solutions/observability/apps/spans.md#apm-spans-span-compression) to learn more. +See [Span compression](/solutions/observability/apm/spans.md#apm-spans-span-compression) to learn more. ## Reduce collected stack trace information [observability-apm-reduce-stacktrace] @@ -42,15 +42,15 @@ You might want to only keep data for a defined time period. This might mean dele Depending on your use case, you can delete data: -* periodically with [{{ilm}}](/solutions/observability/apps/reduce-storage.md#apm-delete-data-with-ilm) -* [matching a query](/solutions/observability/apps/reduce-storage.md#apm-delete-data-query) -* with the [{{kib}} Index Management UI](/solutions/observability/apps/reduce-storage.md#apm-delete-data-in-kibana) +* periodically with [{{ilm}}](/solutions/observability/apm/reduce-storage.md#apm-delete-data-with-ilm) +* [matching a query](/solutions/observability/apm/reduce-storage.md#apm-delete-data-query) +* with the [{{kib}} Index Management UI](/solutions/observability/apm/reduce-storage.md#apm-delete-data-in-kibana) -If you want to delete data for security or privacy reasons, see [Secure data](/solutions/observability/apps/application-data-security.md). +If you want to delete data for security or privacy reasons, see [Secure data](/solutions/observability/apm/secure-data.md). ### Delete data with {{ilm}} ({{ilm-init}}) [apm-delete-data-with-ilm] -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 [{{ilm-cap}}](/solutions/observability/apps/index-lifecycle-management.md) to learn more. +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 [{{ilm-cap}}](/solutions/observability/apm/index-lifecycle-management.md) to learn more. ### Delete data matching a query [apm-delete-data-query] diff --git a/solutions/observability/apps/resource-atrributes.md b/solutions/observability/apm/resource-attributes.md similarity index 95% rename from solutions/observability/apps/resource-atrributes.md rename to solutions/observability/apm/resource-attributes.md index b1771ee36..3aa493419 100644 --- a/solutions/observability/apps/resource-atrributes.md +++ b/solutions/observability/apm/resource-attributes.md @@ -45,4 +45,4 @@ Need to add event attributes instead? Use attributes—​not to be confused wit Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to the {{stack}}. -For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](/solutions/observability/apps/use-opentelemetry-with-apm.md). \ No newline at end of file +For more information on how to combine Elastic and OpenTelemetry, see [OpenTelemetry integration](/solutions/observability/apm/use-opentelemetry-with-apm.md). \ No newline at end of file diff --git a/solutions/observability/apps/secret-token.md b/solutions/observability/apm/secret-token.md similarity index 95% rename from solutions/observability/apps/secret-token.md rename to solutions/observability/apm/secret-token.md index 32c20644e..d3e461a5f 100644 --- a/solutions/observability/apps/secret-token.md +++ b/solutions/observability/apm/secret-token.md @@ -8,14 +8,14 @@ applies_to: # Secret token [apm-secret-token] ::::{important} -Secret tokens are sent as plain-text, so they only provide security when used in combination with [TLS](apm-agent-tls-communication.md). +Secret tokens are sent as plain-text, so they only provide security when used in combination with [TLS](/solutions/observability/apm/apm-agent-tls-communication.md). :::: 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: -1. Make sure [TLS](apm-agent-tls-communication.md) is enabled +1. Make sure [TLS](/solutions/observability/apm/apm-agent-tls-communication.md) is enabled 2. [Create a secret token](#apm-create-secret-token) 3. [Configure the secret token in your APM agents](#apm-configure-secret-token) diff --git a/solutions/observability/apps/secrets-keystore-for-secure-settings.md b/solutions/observability/apm/secrets-keystore-for-secure-settings.md similarity index 94% rename from solutions/observability/apps/secrets-keystore-for-secure-settings.md rename to solutions/observability/apm/secrets-keystore-for-secure-settings.md index d9445b30d..8c05dfe62 100644 --- a/solutions/observability/apps/secrets-keystore-for-secure-settings.md +++ b/solutions/observability/apm/secrets-keystore-for-secure-settings.md @@ -31,7 +31,7 @@ When APM Server unpacks the configuration, it resolves keys before resolving env Notice that the APM Server keystore differs from the {{es}} keystore. Whereas the {{es}} keystore lets you store `elasticsearch.yml` values by 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 [command reference](apm-server-command-reference.md#apm-keystore-command) for the full command syntax, including optional flags. +To create and manage keys, use the `keystore` command. See the [command reference](/solutions/observability/apm/apm-server-command-reference.md#apm-keystore-command) for the full command syntax, including optional flags. ::::{note} The `keystore` command must be run by the same user who will run APM Server. diff --git a/solutions/observability/apps/secure-access-to-applications-ui.md b/solutions/observability/apm/secure-access-to-applications-ui.md similarity index 75% rename from solutions/observability/apps/secure-access-to-applications-ui.md rename to solutions/observability/apm/secure-access-to-applications-ui.md index b875bd680..fac801715 100644 --- a/solutions/observability/apps/secure-access-to-applications-ui.md +++ b/solutions/observability/apm/secure-access-to-applications-ui.md @@ -18,8 +18,8 @@ Use role-based access control to grant users access to secured resources. The ro Select your use-case to get started: -* [Create an APM reader user](apm-reader-user.md) -* [Create an annotation user](applications-ui-annotation-user.md) -* [Create a central config user](applications-ui-central-config-user.md) -* [Create a storage explorer user](applications-ui-storage-explorer-user.md) -* [Create an API user](applications-ui-api-user.md) +* [Create an APM reader user](/solutions/observability/apm/ui-user-reader.md) +* [Create an annotation user](/solutions/observability/apm/ui-user-annotation.md) +* [Create a central config user](/solutions/observability/apm/ui-user-central-config.md) +* [Create a storage explorer user](/solutions/observability/apm/ui-user-storage-explorer.md) +* [Create an API user](/solutions/observability/apm/ui-user-api.md) diff --git a/solutions/observability/apps/secure-communication-with-apm-agents.md b/solutions/observability/apm/secure-communication-with-apm-agents.md similarity index 70% rename from solutions/observability/apps/secure-communication-with-apm-agents.md rename to solutions/observability/apm/secure-communication-with-apm-agents.md index ab525b055..09f9db847 100644 --- a/solutions/observability/apps/secure-communication-with-apm-agents.md +++ b/solutions/observability/apm/secure-communication-with-apm-agents.md @@ -10,11 +10,11 @@ applies_to: 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. -* [TLS encryption](apm-agent-tls-communication.md) -* [API key authentication](api-keys.md) -* [Secret token authentication](secret-token.md) +* [TLS encryption](/solutions/observability/apm/apm-agent-tls-communication.md) +* [API key authentication](/solutions/observability/apm/api-keys.md) +* [Secret token authentication](/solutions/observability/apm/secret-token.md) 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 [Anonymous authentication](anonymous-authentication.md) for more information. +In some use-cases, like when an {{apm-agent}} is running on the client side, authentication is not possible. See [Anonymous authentication](/solutions/observability/apm/anonymous-authentication.md) for more information. diff --git a/solutions/observability/apps/secure-communication-with-elastic-stack.md b/solutions/observability/apm/secure-communication-with-elastic-stack.md similarity index 64% rename from solutions/observability/apps/secure-communication-with-elastic-stack.md rename to solutions/observability/apm/secure-communication-with-elastic-stack.md index 587bf885a..d0e5d8995 100644 --- a/solutions/observability/apps/secure-communication-with-elastic-stack.md +++ b/solutions/observability/apm/secure-communication-with-elastic-stack.md @@ -17,24 +17,24 @@ Use role-based access control or API keys to grant APM Server users access to se Manage access on a feature-by-feature basis by creating several custom feature-related roles and assigning one or more of these roles to each APM Server user based on which features they need to access. -[**Read more in Use feature roles →**](create-assign-feature-roles-to-apm-server-users.md) +[**Read more in Use feature roles →**](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md) ## API keys [apm-secure-comms-stack-api-keys] Instead of using usernames and passwords, you can use API keys to grant access to Elasticsearch resources. You can set API keys to expire at a certain time, and you can explicitly invalidate them. -[**Read more in Grant access using API keys →**](grant-access-using-api-keys.md) +[**Read more in Grant access using API keys →**](/solutions/observability/apm/grant-access-using-api-keys.md) ## More resources [_more_resources] After privileged users have been created, use authentication to connect to a secured Elastic cluster. -* [Secure communication with {{es}}](configure-elasticsearch-output.md#apm-securing-communication-elasticsearch) -* [Secure communication with {{ls}}](configure-logstash-output.md#apm-configuring-ssl-logstash) +* [Secure communication with {{es}}](/solutions/observability/apm/configure-elasticsearch-output.md#apm-securing-communication-elasticsearch) +* [Secure communication with {{ls}}](/solutions/observability/apm/configure-logstash-output.md#apm-configuring-ssl-logstash) -For secure communication between APM Server and APM Agents, see [Secure communication with APM agents](secure-communication-with-apm-agents.md). +For secure communication between APM Server and APM Agents, see [Secure communication with APM agents](/solutions/observability/apm/secure-communication-with-apm-agents.md). -A reference of all available [SSL configuration settings](ssltls-settings.md) is also available. +A reference of all available [SSL configuration settings](/solutions/observability/apm/ssl-tls-settings.md) is also available. ::::{important} :name: apm-security-overview diff --git a/solutions/observability/apm/secure-data.md b/solutions/observability/apm/secure-data.md new file mode 100644 index 000000000..8df3077d2 --- /dev/null +++ b/solutions/observability/apm/secure-data.md @@ -0,0 +1,58 @@ +--- +navigation_title: "Secure data" +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-data-security.html +applies_to: + stack: + serverless: +--- + +# Application data security [apm-data-security] + +When setting up Elastic APM, it’s essential to review all captured data carefully to ensure it doesn’t contain sensitive information like passwords, credit card numbers, or health data. In addition, you may wish to filter out other identifiable information, like IP addresses, user agent information, 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: + +* [Built-in data filters](#apm-built-in-data-filters) +* [Custom filters](#apm-custom-data-filters) + +In addition to utilizing filters, you should regularly review the [sensitive fields](#apm-sensitive-fields) table to ensure sensitive data is not being ingested. If it is, it’s possible to remove or redact it. See [Delete sensitive data](/solutions/observability/apm/delete-sensitive-data.md) for more information. + +## Built-in data filters [apm-built-in-data-filters] + +Built-in data filters allow you to filter or turn off ingestion of the following types of data: + +| Data type | Common sensitive data | +| --- | --- | +| [HTTP headers](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-header) | Passwords, credit card numbers, authorization, etc. | +| [HTTP bodies](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-body) | Passwords, credit card numbers, etc. | +| [Personal data](/solutions/observability/apm/built-in-data-filters.md#apm-filters-personal-data) | Client IP address and user agent. | +| [Real user monitoring data](/solutions/observability/apm/built-in-data-filters.md#apm-filters-real-user-data) | URLs visited, click events, user browser errors, resources used, etc. | +| [Database statements](/solutions/observability/apm/built-in-data-filters.md#apm-filters-database-statements) | Sensitive user or business information | + +## Custom filters [apm-custom-data-filters] + +Custom filters allow you to filter or redact other types of APM data on ingestion: + +| | | +| --- | --- | +| [Ingest pipelines](/solutions/observability/apm/custom-filters.md#apm-filters-ingest-pipeline) | 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. | +| [{{apm-agent}} filters](/solutions/observability/apm/custom-filters.md#apm-filters-in-agent) | Not supported by all agents.Data is sanitized before leaving the instrumented service.Potential overhead implications on the instrumented service | + +## Sensitive fields [apm-sensitive-fields] + +You should review the following fields regularly to ensure sensitive data is not being captured: + +| Field | Description | Remedy | +| --- | --- | --- | +| `client.ip` | The client IP address, as forwarded by proxy. | [Personal data](/solutions/observability/apm/built-in-data-filters.md#apm-filters-personal-data) | +| `http.request.body.original` | The body of the monitored HTTP request. | [HTTP bodies](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-body) | +| `http.request.headers` | The canonical headers of the monitored HTTP request. | [HTTP headers](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-header) | +| `http.request.socket.remote_address` | The address of the last proxy or end-user (if no proxy). | [Custom filters](/solutions/observability/apm/custom-filters.md) | +| `http.response.headers` | The canonical headers of the monitored HTTP response. | [HTTP headers](/solutions/observability/apm/built-in-data-filters.md#apm-filters-http-header) | +| `process.args` | Process arguments. | [Database statements](/solutions/observability/apm/built-in-data-filters.md#apm-filters-database-statements) | +| `span.db.statement` | Database statement. | [Database statements](/solutions/observability/apm/built-in-data-filters.md#apm-filters-database-statements) | +| `stacktrace.vars` | A flat mapping of local variables captured in the stack frame | [Custom filters](/solutions/observability/apm/custom-filters.md) | +| `url.query` | The query string of the request, e.g. `?pass=hunter2`. | [Custom filters](/solutions/observability/apm/custom-filters.md) | +| `user.*` | Logged-in user information. | [Custom filters](/solutions/observability/apm/custom-filters.md) | +| `user_agent.*` | Device and version making the network request. | [Personal data](/solutions/observability/apm/built-in-data-filters.md#apm-filters-personal-data) | \ No newline at end of file diff --git a/solutions/observability/apps/service-map.md b/solutions/observability/apm/service-map.md similarity index 83% rename from solutions/observability/apps/service-map.md rename to solutions/observability/apm/service-map.md index 7c7da4829..4905b851f 100644 --- a/solutions/observability/apps/service-map.md +++ b/solutions/observability/apm/service-map.md @@ -18,13 +18,13 @@ We currently surface two types of service maps: ## How do service maps work? [service-maps-how] -Service Maps rely on distributed traces to draw connections between services. As [distributed tracing](/solutions/observability/apps/traces.md) is enabled out-of-the-box for supported technologies, so are service maps. However, if a service isn’t instrumented, or a `traceparent` header isn’t being propagated to it, distributed tracing will not work, and the connection will not be drawn on the map. +Service Maps rely on distributed traces to draw connections between services. As [distributed tracing](/solutions/observability/apm/traces.md) is enabled out-of-the-box for supported technologies, so are service maps. However, if a service isn’t instrumented, or a `traceparent` header isn’t being propagated to it, distributed tracing will not work, and the connection will not be drawn on the map. ## Visualize your architecture [visualize-your-architecture] Select the **Service Map** tab to get started. By default, all instrumented services and connections are shown. Whether you’re onboarding a new engineer, or just trying to grasp the big picture, drag things around, zoom in and out, and begin to visualize how your services are connected. -Customize what the service map displays using either the query bar or the environment selector. The query bar enables you to use [advanced queries](/solutions/observability/apps/use-advanced-queries-on-application-data.md) to customize the service map based on your needs. The environment selector allows you to narrow displayed results to a specific environment. This can be useful if you have two or more services, in separate environments, but with the same name. Use the environment drop-down to only see the data you’re interested in, like `dev` or `production`. +Customize what the service map displays using either the query bar or the environment selector. The query bar enables you to use [advanced queries](/solutions/observability/apm/advanced-queries.md) to customize the service map based on your needs. The environment selector allows you to narrow displayed results to a specific environment. This can be useful if you have two or more services, in separate environments, but with the same name. Use the environment drop-down to only see the data you’re interested in, like `dev` or `production`. If there’s a specific service that interests you, select that service to highlight its connections. Click **Focus map** to refocus the map on the selected service and lock the connection highlighting. Click the **Transactions** tab to jump to the Transaction overview for the selected service. You can also use the tabs at the top of the page to easily jump to the **Errors** or **Metrics** overview. @@ -50,7 +50,7 @@ You can create machine learning jobs to calculate anomaly scores on APM transact If an anomaly has been detected, click **View anomalies** to view the anomaly detection metric viewer. This time series analysis will display additional details on the severity and time of the detected anomalies. -To learn how to create a machine learning job, refer to [Integrate with machine learning](/solutions/observability/apps/integrate-with-machine-learning.md). +To learn how to create a machine learning job, refer to [Integrate with machine learning](/solutions/observability/apm/machine-learning.md). ## Legend [service-maps-legend] diff --git a/solutions/observability/apps/service-overview.md b/solutions/observability/apm/service-overview.md similarity index 92% rename from solutions/observability/apps/service-overview.md rename to solutions/observability/apm/service-overview.md index a80002005..85958f43e 100644 --- a/solutions/observability/apps/service-overview.md +++ b/solutions/observability/apm/service-overview.md @@ -9,7 +9,7 @@ applies_to: # Service overview [apm-service-overview] -Selecting a non-mobile [**service**](/solutions/observability/apps/services.md) brings you to the **Service overview**. The **Service overview** contains a wide variety of charts and tables that provide high-level visibility into how a service is performing across your infrastructure: +Selecting a non-mobile [**service**](/solutions/observability/apm/services.md) brings you to the **Service overview**. The **Service overview** contains a wide variety of charts and tables that provide high-level visibility into how a service is performing across your infrastructure: * Service details like service version, runtime version, framework, and APM agent name and version * Container and orchestration information @@ -35,7 +35,7 @@ Select the **Comparison** box to apply a time-based or expected bounds compariso | > 24 hours and ≤ 7 days | One week | | > 7 days | An identical amount of time immediately before the selected time range | -The expected bounds comparison is powered by [machine learning](/solutions/observability/apps/integrate-with-machine-learning.md) and requires anomaly detection to be enabled. +The expected bounds comparison is powered by [machine learning](/solutions/observability/apm/machine-learning.md) and requires anomaly detection to be enabled. ## Latency [service-latency] @@ -52,7 +52,7 @@ The **Throughput** chart visualizes the average number of transactions per minut The **Transactions** table displays a list of *transaction groups* for the selected service and includes the latency, traffic, error rate, and the impact for each transaction. Transactions that share the same name are grouped, and only one entry is displayed for each group. -By default, transaction groups are sorted by *Impact* to show the most used and slowest endpoints in your service. If there is a particular endpoint you are interested in, click **View transactions** to view a list of similar transactions on the [transactions overview](/solutions/observability/apps/transactions-2.md) page. +By default, transaction groups are sorted by *Impact* to show the most used and slowest endpoints in your service. If there is a particular endpoint you are interested in, click **View transactions** to view a list of similar transactions on the [transactions overview](/solutions/observability/apm/transactions-ui.md) page. ## Failed transaction rate and errors [service-error-rates] @@ -78,7 +78,7 @@ The **Errors** table provides a high-level view of each error message when it fi The **Time spent by span type** chart visualizes each span type’s average duration and helps you determine which spans could be slowing down transactions. The "app" label displayed under the chart indicates that something was happening within the application. This could signal that the APM agent does not have auto-instrumentation for whatever was happening during that time or that the time was spent in the application code and not in database or external requests. -The **Dependencies** table displays a list of downstream services or external connections relevant to the service at the selected time range. The table displays latency, throughput, failed transaction rate, and the impact of each dependency. By default, dependencies are sorted by *Impact* to show the most used and the slowest dependency. If there is a particular dependency you are interested in, click **[View dependencies](/solutions/observability/apps/dependencies.md)** to learn more about it. +The **Dependencies** table displays a list of downstream services or external connections relevant to the service at the selected time range. The table displays latency, throughput, failed transaction rate, and the impact of each dependency. By default, dependencies are sorted by *Impact* to show the most used and the slowest dependency. If there is a particular dependency you are interested in, click **[View dependencies](/solutions/observability/apm/dependencies.md)** to learn more about it. % Stateful only for following note? @@ -90,7 +90,7 @@ The **Dependencies** table displays a list of downstream services or external co The cold start rate chart is specific to serverless services, and displays the percentage of requests that trigger a cold start of a serverless function. A cold start occurs when a serverless function has not been used for a certain period of time. Analyzing the cold start rate can be useful for deciding how much memory to allocate to a function, or when to remove a large dependency. -The cold start rate chart is currently supported for [AWS Lambda](/solutions/observability/apps/observe-lambda-functions.md#apm-lambda-cold-start-info) functions and Azure functions. +The cold start rate chart is currently supported for [AWS Lambda](/solutions/observability/apm/observe-lambda-functions.md#apm-lambda-cold-start-info) functions and Azure functions. ## Instances [service-instances] diff --git a/solutions/observability/apps/services.md b/solutions/observability/apm/services.md similarity index 92% rename from solutions/observability/apps/services.md rename to solutions/observability/apm/services.md index cd704add2..325d22545 100644 --- a/solutions/observability/apps/services.md +++ b/solutions/observability/apm/services.md @@ -11,9 +11,9 @@ applies_to: The **Services** inventory provides a quick, high-level overview of the health and general performance of all instrumented services. -To help surface potential issues, services are sorted by their health status: **critical** → **warning** → **healthy** → **unknown**. Health status is powered by [machine learning](/solutions/observability/apps/integrate-with-machine-learning.md) and requires anomaly detection to be enabled. +To help surface potential issues, services are sorted by their health status: **critical** → **warning** → **healthy** → **unknown**. Health status is powered by [machine learning](/solutions/observability/apm/machine-learning.md) and requires anomaly detection to be enabled. -In addition to health status, active alerts for each service are prominently displayed in the service inventory table. Selecting an active alert badge brings you to the [**Alerts**](/solutions/observability/apps/create-apm-rules-alerts.md) tab where you can learn more about the active alert and take action. +In addition to health status, active alerts for each service are prominently displayed in the service inventory table. Selecting an active alert badge brings you to the [**Alerts**](/solutions/observability/apm/create-apm-rules-alerts.md) tab where you can learn more about the active alert and take action. :::{image} /solutions/images/observability-apm-services-overview.png :alt: Example view of services table the Applications UI in Kibana diff --git a/solutions/observability/apps/spans.md b/solutions/observability/apm/spans.md similarity index 99% rename from solutions/observability/apps/spans.md rename to solutions/observability/apm/spans.md index 34cba0a40..03cb98f02 100644 --- a/solutions/observability/apps/spans.md +++ b/solutions/observability/apm/spans.md @@ -20,7 +20,7 @@ Agents automatically instrument a variety of libraries to capture these spans fr Among other things, spans can contain: -* A `transaction.id` attribute that refers to its parent [transaction](/solutions/observability/apps/transactions.md). +* A `transaction.id` attribute that refers to its parent [transaction](/solutions/observability/apm/transactions.md). * 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 alignment](https://docs.google.com/spreadsheets/d/1SmWeX5AeqUcayrArUauS_CxGgsjwRgMYH4ZY8yQsMhQ/edit#gid=644582948) sheet for span name patterns and examples by {{apm-agent}}. In addition, some APM agents test against a public [span type/subtype spec](https://github.com/elastic/apm/blob/main/tests/agents/json-specs/span_types.json). @@ -57,7 +57,7 @@ Spans are stored with transactions in the following data streams: * Application traces: `traces-apm-` * RUM and iOS agent application traces: `traces-apm.rum-` -See [Data streams](/solutions/observability/apps/data-streams.md) to learn more. +See [Data streams](/solutions/observability/apm/data-streams.md) to learn more. ## Example span document [_example_span_document] diff --git a/solutions/observability/apps/ssltls-input-settings.md b/solutions/observability/apm/ssl-tls-input-settings.md similarity index 98% rename from solutions/observability/apps/ssltls-input-settings.md rename to solutions/observability/apm/ssl-tls-input-settings.md index ea734d4ef..b679c2764 100644 --- a/solutions/observability/apps/ssltls-input-settings.md +++ b/solutions/observability/apm/ssl-tls-input-settings.md @@ -14,7 +14,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 [{{apm-agent}} TLS communication](apm-agent-tls-communication.md) to learn more. +These settings apply to SSL/TLS communication between the APM Server and APM Agents. See [{{apm-agent}} TLS communication](/solutions/observability/apm/apm-agent-tls-communication.md) to learn more. :::::::{tab-set} diff --git a/solutions/observability/apps/ssltls-output-settings.md b/solutions/observability/apm/ssl-tls-output-settings.md similarity index 100% rename from solutions/observability/apps/ssltls-output-settings.md rename to solutions/observability/apm/ssl-tls-output-settings.md diff --git a/solutions/observability/apm/ssl-tls-settings.md b/solutions/observability/apm/ssl-tls-settings.md new file mode 100644 index 000000000..cd281972a --- /dev/null +++ b/solutions/observability/apm/ssl-tls-settings.md @@ -0,0 +1,15 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/apm-configuration-ssl-landing.html +applies_to: + stack: all +--- + +# SSL/TLS settings [apm-configuration-ssl-landing] + +SSL/TLS is available for: + +* [APM Server **inputs**](/solutions/observability/apm/ssl-tls-input-settings.md) (APM Agents) +* [APM Server **outputs**](/solutions/observability/apm/ssl-tls-output-settings.md) that support SSL, like {{es}}, {{ls}}, or Kafka. + +Additional information on getting started with SSL/TLS is available in [Use APM securely](/solutions/observability/apm/use-apm-securely.md). diff --git a/solutions/observability/apps/storage-explorer.md b/solutions/observability/apm/storage-explorer.md similarity index 80% rename from solutions/observability/apps/storage-explorer.md rename to solutions/observability/apm/storage-explorer.md index f50127f53..96bbdbd4a 100644 --- a/solutions/observability/apps/storage-explorer.md +++ b/solutions/observability/apm/storage-explorer.md @@ -16,7 +16,7 @@ Analyze your APM data and manage costs with **storage explorer**. For example, a ## Index lifecycle phases [_index_lifecycle_phases] -A default [index lifecycle policy](/solutions/observability/apps/index-lifecycle-management.md) is applied to each APM data stream, but can be customized depending on your business needs. Use the **Index lifecycle phase** dropdown to visualize and analyze your storage by phase. +A default [index lifecycle policy](/solutions/observability/apm/index-lifecycle-management.md) is applied to each APM data stream, but can be customized depending on your business needs. Use the **Index lifecycle phase** dropdown to visualize and analyze your storage by phase. Customizing the default APM index lifecycle policies can save money by specifying things like: @@ -24,7 +24,7 @@ Customizing the default APM index lifecycle policies can save money by specifyin * The point at which availability is not as critical and the number of replicas can be reduced. * When the index can be safely deleted. -See [Index lifecycle management](/solutions/observability/apps/index-lifecycle-management.md) to learn more about customizing the default APM index lifecycle policies. +See [Index lifecycle management](/solutions/observability/apm/index-lifecycle-management.md) to learn more about customizing the default APM index lifecycle policies. ## Service size chart [_service_size_chart] @@ -48,11 +48,11 @@ As you explore your service statistics, you might want to take action to reduce ### Reduce the number of transactions [_reduce_the_number_of_transactions] -To reduce the number of transactions a service generates, configure a more aggressive [transaction sampling policy](/solutions/observability/apps/transaction-sampling.md). Transaction sampling lowers the amount of data ingested without negatively impacting the usefulness of your data. +To reduce the number of transactions a service generates, configure a more aggressive [transaction sampling policy](/solutions/observability/apm/transaction-sampling.md). Transaction sampling lowers the amount of data ingested without negatively impacting the usefulness of your data. ### Reduce the number of spans [_reduce_the_number_of_spans] -To reduce the number of spans a service generates, enable [span compression](/solutions/observability/apps/spans.md#apm-spans-span-compression). Span compression saves on data and transfer costs by compressing multiple, similar spans into a single span. +To reduce the number of spans a service generates, enable [span compression](/solutions/observability/apm/spans.md#apm-spans-span-compression). Span compression saves on data and transfer costs by compressing multiple, similar spans into a single span. ### Reduce the number of metrics [_reduce_the_number_of_metrics] @@ -64,7 +64,7 @@ To reduce the number of errors a service generate, work with your developers to ## Privileges [_privileges] -Storage Explorer requires expanded privileges to view. See [Create a storage explorer user](applications-ui-storage-explorer-user.md) for more information. +Storage Explorer requires expanded privileges to view. See [Create a storage explorer user](/solutions/observability/apm/ui-user-storage-explorer.md) for more information. ## Limitations [_limitations_4] diff --git a/solutions/observability/apps/storage-sizing-guide.md b/solutions/observability/apm/storage-sizing-guide.md similarity index 87% rename from solutions/observability/apps/storage-sizing-guide.md rename to solutions/observability/apm/storage-sizing-guide.md index 19875d1c5..8c76da75b 100644 --- a/solutions/observability/apps/storage-sizing-guide.md +++ b/solutions/observability/apm/storage-sizing-guide.md @@ -9,8 +9,8 @@ applies_to: APM processing and storage costs are largely dominated by transactions, spans, and stack frames. -* [**Transactions**](transactions.md) describe an event captured by an Elastic {{apm-agent}} instrumenting a service. They are the highest level of work being measuring within a service. -* [**Spans**](spans.md) 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. +* [**Transactions**](/solutions/observability/apm/transactions.md) describe an event captured by an Elastic {{apm-agent}} instrumenting a service. They are the highest level of work being measuring within a service. +* [**Spans**](/solutions/observability/apm/spans.md) 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. Stack frames can heavily influence the size of a span. ## Typical transactions [_typical_transactions] diff --git a/solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md b/solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md similarity index 95% rename from solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md rename to solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md index 8e9208805..4240e5559 100644 --- a/solutions/observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md +++ b/solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md @@ -39,7 +39,7 @@ With a Superuser account, complete the following steps: ## Configure the APM integration [apm-integration-upgrade-ess-3] -You can now update settings that were removed during the upgrade. See [Configure APM Server](configure-apm-server.md) for a reference of all available settings. +You can now update settings that were removed during the upgrade. See [Configure APM Server](/solutions/observability/apm/configure-apm-server.md) for a reference of all available settings. In {{kib}}, navigate to **Management** > **Fleet**. Select the **Elastic Cloud Agent Policy**. Next to the **Elastic APM** integration, select **Actions** > **Edit integration**. diff --git a/solutions/observability/apps/switch-self-installation-to-apm-integration.md b/solutions/observability/apm/switch-self-installation-to-apm-integration.md similarity index 81% rename from solutions/observability/apps/switch-self-installation-to-apm-integration.md rename to solutions/observability/apm/switch-self-installation-to-apm-integration.md index a31e23bad..7a1d999ed 100644 --- a/solutions/observability/apps/switch-self-installation-to-apm-integration.md +++ b/solutions/observability/apm/switch-self-installation-to-apm-integration.md @@ -44,10 +44,10 @@ The {{fleet}}-managed {{agent}} will run the Elastic APM integration on your edg The APM integration receives performance data from your APM agents, validates and processes it, and then transforms the data into {{es}} documents. -To add the APM integration, see [Step 2: Add and configure the APM integration](fleet-managed-apm-server.md#add-apm-integration). Only complete the linked step (not the entire quick start guide). If you’re adding the APM integration to a {{fleet}}-managed {{agent}}, you can use the default policy. If you’re adding the APM integration to the {{fleet-server}}, use the policy that the {{fleet-server}} is running on. +To add the APM integration, see [Step 2: Add and configure the APM integration](/solutions/observability/apm/get-started-fleet-managed-apm-server.md#add-apm-integration). Only complete the linked step (not the entire quick start guide). If you’re adding the APM integration to a {{fleet}}-managed {{agent}}, you can use the default policy. 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 [Configure APM Server](configure-apm-server.md) 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. +You’ll configure the APM integration in this step. See [Configure APM Server](/solutions/observability/apm/configure-apm-server.md) 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. :::: ## Stop the APM Server [apm-integration-upgrade-5] diff --git a/solutions/observability/apps/switch-to-elastic-apm-integration.md b/solutions/observability/apm/switch-to-elastic-apm-integration.md similarity index 91% rename from solutions/observability/apps/switch-to-elastic-apm-integration.md rename to solutions/observability/apm/switch-to-elastic-apm-integration.md index f732d5173..b0406e291 100644 --- a/solutions/observability/apps/switch-to-elastic-apm-integration.md +++ b/solutions/observability/apm/switch-to-elastic-apm-integration.md @@ -59,5 +59,5 @@ There are some limitations to be aware of: Select a guide below to get started. -* [Switch a self-installation](switch-self-installation-to-apm-integration.md) -* [Switch an {{ecloud}} cluster](switch-an-elastic-cloud-cluster-to-apm-integration.md) +* [Switch a self-installation](/solutions/observability/apm/switch-self-installation-to-apm-integration.md) +* [Switch an {{ecloud}} cluster](/solutions/observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md) diff --git a/solutions/observability/apps/tail-based-sampling.md b/solutions/observability/apm/tail-based-sampling.md similarity index 92% rename from solutions/observability/apps/tail-based-sampling.md rename to solutions/observability/apm/tail-based-sampling.md index e0a7e4258..a7877ae64 100644 --- a/solutions/observability/apps/tail-based-sampling.md +++ b/solutions/observability/apm/tail-based-sampling.md @@ -10,7 +10,7 @@ applies_to: ::::{note} ![supported deployment methods](/solutions/images/observability-binary-yes-fm-yes.svg "") -Most options on this page are supported by all APM Server deployment methods when writing to {{es}}. If you are using a different [output](configure-output.md), tail-based sampling is *not* supported. +Most options on this page are supported by all APM Server deployment methods when writing to {{es}}. If you are using a different [output](/solutions/observability/apm/configure-output.md), tail-based sampling is *not* supported. :::: @@ -48,7 +48,7 @@ Configure and customize Fleet-managed APM settings directly in {{kib}}: ## Top-level tail-based sampling settings [apm-configuration-tbs] -See [Tail-based sampling](transaction-sampling.md#apm-tail-based-sampling) to learn more. +See [Tail-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) to learn more. ### Enable tail-based sampling [sampling-tail-enabled-ref] @@ -98,7 +98,7 @@ Default: `0GB`. (text) ## Policy-level tail-based sampling settings [apm-configuration-tbs-policy] -See [Tail-based sampling](transaction-sampling.md#apm-tail-based-sampling) to learn more. +See [Tail-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) to learn more. ### **`sample_rate`** [sampling-tail-sample-rate-ref] @@ -124,7 +124,7 @@ The service environment for events to match a policy. (string) ## Monitoring tail-based sampling [sampling-tail-monitoring-ref] -APM Server produces metrics to monitor the performance and estimate the workload being processed by tail-based sampling. In order to use these metrics, you need to [enable monitoring for the APM Server](/solutions/observability/apps/monitor-apm-server.md). The following metrics are produced by the tail-based sampler (note that the metrics might have a different prefix, for example `beat.stats` for ECH deployments, based on how the APM Server is running): +APM Server produces metrics to monitor the performance and estimate the workload being processed by tail-based sampling. In order to use these metrics, you need to [enable monitoring for the APM Server](/solutions/observability/apm/monitor-apm-server.md). The following metrics are produced by the tail-based sampler (note that the metrics might have a different prefix, for example `beat.stats` for ECH deployments, based on how the APM Server is running): ### `apm-server.sampling.tail.dynamic_service_groups` [sampling-tail-monitoring-dynamic-service-group-ref] diff --git a/solutions/observability/apps/trace-sample-timeline.md b/solutions/observability/apm/trace-sample-timeline.md similarity index 89% rename from solutions/observability/apps/trace-sample-timeline.md rename to solutions/observability/apm/trace-sample-timeline.md index e85e773fb..b70c9d2be 100644 --- a/solutions/observability/apps/trace-sample-timeline.md +++ b/solutions/observability/apm/trace-sample-timeline.md @@ -19,7 +19,7 @@ The trace sample timeline visualization is a high-level view of what your applic View a span in detail by clicking on it in the timeline waterfall. For example, when you click on an SQL Select database query, the information displayed includes the actual SQL that was executed, how long it took, and the percentage of the trace’s total time. You also get a stack trace, which shows the SQL query in your code. Finally, APM knows which files are your code and which are just modules or libraries that you’ve installed. These library frames will be minimized by default in order to show you the most relevant stack trace. ::::{tip} -A [span](/solutions/observability/apps/spans.md) is the duration of a single event. Spans are automatically captured by APM agents, and you can also define custom spans. Each span has a type and is defined by a different color in the timeline/waterfall visualization. +A [span](/solutions/observability/apm/spans.md) is the duration of a single event. Spans are automatically captured by APM agents, and you can also define custom spans. Each span has a type and is defined by a different color in the timeline/waterfall visualization. :::: :::{image} /solutions/images/observability-apm-span-detail.png @@ -35,9 +35,9 @@ The trace sample timeline features an **Investigate** button which provides a qu * logs and metrics for the selected host * trace logs for the selected `trace.id` * uptime status of the selected domain -* the [service map](/solutions/observability/apps/service-map.md) filtered by the selected trace +* the [service map](/solutions/observability/apm/service-map.md) filtered by the selected trace * the selected transaction in **Discover** -* your [custom links](/solutions/observability/apps/create-custom-links.md) +* your [custom links](/solutions/observability/apm/create-custom-links.md) ## Distributed tracing [distributed-tracing] diff --git a/solutions/observability/apps/traces-2.md b/solutions/observability/apm/traces-ui.md similarity index 84% rename from solutions/observability/apps/traces-2.md rename to solutions/observability/apm/traces-ui.md index d00ce74db..a407d925e 100644 --- a/solutions/observability/apps/traces-2.md +++ b/solutions/observability/apm/traces-ui.md @@ -10,12 +10,12 @@ applies_to: # Traces [apm-traces] ::::{tip} -Traces link together related transactions to show an end-to-end performance of how a request was served and which services were part of it. In addition to the Traces overview, you can view your application traces in the [trace sample timeline waterfall](/solutions/observability/apps/trace-sample-timeline.md). +Traces link together related transactions to show an end-to-end performance of how a request was served and which services were part of it. In addition to the Traces overview, you can view your application traces in the [trace sample timeline waterfall](/solutions/observability/apm/trace-sample-timeline.md). :::: -**Traces** displays your application’s entry (root) transactions. Transactions with the same name are grouped together and only shown once in this table. If you’re using [distributed tracing](/solutions/observability/apps/trace-sample-timeline.md#distributed-tracing), this view is key to finding the critical paths within your application. +**Traces** displays your application’s entry (root) transactions. Transactions with the same name are grouped together and only shown once in this table. If you’re using [distributed tracing](/solutions/observability/apm/trace-sample-timeline.md#distributed-tracing), this view is key to finding the critical paths within your application. -By default, transactions are sorted by *Impact*. Impact helps show the most used and slowest endpoints in your service — in other words, it’s the collective amount of pain a specific endpoint is causing your users. If there’s a particular endpoint you’re worried about, select it to view its [transaction details](/solutions/observability/apps/transactions-2.md#transaction-details). +By default, transactions are sorted by *Impact*. Impact helps show the most used and slowest endpoints in your service — in other words, it’s the collective amount of pain a specific endpoint is causing your users. If there’s a particular endpoint you’re worried about, select it to view its [transaction details](/solutions/observability/apm/transactions-ui.md#transaction-details). You can also use queries to filter and search the transactions shown on this page. Note that only properties available on root transactions are searchable. For example, you can’t search for `label.tier: 'high'`, as that field is only available on non-root transactions. @@ -32,7 +32,7 @@ This functionality is in technical preview and may be changed or removed in a fu **Trace explorer** is an experimental top-level search tool that allows you to query your traces using [{{kib}} Query Language (KQL)](/explore-analyze/query-filter/languages/kql.md) or [Event Query Language (EQL)](/explore-analyze/query-filter/languages/eql.md). -Curate your own custom queries, or use the [**Service Map**](/solutions/observability/apps/service-map.md) to find and select edges to automatically generate queries based on your selection: +Curate your own custom queries, or use the [**Service Map**](/solutions/observability/apm/service-map.md) to find and select edges to automatically generate queries based on your selection: :::{image} /solutions/images/observability-trace-explorer.png :alt: Trace explorer diff --git a/solutions/observability/apps/traces.md b/solutions/observability/apm/traces.md similarity index 98% rename from solutions/observability/apps/traces.md rename to solutions/observability/apm/traces.md index 69a4e2b11..516c7ac0f 100644 --- a/solutions/observability/apps/traces.md +++ b/solutions/observability/apm/traces.md @@ -9,7 +9,7 @@ applies_to: # Traces [apm-data-model-traces] -A trace is a group of [transactions](/solutions/observability/apps/transactions.md) and [spans](/solutions/observability/apps/spans.md) with a common root. Each trace tracks the entirety of a single request. It describes the individual operations and their causality that ensue from a single logical operation. +A trace is a group of [transactions](/solutions/observability/apm/transactions.md) and [spans](/solutions/observability/apm/spans.md) with a common root. Each trace tracks the entirety of a single request. It describes the individual operations and their causality that ensue from a single logical operation. ## Distributed tracing [apm-distributed-tracing] diff --git a/solutions/observability/apps/track-deployments-with-annotations.md b/solutions/observability/apm/track-deployments-with-annotations.md similarity index 100% rename from solutions/observability/apps/track-deployments-with-annotations.md rename to solutions/observability/apm/track-deployments-with-annotations.md diff --git a/solutions/observability/apps/transaction-sampling.md b/solutions/observability/apm/transaction-sampling.md similarity index 91% rename from solutions/observability/apps/transaction-sampling.md rename to solutions/observability/apm/transaction-sampling.md index 9b3e25cf8..1eefad0e1 100644 --- a/solutions/observability/apps/transaction-sampling.md +++ b/solutions/observability/apm/transaction-sampling.md @@ -12,14 +12,14 @@ applies_to: :::{include} _snippets/apm-server-vs-mis.md ::: -[Distributed tracing](/solutions/observability/apps/traces.md) 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 — all while still making it easy to find anomalous patterns in your applications, detect outages, track errors, and lower mean time to recovery (MTTR). +[Distributed tracing](/solutions/observability/apm/traces.md) 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 — all while still making it easy to find anomalous patterns in your applications, detect outages, track errors, and lower mean time to recovery (MTTR). Elastic APM supports two types of sampling: % Stateful only for Tail-based sampling -* [Head-based sampling](/solutions/observability/apps/transaction-sampling.md#apm-head-based-sampling) -* [Tail-based sampling](/solutions/observability/apps/transaction-sampling.md#apm-tail-based-sampling) +* [Head-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-head-based-sampling) +* [Tail-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling) ## Head-based sampling [apm-head-based-sampling] @@ -34,7 +34,7 @@ For example, a sampling value of `.2` indicates a transaction sample rate of `20 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 [Configure head-based sampling](/solutions/observability/apps/transaction-sampling.md#apm-configure-head-based-sampling) to get started. +See [Configure head-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-configure-head-based-sampling) to get started. ### Distributed tracing [distributed-tracing-examples] @@ -62,7 +62,7 @@ In the example in *Figure 2*, `Service A` initiates four transactions and has a In addition to setting the sample rate, you can also specify which *trace continuation strategy* to use. There are three trace continuation strategies: `continue`, `restart`, and `restart_external`. -The **`continue`** trace continuation strategy is the default and will behave similar to the examples in the [Distributed tracing section](/solutions/observability/apps/transaction-sampling.md#distributed-tracing-examples). +The **`continue`** trace continuation strategy is the default and will behave similar to the examples in the [Distributed tracing section](/solutions/observability/apm/transaction-sampling.md#distributed-tracing-examples). Use the **`restart_external`** trace continuation strategy on an Elastic-monitored service to start a new trace if the previous service did not have a `traceparent` header with `es` vendor data. This can be helpful if a transaction includes an Elastic-monitored service that is receiving requests from an unmonitored service. @@ -111,7 +111,7 @@ serverless: unavailable ::::{note} **Support for tail-based sampling** -Tail-based sampling is only supported when writing to {{es}}. If you are using a different [output](/solutions/observability/apps/configure-output.md), tail-based sampling is *not* supported. +Tail-based sampling is only supported when writing to {{es}}. If you are using a different [output](/solutions/observability/apm/configure-output.md), tail-based sampling is *not* supported. :::: @@ -121,7 +121,7 @@ Unlike head-based sampling, each trace does not have an equal probability of bei A downside of tail-based sampling is that it results in more data being sent from APM agents to the APM Server. The APM Server will therefore use more CPU, memory, and disk than with head-based sampling. 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 [Configure tail-based sampling](/solutions/observability/apps/transaction-sampling.md#apm-configure-tail-based-sampling) to get started. +See [Configure tail-based sampling](/solutions/observability/apm/transaction-sampling.md#apm-configure-tail-based-sampling) to get started. ### Distributed tracing with tail-based sampling [_distributed_tracing_with_tail_based_sampling] @@ -137,7 +137,7 @@ In this example, `Service A` initiates four transactions. If our sample rate is 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 [OpenTelemetry tail-based sampling limitations](/solutions/observability/apps/limitations.md#apm-open-telemetry-tbs) when using [tailsamplingprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor), we recommend using APM Server tail-based sampling instead. +Due to [OpenTelemetry tail-based sampling limitations](/solutions/observability/apm/limitations.md#apm-open-telemetry-tbs) when using [tailsamplingprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor), we recommend using APM Server tail-based sampling instead. ### Tail-based sampling performance and requirements [_tail_based_sampling_performance_and_requirements] @@ -195,9 +195,9 @@ stack: serverless: ``` -A sampled trace retains all data associated with it. A non-sampled trace drops all [span](/solutions/observability/apps/spans.md) and [transaction](/solutions/observability/apps/transactions.md) data1. Regardless of the sampling decision, all traces retain [error](/solutions/observability/apps/errors.md) data. +A sampled trace retains all data associated with it. A non-sampled trace drops all [span](/solutions/observability/apm/spans.md) and [transaction](/solutions/observability/apm/transactions.md) data1. Regardless of the sampling decision, all traces retain [error](/solutions/observability/apm/errors.md) data. -Some visualizations in the {{apm-app}}, like latency, are powered by aggregated transaction and span [metrics](/solutions/observability/apps/metrics.md). The way these metrics are calculated depends on the sampling method used: +Some visualizations in the {{apm-app}}, like latency, are powered by aggregated transaction and span [metrics](/solutions/observability/apm/metrics.md). The way these metrics are calculated depends on the sampling method used: * **Head-based sampling**: Metrics are calculated based on all sampled events. * **Tail-based sampling**: Metrics are calculated based on all events, regardless of whether they are ultimately sampled or not. @@ -236,7 +236,7 @@ There are three ways to adjust the head-based sampling rate of your APM agents: ### Dynamic configuration [_dynamic_configuration] -The transaction sample rate can be changed dynamically (no redeployment necessary) on a per-service and per-environment basis with [{{apm-agent}} Configuration](/solutions/observability/apps/apm-agent-central-configuration.md) in {{kib}}. +The transaction sample rate can be changed dynamically (no redeployment necessary) on a per-service and per-environment basis with [{{apm-agent}} Configuration](/solutions/observability/apm/apm-agent-central-configuration.md) in {{kib}}. ### {{kib}} API configuration [_kib_api_configuration] @@ -261,7 +261,7 @@ stack: serverless: unavailable ``` -Enable tail-based sampling with [Enable tail-based sampling](/solutions/observability/apps/tail-based-sampling.md#sampling-tail-enabled-ref). When enabled, trace events are mapped to sampling policies. Each sampling policy must specify a sample rate, and can optionally specify other conditions. All of the policy conditions must be true for a trace event to match it. +Enable tail-based sampling with [Enable tail-based sampling](/solutions/observability/apm/tail-based-sampling.md#sampling-tail-enabled-ref). When enabled, trace events are mapped to sampling policies. Each sampling policy must specify a sample rate, and can optionally specify other conditions. All of the policy conditions must be true for a trace event to match it. Trace events are matched to policies in the order specified. Each policy list must conclude with a default policy — one that only specifies a sample rate. This default policy is used to catch remaining trace events that don’t match a stricter policy. Requiring this default policy ensures that traces are only dropped intentionally. If you enable tail-based sampling and send a transaction that does not match any of the policies, APM Server will reject the transaction with the error `no matching policy`. diff --git a/solutions/observability/apps/transactions-2.md b/solutions/observability/apm/transactions-ui.md similarity index 96% rename from solutions/observability/apps/transactions-2.md rename to solutions/observability/apm/transactions-ui.md index d1e38e68b..65dbcf994 100644 --- a/solutions/observability/apps/transactions-2.md +++ b/solutions/observability/apm/transactions-ui.md @@ -44,7 +44,7 @@ The **Latency**, **Throughput**, **Failed transaction rate**, **Time spent by sp It’s important to note that if you have asynchronous spans, the sum of all span times may exceed the duration of the transaction. **Cold start rate** - Only applicable to serverless transactions, this chart displays the percentage of requests that trigger a cold start of a serverless function. See [Cold starts](/solutions/observability/apps/observe-lambda-functions.md#apm-lambda-cold-start-info) for more information. + Only applicable to serverless transactions, this chart displays the percentage of requests that trigger a cold start of a serverless function. See [Cold starts](/solutions/observability/apm/observe-lambda-functions.md#apm-lambda-cold-start-info) for more information. ## Transactions table [transactions-table] @@ -55,7 +55,7 @@ The **Transactions** table displays a list of *transaction groups* for the selec :screenshot: ::: -By default, transaction groups are sorted by *Impact*. Impact helps show the most used and slowest endpoints in your service - in other words, it’s the collective amount of pain a specific endpoint is causing your users. If there’s a particular endpoint you’re worried about, you can click on it to view the [transaction details](/solutions/observability/apps/transactions-2.md#transaction-details). +By default, transaction groups are sorted by *Impact*. Impact helps show the most used and slowest endpoints in your service - in other words, it’s the collective amount of pain a specific endpoint is causing your users. If there’s a particular endpoint you’re worried about, you can click on it to view the [transaction details](/solutions/observability/apm/transactions-ui.md#transaction-details). ::::{important} If you only see one route in the Transactions table, or if you have transactions named "unknown route", it could be a symptom that the APM agent either wasn’t installed correctly or doesn’t support your framework. @@ -113,7 +113,7 @@ Each sample has a trace timeline waterfall that shows how a typical request in t ::: ::::{note} -More information on timeline waterfalls is available in [spans](/solutions/observability/apps/trace-sample-timeline.md). +More information on timeline waterfalls is available in [spans](/solutions/observability/apm/trace-sample-timeline.md). :::: @@ -154,7 +154,7 @@ To learn how to correlate your logs with your instrumented services, see [Stream ### Correlations [transaction-latency-correlations] -Correlations surface attributes of your data that are potentially correlated with high-latency or erroneous transactions. To learn more, see [Find transaction latency and failure correlations](/solutions/observability/apps/find-transaction-latency-failure-correlations.md). +Correlations surface attributes of your data that are potentially correlated with high-latency or erroneous transactions. To learn more, see [Find transaction latency and failure correlations](/solutions/observability/apm/find-transaction-latency-failure-correlations.md). :::{image} /solutions/images/observability-correlations-hover.png :alt: APM lattency correlations diff --git a/solutions/observability/apps/transactions.md b/solutions/observability/apm/transactions.md similarity index 90% rename from solutions/observability/apps/transactions.md rename to solutions/observability/apm/transactions.md index 00818dc3d..e2589ddc0 100644 --- a/solutions/observability/apps/transactions.md +++ b/solutions/observability/apm/transactions.md @@ -8,14 +8,14 @@ applies_to: # Transactions [apm-data-model-transactions] -**Transactions** are a special kind of [span](spans.md) 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: +**Transactions** are a special kind of [span](/solutions/observability/apm/spans.md) 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: * Request to your server * Batch job * Background job * Custom transaction type -Agents decide whether to sample transactions or not, and provide settings to control sampling behavior. If sampled, the [spans](spans.md) of a transaction are sent and stored as separate documents. Within one transaction there can be 0, 1, or many spans captured. +Agents decide whether to sample transactions or not, and provide settings to control sampling behavior. If sampled, the [spans](/solutions/observability/apm/spans.md) 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: @@ -27,13 +27,13 @@ A transaction contains: * Host - architecture, hostname, IP, etc. * Process - args, PID, PPID, etc. * URL - full, domain, port, query, etc. - * [User](metadata.md#apm-data-model-user) - (if supplied) email, ID, username, etc. + * [User](/solutions/observability/apm/metadata.md#apm-data-model-user) - (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](metadata.md). Metadata can be indexed - [`labels`](metadata.md#apm-data-model-labels), or not-indexed - [`custom`](metadata.md#apm-data-model-custom). +In addition, agents provide options for users to capture custom [metadata](/solutions/observability/apm/metadata.md). Metadata can be indexed - [`labels`](/solutions/observability/apm/metadata.md#apm-data-model-labels), or not-indexed - [`custom`](/solutions/observability/apm/metadata.md#apm-data-model-custom). -Transactions are grouped by their `type` and `name` in the Applications UI’s [Transaction overview](transactions-2.md). If you’re using a supported framework, APM agents will automatically handle the naming for you. If you’re not, or if you wish to override the default, all agents have API methods to manually set the `type` and `name`. +Transactions are grouped by their `type` and `name` in the Applications UI’s [Transaction overview](/solutions/observability/apm/transactions-ui.md). If you’re using a supported framework, APM agents will automatically handle the naming for you. If you’re not, or if you wish to override the default, all agents have API methods to manually set the `type` and `name`. * `type` should be a keyword of specific relevance in the service’s domain, e.g. `request`, `backgroundjob`, etc. * `name` should be a generic designation of a transaction in the scope of a single service, e.g. `GET /users/:id`, `UsersController#show`, etc. @@ -49,7 +49,7 @@ Transactions are stored with spans in the following data streams: * Application traces: `traces-apm-` * RUM and iOS agent application traces: `traces-apm.rum-` -See [Data streams](data-streams.md) to learn more. +See [Data streams](/solutions/observability/apm/data-streams.md) to learn more. ## Example transaction document [_example_transaction_document] diff --git a/solutions/observability/apps/tune-data-ingestion.md b/solutions/observability/apm/tune-data-ingestion.md similarity index 84% rename from solutions/observability/apps/tune-data-ingestion.md rename to solutions/observability/apm/tune-data-ingestion.md index 789635262..c882ab312 100644 --- a/solutions/observability/apps/tune-data-ingestion.md +++ b/solutions/observability/apm/tune-data-ingestion.md @@ -19,13 +19,13 @@ This section explains how to adapt data ingestion according to your needs. If the APM Server cannot process data quickly enough, you will see request timeouts. 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 [availability](high-availability.md). +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 [availability](/solutions/observability/apm/high-availability.md). ### Reduce the payload size [apm-reduce-payload-size] 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 [reduce the sample rate](reduce-storage.md#apm-reduce-sample-rate) or [reduce the amount of stack traces](reduce-storage.md#observability-apm-reduce-stacktrace). +Optionally you can also [reduce the sample rate](/solutions/observability/apm/reduce-storage.md#apm-reduce-sample-rate) or [reduce the amount of stack traces](/solutions/observability/apm/reduce-storage.md#observability-apm-reduce-stacktrace). Read more in the [agents documentation](https://www.elastic.co/guide/en/apm/agent/index.html). @@ -39,7 +39,7 @@ Increasing the default value for the following configuration variable will help | | | | --- | --- | -| APM Server binary | [`rate_limit.event_limit`](configure-anonymous-authentication.md#apm-config-auth-anon-event-limit) | +| APM Server binary | [`rate_limit.event_limit`](/solutions/observability/apm/configure-anonymous-authentication.md#apm-config-auth-anon-event-limit) | | Fleet-managed | `Anonymous Event rate limit (event limit)` | ## Tune {{es}} [apm-tune-elasticsearch] diff --git a/solutions/observability/apps/applications-ui-annotation-user.md b/solutions/observability/apm/ui-user-annotation.md similarity index 79% rename from solutions/observability/apps/applications-ui-annotation-user.md rename to solutions/observability/apm/ui-user-annotation.md index 77bbdb754..c83b5150c 100644 --- a/solutions/observability/apps/applications-ui-annotation-user.md +++ b/solutions/observability/apm/ui-user-annotation.md @@ -25,9 +25,9 @@ View deployment annotations in the Applications UI. 1 `{{ANNOTATION_INDEX}}` should be the index name you’ve defined in [`xpack.observability.annotations.index`](kibana://reference/configuration-reference/apm-settings.md). -2. Assign the `annotation_user` created previously, and the roles and privileges necessary to create a [full](apm-reader-user.md#apm-app-reader-full) or [partial](apm-reader-user.md#apm-app-reader-partial) APM reader to any users that need to view annotations in the Applications UI +2. Assign the `annotation_user` created previously, and the roles and privileges necessary to create a [full](/solutions/observability/apm/ui-user-reader.md#apm-app-reader-full) or [partial](/solutions/observability/apm/ui-user-reader.md#apm-app-reader-partial) APM reader to any users that need to view annotations in the Applications UI ## Annotation API [apm-app-annotation-api] -See [Create an API user](applications-ui-api-user.md). +See [Create an API user](/solutions/observability/apm/ui-user-api.md). diff --git a/solutions/observability/apps/applications-ui-api-user.md b/solutions/observability/apm/ui-user-api.md similarity index 100% rename from solutions/observability/apps/applications-ui-api-user.md rename to solutions/observability/apm/ui-user-api.md diff --git a/solutions/observability/apps/applications-ui-central-config-user.md b/solutions/observability/apm/ui-user-central-config.md similarity index 98% rename from solutions/observability/apps/applications-ui-central-config-user.md rename to solutions/observability/apm/ui-user-central-config.md index 530708916..40228c809 100644 --- a/solutions/observability/apps/applications-ui-central-config-user.md +++ b/solutions/observability/apm/ui-user-central-config.md @@ -104,4 +104,4 @@ In some instances, you may wish to create a user that can only read central conf ## Central configuration API [apm-app-central-config-api] -See [Create an API user](applications-ui-api-user.md). +See [Create an API user](/solutions/observability/apm/ui-user-api.md). diff --git a/solutions/observability/apps/apm-reader-user.md b/solutions/observability/apm/ui-user-reader.md similarity index 100% rename from solutions/observability/apps/apm-reader-user.md rename to solutions/observability/apm/ui-user-reader.md diff --git a/solutions/observability/apps/applications-ui-storage-explorer-user.md b/solutions/observability/apm/ui-user-storage-explorer.md similarity index 82% rename from solutions/observability/apps/applications-ui-storage-explorer-user.md rename to solutions/observability/apm/ui-user-storage-explorer.md index 7cb3cffc9..889938e8b 100644 --- a/solutions/observability/apps/applications-ui-storage-explorer-user.md +++ b/solutions/observability/apm/ui-user-storage-explorer.md @@ -41,4 +41,4 @@ View the **Storage Explorer** in the Applications UI. :::: -2. Assign the `storage-explorer_user` created previously, and the roles and privileges necessary to create a [full](apm-reader-user.md#apm-app-reader-full) or [partial](apm-reader-user.md#apm-app-reader-partial) APM reader to any users that need to view **Storage Explorer** in the Applications UI. +2. Assign the `storage-explorer_user` created previously, and the roles and privileges necessary to create a [full](/solutions/observability/apm/ui-user-reader.md#apm-app-reader-full) or [partial](/solutions/observability/apm/ui-user-reader.md#apm-app-reader-partial) APM reader to any users that need to view **Storage Explorer** in the Applications UI. diff --git a/solutions/observability/apps/upgrade-elastic-cloud-apm-server-standalone-to-90.md b/solutions/observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md similarity index 88% rename from solutions/observability/apps/upgrade-elastic-cloud-apm-server-standalone-to-90.md rename to solutions/observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md index 98582c5b8..07451e4cd 100644 --- a/solutions/observability/apps/upgrade-elastic-cloud-apm-server-standalone-to-90.md +++ b/solutions/observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md @@ -18,5 +18,5 @@ Follow these steps to upgrade: 1. Review the [Elastic APM release notes](apm-server://release-notes/index.md) and [Elastic {{observability}} release notes](/release-notes/elastic-observability/index.md). 2. Review the [Elastic APM breaking changes](apm-server://release-notes/breaking-changes.md). 3. Upgrade {{ecloud}} to 9.0, refer to [Upgrade your deployment](/deploy-manage/upgrade/deployment-or-cluster.md) for instructions. -4. (Optional) Upgrade to the APM integration. Got time for one more upgrade? Refer to [Switch to the Elastic APM integration](switch-to-elastic-apm-integration.md). +4. (Optional) Upgrade to the APM integration. Got time for one more upgrade? Refer to [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). diff --git a/solutions/observability/apps/upgrade-elastic-cloud-with-apm-integration-to-90.md b/solutions/observability/apm/upgrade-elastic-cloud-with-apm-integration-to-9.md similarity index 100% rename from solutions/observability/apps/upgrade-elastic-cloud-with-apm-integration-to-90.md rename to solutions/observability/apm/upgrade-elastic-cloud-with-apm-integration-to-9.md diff --git a/solutions/observability/apps/upgrade-self-installation-of-apm-integration-to-90.md b/solutions/observability/apm/upgrade-self-installation-of-apm-integration-to-9.md similarity index 100% rename from solutions/observability/apps/upgrade-self-installation-of-apm-integration-to-90.md rename to solutions/observability/apm/upgrade-self-installation-of-apm-integration-to-9.md diff --git a/solutions/observability/apps/upgrade-self-installation-of-apm-server-standalone-to-90.md b/solutions/observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md similarity index 78% rename from solutions/observability/apps/upgrade-self-installation-of-apm-server-standalone-to-90.md rename to solutions/observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md index d11931f57..08f98e5f7 100644 --- a/solutions/observability/apps/upgrade-self-installation-of-apm-server-standalone-to-90.md +++ b/solutions/observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md @@ -31,11 +31,11 @@ This upgrade guide is for the standalone method of running APM Server. Only use 2. **Install the 9.0 APM Server release** - Refer to [install](apm-server-binary.md#apm-installing) to find the command that works with your system. + Refer to [install](/solutions/observability/apm/get-started-apm-server-binary.md#apm-installing) to find the command that works with your system. 3. **Review your configuration file** - Some settings have been removed or changed. You may need to update your `apm-server.yml` configuration file prior to starting the APM Server. Refer to [Installation layout](installation-layout.md) for help in locating this file, and [Configure APM Server](configure-apm-server.md) for a list of all available configuration options. + Some settings have been removed or changed. You may need to update your `apm-server.yml` configuration file prior to starting the APM Server. Refer to [Installation layout](/solutions/observability/apm/installation-layout.md) for help in locating this file, and [Configure APM Server](/solutions/observability/apm/configure-apm-server.md) for a list of all available configuration options. 4. **Start the APM Server** @@ -45,10 +45,10 @@ This upgrade guide is for the standalone method of running APM Server. Only use ./apm-server -e ``` - Additional details are available in [start the APM Server](apm-server-binary.md#apm-server-starting). + Additional details are available in [start the APM Server](/solutions/observability/apm/get-started-apm-server-binary.md#apm-server-starting). 5. When upgrading from 8.18 to 9.0, if you have 7.x indices, you need to either set the indices to `readonly`, or if reindexing, add [ILM privileges](https://www.elastic.co/guide/en/apm/guide/7.17/privileges-to-setup-beats.html#_set_up_ilm) for `reindexed-v*-apm*` indices. 6. **(Optional) Upgrade to the APM integration** - Got time for one more upgrade? Refer to [Switch to the Elastic APM integration](switch-to-elastic-apm-integration.md). + Got time for one more upgrade? Refer to [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md). diff --git a/solutions/observability/apps/upgrade-to-version-90.md b/solutions/observability/apm/upgrade-to-version-9.md similarity index 80% rename from solutions/observability/apps/upgrade-to-version-90.md rename to solutions/observability/apm/upgrade-to-version-9.md index ef73c5f31..bcb55abc2 100644 --- a/solutions/observability/apps/upgrade-to-version-90.md +++ b/solutions/observability/apm/upgrade-to-version-9.md @@ -30,10 +30,10 @@ Starting in version 7.14, there are two ways to run Elastic APM. Determine which **Self-installation (non-{{ecloud}} users) upgrade guides** -* [Self-installation standalone](upgrade-self-installation-of-apm-server-standalone-to-90.md) -* [Self-installation APM integration](upgrade-self-installation-of-apm-integration-to-90.md) +* [Self-installation standalone](/solutions/observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md) +* [Self-installation APM integration](/solutions/observability/apm/upgrade-self-installation-of-apm-integration-to-9.md) **{{ecloud}} upgrade guides** -* [{{ecloud}} standalone](upgrade-elastic-cloud-apm-server-standalone-to-90.md) -* [{{ecloud}} APM integration](upgrade-elastic-cloud-with-apm-integration-to-90.md) +* [{{ecloud}} standalone](/solutions/observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md) +* [{{ecloud}} APM integration](/solutions/observability/apm/upgrade-elastic-cloud-with-apm-integration-to-9.md) diff --git a/solutions/observability/apps/upgrade.md b/solutions/observability/apm/upgrade.md similarity index 50% rename from solutions/observability/apps/upgrade.md rename to solutions/observability/apm/upgrade.md index ea75c5625..23716c856 100644 --- a/solutions/observability/apps/upgrade.md +++ b/solutions/observability/apm/upgrade.md @@ -9,7 +9,7 @@ applies_to: This guide gives general recommendations for upgrading Elastic APM. -* [{{apm-agent}} compatibility](apm-agent-compatibility.md) +* [{{apm-agent}} compatibility](/solutions/observability/apm/apm-agent-compatibility.md) * [Breaking Changes](apm-server://release-notes/breaking-changes.md) -* [Upgrade to version 9.0](upgrade-to-version-90.md) -* [Switch to the Elastic APM integration](switch-to-elastic-apm-integration.md) +* [Upgrade to version 9.0](/solutions/observability/apm/upgrade-to-version-9.md) +* [Switch to the Elastic APM integration](/solutions/observability/apm/switch-to-elastic-apm-integration.md) diff --git a/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md b/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md similarity index 93% rename from solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md rename to solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md index 7bdd08fd8..0b3d894ae 100644 --- a/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md +++ b/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md @@ -13,13 +13,13 @@ applies_to: ::: ::::{note} -This is one of several approaches you can use to integrate Elastic with OpenTelemetry. **To compare approaches and choose the best approach for your use case, refer to [OpenTelemetry](/solutions/observability/apps/use-opentelemetry-with-apm.md).** +This is one of several approaches you can use to integrate Elastic with OpenTelemetry. **To compare approaches and choose the best approach for your use case, refer to [OpenTelemetry](/solutions/observability/apm/use-opentelemetry-with-apm.md).** :::: 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 Elastic from an upstream [OpenTelemetry Collector](/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md#apm-connect-open-telemetry-collector) -* Send data to Elastic from an upstream [OpenTelemetry language SDK](/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md#apm-instrument-apps-otel) +* Send data to Elastic from an upstream [OpenTelemetry Collector](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-connect-open-telemetry-collector) +* Send data to Elastic from an upstream [OpenTelemetry language SDK](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-instrument-apps-otel) ## Send data from an upstream OpenTelemetry Collector [apm-connect-open-telemetry-collector] @@ -78,7 +78,7 @@ service: 3. The [debug exporter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/debugexporter) is helpful for troubleshooting, and supports configurable verbosity levels: `basic` (default), `normal`, and `detailed`. 4. Elastic {{observability}} endpoint configuration. APM Server supports a ProtoBuf payload via both the OTLP protocol over gRPC transport [(OTLP/gRPC)](https://opentelemetry.io/docs/specs/otlp/#otlpgrpc) and the OTLP protocol over HTTP transport [(OTLP/HTTP)](https://opentelemetry.io/docs/specs/otlp/#otlphttp). To learn more about these exporters, see the OpenTelemetry Collector documentation: [OTLP/HTTP Exporter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter) or [OTLP/gRPC exporter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlpexporter). When adding an endpoint to an existing configuration an optional name component can be added, like `otlp/elastic`, to distinguish endpoints as described in the [OpenTelemetry Collector Configuration Basics](https://opentelemetry.io/docs/collector/configuration/#basics). 5. Hostname and port of the APM Server endpoint. For example, `elastic-apm-server:8200`. -6. Credential for Elastic APM [secret token authorization](/solutions/observability/apps/secret-token.md) (`Authorization: "Bearer a_secret_token"`) or [API key authorization](/solutions/observability/apps/api-keys.md) (`Authorization: "ApiKey an_api_key"`). +6. Credential for Elastic APM [secret token authorization](/solutions/observability/apm/secret-token.md) (`Authorization: "Bearer a_secret_token"`) or [API key authorization](/solutions/observability/apm/api-keys.md) (`Authorization: "ApiKey an_api_key"`). 7. Environment-specific configuration parameters can be conveniently passed in as environment variables documented [here](https://opentelemetry.io/docs/collector/configuration/#environment-variables) (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. @@ -175,7 +175,7 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ 1. [preview] The OpenTelemetry logs intake via APM Server is currently in technical preview. `OTEL_RESOURCE_ATTRIBUTES` -: Fields that describe the service and the environment that the service runs in. See [resource attributes](/solutions/observability/apps/resource-atrributes.md) for more information. +: Fields that describe the service and the environment that the service runs in. See [resource attributes](/solutions/observability/apm/resource-attributes.md) for more information. `OTEL_EXPORTER_OTLP_ENDPOINT` : APM Server URL. The host and port that APM Server listens for events on. @@ -183,7 +183,7 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ `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 [API keys](/solutions/observability/apps/api-keys.md). + For information on how to format an API key, see [API keys](/solutions/observability/apm/api-keys.md). Please note the required space between `Bearer` and `an_apm_secret_token`, and `ApiKey` and `an_api_key`. @@ -216,7 +216,7 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ 1. [preview] The OpenTelemetry logs intake via Elastic is currently in technical preview. `OTEL_RESOURCE_ATTRIBUTES` -: Fields that describe the service and the environment that the service runs in. See [resource attributes](/solutions/observability/apps/resource-atrributes.md) for more information. +: Fields that describe the service and the environment that the service runs in. See [resource attributes](/solutions/observability/apm/resource-attributes.md) for more information. `OTEL_EXPORTER_OTLP_ENDPOINT` : Elastic URL. The host and port that Elastic listens for APM events on. @@ -224,7 +224,7 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ `OTEL_EXPORTER_OTLP_HEADERS` : Authorization header that includes the Elastic APM API key: `"Authorization=ApiKey an_api_key"`. Note the required space between `ApiKey` and `an_api_key`. - For information on how to format an API key, refer to [Secure communication with APM agents](/solutions/observability/apps/use-apm-securely.md). + For information on how to format an API key, refer to [Secure communication with APM agents](/solutions/observability/apm/use-apm-securely.md). ::::{note} If you are using a version of the Python OpenTelemetry agent *before* 1.27.0, the content of the header *must* be URL-encoded. You can use the Python standard library’s `urllib.parse.quote` function to encode the content of the header. @@ -241,7 +241,7 @@ java -javaagent:/path/to/opentelemetry-javaagent-all.jar \ :::: -You are now ready to collect traces and [metrics](/solutions/observability/apps/collect-metrics.md) before [verifying metrics](/solutions/observability/apps/collect-metrics.md#apm-open-telemetry-verify-metrics) and [visualizing metrics](/solutions/observability/apps/collect-metrics.md#apm-open-telemetry-visualize). +You are now ready to collect traces and [metrics](/solutions/observability/apm/collect-metrics.md) before [verifying metrics](/solutions/observability/apm/collect-metrics.md#apm-open-telemetry-verify-metrics) and [visualizing metrics](/solutions/observability/apm/collect-metrics.md#apm-open-telemetry-visualize). ## Proxy requests to APM Server [apm-open-telemetry-proxy-apm] @@ -264,6 +264,6 @@ For more information on how APM Server services gRPC requests, see [Muxing gRPC ## Next steps [apm-open-telemetry-direct-next] -* [Collect metrics](/solutions/observability/apps/collect-metrics.md) -* Add [Resource attributes](/solutions/observability/apps/resource-atrributes.md) -* Learn about the [limitations of this integration](/solutions/observability/apps/limitations.md) +* [Collect metrics](/solutions/observability/apm/collect-metrics.md) +* Add [Resource attributes](/solutions/observability/apm/resource-attributes.md) +* Learn about the [limitations of this integration](/solutions/observability/apm/limitations.md) diff --git a/solutions/observability/apps/use-apm-securely.md b/solutions/observability/apm/use-apm-securely.md similarity index 80% rename from solutions/observability/apps/use-apm-securely.md rename to solutions/observability/apm/use-apm-securely.md index 0b01917d4..702e007aa 100644 --- a/solutions/observability/apps/use-apm-securely.md +++ b/solutions/observability/apm/use-apm-securely.md @@ -16,7 +16,7 @@ When setting up Elastic APM, it’s critical to ensure that application data is | | | | --- | --- | -| **What kind of data is collected?** | Ensure that data doesn’t contain sensitive information like passwords, credit card numbers, health data, or other identifiable information.
Read more in [Secure data](/solutions/observability/apps/application-data-security.md). | -| **How do APM agents and {{agent}} communicate?** | Ensure that any communication between APM agents and {{agent}} are both encrypted and authenticated.
Read more in [Secure communication with APM agents](/solutions/observability/apps/secure-communication-with-apm-agents.md). | -| **How do APM Server and the {{stack}} communicate?** | Use role-based access control to grant APM Server users access to secured resources. The roles that you set up depend on your organization’s security requirements and the minimum privileges required to use specific features.
Read more in [Secure communication with the {{stack}}](/solutions/observability/apps/secure-communication-with-elastic-stack.md). | -| **Who can use the Applications UI?** | Use role-based access control to grant users access to features of the Applications UI.
Read more in [Secure access to the Applications UI](/solutions/observability/apps/secure-access-to-applications-ui.md). | \ No newline at end of file +| **What kind of data is collected?** | Ensure that data doesn’t contain sensitive information like passwords, credit card numbers, health data, or other identifiable information.
Read more in [Secure data](/solutions/observability/apm/secure-data.md). | +| **How do APM agents and {{agent}} communicate?** | Ensure that any communication between APM agents and {{agent}} are both encrypted and authenticated.
Read more in [Secure communication with APM agents](/solutions/observability/apm/secure-communication-with-apm-agents.md). | +| **How do APM Server and the {{stack}} communicate?** | Use role-based access control to grant APM Server users access to secured resources. The roles that you set up depend on your organization’s security requirements and the minimum privileges required to use specific features.
Read more in [Secure communication with the {{stack}}](/solutions/observability/apm/secure-communication-with-elastic-stack.md). | +| **Who can use the Applications UI?** | Use role-based access control to grant users access to features of the Applications UI.
Read more in [Secure access to the Applications UI](/solutions/observability/apm/secure-access-to-applications-ui.md). | \ No newline at end of file diff --git a/solutions/observability/apps/use-environment-variables-in-configuration.md b/solutions/observability/apm/use-environment-variables-in-configuration.md similarity index 100% rename from solutions/observability/apps/use-environment-variables-in-configuration.md rename to solutions/observability/apm/use-environment-variables-in-configuration.md diff --git a/solutions/observability/apps/use-internal-collection-to-send-monitoring-data.md b/solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md similarity index 84% rename from solutions/observability/apps/use-internal-collection-to-send-monitoring-data.md rename to solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md index f58731a69..102f6e791 100644 --- a/solutions/observability/apps/use-internal-collection-to-send-monitoring-data.md +++ b/solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md @@ -8,9 +8,9 @@ applies_to: # Use internal collection to send monitoring data [apm-monitoring-internal-collection] -Use internal collectors to send {{beats}} monitoring data directly to your monitoring cluster. Or as an alternative to internal collection, use [Use {{metricbeat}} collection](use-metricbeat-to-send-monitoring-data.md). The benefit of using internal collection instead of {{metricbeat}} is that you have fewer pieces of software to install and maintain. +Use internal collectors to send {{beats}} monitoring data directly to your monitoring cluster. Or as an alternative to internal collection, use [Use {{metricbeat}} collection](/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md). The benefit of using internal collection instead of {{metricbeat}} is that you have fewer pieces of software to install and maintain. -1. 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 [Create a *monitoring* role](create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-monitoring). For more information on how to use API keys, see [Grant access using API keys](grant-access-using-api-keys.md). +1. 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 [Create a *monitoring* role](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md#apm-privileges-to-publish-monitoring). For more information on how to use API keys, see [Grant access using API keys](/solutions/observability/apm/grant-access-using-api-keys.md). 2. 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 the same {{es}} cluster, specify the following minimal configuration: ```yaml @@ -64,7 +64,7 @@ Use internal collectors to send {{beats}} monitoring data directly to your monit ssl.key: "/etc/pki/client/cert.key" ``` - You must specify the `username` as `""` explicitly so that the username from the client certificate (`CN`) is used. See [SSL/TLS output settings](ssltls-output-settings.md) for more information about SSL settings. + You must specify the `username` as `""` explicitly so that the username from the client certificate (`CN`) is used. See [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md) for more information about SSL settings. 3. Start APM Server. 4. [View the monitoring data in {{kib}}](/deploy-manage/monitor/stack-monitoring/kibana-monitoring-data.md). @@ -87,11 +87,11 @@ The {{es}} instances that you want to ship your APM Server metrics to. This conf #### `api_key` [_api_key_3] -The detail of the API key to be used to send monitoring information to {{es}}. See [Grant access using API keys](grant-access-using-api-keys.md) for more information. +The detail of the API key to be used to send monitoring information to {{es}}. See [Grant access using API keys](/solutions/observability/apm/grant-access-using-api-keys.md) for more information. #### `bulk_max_size` [_bulk_max_size_5] -The maximum number of metrics to bulk in a single {{es}} bulk API index request. The default is `50`. For more information, see [{{es}}](configure-elasticsearch-output.md). +The maximum number of metrics to bulk in a single {{es}} bulk API index request. The default is `50`. For more information, see [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md). #### `backoff.init` [_backoff_init_5] @@ -107,15 +107,15 @@ The gzip compression level. Setting this value to `0` disables compression. The #### `headers` [_headers_2] -Custom HTTP headers to add to each request. For more information, see [{{es}}](configure-elasticsearch-output.md). +Custom HTTP headers to add to each request. For more information, see [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md). #### `hosts` [_hosts_4] -The list of {{es}} nodes to connect to. Monitoring metrics are distributed to these nodes in round robin order. For more information, see [{{es}}](configure-elasticsearch-output.md). +The list of {{es}} nodes to connect to. Monitoring metrics are distributed to these nodes in round robin order. For more information, see [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md). #### `max_retries` [_max_retries_5] -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 [{{es}}](configure-elasticsearch-output.md). +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 [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md). #### `parameters` [_parameters_2] @@ -139,7 +139,7 @@ The name of the protocol to use when connecting to the {{es}} cluster. The optio #### `proxy_url` [_proxy_url_4] -The URL of the proxy to use when connecting to the {{es}} cluster. For more information, see [{{es}}](configure-elasticsearch-output.md). +The URL of the proxy to use when connecting to the {{es}} cluster. For more information, see [{{es}}](/solutions/observability/apm/configure-elasticsearch-output.md). #### `timeout` [_timeout_5] @@ -147,7 +147,7 @@ The HTTP request timeout in seconds for the {{es}} request. The default is `90`. #### `ssl` [_ssl_5] -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 [SSL/TLS output settings](ssltls-output-settings.md). +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 [SSL/TLS output settings](/solutions/observability/apm/ssl-tls-output-settings.md). #### `username` [_username_3] diff --git a/solutions/observability/apps/use-metricbeat-to-send-monitoring-data.md b/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md similarity index 97% rename from solutions/observability/apps/use-metricbeat-to-send-monitoring-data.md rename to solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md index c37d7ad10..48f0a0593 100644 --- a/solutions/observability/apps/use-metricbeat-to-send-monitoring-data.md +++ b/solutions/observability/apm/use-metricbeat-to-send-monitoring-data.md @@ -39,7 +39,7 @@ To collect and ship monitoring data: monitoring.enabled: false ``` - For more information, see [Monitoring configuration options](use-internal-collection-to-send-monitoring-data.md#apm-configuration-monitor). + For more information, see [Monitoring configuration options](/solutions/observability/apm/use-internal-collection-to-send-monitoring-data.md#apm-configuration-monitor). 3. Configure host (optional).
@@ -147,7 +147,7 @@ To collect and ship monitoring data: 1. Create a user on the monitoring cluster that has the `remote_monitoring_agent` [built-in role](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md). Alternatively, if it’s available in your environment, use the `remote_monitoring_user` [built-in user](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-users.md). ::::{tip} - If you’re using {{ilm}}, the remote monitoring user requires additional privileges to create and read indices. For more information, see [Use feature roles](create-assign-feature-roles-to-apm-server-users.md). + If you’re using {{ilm}}, the remote monitoring user requires additional privileges to create and read indices. For more information, see [Use feature roles](/solutions/observability/apm/create-assign-feature-roles-to-apm-server-users.md). :::: 2. Add the `username` and `password` settings to the {{es}} output information in the {{metricbeat}} configuration file. diff --git a/solutions/observability/apps/use-opentelemetry-with-apm.md b/solutions/observability/apm/use-opentelemetry-with-apm.md similarity index 91% rename from solutions/observability/apps/use-opentelemetry-with-apm.md rename to solutions/observability/apm/use-opentelemetry-with-apm.md index 6d0450fba..e5b882c0d 100644 --- a/solutions/observability/apps/use-opentelemetry-with-apm.md +++ b/solutions/observability/apm/use-opentelemetry-with-apm.md @@ -21,10 +21,10 @@ For a complete overview of using OpenTelemetry with Elastic, explore [**Elastic Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to the {{stack}}. There are several ways to integrate OpenTelemetry with the {{stack}}: -* [Elastic Distributions of OpenTelemetry language SDKs](/solutions/observability/apps/use-opentelemetry-with-apm.md#apm-otel-elastic-distros) -* [Upstream OpenTelemetry API/SDK + Elastic APM agent](/solutions/observability/apps/use-opentelemetry-with-apm.md#apm-otel-api-sdk-elastic-agent) -* [Upstream OpenTelemetry Collector and language SDKs](/solutions/observability/apps/use-opentelemetry-with-apm.md#apm-otel-upstream) -* [AWS Lambda collector exporter](/solutions/observability/apps/use-opentelemetry-with-apm.md#apm-otel-lambda) +* [Elastic Distributions of OpenTelemetry language SDKs](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-elastic-distros) +* [Upstream OpenTelemetry API/SDK + Elastic APM agent](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-api-sdk-elastic-agent) +* [Upstream OpenTelemetry Collector and language SDKs](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-upstream) +* [AWS Lambda collector exporter](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-lambda) ## Elastic Distributions of OpenTelemetry language SDKs [apm-otel-elastic-distros] @@ -59,7 +59,7 @@ For more details about OpenTelemetry distributions in general, visit the [OpenTe ## Upstream OpenTelemetry API/SDK + Elastic APM agent [apm-otel-api-sdk-elastic-agent] -Use the OpenTelemetry API/SDKs with [Elastic APM agents](/solutions/observability/apps/fleet-managed-apm-server.md#_step_3_install_apm_agents) to translate OpenTelemetry API calls to Elastic APM API calls. +Use the OpenTelemetry API/SDKs with [Elastic APM agents](/solutions/observability/apm/get-started-fleet-managed-apm-server.md#_step_3_install_apm_agents) to translate OpenTelemetry API calls to Elastic APM API calls. :::{image} /solutions/images/observability-apm-otel-api-sdk-elastic-agent.png :alt: apm otel api sdk elastic agent @@ -101,9 +101,9 @@ However, there are some limitations when using collectors and language SDKs buil * You won’t have access to Elastic enterprise APM features. * You may experience problems with performance efficiency. -For more on the limitations associated with using upstream OpenTelemetry tools, refer to [Limitations](/solutions/observability/apps/limitations.md). +For more on the limitations associated with using upstream OpenTelemetry tools, refer to [Limitations](/solutions/observability/apm/limitations.md). -[**Get started with upstream OpenTelemetry Collectors and language SDKs →**](/solutions/observability/apps/upstream-opentelemetry-collectors-language-sdks.md) +[**Get started with upstream OpenTelemetry Collectors and language SDKs →**](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md) ## AWS Lambda collector exporter [apm-otel-lambda] diff --git a/solutions/observability/apps/use-select-metrics-emitted-directly-to-monitoring-cluster.md b/solutions/observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md similarity index 88% rename from solutions/observability/apps/use-select-metrics-emitted-directly-to-monitoring-cluster.md rename to solutions/observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md index e5992b80d..06ba184bc 100644 --- a/solutions/observability/apps/use-select-metrics-emitted-directly-to-monitoring-cluster.md +++ b/solutions/observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md @@ -12,7 +12,7 @@ In 8.11 and later, we emit a selected set of metrics directly to the monitoring ## The select metrics [apm-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 [Self Instrumentation](configure-apm-instrumentation.md) instead of local collection. +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 [Self Instrumentation](/solutions/observability/apm/configure-apm-instrumentation.md) instead of local collection. Here is the list of every metrics we currently expose: diff --git a/solutions/observability/apps/view-analyze-data.md b/solutions/observability/apm/view-analyze-data.md similarity index 68% rename from solutions/observability/apps/view-analyze-data.md rename to solutions/observability/apm/view-analyze-data.md index 84189faf3..ca7a8809c 100644 --- a/solutions/observability/apps/view-analyze-data.md +++ b/solutions/observability/apm/view-analyze-data.md @@ -9,7 +9,7 @@ applies_to: # View and analyze data [apm-view-and-analyze-data] -After you’ve started [sending application data to Elastic](/solutions/observability/apps/collect-application-data.md), you can open the Applications UI to view your data in a variety of visualizations and start analyzing data. +After you’ve started [sending application data to Elastic](/solutions/observability/apm/collect-application-data.md), you can open the Applications UI to view your data in a variety of visualizations and start analyzing data. The Applications UI allows you to monitor your software services and applications in real-time. You can visualize detailed performance information on your services, identify and analyze errors, and monitor host-level and APM agent-specific metrics like JVM and Go runtime metrics. @@ -19,6 +19,6 @@ For example, you can see information about response times, requests per minute, To get started with the Applications UI: -* Start with quick, high-level [overviews](/solutions/observability/apps/overviews.md) that show you the overall health and performance of your application. -* [Drill down into data](/solutions/observability/apps/drill-down-into-data.md) for specific services or traces to get additional insight into your application. -* Learn how to get the most out of your data by mastering how to [search and filter data](/solutions/observability/apps/filter-search-application-data.md), getting tips on [how to interpret data](/solutions/observability/apps/interpret-application-data.md), and taking advantage of [machine learning](/solutions/observability/apps/integrate-with-machine-learning.md). +* Start with quick, high-level [overviews](/solutions/observability/apm/overviews.md) that show you the overall health and performance of your application. +* [Drill down into data](/solutions/observability/apm/drill-down-into-data.md) for specific services or traces to get additional insight into your application. +* Learn how to get the most out of your data by mastering how to [search and filter data](/solutions/observability/apm/filter-search-data.md), getting tips on [how to interpret data](/solutions/observability/apm/interpret-data.md), and taking advantage of [machine learning](/solutions/observability/apm/machine-learning.md). diff --git a/solutions/observability/apps/view-elasticsearch-index-template.md b/solutions/observability/apm/view-elasticsearch-index-template.md similarity index 89% rename from solutions/observability/apps/view-elasticsearch-index-template.md rename to solutions/observability/apm/view-elasticsearch-index-template.md index 8f01b153d..6469d40ad 100644 --- a/solutions/observability/apps/view-elasticsearch-index-template.md +++ b/solutions/observability/apm/view-elasticsearch-index-template.md @@ -19,7 +19,7 @@ Custom index mappings may conflict with the mappings defined by the {{es}} apm-d The APM index templates by default reference a non-existent `@custom` component template for each data stream. You can create or edit this `@custom` component template to customize your {{es}} indices. -First, determine which [data stream](data-streams.md) you’d like to edit in {{kib}}. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Select **Component Templates**. +First, determine which [data stream](/solutions/observability/apm/data-streams.md) you’d like to edit in {{kib}}. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Select **Component Templates**. Custom component templates are named following this pattern: `@custom`. Search for the name of the data stream, like `traces-apm`, and select its custom component template. Create one if it does not exist. In this example, that’d be, `traces-apm@custom`. Then click **Manage** → **Edit**. @@ -29,7 +29,7 @@ Add any custom metadata, index settings, or mappings. In the **Index settings** step, you can specify custom [index settings](elasticsearch://reference/elasticsearch/index-settings/index.md). For example, you could: -* Customize the index lifecycle policy applied to a data stream. See [custom index lifecycle policies](index-lifecycle-management.md#apm-data-streams-custom-policy) for a walk-through. +* Customize the index lifecycle policy applied to a data stream. See [custom index lifecycle policies](/solutions/observability/apm/index-lifecycle-management.md#apm-data-streams-custom-policy) for a walk-through. * Change the number of [shards](/deploy-manage/index.md) per index. Specify the number of primary shards: ```json diff --git a/solutions/observability/applications/index.md b/solutions/observability/applications/index.md new file mode 100644 index 000000000..696c52af7 --- /dev/null +++ b/solutions/observability/applications/index.md @@ -0,0 +1,25 @@ +--- +navigation_title: "Applications and services" +mapped_pages: + - https://www.elastic.co/guide/en/serverless/current/application-and-service-monitoring.html + - https://www.elastic.co/guide/en/observability/current/application-and-service-monitoring.html +applies_to: + stack: + serverless: +--- + +# Application and service monitoring [application-and-service-monitoring] + + +Explore the topics in this section to learn how to observe and monitor software applications and services running in your environment. + +% Stateful only for RUM and Uptime and Tutorial + +| | | +| --- | --- | +| [LLM Observability](/solutions/observability/applications/llm-observability.md) | Monitor LLM-powered applications to keep them reliable, efficient, cost-effective, and easy to troubleshoot.| +| [Application performance monitoring (APM)](/solutions/observability/apm/index.md) | Monitor software services and applications in real time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. | +| [Synthetic monitoring](/solutions/observability/synthetics/index.md) | Monitor the availability of network endpoints and services. | +| [Real user monitoring](/solutions/observability/applications/user-experience.md) | Quantify and analyze the perceived performance of your web application using real-world user experiences. | +| [Uptime monitoring (deprecated)](/solutions/observability/uptime/index.md) | Periodically check the status of your services and applications. | +| [Tutorial: Monitor a Java application](/solutions/observability/applications/tutorial-monitor-java-application.md) | Monitor a Java application using Elastic Observability: Logs, Infrastructure metrics, APM, and Uptime. | diff --git a/solutions/observability/apps/llm-observability.md b/solutions/observability/applications/llm-observability.md similarity index 100% rename from solutions/observability/apps/llm-observability.md rename to solutions/observability/applications/llm-observability.md diff --git a/solutions/observability/apps/tutorial-monitor-java-application.md b/solutions/observability/applications/tutorial-monitor-java-application.md similarity index 100% rename from solutions/observability/apps/tutorial-monitor-java-application.md rename to solutions/observability/applications/tutorial-monitor-java-application.md diff --git a/solutions/observability/apps/real-user-monitoring-user-experience.md b/solutions/observability/applications/user-experience.md similarity index 99% rename from solutions/observability/apps/real-user-monitoring-user-experience.md rename to solutions/observability/applications/user-experience.md index 798c53f50..5e042b94c 100644 --- a/solutions/observability/apps/real-user-monitoring-user-experience.md +++ b/solutions/observability/applications/user-experience.md @@ -25,7 +25,7 @@ Search engines are placing increasing importance on user experience when organic {{user-experience}} metrics are powered by the [APM Real User Monitoring (RUM) agent](https://www.elastic.co/guide/en/apm/agent/rum-js/current). The RUM agent uses browser timing APIs, like [Navigation Timing](https://w3c.github.io/navigation-timing/), [Resource Timing](https://w3c.github.io/resource-timing/), [Paint Timing](https://w3c.github.io/paint-timing/), and [User Timing](https://w3c.github.io/user-timing/), to capture {{user-experience}} metrics every time a user hits one of your pages. This data is stored in {{es}}, where it can be visualized using {{kib}}. -The RUM agent can be installed as a dependency to your application, or with just a few lines of JavaScript. It only takes a few minutes to [get started](real-user-monitoring-rum.md). +The RUM agent can be installed as a dependency to your application, or with just a few lines of JavaScript. It only takes a few minutes to [get started](/solutions/observability/apm/real-user-monitoring-rum.md). ## {{user-experience}} in {{kib}} [user-experience-tab] diff --git a/solutions/observability/apps.md b/solutions/observability/apps.md deleted file mode 100644 index bc04e85e1..000000000 --- a/solutions/observability/apps.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -navigation_title: "Applications and services" -mapped_pages: - - https://www.elastic.co/guide/en/serverless/current/application-and-service-monitoring.html - - https://www.elastic.co/guide/en/observability/current/application-and-service-monitoring.html -applies_to: - stack: - serverless: ---- - -# Application and service monitoring [application-and-service-monitoring] - - -Explore the topics in this section to learn how to observe and monitor software applications and services running in your environment. - -% Stateful only for RUM and Uptime and Tutorial - -| | | -| --- | --- | -| [LLM Observability](/solutions/observability/apps/llm-observability.md) | Monitor LLM-powered applications to keep them reliable, efficient, cost-effective, and easy to troubleshoot.| -| [Application performance monitoring (APM)](/solutions/observability/apps/application-performance-monitoring-apm.md) | Monitor software services and applications in real time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. | -| [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) | Monitor the availability of network endpoints and services. | -| [Real user monitoring](/solutions/observability/apps/real-user-monitoring-user-experience.md) | Quantify and analyze the perceived performance of your web application using real-world user experiences. | -| [Uptime monitoring (deprecated)](/solutions/observability/apps/uptime-monitoring-deprecated.md) | Periodically check the status of your services and applications. | -| [Tutorial: Monitor a Java application](/solutions/observability/apps/tutorial-monitor-java-application.md) | Monitor a Java application using Elastic Observability: Logs, Infrastructure metrics, APM, and Uptime. | diff --git a/solutions/observability/apps/act-on-data.md b/solutions/observability/apps/act-on-data.md deleted file mode 100644 index 9a47b487a..000000000 --- a/solutions/observability/apps/act-on-data.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -navigation_title: "Act on data" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-act-on-data.html - - https://www.elastic.co/guide/en/serverless/current/observability-apm-act-on-data.html -applies_to: - stack: - serverless: ---- - -# Act on application data - -In addition to exploring visualizations in the Applications UI in {{kib}}, you can make your application data more actionable with: - -| | | -| --- | --- | -| [Rules and alerts](create-apm-rules-alerts.md) | The Applications UI allows you to define rules to detect complex conditions within your APM data and trigger built-in actions when those conditions are met. | -| [Custom links](create-custom-links.md) | Build URLs that contain relevant metadata from a specific trace. For example, you can create a link that will take you to a page where you can open a new GitHub issue with context already auto-populated in the issue body. These links will be shown in the *Actions* context menu in selected areas of the Applications UI (for example, by transaction details). | \ No newline at end of file diff --git a/solutions/observability/apps/apm-apis.md b/solutions/observability/apps/apm-apis.md deleted file mode 100644 index 7fe8620a3..000000000 --- a/solutions/observability/apps/apm-apis.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-apis.html -applies_to: - stack: - serverless: ---- - -# APM APIs [apm-apis] - -:::{include} _snippets/apm-server-vs-mis.md -::: - -There are two kinds of APIs related to Elastic APM: - -| | | -| --- | --- | -| [APM UI API](apm-ui-api.md) | {{kib}} APIs specific to working with the Applications UI including updating configuration options, uploading real user monitoring (RUM) source maps, adding annotations, and more. | -| [APM Server API](apm-server-api.md) | APIs for working with APM Server. These are mainly intake APIs that accept data from APM agents and are used primarily by APM agent developers. | -| [Observability Intake Serverless API](/solutions/observability/apps/managed-intake-service-event-api.md) | The managed intake service exposes an API endpoint to query general server information. This lightweight endpoint is useful as a server up/down health check. This API is exclusively for APM agent developers. | - diff --git a/solutions/observability/apps/apm-server-advanced-setup.md b/solutions/observability/apps/apm-server-advanced-setup.md deleted file mode 100644 index 1c59ff90a..000000000 --- a/solutions/observability/apps/apm-server-advanced-setup.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -navigation_title: "Advanced setup" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-setting-up-and-running.html -applies_to: - stack: ---- - -# APM Server advanced setup [apm-setting-up-and-running] - -Before reading this section, see the [getting started documentation](fleet-managed-apm-server.md) for basic installation and running instructions. - -This section includes additional information on how to set up and run APM Server, including: - -* [Installation layout](installation-layout.md) -* [Secrets keystore](secrets-keystore-for-secure-settings.md) -* [Command reference](apm-server-command-reference.md) -* [Tune data ingestion](tune-data-ingestion.md) -* [High Availability](high-availability.md) -* [Run APM Server on Docker](apm-server-binary.md#apm-running-on-docker) - diff --git a/solutions/observability/apps/apm-server-api.md b/solutions/observability/apps/apm-server-api.md deleted file mode 100644 index 174b0536c..000000000 --- a/solutions/observability/apps/apm-server-api.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-api.html -applies_to: - stack: ---- - -# APM Server API [apm-api] - -The APM Server exposes endpoints for: - -* [APM Server information API](apm-server-information-api.md) -* [Elastic APM events intake API](elastic-apm-events-intake-api.md) -* [Elastic APM agent configuration API](elastic-apm-agent-configuration-api.md) -* [OpenTelemetry intake API](opentelemetry-intake-api.md) -* [Jaeger event intake](jaeger-event-intake.md) - diff --git a/solutions/observability/apps/application-data-security.md b/solutions/observability/apps/application-data-security.md deleted file mode 100644 index 4ac3d6570..000000000 --- a/solutions/observability/apps/application-data-security.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -navigation_title: "Secure data" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-data-security.html -applies_to: - stack: - serverless: ---- - -# Application data security [apm-data-security] - -When setting up Elastic APM, it’s essential to review all captured data carefully to ensure it doesn’t contain sensitive information like passwords, credit card numbers, or health data. In addition, you may wish to filter out other identifiable information, like IP addresses, user agent information, 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: - -* [Built-in data filters](#apm-built-in-data-filters) -* [Custom filters](#apm-custom-data-filters) - -In addition to utilizing filters, you should regularly review the [sensitive fields](#apm-sensitive-fields) table to ensure sensitive data is not being ingested. If it is, it’s possible to remove or redact it. See [Delete sensitive data](delete-sensitive-data.md) for more information. - -## Built-in data filters [apm-built-in-data-filters] - -Built-in data filters allow you to filter or turn off ingestion of the following types of data: - -| Data type | Common sensitive data | -| --- | --- | -| [HTTP headers](built-in-data-filters.md#apm-filters-http-header) | Passwords, credit card numbers, authorization, etc. | -| [HTTP bodies](built-in-data-filters.md#apm-filters-http-body) | Passwords, credit card numbers, etc. | -| [Personal data](built-in-data-filters.md#apm-filters-personal-data) | Client IP address and user agent. | -| [Real user monitoring data](built-in-data-filters.md#apm-filters-real-user-data) | URLs visited, click events, user browser errors, resources used, etc. | -| [Database statements](built-in-data-filters.md#apm-filters-database-statements) | Sensitive user or business information | - -## Custom filters [apm-custom-data-filters] - -Custom filters allow you to filter or redact other types of APM data on ingestion: - -| | | -| --- | --- | -| [Ingest pipelines](custom-filters.md#apm-filters-ingest-pipeline) | 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. | -| [{{apm-agent}} filters](custom-filters.md#apm-filters-in-agent) | Not supported by all agents.Data is sanitized before leaving the instrumented service.Potential overhead implications on the instrumented service | - -## Sensitive fields [apm-sensitive-fields] - -You should review the following fields regularly to ensure sensitive data is not being captured: - -| Field | Description | Remedy | -| --- | --- | --- | -| `client.ip` | The client IP address, as forwarded by proxy. | [Personal data](built-in-data-filters.md#apm-filters-personal-data) | -| `http.request.body.original` | The body of the monitored HTTP request. | [HTTP bodies](built-in-data-filters.md#apm-filters-http-body) | -| `http.request.headers` | The canonical headers of the monitored HTTP request. | [HTTP headers](built-in-data-filters.md#apm-filters-http-header) | -| `http.request.socket.remote_address` | The address of the last proxy or end-user (if no proxy). | [Custom filters](custom-filters.md) | -| `http.response.headers` | The canonical headers of the monitored HTTP response. | [HTTP headers](built-in-data-filters.md#apm-filters-http-header) | -| `process.args` | Process arguments. | [Database statements](built-in-data-filters.md#apm-filters-database-statements) | -| `span.db.statement` | Database statement. | [Database statements](built-in-data-filters.md#apm-filters-database-statements) | -| `stacktrace.vars` | A flat mapping of local variables captured in the stack frame | [Custom filters](custom-filters.md) | -| `url.query` | The query string of the request, e.g. `?pass=hunter2`. | [Custom filters](custom-filters.md) | -| `user.*` | Logged-in user information. | [Custom filters](custom-filters.md) | -| `user_agent.*` | Device and version making the network request. | [Personal data](built-in-data-filters.md#apm-filters-personal-data) | \ No newline at end of file diff --git a/solutions/observability/apps/configure-output.md b/solutions/observability/apps/configure-output.md deleted file mode 100644 index 70db626f2..000000000 --- a/solutions/observability/apps/configure-output.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -navigation_title: "Output" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-configuring-output.html -applies_to: - stack: ---- - -# Configure the output [apm-configuring-output] - -Output configuration options. - -* [{{ech}}](configure-output-for-elasticsearch-service-on-elastic-cloud.md) -* [{{es}}](configure-elasticsearch-output.md) -* [{{ls}}](configure-logstash-output.md) -* [Kafka](configure-kafka-output.md) -* [Redis](configure-redis-output.md) -* [Console](configure-console-output.md) - -## Source maps [apm-sourcemap-output] - -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 [`source_mapping.elasticsearch`](configure-real-user-monitoring-rum.md#apm-config-sourcemapping-elasticsearch) for more details. - diff --git a/solutions/observability/apps/interpret-application-data.md b/solutions/observability/apps/interpret-application-data.md deleted file mode 100644 index 2ae923c0a..000000000 --- a/solutions/observability/apps/interpret-application-data.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -navigation_title: "Interpret data" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-interpret-data.html - - https://www.elastic.co/guide/en/serverless/current/observability-apm-interpret-data.html -applies_to: - stack: - serverless: ---- - -# Interpret application data [observability-apm-interpret-data] - -Learn how to get the most out of your data using the Applications UI. - -% Stateful only for exploring mobile sessions with Discover? - -| | | -| --- | --- | -| [Finding transaction latency and failure correlations](/solutions/observability/apps/find-transaction-latency-failure-correlations.md) | Surface characteristics of your data that are potentially correlated with high-latency or erroneous transactions. | -| [Tracking deployments with annotations](/solutions/observability/apps/track-deployments-with-annotations.md) | Annotations enable you to easily determine if your deployment has increased response times for an end-user or if the memory/CPU footprint of your application has changed. | -| [Exploring mobile sessions with Discover](/solutions/observability/apps/explore-mobile-sessions-with-discover.md) | **Elastic Stack only:** Use session tracking via a globally unique identifier to explore the activities of a specific user during a specific period of time. | -| [Observing Lambda functions](/solutions/observability/apps/observe-lambda-functions.md) | Learn how your AWS Lambda functions relate to and depend on other services, and get insight into function execution and runtime behavior, like lambda duration, cold start rate, cold start duration, compute usage, memory usage, and more. | \ No newline at end of file diff --git a/solutions/observability/apps/learn-about-application-data-types.md b/solutions/observability/apps/learn-about-application-data-types.md deleted file mode 100644 index c68376045..000000000 --- a/solutions/observability/apps/learn-about-application-data-types.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-data-model.html - - https://www.elastic.co/guide/en/serverless/current/observability-apm-data-types.html -applies_to: - stack: - serverless: ---- - -# Application data types [observability-apm-data-types] - -Elastic APM agents capture different types of information from within their instrumented applications. These are known as events, and can be spans, transactions, traces, errors, or metrics. - -Elastic APM helps you see what happens from start to finish when a request is made to an application: - -* [**Spans**](/solutions/observability/apps/spans.md): A span contain information about the execution of a specific code path. They are the building blocks of *transactions* and *traces*. -* [**Transactions**](/solutions/observability/apps/transactions.md): A transaction describes an event captured by an Elastic APM agent instrumenting a service. A transaction is technically a type of span that has additional attributes associated with it and often contains multiple child *spans*. You can think of transactions as the highest level of work you’re measuring within a service. -* [**Traces**](/solutions/observability/apps/traces.md#apm-distributed-tracing): A trace is a group of *transactions* and *spans* with a common root. Each trace tracks the entirety of a single request. When a trace travels through multiple services, it is known as a *distributed trace*. - -:::{image} /solutions/images/observability-spans-transactions-and-traces.png -:alt: Diagram illustrating the relationship between spans -::: - -In addition to the building blocks of traces, Elastic APM agents also capture: - -* [**Errors**](/solutions/observability/apps/errors.md): An error is created when something goes wrong with a request to an application. This event contains information to help you determine where and why an error occurred, often including in which *transaction* the error occurred. -* [**Metrics**](/solutions/observability/apps/metrics.md): Metrics measure the state of a system by gathering information on a regular interval. - -Events can contain additional [metadata](/solutions/observability/apps/metadata.md) which further enriches your data. \ No newline at end of file diff --git a/solutions/observability/apps/manage-storage.md b/solutions/observability/apps/manage-storage.md deleted file mode 100644 index 7bcbc3a9c..000000000 --- a/solutions/observability/apps/manage-storage.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-manage-storage.html -applies_to: - stack: ---- - -# Manage storage [apm-manage-storage] - -{{agent}} uses [data streams](data-streams.md) to store time series data across multiple indices. [Index templates](view-elasticsearch-index-template.md) are used to configure the backing indices of data streams as they are created. Each data stream ships with a customizable [index lifecycle policy](index-lifecycle-management.md) that automates data retention as your indices grow and age. Use [ingest pipelines](parse-data-using-ingest-pipelines.md) to process and enrich APM documents before indexing them. - -The [storage and sizing guide](storage-sizing-guide.md) attempts to define a "typical" storage reference for Elastic APM, and there are additional settings you can tweak to [reduce storage](reduce-storage.md), or to [tune data ingestion in {{es}}](tune-data-ingestion.md#apm-tune-elasticsearch). - -In addition, the Applications UI makes it easy to visualize your APM data usage with [storage explorer](storage-explorer.md). Storage explorer allows you to analyze the storage footprint of each of your services to see which are producing large amounts of data—​so you can better reduce the data you’re collecting or forecast and prepare for future storage needs. - diff --git a/solutions/observability/apps/monitor-apm-server-binary.md b/solutions/observability/apps/monitor-apm-server-binary.md deleted file mode 100644 index 32fde3bd2..000000000 --- a/solutions/observability/apps/monitor-apm-server-binary.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -navigation_title: "APM Server binary" -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-monitoring.html -applies_to: - stack: all ---- - -# Monitor the APM Server binary [apm-monitoring] - -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 collection](use-internal-collection-to-send-monitoring-data.md) - Internal collectors send monitoring data directly to your monitoring cluster. -* [{{metricbeat}} collection](use-metricbeat-to-send-monitoring-data.md) - {{metricbeat}} collects monitoring data from your APM Server instance and sends it directly to your monitoring cluster. -* [Local collection](use-select-metrics-emitted-directly-to-monitoring-cluster.md) - Local collection sends select monitoring data directly to the standard indices of your monitoring cluster. \ No newline at end of file diff --git a/solutions/observability/apps/ssltls-settings.md b/solutions/observability/apps/ssltls-settings.md deleted file mode 100644 index bef159623..000000000 --- a/solutions/observability/apps/ssltls-settings.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/apm-configuration-ssl-landing.html -applies_to: - stack: all ---- - -# SSL/TLS settings [apm-configuration-ssl-landing] - -SSL/TLS is available for: - -* [APM Server **inputs**](ssltls-input-settings.md) (APM Agents) -* [APM Server **outputs**](ssltls-output-settings.md) that support SSL, like {{es}}, {{ls}}, or Kafka. - -Additional information on getting started with SSL/TLS is available in [Use APM securely](use-apm-securely.md). diff --git a/solutions/observability/get-started.md b/solutions/observability/get-started.md index cd93f890d..6742c2658 100644 --- a/solutions/observability/get-started.md +++ b/solutions/observability/get-started.md @@ -64,8 +64,8 @@ Want to use {{fleet}} or some other feature not covered in the quickstarts? Foll % Stateful only for Universal profiling * [Get started with system metrics](../../solutions/observability/infra-and-hosts/get-started-with-system-metrics.md) -* [Get started with application traces and APM](../../solutions/observability/apps/fleet-managed-apm-server.md) -* [Get started with synthetic monitoring](../../solutions/observability/apps/synthetic-monitoring.md) +* [Get started with application traces and APM](/solutions/observability/apm/get-started-fleet-managed-apm-server.md) +* [Get started with synthetic monitoring](/solutions/observability/synthetics/index.md) * [Get started with Universal Profiling](../../solutions/observability/infra-and-hosts/get-started-with-universal-profiling.md) diff --git a/solutions/observability/get-started/create-an-observability-project.md b/solutions/observability/get-started/create-an-observability-project.md index 480130b46..9181513d6 100644 --- a/solutions/observability/get-started/create-an-observability-project.md +++ b/solutions/observability/get-started/create-an-observability-project.md @@ -46,5 +46,5 @@ To return to the onboarding page later, select **Add data** from the main menu. Learn how to add data to your project and start using {{obs-serverless}} features: * [Get started with system logs](../logs/get-started-with-system-logs.md) -* [Get started with traces and APM](../apps/get-started-with-apm.md) +* [Get started with traces and APM](/solutions/observability/apm/get-started.md) * [Get started with system metrics](../infra-and-hosts/get-started-with-system-metrics.md) diff --git a/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md b/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md index 34a02f9fc..7e0bcd8f1 100644 --- a/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md +++ b/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md @@ -19,7 +19,7 @@ This endpoint is designed for the following use cases: * APM: Application telemetry in OTLP format. :::{dropdown} Differences from the existing Elastic APM Endpoint -The Elastic Cloud Managed OTLP Endpoint ensures that OpenTelemetry data is stored without any schema translation, preserving both OpenTelemetry semantic conventions and resource attributes. It supports ingesting OTLP logs, metrics, and traces in a unified manner, ensuring consistent treatment across all telemetry data. This marks a significant improvement over the [existing functionality](/solutions/observability/apps/use-opentelemetry-with-apm.md), which primarily focuses on traces and the APM use case. +The Elastic Cloud Managed OTLP Endpoint ensures that OpenTelemetry data is stored without any schema translation, preserving both OpenTelemetry semantic conventions and resource attributes. It supports ingesting OTLP logs, metrics, and traces in a unified manner, ensuring consistent treatment across all telemetry data. This marks a significant improvement over the [existing functionality](/solutions/observability/apm/use-opentelemetry-with-apm.md), which primarily focuses on traces and the APM use case. ::: ## Prerequisites diff --git a/solutions/observability/get-started/what-is-elastic-observability.md b/solutions/observability/get-started/what-is-elastic-observability.md index d3ca45dd5..e6ca11676 100644 --- a/solutions/observability/get-started/what-is-elastic-observability.md +++ b/solutions/observability/get-started/what-is-elastic-observability.md @@ -44,7 +44,7 @@ The **Service** inventory provides a quick, high-level overview of the health an :screenshot: ::: -[Learn more about Application performance monitoring (APM) →](../../../solutions/observability/apps/application-performance-monitoring-apm.md) +[Learn more about Application performance monitoring (APM) →](/solutions/observability/apm/index.md) ## Infrastructure monitoring [metrics-overview] @@ -78,13 +78,13 @@ On the {{observability}} **Overview** page, the **{{user-experience}}** chart pr You can then drill down into the {{user-experience}} dashboard by clicking **Show dashboard** too see data by URL, operating system, browser, and location. - [Learn more about {{user-experience}} →](../../../solutions/observability/apps/real-user-monitoring-user-experience.md) + [Learn more about {{user-experience}} →](/solutions/observability/applications/user-experience.md) ## Synthetic monitoring [synthetic-monitoring-overview] Simulate actions and requests that an end user would perform on your site at predefined intervals and in a controlled environment. The end result is rich, consistent, and repeatable data that you can trend and alert on. -[Learn more about Synthetic monitoring →](../../../solutions/observability/apps/synthetic-monitoring.md) +[Learn more about Synthetic monitoring →](/solutions/observability/synthetics/index.md) % Stateful only for Universal Profiling. diff --git a/solutions/observability/incident-management/create-an-apm-anomaly-rule.md b/solutions/observability/incident-management/create-an-apm-anomaly-rule.md index b04b7b262..f400f869c 100644 --- a/solutions/observability/incident-management/create-an-apm-anomaly-rule.md +++ b/solutions/observability/incident-management/create-an-apm-anomaly-rule.md @@ -9,7 +9,7 @@ navigation_title: "APM anomaly" # Create an APM anomaly rule [observability-create-anomaly-alert-rule] ::::{important} -To use the APM Anomaly rule, you have to enable [machine learning](../../../solutions/observability/apps/integrate-with-machine-learning.md#observability-apm-integrate-with-machine-learning-enable-anomaly-detection), which requires an [appropriate license](https://www.elastic.co/subscriptions). +To use the APM Anomaly rule, you have to enable [machine learning](/solutions/observability/apm/machine-learning.md#observability-apm-integrate-with-machine-learning-enable-anomaly-detection), which requires an [appropriate license](https://www.elastic.co/subscriptions). :::: diff --git a/solutions/observability/incident-management/create-an-slo.md b/solutions/observability/incident-management/create-an-slo.md index 48c07047d..e4b3d7c54 100644 --- a/solutions/observability/incident-management/create-an-slo.md +++ b/solutions/observability/incident-management/create-an-slo.md @@ -184,9 +184,9 @@ Create an indicator based on the availability of your synthetic monitors. Availa When defining a Synthetics availability SLI, set the following fields: -* **Monitor name** — The name of one or more [synthetic monitors](../../../solutions/observability/apps/configure-synthetics-projects.md). -* **Project** — The ID of one or more [projects](../../../solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-project) containing synthetic monitors. -* **Tags** — One or more [tags](../../../solutions/observability/apps/configure-synthetics-projects.md) assigned to synthetic monitors. +* **Monitor name** — The name of one or more [synthetic monitors](/solutions/observability/synthetics/configure-projects.md). +* **Project** — The ID of one or more [projects](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-project) containing synthetic monitors. +* **Tags** — One or more [tags](/solutions/observability/synthetics/configure-projects.md) assigned to synthetic monitors. * **Query filter** — An optional KQL query used to filter the Synthetics checks on some relevant criteria. ::::{note} diff --git a/solutions/observability/incident-management/create-an-uptime-duration-anomaly-rule.md b/solutions/observability/incident-management/create-an-uptime-duration-anomaly-rule.md index 23c122a35..e60b53bda 100644 --- a/solutions/observability/incident-management/create-an-uptime-duration-anomaly-rule.md +++ b/solutions/observability/incident-management/create-an-uptime-duration-anomaly-rule.md @@ -12,10 +12,10 @@ applies: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: -Within the {{uptime-app}}, create an **Uptime duration anomaly** rule to receive notifications based on the response durations for all of the geographic locations of each monitor. When a monitor runs for an unusual amount of time, at a particular time, an anomaly is recorded and highlighted on the [Monitor duration](../apps/inspect-uptime-duration-anomalies.md) chart. +Within the {{uptime-app}}, create an **Uptime duration anomaly** rule to receive notifications based on the response durations for all of the geographic locations of each monitor. When a monitor runs for an unusual amount of time, at a particular time, an anomaly is recorded and highlighted on the [Monitor duration](/solutions/observability/uptime/inspect-duration-anomalies.md) chart. ## Conditions [duration-alert-conditions] @@ -41,7 +41,7 @@ The *anomaly score* is a value from `0` to `100`, which indicates the significan Extend your rules by connecting them to actions that use the following supported built-in integrations. Actions are {{kib}} services or integrations with third-party systems that run as background tasks on the {{kib}} server when rule conditions are met. -You can configure action types on the [Settings](../apps/configure-settings.md#configure-uptime-alert-connectors) page. +You can configure action types on the [Settings](/solutions/observability/uptime/configure-settings.md#configure-uptime-alert-connectors) page. * [D3 Security](kibana://reference/connectors-kibana/d3security-action-type.md) * [Email](kibana://reference/connectors-kibana/email-action-type.md) diff --git a/solutions/observability/incident-management/create-monitor-status-rule.md b/solutions/observability/incident-management/create-monitor-status-rule.md index 517a8ba51..4f7b8b68f 100644 --- a/solutions/observability/incident-management/create-monitor-status-rule.md +++ b/solutions/observability/incident-management/create-monitor-status-rule.md @@ -217,7 +217,7 @@ The final step when creating a rule is to select one or more actions to take whe You can extend your rules by connecting them to actions that use the following supported built-in integrations. Actions are {{kib}} services or integrations with third-party systems that run as background tasks on the {{kib}} server when rule conditions are met. -You can configure action types on the [Settings](../../../solutions/observability/apps/configure-settings.md#configure-uptime-alert-connectors) page. +You can configure action types on the [Settings](/solutions/observability/uptime/configure-settings.md#configure-uptime-alert-connectors) page. :::{image} /solutions/images/observability-uptime-alert-connectors.png :alt: Uptime rule connectors diff --git a/solutions/observability/incident-management/create-tls-certificate-rule.md b/solutions/observability/incident-management/create-tls-certificate-rule.md index 5985743d4..592c2a718 100644 --- a/solutions/observability/incident-management/create-tls-certificate-rule.md +++ b/solutions/observability/incident-management/create-tls-certificate-rule.md @@ -11,7 +11,7 @@ In {{kib}}, you can create a rule that notifies you when one or more of your mon There are two types of TLS certificate rule: -* [Synthetics TLS certificate rule](#tls-rule-synthetics) for use with [Elastic Synthetics](../apps/synthetic-monitoring.md). +* [Synthetics TLS certificate rule](#tls-rule-synthetics) for use with [Elastic Synthetics](/solutions/observability/synthetics/index.md). * [8.15.0] [Uptime TLS rule](#tls-rule-uptime) for use with the {{uptime-app}}. @@ -162,7 +162,7 @@ serverless: unavailable ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: @@ -195,7 +195,7 @@ In this example, the conditions are met when any of the TLS certificates on site Extend your rules by connecting them to actions that use the following supported built-in integrations. Actions are {{kib}} services or integrations with third-party systems that run as background tasks on the {{kib}} server when rule conditions are met. -You can configure action types on the [Settings](../apps/configure-settings.md#configure-uptime-alert-connectors) page. +You can configure action types on the [Settings](/solutions/observability/uptime/configure-settings.md#configure-uptime-alert-connectors) page. * [D3 Security](kibana://reference/connectors-kibana/d3security-action-type.md) * [Email](kibana://reference/connectors-kibana/email-action-type.md) diff --git a/solutions/observability/infra-and-hosts/analyze-compare-hosts.md b/solutions/observability/infra-and-hosts/analyze-compare-hosts.md index 4aa9c4611..01aa09971 100644 --- a/solutions/observability/infra-and-hosts/analyze-compare-hosts.md +++ b/solutions/observability/infra-and-hosts/analyze-compare-hosts.md @@ -392,4 +392,4 @@ When a host is detected by APM, but is not collecting full metrics (for example, This could mean that the APM agent has not been configured to use the correct host name. Instead, the host name might be the container name or the Kubernetes pod name. -To get the correct host name, you need to set some additional configuration options, specifically `system.kubernetes.node.name` as described in [Kubernetes data](../../../solutions/observability/apps/managed-intake-service-event-api.md#kubernetes-data). \ No newline at end of file +To get the correct host name, you need to set some additional configuration options, specifically `system.kubernetes.node.name` as described in [Kubernetes data](/solutions/observability/apm/managed-intake-service-event-api.md#kubernetes-data). \ No newline at end of file diff --git a/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md b/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md index d9e1aac9e..f4ad6f67a 100644 --- a/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md +++ b/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md @@ -141,4 +141,4 @@ Now that you’ve added metrics and explored your data, learn how to onboard oth * [Get started with system logs](../../../solutions/observability/logs/get-started-with-system-logs.md) * [Stream any log file](../../../solutions/observability/logs/stream-any-log-file.md) -* [Get started with traces and APM](../../../solutions/observability/apps/get-started-with-apm.md) \ No newline at end of file +* [Get started with traces and APM](/solutions/observability/apm/get-started.md) \ No newline at end of file diff --git a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md index d7e993ec3..161ff51c6 100644 --- a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md +++ b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md @@ -546,7 +546,7 @@ If you want to manage APM yourself, there are a few alternative options: * [{{ecloud}} on Kubernetes (ECK)](https://www.elastic.co/guide/en/cloud-on-k8s/current/) — The Elastic recommended approach for managing APM Server deployed with Kubernetes. Built on the Kubernetes Operator pattern, ECK extends basic Kubernetes orchestration capabilities to support the setup and management of APM Server on Kubernetes. * Deploy APM Server as a DaemonSet — Ensure a running instance of APM Server on each node in your cluster. 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. -* [Download and install APM Server](../apps/get-started-with-apm.md) — The classic, non-Kubernetes option. +* [Download and install APM Server](/solutions/observability/apm/get-started.md) — The classic, non-Kubernetes option. :::: @@ -554,7 +554,7 @@ If you want to manage APM yourself, there are a few alternative options: ### Step 2: Save your secret token [_step_2_save_your_secret_token] -A [secret token](../apps/secret-token.md) is used to secure communication between APM agents and APM Server. To create or update your secret token in {{kib}}: +A [secret token](/solutions/observability/apm/secret-token.md) is used to secure communication between APM agents and APM Server. To create or update your secret token in {{kib}}: 1. Find **Fleet** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Under the **Agent policies** tab, select the policy you would like to configure. @@ -571,7 +571,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 [secret token](../apps/secret-token.md) for instructions on how to set up your secret token. +If you’re managing APM Server yourself, see [secret token](/solutions/observability/apm/secret-token.md) 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/solutions/observability/infra-and-hosts/view-infrastructure-metrics-by-resource-type.md b/solutions/observability/infra-and-hosts/view-infrastructure-metrics-by-resource-type.md index c95277361..b4867f77a 100644 --- a/solutions/observability/infra-and-hosts/view-infrastructure-metrics-by-resource-type.md +++ b/solutions/observability/infra-and-hosts/view-infrastructure-metrics-by-resource-type.md @@ -362,5 +362,5 @@ Select your resource, and from the **Metric** filter menu, click **Add metric**. Depending on the features you have installed and configured, you can view logs or traces relating to a specific resource. For example, in the high-level view, when you click a Kubernetes Pod resource, you can choose: * **Kubernetes Pod logs** to [view corresponding logs](../../../solutions/observability/logs.md) in the {{logs-app}}. -* **Kubernetes Pod APM traces** to [view corresponding APM traces](../../../solutions/observability/apps/application-performance-monitoring-apm.md) in the {{apm-app}}. -* **Kubernetes Pod in Uptime** to [view related uptime information](../../../solutions/observability/apps/synthetic-monitoring.md) in the {{uptime-app}}. \ No newline at end of file +* **Kubernetes Pod APM traces** to [view corresponding APM traces](/solutions/observability/apm/index.md) in the {{apm-app}}. +* **Kubernetes Pod in Uptime** to [view related uptime information](/solutions/observability/synthetics/index.md) in the {{uptime-app}}. \ No newline at end of file diff --git a/solutions/observability/logs/get-started-with-system-logs.md b/solutions/observability/logs/get-started-with-system-logs.md index 58bc52446..d58743c5d 100644 --- a/solutions/observability/logs/get-started-with-system-logs.md +++ b/solutions/observability/logs/get-started-with-system-logs.md @@ -35,6 +35,6 @@ After the agent is installed and successfully streaming log data, you can view t Now that you’ve added logs and explored your data, learn how to onboard other types of data: * [Stream any log file](stream-any-log-file.md) -* [Get started with traces and APM](../apps/get-started-with-apm.md) +* [Get started with traces and APM](/solutions/observability/apm/get-started.md) To onboard other types of data, select **Add Data** from the main menu. diff --git a/solutions/observability/apps/analyze-data-from-synthetic-monitors.md b/solutions/observability/synthetics/analyze-data.md similarity index 88% rename from solutions/observability/apps/analyze-data-from-synthetic-monitors.md rename to solutions/observability/synthetics/analyze-data.md index a7604d5c6..9cd3c2438 100644 --- a/solutions/observability/apps/analyze-data-from-synthetic-monitors.md +++ b/solutions/observability/synthetics/analyze-data.md @@ -70,14 +70,14 @@ The **Overview** tab has information about the monitor availability, duration, a The **History** tab has information on every time the monitor has run. It includes some high-level stats and a complete list of all test runs. Use the calendar icon (![Calendar icon](/solutions/images/observability-calendar.svg "")) and search bar to filter for runs that occurred in a specific time period. -For browser monitors, you can click on any run in the **Test runs** list to see the details for that run. Read more about what information is included the in [Details for one run](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-run) section below. +For browser monitors, you can click on any run in the **Test runs** list to see the details for that run. Read more about what information is included the in [Details for one run](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-run) section below. :::{image} /solutions/images/observability-synthetics-analyze-individual-monitor-history.png :alt: The History tab on the individual monitor page for all monitor types in the {synthetics-app} :screenshot: ::: -If the monitor is configured to [retest on failure](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor), you’ll see retests listed in the **Test runs** table. Runs that are retests include a rerun icon (![Refresh icon](/solutions/images/observability-refresh.svg "")) next to the result badge. +If the monitor is configured to [retest on failure](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor), you’ll see retests listed in the **Test runs** table. Runs that are retests include a rerun icon (![Refresh icon](/solutions/images/observability-refresh.svg "")) next to the result badge. :::{image} /solutions/images/observability-synthetics-retest.png :alt: A failed run and a retest in the table of test runs in the {synthetics-app} @@ -86,11 +86,11 @@ If the monitor is configured to [retest on failure](/solutions/observability/app ### Errors [synthetics-analyze-individual-monitors-errors] -The **Errors** tab has information on failed runs. If the monitor is configured to [retest on failure](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor), failed runs will only result in an error if both the initial run and the rerun fail. This can reduce noise related to transient problems. +The **Errors** tab has information on failed runs. If the monitor is configured to [retest on failure](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor), failed runs will only result in an error if both the initial run and the rerun fail. This can reduce noise related to transient problems. The Errors tab includes a high-level overview of all alerts and a complete list of all failures. Use the calendar icon (![Calendar icon](/solutions/images/observability-calendar.svg "")) and search bar to filter for runs that occurred in a specific time period. -For browser monitors, you can click on any run in the **Error** list to open an **Error details** page that includes most of the same information that is included the in [Details for one run](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-run) section below. +For browser monitors, you can click on any run in the **Error** list to open an **Error details** page that includes most of the same information that is included the in [Details for one run](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-run) section below. :::{image} /solutions/images/observability-synthetics-analyze-individual-monitor-errors.png :alt: The Errors tab on the individual monitor page for all monitor types in the {synthetics-app} @@ -112,7 +112,7 @@ The journey page on the Overview tab includes: * An overview of the **last test run** including high-level information for each step. * **Alerts** to date including both active and recovered alerts. * **Duration by step** over the last 24 hours. -* A list of the **last 10 test runs** that link to the [details for each run](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-run). +* A list of the **last 10 test runs** that link to the [details for each run](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-run). :::{image} /solutions/images/observability-synthetics-analyze-journeys-over-time.png :alt: Individual journey page for browser monitors in the {synthetics-app} @@ -121,8 +121,8 @@ The journey page on the Overview tab includes: From here, you can either drill down into: -* The latest run of the full journey by clicking **![Inspect icon](/solutions/images/observability-inspect.svg "") View test run** or a past run in the list of **Last 10 test runs**. This will take you to the view described below in [Details for one run](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-run). -* An individual step in this run by clicking the performance breakdown icon (![Performance breakdown icon](/solutions/images/observability-apmTrace.svg "")) next to one of the steps. This will take you to the view described below in [Details for one step](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step). +* The latest run of the full journey by clicking **![Inspect icon](/solutions/images/observability-inspect.svg "") View test run** or a past run in the list of **Last 10 test runs**. This will take you to the view described below in [Details for one run](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-run). +* An individual step in this run by clicking the performance breakdown icon (![Performance breakdown icon](/solutions/images/observability-apmTrace.svg "")) next to one of the steps. This will take you to the view described below in [Details for one step](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step). ### Details for one run [synthetics-analyze-one-run] @@ -137,13 +137,13 @@ Navigate through each step using **![Previous icon](/solutions/images/observabil :screenshot: ::: -Scroll down to dig into the steps in this journey run. Click the ![Arrow right icon](/solutions/images/observability-arrowRight.svg "") icon next to the step number to show details. The details include metrics for the step in the current run and the step in the last successful run. Read more about step-level metrics below in [Timing](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step-timing) and [Metrics](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step-metrics). +Scroll down to dig into the steps in this journey run. Click the ![Arrow right icon](/solutions/images/observability-arrowRight.svg "") icon next to the step number to show details. The details include metrics for the step in the current run and the step in the last successful run. Read more about step-level metrics below in [Timing](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step-timing) and [Metrics](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step-metrics). This is particularly useful to compare the metrics for a failed step to the last time it completed successfully when trying to diagnose the reason it failed. ![Step list on a page detailing one run of a browser monitor in the Synthetics UI](/solutions/images/observability-synthetics-analyze-one-run-compare-steps.png "") -Drill down to see even more details for an individual step by clicking the performance breakdown icon (![Performance breakdown icon](/solutions/images/observability-apmTrace.svg "")) next to one of the steps. This will take you to the view described below in [Details for one step](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step). +Drill down to see even more details for an individual step by clicking the performance breakdown icon (![Performance breakdown icon](/solutions/images/observability-apmTrace.svg "")) next to one of the steps. This will take you to the view described below in [Details for one step](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step). ### Details for one step [synthetics-analyze-one-step] @@ -154,7 +154,7 @@ After clicking the performance breakdown icon (![Performance breakdown icon](/so By default the synthetics library will capture a screenshot for each step regardless of whether the step completed or failed. ::::{note} -Customize screenshot behavior for all monitors in the [configuration file](/solutions/observability/apps/configure-synthetics-projects.md), for one monitor using [`monitor.use`](/solutions/observability/apps/configure-individual-browser-monitors.md), or for a run using the [CLI](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-command). +Customize screenshot behavior for all monitors in the [configuration file](/solutions/observability/synthetics/configure-projects.md), for one monitor using [`monitor.use`](/solutions/observability/synthetics/configure-individual-browser-monitors.md), or for a run using the [CLI](/solutions/observability/synthetics/cli.md#elastic-synthetics-command). :::: @@ -179,7 +179,7 @@ The **Timing** visualization shows a breakdown of the time spent in each part of Next to each network timing metric, there’s an icon that indicates whether the value is higher (![Value is higher icon](/solutions/images/observability-sortUp.svg "")), lower (![Value is lower icon](/solutions/images/observability-sortDown.svg "")), or the same (![Value is the same](/solutions/images/observability-minus.svg "")) compared to the median of all runs in the last 24 hours. Hover over the icon to see more details in a tooltip. -This gives you an overview of how much time is spent (and how that time is spent) loading resources. This high-level information may not help you diagnose a problem on its own, but it could act as a signal to look at more granular information in the [Network requests](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step-network) section. +This gives you an overview of how much time is spent (and how that time is spent) loading resources. This high-level information may not help you diagnose a problem on its own, but it could act as a signal to look at more granular information in the [Network requests](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step-network) section. :::{image} /solutions/images/observability-synthetics-analyze-one-step-timing.png :alt: Network timing visualization for one step in a browser monitor in the {synthetics-app} @@ -223,7 +223,7 @@ This provides a different kind of analysis. For example, you might have a large The **Network requests** visualization is a waterfall chart that shows every request the page made when a user executed it. Each line in the chart represents an HTTP network request and helps you quickly identify what resources are taking the longest to load and in what order they are loading. -The colored bars within each line indicate the time spent per resource. Each color represents a different part of that resource’s loading process (as defined in the [Timing](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-one-step-timing) section above) and includes the time spent downloading content for specific Multipurpose Internet Mail Extensions (MIME) types: HTML, JS, CSS, Media, Font, XHR, and Other. +The colored bars within each line indicate the time spent per resource. Each color represents a different part of that resource’s loading process (as defined in the [Timing](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-one-step-timing) section above) and includes the time spent downloading content for specific Multipurpose Internet Mail Extensions (MIME) types: HTML, JS, CSS, Media, Font, XHR, and Other. Understanding each phase of a request can help you improve your site’s speed by reducing the time spent in each phase. diff --git a/solutions/observability/apps/use-synthetics-cli.md b/solutions/observability/synthetics/cli.md similarity index 80% rename from solutions/observability/apps/use-synthetics-cli.md rename to solutions/observability/synthetics/cli.md index 555537a84..5d05d24ee 100644 --- a/solutions/observability/apps/use-synthetics-cli.md +++ b/solutions/observability/synthetics/cli.md @@ -30,22 +30,22 @@ You will not need to use most command line flags. However, there are some you ma : RegExp pattern to match journey files in the current working directory. Defaults to `/*.journey.(ts|js)$/`, which matches files ending with `.journey.ts` or `.journey.js`. `--params ` -: JSON object that defines any variables your tests require. Read more in [Work with params and secrets](/solutions/observability/apps/work-with-params-secrets.md). +: JSON object that defines any variables your tests require. Read more in [Work with params and secrets](/solutions/observability/synthetics/work-with-params-secrets.md). - Params passed will be merged with params defined in your [`synthetics.config.js` file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-params). Params defined via the CLI take precedence. + Params passed will be merged with params defined in your [`synthetics.config.js` file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-params). Params defined via the CLI take precedence. `--playwright-options ` -: JSON object to pass in custom Playwright options for the agent. For more details on relevant Playwright options, refer to the [the configuration docs](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-playwright-options). +: JSON object to pass in custom Playwright options for the agent. For more details on relevant Playwright options, refer to the [the configuration docs](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-playwright-options). - Options passed will be merged with Playwright options defined in your [`synthetics.config.js` file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-playwright-options). Options defined via the CLI take precedence. + Options passed will be merged with Playwright options defined in your [`synthetics.config.js` file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-playwright-options). Options defined via the CLI take precedence. `--screenshots ` : Control whether or not to capture screenshots at the end of each step. Options include `'on'`, `'off'`, or `'only-on-failure'`. - This can also be set in the configuration file using [`monitor.screenshot`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`monitor.screenshot`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. `-c, --config ` -: Path to the configuration file. By default, test runner looks for a `synthetics.config.(js|ts)` file in the current directory. Synthetics configuration provides options to configure how your tests are run and pushed to Elastic. Allowed options are described in the [configuration file](/solutions/observability/apps/configure-synthetics-projects.md). +: Path to the configuration file. By default, test runner looks for a `synthetics.config.(js|ts)` file in the current directory. Synthetics configuration provides options to configure how your tests are run and pushed to Elastic. Allowed options are described in the [configuration file](/solutions/observability/synthetics/configure-projects.md). `--reporter ` : One of `json`, `junit`, `buildkite-cli`, or `default`. Use the JUnit or Buildkite reporter to provide easily parsed output to CI systems. @@ -56,7 +56,7 @@ You will not need to use most command line flags. However, there are some you ma `--no-throttling` : Does not apply throttling. - Throttling can also be disabled in the configuration file using [`monitor.throttling`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + Throttling can also be disabled in the configuration file using [`monitor.throttling`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. ::::{note} Network throttling for browser based monitors is disabled. See this [documention](https://github.com/elastic/synthetics/blob/main/docs/throttling.md) for more details. @@ -96,7 +96,7 @@ This will create a template Node.js project that includes the synthetics agent, npx @elastic/synthetics init ``` -Read more about what’s included in a template Synthetics project in [Create a Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md). +Read more about what’s included in a template Synthetics project in [Create a Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md). ## `@elastic/synthetics push` [elastic-synthetics-push-command] @@ -126,56 +126,56 @@ If the journey contains external NPM packages other than the `@elastic/synthetic `--auth ` : API key used for [authentication](/deploy-manage/api-keys/elasticsearch-api-keys.md). You can also set the API key via the `SYNTHETICS_API_KEY` environment variable. - If you are pushing to a [{{private-location}}](/solutions/observability/apps/create-monitors-in-synthetics-app.md), you must use an API key generated in 8.4 or higher. + If you are pushing to a [{{private-location}}](/solutions/observability/synthetics/create-monitors-ui.md), you must use an API key generated in 8.4 or higher. - On {{stack}}, you must be logged into {{kib}} as a user with the privileges described in [Writer role](/solutions/observability/apps/writer-role.md) to create an API key. + On {{stack}}, you must be logged into {{kib}} as a user with the privileges described in [Writer role](/solutions/observability/synthetics/writer-role.md) to create an API key. - On {{obs-serverless}}, you must be logged in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access to create an API key. + On {{obs-serverless}}, you must be logged in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access to create an API key. `--id ` : A unique id associated with your project. It will be used for logically grouping monitors. - If you used [`init` to create a project](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-init-command), this is the `` you specified. + If you used [`init` to create a project](/solutions/observability/synthetics/cli.md#elastic-synthetics-init-command), this is the `` you specified. - This can also be set in the configuration file using [`project.id`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`project.id`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. `--url ` : The URL for the deployment or Observability Serverless project to which you want to upload the monitors. - This can also be set in the configuration file using [`project.url`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`project.url`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. % Stateful only for --space `--space ` : The identifier of the target [{{kib}} space](/deploy-manage/manage-spaces.md) for the pushed monitors. Spaces help you organize pushed monitors. Pushes to the "default" space if not specified. - This can also be set in the configuration file using [`project.space`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`project.space`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-project). The value defined via the CLI will take precedence. `--schedule ` : The interval (in minutes) at which the monitor should run. - This can also be set in the configuration file using [`monitor.schedule`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`monitor.schedule`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. [`--locations Array`](https://github.com/elastic/synthetics/blob/v1.3.0/src/locations/public-locations.ts#L28-L37) : Where to deploy the monitor. Monitors can be deployed in multiple locations so that you can detect differences in availability and response times across those locations. - To list available locations, refer to [`@elastic/synthetics locations`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command). + To list available locations, refer to [`@elastic/synthetics locations`](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). - This can also be set in the configuration file using [`monitor.locations` in the configuration file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`monitor.locations` in the configuration file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. `--private-locations Array` -: The [{{private-location}}s](/solutions/observability/apps/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. +: The [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. - To list available {{private-location}}s, refer to [`@elastic/synthetics locations`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command). + To list available {{private-location}}s, refer to [`@elastic/synthetics locations`](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). - This can also be set in the configuration file using [`monitor.privateLocations` in the configuration file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [`monitor.privateLocations` in the configuration file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. `--fields ` -: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-individual-monitors-overview). +: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-individual-monitors-overview). Example: `--fields '{ "foo": bar", "team": "synthetics" }'` - This can also be set in the configuration file using [the `monitor.fields` option](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. + This can also be set in the configuration file using [the `monitor.fields` option](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). The value defined via the CLI will take precedence. `--yes` : The `push` command includes interactive prompts to prevent you from accidentally deleting or duplicating monitors. If running the CLI non-interactively, you can override these prompts using the `--yes` option. When the `--yes` option is passed to `push`: @@ -208,7 +208,7 @@ tags: - env:qa ``` -To apply tags to all browser and lightweight monitors, configure using [the `monitor.tags`](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor) field in the `synthetics.config.ts` file. +To apply tags to all browser and lightweight monitors, configure using [the `monitor.tags`](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor) field in the `synthetics.config.ts` file. ### Filter monitors [_filtering_monitors] diff --git a/solutions/observability/apps/configure-individual-browser-monitors.md b/solutions/observability/synthetics/configure-individual-browser-monitors.md similarity index 75% rename from solutions/observability/apps/configure-individual-browser-monitors.md rename to solutions/observability/synthetics/configure-individual-browser-monitors.md index f241687ab..32782a102 100644 --- a/solutions/observability/apps/configure-individual-browser-monitors.md +++ b/solutions/observability/synthetics/configure-individual-browser-monitors.md @@ -11,17 +11,17 @@ applies_to: # Configure individual browser monitors [synthetics-monitor-use] ::::{note} -This is only relevant for monitors that are created and managed using a [Synthetics project](/solutions/observability/apps/get-started.md#observability-synthetics-get-started-synthetics-project). For more information on configuring browser monitors added in the UI, refer to [Create monitors in the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md). +This is only relevant for monitors that are created and managed using a [Synthetics project](/solutions/observability/synthetics/get-started.md#observability-synthetics-get-started-synthetics-project). For more information on configuring browser monitors added in the UI, refer to [Create monitors in the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md). :::: -After [writing synthetic journeys](/solutions/observability/apps/write-synthetic-test.md), you can use `monitor.use` to configure the browser monitors that will run your tests. +After [writing synthetic journeys](/solutions/observability/synthetics/write-synthetic-test.md), you can use `monitor.use` to configure the browser monitors that will run your tests. You’ll need to set a few configuration options: * **Give your monitor a name.** Provide a human readable name and a unique ID for the monitor. This will appear in {{kib}} or your Observability Serverless project where you can view and manage monitors after they’re created. * **Set the schedule.** Specify the interval at which your tests will run. -* **Specify where the monitors should run.** You can run monitors on Elastic’s global managed testing infrastructure or [create a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md) to run monitors from your own premises. +* **Specify where the monitors should run.** You can run monitors on Elastic’s global managed testing infrastructure or [create a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to run monitors from your own premises. * **Set other options as needed.** There are several other options you can set to customize your implementation including params, tags, screenshot options, throttling options, and more. Configure each monitor directly in your `journey` code using `monitor.use`. The `monitor` API allows you to set unique options for each journey’s monitor directly through code. For example: @@ -52,4 +52,4 @@ journey('Ensure placeholder is correct', ({ page, params }) => { }); ``` -For each journey, you can specify its `schedule` and the `locations` in which it runs. When those options are not set, Synthetics will use the default values in the global configuration file. For more details, refer to [Configure a Synthetics project](/solutions/observability/apps/configure-synthetics-projects.md). +For each journey, you can specify its `schedule` and the `locations` in which it runs. When those options are not set, Synthetics will use the default values in the global configuration file. For more details, refer to [Configure a Synthetics project](/solutions/observability/synthetics/configure-projects.md). diff --git a/solutions/observability/apps/configure-lightweight-monitors.md b/solutions/observability/synthetics/configure-lightweight-monitors.md similarity index 79% rename from solutions/observability/apps/configure-lightweight-monitors.md rename to solutions/observability/synthetics/configure-lightweight-monitors.md index 18197186e..305dfda90 100644 --- a/solutions/observability/apps/configure-lightweight-monitors.md +++ b/solutions/observability/synthetics/configure-lightweight-monitors.md @@ -15,11 +15,11 @@ Monitor the status of network endpoints using the following lightweight checks: * **ICMP**: Check the availability of your hosts. The ICMP monitor uses ICMP (v4 and v6) Echo Requests to check the network reachability of the hosts you are pinging. This will tell you whether the host is available and connected to the network, but doesn’t tell you if a service on the host is running or not. * **TCP**: Monitor the services running on your hosts. The TCP monitor checks individual ports to make sure the service is accessible and running. -Lightweight monitors can be configured using either the [Synthetics UI](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-ui) or [{{project-monitors-cap}}](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-projects). +Lightweight monitors can be configured using either the [Synthetics UI](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-ui) or [{{project-monitors-cap}}](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-projects). ## Synthetics UI [synthetics-lightweight-ui] -To use the UI, go to the Synthetics UI in {{kib}} or in your Observability Serverless project to create and configure monitors. For step-by-step instructions, refer to [Use the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md). +To use the UI, go to the Synthetics UI in {{kib}} or in your Observability Serverless project to create and configure monitors. For step-by-step instructions, refer to [Use the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md). :::{image} /solutions/images/observability-synthetics-get-started-ui-lightweight.png :alt: Synthetics Create monitor UI @@ -28,7 +28,7 @@ To use the UI, go to the Synthetics UI in {{kib}} or in your Observability Serve ## {{project-monitors-cap}} [synthetics-lightweight-projects] -To use YAML files to create lightweight monitors in a Synthetics project, [set up the Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md) and configure monitors in YAML files in the `lightweight` directory. +To use YAML files to create lightweight monitors in a Synthetics project, [set up the Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md) and configure monitors in YAML files in the `lightweight` directory. In each YAML file, define a set of `monitors` to check your remote hosts. Each `monitor` item is an entry in a YAML list and begins with a dash (`-`). You can define the type of monitor to use, the hosts to check, and other optional settings. @@ -56,13 +56,13 @@ heartbeat.monitors: ``` $$$synthetics-monitor-options$$$ -There are some common monitor configuration options that are the same for all lightweight monitor types. For a complete list, refer to [Common options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-common-options). +There are some common monitor configuration options that are the same for all lightweight monitor types. For a complete list, refer to [Common options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-common-options). Each monitor type also has additional configuration options that are specific to that type. Refer to: -* [HTTP options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-http) -* [ICMP options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-icmp) -* [TCP options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-tcp) +* [HTTP options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-http) +* [ICMP options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-icmp) +* [TCP options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-tcp) The `tcp` and `http` monitor types both support SSL/TLS and some proxy settings. @@ -84,7 +84,7 @@ $$$monitor-type$$$ $$$monitor-id$$$ **`id`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) **Required**. A unique identifier for this configuration. This should not change with edits to the monitor configuration regardless of changes to any config fields. @@ -108,7 +108,7 @@ $$$monitor-id$$$ $$$monitor-name$$$ **`name`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) Human readable name for this monitor. @@ -125,14 +125,14 @@ $$$monitor-name$$$ $$$monitor-service_name$$$ **`service.name`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) APM service name for this monitor. Corresponds to the `service.name` ECS field. Set this when monitoring an app that is also using APM to enable integrations between Synthetics and APM data in Kibana or your Observability Serverless project. $$$monitor-enabled$$$ **`enabled`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) Whether the monitor is enabled. @@ -147,7 +147,7 @@ $$$monitor-enabled$$$ $$$monitor-schedule$$$ **`schedule`** -: Type: [duration](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) +: Type: [duration](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) **Required**. The task schedule. @@ -164,7 +164,7 @@ $$$monitor-schedule$$$ $$$monitor-timeout$$$ **`timeout`** -: Type: [duration](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) +: Type: [duration](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) The total running time for each ping test. This is the total time allowed for testing the connection and exchanging data. @@ -179,7 +179,7 @@ $$$monitor-timeout$$$ $$$monitor-tags$$$ **`tags`** -: Type: list of [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s +: Type: list of [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s A list of tags that will be sent with the monitor event. @@ -212,7 +212,7 @@ $$$monitor-mode$$$ $$$monitor-ipv4$$$ **`ipv4`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) Whether to ping using the ipv4 protocol if hostnames are configured. @@ -227,7 +227,7 @@ $$$monitor-ipv4$$$ $$$monitor-ipv6$$$ **`ipv6`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) Whether to ping using the ipv6 protocol if hostnames are configured. @@ -242,9 +242,9 @@ $$$monitor-ipv6$$$ $$$monitor-alert$$$ **`alert`** -: Enable or disable alerts on this monitor. Read more about alerts in [Alerting](/solutions/observability/apps/configure-synthetics-settings.md#synthetics-settings-alerting). +: Enable or disable alerts on this monitor. Read more about alerts in [Alerting](/solutions/observability/synthetics/configure-settings.md#synthetics-settings-alerting). - **`status.enabled`** ([boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool)) + **`status.enabled`** ([boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool)) : Enable monitor status alerts on this monitor. **Default**: `true` @@ -255,7 +255,7 @@ $$$monitor-alert$$$ alert.status.enabled: true ``` - **`tls.enabled`** ([boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool)) + **`tls.enabled`** ([boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool)) : Enable TLS certificate alerts on this monitor. **Default**: `true` @@ -269,7 +269,7 @@ $$$monitor-alert$$$ $$$monitor-retest_on_failure$$$ **`retest_on_failure`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) Enable or disable retesting when a monitor fails. Default is `true`. @@ -290,7 +290,7 @@ $$$monitor-locations$$$ To list available locations you can: - * Run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command). + * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). * Find `Synthetics` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) and click **Create monitor**. Locations will be listed in *Locations*. **Examples**: @@ -306,7 +306,7 @@ $$$monitor-locations$$$ ``` ::::{note} - This can also be set using [`monitor.locations` in the Synthetics project configuration file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor) or via the CLI using the [`--location` flag on `push`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). + This can also be set using [`monitor.locations` in the Synthetics project configuration file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor) or via the CLI using the [`--location` flag on `push`](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). The value defined via the CLI takes precedence over the value defined in the lightweight monitor configuration, and the value defined in the lightweight monitor configuration takes precedence over the value defined in the Synthetics project configuration file. @@ -315,13 +315,13 @@ $$$monitor-locations$$$ $$$monitor-private_locations$$$ **`private_locations`** -: Type: list of [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s +: Type: list of [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s - The [{{private-location}}s](/solutions/observability/apps/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. + The [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. To list available {{private-location}}s you can: - * Run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command) and specify the {{kib}} URL of the deployment. This will fetch all available private locations associated with the deployment. + * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) and specify the {{kib}} URL of the deployment. This will fetch all available private locations associated with the deployment. * Find `Synthetics` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) and click **Create monitor**. {{private-location}}s will be listed in *Locations*. **Examples**: @@ -337,7 +337,7 @@ $$$monitor-private_locations$$$ ``` ::::{note} - This can also be set using [`monitor.privateLocations` in the Synthetics project configuration file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor) or via the CLI using the [`--privateLocations` flag on `push`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). + This can also be set using [`monitor.privateLocations` in the Synthetics project configuration file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor) or via the CLI using the [`--privateLocations` flag on `push`](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). The value defined via the CLI takes precedence over the value defined in the lightweight monitor configuration, and the value defined in the lightweight monitor configuration takes precedence over the value defined in Synthetics project configuration file. @@ -346,7 +346,7 @@ $$$monitor-private_locations$$$ $$$monitor-fields$$$ **`fields`** -: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-individual-monitors-overview). +: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-individual-monitors-overview). **Examples**: @@ -365,19 +365,19 @@ $$$monitor-fields$$$ The options described here configure Synthetics to connect via HTTP and optionally verify that the host returns the expected response. -Valid options for HTTP monitors include [all common options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following HTTP-specific options: +Valid options for HTTP monitors include [all common options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following HTTP-specific options: $$$monitor-http-urls$$$ **`urls`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) **Required**. The URL to ping. $$$monitor-http-max_redirects$$$ **`max_redirects`** -: Type: [number](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-numbers) +: Type: [number](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-numbers) The total number of redirections Synthetics will follow. @@ -395,7 +395,7 @@ $$$monitor-http-proxy_headers$$$ $$$monitor-http-proxy_url$$$ **`proxy_url`** -: ([string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)) The HTTP proxy URL. This setting is optional. +: ([string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)) The HTTP proxy URL. This setting is optional. **Example**: @@ -406,7 +406,7 @@ $$$monitor-http-proxy_url$$$ $$$monitor-http-username$$$ **`username`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) The username for authenticating with the server. The credentials are passed with the request. This setting is optional. @@ -415,7 +415,7 @@ $$$monitor-http-username$$$ $$$monitor-http-password$$$ **`password`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) The password for authenticating with the server. This setting is optional. @@ -442,7 +442,7 @@ $$$monitor-http-ssl$$$ $$$monitor-http-headers$$$ **`headers`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) Controls the indexing of the HTTP response headers `http.response.body.headers` field. Set `response.include_headers` to `false` to disable. @@ -460,7 +460,7 @@ $$$monitor-http-response$$$ * `never`: Never include the body. * `always`: Always include the body with checks. - **`include_body_max_bytes`** ([number](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-numbers)) + **`include_body_max_bytes`** ([number](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-numbers)) : Set `response.include_body_max_bytes` to control the maximum size of the stored body contents. **Default**: `1024` @@ -482,7 +482,7 @@ $$$monitor-http-check$$$ A dictionary of additional HTTP headers to send. By default Synthetics will set the *User-Agent* header to identify itself. **`body`** - : Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) + : Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) Optional request body content. @@ -503,7 +503,7 @@ check.request: Under `check.response`, specify these options: **`status`** - : Type: list of [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s + : Type: list of [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s A list of expected status codes. 4xx and 5xx codes are considered `down` by default. Other codes are considered `up`. @@ -520,7 +520,7 @@ check.request: The required response headers. **`body.positive`** - : Type: list of [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s + : Type: list of [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s A list of regular expressions to match the body output. Only a single expression needs to match. @@ -537,7 +537,7 @@ check.request: - Foo ``` - **`body.negative`** (list of [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s) + **`body.negative`** (list of [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string)s) : A list of regular expressions to match the body output negatively. Return match failed if single expression matches. HTTP response bodies of up to 100MiB are supported. This monitor examines match successfully if there is no *bar* or *Bar* at all, examines match failed if there is *bar* or *Bar* in the response body: @@ -596,12 +596,12 @@ On Linux, regular users may perform pings if the right file capabilities are set Other platforms may require Synthetics to run as root or administrator to execute pings. -Valid options for ICMP monitors include [all common options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following ICMP-specific options: +Valid options for ICMP monitors include [all common options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following ICMP-specific options: $$$monitor-icmp-hosts$$$ **`hosts`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) **Required**. The host to ping. @@ -614,7 +614,7 @@ $$$monitor-icmp-hosts$$$ $$$monitor-icmp-wait$$$ **`wait`** -: Type: [duration](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) +: Type: [duration](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-duration) The duration to wait before emitting another ICMP Echo Request if no response is received. @@ -630,12 +630,12 @@ $$$monitor-icmp-wait$$$ The options described here configure Synthetics to connect via TCP and optionally verify the endpoint by sending and/or receiving a custom payload. -Valid options for TCP monitors include [all common options](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following TCP-specific options: +Valid options for TCP monitors include [all common options](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-common-options) and the following TCP-specific options: $$$monitor-tcp-hosts$$$ **`hosts`** -: Type: [string](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-string) +: Type: [string](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-string) **Required**. The host to ping. The value can be: @@ -694,7 +694,7 @@ $$$monitor-tcp-proxy_url$$$ $$$monitor-tcp-proxy_use_local_resolver$$$ **`proxy_use_local_resolver`** -: Type: [boolean](/solutions/observability/apps/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) +: Type: [boolean](/solutions/observability/synthetics/configure-lightweight-monitors.md#synthetics-lightweight-data-bool) A Boolean value that determines whether hostnames are resolved locally instead of being resolved on the proxy server. The default value is `false`, which means that name resolution occurs on the proxy server. diff --git a/solutions/observability/apps/configure-synthetics-projects.md b/solutions/observability/synthetics/configure-projects.md similarity index 87% rename from solutions/observability/apps/configure-synthetics-projects.md rename to solutions/observability/synthetics/configure-projects.md index 09cc2c4aa..ef9e0b36d 100644 --- a/solutions/observability/apps/configure-synthetics-projects.md +++ b/solutions/observability/synthetics/configure-projects.md @@ -103,11 +103,11 @@ export default env => { :::: -The configuration file can either export an object, or a function that when called should return the generated configuration. To know more about configuring the tests based on environments, look at the [dynamic configuration](/solutions/observability/apps/work-with-params-secrets.md#synthetics-dynamic-configs) documentation. +The configuration file can either export an object, or a function that when called should return the generated configuration. To know more about configuring the tests based on environments, look at the [dynamic configuration](/solutions/observability/synthetics/work-with-params-secrets.md#synthetics-dynamic-configs) documentation. ## `params` [synthetics-configuration-params] -A JSON object that defines any variables your tests require. Read more in [Work with params and secrets](/solutions/observability/apps/work-with-params-secrets.md). +A JSON object that defines any variables your tests require. Read more in [Work with params and secrets](/solutions/observability/synthetics/work-with-params-secrets.md). ## `playwrightOptions` [synthetics-configuration-playwright-options] @@ -181,7 +181,7 @@ playwrightOptions: { } ``` -To use a timezone and/or locale for a *specific* monitor, add these options to a journey using [`monitor.use`](/solutions/observability/apps/configure-individual-browser-monitors.md). +To use a timezone and/or locale for a *specific* monitor, add these options to a journey using [`monitor.use`](/solutions/observability/synthetics/configure-individual-browser-monitors.md). ### Device emulation [synthetics-config-device-emulation] @@ -207,7 +207,7 @@ Information about the Synthetics project. `id` (`string`) : A unique id associated with your Synthetics project. It will be used for logically grouping monitors. - If you used [`init` to create a Synthetics project](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-init-command), this is the `` you specified. + If you used [`init` to create a Synthetics project](/solutions/observability/synthetics/cli.md#elastic-synthetics-init-command), this is the `` you specified. `url` (`string`) : The URL for the Serverless Observability project or the {{kib}} URL for the deployment to which you want to upload the monitors. @@ -217,7 +217,7 @@ space (`string`) ## `monitor` [synthetics-configuration-monitor] -Default values to be applied to *all* monitors when using the [`@elastic/synthetics` `push` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). +Default values to be applied to *all* monitors when using the [`@elastic/synthetics` `push` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). `id` (`string`) : A unique identifier for this monitor. @@ -239,15 +239,15 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) To list available locations you can: - * Run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command). + * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). * Find `Synthetics` in the [global search field](/get-started/the-stack.md#kibana-navigation-search) and click **Create monitor**. Locations will be listed in *Locations*. `privateLocations` (`Array`) -: The [{{private-location}}s](/solutions/observability/apps/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. +: The [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. To list available {{private-location}}s you can: - * Run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command) with the URL for the Observability project or the {{kib}} URL for the deployment from which to fetch available locations. + * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) with the URL for the Observability project or the {{kib}} URL for the deployment from which to fetch available locations. * Find `Synthetics` in the [global search field](/get-started/the-stack.md#kibana-navigation-search) and click **Create monitor**. {{private-location}}s will be listed in *Locations*. `throttling` (`boolean` | [`ThrottlingOptions`](https://github.com/elastic/synthetics/blob/v1.3.0/src/common_types.ts#L194-L198)) @@ -257,7 +257,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) : Control whether or not to capture screenshots. Options include `'on'`, `'off'`, or `'only-on-failure'`. `alert.status.enabled` (`boolean`) -: Enable or disable monitor status alerts. Read more about alerts in [Alerting](/solutions/observability/apps/configure-synthetics-settings.md#synthetics-settings-alerting). +: Enable or disable monitor status alerts. Read more about alerts in [Alerting](/solutions/observability/synthetics/configure-settings.md#synthetics-settings-alerting). `retestOnFailure` (`boolean`) : Enable or disable retesting when a monitor fails. Default is `true`. @@ -267,7 +267,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) Using `retestOnFailure` can reduce noise related to transient problems. `fields` (`object`) -: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-individual-monitors-overview). +: A list of key-value pairs that will be sent with each monitor event. The `fields` are appended to {{es}} documents as `labels`, and those labels are displayed in {{kib}} in the *Monitor details* panel in the [individual monitor’s *Overview* tab](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-individual-monitors-overview). For example: @@ -280,5 +280,5 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) For information on configuring monitors individually, refer to: -* [Configure individual browser monitors](/solutions/observability/apps/configure-individual-browser-monitors.md) for browser monitors -* [Configure lightweight monitors](/solutions/observability/apps/configure-lightweight-monitors.md) for lightweight monitors \ No newline at end of file +* [Configure individual browser monitors](/solutions/observability/synthetics/configure-individual-browser-monitors.md) for browser monitors +* [Configure lightweight monitors](/solutions/observability/synthetics/configure-lightweight-monitors.md) for lightweight monitors \ No newline at end of file diff --git a/solutions/observability/apps/configure-synthetics-settings.md b/solutions/observability/synthetics/configure-settings.md similarity index 83% rename from solutions/observability/apps/configure-synthetics-settings.md rename to solutions/observability/synthetics/configure-settings.md index 89fa125b0..9ef4c5f10 100644 --- a/solutions/observability/apps/configure-synthetics-settings.md +++ b/solutions/observability/synthetics/configure-settings.md @@ -40,9 +40,9 @@ On the *Rules* page, you can manage the default synthetics rules including snooz ::::{note} You can enable and disable default alerts for individual monitors in a few ways: -* In the Synthetics UI when you [create a monitor](/solutions/observability/apps/create-monitors-in-synthetics-app.md). +* In the Synthetics UI when you [create a monitor](/solutions/observability/synthetics/create-monitors-ui.md). * In the Synthetics UI *after* a monitor is already created, on the **Monitors** page or on the **Edit monitor** page for the monitor. -* In Synthetics projects when [configuring a lightweight monitor](/solutions/observability/apps/configure-lightweight-monitors.md). +* In Synthetics projects when [configuring a lightweight monitor](/solutions/observability/synthetics/configure-lightweight-monitors.md). :::: @@ -57,7 +57,7 @@ In the **Alerting** tab on the Synthetics Settings page, you can add and configu {{private-location}}s allow you to run monitors from your own premises. -In the **{{private-location}}s** tab, you can add and manage {{private-location}}s. After you [Set up {{fleet-server}} and {{agent}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent) and [Connect to the {{stack}} or your serverless Observability project](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-connect), this is where you will add the {{private-location}} so you can specify it as the location for a monitor created using the Synthetics UI or a Synthetics project. +In the **{{private-location}}s** tab, you can add and manage {{private-location}}s. After you [Set up {{fleet-server}} and {{agent}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent) and [Connect to the {{stack}} or your serverless Observability project](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-connect), this is where you will add the {{private-location}} so you can specify it as the location for a monitor created using the Synthetics UI or a Synthetics project. :::{image} /solutions/images/observability-synthetics-settings-private-locations.png :alt: {{private-location}}s tab on the Synthetics Settings page in {kib} @@ -68,7 +68,7 @@ In the **{{private-location}}s** tab, you can add and manage {{private-location} Global parameters can be defined once and used across the configuration of lightweight and browser-based monitors. -In the **Global parameters** tab, you can define variables and parameters. This is one of several methods you can use to define variables and parameters. To learn more about the other methods and which methods take precedence over others, see [Work with params and secrets](/solutions/observability/apps/work-with-params-secrets.md). +In the **Global parameters** tab, you can define variables and parameters. This is one of several methods you can use to define variables and parameters. To learn more about the other methods and which methods take precedence over others, see [Work with params and secrets](/solutions/observability/synthetics/work-with-params-secrets.md). :::{image} /solutions/images/observability-synthetics-settings-global-parameters.png :alt: Global parameters tab on the Synthetics Settings page in {kib} @@ -79,7 +79,7 @@ In the **Global parameters** tab, you can define variables and parameters. This When you set up a synthetic monitor, data from the monitor is saved in [Elasticsearch data streams](/manage-data/data-store/data-streams.md), an append-only structure in Elasticsearch. You can customize how long synthetics data is stored by creating your own index lifecycle policy and attaching it to the relevant custom Component Template in Stack Management. -In the **Data retention** tab, use the links to jump to the relevant policy for each data stream. Learn more about the data included in each data stream in [Manage data retention](/solutions/observability/apps/manage-data-retention.md). +In the **Data retention** tab, use the links to jump to the relevant policy for each data stream. Learn more about the data included in each data stream in [Manage data retention](/solutions/observability/synthetics/manage-data-retention.md). :::{image} /solutions/images/observability-synthetics-settings-data-retention.png :alt: Data retention tab on the Synthetics Settings page in {kib} @@ -90,12 +90,12 @@ In the **Data retention** tab, use the links to jump to the relevant policy for Project API keys are used to push {{project-monitors}} remotely from a CLI or CD pipeline. -In the **Project API keys** tab, you can generate project API keys to use with your projects. Learn more about using API keys in [Use {{project-monitors-cap}}](/solutions/observability/apps/create-monitors-with-project-monitors.md). +In the **Project API keys** tab, you can generate project API keys to use with your projects. Learn more about using API keys in [Use {{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md). ::::{important} -**In an Elastic Stack deployment**, to create a Project API key you must be logged into {{kib}} as a user with the privileges described in [Writer role](/solutions/observability/apps/writer-role.md). +**In an Elastic Stack deployment**, to create a Project API key you must be logged into {{kib}} as a user with the privileges described in [Writer role](/solutions/observability/synthetics/writer-role.md). -In a serverless project, to create a Project API key you must be logged in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access. +In a serverless project, to create a Project API key you must be logged in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access. :::: diff --git a/solutions/observability/apps/create-monitors-in-synthetics-app.md b/solutions/observability/synthetics/create-monitors-ui.md similarity index 83% rename from solutions/observability/apps/create-monitors-in-synthetics-app.md rename to solutions/observability/synthetics/create-monitors-ui.md index caaa5261c..13397450e 100644 --- a/solutions/observability/apps/create-monitors-in-synthetics-app.md +++ b/solutions/observability/synthetics/create-monitors-ui.md @@ -16,18 +16,18 @@ You can create synthetic monitors directly in the UI by opening an Observability :alt: Diagram showing which pieces of software are used to configure monitors ::: -This is one of [two approaches](/solutions/observability/apps/get-started.md) you can use to set up a synthetic monitor. +This is one of [two approaches](/solutions/observability/synthetics/get-started.md) you can use to set up a synthetic monitor. ## Prerequisites [synthetics-get-started-ui-prerequisites] -For **serverless Observability projects**, you must be signed in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access. +For **serverless Observability projects**, you must be signed in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access. -For **Elastic Stack deployments**, you must be signed into {{kib}} as a user with at least [synthetics write permissions](/solutions/observability/apps/writer-role.md), and Monitor Management must be enabled by an administrator as described in [Setup role](/solutions/observability/apps/setup-role.md). +For **Elastic Stack deployments**, you must be signed into {{kib}} as a user with at least [synthetics write permissions](/solutions/observability/synthetics/writer-role.md), and Monitor Management must be enabled by an administrator as described in [Setup role](/solutions/observability/synthetics/setup-role.md). You should decide where you want to run the monitors before getting started. You can run monitors on one or both of the following: * **Elastic’s global managed testing infrastructure**: With Elastic’s global managed testing infrastructure, you can create and run monitors in multiple locations without having to manage your own infrastructure. Elastic takes care of software updates and capacity planning for you. -* **{{private-location}}s**: {{private-location}}s allow you to run monitors from your own premises. To use {{private-location}}s you must create a {{private-location}} before continuing. For step-by-step instructions, refer to [Monitor resources on private networks](/solutions/observability/apps/monitor-resources-on-private-networks.md). +* **{{private-location}}s**: {{private-location}}s allow you to run monitors from your own premises. To use {{private-location}}s you must create a {{private-location}} before continuing. For step-by-step instructions, refer to [Monitor resources on private networks](/solutions/observability/synthetics/monitor-resources-on-private-networks.md). Executing synthetic tests on Elastic’s global managed testing infrastructure incurs an additional charge. Tests are charged under one of two new billing dimensions depending on the monitor type. For *browser monitor* usage, there is a fee per test run. For *lightweight monitor* usage, there is a fee per region in which you run any monitors regardless of the number of test runs. For more details, refer to the [{{obs-serverless}} pricing page](https://www.elastic.co/pricing/serverless-observability). @@ -46,7 +46,7 @@ To use the UI to add a lightweight monitor: :::: :::::{note} - If you’ve [added a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md), you’ll see your the {{private-location}} in the list of *Locations*. + If you’ve [added a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md), you’ll see your the {{private-location}} in the list of *Locations*. :::{image} /solutions/images/serverless-private-locations-monitor-locations.png :alt: Screenshot of Monitor locations options including a {private-location} @@ -71,7 +71,7 @@ You can also create a browser monitor in the UI using an **Inline script**. An inline script contains a single journey that you manage individually. Inline scripts can be quick to set up, but can also be more difficult to manage. Each browser monitor configured using an inline script can contain only *one* journey, which must be maintained directly in the UI. -If you depend on external packages, have your journeys next to your code repository, or want to embed and manage more than one journey from a single monitor configuration, use a [Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md) instead. +If you depend on external packages, have your journeys next to your code repository, or want to embed and manage more than one journey from a single monitor configuration, use a [Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md) instead. To use the UI to add a browser monitor: @@ -93,14 +93,14 @@ To use the UI to add a browser monitor: ::: ::::{note} - Alternatively, you can use the **Script recorder** option. You can use the Elastic Synthetics Recorder to interact with a web page, export journey code that reflects all the actions you took, and upload the results in the UI. For more information, refer to [Use the Synthetics Recorder](/solutions/observability/apps/use-synthetics-recorder.md). + Alternatively, you can use the **Script recorder** option. You can use the Elastic Synthetics Recorder to interact with a web page, export journey code that reflects all the actions you took, and upload the results in the UI. For more information, refer to [Use the Synthetics Recorder](/solutions/observability/synthetics/use-synthetics-recorder.md). :::: 6. Click **Advanced options** to see more ways to configure your monitor. * Use **Data options** to add context to the data coming from your monitors. - * Use the **Synthetics agent options** to provide fine-tuned configuration for the synthetics agent. Read more about available options in [Use the Synthetics CLI](/solutions/observability/apps/use-synthetics-cli.md). + * Use the **Synthetics agent options** to provide fine-tuned configuration for the synthetics agent. Read more about available options in [Use the Synthetics CLI](/solutions/observability/synthetics/cli.md). 7. (Optional) Click **Run test** to verify that the test is valid. 8. Click **Create monitor**. @@ -109,7 +109,7 @@ To use the UI to add a browser monitor: Navigate to **Synthetics**, where you can see screenshots of each run, set up alerts in case of test failures, and more. -If a test does fail (shown as `down` in the Synthetics UI), you’ll be able to view the step script that failed, any errors, and a stack trace. For more information, refer to [Analyze data from synthetic monitors](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-journeys). +If a test does fail (shown as `down` in the Synthetics UI), you’ll be able to view the step script that failed, any errors, and a stack trace. For more information, refer to [Analyze data from synthetic monitors](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-journeys). ::::{note} When a monitor is created or updated, the first run might not occur immediately, but the time it takes for the first run to occur will be less than the monitor’s configured frequency. For example, if you create a monitor and configure it to run every 10 minutes, the first run will occur within 10 minutes of being created. After the first run, the monitor will begin running regularly based on the configured frequency. You can run a manual test if you want to see the results more quickly. @@ -120,6 +120,6 @@ When a monitor is created or updated, the first run might not occur immediately, Learn more about: -* [Writing user journeys](/solutions/observability/apps/write-synthetic-test.md) to use as inline scripts -* Using the [Synthetics Recorder](/solutions/observability/apps/use-synthetics-recorder.md) -* [Configuring lightweight monitors](/solutions/observability/apps/configure-lightweight-monitors.md) \ No newline at end of file +* [Writing user journeys](/solutions/observability/synthetics/write-synthetic-test.md) to use as inline scripts +* Using the [Synthetics Recorder](/solutions/observability/synthetics/use-synthetics-recorder.md) +* [Configuring lightweight monitors](/solutions/observability/synthetics/configure-lightweight-monitors.md) \ No newline at end of file diff --git a/solutions/observability/apps/create-monitors-with-project-monitors.md b/solutions/observability/synthetics/create-monitors-with-projects.md similarity index 83% rename from solutions/observability/apps/create-monitors-with-project-monitors.md rename to solutions/observability/synthetics/create-monitors-with-projects.md index 9e4243813..e9e486ed3 100644 --- a/solutions/observability/apps/create-monitors-with-project-monitors.md +++ b/solutions/observability/synthetics/create-monitors-with-projects.md @@ -16,13 +16,13 @@ A Synthetics project is the most powerful and sophisticated way to configure syn :alt: Diagram showing which pieces of software are used to configure monitors ::: -This is one of [two approaches](/solutions/observability/apps/get-started.md) you can use to set up a synthetic monitor. +This is one of [two approaches](/solutions/observability/synthetics/get-started.md) you can use to set up a synthetic monitor. ## Prerequisites [synthetics-get-started-project-prerequisites] -For **serverless Observability projects**, you must be signed in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access. +For **serverless Observability projects**, you must be signed in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access. -For **Elastic Stack deployments**, you must be signed into {{kib}} as a user with at least [synthetics write permissions](/solutions/observability/apps/writer-role.md), and Monitor Management must be enabled by an administrator as described in [Setup role](/solutions/observability/apps/setup-role.md). +For **Elastic Stack deployments**, you must be signed into {{kib}} as a user with at least [synthetics write permissions](/solutions/observability/synthetics/writer-role.md), and Monitor Management must be enabled by an administrator as described in [Setup role](/solutions/observability/synthetics/setup-role.md). Working with a Synthetics project requires working with the Elastic Synthetics CLI tool, which can be invoked via the `npx @elastic/synthetics` command. Before getting started you’ll need to: @@ -42,12 +42,12 @@ Working with a Synthetics project requires working with the Elastic Synthetics C You should also decide where you want to run the monitors before getting started. You can run monitors in Synthetics projects on one or both of the following: * **Elastic’s global managed testing infrastructure**: With Elastic’s global managed testing infrastructure, you can create and run monitors in multiple locations without having to manage your own infrastructure. Elastic takes care of software updates and capacity planning for you. -* **{{private-location}}s**: {{private-location}}s allow you to run monitors from your own premises. To use {{private-location}}s you must create a {{private-location}} before continuing. For step-by-step instructions, refer to [Monitor resources on private networks](/solutions/observability/apps/monitor-resources-on-private-networks.md). +* **{{private-location}}s**: {{private-location}}s allow you to run monitors from your own premises. To use {{private-location}}s you must create a {{private-location}} before continuing. For step-by-step instructions, refer to [Monitor resources on private networks](/solutions/observability/synthetics/monitor-resources-on-private-networks.md). % Stateful only for following note? ::::{note} -If you are setting up Synthetics for a deployment configured with [traffic filters](/deploy-manage/security/traffic-filtering.md), connections into {{es}} are restricted and results will not be able to be written back into {{es}} unless granted. For more details, refer to [Use Synthetics with traffic filters](/solutions/observability/apps/use-synthetics-with-traffic-filters.md). +If you are setting up Synthetics for a deployment configured with [traffic filters](/deploy-manage/security/traffic-filtering.md), connections into {{es}} are restricted and results will not be able to be written back into {{es}} unless granted. For more details, refer to [Use Synthetics with traffic filters](/solutions/observability/synthetics/traffic-filters.md). :::: @@ -75,7 +75,7 @@ Then, follow the prompts on screen to set up the correct default variables for y 4. Click **Generate Project API key**. ::::{important} - To generate a Project API key, you must be logged in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access. + To generate a Project API key, you must be logged in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access. :::: @@ -98,7 +98,7 @@ Then, take a look at key files and directories inside your Synthetics project: * `synthetics.config.ts` contains settings for your Synthetics project. When you create a new Synthetics project, it will contain some basic configuration options that you can customize later. ::::{note} - The `synthetics.config.ts` in the sample Synthetics project uses a location on Elastic’s global managed testing infrastructure. Administrators can restrict access to Elastic’s global managed testing infrastructure. When you attempt to [`push` the sample monitors](/solutions/observability/apps/create-monitors-with-project-monitors.md#synthetics-get-started-project-test-and-connect-to-your-observability-project), if you see an error stating that you don’t have permission to use Elastic managed global locations, refer to the [troubleshooting guide](/troubleshoot/observability/troubleshooting-synthetics.md#synthetics-troubleshooting-no-locations) for guidance. + The `synthetics.config.ts` in the sample Synthetics project uses a location on Elastic’s global managed testing infrastructure. Administrators can restrict access to Elastic’s global managed testing infrastructure. When you attempt to [`push` the sample monitors](/solutions/observability/synthetics/create-monitors-with-projects.md#synthetics-get-started-project-test-and-connect-to-your-observability-project), if you see an error stating that you don’t have permission to use Elastic managed global locations, refer to the [troubleshooting guide](/troubleshoot/observability/troubleshooting-synthetics.md#synthetics-troubleshooting-no-locations) for guidance. :::: @@ -117,7 +117,7 @@ Then, take a look at key files and directories inside your Synthetics project: 4. Click **Generate Project API key**. ::::{important} - To generate a Project API key, you must be logged in as a user with [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access. + To generate a Project API key, you must be logged in as a user with [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access. :::: @@ -140,7 +140,7 @@ Then, take a look at key files and directories inside your Synthetics project: * `synthetics.config.ts` contains settings for your Synthetics project. When you create a new Synthetics project, it will contain some basic configuration options that you can customize later. ::::{note} - The `synthetics.config.ts` in the sample Synthetics project uses a location on Elastic’s global managed testing infrastructure. Administrators can restrict access to Elastic’s global managed testing infrastructure. When you attempt to [`push` the sample monitors](/solutions/observability/apps/create-monitors-with-project-monitors.md#synthetics-get-started-project-test-and-connect-to-your-observability-project), if you see an error stating that you don’t have permission to use Elastic managed global locations, refer to the [troubleshooting guide](/troubleshoot/observability/troubleshooting-synthetics.md#synthetics-troubleshooting-no-locations) for guidance. + The `synthetics.config.ts` in the sample Synthetics project uses a location on Elastic’s global managed testing infrastructure. Administrators can restrict access to Elastic’s global managed testing infrastructure. When you attempt to [`push` the sample monitors](/solutions/observability/synthetics/create-monitors-with-projects.md#synthetics-get-started-project-test-and-connect-to-your-observability-project), if you see an error stating that you don’t have permission to use Elastic managed global locations, refer to the [troubleshooting guide](/troubleshoot/observability/troubleshooting-synthetics.md#synthetics-troubleshooting-no-locations) for guidance. :::: @@ -165,7 +165,7 @@ heartbeat.monitors: schedule: '@every 1m' ``` -For more details on lightweight monitor configuration options, refer to [Configure lightweight monitors](/solutions/observability/apps/configure-lightweight-monitors.md). +For more details on lightweight monitor configuration options, refer to [Configure lightweight monitors](/solutions/observability/synthetics/configure-lightweight-monitors.md). Inside the `journeys` directory you’ll find sample browser monitors. Here’s an example of a TypeScript file defining a browser monitor: @@ -189,7 +189,7 @@ journey('My Example Journey', ({ page, params }) => { }); ``` -For more details on writing journeys and configuring browser monitors, refer to [Scripting browser monitors](/solutions/observability/apps/scripting-browser-monitors.md). +For more details on writing journeys and configuring browser monitors, refer to [Scripting browser monitors](/solutions/observability/synthetics/scripting-browser-monitors.md). ## Test and connect to your Observability project or Elastic Stack deployment[synthetics-get-started-project-test-and-connect-to-your-observability-project] @@ -213,12 +213,12 @@ While inside the project directory you can do two things with the `npx @elastic/ npx @elastic/synthetics push --auth $SYNTHETICS_API_KEY --url ``` -One monitor will appear in the {{synthetics-app}} for each journey or lightweight monitor, and you’ll manage all monitors from your local environment. For more details on using the `push` command, refer to [`@elastic/synthetics push`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). +One monitor will appear in the {{synthetics-app}} for each journey or lightweight monitor, and you’ll manage all monitors from your local environment. For more details on using the `push` command, refer to [`@elastic/synthetics push`](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). ::::{note} -If you’ve [added a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md), you can `push` to that {{private-location}}. +If you’ve [added a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md), you can `push` to that {{private-location}}. -To list available {{private-location}}s, run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command) with the {{kib}} URL for the deployment from which to fetch available locations. +To list available {{private-location}}s, run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) with the {{kib}} URL for the deployment from which to fetch available locations. :::: @@ -241,12 +241,12 @@ While inside the Synthetics project directory you can do two things with the `np npx @elastic/synthetics push --auth $SYNTHETICS_API_KEY --url ``` -One monitor will appear in the Synthetics UI for each journey or lightweight monitor, and you’ll manage all monitors from your local environment. For more details on using the `push` command, refer to [`@elastic/synthetics push`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). +One monitor will appear in the Synthetics UI for each journey or lightweight monitor, and you’ll manage all monitors from your local environment. For more details on using the `push` command, refer to [`@elastic/synthetics push`](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). ::::{note} -If you’ve [added a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md), you can `push` to that {{private-location}}. +If you’ve [added a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md), you can `push` to that {{private-location}}. -To list available {{private-location}}s, run the [`elastic-synthetics locations` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command) with the URL for the Observability project from which to fetch available locations. +To list available {{private-location}}s, run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) with the URL for the Observability project from which to fetch available locations. :::: @@ -267,6 +267,6 @@ When a monitor is created or updated, the first run might not occur immediately, Learn more about: -* [Configuring lightweight monitors](/solutions/observability/apps/configure-lightweight-monitors.md) -* [Configuring browser monitors](/solutions/observability/apps/write-synthetic-test.md) -* [Implementing best practices for working with Synthetics projects](/solutions/observability/apps/manage-monitors.md#synthetics-projects-best-practices) \ No newline at end of file +* [Configuring lightweight monitors](/solutions/observability/synthetics/configure-lightweight-monitors.md) +* [Configuring browser monitors](/solutions/observability/synthetics/write-synthetic-test.md) +* [Implementing best practices for working with Synthetics projects](/solutions/observability/synthetics/manage-monitors.md#synthetics-projects-best-practices) \ No newline at end of file diff --git a/solutions/observability/apps/synthetics-encryption-security.md b/solutions/observability/synthetics/encryption-security.md similarity index 100% rename from solutions/observability/apps/synthetics-encryption-security.md rename to solutions/observability/synthetics/encryption-security.md diff --git a/solutions/observability/apps/get-started.md b/solutions/observability/synthetics/get-started.md similarity index 93% rename from solutions/observability/apps/get-started.md rename to solutions/observability/synthetics/get-started.md index 721c73d8b..d5726f155 100644 --- a/solutions/observability/apps/get-started.md +++ b/solutions/observability/synthetics/get-started.md @@ -24,7 +24,7 @@ With a Synthetics project, you write tests in an external version-controlled Nod This approach works well if you want to create both browser monitors and lightweight monitors. It also allows you to configure and update monitors using a GitOps workflow. -Get started in [Create monitors in a Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md). +Get started in [Create monitors in a Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md). :::{image} /solutions/images/observability-synthetics-get-started-projects.png :alt: Diagram showing which pieces of software are used to configure monitors @@ -34,7 +34,7 @@ Get started in [Create monitors in a Synthetics project](/solutions/observabilit You can create monitors directly in the user interface. This approach works well if you want to create and manage your monitors in the browser. -Get started in [Create monitors in the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md). +Get started in [Create monitors in the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md). :::{image} /solutions/images/observability-synthetics-get-started-ui.png :alt: Diagram showing which pieces of software are used to configure monitors @@ -43,7 +43,7 @@ Get started in [Create monitors in the Synthetics UI](/solutions/observability/a ::::{note} The Elastic Synthetics integration is a method for creating synthetic monitors that is no longer recommended. **Do not use the Elastic Synthetics integration to set up new monitors.** -For details on how to migrate from Elastic Synthetics integration to {{project-monitors}} or the {{synthetics-app}}, refer to [Migrate from the Elastic Synthetics integration](/solutions/observability/apps/migrate-from-elastic-synthetics-integration.md). +For details on how to migrate from Elastic Synthetics integration to {{project-monitors}} or the {{synthetics-app}}, refer to [Migrate from the Elastic Synthetics integration](/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md). If you’ve used the Elastic Synthetics integration to create monitors in the past and need to reference documentation about the integration, go to the [8.3 documentation](https://www.elastic.co/guide/en/observability/8.3/uptime-set-up.html#uptime-set-up-choose-agent). diff --git a/solutions/observability/apps/grant-users-access-to-secured-resources.md b/solutions/observability/synthetics/grant-access-to-secured-resources.md similarity index 84% rename from solutions/observability/apps/grant-users-access-to-secured-resources.md rename to solutions/observability/synthetics/grant-access-to-secured-resources.md index 70a90c41b..6a9985a4e 100644 --- a/solutions/observability/apps/grant-users-access-to-secured-resources.md +++ b/solutions/observability/synthetics/grant-access-to-secured-resources.md @@ -19,9 +19,9 @@ You can use role-based access control to grant users access to secured resources Typically you need the create the following separate roles: -* [Setup role](/solutions/observability/apps/setup-role.md) for enabling Monitor Management. -* [Writer role](/solutions/observability/apps/writer-role.md) for creating, modifying, and deleting monitors. -* [Reader role](/solutions/observability/apps/reader-role.md) for {{kib}} users who need to view and create visualizations that access Synthetics data. +* [Setup role](/solutions/observability/synthetics/setup-role.md) for enabling Monitor Management. +* [Writer role](/solutions/observability/synthetics/writer-role.md) for creating, modifying, and deleting monitors. +* [Reader role](/solutions/observability/synthetics/reader-role.md) for {{kib}} users who need to view and create visualizations that access Synthetics data. {{es-security-features}} provides [built-in roles](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md) that grant a subset of the privileges needed by Synthetics users. When possible, assign users the built-in roles to minimize the affect of future changes on your security strategy. If no built-in role is available, you can assign users the privileges needed to accomplish a specific task. diff --git a/solutions/observability/apps/synthetic-monitoring.md b/solutions/observability/synthetics/index.md similarity index 80% rename from solutions/observability/apps/synthetic-monitoring.md rename to solutions/observability/synthetics/index.md index 38f734f4d..ede9682f7 100644 --- a/solutions/observability/apps/synthetic-monitoring.md +++ b/solutions/observability/synthetics/index.md @@ -10,14 +10,14 @@ applies_to: # Synthetic monitoring [monitor-uptime-synthetics] ::::{note} -The Synthetics UI is for viewing result data from monitors created and managed directly in the [Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md) or managed externally using a [Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md). This can include both lightweight and browser-based monitors, and can include monitors running from either Elastic’s global managed testing infrastructure or from [{{private-location}}s](/solutions/observability/apps/monitor-resources-on-private-networks.md). +The Synthetics UI is for viewing result data from monitors created and managed directly in the [Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md) or managed externally using a [Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md). This can include both lightweight and browser-based monitors, and can include monitors running from either Elastic’s global managed testing infrastructure or from [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md). :::: Synthetics periodically checks the status of your services and applications. Monitor the availability of network endpoints and services using the following types of monitors: -* [Lightweight HTTP/S, TCP, and ICMP monitors](/solutions/observability/apps/synthetic-monitoring.md#monitoring-uptime) -* [Browser monitors](/solutions/observability/apps/synthetic-monitoring.md#monitoring-synthetics) +* [Lightweight HTTP/S, TCP, and ICMP monitors](/solutions/observability/synthetics/index.md#monitoring-uptime) +* [Browser monitors](/solutions/observability/synthetics/index.md#monitoring-synthetics) :::{image} /solutions/images/observability-synthetics-monitor-page.png :alt: {{synthetics-app}} in {{kib}} @@ -34,7 +34,7 @@ You can monitor the status of network endpoints using the following lightweight | **ICMP monitor** | Check the availability of your hosts. The ICMP monitor uses ICMP (v4 and v6) EchoRequests to check the network reachability of the hosts you are pinging. This will tell you whether thehost is available and connected to the network, but doesn’t tell you if a service on the host is running ornot. | | **TCP monitor** | Monitor the services running on your hosts. The TCP monitor checks individual portsto make sure the service is accessible and running. | -To set up your first monitor, refer to [Get started](/solutions/observability/apps/get-started.md). +To set up your first monitor, refer to [Get started](/solutions/observability/synthetics/get-started.md). ## Browser monitors [monitoring-synthetics] @@ -46,4 +46,4 @@ You can run an automated Synthetics project on a real Chromium browser and view Alerting helps you detect degraded performance or broken actions before your users do. By receiving alerts early, you can fix issues before they impact your bottom line or customer experience. -To set up your first monitor, refer to [Get started](/solutions/observability/apps/get-started.md). \ No newline at end of file +To set up your first monitor, refer to [Get started](/solutions/observability/synthetics/get-started.md). \ No newline at end of file diff --git a/solutions/observability/apps/manage-data-retention.md b/solutions/observability/synthetics/manage-data-retention.md similarity index 100% rename from solutions/observability/apps/manage-data-retention.md rename to solutions/observability/synthetics/manage-data-retention.md diff --git a/solutions/observability/apps/manage-monitors.md b/solutions/observability/synthetics/manage-monitors.md similarity index 73% rename from solutions/observability/apps/manage-monitors.md rename to solutions/observability/synthetics/manage-monitors.md index 2aeb64592..290221cec 100644 --- a/solutions/observability/apps/manage-monitors.md +++ b/solutions/observability/synthetics/manage-monitors.md @@ -9,9 +9,9 @@ applies_to: # Manage monitors [synthetics-manage-monitors] -After you’ve [created a synthetic monitor](/solutions/observability/apps/get-started.md), you’ll need to manage that monitor over time. This might include updating or permanently deleting an existing monitor. +After you’ve [created a synthetic monitor](/solutions/observability/synthetics/get-started.md), you’ll need to manage that monitor over time. This might include updating or permanently deleting an existing monitor. -If you’re using {{project-monitors}}, you should also set up a workflow that uses [best practices for managing monitors effectively](/solutions/observability/apps/manage-monitors.md#synthetics-projects-best-practices) in a production environment. +If you’re using {{project-monitors}}, you should also set up a workflow that uses [best practices for managing monitors effectively](/solutions/observability/synthetics/manage-monitors.md#synthetics-projects-best-practices) in a production environment. ## Update a monitor [manage-monitors-config] @@ -22,18 +22,18 @@ You can also update the journey used in a browser monitor. For example, if you u :::::::{tab-set} ::::::{tab-item} Project monitors -If you [set up the monitor using a Synthetic project](/solutions/observability/apps/create-monitors-with-project-monitors.md), you’ll update the monitor in the Synthetic project source and then `push` changes. +If you [set up the monitor using a Synthetic project](/solutions/observability/synthetics/create-monitors-with-projects.md), you’ll update the monitor in the Synthetic project source and then `push` changes. For lightweight monitors, make changes to the YAML file. For browser monitors, you can update the configuration of one or more monitors: * To update the configuration of an individual monitor, edit the journey directly in the JavaScript or TypeScript files, specifically the options in `monitor.use`. -* To update the configuration of *all* monitors in a Synthetic project, edit the [global synthetics configuration file](/solutions/observability/apps/configure-synthetics-projects.md#synthetics-configuration-monitor). +* To update the configuration of *all* monitors in a Synthetic project, edit the [global synthetics configuration file](/solutions/observability/synthetics/configure-projects.md#synthetics-configuration-monitor). -To update the journey that a browser monitor runs, edit the journey code directly and [test the updated journey locally](/solutions/observability/apps/write-synthetic-test.md#synthetics-test-locally) to make sure it’s valid. +To update the journey that a browser monitor runs, edit the journey code directly and [test the updated journey locally](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-test-locally) to make sure it’s valid. -After making changes to the monitors, run the [`push` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command) to replace the existing monitors with new monitors using the updated configuration or journey code. +After making changes to the monitors, run the [`push` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command) to replace the existing monitors with new monitors using the updated configuration or journey code. ::::{note} Updates are linked to a monitor’s `id`. To update a monitor you must keep its `id` the same. @@ -41,7 +41,7 @@ Updates are linked to a monitor’s `id`. To update a monitor you must keep its :::::: ::::::{tab-item} Synthetics UI -If you [set up the monitor using the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md), you can update the monitor configuration of both lightweight and browser monitors in the {{synthetics-app}}: +If you [set up the monitor using the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md), you can update the monitor configuration of both lightweight and browser monitors in the {{synthetics-app}}: 1. Go to **Management**. 2. Click the pencil icon next to the monitor you want to edit. @@ -62,17 +62,17 @@ Eventually you might want to delete a monitor altogether. For example, if the us :::::::{tab-set} ::::::{tab-item} Project monitors -If you [set up the monitor using a Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md), you’ll delete the monitor from the project source and push changes. +If you [set up the monitor using a Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md), you’ll delete the monitor from the project source and push changes. For lightweight monitors, delete the monitor from the YAML file. For browser monitors, delete the full journey from the JavaScript or TypeScript file. -Then, run the [`push` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-push-command). The monitor associated with that journey that existed will be deleted. +Then, run the [`push` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). The monitor associated with that journey that existed will be deleted. :::::: ::::::{tab-item} Synthetics UI -If you [set up the monitor using the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md), you can delete a lightweight or browser monitor in the Synthetics UI: +If you [set up the monitor using the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md), you can delete a lightweight or browser monitor in the Synthetics UI: 1. Go to **Management**. 2. Click the trash can icon next to the monitor you want to delete. @@ -87,7 +87,7 @@ Alternatively, you can temporarily disable a monitor by updating the monitor’s This is only relevant to monitors created using projects. :::: -After you’ve [set up a project](/solutions/observability/apps/create-monitors-with-project-monitors.md), there are some best practices you can implement to manage the Synthetics project effectively. +After you’ve [set up a project](/solutions/observability/synthetics/create-monitors-with-projects.md), there are some best practices you can implement to manage the Synthetics project effectively. ### Use version control [synthetics-version-control] diff --git a/solutions/observability/apps/multi-factor-authentication-mfa-for-browser-monitors.md b/solutions/observability/synthetics/mfa-for-browser-monitors.md similarity index 97% rename from solutions/observability/apps/multi-factor-authentication-mfa-for-browser-monitors.md rename to solutions/observability/synthetics/mfa-for-browser-monitors.md index 006267ec2..ee2649449 100644 --- a/solutions/observability/apps/multi-factor-authentication-mfa-for-browser-monitors.md +++ b/solutions/observability/synthetics/mfa-for-browser-monitors.md @@ -16,7 +16,7 @@ Synthetics supports testing websites secured by Time-based One-Time Password (TO ## Configuring TOTP for MFA [configuring_totp_for_mfa] -To test a browser journey that uses TOTP for MFA, first configure the Synthetics authenticator token in the target application. To do this, generate a One-Time Password (OTP) using the Synthetics CLI; refer to [`@elastic/synthetics totp `](/solutions/observability/apps/use-synthetics-cli.md). +To test a browser journey that uses TOTP for MFA, first configure the Synthetics authenticator token in the target application. To do this, generate a One-Time Password (OTP) using the Synthetics CLI; refer to [`@elastic/synthetics totp `](/solutions/observability/synthetics/cli.md). ```sh npx @elastic/synthetics totp diff --git a/solutions/observability/apps/migrate-from-elastic-synthetics-integration.md b/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md similarity index 83% rename from solutions/observability/apps/migrate-from-elastic-synthetics-integration.md rename to solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md index 6f89782ca..cb31dd2af 100644 --- a/solutions/observability/apps/migrate-from-elastic-synthetics-integration.md +++ b/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md @@ -28,7 +28,7 @@ Below is a comparison of how you used the {{agent}} integration to create monito * **{{agent}} integration**: You had to run monitors on your infrastructure * **Projects or the {{synthetics-app}}**: You can run monitors on both: - * Your infrastructure using [{{private-location}}s](monitor-resources-on-private-networks.md) + * Your infrastructure using [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) * Elastic’s global managed infrastructure **Where you configure monitors**: @@ -59,7 +59,7 @@ Below is a comparison of how you used the {{agent}} integration to create monito 3. Write journeys in JavaScript or TypeScript files and configure individual monitors in your journey code using `monitor.use` or configure all monitors using the `synthetics.config.ts` file. 4. Use the `elastic/synthetics push` command to create monitors. -Find more details in [Use {{project-monitors-cap}}](create-monitors-with-project-monitors.md). +Find more details in [Use {{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md). **How to use the UI ([read more](#synthetics-migrate-integration-ui))**: @@ -78,11 +78,11 @@ Find more details in [Use {{project-monitors-cap}}](create-monitors-with-project 4. Configure the monitor. 5. Create the monitor. -Find more details in [Use the {{synthetics-app}}](create-monitors-in-synthetics-app.md). +Find more details in [Use the {{synthetics-app}}](/solutions/observability/synthetics/create-monitors-ui.md). ## Where monitors run [synthetics-migrate-integration-location] -If you want to continue hosting on your infrastructure, you will need to create a {{private-location}} before creating monitors. If you have already have an {{agent}} running using `elastic-agent-complete`, you can [add it as a new {{private-location}}](monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. To create a new {{private-location}} from scratch, follow all instructions in [Monitor resources on private networks](monitor-resources-on-private-networks.md). +If you want to continue hosting on your infrastructure, you will need to create a {{private-location}} before creating monitors. If you have already have an {{agent}} running using `elastic-agent-complete`, you can [add it as a new {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. To create a new {{private-location}} from scratch, follow all instructions in [Monitor resources on private networks](/solutions/observability/synthetics/monitor-resources-on-private-networks.md). Alternatively, you can start hosting on Elastic’s global managed infrastructure. With Elastic’s global managed testing infrastructure, you can create and run monitors in multiple locations without having to manage your own infrastructure. Elastic takes care of software updates and capacity planning for you. @@ -123,14 +123,14 @@ First, upgrade the existing project to use the latest version of `@elastic/synth Then, you can further configure monitors as needed. In the upgraded project, you’ll use code (instead of the Integrations UI) to define settings like the name of the monitor and the frequency at which it will run. There are two ways you can configure monitors using code: -* For individual monitors, use `monitor.use` directly in the journey code. Read more in [Configure individual monitors](configure-individual-browser-monitors.md). -* To configure all monitors at once, use the synthetics configuration file. Read more in [Configure projects](configure-synthetics-projects.md). +* For individual monitors, use `monitor.use` directly in the journey code. Read more in [Configure individual monitors](/solutions/observability/synthetics/configure-individual-browser-monitors.md). +* To configure all monitors at once, use the synthetics configuration file. Read more in [Configure projects](/solutions/observability/synthetics/configure-projects.md). -Finally, you’ll create monitors using `push` instead of by adding a ZIP URL in the Integrations UI. This will require an API token. Read more in [`@elastic/synthetics push`](use-synthetics-cli.md#elastic-synthetics-push-command). +Finally, you’ll create monitors using `push` instead of by adding a ZIP URL in the Integrations UI. This will require an API token. Read more in [`@elastic/synthetics push`](/solutions/observability/synthetics/cli.md#elastic-synthetics-push-command). -Optionally, you can also add lightweight monitors to the project in YAML files. Read more about adding lightweight monitors to projects in [Configure lightweight monitors](configure-lightweight-monitors.md). +Optionally, you can also add lightweight monitors to the project in YAML files. Read more about adding lightweight monitors to projects in [Configure lightweight monitors](/solutions/observability/synthetics/configure-lightweight-monitors.md). -For more information on getting started with projects, refer to [Use {{project-monitors-cap}}](create-monitors-with-project-monitors.md). +For more information on getting started with projects, refer to [Use {{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md). ## How to use the UI [synthetics-migrate-integration-ui] @@ -142,5 +142,5 @@ The configuration options in the {{synthetics-app}} look very similar to the Ela 2. You cannot use a ZIP URL for browser monitors. Use projects instead. 3. You can test the configuration (including the journey for browser monitors) using **Run test** before creating the monitor. -For more information on getting started with the {{synthetics-app}}, refer to [Use the {{synthetics-app}}](create-monitors-in-synthetics-app.md). +For more information on getting started with the {{synthetics-app}}, refer to [Use the {{synthetics-app}}](/solutions/observability/synthetics/create-monitors-ui.md). diff --git a/solutions/observability/apps/monitor-resources-on-private-networks.md b/solutions/observability/synthetics/monitor-resources-on-private-networks.md similarity index 89% rename from solutions/observability/apps/monitor-resources-on-private-networks.md rename to solutions/observability/synthetics/monitor-resources-on-private-networks.md index 196c9d978..8db73a899 100644 --- a/solutions/observability/apps/monitor-resources-on-private-networks.md +++ b/solutions/observability/synthetics/monitor-resources-on-private-networks.md @@ -26,12 +26,12 @@ To grant access via IP, use [this list of egress IPs](https://manifest.synthetic {{private-location}}s allow you to run monitors from your own premises. Before running a monitor on a {{private-location}}, you’ll need to: -* [Set up {{fleet-server}} and {{agent}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). -* [Connect {{fleet}} to the {{stack}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. -* [Add a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the Synthetics UI. +* [Set up {{fleet-server}} and {{agent}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). +* [Connect {{fleet}} to the {{stack}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. +* [Add a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the Synthetics UI. ::::{important} -{{private-location}}s running through {{agent}} must have a direct connection to {{es}}. Do not configure any ingest pipelines, or output via Logstash as this will prevent Synthetics from working properly and is not [supported](/solutions/observability/apps/synthetics-support-matrix.md). +{{private-location}}s running through {{agent}} must have a direct connection to {{es}}. Do not configure any ingest pipelines, or output via Logstash as this will prevent Synthetics from working properly and is not [supported](/solutions/observability/synthetics/support-matrix.md). :::: @@ -43,7 +43,7 @@ Start by setting up {{fleet-server}} and {{agent}}: * **Create an agent policy**: For more information on agent policies and creating them, refer to [{{agent}} policy](/reference/fleet/agent-policy.md#create-a-policy). ::::{important} -A {{private-location}} should be set up against an agent policy that runs on a single {{agent}}. The {{agent}} must be **enrolled in Fleet** ({{private-location}}s cannot be set up using **standalone** {{agents}}). Do *not* run the same agent policy on multiple agents being used for {{private-location}}s, as you may end up with duplicate or missing tests. {{private-location}}s do not currently load balance tests across multiple {{agents}}. See [Scaling {{private-location}}s](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-scaling) for information on increasing the capacity within a {{private-location}}. +A {{private-location}} should be set up against an agent policy that runs on a single {{agent}}. The {{agent}} must be **enrolled in Fleet** ({{private-location}}s cannot be set up using **standalone** {{agents}}). Do *not* run the same agent policy on multiple agents being used for {{private-location}}s, as you may end up with duplicate or missing tests. {{private-location}}s do not currently load balance tests across multiple {{agents}}. See [Scaling {{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-scaling) for information on increasing the capacity within a {{private-location}}. By default {{private-location}}s are configured to allow two simultaneous browser tests and an unlimited number of lightweight checks. As a result, if more than two browser tests are assigned to a particular {{private-location}}, there may be a delay to run them. @@ -115,4 +115,4 @@ These limits are for simultaneous tests, not total tests. For example, if 60 bro ## Next steps [synthetics-private-location-next] -Now you can add monitors to your {{private-location}} in [the Synthetics UI](/solutions/observability/apps/create-monitors-in-synthetics-app.md) or using the [Elastic Synthetics library’s `push` method](/solutions/observability/apps/create-monitors-with-project-monitors.md). \ No newline at end of file +Now you can add monitors to your {{private-location}} in [the Synthetics UI](/solutions/observability/synthetics/create-monitors-ui.md) or using the [Elastic Synthetics library’s `push` method](/solutions/observability/synthetics/create-monitors-with-projects.md). \ No newline at end of file diff --git a/solutions/observability/apps/reader-role.md b/solutions/observability/synthetics/reader-role.md similarity index 100% rename from solutions/observability/apps/reader-role.md rename to solutions/observability/synthetics/reader-role.md diff --git a/solutions/observability/apps/scale-architect-synthetics-deployment.md b/solutions/observability/synthetics/scale-architect-synthetics-deployment.md similarity index 100% rename from solutions/observability/apps/scale-architect-synthetics-deployment.md rename to solutions/observability/synthetics/scale-architect-synthetics-deployment.md diff --git a/solutions/observability/apps/scripting-browser-monitors.md b/solutions/observability/synthetics/scripting-browser-monitors.md similarity index 73% rename from solutions/observability/apps/scripting-browser-monitors.md rename to solutions/observability/synthetics/scripting-browser-monitors.md index 9d9c3af3c..f2177ee9d 100644 --- a/solutions/observability/apps/scripting-browser-monitors.md +++ b/solutions/observability/synthetics/scripting-browser-monitors.md @@ -15,11 +15,11 @@ You can use synthetic monitors to detect bugs caused by invalid states you could Start by learning the basics of synthetic monitoring, including how to: -* [Write a synthetic test](/solutions/observability/apps/write-synthetic-test.md) -* [Test locally](/solutions/observability/apps/write-synthetic-test.md#synthetics-test-locally) -* [Configure individual browser monitors](/solutions/observability/apps/configure-individual-browser-monitors.md) -* [Work with params and secrets](/solutions/observability/apps/work-with-params-secrets.md) -* [Use the Synthetics Recorder](/solutions/observability/apps/use-synthetics-recorder.md) +* [Write a synthetic test](/solutions/observability/synthetics/write-synthetic-test.md) +* [Test locally](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-test-locally) +* [Configure individual browser monitors](/solutions/observability/synthetics/configure-individual-browser-monitors.md) +* [Work with params and secrets](/solutions/observability/synthetics/work-with-params-secrets.md) +* [Use the Synthetics Recorder](/solutions/observability/synthetics/use-synthetics-recorder.md) :::{image} /solutions/images/observability-synthetic-monitor-lifecycle.png :alt: Diagram of the lifecycle of a synthetic monitor: write a test diff --git a/solutions/observability/apps/setup-role.md b/solutions/observability/synthetics/setup-role.md similarity index 84% rename from solutions/observability/apps/setup-role.md rename to solutions/observability/synthetics/setup-role.md index 2344fca35..46118fc44 100644 --- a/solutions/observability/apps/setup-role.md +++ b/solutions/observability/synthetics/setup-role.md @@ -9,7 +9,7 @@ applies_to: Administrators who set up Synthetics typically need to enable Monitor Management. -Monitor Management will be enabled automatically when a user with the required permissions loads the Synthetics UI. This must be completed just once by an admin before any users with the [Writer role](writer-role.md) can create synthetic monitors. This applies to monitors created via both [projects](create-monitors-with-project-monitors.md) and [the UI](create-monitors-in-synthetics-app.md). +Monitor Management will be enabled automatically when a user with the required permissions loads the Synthetics UI. This must be completed just once by an admin before any users with the [Writer role](/solutions/observability/synthetics/writer-role.md) can create synthetic monitors. This applies to monitors created via both [projects](/solutions/observability/synthetics/create-monitors-with-projects.md) and [the UI](/solutions/observability/synthetics/create-monitors-ui.md). As a best practice, **grant the setup role to administrators only**, and use a more restrictive role for event publishing. @@ -18,7 +18,7 @@ Create a **setup role**, called something like `synthetics_setup`: 1. Start with the `editor` [built-in role](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md). This role grants full access to all features in {{kib}} (including the {{observability}} solution) and read-only access to data indices. ::::{note} - The `editor` [built-in role](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md) will grant write access to *all* {{kib}} apps. If you want to limit write access to the {{synthetics-app}} only, refer to [Limited write access](writer-role.md#synthetics-write-privileges-limited). + The `editor` [built-in role](/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md) will grant write access to *all* {{kib}} apps. If you want to limit write access to the {{synthetics-app}} only, refer to [Limited write access](/solutions/observability/synthetics/writer-role.md#synthetics-write-privileges-limited). If you choose this approach, you will still need to grant the privileges in the next step. @@ -39,6 +39,6 @@ Create a **setup role**, called something like `synthetics_setup`: | [Index](/deploy-manage/users-roles/cluster-or-deployment-auth/elasticsearch-privileges.md#privileges-list-indices) | `synthetics-*`: `monitor` | Gives access to all actions that are required for monitoring (recovery, segments info, index stats, and status). | ::::{note} -If users with the setup role also need to create, modify, and delete monitors, add the privileges defined in the [writer role](writer-role.md). +If users with the setup role also need to create, modify, and delete monitors, add the privileges defined in the [writer role](/solutions/observability/synthetics/writer-role.md). :::: diff --git a/solutions/observability/apps/synthetics-support-matrix.md b/solutions/observability/synthetics/support-matrix.md similarity index 85% rename from solutions/observability/apps/synthetics-support-matrix.md rename to solutions/observability/synthetics/support-matrix.md index 53bed3ad7..6a17c68bf 100644 --- a/solutions/observability/apps/synthetics-support-matrix.md +++ b/solutions/observability/synthetics/support-matrix.md @@ -14,18 +14,18 @@ There are various components that make up the Synthetics solution, which are sup * **GA support**: 8.8.0 and higher * **Notes**: - * For creating and managing lightweight and browser monitors configured through the [{{synthetics-app}}](create-monitors-in-synthetics-app.md) - * For reporting for lightweight and browser monitors configured through the [{{synthetics-app}}](create-monitors-in-synthetics-app.md) and/or [{{project-monitors-cap}}](create-monitors-with-project-monitors.md) + * For creating and managing lightweight and browser monitors configured through the [{{synthetics-app}}](/solutions/observability/synthetics/create-monitors-ui.md) + * For reporting for lightweight and browser monitors configured through the [{{synthetics-app}}](/solutions/observability/synthetics/create-monitors-ui.md) and/or [{{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md) ## {{project-monitors-cap}} [_project_monitors_cap] * **GA support**: 8.8.0 and higher -* **Notes**: For creating and managing lightweight and browser monitors configured as [{{project-monitors-cap}}](create-monitors-with-project-monitors.md) +* **Notes**: For creating and managing lightweight and browser monitors configured as [{{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md) ## Elastic’s global managed testing infrastructure [_elastics_global_managed_testing_infrastructure_2] * **GA support**: 8.8.0 and higher -* **Notes**: Elastic’s infrastructure for running lightweight and browser monitors configured through the [{{synthetics-app}}](create-monitors-in-synthetics-app.md) and/or [{{project-monitors-cap}}](create-monitors-with-project-monitors.md) +* **Notes**: Elastic’s infrastructure for running lightweight and browser monitors configured through the [{{synthetics-app}}](/solutions/observability/synthetics/create-monitors-ui.md) and/or [{{project-monitors-cap}}](/solutions/observability/synthetics/create-monitors-with-projects.md) Executing synthetic tests on Elastic’s global managed testing infrastructure incurs an additional charge. Tests are charged under one of two new billing dimensions depending on the monitor type. For *browser monitor* usage, there is a fee per test run. For *lightweight monitor* usage, there is a fee per region in which you run any monitors regardless of the number of test runs. For more details, refer to [full details and current pricing](https://www.elastic.co/pricing). diff --git a/solutions/observability/apps/use-synthetics-with-traffic-filters.md b/solutions/observability/synthetics/traffic-filters.md similarity index 85% rename from solutions/observability/apps/use-synthetics-with-traffic-filters.md rename to solutions/observability/synthetics/traffic-filters.md index 8cc5da76c..4ea30116b 100644 --- a/solutions/observability/apps/use-synthetics-with-traffic-filters.md +++ b/solutions/observability/synthetics/traffic-filters.md @@ -39,7 +39,7 @@ Note that as regions are added, this list will change. Similarly existing region ### {{private-location}}s [_private_locations] -If you’re running tests from [{{private-location}}s](monitor-resources-on-private-networks.md), you will have the {{agent}} installed on host machines that run the tests. You need to obtain the address ranges for these machines. This needs to be the IP address that the host is making the connection from into the {{es}} cluster. This *might not* be the IP address bound to the network interface of the host machine, but the proxy or other address based on your network configuration. +If you’re running tests from [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md), you will have the {{agent}} installed on host machines that run the tests. You need to obtain the address ranges for these machines. This needs to be the IP address that the host is making the connection from into the {{es}} cluster. This *might not* be the IP address bound to the network interface of the host machine, but the proxy or other address based on your network configuration. ## Add the traffic filter [_add_the_traffic_filter] diff --git a/solutions/observability/apps/use-synthetics-recorder.md b/solutions/observability/synthetics/use-synthetics-recorder.md similarity index 89% rename from solutions/observability/apps/use-synthetics-recorder.md rename to solutions/observability/synthetics/use-synthetics-recorder.md index 1072e1793..2c9c84378 100644 --- a/solutions/observability/apps/use-synthetics-recorder.md +++ b/solutions/observability/synthetics/use-synthetics-recorder.md @@ -14,7 +14,7 @@ As with any script recording technology, the Elastic Synthetics Recorder should :::: -You can use the Synthetics Recorder to [write a synthetic test](/solutions/observability/apps/write-synthetic-test.md) by interacting with a web page and exporting journey code that reflects all the actions you took. +You can use the Synthetics Recorder to [write a synthetic test](/solutions/observability/synthetics/write-synthetic-test.md) by interacting with a web page and exporting journey code that reflects all the actions you took. :::{image} /solutions/images/observability-synthetics-create-test-script-recorder.png :alt: Elastic Synthetics Recorder after recording a journey and clicking Export @@ -32,7 +32,7 @@ To record a journey: 1. Enter a starting URL in the search box. This URL will be the starting point of the journey script the recorder will create. 2. Click **Start** or press Enter on your keyboard. This will launch a Chromium window open to the page you specified and start recording. 3. Start interacting with the browser. This can include clicking on text, navigation, focusing on inputs like buttons and text fields, and more. -4. (Optional) You can click **Pause** to temporarily stop recording actions while you continue to interact with the browser. Click again to start recording actions again. Note: It’s especially important to [test the journey](/solutions/observability/apps/use-synthetics-recorder.md#synthetics-recorder-test-the-journey) if you paused recording at any point. +4. (Optional) You can click **Pause** to temporarily stop recording actions while you continue to interact with the browser. Click again to start recording actions again. Note: It’s especially important to [test the journey](/solutions/observability/synthetics/use-synthetics-recorder.md#synthetics-recorder-test-the-journey) if you paused recording at any point. 5. When you’re done interacting with the browser window, click **Stop** or close the browser to stop recording. ## Edit a journey [synthetics-recorder-edit-a-journey] @@ -78,7 +78,7 @@ To delete an action: 2. Click **Delete action**. ::::{important} -If you changed or deleted any actions to ensure the journey still works, it’s especially important to [test the journey](/solutions/observability/apps/use-synthetics-recorder.md#synthetics-recorder-test-the-journey). +If you changed or deleted any actions to ensure the journey still works, it’s especially important to [test the journey](/solutions/observability/synthetics/use-synthetics-recorder.md#synthetics-recorder-test-the-journey). :::: ### Add assertions [synthetics-recorder-add-assertions] @@ -94,7 +94,7 @@ To add an assertion: 5. Click **Save**. ::::{important} -If you added any assertions after you’ve finished recording to ensure the journey still works, it’s especially important to [test the journey](/solutions/observability/apps/use-synthetics-recorder.md#synthetics-recorder-test-the-journey). +If you added any assertions after you’ve finished recording to ensure the journey still works, it’s especially important to [test the journey](/solutions/observability/synthetics/use-synthetics-recorder.md#synthetics-recorder-test-the-journey). :::: ## Test the journey [synthetics-recorder-test-the-journey] @@ -113,7 +113,7 @@ When you are satisfied with journey you’ve created, you can export it from the Click **Export** to view the final journey code. From there you can use the code by: -* Copy and pasting code containing all steps into a new or existing [Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md) or an [inline monitor](/solutions/observability/apps/create-monitors-in-synthetics-app.md). +* Copy and pasting code containing all steps into a new or existing [Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md) or an [inline monitor](/solutions/observability/synthetics/create-monitors-ui.md). * Click **Export** to save a JavaScript file containing all steps. You can also check **Export as project** and either copy and paste or **Export** to get the full journey code including `journey` and imports for all dependencies. \ No newline at end of file diff --git a/solutions/observability/apps/work-with-params-secrets.md b/solutions/observability/synthetics/work-with-params-secrets.md similarity index 89% rename from solutions/observability/apps/work-with-params-secrets.md rename to solutions/observability/synthetics/work-with-params-secrets.md index bf0b7129b..c5d418caa 100644 --- a/solutions/observability/apps/work-with-params-secrets.md +++ b/solutions/observability/synthetics/work-with-params-secrets.md @@ -11,18 +11,18 @@ applies_to: Params allow you to use dynamically defined values in your synthetic monitors. For example, you may want to test a production website with a particular demo account whose password is only known to the team managing the synthetic monitors. -For more information about security-sensitive use cases, refer to [Working with secrets and sensitive values](/solutions/observability/apps/work-with-params-secrets.md#synthetics-secrets-sensitive). +For more information about security-sensitive use cases, refer to [Working with secrets and sensitive values](/solutions/observability/synthetics/work-with-params-secrets.md#synthetics-secrets-sensitive). ## Define params [synthetics-params-secrets-define] Param values can be declared by any of the following methods: -* In the *Global parameters* tab of the [Synthetics Settings page in an Observability project](/solutions/observability/apps/configure-synthetics-settings.md#synthetics-settings-global-parameters). -* Declaring a default value for the parameter in a [configuration file](/solutions/observability/apps/work-with-params-secrets.md#synthetics-dynamic-configs). -* Passing the `--params` [CLI argument](/solutions/observability/apps/work-with-params-secrets.md#synthetics-cli-params). +* In the *Global parameters* tab of the [Synthetics Settings page in an Observability project](/solutions/observability/synthetics/configure-settings.md#synthetics-settings-global-parameters). +* Declaring a default value for the parameter in a [configuration file](/solutions/observability/synthetics/work-with-params-secrets.md#synthetics-dynamic-configs). +* Passing the `--params` [CLI argument](/solutions/observability/synthetics/work-with-params-secrets.md#synthetics-cli-params). ::::{note} -If you are creating and managing synthetic monitors using a [Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md), you can also use regular environment variables via the standard node `process.env` global object. +If you are creating and managing synthetic monitors using a [Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md), you can also use regular environment variables via the standard node `process.env` global object. :::: @@ -67,7 +67,7 @@ The example above uses the `env` variable, which corresponds to the value of the ### CLI argument [synthetics-cli-params] -To set parameters when running [`npx @elastic/synthetics` on the command line](/solutions/observability/apps/use-synthetics-cli.md), use the `--params` or `-p` flag. The provided map is merged over any existing variables defined in the `synthetics.config.{js,ts}` file. +To set parameters when running [`npx @elastic/synthetics` on the command line](/solutions/observability/synthetics/cli.md), use the `--params` or `-p` flag. The provided map is merged over any existing variables defined in the `synthetics.config.{js,ts}` file. For example, to override the `my_url` parameter, you would run: diff --git a/solutions/observability/apps/write-synthetic-test.md b/solutions/observability/synthetics/write-synthetic-test.md similarity index 88% rename from solutions/observability/apps/write-synthetic-test.md rename to solutions/observability/synthetics/write-synthetic-test.md index ce00419e2..4a570f01c 100644 --- a/solutions/observability/apps/write-synthetic-test.md +++ b/solutions/observability/synthetics/write-synthetic-test.md @@ -9,7 +9,7 @@ applies_to: # Write a synthetic test [synthetics-create-test] -After [setting up a Synthetics project](/solutions/observability/apps/create-monitors-with-project-monitors.md), you can start writing synthetic tests that check critical actions and requests that an end-user might make on your site. +After [setting up a Synthetics project](/solutions/observability/synthetics/create-monitors-with-projects.md), you can start writing synthetic tests that check critical actions and requests that an end-user might make on your site. ## Syntax overview [synthetics-syntax] @@ -22,28 +22,28 @@ To write synthetic tests for your application, you’ll need to know basic JavaS The synthetics agent exposes an API for creating and running tests, including: `journey` -: Tests one discrete unit of functionality. Takes two parameters: a `name` (string) and a `callback` (function). Learn more in [Create a journey](/solutions/observability/apps/write-synthetic-test.md#synthetics-create-journey). +: Tests one discrete unit of functionality. Takes two parameters: a `name` (string) and a `callback` (function). Learn more in [Create a journey](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-create-journey). `step` -: Actions within a journey that should be completed in a specific order. Takes two parameters: a `name` (string) and a `callback` (function). Learn more in [Add steps](/solutions/observability/apps/write-synthetic-test.md#synthetics-create-step). +: Actions within a journey that should be completed in a specific order. Takes two parameters: a `name` (string) and a `callback` (function). Learn more in [Add steps](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-create-step). `expect` -: Check that a value meets a specific condition. There are several supported checks. Learn more in [Make assertions](/solutions/observability/apps/write-synthetic-test.md#synthetics-make-assertions). +: Check that a value meets a specific condition. There are several supported checks. Learn more in [Make assertions](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-make-assertions). `beforeAll` -: Runs a provided function once, before any `journey` runs. If the provided function is a promise, the runner will wait for the promise to resolve before invoking the `journey`. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/apps/write-synthetic-test.md#before-after). +: Runs a provided function once, before any `journey` runs. If the provided function is a promise, the runner will wait for the promise to resolve before invoking the `journey`. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/synthetics/write-synthetic-test.md#before-after). `before` -: Runs a provided function before a single `journey` runs. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/apps/write-synthetic-test.md#before-after). +: Runs a provided function before a single `journey` runs. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/synthetics/write-synthetic-test.md#before-after). `afterAll` -: Runs a provided function once, after all the `journey` runs have completed. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/apps/write-synthetic-test.md#before-after). +: Runs a provided function once, after all the `journey` runs have completed. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/synthetics/write-synthetic-test.md#before-after). `after` -: Runs a provided function after a single `journey` has completed. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/apps/write-synthetic-test.md#before-after). +: Runs a provided function after a single `journey` has completed. Takes one parameter: a `callback` (function). Learn more in [Set up and remove a global state](/solutions/observability/synthetics/write-synthetic-test.md#before-after). `monitor` -: The `monitor.use` method allows you to determine a monitor’s configuration on a journey-by-journey basis. If you want two journeys to create monitors with different intervals, for example, you should call `monitor.use` in each of them and set the `schedule` property to different values in each. Note that this is only relevant when using the `push` command to create monitors in {{kib}} an Observability Serverless project. Learn more in [Configure individual monitors](/solutions/observability/apps/configure-individual-browser-monitors.md). +: The `monitor.use` method allows you to determine a monitor’s configuration on a journey-by-journey basis. If you want two journeys to create monitors with different intervals, for example, you should call `monitor.use` in each of them and set the `schedule` property to different values in each. Note that this is only relevant when using the `push` command to create monitors in {{kib}} an Observability Serverless project. Learn more in [Configure individual monitors](/solutions/observability/synthetics/configure-individual-browser-monitors.md). ## Create a journey [synthetics-create-journey] @@ -79,10 +79,10 @@ journey('Journey name', ({ page, browser, context, params, request }) => { : A [browser context](https://playwright.dev/docs/api/class-browsercontext) that doesn’t share cookies or cache with other browser contexts. `params` - : User-defined variables that allow you to invoke the Synthetics suite with custom parameters. For example, if you want to use a different homepage depending on the `env` (`localhost` for `dev` and a URL for `prod`). See [Work with params and secrets](/solutions/observability/apps/work-with-params-secrets.md) for more information. + : User-defined variables that allow you to invoke the Synthetics suite with custom parameters. For example, if you want to use a different homepage depending on the `env` (`localhost` for `dev` and a URL for `prod`). See [Work with params and secrets](/solutions/observability/synthetics/work-with-params-secrets.md) for more information. `request` - : A request object that can be used to make API requests independently of the browser interactions. For example, to get authentication credentials or tokens in service of a browser-based test. See [Make API requests](/solutions/observability/apps/write-synthetic-test.md#synthetics-request-param) for more information. + : A request object that can be used to make API requests independently of the browser interactions. For example, to get authentication credentials or tokens in service of a browser-based test. See [Make API requests](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-request-param) for more information. ## Add steps [synthetics-create-step] @@ -116,7 +116,7 @@ step('Load the demo page', async () => { | | | | --- | --- | | **`name`** (*string*) | A user-defined string to describe the journey. | -| **`callback`** (*function*) | A function where you simulate user workflows using Synthetics and [Playwright](/solutions/observability/apps/write-synthetic-test.md#synthetics-playwright) syntax. | +| **`callback`** (*function*) | A function where you simulate user workflows using Synthetics and [Playwright](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-playwright) syntax. | ::::{note} @@ -124,7 +124,7 @@ If you want to generate code by interacting with a web page directly, you can us The recorder launches a [Chromium browser](https://www.chromium.org/Home/) that will listen to each interaction you have with the web page and record them internally using Playwright. When you’re done interacting with the browser, the recorder converts the recorded actions into JavaScript code that you can use with Elastic Synthetics or {{heartbeat}}. -For more details on getting started with the Synthetics Recorder, refer to [Use the Synthetics Recorder](/solutions/observability/apps/use-synthetics-recorder.md). +For more details on getting started with the Synthetics Recorder, refer to [Use the Synthetics Recorder](/solutions/observability/synthetics/use-synthetics-recorder.md). :::: @@ -135,7 +135,7 @@ Inside the callback for each step, you’ll likely use a lot of Playwright synta * Interacting with the [browser](https://playwright.dev/docs/api/class-browser) or the current [page](https://playwright.dev/docs/api/class-page) (like in the example above). * Finding elements on a web page using [locators](https://playwright.dev/docs/api/class-locator). * Simulating [mouse](https://playwright.dev/docs/api/class-mouse), [touch](https://playwright.dev/docs/api/class-touchscreen), or [keyboard](https://playwright.dev/docs/api/class-keyboard) events. -* Making assertions using [`@playwright/test`'s `expect` function](https://playwright.dev/docs/test-assertions). Read more in [Make assertions](/solutions/observability/apps/write-synthetic-test.md#synthetics-make-assertions). +* Making assertions using [`@playwright/test`'s `expect` function](https://playwright.dev/docs/test-assertions). Read more in [Make assertions](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-make-assertions). Visit the [Playwright documentation](https://playwright.dev/docs) for information. @@ -146,7 +146,7 @@ Do not attempt to run in headful mode (using `headless:false`) when running thro However, not all Playwright functionality should be used with Elastic Synthetics. In some cases, there are alternatives to Playwright functionality built into the Elastic Synthetics library. These alternatives are designed to work better for synthetic monitoring. Do *not* use Playwright syntax to: -* **Make API requests.** Use Elastic Synthetic’s `request` parameter instead. Read more in [Make API requests](/solutions/observability/apps/write-synthetic-test.md#synthetics-request-param). +* **Make API requests.** Use Elastic Synthetic’s `request` parameter instead. Read more in [Make API requests](/solutions/observability/synthetics/write-synthetic-test.md#synthetics-request-param). There is also some Playwright functionality that is not supported out-of-the-box in Elastic Synthetics including: @@ -202,9 +202,9 @@ step('make an API request', async () => { The Elastic Synthetics `request` parameter is similar to [other request objects that are exposed by Playwright](https://playwright.dev/docs/api/class-apirequestcontext) with a few key differences: -* The Elastic Synthetics `request` parameter comes built into the library so it doesn’t have to be imported separately, which reduces the amount of code needed and allows you to make API requests in [inline journeys](/solutions/observability/apps/create-monitors-in-synthetics-app.md#synthetics-get-started-ui-add-a-browser-monitor). +* The Elastic Synthetics `request` parameter comes built into the library so it doesn’t have to be imported separately, which reduces the amount of code needed and allows you to make API requests in [inline journeys](/solutions/observability/synthetics/create-monitors-ui.md#synthetics-get-started-ui-add-a-browser-monitor). * The top level `request` object exposed by Elastic Synthetics has its own isolated cookie storage unlike Playwright’s `context.request` and `page.request`, which share cookie storage with the corresponding [`BrowserContext`](https://playwright.dev/docs/api/class-browsercontext). -* If you want to control the creation of the `request` object, you can do so by passing options via [`--playwright-options`](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-command) or in the [`synthetics.config.ts` file](/solutions/observability/apps/configure-synthetics-projects.md). +* If you want to control the creation of the `request` object, you can do so by passing options via [`--playwright-options`](/solutions/observability/synthetics/cli.md#elastic-synthetics-command) or in the [`synthetics.config.ts` file](/solutions/observability/synthetics/configure-projects.md). For a full example that shows how to use the `request` object, refer to the [Elastic Synthetics demo repository](https://github.com/elastic/synthetics-demo/blob/main/advanced-examples/journeys/api-requests.journey.ts). @@ -255,7 +255,7 @@ journey('bundle test', ({ page, params }) => { }); ``` -When you [create a monitor](/solutions/observability/apps/create-monitors-with-project-monitors.md) from a journey that uses external NPM packages, those packages will be bundled along with the journey code when the `push` command is invoked. +When you [create a monitor](/solutions/observability/synthetics/create-monitors-with-projects.md) from a journey that uses external NPM packages, those packages will be bundled along with the journey code when the `push` command is invoked. However there are some limitations when using external packages: diff --git a/solutions/observability/apps/writer-role.md b/solutions/observability/synthetics/writer-role.md similarity index 94% rename from solutions/observability/apps/writer-role.md rename to solutions/observability/synthetics/writer-role.md index 1da4447f8..934ffb104 100644 --- a/solutions/observability/apps/writer-role.md +++ b/solutions/observability/synthetics/writer-role.md @@ -8,7 +8,7 @@ applies_to: # Writer role [synthetics-role-write] ::::{important} -To minimize the privileges required by the writer role, use the [setup role](setup-role.md) to enable Monitor Management. This section assumes another user has already enabled Monitor Management. +To minimize the privileges required by the writer role, use the [setup role](/solutions/observability/synthetics/setup-role.md) to enable Monitor Management. This section assumes another user has already enabled Monitor Management. :::: For users who need to create, modify, and delete monitors, provide write access. Two types of write access are outlined below: @@ -69,7 +69,7 @@ The user who is setting up a new Private Location will need the following privil ### If using projects [_if_using_projects] -If the user should be able to create and update monitors using [projects](get-started.md#observability-synthetics-get-started-synthetics-project), add *at least one* of following privileges: +If the user should be able to create and update monitors using [projects](/solutions/observability/synthetics/get-started.md#observability-synthetics-get-started-synthetics-project), add *at least one* of following privileges: | Type | Privilege | Purpose | | --- | --- | --- | diff --git a/solutions/observability/apps/analyze-monitors.md b/solutions/observability/uptime/analyze-monitors.md similarity index 94% rename from solutions/observability/apps/analyze-monitors.md rename to solutions/observability/uptime/analyze-monitors.md index ba5bea51c..a3cbce403 100644 --- a/solutions/observability/apps/analyze-monitors.md +++ b/solutions/observability/uptime/analyze-monitors.md @@ -11,7 +11,7 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: To access this page, go to **{{observability}} > Uptime > Monitors**. Click on a listed monitor to view more details and analyze further. @@ -35,7 +35,7 @@ To display a map with each location as a pinpoint, you can toggle the availabili The **Monitor duration** chart displays the timing for each check that was performed. The visualization helps you to gain insights into how quickly requests resolve by the targeted endpoint and give you a sense of how frequently a host or endpoint was down in your selected time span. -Included on this chart is the {{anomaly-detect}} ({{ml}}) integration. For more information, see [Inspect Uptime duration anomalies](inspect-uptime-duration-anomalies.md). +Included on this chart is the {{anomaly-detect}} ({{ml}}) integration. For more information, see [Inspect Uptime duration anomalies](/solutions/observability/uptime/inspect-duration-anomalies.md). :::{image} /solutions/images/observability-monitor-duration-chart.png :alt: Monitor duration chart diff --git a/solutions/observability/apps/analyze.md b/solutions/observability/uptime/analyze.md similarity index 58% rename from solutions/observability/apps/analyze.md rename to solutions/observability/uptime/analyze.md index 63c70c596..0e9503bea 100644 --- a/solutions/observability/apps/analyze.md +++ b/solutions/observability/uptime/analyze.md @@ -12,14 +12,14 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: The {{uptime-app}} in {{kib}} both gives you a high-level overview of your service’s availability and allows you to dig into details to diagnose what caused downtime. Learn how to view and interpret data in the {{uptime-app}}: -* [View monitor status](view-monitor-status.md) -* [Analyze monitors](analyze-monitors.md) -* [Inspect uptime duration anomalies](inspect-uptime-duration-anomalies.md) +* [View monitor status](/solutions/observability/uptime/view-monitor-status.md) +* [Analyze monitors](/solutions/observability/uptime/analyze-monitors.md) +* [Inspect uptime duration anomalies](/solutions/observability/uptime/inspect-duration-anomalies.md) diff --git a/solutions/observability/apps/configure-settings.md b/solutions/observability/uptime/configure-settings.md similarity index 91% rename from solutions/observability/apps/configure-settings.md rename to solutions/observability/uptime/configure-settings.md index 602326cb1..57d7902c9 100644 --- a/solutions/observability/apps/configure-settings.md +++ b/solutions/observability/uptime/configure-settings.md @@ -11,7 +11,7 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: The **Settings** page enables you to change which {{heartbeat}} indices are displayed by the {{uptime-app}}, configure rule connectors, and set expiration/age thresholds for TLS certificates. @@ -55,7 +55,7 @@ For more information about each connector, see [action types and connectors](/de ## Configure certificate thresholds [configure-cert-thresholds] -You can modify certificate thresholds to control how Uptime displays your TLS values in the [TLS Certificates](uptime-monitoring-deprecated.md#view-certificate-status) page. These settings also determine which certificates are selected by any TLS rule you create. +You can modify certificate thresholds to control how Uptime displays your TLS values in the [TLS Certificates](/solutions/observability/uptime/index.md#view-certificate-status) page. These settings also determine which certificates are selected by any TLS rule you create. | | | | --- | --- | diff --git a/solutions/observability/apps/get-started-with-uptime.md b/solutions/observability/uptime/get-started.md similarity index 87% rename from solutions/observability/apps/get-started-with-uptime.md rename to solutions/observability/uptime/get-started.md index 676763d32..55e422d75 100644 --- a/solutions/observability/apps/get-started-with-uptime.md +++ b/solutions/observability/uptime/get-started.md @@ -12,11 +12,11 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: ::::{important} -**This approach can only be used to create lightweight monitors.** To create *browser* monitors, use the [{{synthetics-app}}](get-started.md). +**This approach can only be used to create lightweight monitors.** To create *browser* monitors, use the [{{synthetics-app}}](/solutions/observability/synthetics/get-started.md). :::: {{heartbeat}} is a lightweight daemon that you install on a remote server to periodically check the status of your services and determine if they are available. It gathers performance data, formats it, and sends the data to the {{stack}}. @@ -28,7 +28,7 @@ Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md ::::{note} The Elastic Synthetics integration is a method for creating synthetic monitors that is no longer recommended. **Do not use the Elastic Synthetics integration to set up new monitors.** -For details on how to migrate from Elastic Synthetics integration to {{project-monitors}} or the {{synthetics-app}}, refer to [Migrate from the Elastic Synthetics integration](migrate-from-elastic-synthetics-integration.md). +For details on how to migrate from Elastic Synthetics integration to {{project-monitors}} or the {{synthetics-app}}, refer to [Migrate from the Elastic Synthetics integration](/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md). If you’ve used the Elastic Synthetics integration to create monitors in the past and need to reference documentation about the integration, go to the [8.3 documentation](https://www.elastic.co/guide/en/observability/8.3/uptime-set-up.html#uptime-set-up-choose-agent). @@ -62,7 +62,7 @@ heartbeat.monitors: Read more about configuration options in [Configure {{heartbeat}} monitors](beats://reference/heartbeat/configuration-heartbeat-options.md). ::::{warning} -**Do not use {{heartbeat}} to set up a *new* `browser` monitor.** Instead, use the [{{synthetics-app}}](get-started.md). +**Do not use {{heartbeat}} to set up a *new* `browser` monitor.** Instead, use the [{{synthetics-app}}](/solutions/observability/synthetics/get-started.md). If you previously used {{heartbeat}} to set up **`browser`** monitor, you can find resources in the [8.4 {{heartbeat}} documentation](https://www.elastic.co/guide/en/beats/heartbeat/8.4/monitor-browser-options.html). @@ -78,7 +78,7 @@ Version 9.0.0-beta1 has not yet been released. {{heartbeat}} is now sending synthetic monitoring data to the {{stack}}. Navigate to the {{uptime-app}} in {{kib}}, where you can see screenshots of each run, set up alerts in case of test failures, and more. -If a test does fail (shown as `down` in the {{uptime-app}}), you’ll be able to view the step script that failed, any errors, and a stack trace. For more information, refer to [Analyze](analyze.md). +If a test does fail (shown as `down` in the {{uptime-app}}), you’ll be able to view the step script that failed, any errors, and a stack trace. For more information, refer to [Analyze](/solutions/observability/uptime/analyze.md). ## Manage monitors [uptime-manage] diff --git a/solutions/observability/apps/uptime-monitoring-deprecated.md b/solutions/observability/uptime/index.md similarity index 83% rename from solutions/observability/apps/uptime-monitoring-deprecated.md rename to solutions/observability/uptime/index.md index 7b5ccc800..34a382a8e 100644 --- a/solutions/observability/apps/uptime-monitoring-deprecated.md +++ b/solutions/observability/uptime/index.md @@ -11,19 +11,19 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: ::::{important} -The {{uptime-app}} is for viewing result data from lightweight monitors running through {{heartbeat}} and [configured with a traditional `heartbeat.yml` file](get-started-with-uptime.md). This is for TCP, HTTP or ICMP monitors that you have configured and run from your own infrastructure with {{heartbeat}} natively. +The {{uptime-app}} is for viewing result data from lightweight monitors running through {{heartbeat}} and [configured with a traditional `heartbeat.yml` file](/solutions/observability/uptime/get-started.md). This is for TCP, HTTP or ICMP monitors that you have configured and run from your own infrastructure with {{heartbeat}} natively. -For browser-based monitors, a richer management and reporting experience, and more capabilities such as triaging and responding to alerts, use the [{{synthetics-app}}](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +For browser-based monitors, a richer management and reporting experience, and more capabilities such as triaging and responding to alerts, use the [{{synthetics-app}}](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. Note that the {{uptime-app}} is hidden from the interface when there is no recent {{heartbeat}} data. To see the app, you may need to turn on the **Always show legacy Uptime app** setting (`observability:enableLegacyUptimeApp`) under {{kib}} Advanced Settings. To learn how, refer to [Advanced Settings](kibana://reference/advanced-settings.md). :::: -The {{uptime-app}} uses {{agent}} to periodically check the status of your services and applications. Monitor the availability of network endpoints and services using [Lightweight HTTP/S, TCP, and ICMP monitors](synthetic-monitoring.md#monitoring-uptime). +The {{uptime-app}} uses {{agent}} to periodically check the status of your services and applications. Monitor the availability of network endpoints and services using [Lightweight HTTP/S, TCP, and ICMP monitors](/solutions/observability/synthetics/index.md#monitoring-uptime). ## Lightweight HTTP/S, TCP, and ICMP monitors [uptime-lightweight] @@ -40,13 +40,13 @@ In the {{uptime-app}}, you can monitor the status of network endpoints using the :screenshot: ::: -To set up your first monitor, refer to [Get started with Uptime](get-started-with-uptime.md). +To set up your first monitor, refer to [Get started with Uptime](/solutions/observability/uptime/get-started.md). ## TLS Certificates [view-certificate-status] 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, an assigned status is derived from the threshold values in the [Settings](configure-settings.md) page. +In addition to the common name, associated monitors, issuer information, and SHA fingerprints, an assigned status is derived from the threshold values in the [Settings](/solutions/observability/uptime/configure-settings.md) page. :::{image} /solutions/images/observability-tls-certificates.png :alt: TLS certificates diff --git a/solutions/observability/apps/inspect-uptime-duration-anomalies.md b/solutions/observability/uptime/inspect-duration-anomalies.md similarity index 94% rename from solutions/observability/apps/inspect-uptime-duration-anomalies.md rename to solutions/observability/uptime/inspect-duration-anomalies.md index 4230994b4..492a6148d 100644 --- a/solutions/observability/apps/inspect-uptime-duration-anomalies.md +++ b/solutions/observability/uptime/inspect-duration-anomalies.md @@ -11,7 +11,7 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: Each monitor location is modeled, and when a monitor runs for an unusual amount of time, at a particular time, an anomaly is recorded and highlighted on the **Monitor duration** chart. diff --git a/solutions/observability/apps/view-monitor-status.md b/solutions/observability/uptime/view-monitor-status.md similarity index 94% rename from solutions/observability/apps/view-monitor-status.md rename to solutions/observability/uptime/view-monitor-status.md index fb7fb697a..968350e73 100644 --- a/solutions/observability/apps/view-monitor-status.md +++ b/solutions/observability/uptime/view-monitor-status.md @@ -11,7 +11,7 @@ applies_to: ::::{admonition} Deprecated in 8.15.0. :class: warning -Use [Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md) instead of the {{uptime-app}}. +Use [Synthetic monitoring](/solutions/observability/synthetics/index.md) instead of the {{uptime-app}}. :::: The **Monitors** page provides you with a high-level view of all the services you are monitoring to help you quickly diagnose outages and other connectivity issues within your network. @@ -66,6 +66,6 @@ The Monitor list also contains a menu of available integrations. Expand the tabl Depending on the features you have installed and configured, you can view logs, metrics, or APM data relating to that monitor. You can choose: * Show host, pod, or container logs in the [{{logs-app}}](../logs/explore-logs.md). -* Show APM data in the [Applications UI](traces-2.md). +* Show APM data in the [Applications UI](/solutions/observability/apm/traces-ui.md). * Show host, pod, or container metrics in the [{{infrastructure-app}}](/solutions/observability/infra-and-hosts/analyze-infrastructure-host-metrics.md). diff --git a/solutions/security/explore/network-page.md b/solutions/security/explore/network-page.md index 82d1f3be7..6c5e2c206 100644 --- a/solutions/security/explore/network-page.md +++ b/solutions/security/explore/network-page.md @@ -57,7 +57,7 @@ There are also tabs for viewing and investigating specific types of data: * **Events**: All network events. To display alerts received from external monitoring tools, scroll down to the events table and select **Show only external alerts** on the right. * **Flows**: Source and destination IP addresses and countries. * **DNS**: DNS network queries. -* **HTTP**: Received HTTP requests (HTTP requests for applications using [Elastic APM](/solutions/observability/apps/application-performance-monitoring-apm.md) are monitored by default). +* **HTTP**: Received HTTP requests (HTTP requests for applications using [Elastic APM](/solutions/observability/apm/index.md) are monitored by default). * **TLS**: Handshake details. * **Anomalies**: Anomalies discovered by [machine learning jobs](/solutions/security/advanced-entity-analytics/anomaly-detection.md). diff --git a/solutions/toc.yml b/solutions/toc.yml index e19a673c9..164ea2ba6 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -97,222 +97,222 @@ toc: - file: observability/get-started/quickstart-elastic-cloud-otel-endpoint.md - file: observability/get-started/add-data-from-splunk.md - file: observability/get-started/get-started-with-dashboards.md - - file: observability/apps.md + - file: observability/applications/index.md children: - - file: observability/apps/llm-observability.md - - file: observability/apps/application-performance-monitoring-apm.md + - file: observability/applications/llm-observability.md + - file: observability/apm/index.md children: - - file: observability/apps/get-started-with-apm.md + - file: observability/apm/get-started.md children: - - file: observability/apps/get-started-apm-serverless.md - - file: observability/apps/fleet-managed-apm-server.md - - file: observability/apps/apm-server-binary.md - - file: observability/apps/learn-about-application-data-types.md + - file: observability/apm/get-started-serverless.md + - file: observability/apm/get-started-fleet-managed-apm-server.md + - file: observability/apm/get-started-apm-server-binary.md + - file: observability/apm/data-types.md children: - - file: observability/apps/spans.md - - file: observability/apps/transactions.md + - file: observability/apm/spans.md + - file: observability/apm/transactions.md children: - - file: observability/apps/transaction-sampling.md - - file: observability/apps/traces.md - - file: observability/apps/errors.md - - file: observability/apps/metrics.md - - file: observability/apps/metadata.md - - file: observability/apps/collect-application-data.md + - file: observability/apm/transaction-sampling.md + - file: observability/apm/traces.md + - file: observability/apm/errors.md + - file: observability/apm/metrics.md + - file: observability/apm/metadata.md + - file: observability/apm/collect-application-data.md children: - - file: observability/apps/elastic-apm-agents.md + - file: observability/apm/elastic-apm-agents.md children: - - file: observability/apps/apm-agent-central-configuration.md - - file: observability/apps/real-user-monitoring-rum.md - - file: observability/apps/create-upload-source-maps-rum.md - - file: observability/apps/use-opentelemetry-with-apm.md + - file: observability/apm/apm-agent-central-configuration.md + - file: observability/apm/real-user-monitoring-rum.md + - file: observability/apm/create-upload-source-maps-rum.md + - file: observability/apm/use-opentelemetry-with-apm.md children: - - file: observability/apps/upstream-opentelemetry-collectors-language-sdks.md - - file: observability/apps/collect-metrics.md - - file: observability/apps/limitations.md - - file: observability/apps/resource-atrributes.md - - file: observability/apps/apm-k8s-attacher.md - - file: observability/apps/monitoring-aws-lambda-functions.md - - file: observability/apps/integrate-with-jaeger-deprecated.md - - file: observability/apps/view-analyze-data.md + - file: observability/apm/upstream-opentelemetry-collectors-language-sdks.md + - file: observability/apm/collect-metrics.md + - file: observability/apm/limitations.md + - file: observability/apm/resource-attributes.md + - file: observability/apm/apm-k8s-attacher.md + - file: observability/apm/monitor-aws-lambda-functions.md + - file: observability/apm/jaeger.md + - file: observability/apm/view-analyze-data.md children: - - file: observability/apps/overviews.md + - file: observability/apm/overviews.md children: - - file: observability/apps/services.md - - file: observability/apps/traces-2.md - - file: observability/apps/dependencies.md - - file: observability/apps/service-map.md - - file: observability/apps/service-overview.md - - file: observability/apps/mobile-service-overview.md - - hidden: observability/apps/inventory.md - - file: observability/apps/drill-down-into-data.md + - file: observability/apm/services.md + - file: observability/apm/traces-ui.md + - file: observability/apm/dependencies.md + - file: observability/apm/service-map.md + - file: observability/apm/service-overview.md + - file: observability/apm/mobile-service-overview.md + - hidden: observability/apm/inventory.md + - file: observability/apm/drill-down-into-data.md children: - - file: observability/apps/transactions-2.md - - file: observability/apps/trace-sample-timeline.md - - file: observability/apps/errors-2.md - - file: observability/apps/metrics-2.md - - file: observability/apps/infrastructure.md - - file: observability/apps/logs.md - - file: observability/apps/filter-search-application-data.md + - file: observability/apm/transactions-ui.md + - file: observability/apm/trace-sample-timeline.md + - file: observability/apm/errors-ui.md + - file: observability/apm/metrics-ui.md + - file: observability/apm/infrastructure.md + - file: observability/apm/logs.md + - file: observability/apm/filter-search-data.md children: - - file: observability/apps/filter-application-data.md - - file: observability/apps/use-advanced-queries-on-application-data.md - - file: observability/apps/cross-cluster-search-with-application-data.md - - file: observability/apps/interpret-application-data.md + - file: observability/apm/filter-data.md + - file: observability/apm/advanced-queries.md + - file: observability/apm/cross-cluster-search.md + - file: observability/apm/interpret-data.md children: - - file: observability/apps/find-transaction-latency-failure-correlations.md - - file: observability/apps/track-deployments-with-annotations.md - - file: observability/apps/explore-mobile-sessions-with-discover.md - - file: observability/apps/observe-lambda-functions.md - - file: observability/apps/integrate-with-machine-learning.md - - file: observability/apps/apm-agent-explorer.md - - file: observability/apps/applications-ui-settings.md - - file: observability/apps/act-on-data.md + - file: observability/apm/find-transaction-latency-failure-correlations.md + - file: observability/apm/track-deployments-with-annotations.md + - file: observability/apm/explore-mobile-sessions.md + - file: observability/apm/observe-lambda-functions.md + - file: observability/apm/machine-learning.md + - file: observability/apm/apm-agent-explorer.md + - file: observability/apm/applications-ui-settings.md + - file: observability/apm/act-on-data.md children: - - file: observability/apps/create-apm-rules-alerts.md - - file: observability/apps/create-custom-links.md - - file: observability/apps/use-apm-securely.md + - file: observability/apm/create-apm-rules-alerts.md + - file: observability/apm/create-custom-links.md + - file: observability/apm/use-apm-securely.md children: - - file: observability/apps/application-data-security.md + - file: observability/apm/secure-data.md children: - - file: observability/apps/control-access-to-apm-data.md - - file: observability/apps/built-in-data-filters.md - - file: observability/apps/custom-filters.md - - file: observability/apps/delete-sensitive-data.md - - file: observability/apps/secure-communication-with-apm-agents.md + - file: observability/apm/control-access-to-apm-data.md + - file: observability/apm/built-in-data-filters.md + - file: observability/apm/custom-filters.md + - file: observability/apm/delete-sensitive-data.md + - file: observability/apm/secure-communication-with-apm-agents.md children: - - file: observability/apps/apm-agent-tls-communication.md - - file: observability/apps/api-keys.md - - file: observability/apps/secret-token.md - - file: observability/apps/anonymous-authentication.md - - file: observability/apps/secure-communication-with-elastic-stack.md + - file: observability/apm/apm-agent-tls-communication.md + - file: observability/apm/api-keys.md + - file: observability/apm/secret-token.md + - file: observability/apm/anonymous-authentication.md + - file: observability/apm/secure-communication-with-elastic-stack.md children: - - file: observability/apps/create-assign-feature-roles-to-apm-server-users.md - - file: observability/apps/grant-access-using-api-keys.md - - file: observability/apps/secure-access-to-applications-ui.md + - file: observability/apm/create-assign-feature-roles-to-apm-server-users.md + - file: observability/apm/grant-access-using-api-keys.md + - file: observability/apm/secure-access-to-applications-ui.md children: - - file: observability/apps/apm-reader-user.md - - file: observability/apps/applications-ui-annotation-user.md - - file: observability/apps/applications-ui-api-user.md - - file: observability/apps/applications-ui-central-config-user.md - - file: observability/apps/applications-ui-storage-explorer-user.md - - file: observability/apps/manage-storage.md + - file: observability/apm/ui-user-reader.md + - file: observability/apm/ui-user-annotation.md + - file: observability/apm/ui-user-api.md + - file: observability/apm/ui-user-central-config.md + - file: observability/apm/ui-user-storage-explorer.md + - file: observability/apm/manage-storage.md children: - - file: observability/apps/storage-explorer.md - - file: observability/apps/data-streams.md - - file: observability/apps/index-lifecycle-management.md - - file: observability/apps/view-elasticsearch-index-template.md - - file: observability/apps/parse-data-using-ingest-pipelines.md - - file: observability/apps/storage-sizing-guide.md - - file: observability/apps/reduce-storage.md - - file: observability/apps/explore-data-in-elasticsearch.md - - file: observability/apps/configure-apm-server.md + - file: observability/apm/storage-explorer.md + - file: observability/apm/data-streams.md + - file: observability/apm/index-lifecycle-management.md + - file: observability/apm/view-elasticsearch-index-template.md + - file: observability/apm/parse-data-using-ingest-pipelines.md + - file: observability/apm/storage-sizing-guide.md + - file: observability/apm/reduce-storage.md + - file: observability/apm/explore-data-in-elasticsearch.md + - file: observability/apm/configure-apm-server.md children: - - file: observability/apps/general-configuration-options.md - - file: observability/apps/configure-anonymous-authentication.md - - file: observability/apps/apm-agent-authorization.md - - file: observability/apps/configure-apm-agent-central-configuration.md - - file: observability/apps/configure-apm-instrumentation.md - - file: observability/apps/configure-kibana-endpoint.md - - file: observability/apps/configure-logging.md - - file: observability/apps/configure-output.md + - file: observability/apm/general-configuration-options.md + - file: observability/apm/configure-anonymous-authentication.md + - file: observability/apm/apm-agent-authorization.md + - file: observability/apm/configure-apm-agent-central-configuration.md + - file: observability/apm/configure-apm-instrumentation.md + - file: observability/apm/configure-kibana-endpoint.md + - file: observability/apm/configure-logging.md + - file: observability/apm/configure-output.md children: - - file: observability/apps/configure-output-for-elasticsearch-service-on-elastic-cloud.md - - file: observability/apps/configure-elasticsearch-output.md - - file: observability/apps/configure-logstash-output.md - - file: observability/apps/configure-kafka-output.md - - file: observability/apps/configure-redis-output.md - - file: observability/apps/configure-console-output.md - - file: observability/apps/configure-project-paths.md - - file: observability/apps/configure-real-user-monitoring-rum.md - - file: observability/apps/ssltls-settings.md + - file: observability/apm/configure-output-for-elasticsearch-service-on-elastic-cloud.md + - file: observability/apm/configure-elasticsearch-output.md + - file: observability/apm/configure-logstash-output.md + - file: observability/apm/configure-kafka-output.md + - file: observability/apm/configure-redis-output.md + - file: observability/apm/configure-console-output.md + - file: observability/apm/configure-project-paths.md + - file: observability/apm/configure-real-user-monitoring-rum.md + - file: observability/apm/ssl-tls-settings.md children: - - file: observability/apps/ssltls-output-settings.md - - file: observability/apps/ssltls-input-settings.md - - file: observability/apps/tail-based-sampling.md - - file: observability/apps/use-environment-variables-in-configuration.md - - file: observability/apps/apm-server-advanced-setup.md + - file: observability/apm/ssl-tls-output-settings.md + - file: observability/apm/ssl-tls-input-settings.md + - file: observability/apm/tail-based-sampling.md + - file: observability/apm/use-environment-variables-in-configuration.md + - file: observability/apm/apm-server-advanced-setup.md children: - - file: observability/apps/installation-layout.md - - file: observability/apps/secrets-keystore-for-secure-settings.md - - file: observability/apps/apm-server-command-reference.md - - file: observability/apps/tune-data-ingestion.md - - file: observability/apps/high-availability.md - - file: observability/apps/apm-server-systemd.md - - file: observability/apps/monitor-apm-server.md + - file: observability/apm/installation-layout.md + - file: observability/apm/secrets-keystore-for-secure-settings.md + - file: observability/apm/apm-server-command-reference.md + - file: observability/apm/tune-data-ingestion.md + - file: observability/apm/high-availability.md + - file: observability/apm/apm-server-systemd.md + - file: observability/apm/monitor-apm-server.md children: - - file: observability/apps/monitor-fleet-managed-apm-server.md - - file: observability/apps/monitor-apm-server-binary.md + - file: observability/apm/monitor-fleet-managed-apm-server.md + - file: observability/apm/monitor-apm-server-binary.md children: - - file: observability/apps/use-internal-collection-to-send-monitoring-data.md - - file: observability/apps/use-metricbeat-to-send-monitoring-data.md - - file: observability/apps/use-select-metrics-emitted-directly-to-monitoring-cluster.md - - file: observability/apps/apm-apis.md + - file: observability/apm/use-internal-collection-to-send-monitoring-data.md + - file: observability/apm/use-metricbeat-to-send-monitoring-data.md + - file: observability/apm/use-select-metrics-emitted-directly-to-monitoring-cluster.md + - file: observability/apm/apis.md children: - - file: observability/apps/apm-ui-api.md - - file: observability/apps/apm-server-api.md + - file: observability/apm/apm-ui-api.md + - file: observability/apm/apm-server-api.md children: - - file: observability/apps/apm-server-information-api.md - - file: observability/apps/elastic-apm-events-intake-api.md - - file: observability/apps/elastic-apm-agent-configuration-api.md - - file: observability/apps/opentelemetry-intake-api.md - - file: observability/apps/jaeger-event-intake.md - - file: observability/apps/managed-intake-service-event-api.md - - file: observability/apps/upgrade.md + - file: observability/apm/apm-server-information-api.md + - file: observability/apm/elastic-apm-events-intake-api.md + - file: observability/apm/elastic-apm-agent-configuration-api.md + - file: observability/apm/opentelemetry-intake-api.md + - file: observability/apm/jaeger-event-intake.md + - file: observability/apm/managed-intake-service-event-api.md + - file: observability/apm/upgrade.md children: - - file: observability/apps/apm-agent-compatibility.md - - file: observability/apps/upgrade-to-version-90.md + - file: observability/apm/apm-agent-compatibility.md + - file: observability/apm/upgrade-to-version-9.md children: - - file: observability/apps/upgrade-self-installation-of-apm-server-standalone-to-90.md - - file: observability/apps/upgrade-self-installation-of-apm-integration-to-90.md - - file: observability/apps/upgrade-elastic-cloud-apm-server-standalone-to-90.md - - file: observability/apps/upgrade-elastic-cloud-with-apm-integration-to-90.md - - file: observability/apps/switch-to-elastic-apm-integration.md + - file: observability/apm/upgrade-self-installation-of-apm-server-standalone-to-9.md + - file: observability/apm/upgrade-self-installation-of-apm-integration-to-9.md + - file: observability/apm/upgrade-elastic-cloud-apm-server-standalone-to-9.md + - file: observability/apm/upgrade-elastic-cloud-with-apm-integration-to-9.md + - file: observability/apm/switch-to-elastic-apm-integration.md children: - - file: observability/apps/switch-self-installation-to-apm-integration.md - - file: observability/apps/switch-an-elastic-cloud-cluster-to-apm-integration.md - - file: observability/apps/synthetic-monitoring.md + - file: observability/apm/switch-self-installation-to-apm-integration.md + - file: observability/apm/switch-an-elastic-cloud-cluster-to-apm-integration.md + - file: observability/synthetics/index.md children: - - file: observability/apps/get-started.md + - file: observability/synthetics/get-started.md children: - - file: observability/apps/create-monitors-with-project-monitors.md - - file: observability/apps/create-monitors-in-synthetics-app.md - - file: observability/apps/scripting-browser-monitors.md + - file: observability/synthetics/create-monitors-with-projects.md + - file: observability/synthetics/create-monitors-ui.md + - file: observability/synthetics/scripting-browser-monitors.md children: - - file: observability/apps/write-synthetic-test.md - - file: observability/apps/configure-individual-browser-monitors.md - - file: observability/apps/use-synthetics-recorder.md - - file: observability/apps/configure-lightweight-monitors.md - - file: observability/apps/manage-monitors.md - - file: observability/apps/work-with-params-secrets.md - - file: observability/apps/analyze-data-from-synthetic-monitors.md - - file: observability/apps/monitor-resources-on-private-networks.md - - file: observability/apps/use-synthetics-cli.md - - file: observability/apps/configure-synthetics-projects.md - - file: observability/apps/multi-factor-authentication-mfa-for-browser-monitors.md - - file: observability/apps/configure-synthetics-settings.md - - file: observability/apps/grant-users-access-to-secured-resources.md + - file: observability/synthetics/write-synthetic-test.md + - file: observability/synthetics/configure-individual-browser-monitors.md + - file: observability/synthetics/use-synthetics-recorder.md + - file: observability/synthetics/configure-lightweight-monitors.md + - file: observability/synthetics/manage-monitors.md + - file: observability/synthetics/work-with-params-secrets.md + - file: observability/synthetics/analyze-data.md + - file: observability/synthetics/monitor-resources-on-private-networks.md + - file: observability/synthetics/cli.md + - file: observability/synthetics/configure-projects.md + - file: observability/synthetics/mfa-for-browser-monitors.md + - file: observability/synthetics/configure-settings.md + - file: observability/synthetics/grant-access-to-secured-resources.md children: - - file: observability/apps/setup-role.md - - file: observability/apps/writer-role.md - - file: observability/apps/reader-role.md - - file: observability/apps/manage-data-retention.md - - file: observability/apps/use-synthetics-with-traffic-filters.md - - file: observability/apps/migrate-from-elastic-synthetics-integration.md - - file: observability/apps/scale-architect-synthetics-deployment.md - - file: observability/apps/synthetics-support-matrix.md - - file: observability/apps/synthetics-encryption-security.md - - file: observability/apps/real-user-monitoring-user-experience.md - - file: observability/apps/uptime-monitoring-deprecated.md - children: - - file: observability/apps/get-started-with-uptime.md - - file: observability/apps/analyze.md + - file: observability/synthetics/setup-role.md + - file: observability/synthetics/writer-role.md + - file: observability/synthetics/reader-role.md + - file: observability/synthetics/manage-data-retention.md + - file: observability/synthetics/traffic-filters.md + - file: observability/synthetics/migrate-from-elastic-synthetics-integration.md + - file: observability/synthetics/scale-architect-synthetics-deployment.md + - file: observability/synthetics/support-matrix.md + - file: observability/synthetics/encryption-security.md + - file: observability/applications/user-experience.md + - file: observability/uptime/index.md + children: + - file: observability/uptime/get-started.md + - file: observability/uptime/analyze.md children: - - file: observability/apps/view-monitor-status.md - - file: observability/apps/analyze-monitors.md - - file: observability/apps/inspect-uptime-duration-anomalies.md - - file: observability/apps/configure-settings.md + - file: observability/uptime/view-monitor-status.md + - file: observability/uptime/analyze-monitors.md + - file: observability/uptime/inspect-duration-anomalies.md + - file: observability/uptime/configure-settings.md - file: observability/otlp-visualize.md - - file: observability/apps/tutorial-monitor-java-application.md + - file: observability/applications/tutorial-monitor-java-application.md - file: observability/cicd.md - file: observability/cloud.md children: diff --git a/troubleshoot/kibana/using-kibana-server-logs.md b/troubleshoot/kibana/using-kibana-server-logs.md index 03e3bcad0..33b5b1e66 100644 --- a/troubleshoot/kibana/using-kibana-server-logs.md +++ b/troubleshoot/kibana/using-kibana-server-logs.md @@ -59,7 +59,7 @@ The next step is to define what [observability tools](https://www.elastic.co/obs To debug {{kib}} with the APM UI, you must set up the APM infrastructure. You can find instructions for the setup process [on the Observability integrations page](/solutions/observability/logs/stream-application-logs.md). -Once you set up the APM infrastructure, you can enable the APM agent and put {{kib}} under load to collect APM events. To analyze the collected metrics and logs, use the APM UI as demonstrated [in the docs](../../solutions/observability/apps/transactions-2.md#transaction-trace-sample). +Once you set up the APM infrastructure, you can enable the APM agent and put {{kib}} under load to collect APM events. To analyze the collected metrics and logs, use the APM UI as demonstrated [in the docs](/solutions/observability/apm/transactions-ui.md#transaction-trace-sample). ## Plain {{kib}} logs [plain-kibana-logs] diff --git a/troubleshoot/observability/apm/apm-server-performance-diagnostic.md b/troubleshoot/observability/apm/apm-server-performance-diagnostic.md index f5f383a7c..ecc4cddb0 100644 --- a/troubleshoot/observability/apm/apm-server-performance-diagnostic.md +++ b/troubleshoot/observability/apm/apm-server-performance-diagnostic.md @@ -8,7 +8,7 @@ applies_to: # APM Server performance diagnostic [apm-performance-diagnostic] -## Diagnosing backpressure from {{es}} [apm-es-backpressure] +## Diagnosing backpressure from {{es}} [apm-es-backpressure] When {{es}} is under excessive load or indexing pressure, APM Server could experience the downstream backpressure when indexing new documents into {{es}}. Most commonly, backpressure from {{es}} will manifest itself in the form of higher indexing latency and/or rejected requests, which in return could lead APM Server to deny incoming requests. As a result, APM agents connected to the affected APM Server will suffer from throttling and/or request timeout when shipping APM events. @@ -21,7 +21,7 @@ To quickly identify possible issues try looking for similar error logs lines in ... ``` -To gain better insight into APM Server health and performance, consider enabling the monitoring feature by following the steps in [Monitor APM Server](../../../solutions/observability/apps/monitor-apm-server.md). When enabled, APM Server will additionally report a set of vital metrics to help you identify any performance degradation. +To gain better insight into APM Server health and performance, consider enabling the monitoring feature by following the steps in [Monitor APM Server](/solutions/observability/apm/monitor-apm-server.md). When enabled, APM Server will additionally report a set of vital metrics to help you identify any performance degradation. Pay careful attention to the next metric fields: @@ -37,7 +37,7 @@ See [{{metricbeat}} documentation](beats://reference/metricbeat/exported-fields- One likely cause of excessive indexing pressure or rejected requests is undersized {{es}}. To mitigate this, follow the guidance in [Rejected requests](../../elasticsearch/rejected-requests.md). -(Not recommended) If scaling {{es}} resources up is not an option, you can adjust the `flush_bytes`, `flush_interval`, `max_retries` and `timeout` settings described in [Configure the Elasticsearch output](../../../solutions/observability/apps/configure-elasticsearch-output.md) to reduce APM Server indexing pressure. However, consider that increasing number of buffered documents and/or reducing retries may lead to a higher rate of dropped APM events. Down below a custom configuration example is listed where the number of default buffered documents is roughly doubled while {{es}} indexing retries are decreased simultaneously. This configuration provides a generic example and might not be applicable to your situation. Try adjusting the settings further to see what works for you. +(Not recommended) If scaling {{es}} resources up is not an option, you can adjust the `flush_bytes`, `flush_interval`, `max_retries` and `timeout` settings described in [Configure the Elasticsearch output](/solutions/observability/apm/configure-elasticsearch-output.md) to reduce APM Server indexing pressure. However, consider that increasing number of buffered documents and/or reducing retries may lead to a higher rate of dropped APM events. Down below a custom configuration example is listed where the number of default buffered documents is roughly doubled while {{es}} indexing retries are decreased simultaneously. This configuration provides a generic example and might not be applicable to your situation. Try adjusting the settings further to see what works for you. ```yaml output.elasticsearch: diff --git a/troubleshoot/observability/apm/apm-server-response-codes.md b/troubleshoot/observability/apm/apm-server-response-codes.md index 374fbb19f..883fd2e4b 100644 --- a/troubleshoot/observability/apm/apm-server-response-codes.md +++ b/troubleshoot/observability/apm/apm-server-response-codes.md @@ -10,42 +10,42 @@ applies_to: # APM Server response codes [apm-common-response-codes] -## HTTP 400: Data decoding error / Data validation error [apm-bad-request] +## HTTP 400: Data decoding error / Data validation error [apm-bad-request] ::::{tab-set} :::{tab-item} {{stack}} -The most likely cause for this error is using incompatible versions of {{apm-agent}} and APM Server. See the [agent/server compatibility matrix](/solutions/observability/apps/apm-agent-compatibility.md) to verify compatibility. +The most likely cause for this error is using incompatible versions of {{apm-agent}} and APM Server. See the [agent/server compatibility matrix](/solutions/observability/apm/apm-agent-compatibility.md) to verify compatibility. ::: :::{tab-item} {{serverless-short}} -The most likely cause for this error is using an incompatible version of an {{apm-agent}}. See [minimum supported APM agent versions](/solutions/observability/apps/elastic-apm-agents.md#observability-apm-agents-elastic-apm-agents-minimum-supported-versions) to verify compatibility. +The most likely cause for this error is using an incompatible version of an {{apm-agent}}. See [minimum supported APM agent versions](/solutions/observability/apm/elastic-apm-agents.md#observability-apm-agents-elastic-apm-agents-minimum-supported-versions) to verify compatibility. ::: :::: -## HTTP 400: Event too large [apm-event-too-large] +## HTTP 400: Event too large [apm-event-too-large] ::::{tab-set} :::{tab-item} {{stack}} -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 [Max event size](/solutions/observability/apps/general-configuration-options.md#apm-max_event_size) setting in the APM integration, and adjusting relevant settings in the agent. +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 [Max event size](/solutions/observability/apm/general-configuration-options.md#apm-max_event_size) setting in the APM integration, and adjusting relevant settings in the agent. ::: :::{tab-item} {{serverless-short}} -APM agents communicate with the Managed intake service 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 can reduce the size of the events that your APM agents send by: [enabling span compression](/solutions/observability/apps/spans.md) or [reducing collected stack trace information](/solutions/observability/apps/reduce-storage.md#observability-apm-reduce-stacktrace). +APM agents communicate with the Managed intake service 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 can reduce the size of the events that your APM agents send by: [enabling span compression](/solutions/observability/apm/spans.md) or [reducing collected stack trace information](/solutions/observability/apm/reduce-storage.md#observability-apm-reduce-stacktrace). ::: :::: -## HTTP 401: Invalid token [apm-unauthorized] +## HTTP 401: Invalid token [apm-unauthorized] ::::{tab-set} :::{tab-item} {{stack}} -Either the [Secret token](/solutions/observability/apps/secret-token.md) in the request header doesn’t match the secret token configured in the APM integration, or the [API keys](/solutions/observability/apps/api-keys.md) is invalid. +Either the [Secret token](/solutions/observability/apm/secret-token.md) in the request header doesn’t match the secret token configured in the APM integration, or the [API keys](/solutions/observability/apm/api-keys.md) is invalid. ::: :::{tab-item} {{serverless-short}} @@ -55,14 +55,14 @@ The API key is invalid. :::: -## HTTP 403: Forbidden request [apm-forbidden] +## HTTP 403: Forbidden request [apm-forbidden] -Either you are sending requests to a [RUM](../../../solutions/observability/apps/real-user-monitoring-rum.md) endpoint without RUM enabled, or a request is coming from an origin not specified in the APM integration settings. See the [Allowed origins](../../../solutions/observability/apps/configure-real-user-monitoring-rum.md#apm-rum-allow-origins) setting for more information. +Either you are sending requests to a [RUM](/solutions/observability/apm/real-user-monitoring-rum.md) endpoint without RUM enabled, or a request is coming from an origin not specified in the APM integration settings. See the [Allowed origins](/solutions/observability/apm/configure-real-user-monitoring-rum.md#apm-rum-allow-origins) setting for more information. -## HTTP 503: Request timed out waiting to be processed [apm-request-timed-out] +## HTTP 503: Request timed out waiting to be processed [apm-request-timed-out] -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 [Reduce storage](../../../solutions/observability/apps/reduce-storage.md) for more information. +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 [Reduce storage](/solutions/observability/apm/reduce-storage.md) for more information. Another option is to increase processing power. This can be done by either migrating your {{agent}} to a more powerful machine or adding more APM Server instances. diff --git a/troubleshoot/observability/apm/common-problems.md b/troubleshoot/observability/apm/common-problems.md index 562d04bdc..d966fc87c 100644 --- a/troubleshoot/observability/apm/common-problems.md +++ b/troubleshoot/observability/apm/common-problems.md @@ -162,7 +162,7 @@ APM agent --> Load Balancer --> APM Server 10s 15s 3600s ``` -The APM Server timeout can be configured by updating the [maximum duration for reading an entire request](../../../solutions/observability/apps/general-configuration-options.md#apm-read_timeout). +The APM Server timeout can be configured by updating the [maximum duration for reading an entire request](/solutions/observability/apm/general-configuration-options.md#apm-read_timeout). ## Field limit exceeded [apm-field-limit-exceeded] @@ -213,7 +213,7 @@ https://www.elastic.co/guide/en/infrastructure/guide/current/index.html These URLs, like most, include unique names. If we named transactions based on each unique URL, we’d end up with the problem described above—a very large number of different transaction names. Instead, we should strip away the unique information and group our transactions based on common information. In this case, that means naming all blog transactions, `/blog`, and all documentation transactions, `/guide`. -If you feel like you’d be losing valuable information by following this naming convention, don’t fret! You can always add additional metadata to your transactions using [labels](/solutions/observability/apps/metadata.md#apm-data-model-labels) (indexed) or [custom context](/solutions/observability/apps/metadata.md#apm-data-model-custom) (non-indexed). +If you feel like you’d be losing valuable information by following this naming convention, don’t fret! You can always add additional metadata to your transactions using [labels](/solutions/observability/apm/metadata.md#apm-data-model-labels) (indexed) or [custom context](/solutions/observability/apm/metadata.md#apm-data-model-custom) (non-indexed). After ensuring you’ve correctly named your transactions, you might still see errors in the Applications UI related to transaction group limit reached: @@ -239,7 +239,7 @@ If your problem is occurring in a different APM agent, the tips above still appl stack: all ``` -The [transaction overview](../../../solutions/observability/apps/transactions-2.md) will only display helpful information when the transactions in your services are named correctly. If you’re seeing "GET unknown route" or "unknown route" in the Applications UI, it could be a sign that something isn’t working as it should. +The [transaction overview](/solutions/observability/apm/transactions-ui.md) will only display helpful information when the transactions in your services are named correctly. If you’re seeing "GET unknown route" or "unknown route" in the Applications UI, it could be a sign that something isn’t working as it should. Elastic APM agents come with built-in support for popular frameworks out-of-the-box. This means, among other things, that the APM agent will try to automatically name HTTP requests. As an example, the Node.js agent uses the route that handled the request, while the Java agent uses the Servlet name. @@ -261,7 +261,7 @@ As an example, some APM agents store cookie values in `http.request.cookies`. Si **Ensure a field is searchable** There are two things you can do to if you’d like to ensure a field is searchable: -1. Index your additional data as [labels](/solutions/observability/apps/metadata.md) instead. These are dynamic by default, which means they will be indexed and become searchable and aggregatable. +1. Index your additional data as [labels](/solutions/observability/apm/metadata.md) instead. These are dynamic by default, which means they will be indexed and become searchable and aggregatable. 2. Create a custom mapping for the field. @@ -292,5 +292,5 @@ It’s likely that there is a problem correlating APM and infrastructure data. T To fix this, make sure these two fields match exactly. -For example, if the APM agent is not configured to use the correct host name, the host name might be set to the container name or the Kubernetes pod name. To get the correct host name, you need to set some additional configuration options, specifically `system.kubernetes.node.name` as described in [Kubernetes data](../../../solutions/observability/apps/elastic-apm-events-intake-api.md#apm-api-kubernetes-data). +For example, if the APM agent is not configured to use the correct host name, the host name might be set to the container name or the Kubernetes pod name. To get the correct host name, you need to set some additional configuration options, specifically `system.kubernetes.node.name` as described in [Kubernetes data](/solutions/observability/apm/elastic-apm-events-intake-api.md#apm-api-kubernetes-data). diff --git a/troubleshoot/observability/apm/processing-performance.md b/troubleshoot/observability/apm/processing-performance.md index cbd7c75c9..538af8d44 100644 --- a/troubleshoot/observability/apm/processing-performance.md +++ b/troubleshoot/observability/apm/processing-performance.md @@ -19,7 +19,7 @@ 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 [transactions](../../../solutions/observability/apps/transactions.md) and [spans](../../../solutions/observability/apps/spans.md). +* In all scenarios, using medium sized events. Events include [transactions](/solutions/observability/apm/transactions.md) and [spans](/solutions/observability/apm/spans.md). ::::{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 [{{es}} documentation](../../../deploy-manage/index.md). @@ -43,5 +43,5 @@ RUM deserves special consideration. The RUM agent runs in browsers, and there ca :::: -Alternatively or in addition to scaling the APM Server, consider decreasing the ingestion volume. Read more in [Reduce storage](../../../solutions/observability/apps/reduce-storage.md). +Alternatively or in addition to scaling the APM Server, consider decreasing the ingestion volume. Read more in [Reduce storage](/solutions/observability/apm/reduce-storage.md). diff --git a/troubleshoot/observability/explore-data.md b/troubleshoot/observability/explore-data.md index dd9e5f13d..49c1f4cf3 100644 --- a/troubleshoot/observability/explore-data.md +++ b/troubleshoot/observability/explore-data.md @@ -36,7 +36,7 @@ To customize a visualization further, click **Open in Lens** from the toolbar to | --- | --- | | KPI over time | The KPI over time histogram represents the performance indicators based on themetric you select, such as page views or monitor duration. | | Performance distribution | The Performance distribution time-series chart enables you to examine theperceived performance of your web applications based on the metric you select. | -| Core web vitals | The Core web vitals chart is a graphical representation of key metrics, such asloading performance, load responsiveness, and visual stability, for each of yourweb applications.
To learn more about metrics such as Largest contentful paint, Interaction to next paint,and Cumulative layout shift, see [{{user-experience}} metrics](../../solutions/observability/apps/real-user-monitoring-user-experience.md#user-experience-metrics). | +| Core web vitals | The Core web vitals chart is a graphical representation of key metrics, such asloading performance, load responsiveness, and visual stability, for each of yourweb applications.
To learn more about metrics such as Largest contentful paint, Interaction to next paint,and Cumulative layout shift, see [{{user-experience}} metrics](/solutions/observability/applications/user-experience.md#user-experience-metrics). | | Device distribution | The Device distribution chart displays device information such as OS, carrier name, and connection type. | For a breakdown of which data types are available for which reports, see [What data types can I explore?](#data-types) diff --git a/troubleshoot/observability/troubleshooting-synthetics.md b/troubleshoot/observability/troubleshooting-synthetics.md index c6571209d..9ed3e7b0b 100644 --- a/troubleshoot/observability/troubleshooting-synthetics.md +++ b/troubleshoot/observability/troubleshooting-synthetics.md @@ -15,7 +15,7 @@ applies_to: ## Local debugging [synthetics-troubleshooting-local-debugging] -For debugging synthetic tests locally, you can set an environment variable, `DEBUG=synthetics`, to capture Synthetics agent logs when using the [Synthetics CLI](/solutions/observability/apps/use-synthetics-cli.md). +For debugging synthetic tests locally, you can set an environment variable, `DEBUG=synthetics`, to capture Synthetics agent logs when using the [Synthetics CLI](/solutions/observability/synthetics/cli.md). ## Common issues [synthetics-troubleshooting-common-issues] @@ -34,9 +34,9 @@ Synthetic monitors will stop running if you have gone through this workflow: This happens because the permissions granted by clicking **Enable Monitor Management** in versions prior to 8.6.0 are not sufficient in versions 8.8.0 and above. -To fix this, a user with [admin permissions](/solutions/observability/apps/setup-role.md) needs to visit the {{synthetics-app}} in {{kib}}. In 8.8.0 and above, the equivalent of "enabling monitor management" happens automatically in the background when a user with [admin permissions](/solutions/observability/apps/setup-role.md) visits the {{synthetics-app}}. +To fix this, a user with [admin permissions](/solutions/observability/synthetics/setup-role.md) needs to visit the {{synthetics-app}} in {{kib}}. In 8.8.0 and above, the equivalent of "enabling monitor management" happens automatically in the background when a user with [admin permissions](/solutions/observability/synthetics/setup-role.md) visits the {{synthetics-app}}. -If a user *without* [admin permissions](/solutions/observability/apps/setup-role.md) visits the {{synthetics-app}} before an admin has visited it, the user will see a note that says "Only administrators can enable this feature". That note will persist until an admin user visits the {{synthetics-app}}. +If a user *without* [admin permissions](/solutions/observability/synthetics/setup-role.md) visits the {{synthetics-app}} before an admin has visited it, the user will see a note that says "Only administrators can enable this feature". That note will persist until an admin user visits the {{synthetics-app}}. ### No results from a monitor configured to run on a {{private-location}} [synthetics-troubleshooting-no-agent-running] @@ -54,15 +54,15 @@ When creating a {{private-location}}, you have to: ::::{tab-set} :::{tab-item} {{serverless-short}} -1. [Set up {{agent}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). -2. [Connect {{fleet}} to your Observability project](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. -3. [Add a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the Synthetics UI. +1. [Set up {{agent}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). +2. [Connect {{fleet}} to your Observability project](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. +3. [Add a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the Synthetics UI. ::: :::{tab-item} {{stack}} -1. [Set up {{fleet-server}} and {{agent}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). -2. [Connect {{fleet}} to the {{stack}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. -3. [Add a {{private-location}}](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. +1. [Set up {{fleet-server}} and {{agent}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-fleet-agent). +2. [Connect {{fleet}} to the {{stack}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-connect) and enroll an {{agent}} in {{fleet}}. +3. [Add a {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. ::: :::: @@ -76,7 +76,7 @@ To fix this, make sure there is an agent configured to run against the agent pol If you have configured a monitor but don’t see any results for that monitor in the {{synthetics-app}}, whether running them from Elastic’s global managed testing infrastructure or from {{private-location}}s, ensure Synthetics has a direct connection to {{es}}. -Do not configure any ingest pipelines or output via Logstash as this will prevent Synthetics from working properly and is not [supported](/solutions/observability/apps/synthetics-support-matrix.md). +Do not configure any ingest pipelines or output via Logstash as this will prevent Synthetics from working properly and is not [supported](/solutions/observability/synthetics/support-matrix.md). ### Browser monitor configured to run on a {{private-location}} not running to schedule [synthetics-troubleshooting-missing-browser-schedules] @@ -92,7 +92,7 @@ Start by identifying the cause of the issue. First, check if the time it takes t 1. Go to the {{synthetics-app}}. 2. Click the monitor, then click **Go to monitor**. -3. Go to the [Overview tab](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-individual-monitors-overview) to see the *Avg. duration*. You can also view the duration for individual runs in the [History tab](/solutions/observability/apps/analyze-data-from-synthetic-monitors.md#synthetics-analyze-individual-monitors-history). +3. Go to the [Overview tab](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-individual-monitors-overview) to see the *Avg. duration*. You can also view the duration for individual runs in the [History tab](/solutions/observability/synthetics/analyze-data.md#synthetics-analyze-individual-monitors-history). 4. Compare the duration to the scheduled frequency. If the duration is *greater than* the scheduled frequency, for example if the monitor that takes 90 seconds to run and its scheduled frequency is 1 minute, the next scheduled run will not occur because the current one is still running so you may see results for every other scheduled run. To fix this, you can either: @@ -105,28 +105,28 @@ If the duration is *less than* the scheduled frequency or the suggestion above d To fix this issue, you can either: -* Increase the number of concurrent browser monitors allowed (as described in [Scaling Private Locations](/solutions/observability/apps/monitor-resources-on-private-networks.md#synthetics-private-location-scaling)), paying attention to the scaling and hardware requirements documented. +* Increase the number of concurrent browser monitors allowed (as described in [Scaling Private Locations](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-scaling)), paying attention to the scaling and hardware requirements documented. * Create multiple {{private-location}}s and spread your browser monitors across them more evenly (effectively horizontally scaling your {{private-location}}s). ### No locations are available [synthetics-troubleshooting-no-locations] -When using {{ecloud}}, if there are no options available in the *Locations* dropdown when you try to create a monitor in the {{synthetics-app}} *or* if no locations are listed when using the [`location` command](/solutions/observability/apps/use-synthetics-cli.md#elastic-synthetics-locations-command), it might be because you do not have permission to use Elastic managed locations *and* there are no [Private Locations](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent) available yet. +When using {{ecloud}}, if there are no options available in the *Locations* dropdown when you try to create a monitor in the {{synthetics-app}} *or* if no locations are listed when using the [`location` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command), it might be because you do not have permission to use Elastic managed locations *and* there are no [Private Locations](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent) available yet. There are a few ways to fix this: ::::{tab-set} :::{tab-item} {{serverless-short}} -* If you have [Editor](/solutions/observability/apps/grant-users-access-to-secured-resources.md) access, you can [create a new Private Location](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. -* If you do *not* have the right privileges to create a Private Location, you can ask an [Admin](/solutions/observability/apps/grant-users-access-to-secured-resources.md) to create a Private Location or give you the necessary privileges so you can [create a new Private Location](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. +* If you have [Editor](/solutions/observability/synthetics/grant-access-to-secured-resources.md) access, you can [create a new Private Location](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. +* If you do *not* have the right privileges to create a Private Location, you can ask an [Admin](/solutions/observability/synthetics/grant-access-to-secured-resources.md) to create a Private Location or give you the necessary privileges so you can [create a new Private Location](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. ::: :::{tab-item} {{stack}} -* If you have [write access](/solutions/observability/apps/writer-role.md) including the privileges for [creating new Private Locations](/solutions/observability/apps/writer-role.md#synthetics-role-write-private-locations), you can [create a new Private Location](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. -* If you do *not* have the right privileges to create a Private Location, you can ask someone with the [necessary privileges](/solutions/observability/apps/writer-role.md#synthetics-role-write-private-locations) to create a Private Location or ask an administrator with a [setup role](/solutions/observability/apps/setup-role.md) to give you the necessary privileges and [create a new Private Location](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. -* If you want to create a monitor to run on Elastic’s global managed infrastructure, ask an administrator with a [setup role](/solutions/observability/apps/setup-role.md) to update [`Synthetics and Uptime` sub-feature privileges](/solutions/observability/apps/writer-role.md#disable-managed-locations) for the role you’re currently assigned. Then try creating the monitor again. +* If you have [write access](/solutions/observability/synthetics/writer-role.md) including the privileges for [creating new Private Locations](/solutions/observability/synthetics/writer-role.md#synthetics-role-write-private-locations), you can [create a new Private Location](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. +* If you do *not* have the right privileges to create a Private Location, you can ask someone with the [necessary privileges](/solutions/observability/synthetics/writer-role.md#synthetics-role-write-private-locations) to create a Private Location or ask an administrator with a [setup role](/solutions/observability/synthetics/setup-role.md) to give you the necessary privileges and [create a new Private Location](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent). Then try creating the monitor again. +* If you want to create a monitor to run on Elastic’s global managed infrastructure, ask an administrator with a [setup role](/solutions/observability/synthetics/setup-role.md) to update [`Synthetics and Uptime` sub-feature privileges](/solutions/observability/synthetics/writer-role.md#disable-managed-locations) for the role you’re currently assigned. Then try creating the monitor again. ::: :::: @@ -140,8 +140,8 @@ If you try to create or edit a monitor hosted on Elastic’s global managed infr To fix this you can either: -* Ask an administrator with a [setup role](/solutions/observability/apps/setup-role.md) to update [`Synthetics and Uptime` sub-feature privileges](/solutions/observability/apps/writer-role.md#disable-managed-locations) for the role you’re currently assigned or assign you a role that allows using Elastic’s global managed infrastructure. -* Use a [Private Location](/solutions/observability/apps/monitor-resources-on-private-networks.md#monitor-via-private-agent). +* Ask an administrator with a [setup role](/solutions/observability/synthetics/setup-role.md) to update [`Synthetics and Uptime` sub-feature privileges](/solutions/observability/synthetics/writer-role.md#disable-managed-locations) for the role you’re currently assigned or assign you a role that allows using Elastic’s global managed infrastructure. +* Use a [Private Location](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#monitor-via-private-agent). ## Get help [synthetics-troubleshooting-get-help]