node-mixin: Adjust `memory used` Dashboard to use `MemAvailable`
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- linux, prometheus
- Área
- observability
Línea de trabajo
El issue apunta al archivo específico docs/node-mixin/lib/prom-mixin.libsonnet líneas 126-137 y al archivo de reglas docs/node-mixin/rules/rules.libsonnet. Comience examinando la fórmula actual del panel de memoria utilizada y la regla de utilización de memoria existente que ya usa MemAvailable. La tarea es actualizar la fórmula del panel para usar MemAvailable con un fallback al cálculo antiguo para compatibilidad. Verifique el cambio revisando la estructura del mixin de JSONnet y comprendiendo cómo se construyen las consultas de Prometheus.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently, the memory used dashboard in the node-mixin for Linux uses the formula
\text{memory used} = \text{MemTotal} - \text{MemFree} - \text{Buffers} - \text{Cached}
The Linux kernel introduced MemAvailable specifically because the formula above is a less accurate estimation of usable memory. As a result, a more accurate number for memory usage would be
\text{memory used} = \text{MemTotal} - \text{MemAvailable}
We encouraged gopsutil to adopt the same formula to calculate usage and psutil adopted it at coincidentally the same time (but independent of our gopsutil suggestion).
I see that the memory utilization dashboard already accounts for this: https://github.com/prometheus/node_exporter/blob/125a02099cde708ee9c99fddcc29a2703e92c576/docs/node-mixin/rules/rules.libsonnet#L43-L58
Should the memory used dashboard do the same thing? I assume if it did something like this:
node_memory_MemTotal_bytes{%(nodeExporterSelector)s} - (
node_memory_MemAvailable_bytes{%(nodeExporterSelector)s}
or
(
node_memory_Buffers_bytes{%(nodeExporterSelector)s}
+
node_memory_Cached_bytes{%(nodeExporterSelector)s}
+
node_memory_MemFree_bytes{%(nodeExporterSelector)s}
)
)
That would make it so users on Linux environments that don't provide MemAvailable wouldn't be broken, but the rest could get a more accurate value that is similar to the calculation already being done in the utilization dashboard.
P.S. The way free used to calculated this in the past also included SReclaimable as part of the calculation alongside Cached, Buffers, and MemFree, and gopsutil used to do the same thing. I'm unsure whether it's worth it at this point to mess with the existing approximation formula in the dashboard, but I figured I would bring it up.
- Lenguaje dominante
- Go
- Estrellas
- 13.8k
- Forks
- 2.7k
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 7
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de prometheus/node_exporter
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
prometheus/node_exporter#3823 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
prometheus/node_exporter#3817 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
prometheus/node_exporter#3761 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
prometheus/node_exporter#1767 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
prometheus/node_exporter#3826 ·
Los mantenedores suelen responder en 1 día
Todos los issues de prometheus/node_exporter
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
gruntwork-io/boilerplate#329 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
prime-radiant-inc/evener#3291 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Netcracker/qubership-apihub-backend#582 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día