Jag är inte bekant med MongoDB men så vitt jag kan säga finns det inget standardstöd för det när det kommer till Application Insights. Men det betyder inte att du inte kan göra detta, det kommer bara att involvera lite mer kod.
Återigen, jag är inte bekant med MongoDB men enligt http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ det finns inbyggt stöd för att logga de genererade frågorna. Nu behöver vi bara koppla detta till Application Insights.
Eftersom du redan vet hur man använder TelemetryClient
vi kan använda de anpassade spårningsmetoder som tillhandahålls av den klassen. Se https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
för tillgängliga anpassade spårningsmetoder.
Allt du behöver göra är att infoga en kod så här:
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
är trådsäker så att du kan återanvända den.
Nu, enligt det refererade blogginlägget, borde du kunna göra något så här:
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
});
}
});
Återigen, jag är inte bekant med MongoDB men jag hoppas att detta är en utgångspunkt för din fantasi om hur man anpassar den till dina behov med hjälp av din kunskap om MongoDB.
EDIT:
Om det också finns en CommandCompletedEvent
eller liknande händelse i motsats till CommandStartedEvent
händelse bör du förmodligen spåra beroendet där eftersom du då borde kunna beräkna (eller enkelt läsa) tiden som spenderas och kanske få det faktiska värdet för framgångsindikatorn.