Не съм запознат с MongoDB, но доколкото мога да кажа, няма поддръжка по подразбиране за него, когато става въпрос за Application Insights. Но това не означава, че не можете да направите това, просто ще включва още малко код.
Отново, не съм запознат с MongoDB, но според http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ има вградена поддръжка за регистриране на генерираните заявки. Сега трябва само да свържем това с Application Insights.
Тъй като вече знаете как да използвате TelemetryClient
можем да използваме персонализираните методи за проследяване, предоставени от този клас. Вижте https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
за наличните персонализирани методи за проследяване.
Всичко, което трябва да направите, е да вмъкнете код като този:
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
Класът telemetryClient
е безопасен за нишки, така че можете да го използвате повторно.
Сега, според цитираната публикация в блога, трябва да можете да направите нещо подобно:
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
});
}
});
Отново, не съм запознат с MongoDB, но се надявам, че това е отправна точка за вашето въображение как да го адаптирате към вашите нужди, като използвате знанията си за MongoDB.
РЕДАКТИРАНЕ:
Ако има и CommandCompletedEvent
или подобно събитие за разлика от CommandStartedEvent
случай, вероятно трябва да проследите зависимостта там, защото тогава трябва да можете да изчислите (или просто да прочетете) изразходваното време и може би да получите действителната стойност за индикатора за успех.