9797#![ cfg_attr( test, deny( warnings) ) ]
9898
9999use once_cell:: sync:: { Lazy , OnceCell } ;
100- use opentelemetry:: { otel_error, InstrumentationScope , Key , Value } ;
100+ use opentelemetry:: { otel_error, otel_warn , InstrumentationScope , Key , Value } ;
101101use opentelemetry_sdk:: {
102102 metrics:: {
103103 data:: { self , ResourceMetrics } ,
@@ -165,8 +165,10 @@ impl MetricReader for PrometheusExporter {
165165 self . reader . shutdown ( )
166166 }
167167
168- fn temporality ( & self , kind : InstrumentKind ) -> Temporality {
169- self . reader . temporality ( kind)
168+ /// Note: Prometheus only supports cumulative temporality, so this will always be
169+ /// [Temporality::Cumulative].
170+ fn temporality ( & self , _kind : InstrumentKind ) -> Temporality {
171+ Temporality :: Cumulative
170172 }
171173}
172174
@@ -274,7 +276,7 @@ impl prometheus::core::Collector for Collector {
274276 Ok ( guard) => guard,
275277 Err ( err) => {
276278 otel_error ! (
277- name: "OpenTelemetry error occurred. " ,
279+ name: "OpenTelemetryPrometheus.AcquireLockError " ,
278280 message = err. to_string( ) ,
279281 ) ;
280282 return Vec :: new ( ) ;
@@ -287,7 +289,7 @@ impl prometheus::core::Collector for Collector {
287289 } ;
288290 if let Err ( err) = self . reader . collect ( & mut metrics) {
289291 otel_error ! (
290- name: "OpenTelemetry metrics error occurred. " ,
292+ name: "OpenTelemetryPrometheus.ReaderError " ,
291293 message = err. to_string( ) ,
292294 ) ;
293295 return vec ! [ ] ;
@@ -419,16 +421,18 @@ fn validate_metrics(
419421) -> ( bool , Option < String > ) {
420422 if let Some ( existing) = mfs. get ( name) {
421423 if existing. get_field_type ( ) != metric_type {
422- otel_error ! (
423- name: "OpenTelemetry metrics error occurred." ,
424- message = format!( "Instrument type conflict, using existing type definition. Instrument {name}, Existing: {:?}, dropped: {:?}" , existing. get_field_type( ) , metric_type) . as_str( ) ,
424+ otel_warn ! (
425+ name: "OpenTelemetryPrometheus.MetricValidation" ,
426+ message = "Instrument type conflict, using existing type definition" ,
427+ metric_type = format!( "Instrument {name}, Existing: {:?}, dropped: {:?}" , existing. get_field_type( ) , metric_type) . as_str( ) ,
425428 ) ;
426429 return ( true , None ) ;
427430 }
428431 if existing. get_help ( ) != description {
429- otel_error ! (
430- name: "OpenTelemetry metrics error occurred." ,
431- message = format!( "Instrument description conflict, using existing. Instrument {name}, Existing: {:?}, dropped: {:?}" , existing. get_help( ) . to_string( ) , description. to_string( ) ) . as_str( ) ,
432+ otel_warn ! (
433+ name: "OpenTelemetryPrometheus.MetricValidation" ,
434+ message = "Instrument description conflict, using existing" ,
435+ metric_description = format!( "Instrument {name}, Existing: {:?}, dropped: {:?}" , existing. get_help( ) . to_string( ) , description. to_string( ) ) . as_str( ) ,
432436 ) ;
433437 return ( false , Some ( existing. get_help ( ) . to_string ( ) ) ) ;
434438 }
0 commit comments