Как интерпретировать эту статистику из CosmosDB? - PullRequest
0 голосов
/ 14 июля 2020

Я впервые настраиваю CosmosDB в своем приложении, и у меня есть процесс, который добавляет данные в контейнер на постоянной основе. Однако моя статистика не складывается. Это график за последний час: all requests in past hour

This shows a total of ~8000 to 9000 total requests every minute. However, also in this chart, the requests with 2xx, 401, 403, 429, 500, 503 responses don't add up to the total. In fact, they don't even come close. I am only seeing requests with 2xx responses, and those are always under 1000 every minute. Where are the other 7000 - 8000 requests coming from? And why don't I see responses for those in the chart?

Here is the same chart, with the "total requests" not showing (but everything else is showing): все запросы кроме всего

Кроме того, при просмотре наших внутренних журналов общее количество отправляемых нами запросов совпадает с количеством ответов 2xx (менее 1000). Даже если в нашем коде есть ошибка и мы отправляем больше запросов, чем показывают наши журналы, я думаю, что мы сможем сопоставить их с ответами на графике. Просто кажется, что это «призрачные» запросы, идущие ниоткуда. Я ищу некоторое представление о том, как правильно интерпретировать этот график, чтобы выяснить, откуда могут поступать эти запросы.

Я использую optimisti c concurrency для вставки данных, и код для вставки выглядит следующим образом :

        var database = cosmosClient.GetDatabase(databaseId);
        var container = database.GetContainer(containerId);
        var success = false;
        CallIndex callIndex = null;
        string etag = null;
        try
        {
            callIndex = new CallIndex()
            {
                action = index.Action,
                id = index.CallId,
                callTime = index.CallTime,
                direction = index.Direction,
                hasR = index.HasRecording,
                hasV = index.HasVoicemail,
                ownerId = index.OwnerId,
                partitionKey = index.OwnerId,
                result = index.Result
            };
            var task = container.CreateItemAsync(callIndex, partitionKey: new PartitionKey(index.OwnerId), requestOptions: new ItemRequestOptions() { IfMatchEtag = etag }).Result;
        }
        catch (CosmosException de)
        {
            if (de.StatusCode == System.Net.HttpStatusCode.PreconditionFailed)
            {
                do
                {
                    try
                    {
                        var response = container.ReadItemAsync<CallIndex>(index.CallId, new PartitionKey(model.OwnerId)).Result;
                        callIndex = response.Resource;
                        callIndex.action = index.Action;
                        callIndex.callTime = index.CallTime;
                        callIndex.direction = index.Direction;
                        callIndex.hasR = index.HasRecording;
                        callIndex.hasV = index.HasVoicemail;
                        callIndex.ownerId = index.OwnerId;
                        callIndex.result = index.Result;
                        etag = response.ETag;
                        container.ReplaceItemAsync(callIndex, callIndex.id, new PartitionKey(callIndex.partitionKey), new ItemRequestOptions() { IfMatchEtag = etag }).Wait();
                        success = true;
                    }
                    catch (CosmosException de2)
                    {
                        if (de2.StatusCode != System.Net.HttpStatusCode.PreconditionFailed)
                        {
                            throw de2;
                        }
                    }
                    catch (Exception ex2)
                    {
                        throw ex2;
                    }
                } while (!success);
            }
            else
                throw de;
        }
        catch (Exception ex)
        {
            throw ex;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...