mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2024-09-20 07:16:18 +08:00
Do not hardcode logger id (fixes #348)
Some checks failed
trivy / Check (push) Failing after -7m51s
Some checks failed
trivy / Check (push) Failing after -7m51s
This commit is contained in:
parent
79297c37b0
commit
7b2941518a
|
@ -121,6 +121,7 @@ pub struct Tracers {
|
||||||
pub struct Metrics {
|
pub struct Metrics {
|
||||||
pub prometheus: Option<PrometheusMetrics>,
|
pub prometheus: Option<PrometheusMetrics>,
|
||||||
pub otel: Option<Arc<OtelMetrics>>,
|
pub otel: Option<Arc<OtelMetrics>>,
|
||||||
|
pub log_path: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
|
@ -485,7 +486,7 @@ impl Tracers {
|
||||||
EventType::Telemetry(TelemetryEvent::LogError).into()
|
EventType::Telemetry(TelemetryEvent::LogError).into()
|
||||||
}
|
}
|
||||||
TelemetrySubscriberType::OtelTracer(_) => {
|
TelemetrySubscriberType::OtelTracer(_) => {
|
||||||
EventType::Telemetry(TelemetryEvent::OtelExpoterError).into()
|
EventType::Telemetry(TelemetryEvent::OtelExporterError).into()
|
||||||
}
|
}
|
||||||
TelemetrySubscriberType::Webhook(_) => {
|
TelemetrySubscriberType::Webhook(_) => {
|
||||||
EventType::Telemetry(TelemetryEvent::WebhookError).into()
|
EventType::Telemetry(TelemetryEvent::WebhookError).into()
|
||||||
|
@ -607,8 +608,30 @@ impl Metrics {
|
||||||
let mut metrics = Metrics {
|
let mut metrics = Metrics {
|
||||||
prometheus: None,
|
prometheus: None,
|
||||||
otel: 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
|
if config
|
||||||
.property_or_default("metrics.prometheus.enable", "false")
|
.property_or_default("metrics.prometheus.enable", "false")
|
||||||
.unwrap_or(false)
|
.unwrap_or(false)
|
||||||
|
|
|
@ -62,9 +62,9 @@ impl Core {
|
||||||
metrics.push(metric);
|
metrics.push(metric);
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEncoder::new()
|
TextEncoder::new().encode_to_string(&metrics).map_err(|e| {
|
||||||
.encode_to_string(&metrics)
|
trc::EventType::Telemetry(trc::TelemetryEvent::OtelExporterError).reason(e)
|
||||||
.map_err(|e| trc::EventType::Telemetry(trc::TelemetryEvent::OtelExpoterError).reason(e))
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
trc::event!(
|
trc::event!(
|
||||||
Telemetry(TelemetryEvent::OtelExpoterError),
|
Telemetry(TelemetryEvent::OtelExporterError),
|
||||||
Details = "Failed to export spans",
|
Details = "Failed to export spans",
|
||||||
Reason = err.to_string()
|
Reason = err.to_string()
|
||||||
);
|
);
|
||||||
|
@ -103,7 +103,7 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
trc::event!(
|
trc::event!(
|
||||||
Telemetry(TelemetryEvent::OtelExpoterError),
|
Telemetry(TelemetryEvent::OtelExporterError),
|
||||||
Details = "Failed to export logs",
|
Details = "Failed to export logs",
|
||||||
Reason = err.to_string()
|
Reason = err.to_string()
|
||||||
);
|
);
|
||||||
|
|
|
@ -26,13 +26,11 @@ struct LogEntry {
|
||||||
|
|
||||||
impl JMAP {
|
impl JMAP {
|
||||||
pub async fn handle_view_logs(&self, req: &HttpRequest) -> trc::Result<HttpResponse> {
|
pub async fn handle_view_logs(&self, req: &HttpRequest) -> trc::Result<HttpResponse> {
|
||||||
// Obtain log file path
|
|
||||||
let path = self
|
let path = self
|
||||||
.core
|
.core
|
||||||
.storage
|
.metrics
|
||||||
.config
|
.log_path
|
||||||
.get("tracer.log.path")
|
.clone()
|
||||||
.await?
|
|
||||||
.ok_or_else(|| manage::unsupported("Tracer log path not configured"))?;
|
.ok_or_else(|| manage::unsupported("Tracer log path not configured"))?;
|
||||||
|
|
||||||
let params = UrlParams::new(req.uri().query());
|
let params = UrlParams::new(req.uri().query());
|
||||||
|
|
|
@ -90,7 +90,7 @@ impl JMAP {
|
||||||
// Enforce anonymous rate limit
|
// Enforce anonymous rate limit
|
||||||
self.is_anonymous_allowed(&session.remote_ip).await?;
|
self.is_anonymous_allowed(&session.remote_ip).await?;
|
||||||
|
|
||||||
Err(trc::AuthEvent::Error
|
Err(trc::AuthEvent::Failed
|
||||||
.into_err()
|
.into_err()
|
||||||
.details("Missing Authorization header.")
|
.details("Missing Authorization header.")
|
||||||
.caused_by(trc::location!()))
|
.caused_by(trc::location!()))
|
||||||
|
|
|
@ -585,7 +585,7 @@ impl TelemetryEvent {
|
||||||
TelemetryEvent::LogError => "Log collector error",
|
TelemetryEvent::LogError => "Log collector error",
|
||||||
TelemetryEvent::WebhookError => "Webhook collector error",
|
TelemetryEvent::WebhookError => "Webhook collector error",
|
||||||
TelemetryEvent::JournalError => "Journal collector error",
|
TelemetryEvent::JournalError => "Journal collector error",
|
||||||
TelemetryEvent::OtelExpoterError => "OpenTelemetry exporter error",
|
TelemetryEvent::OtelExporterError => "OpenTelemetry exporter error",
|
||||||
TelemetryEvent::OtelMetricsExporterError => "OpenTelemetry metrics exporter error",
|
TelemetryEvent::OtelMetricsExporterError => "OpenTelemetry metrics exporter error",
|
||||||
TelemetryEvent::PrometheusExporterError => "Prometheus exporter error",
|
TelemetryEvent::PrometheusExporterError => "Prometheus exporter error",
|
||||||
}
|
}
|
||||||
|
|
|
@ -664,7 +664,7 @@ impl EventType {
|
||||||
EventType::Telemetry(
|
EventType::Telemetry(
|
||||||
TelemetryEvent::LogError
|
TelemetryEvent::LogError
|
||||||
| TelemetryEvent::WebhookError
|
| TelemetryEvent::WebhookError
|
||||||
| TelemetryEvent::OtelExpoterError
|
| TelemetryEvent::OtelExporterError
|
||||||
| TelemetryEvent::OtelMetricsExporterError
|
| TelemetryEvent::OtelMetricsExporterError
|
||||||
| TelemetryEvent::PrometheusExporterError
|
| TelemetryEvent::PrometheusExporterError
|
||||||
| TelemetryEvent::JournalError,
|
| TelemetryEvent::JournalError,
|
||||||
|
|
|
@ -655,7 +655,7 @@ pub enum ServerEvent {
|
||||||
pub enum TelemetryEvent {
|
pub enum TelemetryEvent {
|
||||||
LogError,
|
LogError,
|
||||||
WebhookError,
|
WebhookError,
|
||||||
OtelExpoterError,
|
OtelExporterError,
|
||||||
OtelMetricsExporterError,
|
OtelMetricsExporterError,
|
||||||
PrometheusExporterError,
|
PrometheusExporterError,
|
||||||
JournalError,
|
JournalError,
|
||||||
|
|
|
@ -842,7 +842,7 @@ impl EventType {
|
||||||
EventType::Store(StoreEvent::UnexpectedError) => 533,
|
EventType::Store(StoreEvent::UnexpectedError) => 533,
|
||||||
EventType::Telemetry(TelemetryEvent::JournalError) => 534,
|
EventType::Telemetry(TelemetryEvent::JournalError) => 534,
|
||||||
EventType::Telemetry(TelemetryEvent::LogError) => 535,
|
EventType::Telemetry(TelemetryEvent::LogError) => 535,
|
||||||
EventType::Telemetry(TelemetryEvent::OtelExpoterError) => 536,
|
EventType::Telemetry(TelemetryEvent::OtelExporterError) => 536,
|
||||||
EventType::Telemetry(TelemetryEvent::OtelMetricsExporterError) => 537,
|
EventType::Telemetry(TelemetryEvent::OtelMetricsExporterError) => 537,
|
||||||
EventType::Telemetry(TelemetryEvent::PrometheusExporterError) => 538,
|
EventType::Telemetry(TelemetryEvent::PrometheusExporterError) => 538,
|
||||||
EventType::Telemetry(TelemetryEvent::WebhookError) => 539,
|
EventType::Telemetry(TelemetryEvent::WebhookError) => 539,
|
||||||
|
@ -1431,7 +1431,7 @@ impl EventType {
|
||||||
533 => Some(EventType::Store(StoreEvent::UnexpectedError)),
|
533 => Some(EventType::Store(StoreEvent::UnexpectedError)),
|
||||||
534 => Some(EventType::Telemetry(TelemetryEvent::JournalError)),
|
534 => Some(EventType::Telemetry(TelemetryEvent::JournalError)),
|
||||||
535 => Some(EventType::Telemetry(TelemetryEvent::LogError)),
|
535 => Some(EventType::Telemetry(TelemetryEvent::LogError)),
|
||||||
536 => Some(EventType::Telemetry(TelemetryEvent::OtelExpoterError)),
|
536 => Some(EventType::Telemetry(TelemetryEvent::OtelExporterError)),
|
||||||
537 => Some(EventType::Telemetry(
|
537 => Some(EventType::Telemetry(
|
||||||
TelemetryEvent::OtelMetricsExporterError,
|
TelemetryEvent::OtelMetricsExporterError,
|
||||||
)),
|
)),
|
||||||
|
|
Loading…
Reference in a new issue