Definición
profileModificado en la versión 5.0.
Para una En la instancia
mongod, el comando habilita, deshabilita o configura el generador de perfiles de base de datos. Este generador captura y registra datos sobre el rendimiento de las operaciones de escritura, los cursores y los comandos de base de datos en una instanciamongoden ejecución. Si el generador de perfiles está deshabilitado, el comando configura cómo se registran las operaciones lentas en el registro de diagnóstico.mongodEn, si el nivel del generador de perfiles de base de datos2es, se habilita el registro completo en el generador de perfiles ydiagnostic logen.En el nivel del generador de perfiles de base de
1datos, las siguientes configuraciones modifican tanto el generador de perfiles comodiagnostic logel:Si el nivel del
0perfilador de base de datos es, este se deshabilita. En el nivel,0las siguientes configuraciones solo modifican el registro de diagnóstico:En
mongosuna instancia, el comando solo configura cómo se escriben las operaciones en el registro de diagnóstico. No se puede habilitar el generador de perfiles de base de datos en una instanciamongosporquemongosno tiene colecciones en las que el generador de perfiles pueda escribir.A partir de MongoDB,5.0 los cambios realizados en el generador de perfiles de base
leveldeslowmssampleRatedatos,, ofiltermediante elprofileEl comando o el método contenedor sedb.setProfilingLevel()registranlog fileen.En, puedes
mongosestablecerprofileel nivel en:0para establecerslowms,sampleRateyfilterpara el registro de diagnóstico;-1para leer la configuración actual.
El generador de perfiles está desactivado de forma predeterminada.
Advertencia
El perfilado puede degradar el rendimiento y exponer datos de la consulta no cifrados en el registro del sistema. Considera detenidamente cualquier implicación de rendimiento y seguridad antes de configurar y activar el perfilador en una implementación de producción.
Consulte Sobrecarga del perfilador para obtener más información sobre la posible degradación del rendimiento.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { profile: <level>, slowms: <threshold>, sampleRate: <rate>, filter: <filter expression> } )
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Descripción | |
|---|---|---|---|
| Int | Configura el nivel del perfilador. Los siguientes niveles de perfilador están disponibles:
Dado que la creación de perfiles no está disponible | |
| Int | Opcional. Por defecto: 100 El umbral de tiempo de operación lenta, en milisegundos. Las operaciones que se ejecutan durante más tiempo que este umbral se consideran lentas. Cuando Con configuraciones más altas de Este argumento afecta la misma configuración que la opción de | |
| doble | Opcional. Por defecto: 1.0 La fracción de operaciones lentas que se deben perfilar o registrar. Este argumento afecta la misma configuración que la opción de configuración | |
| Objeto | Opcional. Una consulta que determina qué operaciones se perfilan o registran. La consulta de filtro toma la siguiente forma: La consulta puede ser cualquier operación legal de Este argumento afecta a la misma configuración que la opción. |
Los db.getProfilingStatus() db.setProfilingLevel() métodos de shell y profile proporcionan envoltorios alrededor del comando.
Comportamiento
El comando establece un bloqueo de escritura en la base de datos afectada al habilitar o deshabilitar profile profile el generador de perfiles. Esta operación suele ser breve. El bloqueo bloquea otras operaciones hasta que se complete el comando.
Cuando se conecta a un clúster fragmentado a través mongos de, puede ejecutar el profile comando contra cualquier base de datos.
Ejemplo
Permitir filtrado
Para habilitar la creación de perfiles y filtrar los datos registrados:
db.runCommand( { profile: 1, filter: { $or: [ { millis: { $gte: 100 } }, { user: "testuser@admin" } ] } } )
El filtro sólo selecciona las operaciones que son:
al menos
100milisegundos de duración, oenviado por
testuser.
Desactivar un filtro
Para borrar un filtro de perfil, ejecute profile con la opción filter: "unset".
db.runCommand( { profile: 1, filter: "unset" } )
La operación devuelve un documento con los valores anteriores de la configuración.
Para ver el nivel de perfil actual,db.getProfilingStatus() consulte.