遅いクエリに関するアラートを送信する監視スクリプトを作成したいと思います。
そのため、プログラムでプロファイルデータを取得したいと思います。私はMongoDBに接続することでPHPからそれを行うことができたと思います(しかし確かではありません)。
しかし、bashスクリプトから直接プロファイラーにアクセスできればもっと良いでしょう。それは可能ですか?
jsファイルを直接実行したり、ドライバーに接続したりするだけでなく、curl/wgetを使用してbashからmongodbに直接クエリを実行することもできます。必要なのは、サーバーを--restで起動することだけです。
mongod --rest
サーバーが27017をリッスンしている場合は、1000を追加してhttpポート(この場合は28017)を取得します。表示されるページは管理ページです。ここでは、次のような基本的なクエリを実行できます。
$ curl -i http://localhost:28017/<dbName>/<collectionName>/
すなわち
$ curl http://localhost:28001/test/foo/?filter_str=Hello
{
"offset" : 0,
"rows": [
{ "_id" : { "$oid" : "50ab8a10df015a6dd00a44a7" }, "str" : "Hello" } ,
{ "_id" : { "$oid" : "50ab8a14df015a6dd00a44a8" }, "str" : "Hello", "x" : 1 }
],
"total_rows" : 2 ,
"query" : { "str" : "Hello" } ,
"millis" : 0
}
Mongoコンソールは、bashスクリプトに埋め込むことができるスクリプトモードを提供します。詳細と使用法については、次のページを参照してください 。MongoDBシェルのスクリプト
PHPを使用して直接接続したい場合、PHPはMongoDBでサポートされているドライバーのリストに含まれており、スクリプト化されたmongoよりも優れたインターフェイスを提供します。詳細については、以下を参照してください: MongoDBドライバー