Skip to main content

Monitoring API

GET
/v1/usage
GET
/v1/health
GET
/v1/audit

The Monitoring API provides comprehensive analytics, usage tracking, and system health monitoring for your Cortex integration.

📊 Usage Analytics

GET
/v1/usage

Get detailed usage statistics and analytics for your API key.

curl -X GET "https://api.usecortex.co/v1/usage" \
-H "Authorization: Bearer YOUR_API_KEY"

Query Parameters

ParameterTypeDefaultDescription
periodstringmonthTime period: hour, day, week, month, year
start_datestringnullStart date (ISO 8601)
end_datestringnullEnd date (ISO 8601)
breakdownstringdayBreakdown by: hour, day, week
include_detailsbooleanfalseInclude detailed metrics

Response

{
"success": true,
"data": {
"current_period": {
"requests_used": 1847,
"requests_limit": 10000,
"usage_percentage": 18.47,
"reset_date": "2025-02-01T00:00:00Z",
"days_until_reset": 23
},
"usage_breakdown": [
{
"date": "2025-01-09",
"requests": 156,
"success_rate": 0.94,
"avg_response_time": 2.3,
"cache_hit_rate": 0.67
},
{
"date": "2025-01-08",
"requests": 203,
"success_rate": 0.91,
"avg_response_time": 2.8,
"cache_hit_rate": 0.72
}
],
"endpoint_usage": {
"/v1/search": {
"requests": 1205,
"percentage": 65.3,
"avg_response_time": 2.4,
"success_rate": 0.93
},
"/v1/extract": {
"requests": 387,
"percentage": 21.0,
"avg_response_time": 1.8,
"success_rate": 0.96
},
"/v1/validate": {
"requests": 255,
"percentage": 13.8,
"avg_response_time": 3.2,
"success_rate": 0.89
}
},
"performance_metrics": {
"avg_response_time": 2.34,
"p95_response_time": 4.12,
"p99_response_time": 6.78,
"success_rate": 0.932,
"error_rate": 0.068,
"cache_hit_rate": 0.694
}
}
}

🏥 Health Monitoring

GET
/v1/health

Check system health and service status.

curl -X GET "https://api.usecortex.co/v1/health" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"success": true,
"data": {
"status": "healthy",
"timestamp": "2025-01-09T15:30:00Z",
"version": "v1.2.3",
"uptime": 99.97,
"services": {
"search_engine": {
"status": "healthy",
"response_time": 1.23,
"last_check": "2025-01-09T15:29:00Z"
},
"validation_service": {
"status": "healthy",
"response_time": 2.45,
"last_check": "2025-01-09T15:29:00Z"
},
"cache_layer": {
"status": "healthy",
"hit_rate": 0.78,
"last_check": "2025-01-09T15:29:00Z"
},
"database": {
"status": "healthy",
"connection_pool": "85% utilized",
"last_check": "2025-01-09T15:29:00Z"
}
},
"regions": {
"us-east": {
"status": "healthy",
"latency": 45,
"load": 0.67
},
"us-west": {
"status": "healthy",
"latency": 38,
"load": 0.54
},
"europe": {
"status": "healthy",
"latency": 52,
"load": 0.71
}
},
"recent_incidents": []
}
}

📋 Audit Logs

GET
/v1/audit

Access detailed audit logs for compliance and debugging.

curl -X GET "https://api.usecortex.co/v1/audit?limit=100" \
-H "Authorization: Bearer YOUR_API_KEY"

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Number of entries to return (1-1000)
offsetinteger0Pagination offset
start_datestringnullFilter by start date
end_datestringnullFilter by end date
endpointstringnullFilter by endpoint
statusstringnullFilter by status (success, error)
request_idstringnullSpecific request ID

Response

{
"success": true,
"data": {
"entries": [
{
"request_id": "req_8f3a2b1c9d4e5f67",
"timestamp": "2025-01-09T15:30:15Z",
"endpoint": "/v1/search",
"method": "POST",
"status": 200,
"response_time": 2.34,
"ip_address": "192.168.1.100",
"user_agent": "cortex-python-sdk/1.0.0",
"request_size": 156,
"response_size": 3420,
"cache_hit": true,
"region": "us-east",
"query_hash": "sha256:abc123...",
"sources_analyzed": 8,
"confidence_score": 0.91
},
{
"request_id": "req_7d2c1a9b8e7f6543",
"timestamp": "2025-01-09T15:28:42Z",
"endpoint": "/v1/validate",
"method": "POST",
"status": 200,
"response_time": 3.12,
"ip_address": "192.168.1.100",
"validation_result": "VERIFIED",
"sources_checked": 5,
"consensus_level": "STRONG"
}
],
"pagination": {
"total": 5643,
"limit": 100,
"offset": 0,
"has_more": true
},
"summary": {
"total_requests": 5643,
"success_rate": 0.943,
"avg_response_time": 2.67,
"unique_ips": 12,
"top_endpoints": [
"/v1/search",
"/v1/extract",
"/v1/validate"
]
}
}
}

📈 Real-time Metrics

GET
/v1/metrics/live

Get real-time performance metrics and alerts.

curl -X GET "https://api.usecortex.co/v1/metrics/live" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"success": true,
"data": {
"current_load": {
"requests_per_minute": 45,
"active_connections": 12,
"queue_depth": 3,
"cpu_usage": 0.67,
"memory_usage": 0.54
},
"last_5_minutes": {
"total_requests": 225,
"successful_requests": 210,
"failed_requests": 15,
"avg_response_time": 2.1,
"cache_hits": 156,
"cache_misses": 69
},
"alerts": [
{
"level": "warning",
"message": "Response time elevated (3.2s avg)",
"timestamp": "2025-01-09T15:25:00Z",
"duration": 300
}
],
"trending": {
"response_time": "stable",
"error_rate": "decreasing",
"cache_hit_rate": "increasing",
"request_volume": "increasing"
}
}
}

🚨 Error Analytics

GET
/v1/errors

Analyze error patterns and troubleshoot issues.

curl -X GET "https://api.usecortex.co/v1/errors?period=day" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"success": true,
"data": {
"error_summary": {
"total_errors": 67,
"error_rate": 0.036,
"most_common_error": "TIMEOUT_EXCEEDED",
"error_trend": "decreasing"
},
"error_breakdown": [
{
"error_code": "TIMEOUT_EXCEEDED",
"count": 23,
"percentage": 34.3,
"avg_response_time": 15.2,
"affected_endpoints": ["/v1/search", "/v1/validate"]
},
{
"error_code": "RATE_LIMITED",
"count": 18,
"percentage": 26.9,
"peak_times": ["09:00-10:00", "14:00-15:00"]
},
{
"error_code": "INVALID_QUERY",
"count": 15,
"percentage": 22.4,
"common_patterns": ["empty query", "special characters"]
}
],
"recommendations": [
{
"issue": "High timeout rate",
"suggestion": "Reduce max_results parameter or increase timeout",
"priority": "high"
},
{
"issue": "Rate limiting",
"suggestion": "Implement exponential backoff or upgrade plan",
"priority": "medium"
}
]
}
}

📊 Custom Dashboards

Create Custom Metrics

curl -X POST https://api.usecortex.co/v1/dashboards \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"name": "My Custom Dashboard",
"metrics": [
{"type": "requests_per_hour", "period": "24h"},
{"type": "success_rate", "period": "7d"},
{"type": "response_time", "percentile": 95}
],
"alerts": [
{"metric": "error_rate", "threshold": 0.05, "condition": "greater_than"}
]
}'

📱 Monitoring SDKs

Python Monitoring

from cortex import CortexClient

client = CortexClient(api_key="your_key")

# Get usage stats
usage = client.monitoring.usage(period="week")
print(f"Used: {usage.requests_used}/{usage.requests_limit}")
print(f"Success rate: {usage.performance_metrics.success_rate:.2%}")

# Check health
health = client.monitoring.health()
if health.status != "healthy":
print("System issues detected!")
for service, status in health.services.items():
if status.status != "healthy":
print(f"{service}: {status.status}")

# Monitor specific request
request_id = "req_123abc"
audit_entry = client.monitoring.audit(request_id=request_id)
print(f"Request took {audit_entry.response_time}s")

JavaScript Monitoring

import Cortex from '@cortex/sdk';

const cortex = new Cortex({ apiKey: 'your_key' });

// Real-time monitoring
const monitor = cortex.monitoring.live();

monitor.on('metrics', (data) => {
console.log(`RPM: ${data.currentLoad.requestsPerMinute}`);
console.log(`Response time: ${data.last5Minutes.avgResponseTime}s`);
});

monitor.on('alert', (alert) => {
console.warn(`Alert: ${alert.message}`);
});

// Usage analytics
const usage = await cortex.monitoring.usage({ period: 'month' });
console.log(`Usage: ${usage.currentPeriod.usagePercentage}%`);

🔔 Alerting

Set Up Alerts

{
"alerts": [
{
"name": "High Error Rate",
"condition": "error_rate > 0.05",
"duration": "5m",
"channels": ["email", "webhook"]
},
{
"name": "Usage Limit Warning",
"condition": "usage_percentage > 80",
"channels": ["email"]
},
{
"name": "Slow Response Time",
"condition": "avg_response_time > 5.0",
"duration": "10m",
"channels": ["slack"]
}
]
}

Webhook Notifications

{
"webhook": {
"url": "https://your-app.com/cortex-alerts",
"payload": {
"alert_name": "{{alert_name}}",
"message": "{{message}}",
"timestamp": "{{timestamp}}",
"severity": "{{severity}}",
"metrics": "{{metrics}}"
}
}
}

💡 Best Practices

Performance Monitoring

  1. Track Key Metrics

    • Response time percentiles (p95, p99)
    • Error rates by endpoint
    • Cache hit rates
    • Request volume trends
  2. Set Appropriate Alerts

    • Error rate > 5%
    • Response time > 5 seconds
    • Usage > 80% of limit
    • Cache hit rate < 50%
  3. Regular Health Checks

    # Health check in your application
    def check_cortex_health():
    try:
    health = client.monitoring.health()
    return health.status == "healthy"
    except Exception:
    return False

Usage Optimization

  1. Monitor Usage Patterns

    • Peak usage times
    • Most common endpoints
    • Cache effectiveness
    • Query complexity
  2. Optimize Based on Data

    • Increase caching for repeated queries
    • Adjust timeouts based on performance
    • Implement retries for transient errors
    • Scale up during peak times

Next: Error Codes → - Complete error reference guide