Do not hardcode logger id (fixes #348)
Some checks failed
trivy / Check (push) Failing after -7m51s

This commit is contained in:
mdecimus 2024-08-15 15:06:04 +02:00
parent 79297c37b0
commit 7b2941518a
9 changed files with 38 additions and 17 deletions

View file

@ -121,6 +121,7 @@ pub struct Tracers {
pub struct Metrics {
pub prometheus: Option<PrometheusMetrics>,
pub otel: Option<Arc<OtelMetrics>>,
pub log_path: Option<String>,
}
#[derive(Debug, Clone, Default)]
@ -485,7 +486,7 @@ impl Tracers {
EventType::Telemetry(TelemetryEvent::LogError).into()
}
TelemetrySubscriberType::OtelTracer(_) => {
EventType::Telemetry(TelemetryEvent::OtelExpoterError).into()
EventType::Telemetry(TelemetryEvent::OtelExporterError).into()
}
TelemetrySubscriberType::Webhook(_) => {
EventType::Telemetry(TelemetryEvent::WebhookError).into()
@ -607,8 +608,30 @@ impl Metrics {
let mut metrics = Metrics {
prometheus: None,
otel: None,
log_path: None,
};
// Obtain log path
for tracer_id in config.sub_keys("tracer", ".type") {
if config
.value(("tracer", tracer_id, "enable"))
.unwrap_or("true")
== "true"
&& config
.value(("tracer", tracer_id, "type"))
.unwrap_or_default()
== "log"
{
if let Some(path) = config
.value(("tracer", tracer_id, "path"))
.map(|s| s.to_string())
{
metrics.log_path = Some(path);
break;
}
}
}
if config
.property_or_default("metrics.prometheus.enable", "false")
.unwrap_or(false)

View file

@ -62,9 +62,9 @@ impl Core {
metrics.push(metric);
}
TextEncoder::new()
.encode_to_string(&metrics)
.map_err(|e| trc::EventType::Telemetry(trc::TelemetryEvent::OtelExpoterError).reason(e))
TextEncoder::new().encode_to_string(&metrics).map_err(|e| {
trc::EventType::Telemetry(trc::TelemetryEvent::OtelExporterError).reason(e)
})
}
}

View file

@ -89,7 +89,7 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
.await
{
trc::event!(
Telemetry(TelemetryEvent::OtelExpoterError),
Telemetry(TelemetryEvent::OtelExporterError),
Details = "Failed to export spans",
Reason = err.to_string()
);
@ -103,7 +103,7 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
.await
{
trc::event!(
Telemetry(TelemetryEvent::OtelExpoterError),
Telemetry(TelemetryEvent::OtelExporterError),
Details = "Failed to export logs",
Reason = err.to_string()
);

View file

@ -26,13 +26,11 @@ struct LogEntry {
impl JMAP {
pub async fn handle_view_logs(&self, req: &HttpRequest) -> trc::Result<HttpResponse> {
// Obtain log file path
let path = self
.core
.storage
.config
.get("tracer.log.path")
.await?
.metrics
.log_path
.clone()
.ok_or_else(|| manage::unsupported("Tracer log path not configured"))?;
let params = UrlParams::new(req.uri().query());

View file

@ -90,7 +90,7 @@ impl JMAP {
// Enforce anonymous rate limit
self.is_anonymous_allowed(&session.remote_ip).await?;
Err(trc::AuthEvent::Error
Err(trc::AuthEvent::Failed
.into_err()
.details("Missing Authorization header.")
.caused_by(trc::location!()))

View file

@ -585,7 +585,7 @@ impl TelemetryEvent {
TelemetryEvent::LogError => "Log collector error",
TelemetryEvent::WebhookError => "Webhook collector error",
TelemetryEvent::JournalError => "Journal collector error",
TelemetryEvent::OtelExpoterError => "OpenTelemetry exporter error",
TelemetryEvent::OtelExporterError => "OpenTelemetry exporter error",
TelemetryEvent::OtelMetricsExporterError => "OpenTelemetry metrics exporter error",
TelemetryEvent::PrometheusExporterError => "Prometheus exporter error",
}

View file

@ -664,7 +664,7 @@ impl EventType {
EventType::Telemetry(
TelemetryEvent::LogError
| TelemetryEvent::WebhookError
| TelemetryEvent::OtelExpoterError
| TelemetryEvent::OtelExporterError
| TelemetryEvent::OtelMetricsExporterError
| TelemetryEvent::PrometheusExporterError
| TelemetryEvent::JournalError,

View file

@ -655,7 +655,7 @@ pub enum ServerEvent {
pub enum TelemetryEvent {
LogError,
WebhookError,
OtelExpoterError,
OtelExporterError,
OtelMetricsExporterError,
PrometheusExporterError,
JournalError,

View file

@ -842,7 +842,7 @@ impl EventType {
EventType::Store(StoreEvent::UnexpectedError) => 533,
EventType::Telemetry(TelemetryEvent::JournalError) => 534,
EventType::Telemetry(TelemetryEvent::LogError) => 535,
EventType::Telemetry(TelemetryEvent::OtelExpoterError) => 536,
EventType::Telemetry(TelemetryEvent::OtelExporterError) => 536,
EventType::Telemetry(TelemetryEvent::OtelMetricsExporterError) => 537,
EventType::Telemetry(TelemetryEvent::PrometheusExporterError) => 538,
EventType::Telemetry(TelemetryEvent::WebhookError) => 539,
@ -1431,7 +1431,7 @@ impl EventType {
533 => Some(EventType::Store(StoreEvent::UnexpectedError)),
534 => Some(EventType::Telemetry(TelemetryEvent::JournalError)),
535 => Some(EventType::Telemetry(TelemetryEvent::LogError)),
536 => Some(EventType::Telemetry(TelemetryEvent::OtelExpoterError)),
536 => Some(EventType::Telemetry(TelemetryEvent::OtelExporterError)),
537 => Some(EventType::Telemetry(
TelemetryEvent::OtelMetricsExporterError,
)),