Как получить единицы запроса Azure Cosmos DB после каждой операции в Entity Framework

Я вижу в журналах/трассировках, что поставщик Entity Framework Cosmos DB отображает единицы запроса после каждой операции. Есть ли простой способ получить этот номер RU программно? Может быть очень полезен при интеграции и тестах производительности, CI/CD-гейтах и ​​т. д. Это должно быть легко, верно? Он находится в заголовке ответа на HttpClient.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете программно получить единицы запроса, использованные в Azure Cosmos DB для каждой операции, с помощью объекта ответа.

// for read requests
double requestUnits = readResponse.RequestCharge;
// for query 
double requestUnits = feadResponse.RequestCharge;

Пожалуйста, просмотрите объектную модель. Подобные API есть и в других языковых SDK. https://learn.microsoft.com/dotnet/api/microsoft.azure.cosmos.response-1?view=azure-dotnet

Мой вопрос заключается в том, как получить RU в ответе Entity Framework (вероятно, что-то вроде `dbContext.Database.Client....``)

Valo 08.02.2023 16:49
Ответ принят как подходящий

Возможно, это не самый простой метод, но из-за отсутствия других ответов я подумал, что его стоит упомянуть.

Вы можете добавить пользовательский HttpClientFactory, используя класс CosmosDbContextOptionsBuilder. Затем пусть ваша фабрика даст вам экземпляр HttpClient с пользовательским DelegatingHandler. В обработчике вы можете переопределить SendAsync и получить ответ, который должен включать плату RU в заголовках, если это применимо.

Другие вопросы по теме