Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.setProfilingLevel() (método mongosh)

db.setProfilingLevel(level, options)

Cambiado en la versión 5.0.

En una mongod instancia, el método habilita, deshabilita o configura el perfilador de base de datos. El perfilador captura y registra datos sobre el rendimiento de las operaciones de escritura, cursores y comandos de base de datos en una instancia activa de mongod. Si el perfilador está desactivado, el método configura cómo se registran las operaciones lentas en el registro de diagnóstico.

Nota

Los cambios realizados en el nivel de perfilado con db.setProfilingLevel() no persisten. Cuando el servidor se reinicia, vuelve a 0 (el valor por defecto), o al valor establecido mediante la configuración operationProfiling.mode o la opción de línea de comandos --profile.

Si el nivel del perfilador de base de datos es 1 o 2 (específicamente, el perfilador de base de datos está habilitado),slowms y sampleRate afectan el comportamiento tanto del perfilador como diagnostic log del.

Si el nivel del generador de perfiles de base de datos es 0 (específicamente, el generadorde perfiles de base de datos está deshabilitado),slowms y sampleRate afectan solo al registro de diagnóstico.

Con las instancias mongos, el método establece las configuraciones slowms, sampleRate y filter, que determinan cómo se registran las operaciones en el registro de diagnóstico. No es posible activar el perfilador de base de datos en una mongos instancia porque mongos no tiene ninguna colección en la que el perfilador pueda guardar. El nivel profile debe ser 0 para una instancia mongos.

Puedes especificar un filtro en las instancias y para controlar qué operaciones registra el generador de perfiles. Cuando especificas mongod mongos una filter instancia para el generador de perfiles, las opciones slowms y sampleRate no se utilizan para las líneas de registro de perfiles y consultas lentas.

db.setProfilingLevel() proporciona un envoltorio alrededor del profile comando.

A partir de MongoDB,5.0 los cambios realizados en el perfilador de la base level slowmsdesampleRate datos,, o filter mediante el profile comando o db.setProfilingLevel() el método de envoltura se registran en log file el.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta 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.

El método tiene la siguiente db.setProfilingLevel() forma:

db.setProfilingLevel(<level>, <options>)
Parameter
Tipo
Descripción

entero

Configura el nivel del perfilador de la base de datos. Los siguientes niveles de perfilador están disponibles:

0

El perfilador está desactivado y no recopila ningún dato. Este es el nivel por defecto del perfilador.

1

El generador de perfiles recopila datos para operaciones que superan el slowms umbral o coinciden con un filtro especificado.

Cuando se establece un filtro:

  • Las opciones slowms y sampleRate no se utilizan para el perfilado.

  • El generador de perfiles solo captura las operaciones que coinciden con el filtro.

2

El perfilador recopila datos de todas las operaciones.

Cuando se establece en el nivel 2, el perfilador ignora los valores proporcionados por el usuario para slowms y filter.

Debido a que la creación de perfiles no está disponible mongos en, db.setProfilingLevel() no se puede utilizar para establecer el nivel de creación de perfiles en un valor distinto de 0 en una mongos instancia de.

documento o número entero

Opcional. Acepta un número entero o un documento de opciones. Si se pasa un valor entero como options argumento en lugar de un documento, el valor se asigna a slowms. Las siguientes opciones están disponibles:

slowms

Predeterminado: 100
Tipo: entero

El umbral de tiempo de operación lento, en milisegundos. Las operaciones que se ejecutan por más tiempo que este umbral se consideran lentas.

Las operaciones lentas se registran en función de workingMillis, que es la cantidad de tiempo que MongoDB dedica a trabajar en esa operación. Esto significa que factores como la espera de bloqueos y el control de flujo no afectan si una operación supera el umbral de operación lenta.

Cuando logLevel se establece en 0, MongoDB registra las operaciones lentas en el registro de diagnóstico a una tasa determinada por slowOpSampleRate.

Con configuraciones más altas de logLevel, todas las operaciones aparecen en el registro de diagnóstico independientemente de su latencia, con la siguiente excepción: el registro de mensajes de entrada de oplog lentos por parte de los secundarios. Los secundarios solo registran las entradas de oplog lentas; aumentar el logLevel no registra todas las entradas de oplog.

Para las instancias mongod, la configuración afecta tanto al registro de diagnóstico como, si está activado, al perfilador.

Para mongos instancias, la configuración solo afecta al registro de diagnósticos y no al perfilador, ya que la creación de perfiles no está disponible en mongos.

Esta opción afecta la misma configuración que la opción de archivo de configuración slowOpThresholdMs.

procesosinlentoms

Nuevo en la versión 8.3.

Predeterminado: 5000
Tipo: entero

El umbral de operation time lenta para una consulta en curso, en milisegundos. MongoDB registra como consultas lentas en curso aquellas operaciones que se ejecutan durante más tiempo que este umbral. MongoDB registra una query como una query en curso lenta tan pronto como la operación de query supera el umbral de tiempo.

Esta opción afecta la misma configuración que la opción de archivo de configuración slowOpInProgressThresholdMs.

sampleRate

Por defecto: 1.0
Tipo: double

La fracción de operaciones lentas que se deben perfilar o registrar. sampleRate acepta valores entre 0 y 1, inclusive.

Para las instancias mongod, la configuración afecta tanto al registro de diagnóstico como, si está activado, al perfilador.

Para mongos instancias, la configuración solo afecta al registro de diagnósticos y no al perfilador, ya que la creación de perfiles no está disponible en mongos.

Este argumento afecta a la misma configuración que la opción de configuración slowOpSampleRate.

filtro

Tipo: objeto

Una expresión de filtro que controla qué operaciones se perfilan y registran. El campo en la expresión de filtro puede ser cualquier campo en la salida del perfilador.

Para las instancias mongod, la configuración afecta tanto al registro de diagnóstico como, si está activado, al perfilador.

Para mongos instancias, la configuración solo afecta al registro de diagnósticos y no al perfilador, ya que la creación de perfiles no está disponible en mongos.

A partir de MongoDB 8.0, puede especificar workingMillis como un parámetro de filtro para registrar operaciones según la cantidad de tiempo que MongoDB dedica a esa operación.

Para ver un ejemplo de filtro utilizado para controlar las operaciones registradas, consulte la sección "Configurar un filtro para determinar las operaciones perfiladas".

Cuando se configura un filtro de perfilado, las opciones slowms y sampleRate no afectan al registro de diagnóstico ni al generador de perfiles.

El método devuelve un documento que contiene los valores anteriores de la configuración.

{
"was" : 2,
"slowms" : 100,
"sampleRate" : 1,
"filter" : {
"$and" : [
{
"op" : {
"$eq" : "query"
}
},
{
"millis" : {
"$gt" : 20000
}
}
]
},
"note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
"ok" : 1
}
{
"was" : 0,
"slowms" : 100,
"sampleRate" : 1,
"filter" : {
"$and" : [
{
"op" : {
"$eq" : "query"
}
},
{
"millis" : {
"$gte" : 2000
}
}
]
},
"note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1572991238, 1),
"signature" : {
"hash" : BinData(0,"hg6GnlrVhV9MAhwWdeHmHQ4T4qU="),
"keyId" : Long("6755945537557495811")
}
},
"operationTime" : Timestamp(1572991238, 1)
}
{
"was" : 0,
"slowms" : 100,
"sampleRate" : 1,
"filter" : {
"$and" : [
{
"op" : {
"$eq" : "query"
}
},
{
"millis" : {
"$gte" : 2000
}
}
]
},
"note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.",
"ok" : 1,
"operationTime" : Timestamp(1572991499, 2),
"$clusterTime" : {
"clusterTime" : Timestamp(1572991499, 2),
"signature" : {
"hash" : BinData(0,"nhCquIxUw7thlrBudXe3PnsnvP0="),
"keyId" : Long("6755946491040235540")
}
}
}

Dónde:

  • was es la configuración de nivel anterior.

  • slowms es el ajuste anterior slowms.

  • sampleRate es el anterior sampleRate ajuste.

  • filter es la configuración anterior de filtro.

  • note es una string que explica el comportamiento de filter. Este campo solo aparece en la salida cuando filter también está presente.

Nota

Los campos filter y note solo aparecen en la salida si estaban presentes en la configuración anterior de nivel.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().

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.

El siguiente ejemplo establece para una instancia de mongod:

  • el nivel de perfilado 1 a,

  • El umbral de operación lenta se reduce a 20 milisegundos, y

  • la frecuencia de muestreo a.0.42

db.setProfilingLevel(1, { slowms: 20, sampleRate: 0.42 })

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().

El siguiente ejemplo establece para una mongod o mongos instancia:

  • el nivel de perfilado 0 a,

  • El umbral de operación lenta se reduce a 20 milisegundos, y

  • la frecuencia de muestreo a.0.42

db.setProfilingLevel(0, { slowms: 20, sampleRate: 0.42 })

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().

El siguiente ejemplo establece para una instancia de mongod:

  • el nivel de perfilado 1 a,

  • un filtro { op: "query", millis: { $gt: 2000 } }de, que hace que el generador de perfiles solo registre query operaciones que tardaron más de 2 segundos.

db.setProfilingLevel( 1, { filter: { op: "query", millis: { $gt: 2000 } } } )

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().

Puede establecer un filter sin habilitar el generador de perfiles de la base de datos. El siguiente ejemplo utiliza un filtro con un nivel de perfilado 0 de.

db.setProfilingLevel( 0, { filter: { op: "query", millis: { $gt: 2000 } } } )

Dado que el nivel de perfilado es 0, el perfilador está deshabilitado y no registra las operaciones coincidentes en la colección del perfilador. El filtro sigue aplicándose al registro de diagnóstico.

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().

Para borrar un filtro de perfil, ejecute db.setProfilingLevel() con la opción filter: "unset".

db.setProfilingLevel( 1, { filter: "unset" } )

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel actual de creación de perfiles, consulte db.getProfilingStatus().