sql >> Databáze >  >> NoSQL >> MongoDB

Jak sledovat požadavky MongoDB z konzolové aplikace

Nejsem obeznámen s MongoDB, ale pokud mohu říci, neexistuje pro něj žádná výchozí podpora, pokud jde o Application Insights. Ale to neznamená, že to nemůžete udělat, jen to bude vyžadovat nějaký další kód.

Opět nejsem obeznámen s MongoDB, ale podle http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ existuje vestavěná podpora pro protokolování generovaných dotazů. Nyní to musíme pouze propojit s Application Insights.

Protože již víte, jak používat TelemetryClient můžeme použít vlastní metody sledování poskytované touto třídou. Viz https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics pro dostupné vlastní metody sledování.

Vše, co musíte udělat, je vložit nějaký kód, jako je tento:

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

Třída telemetryClient je bezpečný pro vlákna, takže jej můžete znovu použít.

Nyní byste podle odkazovaného blogpostu měli být schopni udělat něco takového:

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
        });
    }
});

Opět nejsem obeznámen s MongoDB, ale doufám, že toto je výchozí bod pro vaši představivost, jak jej přizpůsobit vašim potřebám pomocí vašich znalostí MongoDB.

EDIT:

Pokud existuje také CommandCompletedEvent nebo podobná událost jako protiklad k CommandStartedEvent pravděpodobně byste tam měli sledovat závislost, protože byste pak měli být schopni vypočítat (nebo jednoduše přečíst) strávený čas a možná získat skutečnou hodnotu pro indikátor úspěchu.




  1. Jak provedete find( id :{ $in :[ seznam ] } ) pomocí klienta vertx-mongo

  2. MongoDB:aktualizujte slovník v dokumentu

  3. Dotaz mezi daty v MongoDB

  4. jak uvolnit mezipaměť, kterou používá Mongodb?