Мы используем Cosmos db в нашем API-интерфейсе ASP Net Core и поняли, что не видим рекламируемой низкой задержки при чтении точек. Для чтения точек стабильно около 20-25 мс. Я смотрю на информацию о космическом ресурсе.
Соглашение об уровне обслуживания гласит, что мы должны увидеть
Кто мы? отсутствует?
Вот пример нашего кода, который дает такие результаты:
using Azure.Monitor.OpenTelemetry.AspNetCore;
using Microsoft.Azure.Cosmos;
using System.Diagnostics;
namespace CosmosTest
{
public class Program
{
static string? _dbId;
static string? _containerId;
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton(serviceProvider =>
{
var configuration = serviceProvider.GetRequiredService();
_dbId = configuration["CosmosDB:DatabaseId"];
_containerId = configuration["CosmosDB:ContainerId"];
var cosmosClientOptions = new CosmosClientOptions
{
SerializerOptions = new CosmosSerializationOptions
{
PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase
},
ConnectionMode = ConnectionMode.Direct,
AllowBulkExecution = false,
};
var connectionString = configuration.GetConnectionString("Cosmos");
return new CosmosClient(connectionString);
});
builder.Services.AddOpenTelemetry().WithTracing(tracerProviderBuilder =>
{
tracerProviderBuilder.AddSource("Azure.Cosmos.Operation");
}).UseAzureMonitor();
builder.Services.AddApplicationInsightsTelemetry();
builder.Logging.AddApplicationInsights();
var app = builder.Build();
app.MapGet("/{partitionKey}/{id}", async (Guid id, Guid partitionKey, CosmosClient cosmosClient, ILogger logger) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var startTime = Stopwatch.GetTimestamp();
var itemResponse = await container.ReadItemAsync(id.ToString(), new PartitionKey(partitionKey.ToString()));
var elapsed = Stopwatch.GetElapsedTime(startTime);
logger.LogInformation("Read item {id} from container {container} in {elapsed} ms", id, _containerId, elapsed);
return Results.Ok(itemResponse.Resource);
});
app.MapGet("/{partitionKey}", async (Guid partitionKey, CosmosClient cosmosClient) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var query = new QueryDefinition("SELECT * FROM c WHERE c.productBlueprintId = @productBlueprintId")
.WithParameter("@productBlueprintId", partitionKey);
var iterator = container.GetItemQueryIterator(query);
var results = new List();
while (iterator.HasMoreResults)
{
var response = await iterator.ReadNextAsync();
results.AddRange(response.ToList());
}
return Results.Ok(results);
});
app.MapPost("/", async (Product product, CosmosClient cosmosClient) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var response = await container.CreateItemAsync(product, new PartitionKey(product.productBlueprintId.ToString()));
return;
});
app.UseDeveloperExceptionPage();
app.Run();
}
}
public record Product(string id, Guid productBlueprintId, string Name, Guid OwnerId, DateTime createdUtc, Guid createdBy);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -documents
Задержка чтения точки Cosmos db превышает 20 мс для документов размером 1 RU. ⇐ C#
Место общения программистов C#
1733745988
Anonymous
Мы используем Cosmos db в нашем API-интерфейсе ASP Net Core и поняли, что не видим рекламируемой низкой задержки при чтении точек. Для чтения точек стабильно около 20-25 мс. Я смотрю на информацию о космическом ресурсе.
Соглашение об уровне обслуживания гласит, что мы должны увидеть
Кто мы? отсутствует?
Вот пример нашего кода, который дает такие результаты:
using Azure.Monitor.OpenTelemetry.AspNetCore;
using Microsoft.Azure.Cosmos;
using System.Diagnostics;
namespace CosmosTest
{
public class Program
{
static string? _dbId;
static string? _containerId;
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton(serviceProvider =>
{
var configuration = serviceProvider.GetRequiredService();
_dbId = configuration["CosmosDB:DatabaseId"];
_containerId = configuration["CosmosDB:ContainerId"];
var cosmosClientOptions = new CosmosClientOptions
{
SerializerOptions = new CosmosSerializationOptions
{
PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase
},
ConnectionMode = ConnectionMode.Direct,
AllowBulkExecution = false,
};
var connectionString = configuration.GetConnectionString("Cosmos");
return new CosmosClient(connectionString);
});
builder.Services.AddOpenTelemetry().WithTracing(tracerProviderBuilder =>
{
tracerProviderBuilder.AddSource("Azure.Cosmos.Operation");
}).UseAzureMonitor();
builder.Services.AddApplicationInsightsTelemetry();
builder.Logging.AddApplicationInsights();
var app = builder.Build();
app.MapGet("/{partitionKey}/{id}", async (Guid id, Guid partitionKey, CosmosClient cosmosClient, ILogger logger) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var startTime = Stopwatch.GetTimestamp();
var itemResponse = await container.ReadItemAsync(id.ToString(), new PartitionKey(partitionKey.ToString()));
var elapsed = Stopwatch.GetElapsedTime(startTime);
logger.LogInformation("Read item {id} from container {container} in {elapsed} ms", id, _containerId, elapsed);
return Results.Ok(itemResponse.Resource);
});
app.MapGet("/{partitionKey}", async (Guid partitionKey, CosmosClient cosmosClient) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var query = new QueryDefinition("SELECT * FROM c WHERE c.productBlueprintId = @productBlueprintId")
.WithParameter("@productBlueprintId", partitionKey);
var iterator = container.GetItemQueryIterator(query);
var results = new List();
while (iterator.HasMoreResults)
{
var response = await iterator.ReadNextAsync();
results.AddRange(response.ToList());
}
return Results.Ok(results);
});
app.MapPost("/", async (Product product, CosmosClient cosmosClient) =>
{
var container = cosmosClient.GetContainer(_dbId, _containerId);
var response = await container.CreateItemAsync(product, new PartitionKey(product.productBlueprintId.ToString()));
return;
});
app.UseDeveloperExceptionPage();
app.Run();
}
}
public record Product(string id, Guid productBlueprintId, string Name, Guid OwnerId, DateTime createdUtc, Guid createdBy);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79264411/cosmos-db-point-read-latency-is-above-20-ms-for-1-ru-documents[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия