Esta página muestra ejemplos para mongostat.
Ejecuta mongostat desde la línea de comandos del sistema, no desde la
mongo shell.
Especifique el periodo y la frecuencia de la colección de mongostat
En el primer ejemplo, mongostat devolverá datos cada segundo durante 20 segundos. mongostat recopila datos de la instancia de mongod que se ejecuta en la interfaz local (localhost) en el puerto 27017. Todas las siguientes invocaciones producen el mismo comportamiento:
mongostat --rowcount=20 1 mongostat --rowcount=20 mongostat -n=20 1 mongostat -n=20
En el siguiente ejemplo, mongostat devuelve datos cada 5 minuto (o 300 segundos) mientras el programa se esté ejecutando. mongostat recopila datos de la instancia de mongod que funciona en la interfaz localhost en el puerto 27017. Las siguientes invocaciones producen el mismo comportamiento:
mongostat --rowcount=0 300 mongostat -n=0 300 mongostat 300
En el siguiente ejemplo, mongostat devuelve datos cada 5 minutos durante una hora (12 veces). mongostat recopila datos de la instancia mongod que se ejecuta en la interfaz localhost en el puerto 27017. Las siguientes invocaciones producen el mismo comportamiento:
mongostat --rowcount=12 300 mongostat -n=12 300
Agregar campos a la salida de mongostat
-O te permite especificar campos de la salida de serverStatus para agregar a la salida mongostat por defecto. Si incluyes un espacio en el nombre de tu campo personalizado, no pongas comillas adicionales alrededor del nombre del campo.
El siguiente ejemplo agrega campos a la salida por defecto de mongostat:
mongostat -O='host,version,network.numRequests=network requests'
La salida de mongostat se parece a:
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time host version network requests *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 158b 39.4k 2 Oct 11 12:14:45.878 localhost:37017 3.3.14 91 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.3k 2 Oct 11 12:14:46.879 localhost:37017 3.3.14 95 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.2k 2 Oct 11 12:14:47.884 localhost:37017 3.3.14 99
Se añaden los siguientes campos al resultado por defecto:
El campo network.numRequests tiene un nombre de campo personalizado, "solicitudes de red".
Especifica mongostat campos de salida
-o especifica las columnas que mongostat incluye en sus resultados. Se puede especificar cualquier campo serverStatus como una columna de salida mongostat.
El siguiente ejemplo utiliza campos personalizados mongostat para:
mongostat --port 27500 -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate'
La salida de mongostat se parece a:
host Insert Rate Query Rate Command Rate Pages Req Inserted Rate localhost:27500 180 1 8 2999446 9638 localhost:27500 40 3 12 2999601 9678 localhost:27500 181 2 9 3000207 9859 localhost:27500 39 2 12 3000362 9899 localhost:27500 181 2 11 3000969 10080 localhost:27500 39 2 10 3001124 10120
Los contadores y los nombres de campos personalizados correspondientes son:
Contador | Nombre de campo personalizado |
|---|---|
opcounters.insert.rate | Insertar tarifa |
opcounters.query.rate | Tasa de query |
tasa de comando de opcounter | Tasa de comando |
wiredTiger.cache.páginas solicitadas de la caché | Páginas requeridas |
métricas.documento.insertado | Tarifa insertada |
Ver la tasa de cambio de un campo con .rate()
.rate() permite ver la tasa por segundo a la que un campo numérico ha cambiado de una mongostat llamada a la siguiente. Por ejemplo, puedes ver la velocidad a la que se han insertado documentos durante una operación de inserción. .rate() por lo tanto puede ayudarle a ver el rendimiento de su instancia mongod.
El siguiente ejemplo informa acerca de la tasa de cambio del campo metrics.document.inserted serverStatus. La invocación utiliza la capacidad de -o para especificar el nombre de una columna y etiquetar metrics.document.inserted.rate() como "tasa insertada" y metrics.document.inserted como "insertado":
mongostat -o='host,mem,bits,metrics.document.inserted.rate()=inserted rate,metrics.document.inserted=inserted' --rowcount=5
La vista de salida se ilustraría como sigue:
host mem.bits inserted rate inserted localhost:37017 64 501 3455 localhost:37017 64 967 13128 localhost:37017 64 972 22851 localhost:37017 64 214 25000 localhost:37017 64 0 25000
Ver cambios de campos con .diff()
.diff() devuelve la diferencia entre el valor actual del serverStatus campo y el valor de la mongostat llamada anterior. El siguiente ejemplo devuelve estadísticas sobre el número de documentos insertados en una colección: inserted
diff es la diferencia en el metrics.document.inserted campo entre llamadas posteriores, mientras que inserted es el valor de.metrics.document.inserted
mongostat -o='host,mem.bits,metrics.document.inserted.diff()=inserted diff,metrics.document.inserted=inserted' --rowcount=5
La vista de salida se ilustraría como sigue:
host mem.bits inserted diff inserted localhost:27017 64 0 25359 localhost:27017 64 94 25453 localhost:27017 64 938 26391 localhost:27017 64 964 27355 localhost:27017 64 978 28333
Visualizar estadísticas de un set de réplicas o un clúster
En muchos casos, usar la opción --discover te ayudará a obtener una snapshot más completa del estado de todo un grupo de máquinas. Si un proceso mongos conectado a un clúster shardeado se ejecuta en el puerto 27017 de la máquina local, puedes utilizar la siguiente forma para devolver las estadísticas de todos los miembros del clúster:
mongostat --discover
Ver estadísticas en una interfaz interactiva
Utilice la opción --interactive para ver las estadísticas en un modo ncursesque no requiere desplazamiento -salida interactiva de estilo. La opción --interactive te permite resaltar hosts, columnas o campos específicos para verlos. Cuando se combina con --discover, --interactive muestra estadísticas de todos los nodos de un replica set o clúster fragmentado, como en el siguiente ejemplo:
mongostat --discover --interactive
La salida de un clúster mediante particiones se asemejaría a lo siguiente:
host insert query update delete getmore command dirty used flushes mapped vsize res faults qrw arw net_in net_out conn set repl time hostname.local:27018 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 3.25G 25.0M n/a 0|0 1|0 157b 43.9k 19 tic PRI Nov 2 11:44:46.439 hostname.local:27019 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27020 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439 hostname.local:27021 2017 *0 *0 *0 826 1029|0 0.0% 0.0% 0 3.25G 31.0M n/a 0|0 1|0 1.74m 1.60m 20 tac PRI Nov 2 11:44:46.439 hostname.local:27022 *2021 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.19G 32.0M n/a 0|0 1|0 322b 44.6k 12 tac SEC Nov 2 11:44:46.438 hostname.local:27023 *2022 *0 *0 *0 0 3|0 0.0% 0.0% 0 3.19G 33.0M n/a 0|0 1|0 323b 44.7k 12 tac SEC Nov 2 11:44:46.438 localhost:27017 2071 *0 *0 *0 0 2073|0 0 0B 2.43G 9.00M 0 0|0 0|0 249k 130k 4 RTR Nov 2 11:44:47.429 Press '?' to toggle help
Conéctese a un clúster de MongoDB Atlas usando credenciales de AWS IAM
Nuevo en la versión 100.1.0.
Para conectarse a un clúster de MongoDB Atlas que ha sido configurado para admitir la autenticación mediante credenciales de AWS IAM, se debe proporcionar un connection string a mongostat similar al siguiente:
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
Conectarse a Atlas usando credenciales de AWS IAM de esta manera utiliza el MONGODB-AWS authentication mechanism y el $external authSource, como se muestra en este ejemplo.
Si utiliza un token de sesión de AWS, proporciónelo también con el valor AWS_SESSION_TOKEN authMechanismProperties, de la siguiente manera:
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
Nota
Si el ID de la clave de acceso de AWS, la clave de acceso secreta o el token de sesión incluyen los siguientes caracteres:
: / ? # [ ] @
esos caracteres deben convertirse utilizando codificación por porcentaje.
Como alternativa, el ID de clave de acceso de AWS, la clave de acceso secreta y, opcionalmente, el token de sesión se pueden proporcionar fuera de la cadena de conexión utilizando las opciones --username, --password y --awsSessionToken, de la siguiente manera:
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
Cuando se proporcionan como parámetros de línea de comandos, estas tres opciones no requieren codificación por porcentaje.
También se pueden establecer estas credenciales en la plataforma usando variables estándar de entorno AWS IAM. mongostat comprueba las siguientes variables de entorno cuando se usa el MONGODB-AWS authentication mechanism:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
Si se establecen, estas credenciales no necesitan especificarse en la cadena de conexión ni a través de sus opciones explícitas.
Nota
Si se elige usar las variables de entorno de AWS para especificar estos valores, no se pueden mezclar ni combinar con las opciones explícitas o de la cadena de conexión correspondientes para estas credenciales. Se deben utilizar las variables de entorno para el ID de la clave de acceso y la clave de acceso secreta (y el token de sesión si se utiliza), o especificar cada una de estas utilizando las opciones explícitas o de la cadena de conexión.
El siguiente ejemplo establece estas variables de entorno en el shell bash:
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
La sintaxis para configurar variables de entorno en otros shells será diferente. Consulta la documentación de tu plataforma para obtener más información.
Puedes comprobar que estas variables de entorno se han establecido con el siguiente comando:
env | grep AWS
Una vez configurado, el siguiente ejemplo se conecta a un clúster de MongoDB Atlas usando estas variables de entorno:
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>