En la pestaña Custom Configuration, ajuste configuraciones comunes como los interruptores de funciones del agente y las políticas de muestreo.
Para ajustar estas configuraciones mediante una API, consulte SaveTraceAppConfig.
Requisitos previos
Se instaló un agente para su aplicación. Para obtener más información, consulte application monitoring integration overview.
Procedimiento
Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, elija .
-
En la parte superior de la página Application List, seleccione la región de destino y luego haga clic en la aplicación objetivo.
NotaLos iconos de la columna Language tienen los siguientes significados:
: una aplicación Java conectada a Application Monitoring.
: una aplicación Go monitoreada por Application Monitoring.
: una aplicación Python monitoreada por Application Monitoring.-: una aplicación integrada con Managed Service for OpenTelemetry.
En el panel de navegación izquierdo, haga clic en Application Settings y luego haga clic en la pestaña Custom Configurations.
Establezca los parámetros de configuración personalizada y luego haga clic en Save en la parte inferior de la página.
Configuración de la tasa de muestreo
ARMS Pro Edition
En la sección Sampling Rate Setting, configure las políticas de muestreo y especifique las interfaces que se van a muestrear para las trazas. Para obtener más información, consulte Select a trace sampling mode (for agent versions earlier than 3.2.8).
La tasa de muestreo de trazas tiene mayor prioridad que el umbral de limitación.
Configure los siguientes parámetros: Sampling Rate Mode (admite una tasa de muestreo fija y requiere el agente v2.8.3 o posterior), Sampling Rate Setting (valor predeterminado: 10 para aplicaciones Java y Go; valor predeterminado: 100 para aplicaciones Python), Interfaces to Sample (permite seleccionar interfaces específicas y requiere el agente v3.2.0 o posterior), así como los prefijos y sufijos de las interfaces muestreadas.
ARMS Basic Edition
ARMS Basic Edition admite políticas de muestreo del lado del cliente. La facturación se basa en la cantidad de filas de datos recopiladas. De forma predeterminada, ARMS recopila una traza por minuto para cada interfaz desde cada agente sin costo adicional. También puede hacer clic en Add Client Sampling Policy para agregar políticas de muestreo personalizadas.
Parámetro | Descripción |
Policy Name | Un nombre personalizado para la política de muestreo. |
Sampling Type y Samples |
|
Applicable interface | Especifique el alcance al que se aplica la política de muestreo. Puede seleccionar per span o elegir Specify a span e introducir el nombre de la interfaz. Nota Actualmente, cada política de muestreo solo admite un nombre de interfaz. Para muestrear trazas de varias interfaces, debe configurar varias políticas de muestreo. |
Después de configurar las políticas de muestreo, puede habilitarlas o deshabilitarlas en la consola. Varias políticas de muestreo pueden aplicarse de forma simultánea con la siguiente prioridad: muestreo predeterminado (gratuito) > límite de flujo para una sola interfaz > muestreo de proporción fija para una sola interfaz > límite de flujo para todas las interfaces > muestreo de proporción fija para todas las interfaces. También puede editar las políticas de muestreo existentes o eliminar las que ya no necesite.
Esta función requiere el agente v2.7.1.3 o posterior. La lista de políticas aparece en una tabla que incluye columnas como el nombre de la política, el alcance aplicable, el límite de flujo, el muestreo de proporción fija, el estado de habilitación y las acciones.
Interruptores del agente y nivel de registro
En la sección Agent Switch Settings, habilite o deshabilite el interruptor principal del agente y los interruptores individuales de cada plugin, además de configurar el nivel de registro.
Los cambios en el interruptor principal del agente y en el nivel de registro surten efecto de inmediato, sin necesidad de reiniciar la aplicación. Si deshabilita el interruptor principal del agente, el sistema dejará de monitorear su aplicación. Proceda con precaución. Para aplicar los cambios en los interruptores de los plugins, debe reiniciar manualmente la aplicación.
Los interruptores de plugins compatibles incluyen: dubbo-plugin, mongodb-plugin, ali-hsf-plugin, httpclient3-plugin, httpclient4-plugin, jdk-http-plugin, jetty-plugin, mybatis-plugin, mysql-plugin, okhttp-plugin, oracle-plugin, postgresql-plugin, redis-plugin, spring-plugin, springboot-plugin, tomcat-plugin, lettuce-plugin, grpc-plugin, thrift-plugin, google-httpclient-plugin, hystrix-plugin y rxjava-plugin. El nivel de registro predeterminado es WARN.
Configuración de umbrales
En la sección Threshold Settings, configure el umbral para las consultas SQL lentas.
El umbral de consultas SQL lentas se mide en milisegundos (ms) y su valor predeterminado es 500 ms. Una consulta SQL se considera lenta cuando su tiempo de ejecución supera este umbral.
Configuración de la cola de mensajes
En la sección Message Queue Configurations, configure los parámetros relacionados con los mensajes.
Las configuraciones Custom RabbitMQ Consumer y Custom Kafka Consumption Method requieren el agente v4.x o posterior y surten efecto después de reiniciar la aplicación. La configuración Automatic Context Propagation for Kafka Messages solo es compatible con Kafka v0.11.0 o posterior.
Custom RabbitMQ consumer: especifique el nombre de clase de un consumidor personalizado o de una clase que contenga un consumidor interno anónimo para consultar la traza de dicho consumidor. Separe varios nombres de clases de consumidores con comas (,).
Custom Kafka consumption method: defina un método de consumo personalizado para consultar trazas y métricas al consumir mensajes con el SDK nativo de Kafka.
Automatically propagate context for Kafka messages: al enviar un mensaje, agregue automáticamente encabezados al mensaje de Kafka para correlacionar las trazas del productor y del consumidor.
Configuración de recopilación del agente
La configuración Collect Traces requiere el agente v4.2.0 o posterior. El valor predeterminado de Agent Maximum QPS Threshold es 10,000 y requiere el agente v4.1.10 o posterior. El valor predeterminado de Log Level es WARN.
Collect traces: controla si se reportan los datos de trazas. Está habilitada de forma predeterminada. Si la deshabilita, los datos de trazas dejarán de reportarse.
-
Throttling threshold: la cantidad máxima de solicitudes que el agente puede procesar por segundo. El valor predeterminado es 100. No se recopilan las trazas de las solicitudes que superen este umbral.
NotaLa tasa de muestreo de trazas tiene mayor prioridad que el umbral de limitación.
Agent maximum QPS threshold: la cantidad de solicitudes que el agente puede manejar por segundo. Por motivos de rendimiento, el umbral efectivo puede diferir del umbral configurado hasta en un 5%. Las solicitudes que superen este umbral no se monitorearán. Esto significa que no se generarán spans ni métricas, y la asociación entre registros e ID de traza no funcionará.
Collect data for internal calls without entry points: las llamadas internas sin punto de entrada suelen referirse a los datos de spans y métricas generados por tareas programadas que envían solicitudes HTTP, interactúan con bases de datos, envían mensajes o realizan llamadas RPC iniciadas a través del pool de hilos del JDK.
Log level: ajusta el nivel de registro del agente para solucionar problemas.
Configuración de llamadas a la API
Interface response time threshold: cuando el tiempo de respuesta de una interfaz supera este umbral, el sistema marca la interfaz como una llamada lenta.
Exception filtering: ARMS no muestra las excepciones que introduzca aquí en los gráficos de las páginas de detalles de la aplicación y de análisis de excepciones.
-
Inherit exception filter for parent classes: si habilita esta opción y una excepción recopilada es una subclase de una clase de excepción configurada en la exception filter allowlist, ARMS también la filtrará.
Como resultado, las excepciones que cumplen los criterios de filtrado no aparecen en la consola de ARMS.
Error count filtering: de forma predeterminada, ARMS cuenta como errores los códigos de estado mayores que 400. Puede personalizar qué códigos de estado HTTP mayores que 400 no se cuentan como errores.
Invalid interface call filtering: introduzca las interfaces que no necesita monitorear. El agente no reportará datos de observability para estas interfaces, por lo que quedarán ocultas en la página de llamadas de interfaz.
-
Record upstream interface name in metrics y Record upstream application name in metrics:
Controla si las métricas de interfaz registran la aplicación y la interfaz ascendentes que llaman a la interfaz actual. Esto afecta principalmente si los datos ascendentes y descendentes están disponibles para las dependencias de servicio. Cuando una aplicación tiene muchos llamadores ascendentes, registrar esta información puede aumentar significativamente el volumen de métricas reportadas y sus costos asociados.
Record original status code in metrics: registra el código de respuesta original en las métricas relacionadas con la interfaz HTTP.
Configuración de monitoreo de pools
La configuración Thread Pool and Connection Pool Monitoring requiere el agente v2.7.3.5 o posterior y surte efecto después de reiniciar la aplicación. La configuración Thread Name Pattern Extraction Policy for Thread Pools requiere el agente v4.1.10 o posterior.
Thread pool and connection pool monitoring: admite el monitoreo de métricas de pools de hilos para frameworks como Tomcat, Dubbo y High-speed Service Framework (HSF). Requiere actualizar a la versión más reciente del agente.
Thread name pattern extraction policy for thread pools: de forma predeterminada, esta función reemplaza todos los caracteres numéricos del nombre de cualquier hilo en ejecución dentro de un pool de hilos con
*. También puede ajustarla para reemplazar únicamente los caracteres finales del nombre del hilo con*. Si su aplicación inicia varios proveedores de Dubbo que escuchan en puertos distintos, la política predeterminada podría agrupar sus pools de hilos en uno solo porque las plantillas de nombres de hilos extraídas son idénticas. En ese caso, ajuste la política para distinguirlos como pools de hilos independientes.-
Filter by thread pool usage scenario y Filter by thread pool name pattern: filtran las métricas de monitoreo de ciertos pools de hilos según su escenario de uso y el patrón de nombre de hilo.
NotaEsta configuración solo surte efecto en el agente de Java v4.2.0 y versiones posteriores.
Escenario de uso del pool de hilos: el contexto en el que se utiliza el hilo. Los escenarios compatibles incluyen Tomcat, Vert.x, Undertow, Dubbo, Jetty, AliyunJavaAgent y default. AliyunJavaAgent representa el pool de hilos que utiliza el agente, y default representa otros pools de hilos no clasificados.
Patrón de nombre del pool de hilos: el patrón obtenido al procesar los nombres de los hilos del pool. Por ejemplo, http-nio--exec- se obtiene normalmente al reemplazar las partes numéricas del nombre real del hilo con *.
Configuración de atributos de span
Las dos configuraciones siguientes requieren el agente v4.x o posterior. Record OpenTelemetry Specification Attributes está deshabilitada de forma predeterminada. El valor predeterminado de Application Tag Association for Spans es All Spans.
Record OpenTelemetry specification attributes: la especificación de OpenTelemetry define los atributos que deben incluirse en los spans generados por cada tipo de plugin. Para reducir el volumen de datos, el agente de ARMS no registra estos atributos de forma predeterminada. Habilite esta configuración según sus necesidades. Para obtener información sobre los atributos que se agregan para cada framework tras habilitar esta configuración, consulte la especificación de OpenTelemetry.
Application tag association for spans: controla qué spans incluyen las etiquetas que vinculó a la aplicación en la página application list de la consola. De forma predeterminada, todos los spans incluyen las etiquetas de la aplicación. Para gestionar el uso de datos, puede optar por adjuntar las etiquetas de la aplicación únicamente a los spans de entrada. Los spans de entrada suelen incluir HTTP Server, RPC Server, el consumo de mensajes MQ y las tareas programadas.
Configuración avanzada
Maximum method stack length: el valor predeterminado es 128 y el máximo es 400.
Stack depth for exception differentiation: esta configuración especifica la profundidad de la pila para diferenciar excepciones del mismo tipo. Normalmente se establece en la profundidad de la primera llamada diferente.
Maximum SQL length: el valor predeterminado es 1,024 caracteres, con un mínimo de 256 y un máximo de 4,096.
Collect SQL bind values: captura los valores de variables vinculados a los parámetros de PreparedStatement. Surte efecto sin reiniciar la aplicación y actualmente solo admite escenarios donde se establecen valores de variables SQL en un PreparedStatement.
Original SQL Statements: solo trunca las instrucciones SQL sin procesamiento adicional.
Record MySQL query return value size : cuando está habilitada, ARMS registra el tamaño de los valores devueltos por las consultas de MySQL.
New trace storage format: utiliza un nuevo formato de almacenamiento que admite la ordenación de trazas por tiempo (habilitado de forma predeterminada).
Trace compression: simplifica las trazas al contraer llamadas repetidas, como las que ocurren dentro de un bucle for. Surte efecto sin reiniciar la aplicación.
Maximum length of request parameters: el valor predeterminado es 512 caracteres y la longitud máxima admitida es 2,048 caracteres.
-
Quantile statistics: habilita la función de estadísticas de cuantiles.
NotaUn cuantil es un punto que divide el rango de una distribución de probabilidad de una variable aleatoria en intervalos continuos con probabilidades iguales. Los cuantiles comunes incluyen la mediana (cuantil 2), los cuartiles y los percentiles.
Automatic async propagation: propaga automáticamente el contexto asíncrono cuando se envía una tarea asíncrona a través de un pool de hilos.
Packages to scan for async propagation: agregue paquetes para analizar y habilitar el monitoreo de tareas asíncronas. Cuando se crean nuevos objetos que implementan las interfaces Runnable, Callable o Supplier en un paquete analizado, el agente captura automáticamente el contexto de traza del hilo actual. Cuando el hilo asíncrono se ejecuta, utiliza este contexto para completar la vinculación de la traza. Requiere el agente v2.7.1.3 o posterior.
Return trace ID in response: solo para solicitudes HTTP, esta configuración agrega el campo eagleeye-traceid al encabezado de respuesta.
Configuración de hilos
En la sección Thread settings, habilite o deshabilite el interruptor principal para el análisis de hilos.
Esta función solo está disponible en ARMS Pro Edition.
A partir del agente v4.x, debido a cambios en la implementación, esta función se controla mediante el interruptor de puntos críticos de CPU en continuous profiling.
Configuración de asociación de registros
En la sección Application Log Association, configure la información de origen de registros asociada a la aplicación. Para obtener más información, consulte log analysis.
Esta función solo está disponible en ARMS Pro Edition.
Puede asociar registros con Log Service (SLS) al configurar el Project y el logstore correspondientes. También puede habilitar el conteo de errores basado en registros, además de configurar la asociación de etiquetas personalizadas y las rutas de registros.
Reglas de convergencia de URL
En la sección URL Convergence Settings, habilite o deshabilite la función de convergencia de URL y configure su umbral y reglas. La convergencia de URL agrupa URL similares para mostrarlas como un solo elemento. Por ejemplo, se puede agrupar una serie de URL que comienzan con /service/demo/. El umbral de convergencia es la cantidad mínima de URL necesarias para activar la convergencia. Por ejemplo, si el umbral es 100, el sistema converge las URL que coinciden con la expresión regular de la regla solo cuando su cantidad alcanza 100.
Actualmente, las reglas de convergencia de URL solo son compatibles con el agente de Java de ARMS. El agente de Python de ARMS aún no admite esta configuración.
El umbral de convergencia predeterminado es 1,000. La convergencia ocurre cuando la cantidad de URL que coinciden con la expresión regular supera este umbral. Las reglas de convergencia admiten expresiones regulares. Separe varias reglas con comas (,), por ejemplo, /service/(*?)/demo.
Monitoreo de Arthas
En la sección Arthas Monitoring, habilite o deshabilite la función de diagnóstico de Arthas y especifique las direcciones IP donde se habilitará. Para obtener más información, consulte Arthas diagnostics.
Esta función solo está disponible en ARMS Pro Edition.
Esta función requiere el agente v2.7.1.3 o posterior. Puede especificar las direcciones IP donde se habilitará el diagnóstico de Arthas. Si especifica direcciones IP, la función se habilitará únicamente para esas direcciones. Si no especifica ninguna dirección IP, la función se habilitará para todas las direcciones IP.
Continuous profiling
En la sección Continuous Profiling, habilite o deshabilite el interruptor principal, así como los interruptores de las funciones de puntos críticos de CPU, puntos críticos de memoria y puntos críticos de código. También puede especificar las direcciones IP o los segmentos de red donde estas funciones surtirán efecto. Para obtener más información, consulte Integrate the continuous profiling feature. La lista de permitidos de IP admite varias direcciones IP de instancias separadas por comas (,). La lista de permitidos de segmentos de red admite el formato CIDR (por ejemplo, 10.0.0.0/8), pero no admite varios segmentos.
Configuración del protocolo de propagación de trazas
En la sección Trace Propagation Protocol Settings, seleccione el protocolo de propagación de trazas que utilizará según sus necesidades. Para obtener información sobre los protocolos que admite ARMS, consulte Trace context propagation protocols supported by ARMS.
De forma predeterminada, no se establece ningún Propagation protocol y el Propagation mode es Priority. Esta función requiere el agente v4.1.x o posterior.
De forma predeterminada, cuando llega una llamada, el agente de ARMS comprueba los encabezados de solicitud en el siguiente orden: EagleEye, OpenTelemetry, SkyWalking, Jaeger y Zipkin. Si el agente detecta un encabezado de un protocolo específico, restaura el contexto de traza basándose en ese protocolo e inyecta los encabezados correspondientes para las llamadas descendentes posteriores. Si no se detectan encabezados de protocolo, el agente utiliza el protocolo EagleEye de forma predeterminada.
Puede seleccionar cualquier protocolo de esta página como protocolo prioritario. Después de seleccionar y guardar la configuración, ARMS comprobará primero los encabezados de solicitud del protocolo especificado. Por ejemplo, si establece Propagation protocol en Jaeger y Propagation mode en Priority, el agente de ARMS cambiará el orden de detección a Jaeger, EagleEye, OpenTelemetry, SkyWalking y luego Zipkin.
También puede forzar el uso de un protocolo específico. Por ejemplo, si establece Propagation protocol en Jaeger y Propagation mode en Force, el agente de ARMS solo comprobará los encabezados del protocolo Jaeger. Si no se encuentran encabezados del protocolo Jaeger, el agente no buscará otros protocolos y, en su lugar, generará un nuevo contexto de traza.
Ofuscación de datos
En la sección Data Redaction, defina reglas de ofuscación. Luego, el agente ofuscará contenido de los parámetros del sistema de la JVM, YAML de Kubernetes, parámetros de entrada de métodos y variables de entorno y de sistema de Arthas durante la recopilación. En las reglas de ofuscación, los elementos se separan con comas (,). Cada elemento representa una expresión regular que no distingue entre mayúsculas y minúsculas. Por ejemplo, la regla password equivale a la expresión regular .password.. Las reglas de ofuscación predeterminadas incluyen password, secret, key, token y credentials.
Cuando un agente recopila datos, filtra las claves de datos según las expresiones correspondientes. Si una clave cumple la condición, se considera que contiene datos confidenciales y se ofusca. Por ejemplo, si una regla de ofuscación contiene licenseKey, la información con la clave -Darms.licenseKey se ofuscará. Cuando la regla de ofuscación es licenseKey, se ofusca la información con la clave -Darms.licenseKey.
Copia de configuraciones
Si necesita aplicar las mismas configuraciones a otras aplicaciones, puede copiarlas.
Copiar una sola configuración a otras aplicaciones
En la sección de configuración correspondiente, haga clic en Batch copy to other applications.
-
En el cuadro de diálogo que aparece, seleccione las aplicaciones a las que desea aplicar la configuración y luego haga clic en OK.
El cuadro de diálogo ofrece dos modos: Copy to all other applications y Select monitored applications. Los cambios tardan de 1 a 2 minutos en surtir efecto después de una copia exitosa.
Copiar todas las configuraciones a otras aplicaciones
En la parte inferior de la página, haga clic en Batch copy to other applications.
-
En el cuadro de diálogo que aparece, seleccione las aplicaciones a las que desea aplicar las configuraciones y luego haga clic en OK.
El cuadro de diálogo ofrece dos modos: Copy to all other applications y Select monitored applications. Los cambios tardan de 1 a 2 minutos en surtir efecto después de una copia exitosa.
Configuración predeterminada global
Guarde las configuraciones actuales como valores predeterminados globales. Las nuevas aplicaciones que cree utilizarán estas configuraciones de forma predeterminada.
En la parte inferior de la página, haga clic en Save Current Application Settings as Global Default Configurations.
En el cuadro de diálogo que aparece, haga clic en Confirm.