Skip to content

Commit 6c00e6e

Browse files
committed
Replace 100 with MaxMetrics. Refactor
1 parent aa7b447 commit 6c00e6e

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

libraries/src/AWS.Lambda.Powertools.Metrics/Metrics.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,13 @@ void IMetrics.AddMetric(string key, double value, MetricUnit unit, MetricResolut
9797
throw new ArgumentException(
9898
"'AddMetric' method requires a valid metrics value. Value must be >= 0.");
9999
}
100+
101+
var metricDefinitions = _context.GetMetrics();
100102

101-
if (_context.GetMetrics().Count > 0 &&
102-
(_context.GetMetrics().Count == PowertoolsConfigurations.MaxMetrics ||
103-
_context.GetMetrics().FirstOrDefault(x => x.Name == key)
104-
?.Values.Count == PowertoolsConfigurations.MaxMetrics))
103+
if (metricDefinitions.Count > 0 &&
104+
(metricDefinitions.Count == PowertoolsConfigurations.MaxMetrics ||
105+
metricDefinitions.FirstOrDefault(x => x.Name == key)
106+
?.Values.Count == PowertoolsConfigurations.MaxMetrics))
105107
{
106108
_instance.Flush(true);
107109
}

libraries/src/AWS.Lambda.Powertools.Metrics/Model/MetricDirective.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public void AddMetric(string name, double value, MetricUnit unit, MetricResoluti
153153
metric.AddValue(value);
154154
else
155155
throw new ArgumentOutOfRangeException(nameof(metric),
156-
"Cannot add more than 100 metric data points at the same time.");
156+
$"Cannot add more than {PowertoolsConfigurations.MaxMetrics} metric data points at the same time.");
157157
}
158158
else
159159
Metrics.Add(new MetricDefinition(name, unit, value, metricResolution));
@@ -162,7 +162,7 @@ public void AddMetric(string name, double value, MetricUnit unit, MetricResoluti
162162
else
163163
{
164164
throw new ArgumentOutOfRangeException(nameof(Metrics),
165-
"Cannot add more than 100 metrics at the same time.");
165+
$"Cannot add more than {PowertoolsConfigurations.MaxMetrics} metrics at the same time.");
166166
}
167167
}
168168

libraries/tests/AWS.Lambda.Powertools.Metrics.Tests/EMFValidationTests.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public void WhenCaptureColdStartEnabled_ValidateExists()
112112

113113
[Trait("Category", "EMFLimits")]
114114
[Fact]
115-
public void When100MetricsAreAdded_FlushAutomatically()
115+
public void WhenMaxMetricsAreAdded_FlushAutomatically()
116116
{
117117
// Arrange
118118
var methodName = Guid.NewGuid().ToString();
@@ -137,13 +137,13 @@ public void When100MetricsAreAdded_FlushAutomatically()
137137
// Act
138138
handler.OnEntry(eventArgs);
139139

140-
for (var i = 0; i <= 100; i++)
140+
for (var i = 0; i <= PowertoolsConfigurations.MaxMetrics; i++)
141141
{
142142
Metrics.AddMetric($"Metric Name {i + 1}", i, MetricUnit.Count);
143143

144-
if (i == 100)
144+
if (i == PowertoolsConfigurations.MaxMetrics)
145145
{
146-
// flush when it reaches 100 items
146+
// flush when it reaches MaxMetrics
147147
Assert.Contains("{\"Namespace\":\"dotnet-powertools-test\",\"Metrics\":[{\"Name\":\"Metric Name 1\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 2\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 3\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 4\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 5\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 6\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 7\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 8\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 9\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 10\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 11\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 12\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 13\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 14\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 15\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 16\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 17\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 18\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 19\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 20\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 21\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 22\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 23\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 24\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 25\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 26\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 27\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 28\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 29\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 30\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 31\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 32\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 33\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 34\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 35\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 36\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 37\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 38\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 39\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 40\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 41\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 42\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 43\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 44\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 45\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 46\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 47\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 48\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 49\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 50\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 51\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 52\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 53\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 54\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 55\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 56\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 57\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 58\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 59\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 60\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 61\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 62\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 63\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 64\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 65\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 66\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 67\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 68\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 69\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 70\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 71\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 72\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 73\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 74\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 75\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 76\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 77\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 78\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 79\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 80\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 81\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 82\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 83\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 84\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 85\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 86\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 87\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 88\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 89\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 90\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 91\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 92\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 93\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 94\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 95\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 96\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 97\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 98\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 99\",\"Unit\":\"Count\"},{\"Name\":\"Metric Name 100\",\"Unit\":\"Count\"}],\"Dimensions\":[[\"Service\"]]", consoleOut.ToString());
148148
}
149149
}
@@ -152,7 +152,7 @@ public void When100MetricsAreAdded_FlushAutomatically()
152152
var metricsOutput = consoleOut.ToString();
153153

154154
// Assert
155-
// flush the 101 item only
155+
// flush the (MaxMetrics + 1) item only
156156
Assert.Contains("{\"Namespace\":\"dotnet-powertools-test\",\"Metrics\":[{\"Name\":\"Metric Name 101\",\"Unit\":\"Count\"}],\"Dimensions\":[[\"Service\"]", metricsOutput);
157157

158158
// Reset
@@ -161,7 +161,7 @@ public void When100MetricsAreAdded_FlushAutomatically()
161161

162162
[Trait("Category", "EMFLimits")]
163163
[Fact]
164-
public void When100DataPointsAreAddedToTheSameMetric_FlushAutomatically()
164+
public void WhenMaxDataPointsAreAddedToTheSameMetric_FlushAutomatically()
165165
{
166166
// Arrange
167167
var methodName = Guid.NewGuid().ToString();
@@ -186,12 +186,12 @@ public void When100DataPointsAreAddedToTheSameMetric_FlushAutomatically()
186186
// Act
187187
handler.OnEntry(eventArgs);
188188

189-
for (var i = 0; i <= 100; i++)
189+
for (var i = 0; i <= PowertoolsConfigurations.MaxMetrics; i++)
190190
{
191191
Metrics.AddMetric($"Metric Name", i, MetricUnit.Count);
192-
if(i == 100)
192+
if(i == PowertoolsConfigurations.MaxMetrics)
193193
{
194-
// flush when it reaches 100 items
194+
// flush when it reaches MaxMetrics
195195
Assert.Contains(
196196
"\"Service\":\"testService\",\"Metric Name\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]}",
197197
consoleOut.ToString());
@@ -203,7 +203,7 @@ public void When100DataPointsAreAddedToTheSameMetric_FlushAutomatically()
203203
var metricsOutput = consoleOut.ToString();
204204

205205
// Assert
206-
// flush the 101 item only
206+
// flush the (MaxMetrics + 1) item only
207207
Assert.Contains("[[\"Service\"]]}]},\"Service\":\"testService\",\"Metric Name\":100}", metricsOutput);
208208

209209
// Reset

0 commit comments

Comments
 (0)