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 para todos os comandos, consulte Comandos sem suporte.
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 | |
---|---|---|---|
profile | 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 no | |
slowms | int | Opcional. Padrão: 100 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 Em configurações Este argumento afeta a mesma configuração que a opção de configuração | |
sampleRate | 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 | |
filter | 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()
.