@@ -25,13 +25,13 @@ namespace AWS.Lambda.Powertools.Metrics;
25
25
/// Implements the <see cref="IMetrics" />
26
26
/// </summary>
27
27
/// <seealso cref="IMetrics" />
28
- public class Metrics : IMetrics
28
+ public class Metrics : IMetrics , IDisposable
29
29
{
30
30
/// <summary>
31
31
/// The instance
32
32
/// </summary>
33
33
private static IMetrics _instance ;
34
-
34
+
35
35
/// <summary>
36
36
/// The context
37
37
/// </summary>
@@ -177,19 +177,19 @@ void IMetrics.AddMetadata(string key, object value)
177
177
/// <summary>
178
178
/// Implements interface that sets default dimension list
179
179
/// </summary>
180
- /// <param name="defaultDimensions ">Default Dimension List</param>
180
+ /// <param name="defaultDimension ">Default Dimension List</param>
181
181
/// <exception cref="System.ArgumentNullException">
182
182
/// 'SetDefaultDimensions' method requires a valid key pair. 'Null' or empty
183
183
/// values are not allowed.
184
184
/// </exception>
185
- void IMetrics . SetDefaultDimensions ( Dictionary < string , string > defaultDimensions )
185
+ void IMetrics . SetDefaultDimensions ( Dictionary < string , string > defaultDimension )
186
186
{
187
- foreach ( var item in defaultDimensions )
187
+ foreach ( var item in defaultDimension )
188
188
if ( string . IsNullOrWhiteSpace ( item . Key ) || string . IsNullOrWhiteSpace ( item . Value ) )
189
189
throw new ArgumentNullException (
190
190
$ "'SetDefaultDimensions' method requires a valid key pair. 'Null' or empty values are not allowed.") ;
191
191
192
- _context . SetDefaultDimensions ( DictionaryToList ( defaultDimensions ) ) ;
192
+ _context . SetDefaultDimensions ( DictionaryToList ( defaultDimension ) ) ;
193
193
}
194
194
195
195
/// <summary>
@@ -272,7 +272,21 @@ void IMetrics.PushSingleMetric(string metricName, double value, MetricUnit unit,
272
272
/// </summary>
273
273
public void Dispose ( )
274
274
{
275
- _instance . Flush ( ) ;
275
+ Dispose ( true ) ;
276
+ GC . SuppressFinalize ( this ) ;
277
+ }
278
+
279
+ /// <summary>
280
+ ///
281
+ /// </summary>
282
+ /// <param name="disposing"></param>
283
+ protected virtual void Dispose ( bool disposing )
284
+ {
285
+ // Cleanup
286
+ if ( disposing )
287
+ {
288
+ _instance . Flush ( ) ;
289
+ }
276
290
}
277
291
278
292
/// <summary>
0 commit comments