Add process metrics in metrics-v3 (#19612)

endpoint: /minio/metrics/v3/system/process
metrics:
- locks_read_total
- locks_write_total
- cpu_total_seconds
- go_routine_total
- io_rchar_bytes
- io_read_bytes
- io_wchar_bytes
- io_write_bytes
- start_time_seconds
- uptime_seconds
- file_descriptor_limit_total
- file_descriptor_open_total
- syscall_read_total
- syscall_write_total
- resident_memory_bytes
- virtual_memory_bytes
- virtual_memory_max_bytes

Since the standard process collector implements only a subset of these
metrics, remove it and implement our own custom process collector that
captures all the process metrics we need.
This commit is contained in:
Shireesh Anjal
2024-04-26 21:37:23 +05:30
committed by GitHub
parent a658b976f5
commit 4caa3422bd
3 changed files with 220 additions and 5 deletions

View File

@@ -64,7 +64,7 @@ These present metrics about the whole MinIO cluster.
Each of the following sub-sections list metrics returned by each of the endpoints.
The standard metrics groups for ProcessCollector and GoCollector are not shown below.
The standard metrics group for GoCollector is not shown below.
### `/api/requests`
@@ -163,6 +163,28 @@ The standard metrics groups for ProcessCollector and GoCollector are not shown b
| `minio_system_network_internode_sent_bytes_total` | `counter` | Total number of bytes sent to other peer nodes | `server,pool_index` |
| `minio_system_network_internode_recv_bytes_total` | `counter` | Total number of bytes received from other peer nodes | `server,pool_index` |
### `/system/process`
| Name | Type | Help | Labels |
|-------------------------------|-----------|----------------------------------------------------------------------------------------------------------------|----------|
| `locks_read_total` | `gauge` | Number of current READ locks on this peer | `server` |
| `locks_write_total` | `gauge` | Number of current WRITE locks on this peer | `server` |
| `cpu_total_seconds` | `counter` | Total user and system CPU time spent in seconds | `server` |
| `go_routine_total` | `gauge` | Total number of go routines running | `server` |
| `io_rchar_bytes` | `counter` | Total bytes read by the process from the underlying storage system including cache, /proc/[pid]/io rchar | `server` |
| `io_read_bytes` | `counter` | Total bytes read by the process from the underlying storage system, /proc/[pid]/io read_bytes | `server` |
| `io_wchar_bytes` | `counter` | Total bytes written by the process to the underlying storage system including page cache, /proc/[pid]/io wchar | `server` |
| `io_write_bytes` | `counter` | Total bytes written by the process to the underlying storage system, /proc/[pid]/io write_bytes | `server` |
| `start_time_seconds` | `gauge` | Start time for MinIO process in seconds since Unix epoc | `server` |
| `uptime_seconds` | `gauge` | Uptime for MinIO process in seconds | `server` |
| `file_descriptor_limit_total` | `gauge` | Limit on total number of open file descriptors for the MinIO Server process | `server` |
| `file_descriptor_open_total` | `gauge` | Total number of open file descriptors by the MinIO Server process | `server` |
| `syscall_read_total` | `counter` | Total read SysCalls to the kernel. /proc/[pid]/io syscr | `server` |
| `syscall_write_total` | `counter` | Total write SysCalls to the kernel. /proc/[pid]/io syscw | `server` |
| `resident_memory_bytes` | `gauge` | Resident memory size in bytes | `server` |
| `virtual_memory_bytes` | `gauge` | Virtual memory size in bytes | `server` |
| `virtual_memory_max_bytes` | `gauge` | Maximum virtual memory size in bytes | `server` |
### `/cluster/health`
| Name | Type | Help | Labels |