Não estou familiarizado com o MongoDB, mas até onde sei, não há suporte padrão para ele quando se trata de Application Insights. Mas isso não significa que você não possa fazer isso, apenas envolverá mais código.
Novamente, não estou familiarizado com o MongoDB, mas de acordo com http ://www.mattburkedev.com/logging-queries-from-mongodb-c-number-driver/ há suporte interno para registrar as consultas geradas. Agora, só precisamos conectar isso ao Application Insights.
Como você já sabe como usar o
TelemetryClient
podemos usar os métodos de rastreamento personalizados fornecidos por essa classe. Consulte https:// docs.microsoft.com/nl-nl/azure/application-insights/app-insights-api-custom-events-metrics
para os métodos de rastreamento personalizados disponíveis. Tudo que você precisa fazer é inserir algum código como este:
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
A classe
telemetryClient
é thread-safe para que você possa reutilizá-lo. Agora, de acordo com a postagem do blog referenciada, você deve ser capaz de fazer algo assim:
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
});
}
});
Novamente, não estou familiarizado com o MongoDB, mas espero que este seja um ponto de partida para sua imaginação sobre como adaptá-lo às suas necessidades usando seu conhecimento do MongoDB.
EDITAR:
Se também houver um
CommandCompletedEvent
ou evento semelhante em oposição ao CommandStartedEvent
evento, você provavelmente deve rastrear a dependência lá porque você deve poder calcular (ou simplesmente ler) o tempo gasto e talvez obter o valor real do indicador de sucesso.