1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-08-07 17:03:01 +03:00

Always initialize a metric reader to avoid crashes

Fix #1552
This commit is contained in:
Quentin Gliech
2023-09-14 14:21:31 +02:00
parent ff66f052a0
commit f29e4adcfa

View File

@@ -27,7 +27,7 @@ use opentelemetry::{
self, self,
metrics::{ metrics::{
reader::{DefaultAggregationSelector, DefaultTemporalitySelector}, reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
MeterProvider, PeriodicReader, ManualReader, MeterProvider, PeriodicReader,
}, },
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator}, propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
trace::{Sampler, Tracer, TracerProvider}, trace::{Sampler, Tracer, TracerProvider},
@@ -289,19 +289,15 @@ fn prometheus_metric_reader() -> anyhow::Result<PrometheusExporter> {
} }
fn init_meter(config: &MetricsExporterConfig) -> anyhow::Result<()> { fn init_meter(config: &MetricsExporterConfig) -> anyhow::Result<()> {
let mut meter_provider_builder = MeterProvider::builder(); let meter_provider_builder = MeterProvider::builder();
match config { let meter_provider_builder = match config {
MetricsExporterConfig::None => {} MetricsExporterConfig::None => meter_provider_builder.with_reader(ManualReader::default()),
MetricsExporterConfig::Stdout => { MetricsExporterConfig::Stdout => meter_provider_builder.with_reader(stdout_metric_reader()),
meter_provider_builder = meter_provider_builder.with_reader(stdout_metric_reader());
}
MetricsExporterConfig::Otlp { endpoint } => { MetricsExporterConfig::Otlp { endpoint } => {
meter_provider_builder = meter_provider_builder.with_reader(otlp_metric_reader(endpoint.as_ref())?)
meter_provider_builder.with_reader(otlp_metric_reader(endpoint.as_ref())?);
} }
MetricsExporterConfig::Prometheus => { MetricsExporterConfig::Prometheus => {
meter_provider_builder = meter_provider_builder.with_reader(prometheus_metric_reader()?)
meter_provider_builder.with_reader(prometheus_metric_reader()?);
} }
}; };