Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
db.setProfilingLevel()
Nesta página
Definição
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ânciamongod
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 para0
(o padrão) ou o valor definido pela configuraçãooperationProfiling.mode
ou pela opção de linha de comando--profile
.Se onível do analisador de banco de dados for
1
ou2
(especificamente, o analisador de banco de dados estiver ativado), slowms e sampleRate afetarão o comportamento do analisador e dodiagnostic log
.Se o nível do analisador de banco de dados for
0
(especificamente, o analisador de banco de dados estiver desabilitado), os slowms e sampleRate afetarão somente o registro de diagnóstico.Com instâncias
mongos
, o método define os ajustes de configuraçãoslowms
,sampleRate
efilter
, 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ânciamongos
porquemongos
não possui nenhuma coleção nas quais o profiler possa gravar. O nívelprofile
deve ser0
para uma instânciamongos
.Você pode especificar um filtro nas instâncias
mongod
emongos
para controlar quais operações são registradas pelo analisador. Quando você especifica umfilter
para o analisador, as opções slowms e sampleRate não são usadas para perfilar e linhas de registro de consulta lenta.db.setProfilingLevel()
fornece um invólucro para o comandoprofile
.A partir do MongoDB 5.0, as alterações feitas no analisador de banco de dados
level
,slowms
,sampleRate
oufilter
usando o comandoprofile
oudb.setProfilingLevel()
método wrapper são registradas nolog file
.
Sintaxe
O método db.setProfilingLevel()
tem o seguinte formulário:
db.setProfilingLevel(<level>, <options>)
Parâmetros
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:
Como a criação de perfil não está disponível em | |||||||||
documento ou valor inteiro | Opcional. Aceita um valor inteiro ou um documento de opções. Se um valor inteiro for fornecido como argumento
|
Devoluções
O método retorna um documento que contém os valores anteriores das configurações.
Onde:
was
é a configuração de nível anterior .slowms
é a configuração de slowms anterior .sampleRate
é a configuração anterior sampleRate .filter
é a configuração de filtro anterior .note
é uma string explicando o comportamento defilter
. Este campo aparece somente no resultado quandofilter
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()
.
Comportamento
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.
Exemplos
Habilite o profiler e defina o limite de operação lenta e a taxa de amostragem
Os seguintes conjuntos de exemplo para uma instância do mongod
:
o nível de perfilação para
1
,o limite de operação lenta slowms para
20
milissegundos, eo sampleRate para
0.42
.
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()
.
Desative o profiler e defina o limite de operação lenta e a taxa de amostragem
O exemplo seguinte define a instância mongod
ou mongos
:
o nível de perfilação para
0
,o limite de operação lenta slowms para
20
milissegundos, eo sampleRate para
0.42
.
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()
.
Definir um filtro para determinar as operações perfiladas
Os seguintes conjuntos de exemplo para uma instância do mongod
:
o nível de perfilação para
1
,um filtro de
{ op: "query", millis: { $gt: 2000 } }
, que faz com que o criador de perfil registre apenasquery
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()
.
Redefinir um filtro
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()
.