Cassandra / ScyllaDB check
cassandra — Cassandra / ScyllaDB
Nodes accept CQL via the native-protocol handshake, handshake latency, and cluster size against the expected node count.
checkfleet check cassandra --config checkfleet.yml
Reachability check that speaks the CQL native protocol handshake directly — no driver, no authentication:
- Connects and performs
OPTIONS→SUPPORTED(negotiating the CQL version), thenSTARTUP. AREADYorAUTHENTICATEreply means the node accepts CQL connections →OK(with(auth required)noted when authentication is on). WARNwhen the handshake is slower thanmax_latency_ms. Handshake latency is also the node’s numeric metric (ms).BADon a protocolERRORreply,ERRORif the node is unreachable.-
Cluster state — a
clusterfinding rolls the nodes up: how many accept CQL out of those configured, as a metric (nodes).BADbelowexpect_nodes(0 = expect them all),WARNwhen the expectation is met but a configured node is still down. A slow node (WARN) still counts as up — it completed the handshake. Skipped for a single target with noexpect_nodes, where it would only repeat the node’s own finding.This is derived from checkfleet’s own probes, not from
system.peers: reading the cluster’s view of its membership needs aQUERYon an authenticated session, and this module speaks the handshake only. The trade-off is deliberate — it says nothing about nodes absent from your config, but it keeps working on clusters with authentication enabled, with no driver and no credentials. Same shape asetcd’sexpect_members.
Targets are host[:port] (default CQL port 9042). Zero-dep; tested against an
in-test fake CQL server.
cassandra:
expect_nodes: 3 # 0 = all configured nodes must accept CQL
targets:
- {name: cass-01, address: cass-01:9042, max_latency_ms: 500}
See the full module reference for every check, or configuration for the config keys.