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.

If the database profiler level is 1 or 2 (specifically, the database profiler is enabled), the slowms and sampleRate affect the behavior of both the profiler and the diagnostic log.

If the database profiler level is 0 (specifically, database profiler is disabled), the slowms and sampleRate, affect only the diagnostic log.

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.

You can specify a filter on both mongod and mongos instances to control which operations are logged by the profiler. When you specify a filter for the profiler, the slowms, and sampleRate options are not used for profiling and slow-query log lines.

db.setProfilingLevel() provides a wrapper around the profile command.

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.

The db.setProfilingLevel() method has the following form:

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

The profiler collects data for operations that exceed the slowms threshold or match a specified filter.

Cuando se establece un filtro:

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

  • The profiler only captures operations that match the filter.

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.

Because profiling is not available on mongos, db.setProfilingLevel() cannot be used to set the profiling level to a value other than 0 on a mongos instance.

documento o número entero

Optional. Accepts an integer or an options document. If an integer value is passed as the options argument instead of a document, the value is assigned to slowms. The following options are available:

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.

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.

For an example of a filter used to control logged operations, see Set a Filter to Determine Profiled Operations.

When a profiling filter is set, the slowms and sampleRate options do not affect the diagnostic log or the profiler.

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:

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:

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:

  • the profiling level to 1,

  • 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().

You can set a filter without enabling the database profiler. The following example uses a filter with a profiling level of 0.

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().