Definição
profileAlterado na versão 5.0.
Para uma instância do
mongod, o comando habilita, desabilita ou configura o analisador de banco de dados. O analisador captura e registra dados sobre o desempenho de operações de gravação, cursores e comandos de banco de dados em uma instânciamongodem execução. Se o analisador 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ânciamongosporquemongosnão tem nenhuma coleção na qual o criador de profiler possa gravar.Starting in MongoDB 5.0, changes made to the database profiler
level,slowms,sampleRate, orfilterusing theprofilecommand ordb.setProfilingLevel()wrapper method are recorded in thelog file.Em
mongos, você pode definirprofilenÃvel para:0para definirslowms,sampleRateefilterpara o registro de diagnóstico;-1para 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: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
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:
Since profiling is not available on | |
| 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 | |
| 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 |
The db.getProfilingStatus() and db.setProfilingLevel() shell methods provide wrappers around the profile command.
Comportamento
The profile command obtains a write lock on the affected database while enabling or disabling the profiler. This is typically a short operation. The lock blocks other operations until the profile command has completed.
When connected to a sharded cluster through mongos, you can run the profile command against any database.
Exemplo
Habilitar filtragem
Para habilitar o perfil e filtrar os dados registrados:
db.runCommand( { profile: 1, filter: { $or: [ { millis: { $gte: 100 } }, { user: "testuser@admin" } ] } } )
The filter only selects operations that are:
pelo menos
100milissegundos 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().