Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

db.setProfilingLevel() (método mongosh)

db.setProfilingLevel(level, options)

Alterado na versão 5.0.

Para uma instância do mongod, o método habilita, desabilita ou configura o Profiler de banco de dados. O profiler captura e registra dados sobre o desempenho de operações de gravação, cursores e comandos de banco de dados em uma instância mongod em execução. Se o profiler estiver desabilitado, o método configurará como as operações lentas serão registradas no registro de diagnóstico.

Observação

As alterações feitas no nível de profiling com db.setProfilingLevel() não persistem. Quando o servidor é reiniciado, ele reverte para 0 (o padrão) ou o valor definido pela configuração operationProfiling.mode ou pela opção de linha de comando --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.

Com instâncias mongos , o método define os ajustes de configuração slowms, sampleRate e filter, que definem como as operações são gravadas no registro de diagnóstico. Não é possível ativar o profiler de banco de dados em uma instância mongos porque mongos não possui nenhuma coleção nas quais o profiler possa gravar. O nível profile deve ser 0 para uma instância 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 do MongoDB,5.0 as alterações feitas no profiler de banco level slowmsdesampleRate dados,, ou filter usando o profile comando ou db.setProfilingLevel() o método wrapper são registradas log file no.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Importante

Esse comando não é suportado em clusters M0 e Flex. Para obter mais informações, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

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

db.setProfilingLevel(<level>, <options>)
Parâmetro
Tipo
Descrição

inteiro

Configura o nível do perfil do banco de dados. Os seguintes níveis de analisador estão disponíveis:

0

O analisador está desligado e não coleta dados. Este é o nível do analisador padrão.

1

O profiler coleta dados para operações que levam mais tempo do que o valor de slowms ou que correspondem a um filtro.

Quando um filtro é definido:

  • As opções slowms e sampleRate não são usadas para análise.

  • O profiler só captura operações que correspondam ao filtro.

2

O profiler coleta dados para todas as operações. Ao definir para o nível 2, o profiler ignora os valores fornecidos pelo usuário para slowms e 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 ou valor inteiro

Opcional. Aceita um valor inteiro ou um documento de opções. Se um valor inteiro for fornecido como argumento options em vez de um documento, o valor será atribuído a slowms. As seguintes opções estão disponíveis:

slowms

Padrão: 100
Tipo: inteiro

O limite do tempo de operação lento, em milissegundos. As operações executadas por mais tempo que esse limite são consideradas lentas.

Quando logLevel é definido como 0, o MongoDB registra operações lentas no log de diagnóstico a uma taxa determinada por slowOpSampleRate.

Em configurações logLevel mais altas, todas as operações aparecem no log de diagnóstico, independentemente de sua latência, com a seguinte exceção: o log de mensagens de entrada lentas de oplog pelos secundários. Os secundários registram apenas as entradas lentas do oplog; aumentar o logLevel não registra todas as entradas do oplog.

Para instâncias mongod, a configuração afeta o registro de diagnóstico e, se ativado, o criador de perfil.

Para instâncias mongos, a configuração afeta somente o registro de diagnóstico e não o profiler porque o profiling não está disponível emmongos.

Esse argumento afeta a mesma configuração da opção slowOpThresholdMs do arquivo de configuração.

sampleRate

Padrão: 1.0
Tipo: double

A fração de operações lentas que devem ser analisadas ou registradas. sampleRate aceita valores entre 0 e 1, inclusive.

Para instâncias mongod, a configuração afeta o registro de diagnóstico e, se ativado, o criador de perfil.

Para instâncias mongos, a configuração afeta somente o registro de diagnóstico e não o profiler porque o profiling não está disponível emmongos.

Este argumento afeta a mesma configuração que a opção de configuração slowOpSampleRate.

filtro, filtro

Tipo: objeto

Uma expressão de filtro que controla quais operações são perfiladas e registradas. O campo na expressão de filtro pode ser qualquer campo na saída do profiler.

Para instâncias mongod, a configuração afeta o registro de diagnóstico e, se ativado, o criador de perfil.

Para instâncias mongos, a configuração afeta somente o registro de diagnóstico e não o profiler porque o profiling não está disponível emmongos.

Para obter um exemplo de um filtro usado para controlar operações registradas, consulte Definir um filtro para determinar operações perfiladas.

Quando um filtro de profiling é definido, as opções slowms e sampleRate não afetam o registro de diagnóstico ou o profiler.

O método retorna um documento que contém os valores anteriores das configurações.

{
"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")
}
}
}

Onde:

  • was é a configuração deanterior de nível.

  • slowms é a configuração de anterior de slowms.

  • sampleRate é a configuração anterior de sampleRate.

  • filter é a configuração anterior de filtro.

  • note é uma string explicando o comportamento de filter. Este campo aparece somente no resultado quando filter também está presente.

Observação

Os campos filter e note só aparecem na saída se estiverem presentes na configuração de nível anterior.

Para visualizar o nível do profiling atual, consulte db.getProfilingStatus().

Aviso

A análise pode degradar o desempenho e expor dados de query não criptografados no registro do sistema. Considere cuidadosamente quaisquer implicações de desempenho e segurança antes de configurar e habilitar o analisador em um sistema de produção.

Consulte Sobrecarga do criador de perfil para obter mais informações sobre a possível degradação do desempenho.

Os seguintes conjuntos de exemplo para uma instância do mongod:

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

A operação retorna um documento com os valores anteriores para as configurações.

Para visualizar o nível do profiling atual, consulte db.getProfilingStatus().

O exemplo seguinte define a instância mongod ou mongos:

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

A operação retorna um documento com os valores anteriores para as configurações.

Para visualizar o nível do profiling atual, consulte db.getProfilingStatus().

Os seguintes conjuntos de exemplo para uma instância do mongod:

  • the profiling level to 1,

  • um filtro { op: "query", millis: { $gt: 2000 } }de, que faz com que o profiler registre apenas query operações que demoraram mais de 2 segundos.

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

A operação retorna um documento com os valores anteriores para as configurações.

Para visualizar o nível do profiling atual, 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 } } } )

Como o nível de perfil é 0, o profiler está desativado e não registra operações correspondentes na coleção do profiler. O filtro ainda se aplica ao log de diagnóstico.

A operação retorna um documento com os valores anteriores para as configurações.

Para visualizar o nível do profiling atual, consulte db.getProfilingStatus().

Para limpar um filtro de perfil, execute db.setProfilingLevel() com a opção filter: "unset".

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

A operação retorna um documento com os valores anteriores para as configurações.

Para visualizar o nível do profiling atual, consulte db.getProfilingStatus().