मैं मोंगोडीबी से परिचित नहीं हूं लेकिन जहां तक मैं कह सकता हूं कि जब एप्लिकेशन अंतर्दृष्टि की बात आती है तो इसके लिए कोई डिफ़ॉल्ट समर्थन नहीं होता है। लेकिन इसका मतलब यह नहीं है कि आप ऐसा नहीं कर सकते, इसमें बस कुछ और कोड शामिल होंगे।
फिर से, मैं MongoDB से परिचित नहीं हूँ लेकिन http के अनुसार ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ जेनरेट किए गए प्रश्नों को लॉग करने के लिए अंतर्निहित समर्थन है। अब, हमें इसे केवल एप्लिकेशन इनसाइट्स से जोड़ने की आवश्यकता है।
चूंकि आप पहले से ही जानते हैं कि 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
. के विपरीत घटना आपको शायद वहां निर्भरता को ट्रैक करना चाहिए क्योंकि तब आपको खर्च किए गए समय की गणना (या पढ़ने में आसान) करने में सक्षम होना चाहिए और शायद सफलता संकेतक के लिए वास्तविक मूल्य प्राप्त करना चाहिए।