Logs de métricas de rendimiento
Importante
El acceso a las métricas de rendimiento está disponible desde la versión 1.13.1 a 1.15.0 de VT-NET
El log de métricas de rendimiento proporciona información relacionada con el consumo de tiempo, el uso de recursos, eventos e información adicional de negocio que te permite solucionar problemas dentro de la plataforma que pueden ser temporales, como un error de conexión, o un problema a largo plazo relacionado con el rendimiento.
Si un usuario final recibe un tiempo de espera agotado en la aplicación, o las transacciones se están encolando y no se procesan correctamente, cualquier miembro del equipo centrado en la solución de problemas puede usar el log de métricas de rendimiento para resolver incidentes de rendimiento. Con este registro, pueden acceder a información más detallada sobre los tiempos de procesamiento de una transacción y detectar si hay un problema con un proceso en particular o si hay una anomalía general dentro de la plataforma.
Al igual que con el log de operaciones, ve a /veritran/vt-net/log/ para acceder a la carpeta de logs. Puedes identificar el log de rendimiento con el nombre PERFLOG, además del nombre del entorno, el nodo y la extensión .log, por ejemplo, PERFLOG_VRTP_NDA1.log
El log de métricas tiene dos niveles de detalle: Nivel 6 (o nivel de negocio) y nivel 8 (o nivel detallado).
[en] Change Log Levels
Las métricas se pueden ajustar para todos los procesos o para un proceso en particular en el archivo de configuración, llamado perflog.cfg,que se almacena en la carpeta de logs de VT-NET. En el ejemplo siguiente, el nivel de log de rendimiento se establece en 8 para los procesos M1DH01 y STP1DH01:
[/] level=6 [PROCESSES] M1DH01=8 STP1DH01=8
Para cambiar el nivel de log, ve al archivo de configuración y edita el nivel que quieras aplicar a todos los procesos en el nivel root ([/]). Para actualizar procesos individuales, escribe los nombres de los procesos y el nivel que quieras aplicarles, como se muestra arriba. A continuación, reinicia los procesos para aplicar los cambios.
[en] Go to the configuration file and edit the level you want to apply to all processes on the root ([/]). If you want to update individual processes, write the processes names and the level you want to apply to them as shown above.
[en] Restart the processes to apply changes.
[en] Change Sampling Value
[en] Metrics are captured and printed in the log after a configured number of transactions or operations are executed by the process. That configured number is known as the sampling value. For example, if the sampling value is set to 100, metrics will be captured after every 100 transactions or operations are executed.
[en] This sampling value is global to every process within a VT-NET node, and by default is set to 100.
[en] Refer to the instructions below to learn how to want to change the sampling value to print metrics more often.
[en] Run the alter node command. For example, run the following command to change the sampling value to 20:
alter node .*, param='METRICS_SAMPLING=20'
[en] Restart the node with the following command to apply the new sampling value:
/veritran/vt-net/bin/kernel -f /veritran/vt-net/networkDirectory/<<ENV>>_<<NODE>>.ini -d
Campos y valores de métricas
En el log de métricas de rendimiento, las métricas se identifican o agrupan por el atributo name. Esto significa que cada grupo de métricas tendrá un tipo específico de información sobre la transacción o la operación involucrada. Cada nombre o grupo de métrica tiene campos de métricas que muestran información diferente sobre la transacción u operación.
Estos nombres de métricas varían en función del nivel del log de rendimiento. Para los niveles de log 6 y 8, estas son las métricas globales disponibles:
ProcessMetrics: Métricas globales de transacciones u operaciones para análisis de punta a punta. La unidad de tiempo es milisegundos.
"ts": "2024-06-28T15:46:14.720-03:00", "pid": 2965840, "id": "P1AUTH01", "Name": "ProcessMetrics", "TrxType": "RESP", "TrxCode": "1010", "TrxId": "408f5f7d-9927-4a45-8aba-a835eaf9a70c:41", "TotalElapsedTime": 7, "QueueTime": 0, "RunTime": 3, "TotalDatabaseTime": 4, "Queued": 7
WriteLogTime: Tiempo que se tardó en escribir y vaciar una línea de registro de operaciones. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:17:59.366-03:00", "pid": 2964289, "id": "P1INTMOC01", "Name": "WriteLogTime","Elapsed": 2 }
StationMetrics: Métrica global que muestra las conexiones actuales de las estaciones de la plataforma. La unidad de tiempo es de microsegundos.
{ "ts": "2024-06-28T15:46:07.604-03:00", "pid": 2965887, "id": "STP1DH01", "Name": "StationMetrics", "Address": "", "Port": -1, "Socket": 14, "SubStationId": "714687", "TotalElapsedTime": 388039, "QueueTime": 32536, "Queued": 0, "Connections": 1 }
Para el nivel 8 del log de rendimiento, estas son las métricas detalladas disponibles:
DatabaseMetricsDetail: Lista detallada de las consultas de base de datos ejecutadas por la transacción u operación, y el tiempo transcurrido para cada consulta. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:46:04.244-03:00", "pid": 2965848, "id": "M1DH01", "Name": "DatabaseMetricsDetail", "TrxType": "REQ", "TrxCode": "1010", "Querys": [ { "QueryId": "SELECT_GET_TERM_ID", "Elapsed": 2 }, { "QueryId": "UPDATE_UNLOCK_TERM_ID", "Elapsed": 1 }, { "QueryId": "commit", "Elapsed": 6 } ] }
SendMsgTime: Tiempo que se tarda en enviar un mensaje a la siguiente cola. Esta métrica es útil para el equipo de desarrollo. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:46:04.245-03:00", "pid": 2965848, "id": "M1DH01", "Name": "SendMsgTime", "TrxType": "REQ", "TrxCode": "1010", "Elapsed": 1, "Queued": 0 {
RecvMsgTime: Tiempo que se tardó en recibir un mensaje de la cola. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:46:04.255-03:00", "pid": 2965848, "id": "M1DH01", "Name": "RecvMsgTime", "TrxType": "RESP", "TrxCode": "1010", "Elapsed": 7, "Queued": 0 }
RecvCommitMsgTime: Tiempo que se tardó en recibir un mensaje de la cola y liberarlo. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:46:04.245-03:00", "pid": 2965848, "id": "M1DH01", "Name": "RecvCommitMsgTime", "TrxType": "REQ", "TrxCode": "1010", "Elapsed": 0, "Queued": 1 }
StationMetricsDetail: Información detallada sobre una conexión y las fases por las que pasa. La unidad de tiempo es milisegundos.
{ "ts": "2024-06-28T15:46:07.605-03:00", "pid": 2965887, "id": "STP1DH01", "Name": "StationMetricsDetail", "CloseElapsedTime": 39, "ConnectElapsedTime": 28, "PoolElapsedTime": 387335, "ReadElapsedTime": 525, "WriteElapsedTime": 112, "ReadSize": 466595, "WriteSize": 1229, "ActivityRatio": 0.1814, "PoolRatio": 99.8186, "TotalCycles": 240, "PendingConnections": 0 }
StationLoopTime: Métrica interna útil para detectar saturación dentro de la plataforma. La unidad de tiempo es de microsegundos.
{ "ts": "2024-06-28T15:17:59.366-03:00", "pid": 2964289, "id": "P1INTMOC01", "Name": "WriteLogTime","Elapsed": 2 }
PerformanceLogTime: Tiempo que se tardó en escribir la métrica ProcessMetrics en el log.
{ "ts": "2024-06-28T15:46:07.706-03:00", "pid": 2965848, "id": "M1DH01", "Name": "PerformanceLogTime", "Elapsed": 1 }