2

遅いクエリに関するアラートを送信する監視スクリプトを作成したいと思います。

そのため、プログラムでプロファイルデータを取得したいと思います。私はMongoDBに接続することでPHPからそれを行うことができたと思います(しかし確かではありません)。

しかし、bashスクリプトから直接プロファイラーにアクセスできればもっと良いでしょう。それは可能ですか?

4

2 に答える 2

4

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
}
于 2012-11-20T23:35:47.113 に答える
1

Mongoコンソールは、bashスクリプトに埋め込むことができるスクリプトモードを提供します。詳細と使用法については、次のページを参照してください 。MongoDBシェルのスクリプト

PHPを使用して直接接続したい場合、PHPはMongoDBでサポートされているドライバーのリストに含まれており、スクリプト化されたmongoよりも優れたインターフェイスを提供します。詳細については、以下を参照してください: MongoDBドライバー

于 2012-11-15T16:29:03.203 に答える