Tôi không quen thuộc với MongoDB nhưng theo như tôi có thể biết thì không có hỗ trợ mặc định nào cho nó khi nói đến Thông tin chi tiết về ứng dụng. Nhưng điều đó không có nghĩa là bạn không thể làm điều này, nó sẽ chỉ liên quan đến một số mã khác.
Một lần nữa, tôi không quen thuộc với MongoDB nhưng theo http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ có hỗ trợ tích hợp để ghi nhật ký các truy vấn đã tạo. Bây giờ, chúng tôi chỉ cần kết nối điều này với Thông tin chi tiết về ứng dụng.
Vì bạn đã biết cách sử dụng TelemetryClient
chúng ta có thể sử dụng các phương pháp theo dõi tùy chỉnh do lớp đó cung cấp. Xem https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
cho các phương pháp theo dõi tùy chỉnh có sẵn.
Tất cả những gì bạn cần làm là chèn một số mã như sau:
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
Lớp telemetryClient
an toàn cho chuỗi nên bạn có thể sử dụng lại.
Bây giờ, theo bài đăng trên blog được tham chiếu, bạn sẽ có thể làm điều gì đó như sau:
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
});
}
});
Một lần nữa, tôi không quen thuộc với MongoDB nhưng tôi hy vọng đây là điểm khởi đầu cho trí tưởng tượng của bạn về cách điều chỉnh nó theo nhu cầu của bạn bằng cách sử dụng kiến thức của bạn về MongoDB.
CHỈNH SỬA:
Nếu cũng có CommandCompletedEvent
hoặc sự kiện tương tự trái ngược với CommandStartedEvent
sự kiện, bạn có thể nên theo dõi sự phụ thuộc ở đó vì khi đó bạn sẽ có thể tính toán (hoặc đọc đơn giản) thời gian đã sử dụng và có thể nhận được giá trị thực tế cho chỉ báo thành công.