Skip to content

Commit c4950a3

Browse files
authored
Rename MetricRecord to ExportRecord (open-telemetry#1367)
1 parent f1db112 commit c4950a3

File tree

11 files changed

+119
-120
lines changed

11 files changed

+119
-120
lines changed

exporter/opentelemetry-exporter-opencensus/src/opentelemetry/exporter/opencensus/metrics_exporter/__init__.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import opentelemetry.exporter.opencensus.util as utils
3030
from opentelemetry.sdk.metrics import Counter, Metric
3131
from opentelemetry.sdk.metrics.export import (
32-
MetricRecord,
32+
ExportRecord,
3333
MetricsExporter,
3434
MetricsExportResult,
3535
)
@@ -79,11 +79,11 @@ def __init__(
7979
self.exporter_start_timestamp.GetCurrentTime()
8080

8181
def export(
82-
self, metric_records: Sequence[MetricRecord]
82+
self, export_records: Sequence[ExportRecord]
8383
) -> MetricsExportResult:
8484
try:
8585
responses = self.client.Export(
86-
self.generate_metrics_requests(metric_records)
86+
self.generate_metrics_requests(export_records)
8787
)
8888

8989
# Read response
@@ -99,7 +99,7 @@ def shutdown(self) -> None:
9999
pass
100100

101101
def generate_metrics_requests(
102-
self, metrics: Sequence[MetricRecord]
102+
self, metrics: Sequence[ExportRecord]
103103
) -> metrics_service_pb2.ExportMetricsServiceRequest:
104104
collector_metrics = translate_to_collector(
105105
metrics, self.exporter_start_timestamp
@@ -112,15 +112,15 @@ def generate_metrics_requests(
112112

113113
# pylint: disable=too-many-branches
114114
def translate_to_collector(
115-
metric_records: Sequence[MetricRecord],
115+
export_records: Sequence[ExportRecord],
116116
exporter_start_timestamp: Timestamp,
117117
) -> Sequence[metrics_pb2.Metric]:
118118
collector_metrics = []
119-
for metric_record in metric_records:
119+
for export_record in export_records:
120120

121121
label_values = []
122122
label_keys = []
123-
for label_tuple in metric_record.labels:
123+
for label_tuple in export_record.labels:
124124
label_keys.append(metrics_pb2.LabelKey(key=label_tuple[0]))
125125
label_values.append(
126126
metrics_pb2.LabelValue(
@@ -130,30 +130,30 @@ def translate_to_collector(
130130
)
131131

132132
metric_descriptor = metrics_pb2.MetricDescriptor(
133-
name=metric_record.instrument.name,
134-
description=metric_record.instrument.description,
135-
unit=metric_record.instrument.unit,
136-
type=get_collector_metric_type(metric_record.instrument),
133+
name=export_record.instrument.name,
134+
description=export_record.instrument.description,
135+
unit=export_record.instrument.unit,
136+
type=get_collector_metric_type(export_record.instrument),
137137
label_keys=label_keys,
138138
)
139139

140140
# If cumulative and stateful, explicitly set the start_timestamp to
141141
# exporter start time.
142-
if metric_record.instrument.meter.processor.stateful:
142+
if export_record.instrument.meter.processor.stateful:
143143
start_timestamp = exporter_start_timestamp
144144
else:
145145
start_timestamp = None
146146

147147
timeseries = metrics_pb2.TimeSeries(
148148
label_values=label_values,
149-
points=[get_collector_point(metric_record)],
149+
points=[get_collector_point(export_record)],
150150
start_timestamp=start_timestamp,
151151
)
152152
collector_metrics.append(
153153
metrics_pb2.Metric(
154154
metric_descriptor=metric_descriptor,
155155
timeseries=[timeseries],
156-
resource=get_resource(metric_record),
156+
resource=get_resource(export_record),
157157
)
158158
)
159159
return collector_metrics
@@ -169,29 +169,29 @@ def get_collector_metric_type(metric: Metric) -> metrics_pb2.MetricDescriptor:
169169
return metrics_pb2.MetricDescriptor.UNSPECIFIED
170170

171171

172-
def get_collector_point(metric_record: MetricRecord) -> metrics_pb2.Point:
172+
def get_collector_point(export_record: ExportRecord) -> metrics_pb2.Point:
173173
# TODO: horrible hack to get original list of keys to then get the bound
174174
# instrument
175175
point = metrics_pb2.Point(
176176
timestamp=utils.proto_timestamp_from_time_ns(
177-
metric_record.aggregator.last_update_timestamp
177+
export_record.aggregator.last_update_timestamp
178178
)
179179
)
180-
if metric_record.instrument.value_type == int:
181-
point.int64_value = metric_record.aggregator.checkpoint
182-
elif metric_record.instrument.value_type == float:
183-
point.double_value = metric_record.aggregator.checkpoint
180+
if export_record.instrument.value_type == int:
181+
point.int64_value = export_record.aggregator.checkpoint
182+
elif export_record.instrument.value_type == float:
183+
point.double_value = export_record.aggregator.checkpoint
184184
else:
185185
raise TypeError(
186186
"Unsupported metric type: {}".format(
187-
metric_record.instrument.value_type
187+
export_record.instrument.value_type
188188
)
189189
)
190190
return point
191191

192192

193-
def get_resource(metric_record: MetricRecord) -> resource_pb2.Resource:
194-
resource_attributes = metric_record.resource.attributes
193+
def get_resource(export_record: ExportRecord) -> resource_pb2.Resource:
194+
resource_attributes = export_record.resource.attributes
195195
return resource_pb2.Resource(
196196
type=infer_oc_resource_type(resource_attributes),
197197
labels={k: str(v) for k, v in resource_attributes.items()},

exporter/opentelemetry-exporter-opencensus/tests/test_otcollector_metrics_exporter.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
get_dict_as_key,
2929
)
3030
from opentelemetry.sdk.metrics.export import (
31-
MetricRecord,
31+
ExportRecord,
3232
MetricsExportResult,
3333
aggregate,
3434
)
@@ -100,7 +100,7 @@ def test_get_collector_point(self):
100100
"testName", "testDescription", "unit", float,
101101
)
102102
result = metrics_exporter.get_collector_point(
103-
MetricRecord(
103+
ExportRecord(
104104
int_counter,
105105
self._key_labels,
106106
aggregator,
@@ -113,7 +113,7 @@ def test_get_collector_point(self):
113113
aggregator.update(123.5)
114114
aggregator.take_checkpoint()
115115
result = metrics_exporter.get_collector_point(
116-
MetricRecord(
116+
ExportRecord(
117117
float_counter,
118118
self._key_labels,
119119
aggregator,
@@ -124,7 +124,7 @@ def test_get_collector_point(self):
124124
self.assertRaises(
125125
TypeError,
126126
metrics_exporter.get_collector_point(
127-
MetricRecord(
127+
ExportRecord(
128128
valuerecorder,
129129
self._key_labels,
130130
aggregator,
@@ -144,7 +144,7 @@ def test_export(self):
144144
test_metric = self._meter.create_counter(
145145
"testname", "testdesc", "unit", int, self._labels.keys(),
146146
)
147-
record = MetricRecord(
147+
record = ExportRecord(
148148
test_metric,
149149
self._key_labels,
150150
aggregate.SumAggregator(),
@@ -173,7 +173,7 @@ def test_translate_to_collector(self):
173173
aggregator = aggregate.SumAggregator()
174174
aggregator.update(123)
175175
aggregator.take_checkpoint()
176-
record = MetricRecord(
176+
record = ExportRecord(
177177
test_metric,
178178
self._key_labels,
179179
aggregator,

exporter/opentelemetry-exporter-otlp/src/opentelemetry/exporter/otlp/metrics_exporter/__init__.py

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
ValueRecorder,
5555
)
5656
from opentelemetry.sdk.metrics.export import (
57-
MetricRecord,
57+
ExportRecord,
5858
MetricsExporter,
5959
MetricsExportResult,
6060
)
@@ -71,47 +71,45 @@
7171

7272

7373
def _get_data_points(
74-
sdk_metric_record: MetricRecord, data_point_class: Type[DataPointT]
74+
export_record: ExportRecord, data_point_class: Type[DataPointT]
7575
) -> List[DataPointT]:
7676

77-
if isinstance(sdk_metric_record.aggregator, SumAggregator):
78-
value = sdk_metric_record.aggregator.checkpoint
77+
if isinstance(export_record.aggregator, SumAggregator):
78+
value = export_record.aggregator.checkpoint
7979

80-
elif isinstance(sdk_metric_record.aggregator, MinMaxSumCountAggregator):
80+
elif isinstance(export_record.aggregator, MinMaxSumCountAggregator):
8181
# FIXME: How are values to be interpreted from this aggregator?
8282
raise Exception("MinMaxSumCount aggregator data not supported")
8383

84-
elif isinstance(sdk_metric_record.aggregator, HistogramAggregator):
84+
elif isinstance(export_record.aggregator, HistogramAggregator):
8585
# FIXME: How are values to be interpreted from this aggregator?
8686
raise Exception("Histogram aggregator data not supported")
8787

88-
elif isinstance(sdk_metric_record.aggregator, LastValueAggregator):
89-
value = sdk_metric_record.aggregator.checkpoint
88+
elif isinstance(export_record.aggregator, LastValueAggregator):
89+
value = export_record.aggregator.checkpoint
9090

91-
elif isinstance(sdk_metric_record.aggregator, ValueObserverAggregator):
92-
value = sdk_metric_record.aggregator.checkpoint.last
91+
elif isinstance(export_record.aggregator, ValueObserverAggregator):
92+
value = export_record.aggregator.checkpoint.last
9393

9494
return [
9595
data_point_class(
9696
labels=[
9797
StringKeyValue(key=str(label_key), value=str(label_value))
98-
for label_key, label_value in sdk_metric_record.labels
98+
for label_key, label_value in export_record.labels
9999
],
100100
value=value,
101101
start_time_unix_nano=(
102-
sdk_metric_record.aggregator.initial_checkpoint_timestamp
103-
),
104-
time_unix_nano=(
105-
sdk_metric_record.aggregator.last_update_timestamp
102+
export_record.aggregator.initial_checkpoint_timestamp
106103
),
104+
time_unix_nano=(export_record.aggregator.last_update_timestamp),
107105
)
108106
]
109107

110108

111109
class OTLPMetricsExporter(
112110
MetricsExporter,
113111
OTLPExporterMixin[
114-
MetricRecord, ExportMetricsServiceRequest, MetricsExportResult
112+
ExportRecord, ExportMetricsServiceRequest, MetricsExportResult
115113
],
116114
):
117115
# pylint: disable=unsubscriptable-object
@@ -162,14 +160,14 @@ def __init__(
162160

163161
# pylint: disable=no-self-use
164162
def _translate_data(
165-
self, data: Sequence[MetricRecord]
163+
self, export_records: Sequence[ExportRecord]
166164
) -> ExportMetricsServiceRequest:
167165
# pylint: disable=too-many-locals,no-member
168166
# pylint: disable=attribute-defined-outside-init
169167

170168
sdk_resource_instrumentation_library_metrics = {}
171169

172-
# The criteria to decide how to translate data is based on this table
170+
# The criteria to decide how to translate export_records is based on this table
173171
# taken directly from OpenTelemetry Proto v0.5.0:
174172

175173
# TODO: Update table after the decision on:
@@ -185,13 +183,13 @@ def _translate_data(
185183
# SumObserver Sum(aggregation_temporality=cumulative;is_monotonic=true)
186184
# UpDownSumObserver Sum(aggregation_temporality=cumulative;is_monotonic=false)
187185
# ValueObserver Gauge()
188-
for sdk_metric_record in data:
186+
for export_record in export_records:
189187

190-
if sdk_metric_record.resource not in (
188+
if export_record.resource not in (
191189
sdk_resource_instrumentation_library_metrics.keys()
192190
):
193191
sdk_resource_instrumentation_library_metrics[
194-
sdk_metric_record.resource
192+
export_record.resource
195193
] = InstrumentationLibraryMetrics()
196194

197195
type_class = {
@@ -210,16 +208,16 @@ def _translate_data(
210208
},
211209
}
212210

213-
value_type = sdk_metric_record.instrument.value_type
211+
value_type = export_record.instrument.value_type
214212

215213
sum_class = type_class[value_type]["sum"]["class"]
216214
gauge_class = type_class[value_type]["gauge"]["class"]
217215
data_point_class = type_class[value_type]["data_point_class"]
218216

219-
if isinstance(sdk_metric_record.instrument, Counter):
217+
if isinstance(export_record.instrument, Counter):
220218
otlp_metric_data = sum_class(
221219
data_points=_get_data_points(
222-
sdk_metric_record, data_point_class
220+
export_record, data_point_class
223221
),
224222
aggregation_temporality=(
225223
AggregationTemporality.AGGREGATION_TEMPORALITY_DELTA
@@ -228,10 +226,10 @@ def _translate_data(
228226
)
229227
argument = type_class[value_type]["sum"]["argument"]
230228

231-
elif isinstance(sdk_metric_record.instrument, UpDownCounter):
229+
elif isinstance(export_record.instrument, UpDownCounter):
232230
otlp_metric_data = sum_class(
233231
data_points=_get_data_points(
234-
sdk_metric_record, data_point_class
232+
export_record, data_point_class
235233
),
236234
aggregation_temporality=(
237235
AggregationTemporality.AGGREGATION_TEMPORALITY_DELTA
@@ -240,14 +238,14 @@ def _translate_data(
240238
)
241239
argument = type_class[value_type]["sum"]["argument"]
242240

243-
elif isinstance(sdk_metric_record.instrument, (ValueRecorder)):
241+
elif isinstance(export_record.instrument, (ValueRecorder)):
244242
logger.warning("Skipping exporting of ValueRecorder metric")
245243
continue
246244

247-
elif isinstance(sdk_metric_record.instrument, SumObserver):
245+
elif isinstance(export_record.instrument, SumObserver):
248246
otlp_metric_data = sum_class(
249247
data_points=_get_data_points(
250-
sdk_metric_record, data_point_class
248+
export_record, data_point_class
251249
),
252250
aggregation_temporality=(
253251
AggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE
@@ -256,10 +254,10 @@ def _translate_data(
256254
)
257255
argument = type_class[value_type]["sum"]["argument"]
258256

259-
elif isinstance(sdk_metric_record.instrument, UpDownSumObserver):
257+
elif isinstance(export_record.instrument, UpDownSumObserver):
260258
otlp_metric_data = sum_class(
261259
data_points=_get_data_points(
262-
sdk_metric_record, data_point_class
260+
export_record, data_point_class
263261
),
264262
aggregation_temporality=(
265263
AggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE
@@ -268,24 +266,22 @@ def _translate_data(
268266
)
269267
argument = type_class[value_type]["sum"]["argument"]
270268

271-
elif isinstance(sdk_metric_record.instrument, (ValueObserver)):
269+
elif isinstance(export_record.instrument, (ValueObserver)):
272270
otlp_metric_data = gauge_class(
273271
data_points=_get_data_points(
274-
sdk_metric_record, data_point_class
272+
export_record, data_point_class
275273
)
276274
)
277275
argument = type_class[value_type]["gauge"]["argument"]
278276

279277
sdk_resource_instrumentation_library_metrics[
280-
sdk_metric_record.resource
278+
export_record.resource
281279
].metrics.append(
282280
OTLPMetric(
283281
**{
284-
"name": sdk_metric_record.instrument.name,
285-
"description": (
286-
sdk_metric_record.instrument.description
287-
),
288-
"unit": sdk_metric_record.instrument.unit,
282+
"name": export_record.instrument.name,
283+
"description": (export_record.instrument.description),
284+
"unit": export_record.instrument.unit,
289285
argument: otlp_metric_data,
290286
}
291287
)
@@ -299,6 +295,6 @@ def _translate_data(
299295
)
300296
)
301297

302-
def export(self, metrics: Sequence[MetricRecord]) -> MetricsExportResult:
298+
def export(self, metrics: Sequence[ExportRecord]) -> MetricsExportResult:
303299
# pylint: disable=arguments-differ
304300
return self._export(metrics)

0 commit comments

Comments
 (0)