Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

AxonOps Thread Pools Dashboard Metrics Mapping

This document maps the metrics used in the AxonOps Thread Pools dashboard.

The Thread Pools dashboard monitors Cassandra’s internal thread pools that handle various operations like reads, writes, compactions, and repairs. Understanding thread pool behavior is crucial for identifying performance bottlenecks and tuning Cassandra for optimal performance.

Dashboard MetricDescriptionAttributes
cas_ThreadPools_internalInternal thread pool metricsscope (pool name), key (metric type), dc, rack, host_id
KeyDescription
ActiveTasksNumber of tasks currently being executed
PendingTasksNumber of tasks waiting in the queue
CompletedTasksTotal number of completed tasks (cumulative)
TotalBlockedTasksTotal number of tasks that were blocked (cumulative)
CurrentlyBlockedTasksNumber of tasks currently blocked
ScopePurpose
MutationStageHandles write operations
ReadStageHandles read operations
RequestResponseStageHandles request/response messaging
CompactionExecutorHandles compaction tasks
ValidationExecutorHandles validation tasks (repairs)
GossipStageHandles gossip protocol
AntiEntropyStageHandles anti-entropy repairs
MigrationStageHandles schema migrations
MemtableFlushWriterHandles memtable flush operations
MemtablePostFlushHandles post-flush operations
HintsDispatcherHandles hint delivery
sum(cas_ThreadPools_internal{scope=~'$scope',key='ActiveTasks',dc=~'$dc',rack=~'$rack',host_id=~'$host_id'}) by ($groupBy)
sum(cas_ThreadPools_internal{scope=~'$scope',key='PendingTasks',dc=~'$dc',rack=~'$rack',host_id=~'$host_id'}) by ($groupBy)
sum(cas_ThreadPools_internal{axonfunction='rate',scope=~'$scope',key='CompletedTasks',dc=~'$dc',rack=~'$rack',host_id=~'$host_id'}) by ($groupBy)
sum(cas_ThreadPools_internal{axonfunction='rate',scope=~'$scope',key='TotalBlockedTasks',dc=~'$dc',rack=~'$rack',host_id=~'$host_id'}) by ($groupBy)
sum(cas_ThreadPools_internal{scope=~'$scope',key='CurrentlyBlockedTasks',dc=~'$dc',rack=~'$rack',host_id=~'$host_id'}) by ($groupBy)

For each selected thread pool ($scope), the dashboard shows:

  • Active Tasks - Line chart showing currently executing tasks

  • Pending Tasks - Line chart showing queued tasks waiting for execution

  • Completed Tasks Rate by $groupBy - Line chart showing task completion rate

  • Total Blocked Tasks Rate - Line chart showing rate of tasks being blocked

  • Currently Blocked Tasks Rate - Line chart showing currently blocked tasks

  • data center (dc) - Filter by data center

  • rack - Filter by rack

  • node (host_id) - Filter by specific node

  • Pool (scope) - Select specific thread pool(s) to monitor

  • groupBy - Dynamic grouping (scope, dc, rack, host_id)

  • Handles all write operations
  • High pending tasks indicate write bottleneck
  • Blocked tasks suggest memtable pressure
  • Handles all read operations
  • Pending tasks indicate read latency issues
  • May need to tune concurrent_reads
  • Manages compaction operations
  • High pending tasks mean compactions falling behind
  • Affects disk space and read performance
  • Flushes memtables to disk
  • Blocked tasks indicate disk I/O issues
  • Critical for write performance
  • Low or zero pending tasks
  • No currently blocked tasks
  • Steady completed task rate
  • Active tasks within thread pool size
  • Consistently growing pending tasks
  • Frequent blocked tasks
  • Active tasks at maximum pool size
  • Sudden drops in completion rate

Thread Pool Sizing:

  • Configured in cassandra.yaml
  • Balance between concurrency and resource usage
  • Consider CPU cores and workload type

Common Adjustments:

  • concurrent_reads: For read-heavy workloads
  • concurrent_writes: For write-heavy workloads
  • concurrent_compactors: For compaction throughput

Monitoring Strategy:

  • Watch for sustained pending tasks
  • Monitor blocked tasks for resource contention
  • Compare completion rates across nodes

The groupBy variable allows flexible analysis:

  • By scope: Compare different thread pools
  • By dc: Data center level patterns
  • By rack: Rack level distribution
  • By host_id: Individual node behavior
  • Task Counts: Displayed as short numbers

  • Rates: Tasks per second

  • Legend: Shows the groupBy dimension

  • Time Series: Real-time and historical trends