sql >> Database >  >> NoSQL >> MongoDB

MongoDB-verzoeken volgen vanuit een consoletoepassing

Ik ben niet bekend met MongoDB, maar voor zover ik weet is er geen standaardondersteuning voor als het gaat om Application Insights. Maar dat betekent niet dat je dit niet kunt doen, er komt alleen wat meer code bij kijken.

Nogmaals, ik ben niet bekend met MongoDB, maar volgens http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ er is ingebouwde ondersteuning voor het loggen van de gegenereerde query's. Nu hoeven we dit alleen nog maar aan Application Insights aan te sluiten.

Omdat u al weet hoe u de TelemetryClient . moet gebruiken we kunnen de aangepaste trackingmethoden gebruiken die door die klasse worden geboden. Zie https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics voor de beschikbare aangepaste trackingmethoden.

Het enige wat u hoeft te doen is een code zoals deze in te voeren:

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

De klasse telemetryClient is thread-safe, dus je kunt het opnieuw gebruiken.

Nu, volgens de blogpost waarnaar wordt verwezen, zou je zoiets als dit moeten kunnen doen:

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

Nogmaals, ik ben niet bekend met MongoDB, maar ik hoop dat dit een startpunt is voor uw verbeelding over hoe u het aan uw behoeften kunt aanpassen met uw kennis van MongoDB.

BEWERKEN:

Als er ook een CommandCompletedEvent . is of soortgelijke gebeurtenis in tegenstelling tot de CommandStartedEvent event zou je waarschijnlijk de afhankelijkheid daar moeten volgen omdat je dan in staat zou moeten zijn om de bestede tijd te berekenen (of simpel te lezen) en misschien de werkelijke waarde voor de succesindicator te krijgen.




  1. Kan bleekselderij een Database Scheduler gebruiken zonder Django?

  2. mongodb-query:hoe unieke vermeldingen te krijgen

  3. Converteer MongoDBObject naar JsValue

  4. Een op GUID gebaseerde Shard-sleutel programmatisch vooraf splitsen met MongoDB