Skip to content

Commit 9c6fb5e

Browse files
committed
Address more feedback
1 parent 121d6c6 commit 9c6fb5e

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

sdk/include/opentelemetry/sdk/metrics/state/async_metric_storage.h

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
#include "opentelemetry/nostd/shared_ptr.h"
1111
#include "opentelemetry/sdk/common/attributemap_hash.h"
12+
#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h"
1213
#include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h"
1314

1415
#ifdef ENABLE_METRICS_EXEMPLAR_PREVIEW
@@ -42,13 +43,11 @@ class AsyncMetricStorage : public MetricStorage, public AsyncWritableMetricStora
4243
const AggregationConfig *aggregation_config)
4344
: instrument_descriptor_(instrument_descriptor),
4445
aggregation_type_{aggregation_type},
45-
aggregation_config_{aggregation_config},
46-
cumulative_hash_map_(new AttributesHashMap(aggregation_config
47-
? aggregation_config->cardinality_limit_
48-
: kAggregationCardinalityLimit)),
49-
delta_hash_map_(new AttributesHashMap(aggregation_config
50-
? aggregation_config->cardinality_limit_
51-
: kAggregationCardinalityLimit)),
46+
aggregation_config_{aggregation_config ? aggregation_config : &default_aggregation_config_},
47+
cumulative_hash_map_(
48+
std::make_unique<AttributesHashMap>(aggregation_config_->cardinality_limit_)),
49+
delta_hash_map_(
50+
std::make_unique<AttributesHashMap>(aggregation_config_->cardinality_limit_)),
5251
#ifdef ENABLE_METRICS_EXEMPLAR_PREVIEW
5352
exemplar_filter_type_(exempler_filter_type),
5453
exemplar_reservoir_(exemplar_reservoir),
@@ -129,9 +128,8 @@ class AsyncMetricStorage : public MetricStorage, public AsyncWritableMetricStora
129128
{
130129
std::lock_guard<opentelemetry::common::SpinLockMutex> guard(hashmap_lock_);
131130
delta_metrics = std::move(delta_hash_map_);
132-
delta_hash_map_.reset(new AttributesHashMap(aggregation_config_
133-
? aggregation_config_->cardinality_limit_
134-
: kAggregationCardinalityLimit));
131+
delta_hash_map_ =
132+
std::make_unique<AttributesHashMap>(aggregation_config_->cardinality_limit_);
135133
}
136134

137135
auto status =
@@ -141,6 +139,7 @@ class AsyncMetricStorage : public MetricStorage, public AsyncWritableMetricStora
141139
}
142140

143141
private:
142+
static inline const AggregationConfig default_aggregation_config_{};
144143
InstrumentDescriptor instrument_descriptor_;
145144
AggregationType aggregation_type_;
146145
const AggregationConfig *aggregation_config_;

sdk/include/opentelemetry/sdk/metrics/state/sync_metric_storage.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "opentelemetry/nostd/string_view.h"
1919
#include "opentelemetry/sdk/common/attributemap_hash.h"
2020
#include "opentelemetry/sdk/metrics/aggregation/aggregation.h"
21+
#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h"
2122
#include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h"
2223
#include "opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h"
2324
#include "opentelemetry/sdk/metrics/data/metric_data.h"
@@ -65,10 +66,9 @@ class SyncMetricStorage : public MetricStorage, public SyncWritableMetricStorage
6566
#endif
6667
const AggregationConfig *aggregation_config)
6768
: instrument_descriptor_(instrument_descriptor),
68-
aggregation_config_(aggregation_config),
69-
attributes_hashmap_(std::make_unique<AttributesHashMap>(aggregation_config
70-
? aggregation_config->cardinality_limit_
71-
: kAggregationCardinalityLimit)),
69+
aggregation_config_(aggregation_config ? aggregation_config : &default_aggregation_config_),
70+
attributes_hashmap_(
71+
std::make_unique<AttributesHashMap>(aggregation_config_->cardinality_limit_)),
7272
attributes_processor_(std::move(attributes_processor)),
7373
#ifdef ENABLE_METRICS_EXEMPLAR_PREVIEW
7474
exemplar_filter_type_(exempler_filter_type),
@@ -173,6 +173,7 @@ class SyncMetricStorage : public MetricStorage, public SyncWritableMetricStorage
173173
nostd::function_ref<bool(MetricData)> callback) noexcept override;
174174

175175
private:
176+
static inline const AggregationConfig default_aggregation_config_{};
176177
InstrumentDescriptor instrument_descriptor_;
177178
// hashmap to maintain the metrics for delta collection (i.e, collection since last Collect call)
178179
const AggregationConfig *aggregation_config_;

0 commit comments

Comments
 (0)