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)

Modificado en la 5.0 versión.:

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, si el perfilador de base de datos está habilitado), los parámetros slowms y sampleRate afectan el comportamiento tanto del perfilador como del diagnostic log.

Si el <a class=\" \" target=\" \" 0 href=\" \"> nivel del perfilador de la base de datos es (específicamente, el <a class=\" \" href=\" \"> perfilador de base de datos está deshabilitado), el <a class=\" \" target=\" \"href=\" \"> slowms y la <a class=\" \" target=\" \" href=\" \"> tasa de muestreo 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 tanto en la instancia mongod como en mongos para controlar qué operaciones se registran mediante el perfilador. Cuando se especifica un filter para el perfilador, las opciones slowms y sampleRate no se usan para el perfilado y las líneas de registro de consultas lentas.

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

A partir de MongoDB 5.0, los cambios realizados en el perfilador de base de datos level, slowms, sampleRate o filter utilizando el comando profile o el método contenedor db.setProfilingLevel() se registran en el log file.

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 db.setProfilingLevel() tiene la siguiente 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 umbral slowms o que cumplen con un filtroespecificado.

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.

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

documento o número entero

opcional. Acepta un número entero o un documento de opciones. Si se pasa un valor entero como argumento options 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

Novedad 8.3 en la versión.:

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

Predeterminado: 1.0
Tipo: doble

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 obtener un ejemplo de un filtro utilizado para controlar las operaciones de registro, consulte Establecer un filtro para determinar las operaciones de registro en el perfil.

Cuando se establece un filtro de creación de informes, las opciones slowms y sampleRate no afectan el registro de diagnóstico ni el perfilador.

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:

  • un filtro de { op: "query", millis: { $gt: 2000 } }, que hace que el perfilador solo registre query operaciones que hayan durado 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 perfilador de base de datos. El siguiente ejemplo utiliza un filtro con un nivel de perfilado de 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().