All Products
Search
Document Center

Application Real-Time Monitoring Service:Customize settings for a Go application

Last Updated:Mar 13, 2025

Application Real-Time Monitoring Service (ARMS) allows you to customize settings for a Go application on the Custom Configurations tab of the application details page. For example, you can configure a sampling policy or modify agent switches.

Note

For information about how to use the ARMS API to configure these settings, see SaveTraceAppConfig.

Prerequisites

An ARMS agent is installed for the application. For more information, see Application Monitoring overview.

Procedure

  1. Log on to the ARMS console. In the left-side navigation pane, choose Application Monitoring > Application List.

  2. On the Application List page, select a region in the top navigation bar and click the name of the application that you want to manage.

    Note

    Icons displayed in the Language column indicate languages in which applications are written.

    Java图标: Java application

    image: Go application

    image: Python application

    Hyphen (-): application monitored in Managed Service for OpenTelemetry.

  3. In the top navigation bar, choose Configuration > Custom Configurations.

  4. Configure the parameters and click Save.

Sampling settings

In the Sampling Settings section, you can configure a sampling policy for the traces. Currently, Go applications support fixed-rate sampling. Additionally, they support full sampling configured by interface name, interface prefix, and interface suffix.

image

Agent switch settings

In the Probe switch settings section, you can enable or disable application monitoring and select the plug-ins that you want to use.

Important

The enabling or disabling of application monitoring takes effect immediately without the need to restart the application. If you disable application monitoring, the system cannot monitor the application. Proceed with caution.

If you modify a plug-in switch, you must manually restart the application to ensure that the modification takes effect.

image

Runtime switch settings

In the Runtime switch settings section, you can enable or disable runtime monitoring. For more information, see Runtime Monitoring.

Important

The modification takes effect dynamically without the need to restart the application. If you disable runtime monitoring, ARMS will not collect runtime metrics. Proceed with caution.

image

Application log association settings

In the Application log Association configuration section, you can configure a log source that you want to associate with the application, and specify whether to automatically print TraceId and SpanId in logs. For more information, see Associate trace IDs with logs for a Go application.

image

URL convergence settings

In the URL convergence Settings section, you can enable or disable convergence, and specify a convergence threshold and convergence rules. URL convergence displays similar URLs as a single object. For example, URLs prefixed with /service/demo/ are displayed as an object. The convergence threshold is the minimum number of URLs that can trigger URL convergence. For example, if the threshold is set to 100, URLs are converged only when 100 URLs meet the regular expression of the rule. For more information, see ARMS convergence policies.

image

Continuous profiling settings

In the Ongoing Profiling Settings section, you can turn on or turn off the Main switch, CPU hotspot, Memory Hotspot, and Code Hotspot switches. For more information, see Continuous profiling for Go applications.

image

Interface call settings

In the Interface call configuration section, you can specify a threshold for slow calls, and configure the HTTP status code whitelist and the invalid interface filtering policy.

2025-02-18_16-05-16

  • Slow Call Threshold: Unit: ms. Default value: 500. If the response time of a request exceeds the threshold, the request is marked as slow.

  • HTTP status code whitelist:

    By default, HTTP status codes greater than 400 are classified as error calls. If you do not want certain status codes to be classified as errors, you can set a whitelist to ignore these errors.

    This only affects the HTTP frameworks currently supported by Application Monitoring.

    Affected data: Error count metrics for HTTP server/client (arms_http_requests_error_count, arms_http_client_requests_error_count, arms_app_requests_error_count) and span status.

    Affected Features: Error count on the Overview, Provided Services, and Dependencies tabs, as well as span status, error count, and alerts on the Trace Explorer tab.

    Content Format: Enter single status codes, separate multiple status codes with an commas (,). Fuzzy matching is not supported.

    Example: 403,502

    Default Value: None

  • Invalid interface call filtering:

    If you do not want to see some calls on the Provided Services tab, you can enter the names of interfaces whose call details you do not need to view, thereby hiding them.

    Affected Data: All metrics and spans corresponding to the interface will be ignored.

    Affected Features: All interface-related metrics on the Overview, Provided Services, and Dependencies tabs, as well as span count, interface call count, error count, and alerts on the Trace Explorer tab.

    Content Format: Use strings or AntPath expressions to match the full names of invalid interfaces. Separate multiple rules with commas (,). (The default AntPath expression is provided for compatibility with existing data and is not recommended to be deleted. New configurations should be appended to the existing rules.)

    Example: /api/test/*,/api/playground/create

    Default Value: //*.jpg,//.png,/**/.js,//*.jpeg,//.pdf,/**/.xlsx,//*.txt,//.docs,/**/.gif,/**/*.csv

  • Open the print http request body: When enabled, the http.request.body field is added to the spans of HTTP Client to indicate the request body. The default printed body length is 1024.

  • Enable the print http request header: When enabled, the http.request.header field is added to the spans of HTTP Client to indicate the request header.

  • http body length: The length of the HTTP request body. The default printed body length is 1024.

  • The HTTP response contains TraceId: When enabled, TraceId is added to the response header. The key is Eagleeye-TraceId.

  • Open the print http return body: When enabled, the http.response.body field is added to the spans of HTTP Server to indicate the response body.

  • Open print http return header: When enabled, the http.response.header field is added to the spans of HTTP Server to indicate the response header.

  • http returns the length of the body: The length of the HTTP response body. The default printed body length is 1024.

  • http request header key is written to span: Enter the keys that appear in the header. Separate multiple keys with commas (,). Then, the http.request.header.key field is added to the spans of HTTP Client.

  • http returns the header key and writes it to span: Enter the keys that appear in the header. Separate multiple keys with commas (,). Then, the http.response.header.key field is added to the spans of HTTP Server.

Database call settings

In the Database call configuration section, you can specify a threshold for slow SQL queries and a maximum retention length for collected SQL statements. You can also specify whether to display the variable values and constant values in SQL statements, and whether to record the return value of MySQL queries.

  • Show the variable binding value in SQL: captures the variable values bound to the PrepareStatement parameter. This configuration takes effect without the need to restart the application.

  • Show the constant values in SQL: The SQL statements are truncated without additional processing. This configuration takes effect without the need to restart the application.

image

Trace propagation protocol settings

In the Call Chain Pass-through Protocol Settings section, you can select a tracing propagation protocol based on your business requirement. The default protocol is W3C, but options such as Zipkin, Jaeger, or EagleEye are also available.

image

Agent collection settings

In the Probe Acquisition Configuration section, you can set the maximum number of traces collected per second by the agent and the log level of the agent.

image

Advanced settings

In the Advanced Settings section, you can configure advanced settings, such as quantile statistics, error and slow interface sampling, and the maximum length for exception stacks.

image

Copy application settings to other applications

You can copy the settings of an application to other applications.

Copy a single configuration item to other applications

  1. In the section of the configuration item, click Save and bulk copy to other applications.

  2. If the Current settings not saved message appears, click Save to save the configuration and then click Save and bulk copy to other applications.

  3. In the dialog box that appears, select a specific application or all other applications and click OK.

Copy all configuration items to other applications

  1. In the lower part of the page, click Save and bulk copy to other apps.

  2. If the Current settings not saved message appears, click Save to save the configurations and then click Save and bulk copy to other applications.

  3. In the dialog box that appears, select a specific application or all other applications and click OK.

Globally apply application settings

You can globally apply the current application settings. If you create a new application, the settings are used by default.

  1. In the lower part of the page, click Save current app settings as global default configuration.

  2. If the Current settings not saved message appears, click Save to save the configurations and then click Save current app settings as global default configuration.

  3. In the message that appears, click OK.