Configure convergence settings

Updated at:

Parameterized URLs such as /api/orders/12345 and /api/orders/67890 each become a separate metric dimension, increasing storage costs, slowing queries, and making dashboards unreadable. Convergence settings in Application Real-Time Monitoring Service (ARMS) consolidate high-cardinality endpoint names into unified patterns to keep monitoring data manageable.

Module overview

ARMS provides four convergence modules. Refer to the following table to find the module that applies to your scenario.

Module Applies to Methods Default threshold
Provider Interface Convergence Endpoints your application exposes (inbound requests) Custom Convergence, Smart Convergence 1,000 samples per hour
Dependency Interface Convergence Downstream endpoints your application calls (outbound requests) Custom Convergence, Smart Convergence 200 samples per hour
SQL Convergence SQL database calls with varying parameters or sharded tables SQL normalization, Cardinality space convergence 100 samples per hour
NoSQL Convergence NoSQL calls (Redis, MongoDB) with dynamic parameters NoSQL normalization, Cardinality space convergence 100 samples per hour

Prerequisites

Make sure that your application is connected to ARMS Application Monitoring. For more information, see the application monitoring quick start guide.

Access convergence settings

  1. Log on to the Cloud Monitor 2.0 console.

  2. In the left-side navigation pane, choose Application Monitoring.

  3. Click the name of the target application.

  4. In the left-side navigation pane, choose Application Settings > Convergence Settings.

Configure Provider Interface Convergence

Provider Interface Convergence handles inbound endpoints that your application exposes. You can define rules manually (Custom Convergence) or let the system generate rules automatically (Smart Convergence).

Custom Convergence

Define regex-based rules to converge matching endpoint names into a single unified name.

Parameter Description
Toggle Enables or disables Custom Convergence.
Convergence rule (regex) A regular expression that matches endpoint names and converges them into the name you specify. You can add multiple rules.
Exclusion list (exact string) Endpoint names excluded from convergence (exact match). These endpoints retain their original names regardless of convergence rules.

Examples of how convergence rules transform endpoint names:

Incoming endpoint Rule (regex) Result
/api/orders/12345 /api/orders/.* /api/orders/{id}
/api/orders/67890 /api/orders/.* /api/orders/{id}
/ad-recommend-summer /ad-recommend-.* /ad-recommend
/ad-recommend-winter /ad-recommend-.* /ad-recommend

To prevent a specific endpoint from being converged, add it to the exclusion list. For example, adding /api/orders/health keeps that health-check endpoint visible under its original name.

Smart Convergence

Smart Convergence automatically detects high-cardinality endpoints based on traffic patterns and generates convergence rules without manual configuration.

Parameter Description
Toggle Enables or disables Smart Convergence.
Convergence rule (regex) System-generated convergence rules. Initially displays "Not generated". Rules are generated after the trigger threshold is reached.
Exclusion list (exact string) System-generated exclusion list. Initially displays "Not generated".
Trigger threshold The sample count that triggers automatic analysis. Default: more than 1,000 samples per hour.
Note

When the sample count for an endpoint exceeds the trigger threshold, the system analyzes traffic patterns and generates convergence rules. You can view the generated rules on the page but cannot edit them. To define custom rules, use Custom Convergence instead.

Configure Dependency Interface Convergence

Dependency Interface Convergence consolidates downstream endpoints that your application calls. It provides the same Custom Convergence and Smart Convergence sub-features as Provider Interface Convergence.

The key difference is the default trigger threshold: 200 samples per hour (compared to 1,000 for provider interfaces). This lower threshold reflects the higher likelihood of cardinality explosion in downstream dependencies.

Configure rules and exclusion lists the same way as Provider Interface Convergence.

Configure SQL Convergence

SQL Convergence addresses cardinality explosion caused by SQL statements with varying parameter values or sharded tables.

Parameter Description
SQL normalization When enabled, replaces literal parameter values in SQL statements with the ? placeholder, grouping similar statements into a single template. Also handles sharding by replacing numeric table suffixes with {NUM}.
Cardinality space convergence When the number of unique SQL patterns exceeds the specified threshold per hour, overflow statements are converged into {ARMS_OTHERS}. Default: more than 100 samples per hour.

Example of how SQL normalization transforms a query on a sharded table:

-- Before normalization
SELECT * FROM orders_07 WHERE user_id='A123' AND status=1

-- After normalization
SELECT * FROM orders_{NUM} WHERE user_id=? AND status=?
Note

SQL normalization replaces numeric suffixes in table names (such as orders_07) with {NUM}, handling common sharding patterns automatically.

Configure NoSQL Convergence

NoSQL Convergence consolidates endpoint names for NoSQL operations (such as Redis and MongoDB commands) that contain dynamic parameters.

Parameter Description
NoSQL normalization When enabled, normalizes dynamic parameters in NoSQL commands to prevent cardinality explosion caused by varying key names or parameter values.
Cardinality space convergence When the number of unique NoSQL patterns exceeds the specified threshold per hour, overflow commands are converged into {ARMS_OTHERS}. Default: more than 100 samples per hour.

Save your configuration

After you modify settings, click Save at the bottom of the page.

Important

New convergence rules take effect from the next collection interval (typically within minutes). Historical data is not re-converged.

FAQ

An endpoint was unexpectedly converged. How do I keep the original name?

Add the endpoint name (exact string) to the exclusion list in the Custom Convergence section of the corresponding module. The endpoint then retains its original name regardless of other rules.

What is the priority between custom and smart convergence rules?

Custom Convergence takes priority over Smart Convergence. When an endpoint matches both a custom rule and a smart rule, the custom rule applies.

How long does it take for configuration changes to take effect?

After you save the configuration, new rules take effect from the next collection interval (typically within minutes). Historical data is not affected.