sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan spores MongoDB-anmodninger fra en konsolapplikation

Jeg er ikke bekendt med MongoDB, men så vidt jeg kan se er der ingen standardunderstøttelse for det, når det kommer til Application Insights. Men det betyder ikke, at du ikke kan gøre dette, det vil bare involvere noget mere kode.

Igen, jeg er ikke bekendt med MongoDB, men ifølge http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ der er indbygget understøttelse til at logge de genererede forespørgsler. Nu mangler vi kun at tilslutte dette til Application Insights.

Da du allerede ved, hvordan du bruger TelemetryClient vi kan bruge de tilpassede sporingsmetoder, der leveres af denne klasse. Se https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics for de tilgængelige brugerdefinerede sporingsmetoder.

Alt du skal gøre er at indsætte en kode som denne:

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

Klassen telemetryClient er trådsikker, så du kan genbruge den.

Nu burde du ifølge det refererede blogindlæg være i stand til at gøre noget som dette:

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

Igen, jeg er ikke bekendt med MongoDB, men jeg håber, at dette er et udgangspunkt for din fantasi om, hvordan du tilpasser det til dine behov ved hjælp af din viden om MongoDB.

EDIT:

Hvis der også er en CommandCompletedEvent eller lignende hændelse i modsætning til CommandStartedEvent begivenhed bør du nok spore afhængigheden der, fordi du så skulle være i stand til at beregne (eller blot læse) den brugte tid og måske få den faktiske værdi for succesindikatoren.




  1. Hadoop RecordReader Introduktion, arbejde og typer

  2. Eksempel på tilpasset begivenhedslytter i Grails-dokumentation

  3. Funktion til at bytte værdier i NodeJS m/ mongo+mongoose

  4. MongoError:driveren er inkompatibel med denne serverversion