The most surprising thing about New Relic Pathpoint is that it treats your business logic as a first-class citizen, just like your code.

Let’s see it in action. Imagine a simple e-commerce checkout flow. A customer adds an item to their cart, proceeds to checkout, enters shipping information, selects a payment method, and finally places the order. Each of these steps is a distinct business event, and Pathpoint can track the success and failure rates of each step, and crucially, the transitions between them.

Here’s a simplified representation of what that might look like in New Relic:

// Imagine this is the data Pathpoint collects from your application
// In reality, this is often generated from APM traces or custom events.

// Event: UserAddedToCart
{
  "timestamp": "2023-10-27T10:00:01Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "productId": "prod_xyz",
  "eventType": "UserAddedToCart"
}

// Event: CheckoutInitiated
{
  "timestamp": "2023-10-27T10:01:15Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "cartId": "cart_789",
  "eventType": "CheckoutInitiated"
}

// Event: ShippingInfoEntered
{
  "timestamp": "2023-10-27T10:02:05Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "shippingAddressId": "addr_def",
  "eventType": "ShippingInfoEntered"
}

// Event: PaymentMethodSelected
{
  "timestamp": "2023-10-27T10:02:40Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "paymentMethodId": "pay_ghi",
  "eventType": "PaymentMethodSelected"
}

// Event: OrderPlaced
{
  "timestamp": "2023-10-27T10:03:10Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "orderId": "order_jkl",
  "totalAmount": 99.99,
  "eventType": "OrderPlaced"
}

// Event: CheckoutFailed (example of a failure)
{
  "timestamp": "2023-10-27T10:02:55Z",
  "appName": "ECommerceApp",
  "userSessionId": "sess_abc123",
  "reason": "PaymentDeclined",
  "eventType": "CheckoutFailed"
}

Pathpoint visualizes these events as nodes in a directed graph, with arrows representing the transitions between them. The thickness of the arrows and the size of the nodes indicate the volume of traffic (transactions, user sessions, etc.) flowing through that particular step or transition. You can then click on any node or transition to see detailed metrics: conversion rates, error rates, latency, and even the underlying traces or logs that caused a failure.

The core problem Pathpoint solves is bridging the gap between application performance monitoring (APM) and business outcomes. APM tells you if your database is slow or if your API is returning 500 errors. Pathpoint tells you why that matters to your business: "Our checkout conversion rate dropped by 15% yesterday, and the bottleneck is the PaymentMethodSelected to OrderPlaced transition, specifically due to payment gateway timeouts." It allows you to move beyond purely technical metrics to understand the impact of system behavior on key performance indicators (KPIs) like sales, sign-ups, or task completion.

The internal magic involves correlating events. New Relic uses a combination of trace context propagation (if you’re using APM) and custom attributes (like userSessionId or orderId in the example above) to link discrete events into a cohesive journey. Pathpoint then aggregates these journeys to calculate metrics for each step and transition. You define what constitutes a "step" and how events relate to each other through configuration, typically by specifying attributes that act as unique identifiers for sessions or transactions.

The levers you control are primarily the instrumentation and the definition of your "paths." You need to ensure your application emits events with relevant attributes. For APM-instrumented applications, this often means leveraging existing trace data and adding custom attributes. For custom events, you’ll be writing code to send these events to New Relic using their SDKs. Once the data is flowing, you define your paths in the New Relic UI, specifying the sequence of event types and the attributes that link them. For instance, you might define a path starting with a PageLoaded event and ending with an OrderPlaced event, using userSessionId as the correlation attribute.

A common point of confusion is how Pathpoint handles "disconnections" in a path. If a CheckoutInitiated event occurs but is never followed by a ShippingInfoEntered event within a defined timeframe, Pathpoint doesn’t just ignore it. It classifies these as "dropped" or "abandoned" transitions, which are critical for understanding user drop-off points. The system intelligently infers these losses based on the absence of subsequent expected events, rather than requiring explicit "abandoned" events to be sent.

The next concept you’ll likely explore is how to correlate these business paths with infrastructure or application errors identified by other New Relic capabilities, like NRQL alerts or anomaly detection.

Want structured learning?

Take the full Newrelic course →