mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-07-26 12:08:15 +00:00
105 lines
3.8 KiB
YAML
105 lines
3.8 KiB
YAML
# Prometheus Community JSON Exporter Configuration Example
|
|
# File: examples/json_exporter.example.yml
|
|
#
|
|
# Use this configuration to map KoalaSync admin health metrics (JSON)
|
|
# to native Prometheus metrics.
|
|
#
|
|
# Usage:
|
|
# 1. Rename this file to json_exporter.yml
|
|
# 2. Replace "YOUR_ADMIN_METRICS_TOKEN" with your actual ADMIN_METRICS_TOKEN env value
|
|
# 3. Mount it to the json-exporter docker container: /config.yml
|
|
|
|
modules:
|
|
koalasync:
|
|
http_client_config:
|
|
bearer_token: "YOUR_ADMIN_METRICS_TOKEN"
|
|
metrics:
|
|
- name: koalasync_uptime_seconds
|
|
path: '{.uptime}'
|
|
help: "Uptime of the KoalaSync relay server in seconds"
|
|
|
|
- name: koalasync_rooms
|
|
path: '{.rooms}'
|
|
help: "Total active rooms"
|
|
|
|
- name: koalasync_connections
|
|
path: '{.connections}'
|
|
help: "Total active socket connections (sockets)"
|
|
|
|
- name: koalasync_peers
|
|
path: '{.peers}'
|
|
help: "Total connected peers across all rooms"
|
|
|
|
- name: koalasync_rooms_with_lobby
|
|
path: '{.roomsWithLobby}'
|
|
help: "Number of rooms waiting in an episode lobby"
|
|
|
|
- name: koalasync_avg_peers_per_room
|
|
path: '{.avgPeersPerRoom}'
|
|
help: "Average number of peers per room"
|
|
|
|
- name: koalasync_max_peers_in_room
|
|
path: '{.maxPeersInRoom}'
|
|
help: "Maximum number of peers in a single room"
|
|
|
|
- name: koalasync_memory_rss_bytes
|
|
path: '{.memory.rss}'
|
|
help: "Resident Set Size (RSS) memory usage in bytes"
|
|
|
|
- name: koalasync_memory_heap_used_bytes
|
|
path: '{.memory.heapUsed}'
|
|
help: "V8 engine heap used in bytes"
|
|
|
|
- name: koalasync_memory_heap_total_bytes
|
|
path: '{.memory.heapTotal}'
|
|
help: "V8 engine heap total in bytes"
|
|
|
|
# Rate limiter tracking — unique clients currently in each tracking window
|
|
# (not rate-limit denials; these include legitimate traffic too)
|
|
|
|
- name: koalasync_rate_limit_connections
|
|
path: '{.rateLimits.trackedClients.connections}'
|
|
help: "Unique clients tracked in the connection rate limiter window"
|
|
|
|
- name: koalasync_rate_limit_events
|
|
path: '{.rateLimits.trackedClients.events}'
|
|
help: "Unique sockets tracked in the event rate limiter window"
|
|
|
|
- name: koalasync_rate_limit_health
|
|
path: '{.rateLimits.trackedClients.health}'
|
|
help: "Unique IPs tracked in the health endpoint rate limiter window"
|
|
|
|
- name: koalasync_rate_limit_admin_metrics_auth
|
|
path: '{.rateLimits.trackedClients.adminMetricsAuth}'
|
|
help: "Unique IPs tracked in the admin metrics auth rate limiter window"
|
|
|
|
- name: koalasync_rate_limit_auth_failures
|
|
path: '{.rateLimits.trackedClients.authFailures}'
|
|
help: "Unique IPs tracked in the authentication failures cache"
|
|
|
|
- name: koalasync_rate_limit_room_list
|
|
path: '{.rateLimits.trackedClients.roomList}'
|
|
help: "Unique sockets in the room list cooldown cache"
|
|
|
|
# Actual rate-limit denials — incremented only when a 429 is served
|
|
|
|
- name: koalasync_rate_limit_denied_connections
|
|
path: '{.rateLimits.denied.connections}'
|
|
help: "Total connection attempts denied by rate limiter"
|
|
|
|
- name: koalasync_rate_limit_denied_events
|
|
path: '{.rateLimits.denied.events}'
|
|
help: "Total socket events denied by rate limiter"
|
|
|
|
- name: koalasync_rate_limit_denied_health
|
|
path: '{.rateLimits.denied.health}'
|
|
help: "Total health endpoint requests denied by rate limiter"
|
|
|
|
- name: koalasync_rate_limit_denied_admin_metrics_auth
|
|
path: '{.rateLimits.denied.adminMetricsAuth}'
|
|
help: "Total admin metrics auth attempts denied by rate limiter"
|
|
|
|
- name: koalasync_rate_limit_denied_room_list
|
|
path: '{.rateLimits.denied.roomList}'
|
|
help: "Total room list refresh requests denied by rate limiter"
|