Purpose-built for microservices-based environments, the Coralogix Service Flows feature allows you to rapidly investigate the radius of the impact of different services over time and troubleshoot issues immediately as part of Application Performance Monitoring.
To enjoy the feature, contact us via our in-app chat or by emailing [email protected].
Use Service Flows to:
A user visits an e-commerce website and clicks on a product to view its details. This action initiates a service flow. The flow begins when the user’s request reaches a service and ends when the service sends back the product details as a response. During this flow, several operations occur: the service might query a database to retrieve the product information, call external services for current pricing, and execute internal logic to prepare the content for display. Each of these operations represents a sub-flow. The service flow breakdown shows how these sub-flows collectively contribute to the request’s overall response time and performance.
Simply put, a service flow denotes a singular logical unit of work in a software application. More precisely, it encompasses the function and method calls constituting that unit of work. Each flow consists of a root span, an operation that serves as its entry point and triggers all other related operations.
Every service flow may contain hundreds, if not thousands of spans, grouped per operation name. An operation is a logical entity consolidating all spans with the same action type.
A sub-flow is a collection of related operations, the constituent functions that break down the various service operations into a service flow and collectively structure its performance. Examples include external service calls and database calls. Each sub-flow provides insights into its performance and how it affects the flow over time.
Coralogix’s APM captures and monitors the performance metrics associated with each sub-flow, making up the service flow. This information helps identify bottlenecks, optimize code, and ensure a smooth and efficient user experience during the entire purchase process.
What is the difference between Service Flows and Distributed Tracing?
The primary distinction between Service Flows and Distributed Tracing features is the analysis context and depth. Service Flows examine the entire sequence of events over time within a service. This method thoroughly explains how different parts of the flow interact and evolve, providing deep insights into the internal dynamics of service requests.
While Distributed Tracing is adept at capturing snapshots of individual operations at specific moments, it does not effectively identify long-term bottlenecks within the overall flow. Service Flows addresses this by delivering a detailed analysis that helps pinpoint and comprehend the underlying causes of performance issues across the entire service flow.
In essence, the Service Flows feature enhances the capabilities of Distributed Tracing by examining the collective impact of operations within a service flow, thus offering a more comprehensive view of their influence on the flow’s performance over time.
Users must configure custom instrumentation to define, report, and monitor service flows. Doing so connects all sub-flows or service operations to a particular service flow.
To add sub-flows to a service flow, use custom instrumentation for any of the following languages:
The Service Flow Screen lets you identify service flows that may be good candidates for fine-tuning performance problems or resolving errors. It presents a high-level overview of the selected app’s service flows, presented as operations.
STEP 1. To view information about your app’s service flows, navigate to APM > Service Flows from your Coralogix toolbar.
STEP 2. Select the Flow Type and filter to view the service flows of interest.
STEP 3. Clicking on a service flow for further investigation will transfer you to the Sub-Flow Screen.
The Sub-Flow Screen summarizes the performance of the succeeding operations of the flow root operation, the entry point for your service flow.
View the number of flow requests, errors, and maximum response times for your service sub-flows. Performance is presented in bar and line charts for the time frame chosen.
Each row of the Sub-Flow Summary presents a sub-flow, a collection of related operations, with its performance over time.
Hover over a sub-flow to view the exact placement of its constituent spans within a trace in Gantt view. This allows you to pinpoint the sub-flow with the greatest impact on the flow behavior over a specific timeframe. As spans do not appear as part of a trace linearly, you can move between spans to investigate each span and its connections within the flow further.
Hover over a sub-flow and click on the diagonal arrow to access an action menu for each sub-flow: drill down, obtain a trace link, export to JSON, view the raw span, or see the entire trace map.
Click on the Sub-Flow Drill-Down to investigate a sub-flow further.
Under the Sub-flow Spans tab, you will be presented with a full list of spans that comprise the particular sub-flow, each with contextual data.
To focus on particular spans, click on a point in time on the graphs at the top of the page, presenting average span response times, requests, and errors within a sub-flow.
Under the Gantt and Map tabs, select to view a trace from the dropdown menu. Sort traces using the following categories: most recent, max errors, max duration, above P95 and P99.
Documentation | Introduction to Application Performance Monitoring |
Need help?
Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.
Contact us via our in-app chat or by emailing [email protected].