Это зависит от нескольких факторов, в том числе от того, какой SDK вы используете.
Если вы используете SDK Cosmos DB по умолчанию, также известный как v2 SDK, то (при условии, что вы включили поддержку Application Insights) Cosmos DB будет регистрировать только журналэто вызовы зависимостей, если вы используете HTTP / HTTPS соединение .Режим TCP не будет зафиксирован Application Insights.Это означает, что вам придется либо использовать HTTPS, что плохо с точки зрения производительности, либо кодировать что-то нестандартное.
Если вы используете Cosmonaut , тогда он выходит из коробки с EventSource общего назначения.который отслеживает каждый вызов как зависимость независимо от типа соединения, а также собирает несколько метрик, таких как RU и многое другое.Вам нужно сослаться на пакет nuget Cosmonaut.ApplicationInsights и инициализировать AppInsightsTelemetryModule
следующим образом:
AppInsightsTelemetryModule.Instance.Initialize(TelemetryConfiguration.Active);
или использовать альтернативу IoC:
services.AddSingleton(AppInsightsTelemetryModule.Instance);
Это позволит вам регистрировать каждое действие с подробными показателями, такими как следующие (включая плату за запрос):
Затем вы можете использовать запрос, подобный этому, чтобы увидеть всплески и дальнейшие исследования, или просто запросить запросы с зависимостями Cosmos, которые превышают пороговое значение.
dependencies
| where type contains "Cosmos" and customDimensions.RequestCharge != ""
| summarize sum(toint(customDimensions.RequestCharge)) by bin(timestamp, 1m)
PS: у вас нетиспользовать CosmosStore
, если вам это не нужно.Использование CosmonautClient
вместо DocumentClient
также будет выполнять регистрацию.