perfil
Nesta página
Definição
profile
Alterado na versão 5.0.
Para uma instância do
mongod
, o comando habilita, desabilita ou configura o analisador de profiler de banco de dados de dados. O profiler captura e registra dados sobre o desempenho de operações de gravação, cursores e comandos de banco de dados de dados em uma instânciamongod
em execução. Se o profiler estiver desabilitado, o comando configurará como as operações lentas serão registradas no registro de diagnóstico.Em
mongod
, se o nível do criador de perfil do banco de dados estiver2
, o log completo será habilitado no criador de perfil e nodiagnostic log
.No nível do perfil do banco de dados
1
, as seguintes configurações modificam tanto o perfil quanto odiagnostic log
:Se o nível do perfil do banco de dados for
0
, o perfil do banco de dados será desabilitado. No nível0
, as seguintes configurações modificam apenas o registro de diagnóstico:Para uma instância do
mongos
, o comando configura somente como as operações são gravadas no registro de diagnóstico. Não é possível habilitar o criador de profiler de banco de dados de dados em uma instânciamongos
porquemongos
não tem nenhuma coleção na qual o criador de profiler possa gravar.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
.Em
mongos
, você pode definirprofile
nível para:0
para definirslowms
,sampleRate
efilter
para o registro de diagnóstico;-1
para ler as configurações atuais.
O profiler está desativado por padrão.
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.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, 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
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { profile: <level>, slowms: <threshold>, sampleRate: <rate>, filter: <filter expression> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição | |
---|---|---|---|
| int | Configura o nível do perfil. Os seguintes níveis de analisador estão disponíveis:
Como a criação de perfil não está disponível em | |
| int | Opcional. Padrão: 100 O limite do tempo de operação lenta, em milissegundos. As operações executadas por mais tempo que esse limite são consideradas lentas. As operações lentas são registradas com base em Quando Em configurações Este argumento afeta a mesma configuração que a opção de configuração | |
| double | Opcional. Padrão: 1.0 A fração de operações lentas que devem ser analisadas ou registradas. Esse argumento afeta a mesma configuração da opção de configuração | |
| objeto | Opcional. Uma query que determina quais operações são perfiladas ou registradas. A query de filtro recebe o seguinte formulário:
A query pode ser qualquer operação Este argumento afeta a mesma configuração que a opção de configuração |
Os métodos de shell db.getProfilingStatus()
e db.setProfilingLevel()
fornecem envoltórios em torno do comando profile
.
Comportamento
O comando profile
obtém um bloqueio de gravação no banco de dados afetado enquanto habilita ou desabilita o profiler. Normalmente, essa é uma operação curta. A trava bloqueia outras operações até que o comando profile
seja concluído.
Quando conectado a um cluster fragmentado por meio de mongos
, é possível executar o comando profile
em qualquer banco de dados.
Exemplo
Habilitar filtragem
Para habilitar o perfil e filtrar os dados registrados:
db.runCommand( { profile: 1, filter: { $or: [ { millis: { $gte: 100 } }, { user: "testuser@admin" } ] } } )
O filtro seleciona apenas as operações que são:
pelo menos
100
milissegundos de duração, ouenviado pelo
testuser
.
Redefinir um filtro
Para limpar um filtro de perfil, execute profile
com a opção filter: "unset"
.
db.runCommand( { profile: 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()
.