मेरे पास सी # में लिखा गया एक कंसोल एप्लिकेशन प्रोजेक्ट है जिसे मैंने निम्नलिखित NuGet पैकेजों के साथ एप्लिकेशन अंतर्दृष्टि जोड़ दी है।कंसोल एप्लिकेशन से मोंगो डीबी अनुरोधों को ट्रैक करने के लिए कैसे करें
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Agent.Intercept
Microsoft.ApplicationInsights.DependencyCollector
Microsoft.ApplicationInsights.NLogTarget
Microsoft.ApplicationInsights.PerfCounterCollector
Microsoft.ApplicationInsights.Web
Microsoft.ApplicationInsights.WindowsServer
Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel
मैं कॉन्फ़िग फ़ाइल में मेरी InstrumentationKey कॉन्फ़िगर कर दिया है और मैं निम्नलिखित कोड का उपयोग कर के साथ स्टार्टअप पर TelemetryClient ऊपर फायरिंग कर रहा हूँ:
var telemetryClient = new TelemetryClient();
telemetryClient.Context.User.Id = Environment.UserName;
telemetryClient.Context.Session.Id = Guid.NewGuid().ToString();
telemetryClient.Context.Device.OperatingSystem = Environment.OSVersion.ToString();
सब कुछ छोड़कर ऐ अच्छी तरह से काम कर रहा है पर कब्जा नहीं कर रहा है मोंगो को भेजे गए कोई भी अनुरोध, मैं 'एप्लिकेशन मैप' में SQL सर्वर पर जाने वाले अनुरोध देख सकता हूं लेकिन किसी अन्य बाहरी अनुरोध का कोई संकेत नहीं। क्या कोई तरीका है कि मैं मोंगो को किए गए अनुरोधों की टेलीमेट्री देख सकता हूं?
संपादित करें - धन्यवाद पीटर Bons के लिए मैं काफी जिसके बाद एक आकर्षण की तरह काम करता है और मुझे सफलता और विफलता के बीच अंतर करने की अनुमति देता है के साथ समाप्त हो गया:
var telemetryClient = new TelemetryClient();
var connectionString = connectionStringSettings.ConnectionString;
var mongoUrl = new MongoUrl(connectionString);
var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl);
mongoClientSettings.ClusterConfigurator = clusterConfigurator =>
{
clusterConfigurator.Subscribe<CommandSucceededEvent>(e =>
{
telemetryClient.TrackDependency("MongoDB", e.CommandName, DateTime.Now.Subtract(e.Duration), e.Duration, true);
});
clusterConfigurator.Subscribe<CommandFailedEvent>(e =>
{
telemetryClient.TrackDependency("MongoDB", $"{e.CommandName} - {e.ToString()}", DateTime.Now.Subtract(e.Duration), e.Duration, false);
});
};
var mongoClient = new MongoClient(mongoClientSettings);
और फिर यदि आप ऐसा करते हैं ... तो शायद आपको इसके लिए एक जिथब रेपो बनाना चाहिए और इसे दुनिया के साथ साझा करना चाहिए? :) –
ग्रेट उत्तर पीटर, यह वास्तव में ऐसी चीज नहीं है जो गिटहब में काम करती है लेकिन मैं शायद जो कुछ कर रहा हूं उस पर एक ब्लॉग पोस्ट डाल दूंगा और मैंने कोड को जोड़ा है जो मैंने अपने प्रश्न के साथ समाप्त किया है । –
थोड़ा देर हो चुकी है, मुझे पता है लेकिन मैं उस ब्लॉग पोस्ट को लिखने के लिए चारों ओर मिल गया था: https://sequence7.net/2017/02/09/monitoring-mongodb-with-plication-insights/ –