sql >> データベース >  >> NoSQL >> MongoDB

コンソールアプリケーションからのMongoDBリクエストを追跡する方法

    私はMongoDBに精通していませんが、Application Insightsに関しては、MongoDBのデフォルトのサポートはありません。しかし、それはあなたがこれを行うことができないという意味ではありません、それはただもう少しコードを含むでしょう。

    繰り返しになりますが、私はMongoDBに精通していませんが、 http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ 生成されたクエリをログに記録するための組み込みサポートがあります。これで、これをApplicationInsightsに接続するだけで済みます。

    TelemetryClientの使用方法をすでに知っているので そのクラスが提供するカスタム追跡メソッドを使用できます。 https://を参照してください。 docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics 利用可能なカスタム追跡方法について。

    次のようなコードを挿入するだけです。

    telemetryClient.TrackDependency(
        "MongoDB",               // The name of the dependency
        query,                   // Text of the query
        DateTime.Now,            // Time that query is executed
        TimeSpan.FromSeconds(0), // Time taken to execute query
        true);                   // Indicates success
    

    クラスtelemetryClient スレッドセーフなので、再利用できます。

    参照されているブログ投稿によると、次のようなことができるはずです:

    var client = new MongoClient(new MongoClientSettings()
    {
        Server = new MongoServerAddress("localhost"),
        ClusterConfigurator = cb =>
        {
            cb.Subscribe<CommandStartedEvent>(e =>
            {
                telemetryClient.TrackDependency(
                    "MongoDB",               // The name of the dependency
                    e.Command.ToJson()       // Text of the query
                    DateTime.Now,            // Time that query is executed
                    TimeSpan.FromSeconds(0), // Time taken to execute query
                    true);                   // Indicates success
            });
        }
    });
    

    繰り返しになりますが、私はMongoDBに精通していませんが、MongoDBの知識を使用して、MongoDBをニーズに適応させる方法についての想像力の出発点になることを願っています。

    編集:

    CommandCompletedEventもある場合 またはCommandStartedEventとは対照的な同様のイベント イベントでは、おそらくそこで依存関係を追跡する必要があります。そうすれば、費やした時間を計算(または単純に読み取る)でき、成功インジケーターの実際の値を取得できるはずだからです。




    1. MongoDbのグローバル自動インクリメントフィールド

    2. bson.Dオブジェクトに値を追加する方法

    3. Redisリストまたはsetpopメソッドスレッドは安全ですか?

    4. MongooseJS/MongoDB検索の正確なフレーズ