diff --git a/solutions/images/observability-service-overview-contextual-map.jpg b/solutions/images/observability-service-overview-contextual-map.jpg new file mode 100644 index 00000000000..e9797f0956b Binary files /dev/null and b/solutions/images/observability-service-overview-contextual-map.jpg differ diff --git a/solutions/images/observability-transaction-details-contextual-map.jpg b/solutions/images/observability-transaction-details-contextual-map.jpg new file mode 100644 index 00000000000..decc1ceb4a6 Binary files /dev/null and b/solutions/images/observability-transaction-details-contextual-map.jpg differ diff --git a/solutions/observability/apm/mobile-service-overview.md b/solutions/observability/apm/mobile-service-overview.md index 39709534f7b..7f3f6b7e179 100644 --- a/solutions/observability/apm/mobile-service-overview.md +++ b/solutions/observability/apm/mobile-service-overview.md @@ -45,6 +45,18 @@ Optimize your end-user experience and your application QA strategy based on your :screenshot: ::: +## Service map [mobile-service-map] +```{applies_to} +stack: ga 9.6+ +serverless: ga +``` + +The **Service map** panel shows the mobile service’s upstream and downstream connections. It uses the selected time range and environment, and the mobile filters—device, operating system version, app version, and network connection type—are added to the KQL query. + +Click **Explore in Service map** to open the full map with the service selected. The link preserves the time range, environment, and KQL query, so the mobile filters carry over. + +For licensing requirements and map controls, refer to [](/solutions/observability/apm/service-map.md). + ## Throughput and transactions [mobile-throughput-transactions] The **Throughput** chart visualizes the average number of transactions per minute for the selected service. diff --git a/solutions/observability/apm/service-map.md b/solutions/observability/apm/service-map.md index 1e16a1443ab..160f2035ef5 100644 --- a/solutions/observability/apm/service-map.md +++ b/solutions/observability/apm/service-map.md @@ -18,6 +18,13 @@ A service map is a real-time visual representation of the instrumented services You can view all your instrumented services and the connections between them, or focus on the services that interest you most. +## Requirements [service-map-requirements] + +Service maps access is dependent on your subscription level. For more information, refer to: + +* **Elastic Stack**: [Subscriptions](https://www.elastic.co/subscriptions). +* **{{obs-serverless}}**: The [Observability Serverless feature tier](/solutions/observability/observability-serverless-feature-tiers.md#obs-subscription-features). + ## How do service maps work? [service-maps-how] 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. @@ -39,9 +46,13 @@ If you’re using {{edot}} or contrib OpenTelemetry, set the `deployment.environ To focus on one or more services, select them in the **Service name** filter. The map highlights the selected services and their connections. -Service maps are also embedded where you’re already working: a service’s **Overview** tab and its transaction details include a **Service map** panel scoped to that service. To view the panel for a transaction group, open the service’s **Transactions** tab and select a group from the **Transactions** table. +Service maps are also embedded where you’re already working: a service’s **Overview** tab and its transaction details include a **Service map** panel. The panel centers on the service and shows its upstream and downstream connections. To view the panel for a transaction group, open the service’s **Transactions** tab and select a group from the **Transactions** table. + +The [mobile service overview](/solutions/observability/apm/mobile-service-overview.md#mobile-service-map) includes the same panel. -To open the full service map from an embedded panel, click **Explore in Service map**. The services you were viewing stay filtered and highlighted on the full map. +Use **Hops** to adjust how many connections to follow from the service, and **Max visible** to limit the number of nodes shown. + +To open the full service map from an embedded panel, click **Explore in Service map**. The map preserves the time range, environment, and KQL query, and selects the service in the **Service name** filter. From transaction details, it also adds filters for the transaction name and type. Selected services stay highlighted. :::: ::::{applies-item} stack: ga 9.0-9.5 @@ -94,6 +105,20 @@ In the transaction flyout, under **Trace sample**, click a span or transaction i The transaction flyout follows the service flyout's environment, transaction type, and time range. If the transaction no longer matches those filters, it displays the previous data with a warning. For the full workflow and filter behavior, refer to [Investigate a service with flyouts](/solutions/observability/apm/discover-traces.md#investigate-with-flyouts). +### Move between dashboards and the service map [service-map-dashboard-context] +```{applies_to} +stack: ga 9.6+ +serverless: ga +``` + +When you copy the map to a dashboard, the panel preserves the environment, KQL query, selected services, map orientation, and the **Dependencies**, **Alert status**, **SLO status**, and **Anomaly severity** filters. Selecting multiple services in **Service name** also preserves their highlights. The destination dashboard opens with the map’s time range. + +Field-value and field-existence filters are included in the panel’s KQL query. Range and custom filters aren’t copied. + +By default, the copied panel uses its own filters. To also apply the dashboard’s query and filters, edit the panel and turn on **Sync with dashboard filters**. + +From a dashboard panel, click **View in Service map** to continue investigating on the full map. The link preserves the panel’s time range, environment, KQL query, selected services, map orientation, and map filters. Dashboard queries and filters applied through **Sync with dashboard filters** aren’t included in this link. + ## Investigate the service map with AI [service-map-ai-investigation] ```{applies_to} stack: ga 9.6+ diff --git a/solutions/observability/apm/service-overview.md b/solutions/observability/apm/service-overview.md index 175f10f95c5..9ab08b4769d 100644 --- a/solutions/observability/apm/service-overview.md +++ b/solutions/observability/apm/service-overview.md @@ -28,8 +28,6 @@ Selecting a non-mobile [**service**](/solutions/observability/apm/services.md) b {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` Each RED metric chart (**Latency**, **Throughput**, and **Failed transaction rate**) includes an **Open in Discover** button to explore the underlying trace data directly in Discover. -{applies_to}`stack: ga 9.6+` {applies_to}`serverless: ga` The overview also includes a **Service map** panel scoped to the service, showing how it connects to the rest of your architecture. Refer to [](/solutions/observability/apm/service-map.md) for more information. - ## Time series and expected bounds comparison [service-time-comparison] For insight into the health of your services, you can compare how a service performs relative to a previous time frame or to the expected bounds from the corresponding {{anomaly-job}}. For example, has latency been slowly increasing over time, did the service experience a sudden spike, is the throughput similar to what the {{ml}} job expects — enabling a comparison can provide the answer. @@ -58,6 +56,21 @@ Response times for the service. You can filter the **Latency** chart to display :screenshot: ::: +## Service map [service-overview-map] +```{applies_to} +stack: ga 9.6+ +serverless: ga +``` + +The **Service map** panel shows the service’s upstream and downstream connections. Click **Explore in Service map** to open the full map with the service selected and the time range, environment, and KQL query preserved. + +For licensing requirements and map controls, refer to [](/solutions/observability/apm/service-map.md). + +:::{image} /solutions/images/observability-service-overview-contextual-map.jpg +:alt: Service map panel in the service overview, showing upstream and downstream connections and map controls +:screenshot: +::: + ## Throughput and transactions [service-throughput-transactions] The **Throughput** chart visualizes the average number of transactions per minute for the selected service. diff --git a/solutions/observability/apm/transactions-ui.md b/solutions/observability/apm/transactions-ui.md index 65de59d4265..ae98e12789c 100644 --- a/solutions/observability/apm/transactions-ui.md +++ b/solutions/observability/apm/transactions-ui.md @@ -88,13 +88,26 @@ Additional RUM goodies, like core vitals, and visitor breakdown by browser, loca Selecting a transaction group will bring you to the **transaction** details. This page is visually similar to the transaction overview, but it shows data from all transactions within the selected transaction group. -{applies_to}`stack: ga 9.6+` {applies_to}`serverless: ga` The transaction details also include a **Service map** panel scoped to the service. Refer to [](/solutions/observability/apm/service-map.md) for more information. - :::{image} /solutions/images/observability-apm-transactions-overview.png :alt: Example view of response time distribution :screenshot: ::: +### Service map [transaction-details-service-map] +```{applies_to} +stack: ga 9.6+ +serverless: ga +``` + +The **Service map** panel shows the service’s upstream and downstream connections. Click **Explore in Service map** to open the full map with the service selected. The link preserves the time range, environment, and KQL query, and adds filters for the transaction name and type. + +For licensing requirements and map controls, refer to [](/solutions/observability/apm/service-map.md). + +:::{image} /solutions/images/observability-transaction-details-contextual-map.jpg +:alt: Service map panel beside the failed transaction rate chart in transaction details +:screenshot: +::: + ### Latency distribution [transaction-duration-distribution] The latency distribution shows a plot of all transaction durations for the given time period. The following screenshot shows a typical distribution and indicates most of our requests were served quickly — awesome! The requests on the right are taking longer than average; we probably need to focus on them.