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}
Ansible inventory as a target source
The certs, nats, haproxy, patroni, consul, redis and tls modules can read
a standard Ansible INI inventory (a file or a directory of files):
- host lines and their
ansible_host=value are used; :varsand:childrensections are ignored;- hosts are de-duplicated.
Every discovered host becomes a target on the module’s port (443 for certs,
8222 for nats, 8404 for haproxy, 8008 for patroni, 8500 for consul,
6379 for redis, 443 for tls).
See the full module reference for every check, or configuration for the config keys.