diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index f91aa2b257c13..1c3904c8e659e 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -3546,11 +3546,6 @@ menu: url: tracing/trace_explorer/trace_queries/ parent: trace_explorer weight: 606 - - name: Request Flow Map - identifier: tracing_trace_explorer_request_flow_map - url: tracing/trace_explorer/request_flow_map/ - parent: trace_explorer - weight: 607 - name: Service Observability url: tracing/services/ parent: tracing diff --git a/content/en/tracing/trace_explorer/request_flow_map.md b/content/en/tracing/trace_explorer/request_flow_map.md deleted file mode 100644 index f09b5d414758e..0000000000000 --- a/content/en/tracing/trace_explorer/request_flow_map.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Request Flow Map -description: "Trace Search and Analytics" -aliases: - - /tracing/trace_search_and_analytics/request_flow_map -further_reading: - - link: 'https://www.datadoghq.com/blog/apm-request-flow-map-datadog' - tag: 'Blog' - text: 'Learn more about Request Flow Maps' ---- - -{{< img src="tracing/live_search_and_analytics/request_flow_map/Overview.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Request Flow Map" >}} - -_Request flow maps_ combine two key features of Datadog APM: the [service map][1] and [live exploring][2], to help you understand and track request paths through your stack. Quickly identify noisy services and choke points, or how many database calls are generated by a request to a specific endpoint. - -No additional configuration is required to use these flow maps, and they are powered by your [ingested spans][3]. Scope your LIVE (last 15 minutes) traces to any combination of tags and generate a dynamic map that represents the flow of requests between every service. The map is automatically generated based on your search criteria, and will regenerate live after any changes. - -## Navigating the request flow map - -- Hover over an edge that connects two services to see metrics for requests, errors, and latency for requests between those two services that match the query parameters. - -- The highest throughput connections are highlighted to show the most common path. - -- Click **Export** to save a PNG image of the current request flow map. This is a great way to generate a live architecture diagram, or one scoped to a specific user flow. - -{{< img src="tracing/live_search_and_analytics/request_flow_map/ServicePanel.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Flow map side panel for service information" >}} - -- Click any service on the map to view overall health and performance information for that service (throughput, latency, error rates, monitor status), along with infrastructure and runtime metrics. - -- The map automatically selects an appropriate layout based on the number of services present, and you can click **Cluster** or **Flow** to switch between the two available layouts. - -- RUM Applications are represented on the request flow map if you have [connected RUM and Traces][4]. - -{{< img src="tracing/live_search_and_analytics/request_flow_map/RUMService.mp4" alt="RUM service link from flow map" video=true style="width:100%;">}} - -Try the [request flow map in the app][5]. To get started, scope a simple query such as a single service or endpoint. - -### Examples - -Use the request flow map to investigate your application's behavior: - -- Search for a [resource][6] that corresponds to a particular HTTP request. - -- If you use [shadow deployments][7] or feature flags set as custom span tags, use the map to compare request latency between requests. This is a great pre-production complement to [deployment tracking][9] to observe how potential code changes will impact latency of deployed versions. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: /tracing/services/services_map/ -[2]: /tracing/trace_explorer/ -[3]: /tracing/trace_pipeline/ingestion_controls -[4]: /real_user_monitoring/platform/connect_rum_and_traces?tab=browserrum -[5]: https://app.datadoghq.com/apm/flow-map -[6]: /tracing/glossary/#resources -[7]: /tracing/services/deployment_tracking/#shadow-deploys -[9]: /tracing/services/deployment_tracking/ diff --git a/content/en/tracing/trace_explorer/visualize.md b/content/en/tracing/trace_explorer/visualize.md index 2d4e6f0ae1fbc..638fdd1885327 100644 --- a/content/en/tracing/trace_explorer/visualize.md +++ b/content/en/tracing/trace_explorer/visualize.md @@ -1,10 +1,16 @@ --- title: Span Visualizations description: 'View spans in a list, or aggregate spans into timeseries, top lists and more.' +aliases: + - /tracing/trace_search_and_analytics/request_flow_map + - /tracing/trace_explorer/request_flow_map/ further_reading: - link: 'tracing/trace_explorer/' tag: 'Documentation' text: 'Trace Explorer' + - link: 'https://www.datadoghq.com/blog/apm-request-flow-map-datadog' + tag: 'Blog' + text: 'Learn more about Request Flow Maps' --- ## Overview @@ -89,6 +95,31 @@ The following table shows the error spans count by `Env`, `Service`, and `Error {{< img src="tracing/trace_explorer/visualize/table_view.png" alt="Table view" style="width:100%;">}} +## Request Flow Map + +[Request flow maps][6] combine APM's [service map][7] and [live exploring][8] features to illustrate request paths through your stack. Scope your traces to any combination of tags and generate a dynamic map that represents the flow of requests between every service. + +{{< img src="tracing/live_search_and_analytics/request_flow_map/Overview.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Request flow map showing the flow of requests between services, as well as request times and error rates" >}} + +For example, you can use request flow maps to identify high-traffic services or track the number of database calls generated by a request to a specific endpoint. If you use [shadow deployments][9] or feature flags set as custom span tags, you can use request flow maps to compare request latencies between requests and anticipate how code changes will impact perforamnce. + +### Navigating the request flow map + +- Hover over the edge that connects two services to see metrics for requests, errors, and latencies between those services. **Note**: Highlighted edges represent the highest throughput connections, or the most common paths. + +- Click **Export** to save a PNG image of the current request flow map. Use this feature to generate a live architecture diagram or one scoped to a specific user flow. + +- Click any service on the map to view health, performance, infrastructure, and runtime metrics for that service. + +{{< img src="tracing/live_search_and_analytics/request_flow_map/ServicePanel.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Request flow map side panel with metrics and metadata for the selected service" >}} + +- The map automatically selects an appropriate layout based on the number of services present. Click **Cluster** or **Flow** to switch between the layouts. + +- RUM Applications are represented on the request flow map if you have [connected RUM and Traces][10]. + +{{< img src="tracing/live_search_and_analytics/request_flow_map/RUMService.mp4" alt="A video showing how to navigate into the service details of a RUM application in the request flow map" video=true style="width:100%;">}} + + ## Further Reading {{< partial name="whats-next/whats-next.html" >}} @@ -98,3 +129,8 @@ The following table shows the error spans count by `Env`, `Service`, and `Error [3]: /tracing/trace_explorer/facets/#quantitative-facets-measures [4]: /tracing/trace_explorer/?tab=timeseriesview#live-search-for-15-minutes [5]: /tracing/error_tracking/ +[6]: https://app.datadoghq.com/apm/flow-map +[7]: /tracing/services/services_map/ +[8]: /tracing/trace_explorer/ +[9]: /tracing/services/deployment_tracking/#shadow-deploys +[10]: /real_user_monitoring/platform/connect_rum_and_traces?tab=browserrum