Files
linearvoid/docs/infrastructure/monitoring/prometheus_results.md
T
zwitschi 33b6296c5e
CI / test (push) Successful in 2m50s
CI / docker (push) Successful in 5m12s
Refactor load testing scripts to support Bash and PowerShell
- Updated README.md to reflect changes in load testing commands and added usage examples for Bash scripts.
- Converted PowerShell load testing scripts to Bash equivalents for better cross-platform compatibility.
- Added new Bash scripts: run-loadtests.sh, summarize-artillery.sh, and summarize-k6.sh to mirror existing PowerShell functionality.
- Updated admin-api.js and ws-chat.yml for consistency and improved performance metrics reporting.
- Enhanced error handling and output formatting in summary scripts for better readability.
2026-09-02 19:47:34 +02:00

125 lines
7.4 KiB
Markdown

# Prometheus Metrics — Linear Void
Raw scrape-target metric inventories captured for the monitoring setup. This file
lists which metric names are exposed by each target. No threshold values, alert
rules, or query results are present beyond the metric inventory itself.
Standard boilerplate metrics are exposed by every Go-based target and are omitted
below where noted: `go_*` (gc/memstats/sched/goroutines), `process_*` (cpu, fds,
memory, network), `promhttp_metric_handler_*`, and Prometheus scrape internals
(`scrape_duration_seconds`, `scrape_samples_scraped`, `scrape_samples_post_metric_relabeling`,
`scrape_series_added`, `up`).
## Chat Target (`linearvoid_chat_*`)
Application metrics for the chat service:
- `linearvoid_chat_admin_sessions_active`
- `linearvoid_chat_build_info`
- `linearvoid_chat_connected_clients`
- `linearvoid_chat_dms_total`
- `linearvoid_chat_messages_total`
- `linearvoid_chat_moderation_actions_total`
- `linearvoid_chat_redis_connected_clients`
- `linearvoid_chat_redis_enabled`
- `linearvoid_chat_redis_memory_max_bytes`
- `linearvoid_chat_redis_memory_usage_ratio`
- `linearvoid_chat_redis_memory_used_bytes`
- `linearvoid_chat_redis_up`
- `linearvoid_chat_request_duration_seconds_bucket/_count/_sum` (histogram)
- Plus `ALERTS`, `ALERTS_FOR_STATE` (alert state series).
## Playout Target (`linearvoid_playout_*`)
- `linearvoid_playout_mode`
- `linearvoid_playout_restarts_total`
- Plus `ALERTS`, `ALERTS_FOR_STATE`.
## Nginx Target (`nginx_*`)
Nginx (Go-based nginx exporter) metrics. Key operational series:
- `nginx_connections_accepted`, `nginx_connections_active`, `nginx_connections_handled`
- `nginx_connections_reading`, `nginx_connections_waiting`, `nginx_connections_writing`
- `nginx_http_requests_total`
- `nginx_exporter_build_info`, `nginx_up`
- Standard Go/process/promhttp/scrape boilerplate.
## Node Target (node_exporter, ZFS host)
Exposes the full standard node_exporter metric set plus ZFS (`node_zfs_*`) and
hwmon (`node_hwmon_*`) collectors. Operationally meaningful series include:
- **CPU/load:** `node_load1/5/15`, `node_cpu_seconds_total`, `node_cpu_scaling_frequency_hertz`,
`node_procs_running`, `node_procs_blocked`, `node_context_switches_total`
- **Memory:** `node_memory_MemTotal_bytes`, `node_memory_MemAvailable_bytes`,
`node_memory_MemFree_bytes`, `node_memory_SwapTotal_bytes`, `node_memory_SwapFree_bytes`,
`node_vmstat_oom_kill`
- **Filesystem/disk:** `node_filesystem_avail_bytes`, `node_filesystem_free_bytes`,
`node_filesystem_size_bytes`, `node_filesystem_readonly`, `node_disk_read_bytes_total`,
`node_disk_written_bytes_total`, `node_disk_io_time_seconds_total`
- **Network:** `node_network_receive_bytes_total`, `node_network_transmit_bytes_total`,
`node_network_up`, plus full `node_netstat_*` TCP/UDP/ICMP series
- **Files/fds:** `node_filefd_allocated`, `node_filefd_maximum`
- **Time:** `node_time_seconds`, `node_time_zone_offset_seconds`, `node_timex_sync_status`
- **ZFS ARC/L2ARC:** extensive `node_zfs_arc_*`/`node_zfs_l2_*` hit/miss/size series,
`node_zfs_zil_*`, `node_zfs_dbuf_*`, `node_zfs_dnode_*`, `node_zfs_zfetch_*`
- **Thermals:** `node_hwmon_temp_celsius`, `node_hwmon_temp_crit_celsius`
- `node_exporter_build_info`, `node_uname_info`, `node_os_info`, `node_boot_time_seconds`.
## Postgres Target (`pg_*` / postgres_exporter)
Go-based postgres exporter. Key operational series:
- **Health/replication:** `pg_up`, `pg_database_size_bytes`, `pg_database_connection_limit`,
`pg_replication_is_replica`, `pg_replication_lag_seconds`, `pg_replication_last_replay_seconds`,
`pg_locks_count`, `pg_wal_segments`, `pg_wal_size_bytes`
- **Settings (config-as-metric):** `pg_settings_*` (autovacuum, bgwriter, checkpoints,
max_connections, shared_buffers, work_mem, wal_*, etc.)
- **Activity/statistics:** `pg_stat_activity_count`, `pg_stat_activity_max_tx_duration`,
`pg_stat_bgwriter_*` (checkpoints, buffers, fsync), `pg_stat_database_*` (commits,
rollbacks, deadlocks, temp files, cache hit/read, tuple ops), `pg_stat_archiver_*`
- **Tables:** `pg_stat_user_tables_*` (live/dead tuples, seq/index scans, vacuum/analyze
counts), `pg_statio_user_tables_*` (heap/index block hits & reads, incl. TOAST)
- `pg_exporter_*` scrape health series, `postgres_exporter_build_info`, and Go/process boilerplate.
## Prometheus Target (self-scrape)
Prometheus' own metrics. Operationally meaningful series include:
- **Health/status:** `prometheus_build_info`, `prometheus_ready`,
`prometheus_config_last_reload_successful` (+ timestamp), `prometheus_tsdb_clean_start`
- **TSDB:** `prometheus_tsdb_head_series`, `prometheus_tsdb_head_samples_appended_total`,
`prometheus_tsdb_blocks_loaded`, `prometheus_tsdb_retention_limit_seconds`,
`prometheus_tsdb_storage_blocks_bytes`, `prometheus_tsdb_wal_storage_size_bytes`,
`prometheus_tsdb_lowest_timestamp`/`_seconds`, `prometheus_tsdb_head_max_time`
- **Scraping:** `prometheus_sd_discovered_targets`, `prometheus_sd_failed_configs`,
`prometheus_sd_last_update_timestamp_seconds`, `prometheus_target_scrape_pool_targets`,
`prometheus_target_scrape_pool_target_limit`, `prometheus_target_interval_length_seconds`
- **Rules/alerting:** `prometheus_rule_group_*` (evaluation duration/failures/interval/
rules), `prometheus_rule_evaluation_failures_total`, `prometheus_evaluations_total`,
`prometheus_notifications_alertmanagers_discovered`, `prometheus_notifications_queue_capacity`
- **Engine/HTTP:** `prometheus_engine_queries`, `prometheus_http_requests_total`,
`prometheus_http_request_duration_seconds_*`, `prometheus_remote_storage_*` (if remote write enabled)
- Standard Go/process/promhttp/scrape boilerplate.
## Redis Target (redis_exporter)
Go-based redis exporter. Key operational series:
- **Health:** `redis_up`, `redis_instance_info`, `redis_uptime_in_seconds`,
`redis_start_time_seconds`, `redis_exporter_last_scrape_error`
- **Memory:** `redis_memory_used_bytes`, `redis_memory_used_peak_bytes`,
`redis_memory_max_bytes`, `redis_memory_used_rss_bytes`, `redis_mem_fragmentation_ratio`,
`redis_mem_fragmentation_bytes`
- **Clients/connections:** `redis_connected_clients`, `redis_max_clients`,
`redis_connections_received_total`, `redis_rejected_connections_total`,
`redis_blocked_clients`
- **Commands/latency:** `redis_commands_processed_total`, `redis_commands_failed_calls_total`,
`redis_commands_duration_seconds_total`, `redis_commands_latencies_usec_*`,
`redis_latency_percentiles_usec`, `redis_errors_total`
- **Keys/eviction/expiry:** `redis_db_keys`, `redis_db_keys_expiring`, `redis_db_avg_ttl_seconds`,
`redis_keyspace_hits_total`, `redis_keyspace_misses_total`, `redis_evicted_keys_total`,
`redis_expired_keys_total`
- **Persistence:** `redis_rdb_last_bgsave_status`, `redis_rdb_last_bgsave_duration_sec`,
`redis_aof_enabled`, `redis_aof_last_write_status`, `redis_aof_current_size_bytes`
- **Replication/pubsub:** `redis_connected_slaves`, `redis_master_repl_offset`,
`redis_replication_backlog_bytes`, `redis_pubsub_channels`, `redis_pubsub_clients`
- **Config:** `redis_config_maxmemory`, `redis_config_maxclients`
- Standard process/promhttp/scrape boilerplate.
## Notes
- The only alert-related series present are Prometheus' standard `ALERTS` and
`ALERTS_FOR_STATE` on the Chat and Playout targets; no concrete rule thresholds
are recorded in this file.
- No dashboard definitions, alert thresholds, curl outputs, or numeric sample
values are captured here — this document is purely the exposed-metric inventory
per target.