Cassandra Alerting Configuration
Effective alerting enables proactive response to cluster issues before they impact application performance.
Alert Categories
Section titled “Alert Categories”| Category | Priority | Response Time | Examples |
|---|---|---|---|
| Critical | P1 | Immediate (< 5 min) | Node down, disk full, dropped messages |
| Warning | P2 | Soon (< 1 hour) | High latency, compaction backlog |
| Info | P3 | Next business day | Certificate expiring, minor threshold breach |
Critical Alerts
Section titled “Critical Alerts”Node Down
Section titled “Node Down”A node becomes unreachable, reducing cluster capacity and fault tolerance.
| Parameter | Value |
|---|---|
| Metric | Node status via gossip or agent heartbeat |
| Condition | Unreachable for > 1 minute |
| Severity | Critical |
Response:
- Verify node status with
nodetool statusfrom another node - Check if process is running on the affected node
- Review system logs for crash indicators
- Check network connectivity
High Heap Usage
Section titled “High Heap Usage”Sustained high heap usage indicates memory pressure and increases GC pause risk.
| Parameter | Value |
|---|---|
| Metric | java.lang:type=Memory/HeapMemoryUsage |
| Condition | > 85% for 5 minutes |
| Severity | Critical |
Response:
- Check GC logs for long pauses
- Review
nodetool tpstatsfor blocked stages - Consider reducing concurrent operations
- Evaluate heap size configuration
Disk Full
Section titled “Disk Full”Cassandra stops accepting writes when disk usage exceeds thresholds.
| Parameter | Value |
|---|---|
| Metric | Filesystem usage on data directories |
| Condition | > 85% used |
| Severity | Critical |
Response:
- Identify largest tables with
nodetool tablestats - Run cleanup if data was recently deleted:
nodetool cleanup - Check for compaction backlog
- Add capacity or remove data
Dropped Messages
Section titled “Dropped Messages”Dropped messages indicate the cluster cannot process requests within timeout.
| Parameter | Value |
|---|---|
| Metric | org.apache.cassandra.metrics:type=DroppedMessage |
| Condition | Sustained dropped messages (>10/s for 1 minute) |
| Severity | Critical |
Response:
- Identify which message types are dropping via
nodetool tpstats - Check for overloaded thread pools
- Review client request patterns
- Evaluate cluster capacity
Warning Alerts
Section titled “Warning Alerts”High Read Latency
Section titled “High Read Latency”Elevated read latency impacts application response times.
| Parameter | Value |
|---|---|
| Metric | ClientRequest.Read.Latency.99thPercentile |
| Condition | > 100ms for 10 minutes |
| Severity | Warning |
Response:
- Check
nodetool proxyhistogramsfor coordinator vs local latency - Review
nodetool tablestatsfor problematic tables - Check pending compactions
- Evaluate read patterns and data model
High Write Latency
Section titled “High Write Latency”Elevated write latency may indicate commit log or memtable pressure.
| Parameter | Value |
|---|---|
| Metric | ClientRequest.Write.Latency.99thPercentile |
| Condition | > 50ms for 10 minutes |
| Severity | Warning |
Response:
- Check commit log directory disk I/O
- Review memtable flush frequency
- Verify commit log is on separate disk from data
- Check for concurrent compaction activity
Compaction Backlog
Section titled “Compaction Backlog”Pending compactions indicate write volume exceeds compaction throughput.
| Parameter | Value |
|---|---|
| Metric | org.apache.cassandra.metrics:type=Compaction,name=PendingTasks |
| Condition | > 30 for 15 minutes |
| Severity | Warning |
Response:
- Review compaction throughput settings
- Check disk I/O utilization
- Evaluate compaction strategy for workload
- Consider increasing
concurrent_compactors
Heap Usage Warning
Section titled “Heap Usage Warning”Early warning of approaching memory pressure.
| Parameter | Value |
|---|---|
| Metric | java.lang:type=Memory/HeapMemoryUsage |
| Condition | > 70% for 10 minutes |
| Severity | Warning |
Response:
- Monitor GC activity trends
- Review recent workload changes
- Check for large partition access patterns
- Prepare for potential heap tuning
Alert Thresholds Summary
Section titled “Alert Thresholds Summary”| Metric | Warning | Critical | JMX Path |
|---|---|---|---|
| Heap Usage | > 70% | > 85% | java.lang:type=Memory |
| Disk Usage | > 60% | > 80% | OS-level metric |
| Read Latency p99 | > 50ms | > 200ms | ClientRequest.Read.Latency |
| Write Latency p99 | > 20ms | > 100ms | ClientRequest.Write.Latency |
| Pending Compactions | > 20 | > 50 | Compaction.PendingTasks |
| Dropped Messages | > 0 | > 10/s | DroppedMessage.*.Dropped |
| GC Pause | > 500ms | > 1s | java.lang:type=GarbageCollector |
AxonOps Alert Configuration
Section titled “AxonOps Alert Configuration”AxonOps Monitoring includes pre-configured alerting for Cassandra clusters.
Creating Alerts
Section titled “Creating Alerts”Alerts are configured in the AxonOps dashboard under Settings > Alerts.
- Navigate to Settings > Alerts > Create Alert
- Select the metric to monitor
- Define threshold conditions
- Set evaluation interval and duration
- Configure notification channels
Alert Rule Parameters
Section titled “Alert Rule Parameters”| Parameter | Description |
|---|---|
| Metric | The JMX metric or derived value to evaluate |
| Operator | Comparison operator (>, <, =, !=) |
| Threshold | Value that triggers the alert |
| Duration | Time the condition must persist |
| Severity | Critical, Warning, or Info |
Example: High Latency Alert
Section titled “Example: High Latency Alert”Name: High Read LatencyMetric: cassandra.client_request.read.latency.p99Condition: > 100Duration: 10 minutesSeverity: WarningNotification Channels
Section titled “Notification Channels”AxonOps supports multiple notification integrations:
| Channel | Use Case |
|---|---|
| General notifications | |
| Slack | Team collaboration |
| PagerDuty | On-call escalation |
| Webhook | Custom integrations |
| OpsGenie | Incident management |
Configure channels under Settings > Integrations.
Alert Routing
Section titled “Alert Routing”Severity-Based Routing
Section titled “Severity-Based Routing”| Severity | Notification |
|---|---|
| Critical | PagerDuty + Slack |
| Warning | Slack only |
| Info | Email digest |
Time-Based Routing
Section titled “Time-Based Routing”Configure different notification behavior for business hours vs off-hours:
- Business hours: Warning alerts to Slack
- Off-hours: Only critical alerts to PagerDuty
Runbook Integration
Section titled “Runbook Integration”Each alert should reference a runbook with:
- Description: What the alert means
- Impact: How this affects the cluster/application
- Diagnosis: Steps to investigate
- Resolution: Actions to resolve
- Escalation: When and how to escalate
Best Practices
Section titled “Best Practices”Threshold Tuning
Section titled “Threshold Tuning”- Establish baselines during normal operation
- Set warning thresholds at 2x baseline
- Set critical thresholds at 4x baseline or operational limits
- Review and adjust quarterly
Reducing Alert Fatigue
Section titled “Reducing Alert Fatigue”- Require duration before alerting (avoid transient spikes)
- Group related alerts
- Use warning alerts for early indicators
- Reserve critical for immediate action required
Alert Coverage
Section titled “Alert Coverage”Minimum alert coverage for production clusters:
- Node availability
- Heap usage (warning and critical)
- Disk usage (warning and critical)
- Read/write latency
- Dropped messages
- Pending compactions
- GC pause duration
Next Steps
Section titled “Next Steps”- Key Metrics - Metrics reference
- Logging - Log analysis and configuration