Endpoint Management
The endpoint commands provide access to Redis Enterprise database endpoint statistics and availability monitoring.
Note: Redis Enterprise manages most endpoint configurations through database commands. These commands provide monitoring and statistics capabilities.
Available Commands
Get Endpoint Statistics
Get aggregate statistics for all database endpoints in the cluster:
# Get all endpoint statistics
redisctl enterprise endpoint stats
# Get statistics as YAML
redisctl enterprise endpoint stats -o yaml
# Filter to specific metrics
redisctl enterprise endpoint stats -q '[].{name: endpoint_name, connections: current_connections}'
# Get statistics for endpoints with high connection counts
redisctl enterprise endpoint stats -q "[?current_connections > `100`]"
The statistics include:
- Connection metrics (current, total, failed)
- Request/response rates
- Latency information
- Error counts
- Bandwidth usage
Check Endpoint Availability
Check the availability status of a specific database endpoint:
# Check endpoint availability for database 1
redisctl enterprise endpoint availability 1
# Get availability as table
redisctl enterprise endpoint availability 1 -o table
# Extract specific availability information
redisctl enterprise endpoint availability 1 -q 'available'
Availability information includes:
- Current availability status
- Node availability
- Shard distribution
- Failover status
- Connection health
Output Examples
Endpoint Statistics
[
{
"endpoint_name": "redis-12345.cluster.local:16379",
"bdb_uid": 1,
"current_connections": 45,
"total_connections": 12543,
"failed_connections": 2,
"requests_per_sec": 5432,
"responses_per_sec": 5430,
"avg_latency_ms": 0.8,
"bandwidth_in_mbps": 12.5,
"bandwidth_out_mbps": 8.3,
"errors_per_sec": 0.1
}
]
Endpoint Availability
{
"bdb_uid": 1,
"available": true,
"endpoints": [
{
"addr": "redis-12345.cluster.local:16379",
"node": 1,
"role": "master",
"status": "active"
}
],
"shards_placement": "optimal",
"last_failover": null
}
Common Use Cases
Monitoring Endpoint Health
Monitor endpoint statistics and set up alerts:
# Check endpoints with high error rates
redisctl enterprise endpoint stats -q "[?errors_per_sec > `10`]"
# Monitor endpoints with connection issues
redisctl enterprise endpoint stats -q "[?failed_connections > `0`].{name: endpoint_name, failed: failed_connections}"
# Check latency across all endpoints
redisctl enterprise endpoint stats -q "[].{endpoint: endpoint_name, latency: avg_latency_ms}" -o table
Availability Monitoring
Check database endpoint availability during maintenance:
# Check availability for critical databases
for db in 1 2 3; do
echo "Database $db:"
redisctl enterprise endpoint availability $db -q 'available'
done
# Get detailed availability for troubleshooting
redisctl enterprise endpoint availability 1 -o yaml
Performance Analysis
Analyze endpoint performance metrics:
# Get top endpoints by connection count
redisctl enterprise endpoint stats -q "reverse(sort_by([],¤t_connections))[:5]" -o table
# Find endpoints with bandwidth issues
redisctl enterprise endpoint stats -q "[?bandwidth_in_mbps > `100` || bandwidth_out_mbps > `100`]"
# Compare request/response rates
redisctl enterprise endpoint stats -q "[].{endpoint: endpoint_name, req_rate: requests_per_sec, resp_rate: responses_per_sec, diff: requests_per_sec - responses_per_sec}"
Integration with Monitoring
Export endpoint metrics for monitoring systems:
# Export to monitoring format
redisctl enterprise endpoint stats -o json > endpoint_metrics.json
# Create CSV for analysis
redisctl enterprise endpoint stats -q "[].{endpoint: endpoint_name, connections: current_connections, latency: avg_latency_ms, errors: errors_per_sec}" | jq -r '["endpoint","connections","latency","errors"], (.[] | [.endpoint, .connections, .latency, .errors]) | @csv'
# Stream to monitoring pipeline
while true; do
redisctl enterprise endpoint stats -q '[].{timestamp: now(), metrics: @}' | \
curl -X POST http://metrics-collector/ingest -d @-
sleep 60
done
Troubleshooting
High Connection Counts
If endpoints show high connection counts:
# Identify affected endpoints
redisctl enterprise endpoint stats -q "[?current_connections > `1000`]"
# Check database configuration
redisctl enterprise database get <bdb_uid> -q '{max_connections: max_connections, current: @ | current_connections}'
# Monitor connection trends
for i in {1..10}; do
redisctl enterprise endpoint stats -q "[].{endpoint: endpoint_name, connections: current_connections}" -o table
sleep 30
done
Availability Issues
When endpoints report availability problems:
# Check specific database endpoint
redisctl enterprise endpoint availability <bdb_uid>
# Verify node status
redisctl enterprise node list -q "[?status != 'active']"
# Check shard distribution
redisctl enterprise database get <bdb_uid> -q 'shards_placement'
Best Practices
- Regular Monitoring: Set up regular checks of endpoint statistics to catch issues early
- Baseline Metrics: Establish baseline performance metrics for comparison
- Alert Thresholds: Configure alerts based on your specific workload patterns
- Correlation: Correlate endpoint metrics with database and node statistics
- Capacity Planning: Use connection and bandwidth metrics for capacity planning
Related Commands
redisctl enterprise database
- Manage databases and their endpointsredisctl enterprise stats
- View detailed statisticsredisctl enterprise node
- Check node status affecting endpointsredisctl enterprise cluster
- View cluster-wide endpoint configuration