Our next-gen architecture is built to help you make sense of your ever-growing data. Watch a 4-min demo video!

Back to All Docs

Service Flows

Last Updated: Jan. 31, 2024

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 at present, contact us via our in-app chat or by emailing [email protected].

Overview

Use Service Flows to:

  • Investigate the performance of each service flow by breaking it down into its constituent operations.
  • Gain a granular understanding of how each sub-flow, a collection of related operations, affects the performance of the entire service flow over time.
  • Rapidly identify and troubleshoot the sub-flows causing performance issues over time.

Concepts

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.

Service Flow

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.

Operation

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.

Sub-Flow

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.

Service Flows v. Distributed Tracing

What is the difference between Service Flows and Distributed Tracing?

The primary distinction between Service Flows and Distributed Tracing features is in 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 over time, 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.

Instrumentation

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:

Monitoring

View Service Flows

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 all 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.

  • Flow types include:
    • Web Flow: Responds to external requests
    • Pub-Sub Flow: No expected responses (e.g., message queues)
    • Internal Flow: Self-triggered flows (e.g., shutdown operations)
  • Once you have defined your view, the service flows’ response time, throughput, and error rate will be displayed visually.
  • A grid will display all of the service flows matching your filter specifications. For each, you will be presented with average response time, P95 response time, average throughput (RPM), and error rate (per minute).

STEP 3. Clicking on a service flow for further investigation will transfer you to the Sub-Flow Screen.

View Sub-Flows

The Sub-Flow Screen summarizes the performance of the succeeding operations of the flow root operation, the entry point for your service flow.

Subflow Summary. Each row presents a sub-flow with its contextual data, allowing you to get a focused view of the flow bottlenecks.

Flow Traces. Hover over any flow trace and click on the ellipsis to access an action menu for each flow trace: obtain a trace link, export to JSON, view the raw span, or see the entire trace map.

Visualizations. Visualize flow traces in either Gantt or map mode. These formats provide powerful visual tools to comprehend the relationships between sub-flows within the flow.

Additional Resources

DocumentationIntroduction to Application Performance Monitoring

Support

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].

On this page