Nie znam MongoDB, ale o ile wiem, nie ma dla niej domyślnej obsługi, jeśli chodzi o Application Insights. Ale to nie znaczy, że nie możesz tego zrobić, to po prostu wymaga trochę więcej kodu.
Ponownie nie znam MongoDB, ale według http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ istnieje wbudowana obsługa rejestrowania wygenerowanych zapytań. Teraz musimy tylko podłączyć to do Application Insights.
Skoro już wiesz, jak korzystać z TelemetryClient
możemy użyć niestandardowych metod śledzenia dostarczonych przez tę klasę. Zobacz https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
dla dostępnych niestandardowych metod śledzenia.
Wszystko, co musisz zrobić, to wstawić taki kod:
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
Klasa telemetryClient
jest bezpieczny dla wątków, więc możesz go ponownie użyć.
Teraz, zgodnie z przywołanym wpisem na blogu, powinieneś być w stanie zrobić coś takiego:
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
});
}
});
Ponownie, nie znam MongoDB, ale mam nadzieję, że jest to punkt wyjścia dla twojej wyobraźni, jak dostosować go do swoich potrzeb, wykorzystując swoją wiedzę o MongoDB.
EDYCJA:
Jeśli istnieje również CommandCompletedEvent
lub podobne zdarzenie w przeciwieństwie do CommandStartedEvent
zdarzenia, prawdopodobnie powinieneś tam śledzić zależność, ponieważ powinieneś być w stanie obliczyć (lub po prostu odczytać) spędzony czas i być może uzyskać rzeczywistą wartość wskaźnika sukcesu.