Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

node-mixin: Adjust `memory used` Dashboard to use `MemAvailable`

Abierto Apto para principiantes
#3,830 2 comentarios 1 reacción 0 asignados Ver en GitHub

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

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}

https://github.com/prometheus/node_exporter/blob/125a02099cde708ee9c99fddcc29a2703e92c576/docs/node-mixin/lib/prom-mixin.libsonnet#L126-L137

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de prometheus/node_exporter

Todos los issues de prometheus/node_exporter

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.