
Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
179 lines
4.1 KiB
TOML
179 lines
4.1 KiB
TOML
# Metrics Feature Configuration
|
|
# Settings for Prometheus metrics collection and monitoring
|
|
|
|
[features]
|
|
metrics = true
|
|
|
|
# Metrics Collection
|
|
[metrics]
|
|
enabled = true
|
|
endpoint = "/metrics"
|
|
health_endpoint = "/metrics/health"
|
|
collection_interval = 30 # seconds
|
|
enable_process_metrics = true
|
|
enable_runtime_metrics = true
|
|
|
|
# Prometheus Configuration
|
|
[metrics.prometheus]
|
|
namespace = "rustelo"
|
|
subsystem = ""
|
|
registry_type = "default" # "default" or "custom"
|
|
enable_exemplars = false
|
|
histogram_buckets = [0.001, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0]
|
|
|
|
# HTTP Metrics
|
|
[metrics.http]
|
|
enabled = true
|
|
track_request_count = true
|
|
track_request_duration = true
|
|
track_requests_in_flight = true
|
|
track_response_size = true
|
|
track_request_size = true
|
|
include_user_agent = false
|
|
include_ip_address = false
|
|
slow_request_threshold = 1.0 # seconds
|
|
|
|
# Database Metrics
|
|
[metrics.database]
|
|
enabled = true
|
|
track_connection_pool = true
|
|
track_query_duration = true
|
|
track_query_count = true
|
|
track_connection_errors = true
|
|
track_migration_status = true
|
|
slow_query_threshold = 0.1 # seconds
|
|
include_query_tags = false # Can expose sensitive data
|
|
|
|
# Authentication Metrics
|
|
[metrics.auth]
|
|
enabled = true
|
|
track_login_attempts = true
|
|
track_login_failures = true
|
|
track_session_duration = true
|
|
track_active_sessions = true
|
|
track_token_generations = true
|
|
track_password_resets = true
|
|
track_registration_attempts = true
|
|
include_failure_reasons = true
|
|
|
|
# Content Metrics
|
|
[metrics.content]
|
|
enabled = true
|
|
track_content_requests = true
|
|
track_cache_performance = true
|
|
track_content_processing_time = true
|
|
track_search_queries = true
|
|
track_content_views = true
|
|
track_popular_content = true
|
|
|
|
# Email Metrics
|
|
[metrics.email]
|
|
enabled = true
|
|
track_emails_sent = true
|
|
track_email_failures = true
|
|
track_queue_size = true
|
|
track_processing_time = true
|
|
track_bounce_rate = true
|
|
track_delivery_rate = true
|
|
include_provider_metrics = true
|
|
|
|
# System Metrics
|
|
[metrics.system]
|
|
enabled = true
|
|
track_memory_usage = true
|
|
track_cpu_usage = true
|
|
track_disk_usage = true
|
|
track_network_io = true
|
|
track_file_descriptors = true
|
|
track_uptime = true
|
|
collection_interval = 15 # seconds
|
|
|
|
# Business Metrics
|
|
[metrics.business]
|
|
enabled = true
|
|
track_user_registrations = true
|
|
track_user_logins = true
|
|
track_content_creation = true
|
|
track_api_usage = true
|
|
track_feature_usage = true
|
|
track_error_rates = true
|
|
track_conversion_metrics = false
|
|
|
|
# Performance Metrics
|
|
[metrics.performance]
|
|
enabled = true
|
|
track_garbage_collection = true
|
|
track_thread_pool_usage = true
|
|
track_async_task_metrics = true
|
|
track_lock_contention = false
|
|
track_allocation_rate = false
|
|
|
|
# Custom Metrics
|
|
[metrics.custom]
|
|
enabled = true
|
|
allow_custom_counters = true
|
|
allow_custom_gauges = true
|
|
allow_custom_histograms = true
|
|
max_custom_metrics = 100
|
|
custom_metric_prefix = "custom_"
|
|
|
|
# Metric Labels
|
|
[metrics.labels]
|
|
include_environment = true
|
|
include_version = true
|
|
include_instance_id = true
|
|
include_hostname = false
|
|
custom_labels = {}
|
|
|
|
# Metric Filtering
|
|
[metrics.filters]
|
|
exclude_patterns = []
|
|
include_patterns = ["*"]
|
|
exclude_sensitive_data = true
|
|
max_label_count = 20
|
|
max_label_length = 100
|
|
|
|
# Aggregation Settings
|
|
[metrics.aggregation]
|
|
enable_summary_metrics = true
|
|
summary_objectives = [0.5, 0.9, 0.95, 0.99]
|
|
histogram_max_age = 600 # seconds
|
|
gauge_max_age = 300 # seconds
|
|
|
|
# Export Configuration
|
|
[metrics.export]
|
|
format = "prometheus" # "prometheus", "json", "statsd"
|
|
compression = "gzip"
|
|
timeout = 30 # seconds
|
|
include_help_text = true
|
|
include_type_info = true
|
|
|
|
# Rate Limiting for Metrics Endpoint
|
|
[metrics.rate_limiting]
|
|
enabled = true
|
|
requests_per_minute = 60
|
|
burst_limit = 10
|
|
exclude_internal_requests = true
|
|
|
|
# Security
|
|
[metrics.security]
|
|
enable_authentication = false
|
|
allowed_ips = [] # Empty means all IPs allowed
|
|
api_key_header = "X-Metrics-API-Key"
|
|
api_key = "" # Set in environment or use encrypted value
|
|
|
|
# Alerting Integration
|
|
[metrics.alerting]
|
|
enabled = false
|
|
webhook_url = ""
|
|
alert_threshold_errors = 10
|
|
alert_threshold_latency = 5.0 # seconds
|
|
alert_cooldown = 300 # seconds
|
|
|
|
# Development Settings
|
|
[metrics.development]
|
|
enable_debug_metrics = false
|
|
log_metric_collection = false
|
|
metric_collection_timeout = 5 # seconds
|
|
enable_metric_validation = true
|