MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak śledzić żądania MongoDB z aplikacji konsolowej

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Włącz rozszerzenie mongo PHP w witrynach Microsoft Azure

  2. Konwersja BSON do JSON przy użyciu MongoDB Driver Java API

  3. Jak zdeserializować obiekt BsonDocument z powrotem do klasy?

  4. Kolekcja MongoDB runCommand z PHP

  5. Najlepsze oprogramowanie pośredniczące do przechowywania sesji dla Express + MongoDB