【问题标题】:Azure / Cosmos DB is counting requests (RUs) I didn't makeAzure / Cosmos DB 正在计算我没有发出的请求 (RU)
【发布时间】:2018-10-17 10:26:20
【问题描述】:

我正在开发一个简单的 Xamarin 应用程序,它需要连接到 Cosmos DB 用户集合并验证登录信息。

我的应用有两个请求,但 Azure 门户中的活动显示更多。此外,我只在 azure 门户中“插入”了一个文档,以测试连接和一些基本功能

这是怎么回事?

我在 11:00 左右创建了数据库,这是在 12:15 捕获的:

建立连接的代码:

public void Start(string ConnectionString = @"mongodb://secrets"){
//ConnectionString = @"mongodb://192.168.0.111:27017"; // Local test mongodb

MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl(ConnectionString));

settings.SslSettings = new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };

//var mongoClient = new MongoClient(settings);

CosmosClient = new MongoClient(settings);
CosmosDatabase = CosmosClient.GetDatabase("dbname");
CosmosUsersCollection = CosmosDatabase.GetCollection<BsonDocument>("users");
Ready = true;}

登录检查代码:

public async Task<string> LoginAsync(string name, string password){
if (!Ready) { Start(); }
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("nick", name) & builder.Eq("password", password);

string output;

try
{
    var var1 = await CosmosUsersCollection.Find(filter).FirstAsync();

    Console.WriteLine("LOGIN RESPONSE: " + var1);

    output = var1.ToJson();
}
catch (Exception ex)
{
    Console.WriteLine("LOGIN FAILED: " + ex.Message);
    output = ex.Message;
    throw;
}

return output;}

以及我从中读取的数据

{
"_id" : ObjectId(""),
"nick" : "FRANK_1988",
"password" : "password",
"location" : {
    "type" : "Point",
    "coordinates" : [ 
        58.2237183172273, 
        7.98107150169605
    ]
}

【问题讨论】:

  • 虽然您没有显示任何代码,但您的图表几乎没有显示任何 RU 消耗。也许编辑您的问题以显示您正在执行的代码以及您正在保存的数据,这些数据正在访问 Cosmos DB。例如,这可能是索引创建(图表中的“其他”活动)。
  • @DavidMakogon 现在我已经编辑过了。我意识到我应该从一开始就添加代码和数据(只是疏忽)。我没有保存数据,我正在做一个连接并从数据库中读取
  • 如果您转到 Azure 门户中的 Azure Monitor,您可以看到这些“其他”指标的来源。在 Mongo 帐户中,有几个命令分组在该指标中,当您在 Azure Monitor 中查看数据时,它们会详细显示。
  • @MatiasQuaranta 您能否更具体一些,因为我无法找到您所指的详细信息。我刚开始使用 Azure,我知道我必须在不久的将来注册一门课程,以了解这个庞大的平台野兽
  • @FrankR.Haugen 添加了详细信息作为答案

标签: .net azure monitoring azure-cosmosdb


【解决方案1】:

要了解这些请求的详细信息,您可以使用 Azure Monitor。转到 Azure 门户并查找 Monitor 服务:

转到指标

然后按订阅、资源组和名称查找您的资源并选择 Mongo 请求 指标:

最后,对命令名称应用拆分:

现在您应该能够查看每个命令的详细信息以及哪些命令正在生成这些请求。请记住,并非总是 Commands = RU 消耗,有些命令不会产生消耗的 RU(您可以使用 GetLastRequestStatistics 查看命令的消耗 RU。

【讨论】:

  • 非常感谢!虽然这并不能解释为什么会发生这种情况,但它确实帮助我深入了解正在发生的事情。我怀疑我在某个地方有错误,(可能仍然是这种情况),但现在我知道从哪里开始了。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 2020-01-09
相关资源
最近更新 更多