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.