private static void TakeMetricsSnapshot()

in Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo/Trigger/CosmosDBMongoMetricsStore.cs [85:105]


        private static void TakeMetricsSnapshot()
        {
            foreach (var kvp in _currentMetrics)
            {
                var queue = _metricsHistory.GetOrAdd(kvp.Key, _ => new Queue<CosmosDBMongoTriggerMetrics>());
                var snapshot = new CosmosDBMongoTriggerMetrics
                {
                    PendingEventsCount = kvp.Value.PendingEventsCount,
                    Timestamp = DateTime.UtcNow
                };

                lock (queue)
                {
                    queue.Enqueue(snapshot);
                    while (queue.Count > MaxSampleCount)
                    {
                        queue.Dequeue();
                    }
                }
            }
        }