Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBFerramentas do banco de dados MongoDB

Exemplos de mongostat

Nesta página

Esta página mostra exemplos para mongostat.

Execute mongostat na linha de comando do sistema, não no shell mongo .

No primeiro exemplo, mongostat retornará os dados a cada segundo por 20 segundos. O mongostat coleta dados da instância do mongod executando na interface do localhost na porta 27017. Todas as seguintes invocações produzem comportamento idêntico:

mongostat --rowcount=20 1
mongostat --rowcount=20
mongostat -n=20 1
mongostat -n=20

No próximo exemplo, mongostat retorna dados a cada 5 minutos (ou 300 segundos) durante a execução do programa. O mongostat coleta dados da instância do mongod executando na interface do localhost na porta 27017. As seguintes invocações produzem comportamento idêntico:

mongostat --rowcount=0 300
mongostat -n=0 300
mongostat 300

No exemplo a seguir, mongostat retorna dados a cada 5 minutos durante uma hora (12 vezes.) mongostat coleta dados da instância mongod em execução na interface localhost na porta 27017. As seguintes invocações produzem comportamento idêntico:

mongostat --rowcount=12 300
mongostat -n=12 300

-O permite que você especifique campos da saída serverStatus para adicionar à saída mongostat padrão. Se você incluir um espaço no nome do seu arquivo personalizado, não coloque aspas adicionais delimitando o nome do campo.

O exemplo seguinte adiciona campos à saída mongostat padrão:

mongostat -O='host,version,network.numRequests=network requests'

A saída mongostat é semelhante a:

insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time host version network requests
*0 *0 *0 *0 0 2|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 158b 39.4k 2 Oct 11 12:14:45.878 localhost:37017 3.3.14 91
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.3k 2 Oct 11 12:14:46.879 localhost:37017 3.3.14 95
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 2.51G 19.0M 0|0 0|0 157b 39.2k 2 Oct 11 12:14:47.884 localhost:37017 3.3.14 99

Os seguintes campos são adicionados à saída padrão:

O campo network.numRequests tem um nome de campo personalizado, "solicitações de rede".

-o especifica as colunas que mongostat inclui na saída. Você pode especificar qualquer campo serverStatus como uma coluna de saída mongostat .

O exemplo seguinte utiliza campos personalizados para mongostat:

mongostat --port 27500 -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate'

A saída mongostat é semelhante a:

host Insert Rate Query Rate Command Rate Pages Req Inserted Rate
localhost:27500 180 1 8 2999446 9638
localhost:27500 40 3 12 2999601 9678
localhost:27500 181 2 9 3000207 9859
localhost:27500 39 2 12 3000362 9899
localhost:27500 181 2 11 3000969 10080
localhost:27500 39 2 10 3001124 10120

Os contadores e os nomes de campos personalizados correspondentes são:

Contador
Nome do campo personalizado
opcounters.insert.rate
Inserir taxa
opcounters.query.rate
Taxa de query
opcounters.command.rate
Taxa de comando
wiredTiger.cache.pages solicitado a partir do cache
Necessidade de páginas
metrics.document.inserted
Taxa inserida

.rate() permite que você visualize a taxa por segundo na qual um campo numérico foi alterado de uma chamada mongostat para outra. Por exemplo, você pode visualizar a taxa na qual os documentos foram inseridos durante uma operação de inserção. Portanto, o .rate() pode ajudá-lo a visualizar o desempenho de sua instância mongod .

O exemplo a seguir informa sobre a taxa de alteração do campo metrics.document.inserted serverStatus . A invocação usa a capacidade de -o de especificar o nome de uma coluna para rotular metrics.document.inserted.rate() como "inserted rate" e metrics.document.inserted como "inserted":

mongostat -o='host,mem,bits,metrics.document.inserted.rate()=inserted rate,metrics.document.inserted=inserted' --rowcount=5

A saída seria então semelhante a:

host mem.bits inserted rate inserted
localhost:37017 64 501 3455
localhost:37017 64 967 13128
localhost:37017 64 972 22851
localhost:37017 64 214 25000
localhost:37017 64 0 25000

.diff() retorna a diferença entre o valor de campo serverStatus atual e o valor da chamada mongostat anterior. O exemplo a seguir retorna estatísticas sobre o número de documentos que estão sendo inseridos em uma coleção: inserted diff é a diferença no campo metrics.document.inserted entre as chamadas subsequentes, enquanto inserted é o valor de metrics.document.inserted:

mongostat -o='host,mem.bits,metrics.document.inserted.diff()=inserted diff,metrics.document.inserted=inserted' --rowcount=5

A saída seria então semelhante a:

host mem.bits inserted diff inserted
localhost:27017 64 0 25359
localhost:27017 64 94 25453
localhost:27017 64 938 26391
localhost:27017 64 964 27355
localhost:27017 64 978 28333

Em muitos casos, o uso da opção --discover ajudará a fornecer uma visão mais completa do estado de um grupo inteiro de máquinas. Se um processo do mongos conectado a um aglomerado compartilhado estiver executando na porta 27017 da máquina local, você poderá utilizar o seguinte formulário para retornar estatísticas de todos os membros do agrupamento:

mongostat --discover

Use a opção --interactive para visualizar estatísticas em um ncursessem rolagem saída interativa - estilo. A opção --interactive permite que você destaque hosts, colunas ou campos específicos para consultar. Quando combinado com --discover, --interactive exibe estatísticas para todos os membros de um conjunto de réplica ou cluster fragmentado, como no seguinte exemplo:

mongostat --discover --interactive

A saída de um cluster fragmentado se assemelharia a:

host insert query update delete getmore command dirty used flushes mapped vsize res faults qrw arw net_in net_out conn set repl time
hostname.local:27018 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 3.25G 25.0M n/a 0|0 1|0 157b 43.9k 19 tic PRI Nov 2 11:44:46.439
hostname.local:27019 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439
hostname.local:27020 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.18G 26.0M n/a 0|0 1|0 322b 44.4k 12 tic SEC Nov 2 11:44:46.439
hostname.local:27021 2017 *0 *0 *0 826 1029|0 0.0% 0.0% 0 3.25G 31.0M n/a 0|0 1|0 1.74m 1.60m 20 tac PRI Nov 2 11:44:46.439
hostname.local:27022 *2021 *0 *0 *0 0 2|0 0.0% 0.0% 0 3.19G 32.0M n/a 0|0 1|0 322b 44.6k 12 tac SEC Nov 2 11:44:46.438
hostname.local:27023 *2022 *0 *0 *0 0 3|0 0.0% 0.0% 0 3.19G 33.0M n/a 0|0 1|0 323b 44.7k 12 tac SEC Nov 2 11:44:46.438
localhost:27017 2071 *0 *0 *0 0 2073|0 0 0B 2.43G 9.00M 0 0|0 0|0 249k 130k 4 RTR Nov 2 11:44:47.429
Press '?' to toggle help

Novidades na versão 100.1.0.

Para conectar-se a um cluster do MongoDB Atlas que foi configurado para suportar autenticação via Credenciais AWS IAM, forneça um connection string a mongostat semelhante ao seguinte:

mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

A conexão ao Atlas utilizando credenciais AWS IAM desta maneira utiliza o MONGODB-AWS authentication mechanism e o $external authSource, como mostrado neste exemplo.

Se estiver usando um token de sessão da AWS , também forneça o AWS_SESSION_TOKEN authMechanismProperties valor , como segue:

mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

Observação

Se o ID da chave de acesso da AWS, a chave de acesso secreta ou o token de sessão incluírem os seguintes caracteres:

: / ? # [ ] @

esses caracteres devem ser convertidos usando codificação percentual.

Como alternativa, o ID da chave de acesso da AWS, a chave de acesso secreta e, opcionalmente, o token de sessão podem ser fornecidos fora da string de conexão usando as opções --username, --password e --awsSessionToken , da seguinte forma:

mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

Quando fornecidos como parâmetros da linha de comando, estas três opções não exigem codificação percentual.

Você também pode definir essas credenciais em sua plataforma usando variáveis de ambiente padrão do AWS IAM. mongostat verifica as seguintes variáveis de ambiente quando você usa o MONGODB-AWS authentication mechanism:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

Se definidas, essas credenciais não precisam ser especificadas na connection string ou por meio de suas opções explícitas.

Observação

Se você optar por usar as variáveis de ambiente da AWS para especificar esses valores, não poderá combinar e corresponder com as opções explícitas ou de cadeia de conexão correspondentes para essas credenciais. Use as variáveis de ambiente para ID de chave de acesso e chave de acesso secreta (e token de sessão, se usado) ou especifique cada uma delas usando as opções explícitas ou de cadeia de conexão.

O exemplo a seguir define essas variáveis de ambiente no shell bash :

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

A sintaxe para definir variáveis de ambiente em outros shells será diferente. Consulte a documentação da sua plataforma para obter mais informações.

Você pode verificar se essas variáveis de ambiente foram definidas com o seguinte comando:

env | grep AWS

Depois de definido, o exemplo a seguir se conecta a um MongoDB Atlas cluster usando estas variáveis de ambiente:

mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
← Comportamento, acesso e uso do mongostat