mongostat の例
項目一覧
このページではmongostat
の例を示します。
mongo
shell ではなく、システム コマンド ラインから mongostat
を実行します。
mongostat
の収集期間と頻度の指定
最初の例では、 mongostat
は20秒の間、1 秒ごとにデータを返します。 mongostat
は、ポート27017のローカルホスト インターフェースで実行されているmongod
インスタンスからデータを収集します。 次の呼び出しはすべて同じ動作を生成します。
mongostat --rowcount=20 1 mongostat --rowcount=20 mongostat -n=20 1 mongostat -n=20
次の例では、 mongostat
は、プログラムが実行されている限り、 5分(または300秒)ごとにデータを返します。 mongostat
は、ポート27017
のローカルホスト インターフェースで実行されているmongod
インスタンスからデータを収集します。 次の呼び出しは同一の動作を生成します。
mongostat --rowcount=0 300 mongostat -n=0 300 mongostat 300
次の例では、 mongostat
は 1 時間の間、 5分ごと( 12回)のデータを返します。 mongostat
は、ポート27017のローカルホスト インターフェースで実行されているmongod
インスタンスからデータを収集します。 次の呼び出しは同一の動作を生成します。
mongostat --rowcount=12 300 mongostat -n=12 300
mongostat
出力へのフィールドの追加
-O
では、 serverStatus
の出力からデフォルトのmongostat
出力に追加するフィールドを指定できます。 カスタム ファイル名にスペースを含める場合は、フィールド名の前後に追加の引用符を付けないでください。
次の例では、デフォルトのmongostat
出力にフィールドを追加します。
mongostat -O='host,version,network.numRequests=network requests'
mongostat
の出力は次のようになります。
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
次のフィールドがデフォルトの出力に追加されます。
network.numRequests
フィールドには「ネットワーク リクエスト」というカスタム フィールド名があります。
mongostat
出力フィールドを指定する
-o
は、 mongostat
が出力に含める列を指定します。 任意のserverStatus
フィールドをmongostat
出力列として指定できます。
次の例では、 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'
mongostat
の出力は次のようになります。
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
カウンターおよび対応するカスタム フィールド名:
カウンター | カスタムフィールド名 |
---|---|
opcounters.insert.rate | 挿入率 |
opcounters.query.rate | クエリ レート |
opcounters.command.rate | コマンド レート |
キャッシュからリクエストされたwiredTiger.cache.pages | Pages Req |
metrics.document.inserted | 挿入率 |
次のコマンドでフィールドにおける変化率を表示します: .rate()
.rate()
を使用すると、あるmongostat
呼び出しから次の呼び出しへの数値フィールドの変化率を 1 秒あたりに表示できます。 たとえば、挿入操作中にドキュメントが挿入されたレートを表示できます。 したがって、 .rate()
は、 mongod
インスタンスのパフォーマンスを表示するのに役立ちます。
次の例では、 metrics.document.inserted
serverStatus
フィールドの変化率を報告します。 呼び出しでは、 -o
の機能を使用して、 metrics.document.inserted.rate()
を「挿入レート」として、 metrics.document.inserted
を「挿入」とラベル付けする列の名前を指定します。
mongostat -o='host,mem,bits,metrics.document.inserted.rate()=inserted rate,metrics.document.inserted=inserted' --rowcount=5
出力は次のようになります。
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()
.diff()
は、現在のserverStatus
フィールド値と前回のmongostat
呼び出しの値との差を返します。 次の例では、コレクションに挿入されているドキュメント数に関する統計を返します。 inserted
diff
は後続の 呼び出し間のmetrics.document.inserted
フィールドの差であり、 inserted
はmetrics.document.inserted
の値です。
mongostat -o='host,mem.bits,metrics.document.inserted.diff()=inserted diff,metrics.document.inserted=inserted' --rowcount=5
出力は次のようになります。
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
レプリカセットまたはシャーディングされたクラスターの統計情報を表示する
多くの場合、 --discover
オプションを使用すると、マシンのグループ全体の状態のより完全なスナップショットが提供されます。 mongos
シャーディングされた クラスター に接続された プロセスがローカルマシンのポート27017
で実行されている場合、次の形式を使用してクラスターのすべてのノードから統計情報を返すことができます。
mongostat --discover
インタラクティブ インターフェースで統計情報を表示する
--interactive
非スクロール インデックス で統計情報を表示するには、 オプションを使用します。 スタイルのインタラクティブ出力。--interactive
オプションを使用すると、表示する特定のホスト、列、またはフィールドを強調表示できます。 --discover
と組み合わせると、 --interactive
は次の例のように、レプリカセットまたはシャーディングされたクラスターのすべてのメンバーの統計情報を表示します。
mongostat --discover --interactive
シャーディングされたクラスターの出力は、次のようになります。
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
AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
バージョン 100.1.0 の新機能。
Amazon Web ServicesIAM MongoDB Atlasの認証情報 経由での認証をサポートするように構成済みの connection string
クラスターに接続します。mongostat
は、次のように から を提供します。
mongostat 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
AtlasAmazon Web Servicesこの方法で IAM 認証情報を使用してMONGODB-AWS
authentication mechanism
$external
authSource
に接続するには、この例に示すように、 と が使用されます。
AWS セッショントークンを使用する場合 同様に、AWS_SESSION_TOKEN
authMechanismProperties
値を次のとおり指定します。
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>
注意
AWS アクセスキー ID、シークレット アクセス キー、またはセッション トークンに次の文字が含まれている場合。
: / ? # [ ] @
上記文字はパーセント エンコーディングを使用して変換される必要があります。
あるいは、次のように、 、 、 --username
オプションを使用して、Amazon Web Services IDstring--password
アクセスキー--awsSessionToken
、シークレットアクセスキー、およびオプションのセッショントークンをそれぞれ接続 の外部で提供することもできます。
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>
コマンドライン パラメーターとして指定する場合、これら 3 つのオプションにパーセント エンコーディングは必要ありません。
標準のAmazon Web Services IAM 環境変数 を使用してプラットフォーム上でこれらの認証情報を設定することもできます 。mongostat
を使用すると、MONGODB-AWS
authentication mechanism
は次の環境変数をチェックします。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
設定されている場合、これらの認証情報を接続文字列や明示的なオプションで指定する必要はありません。
注意
Amazon Web Services の環境変数を使用してこれらの値を指定する場合、これらの認証情報に対応する明示的オプションまたは接続文字列 オプションと混在させることはできません。アクセス キー ID とシークレット アクセス キー(および使用する場合はセッション トークンも)の環境変数を使用、または代わりに明示的オプションもしくは接続文字列 オプションをそれぞれを指定します。
次の例では、bash
shell でこれらの環境変数を設定しています。
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>'
他の shell で環境変数を設定する構文は異なります。詳細については、ご使用のプラットフォームのドキュメントを参照してください。
次のコマンドで、これらの環境変数が設定されているかどうかを確認できます。
env | grep AWS
設定が完了すると、次の例では、これらの環境変数を使用して MongoDB Atlas クラスターに接続します。
mongostat 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>