Skip to content

Instantly share code, notes, and snippets.

@mfleming
Created August 17, 2020 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mfleming/3ca297a2ef87778824a3890399d080dc to your computer and use it in GitHub Desktop.
Save mfleming/3ca297a2ef87778824a3890399d080dc to your computer and use it in GitHub Desktop.
#!/bin/bash
mins=60
echo "Collecting metrics for $mins minutes..."
dstat_outfile="dstat-`hostname`.csv"
echo "Writing dstat output to $dstat_outfile"
dstat --output $dstat_outfile -pmgsdr --disk-util -nyct -C $(seq --separator=, 0 `grep -c processor /proc/cpuinfo`),total 1 $mins &
latency_outfile="jmx-lat-`hostname`.csv"
echo "Writing JMX latency metrics to $latency_outfile"
printf "Local Read Latency (p95),One Min Rate,Local Write Latency (p95),One Min Rate,Coordinator Read Latency (p95),One Min Rate,Coordinator Write Latency (p95), One Min rate\n" >> $latency_outfile
for i in $(seq 1 $mins); do
# Local table latencies for domain_1300.xml_doc_1300
local_read_p95=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ColumnFamily,keyspace=domain_1300,scope=xml_doc_1300,name=ReadLatency' -f 95thPercentile -mg | tail -n1)
local_read_rate=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ColumnFamily,keyspace=domain_1300,scope=xml_doc_1300,name=ReadLatency' -f OneMinuteRate -mg | tail -n1)
local_write_p95=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ColumnFamily,keyspace=domain_1300,scope=xml_doc_1300,name=WriteLatency' -f 95thPercentile -mg | tail -n1)
local_write_rate=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ColumnFamily,keyspace=domain_1300,scope=xml_doc_1300,name=WriteLatency' -f OneMinuteRate -mg | tail -n1)
# Coordinator latency
coord_read_p95=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency' -f 95thPercentile -mg | tail -n1)
coord_read_rate=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency' -f OneMinuteRate -mg | tail -n1)
coord_write_p95=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency' -f 95thPercentile -mg | tail -n1)
coord_write_rate=$(nodetool sjk mx -b 'org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency' -f OneMinuteRate -mg | tail -n1)
printf "%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f\n" $local_read_p95 $local_read_rate $local_write_p95 $local_write_rate $coord_read_p95 $coord_read_rate $coord_write_p95 $coord_write_rate >> $latency_outfile
sleep 1
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment