O registro é um recurso fantástico que nos permite rastrear de maneira rápida e fácil quaisquer problemas no servidor. Infelizmente, embora Cassandra forneça extensos recursos de extração de madeira, ele não registra as consultas executadas nos nós por padrão.
Através deste post, você descobrirá como ativar e desativar o rastreamento de consultas em nós Cassandra.
Comando de rastreamento de Cassandra
Cassandra nos fornece o comando de rastreamento, que pode ser executado no shell CQL. Este comando permite que você habilite ou desative o rastreamento para todas as consultas executadas nos nós de um determinado cluster.
O rastreamento permite coletar logs de qualquer transação realizada no servidor. As toras de rastreamento são então armazenadas nas teclas do System_traces, que expirarão após uma determinada duração TTL. Por padrão, os traços são armazenados na tabela por 24 horas. No entanto, você pode modificar o valor TTL ou mover os traços para outro espaço -chave.
Além disso, o Keyspace System_traces contém tabelas como a sessão, que contém informações da sessão, e a tabela de eventos, que tem informações detalhadas sobre as consultas.
A sintaxe do comando de rastreamento é como mostrado:
Rastreamento [ON | DESLIGADO]
Exemplo
O exemplo a seguir mostra como ativar o rastreamento em um cluster de quatro nós. Em seguida, testaremos os recursos de rastreamento, criando dados de amostra.
Para ativar o rastreamento, execute o comando:
cqlsh> rastreamento;
Agora o rastreamento está ativado
cqlsh>
Em seguida, vamos criar um espaço de chave e uma tabela de amostra.
CQLsh> Criar Keyspace Store com replicação = 'class': 'SimleStrategy', 'Replicação_factor': 4;
Depois de executar o comando acima, o shell CQL deve retornar as mensagens de rastreamento do comando, como mostrado abaixo:
Sessão de rastreamento: 0DE9B970-3407-11ED-9723-61BF090829C9
atividade | Timestamp | fonte | fonte_ELAPSED | cliente
---------------------------------------------------------------------------------------------------------------------------------------+----------------------------+-----------+----------------+-----------
Executar consulta CQL3 | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 0 | 127.0.0.1
Parsing Criar Keyspace Store com replicação = 'classe': 'Simlestrategy', 'Replicação_factor': 4; [Native-Transport-Requests-1] | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 657 | 127.0.0.1
Preparação da declaração [Native-Transport-Requests-1] | 2022-09-14 11:27:22.121000 | 127.0.0.1 | 2168 | 127.0.0.1
Anexando ao CommitLog [MigrationStage: 1] | 2022-09-14 11:27:22.132000 | 127.0.0.1 | 13136 | 127.0.0.1
Adicionando aos espaços de tecla MEMTABLE [MigrationStage: 1] | 2022-09-14 11:27:22.133000 | 127.0.0.1 | 13941 | 127.0.0.1
Aprendindo ao CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 280829 | 127.0.0.1
Adicionando a compaction_history memtable [compactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 281512 | 127.0.0.1
Aprendindo ao CommitLog [CompactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379253 | 127.0.0.1
Adicionando ao Compaction_history MEMTABLE [CompactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379782 | 127.0.0.1
Aprendindo ao CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.627000 | 127.0.0.1 | 508643 | 127.0.0.1
Adicionando a compaction_history memtable [compactionExecutor: 3] | 2022-09-14 11:27:22.628000 | 127.0.0.1 | 509209 | 127.0.0.1
Aprendindo ao CommitLog [CompactionExecutor: 4] | 2022-09-14 11:27:22.778000 | 127.0.0.1 | 659647 | 127.0.0.1
Adicionando ao Compaction_history MEMTABLE [CompactionExecutor: 4] | 2022-09-14 11:27:22.779000 | 127.0.0.1 | 660218 | 127.0.0.1
Execução do SEQ em 2 sstables para (min (-9223372036854775808), min (-9223372036854775808)] [MigrationStage: 1] | 2022-09-14 11:27:22.846000 | 127.0.0.1 | 726928 | 127.0.0.1
Leia 66 linhas vivas e 0 células da Tombstone [MigrationStage: 1] | 2022-09-14 11:27:22.851000 | 127.0.0.1 | 732009 | 127.0.0.1
Aprendindo ao CommitLog [CompactionExecutor: 3] | 2022-09-14 11:27:22.852000 | 127.0.0.1 | 733610 | 127.0.0.1
-----------------Saída truncada-------------------
Em seguida, podemos criar uma tabela e executar uma operação de gravação como mostrado:
CQLSH> Criar loja de tabela.inventário (id int, product_name texto, preço int, chave primária (id));
Da mesma forma, o comando deve retornar o log de rastreamento como:
Podemos inserir dados de amostra como:
cqlsh> inserir na loja.Valores do inventário (ID, Product_name, Price) (1, 'Product1', 10);
A solicitação de gravação produz o rastreamento como mostrado:
Por fim, podemos selecionar os itens da tabela que devem retornar o rastreamento para uma varredura seqüencial, como mostrado:
cqlsh> selecione* da loja.inventário;
Saída de rastreamento:
Conclusão
Este artigo discutiu como você poderia ativar o rastreamento de consultas em seu cluster Cassandra usando o comando de rastreamento.