Documentation
Release Notes
Logo
Open Telemetry

Open Telemetry

Logo

3 mins READ

Overview

UnifyApps' OpenTelemetry feature enables users to publish telemetry metrics to Prometheus, allowing for enhanced analytics and logging of platform features. These metrics provide valuable insights into the performance and behavior of key platform components, supporting better monitoring, debugging, and decision-making processes.

Frame 119 (2).png
Frame 119 (2).png

Telemetry metrics can be published across the following three asset classes:

  1. Automations: Metrics can be configured at various levels, including:

    • Node Level: Metrics for individual node performance.

    • Individual Automation Level: Metrics for specific automations.

    • Global Automation Level: Metrics for all automations across the platform.

  2. Connections: Metrics can be published at:

    • Individual Connection Level: Metrics for specific connections.

    • Global Connections Level: Metrics for all connections on the platform.

  3. APIs: Metrics can be configured at:

    • API Group Level: Metrics for specific API groups.

    • Global APIs Level: Metrics for all APIs on the platform.

These published metrics are logged in the Prometheus account linked to the relevant environment, enabling platform administrators to monitor system performance and usage at varying levels of granularity.

Frame 118 (2).png
Frame 118 (2).png

Key Features of Telemetry in UnifyApps

  1. Metric Formats:

    • Metrics can be configured in two formats:

      • Counter: Tracks the number of occurrences for a specific action or event.

      • Timer: Measures the time taken for a specific action or event.

        Frame 117.png
        Frame 117.png

  2. Publish Situations:

    • Metrics can be configured to publish for different events across the asset classes

    • For Automations:

      • Always on Finished Execution: Metrics are published after the completion of an execution, regardless of its outcome.

      • Always at Start of Execution: Metrics are published at the beginning of an execution.

      • Only on Successful Execution: Metrics are published only when the execution is completed successfully.

      • Only on Failed Execution: Metrics are published only when the execution fails.

    • For Connections:

      • Always: Metrics are published for every connection event.

      • On Successful Events: Metrics are published when a connection event succeeds.

      • On Error Events: Metrics are published when a connection event encounters an error.

    • For APIs:

      • Always: Metrics are published for every API event.

      • On Successful Events: Metrics are published when an API call succeeds.

    • On Failure Events: Metrics are published when an API call fails.

      Frame 116.png
      Frame 116.png

  3. Tags:

    • Users can configure key-value pairs corresponding to the asset class, allowing customization of logged data.

    • As shown in the screenshot:

      • Tags can be added as keys, and values are logged for each event.

      • Datapills can be mapped to keys, passing dynamic values to the log for every event. This enables differentiation between events and provides detailed insights into the event logs.

Available tags-values corresponding to the asset classes:

Asset ClassLevelFields Available
1. AutomationsNode LevelApp Name, Tenant Id, Workflow Title, Resource Name, User Id, Node Id, Workflow Id, Execution Status, Deployed Version
Automation LevelTenant Id, Workflow Title, User Id, Workflow Id, Execution Status, Deployed Version
Global LevelTenant Id, Workflow Title, User Id, Workflow Id, Execution Status, Deployed Version
2. ConnectionsConnection LevelApp Name, Connection Id, Resource Name, Connection Name, Outcome
Global LevelApp Name, Connection Id, Resource Name, Connection Name, Outcome
3. APIsAPI GroupCollection Path, Endpoint Id, Http Method, User Id, API Path, Http Status, Tenant Id, Host, Cache Hit, API Client Id, Auth Type, Collection Id, Outcome
Global LevelCollection Path, Endpoint Id, Http Method, User Id, API Path, Http Status, Tenant Id, Host, Cache Hit, API Client Id, Auth Type, Collection Id, Outcome

Implementation Details

Frame 115.png
Frame 115.png

Metrics Architecture

Data Flow

  • Applications (workflow, api-platform, connectors) → metrics Kafka topic

  • Events are micro-batched for efficiency with minimal delays

  • Metrics Consumer reads Kafka topic → exposes Prometheus metrics via internal/metrics

  • Prometheus agent scrapes metrics from all application pods

Why Centralized Metrics?

Instead of direct Prometheus exposure from each app, we use a dedicated metrics service because:

  • Protects core apps from memory issues

  • Handles user-configurable tags that cause high cardinality

  • Prevents OOM crashes by isolating Micrometer's memory-intensive tag caching.