Saya tidak akrab dengan MongoDB tetapi sejauh yang saya tahu tidak ada dukungan default untuk itu dalam hal Wawasan Aplikasi. Tapi itu tidak berarti Anda tidak bisa melakukan ini, itu hanya akan melibatkan beberapa kode lagi.
Sekali lagi, saya tidak akrab dengan MongoDB tetapi menurut http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ ada dukungan bawaan untuk mencatat kueri yang dihasilkan. Sekarang, kita hanya perlu menghubungkannya ke Wawasan Aplikasi.
Karena Anda sudah tahu cara menggunakan TelemetryClient
kita dapat menggunakan metode pelacakan khusus yang disediakan oleh kelas itu. Lihat https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
untuk metode pelacakan khusus yang tersedia.
Yang perlu Anda lakukan adalah memasukkan beberapa kode seperti ini:
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
Kelas telemetryClient
thread-safe sehingga Anda dapat menggunakannya kembali.
Sekarang, menurut blogpost yang direferensikan, Anda seharusnya dapat melakukan sesuatu seperti ini:
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
});
}
});
Sekali lagi, saya tidak terbiasa dengan MongoDB tetapi saya harap ini adalah titik awal untuk imajinasi Anda tentang cara menyesuaikannya dengan kebutuhan Anda menggunakan pengetahuan Anda tentang MongoDB.
EDIT:
Jika ada juga CommandCompletedEvent
atau acara serupa yang bertentangan dengan CommandStartedEvent
acara Anda mungkin harus melacak ketergantungan di sana karena Anda kemudian harus dapat menghitung (atau membaca sederhana) waktu yang dihabiskan dan mungkin mendapatkan nilai sebenarnya untuk indikator keberhasilan.