mikroscope
Medido, no presupuestado
Las tres primeras salen del propio cgroup del agente, en cada muestra; la cuarta, de InfluxDB 3, el único destino al que reenviaba el colector. Cada una de las tres primeras es una sola ventana de 300 s en régimen estacionario, sin repetir, así que ninguna tiene dispersión. A 10 Hz la memoria está dentro de los ≤ 16 MiB que pide el presupuesto y la CPU por encima del ≤ 2 %. El router, la versión de RouterOS y la fecha están en Probado en.
Una media de un segundo es un informe sobre un segundo
La API de RouterOS publica cpu-load una vez por segundo. Un núcleo saturado 100 ms y ocioso los otros 900 mueve la media de un segundo de cuatro núcleos en 2,5 %. Es aritmética, no una medida, y la cifra es cierta: solo que no puede decir cuándo.
El agente lee /proc/stat, /proc/interrupts, /proc/softirqs y /proc/net/softnet_stat desde dentro del router, a 10 Hz por defecto, y envía los deltas crudos de ticks con el intervalo que cubre cada uno. Nunca calcula un porcentaje; la ventana la eliges tú.
El suelo es del kernel, no de la herramienta. /proc/stat cuenta en ticks de 10 ms, así que una muestra de 100 ms resuelve un núcleo en escalones de 10 %. No hay nada más fino que leer donde el kernel no tiene PSI ni schedstat, y el router probado no tiene ninguno de los dos (Probado en).
Lo que cuesta, a tres cadencias
Condiciones: ventanas de 300 s en régimen estacionario (con el anillo ya lleno), conjunto completo de fuentes, la configuración que se envía —anillo de 60 s, límite de memoria derivado de él y el tope de contenedor de serie de 64M— con el colector reenviando a InfluxDB 3. Cada fila es una sola ventana, sin repetir, así que ninguna fila tiene dispersión; la memoria cambia por fila porque cambian el anillo y el límite de memoria.
| cadencia | suelos | CPU de un núcleo | µs/ | RSS | ticks retrasados | huecos / |
|---|---|---|---|---|---|---|
| 10 Hz (por defecto) | por defecto | 2,69 % | 2 685 | 13,2 MiB | 0 | 0 / 0 |
| 50 Hz | por defecto | 9,63 % | 1 926 | 23,3 MiB | 0 | 0 / 0 |
| 100 Hz | por defecto | 16,83 % | 1 684 | 45,7 MiB | 5 (0,02 %) | 0 / 0 |
Desliza en horizontal para ver todas las columnas
No se perdió nada a ninguna de estas cadencias: todos los destinos informaron de 0 huecos y 0 descartes, y la cadencia entregada coincidió con la configurada a tres cifras. Con los suelos por defecto y a 100 Hz, todas las fuentes de un tick se leyeron en menos de 2 ms en el 97,7 % de las muestras, dentro de un periodo de 10 ms.
Las seis ejecuciones, incluida la de todas las fuentes en cada tick →
La CPU del router desde el kernel, sus interfaces desde la API
Capa del kernel · el agente · de 10 a 100 Hz
Globales dentro del contenedor, así que son los del propio router: ticks de CPU por núcleo, interrupciones, softirqs, descartes y time squeezes de softnet, /proc/meminfo, /proc/vmstat, carga y E/S de disco. Un contenedor privilegiado añade el log del kernel como eventos con marca de tiempo y las cachés slab globales.
Capa de la API · el colector · 1 Hz
El contenedor tiene su propio espacio de nombres de red, así que /proc/net/dev describe al contenedor, no al router. Los bytes y paquetes por interfaz vienen de la API de RouterOS y los fusiona el colector, sin interpolar. privileged=yes no cambia eso.
Cada escritura, listada antes de hacerla
Versión actual: 1.6.1, · Registro de cambios
Descarga el archivo para tu plataforma de la versión publicada, o compila la CLI desde una copia del repositorio con make build. El router necesita RouterOS 7.24 o posterior —el paso del contenedor escribe privileged=, un atributo que las versiones 7.x anteriores rechazan— con el paquete container y device-mode container=yes, que MikroTik condiciona a pulsar el botón de reset o a un corte de alimentación. arm64, arm y x86_64; ni MIPS ni TILE.
- mikroscope doctor
Comprobación de solo lectura que nombra el arreglo de lo que falte, y luego lo que muestra el anillo del agente en marcha: un bucle de capa 2, churn de STP, un link flap o descartes de softnet.
- mikroscope plan
Cada orden de RouterOS, sin escribir nada.
- mikroscope install
Doctor, confirmación, las escrituras y luego una sonda al agente. La imagen sale de tu propia toolchain de Go, del tar del agente publicado o del registro del que el router se la descarga.
- mikroscope status
Recuento de propiedad y salud del agente.
- mikroscope uninstall
Elimina y verifica.
Lo que install escribe en tu router
- el manifiesto de la instalación, un fichero
mikroscope/en el disco de la instalación que lista las opciones y cada objeto de abajo<name>. manifest.txt - una veth
- una dirección
- una pertenencia a lista de interfaces, salvo con
--iface-list none - una entrada de address-list, salvo con
--addr-list none - una envlist
- el tar de la imagen, que se borra en cuanto el contenedor está extraído, salvo que
--remote-imagehaga que el router se la baje - el contenedor, y su raíz
mikroscope/<name>en el mismo disco
Cada objeto lleva el comentario mikroscope:<name> (managed by mikroscope)
mikroscope plan imprime cada orden antes de escribir nada.
uninstall elimina por etiqueta exacta más identidad, nunca por patrón, y falla nombrando el paso si queda algo.
Probado en
Las cifras de esta página salen de un solo router. Probado en dice cuál, con las versiones de RouterOS, las fechas y las condiciones de cada ejecución.
También dice lo que no se ha probado: otras placas, un tráfico mayor que la carga corriente de ese router, y los destinos y las compilaciones que no han corrido en hardware. No se afirma ninguna cadencia en otra placa.
El coste depende de la velocidad del núcleo, del conjunto de fuentes y del tamaño del anillo. Mídelo en tu propio router antes de presupuestarlo.