El registro es una característica fantástica que nos permite rastrear rápida y fácilmente cualquier problema en el servidor. Desafortunadamente, aunque Cassandra proporciona funciones de registro extensas, no registra las consultas ejecutadas en los nodos por defecto.
A través de esta publicación, descubrirá cómo habilitar y deshabilitar el rastreo de consultas en los nodos de Cassandra.
Comando de rastreo de Cassandra
Cassandra nos proporciona el comando de rastreo, que se puede ejecutar en el shell CQL. Este comando le permite habilitar o deshabilitar el rastreo para todas las consultas ejecutadas en los nodos de un clúster dado.
El rastreo le permite recopilar registros de cualquier transacción realizada en el servidor. Los registros de rastreo se almacenan luego en los keyspaces de system_traces, que caducarán después de una duración TTL dada. Por defecto, las trazas se almacenan en la tabla durante 24 horas. Sin embargo, puede modificar el valor TTL o mover las trazas a otro espacio clave.
Además, el System_traces KeySpace contiene tablas como la sesión, que contiene información de la sesión, y la tabla de eventos, que tiene información detallada sobre las consultas.
La sintaxis del comando de rastreo es como se muestra:
Rastreo [en | APAGADO]
Ejemplo
El siguiente ejemplo muestra cómo habilitar el rastreo en un clúster de cuatro nodos. Luego probaremos las capacidades de rastreo creando datos de muestra.
Para habilitar el rastreo, ejecute el comando:
cqlsh> traza encendido;
Ahora el rastreo está habilitado
CQLSH>
A continuación, creemos un espacio de tecla y una mesa de muestra.
CQLSH> Crear almacén Keyspace con replication = 'class': 'SimpleStrategy', 'replication_factor': 4;
Una vez que ejecutamos el comando anterior, el shell CQL debe devolver los mensajes de rastreo del comando como se muestra a continuación:
Sesión de rastreo: 0DE9B970-3407-11ED-9723-61BF090829C9
Actividad | marca de tiempo | Fuente | fuente_elapsed | cliente
---------------------------------------------------------------------------------------------------------------------------------------+----------------------------+-----------+----------------+-----------
Ejecutar la consulta CQL3 | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 0 | 127.0.0.1
PARSING Crear almacén Keyspace con replication = 'class': 'SimpleStrategy', 'replication_factor': 4; [National-Transport-Requests-1] | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 657 | 127.0.0.1
Declaración de preparación [Native-Transport-Requests-1] | 2022-09-14 11:27:22.121000 | 127.0.0.1 | 2168 | 127.0.0.1
Añadir a CommitLog [MigrationStage: 1] | 2022-09-14 11:27:22.132000 | 127.0.0.1 | 13136 | 127.0.0.1
Agregar a Keyspaces Memtable [MigrationStage: 1] | 2022-09-14 11:27:22.133000 | 127.0.0.1 | 13941 | 127.0.0.1
Añadir a CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 280829 | 127.0.0.1
Agregar a compaction_history memtable [compactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 281512 | 127.0.0.1
Agregar a CommitLog [CompactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379253 | 127.0.0.1
Agregar a compaction_history memtable [compactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379782 | 127.0.0.1
Añadir a CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.627000 | 127.0.0.1 | 508643 | 127.0.0.1
Agregar a compaction_history memtable [compactionExecutor: 3] | 2022-09-14 11:27:22.628000 | 127.0.0.1 | 509209 | 127.0.0.1
Agregar a CommitLog [CompactionExecutor: 4] | 2022-09-14 11:27:22.778000 | 127.0.0.1 | 659647 | 127.0.0.1
Agregar a compaction_history memtable [compactionExecutor: 4] | 2022-09-14 11:27:22.779000 | 127.0.0.1 | 660218 | 127.0.0.1
Ejecución de la exploración SEQ en 2 sstables para (Min (-9223372036854775808), Min (-9223372036854775808)] [MigrationStage: 1] | 2022-09-14 11:27:2222222222.846000 | 127.0.0.1 | 726928 | 127.0.0.1
Lea 66 filas vivas y 0 celdas de lápida [MigrationStage: 1] | 2022-09-14 11:27:22.851000 | 127.0.0.1 | 732009 | 127.0.0.1
Añadir a CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.852000 | 127.0.0.1 | 733610 | 127.0.0.1
-----------------Salida truncada-------------------
Luego podemos crear una tabla y realizar una operación de escritura como se muestra:
CQLSH> Crear mesa de mesa.Inventario (ID int, Product_Name Text, Price int, Key primario (ID));
Del mismo modo, el comando debe devolver el registro de rastreo como:
Podemos insertar datos de muestra como:
cqlsh> insertar en la tienda.Inventario (ID, Product_Name, Price) Valores (1, 'Product1', 10);
La solicitud de escritura produce la traza como se muestra:
Finalmente, podemos seleccionar los elementos de la tabla que deberían devolver el rastro para un escaneo secuencial como se muestra:
CQLSH> SELECCIONAR* DESDE la tienda.inventario;
Salida de rastreo:
Conclusión
Este artículo discutió cómo podría habilitar el rastreo de consultas en su clúster Cassandra usando el comando de rastreo.