Application Performance Monitoring

Overview

Application Performance Monitoring (APM) continuously monitors Unqork application performance, availability, and overall health by analyzing various metrics. APM lets you continuously detect and resolve issues before they impact end-users or business processes. That way, you can minimize downtime and optimize performance.

As part of our first release, we are integrating with Datadog. Datadog is a leading solutions provider that lets us monitor Unqork servers. Using Datadog, Unqork can provide near real-time trace and span telemetry related to module, workflow, and component executions. You can use this telemetry to create metrics, alerts, and dashboards, giving insight into an application’s health and performance.

You can also use custom facets to create filters where application context is available. For example, you can use moduleId as a facet. The images below exemplify creating a facet for a specified module ID(s).

Creating a Facet:

A static image displaying how to create a module ID facet.

Module ID Facet:

A static image displaying the module ID facet.

WARNING  When integrating with Unqork, check with your Datadog administrator first. Costs can change as Unqork adds additional functionality, when fluctuations occur in application traffic, or if there's increased application configuration complexity.

What You'll Learn

In this article, you'll learn about trace and span telemetry, how to view it, and how to make a custom metric.

Viewing a Trace

Traces are a collection of correlated spans or structured logs that provide a high-level view of what occurs when an application request is made. You can access traces from the APM drop-down in the side menu of your Datadog account.

A static image displaying the Traces option for the Datadog side menu.

Let's use the image below as an example to better explain a trace. In this image, you can see the spans that describe a workflow execution in an Unqork application.

The image displays the child processes that occur as part of the parent process. The execution starts with the startNewSubmission parent operation. As part of the parent process, the executeCurrentWorkflowStep child operations run. Then, the parent process ends.

A static image displaying the individual spans of a trace.

Viewing a Span

A static image displaying the specific data for a specified span.

Let's look deeper into one of the executeCurrentWorkflowStep spans to understand what happened during the workflow execution.

From the image to the right, we can see detailed information about the execution step. The following table highlights some of the most important information:

Element

Description

applicationId

The application's unique identifier.

currentState

The name of the workflow step.

otel.trace_id

The trace's unique identifier.

userId

The user that executed the workflow step.

Building a Custom Metric Using Trace and Span Telemetry

Now that you have your trace, let's build a custom metric to filter by a specified query. In this example, we'll query based on a specific Unqork environment and application ID. The following example returns information for an application ID in the specified Unqork environment.

A static image displaying how to build a custom metric.

To create a custom metric:

1. Open your browser and click the following link: https://app.datadoghq.com/apm/traces/generate-metrics.
2. Enter your username and password credentials to log into Datadog.
3. Click New Metric.
4. In the Set Metric Name field, enter a name for your metric. In this example, we entered myApplication.duration.
5. In the Define Query field, enter one or more queries to specify your desired information. For this example, we entered env:qa35-staging and @applicationId:64bfdf76ba2dfef968535d75.
6. Click Create Metric.

Once created, you can use this metric to configure dynamic charts in a dashboard to visualize the performance of your applications.