diff --git a/cli/internal/logs/metrics.go b/cli/internal/logs/metrics.go index ce9caad..4caa0f2 100644 --- a/cli/internal/logs/metrics.go +++ b/cli/internal/logs/metrics.go @@ -69,8 +69,11 @@ func CalculateMetrics(logs []TraefikLog) *Metrics { metrics.Status5xx++ } - // Collect durations (convert ns to ms) - durations = append(durations, float64(log.Duration)/1000000) + // Exclude logs with status 0 + if(log.DownstreamStatus != 0) { + // Collect durations (convert ns to ms) + durations = append(durations, float64(log.Duration)/1000000) + } } // Calculate error rate diff --git a/dashboard/lib/services/metric-snapshot-service.ts b/dashboard/lib/services/metric-snapshot-service.ts index eadde9a..1ce49cb 100644 --- a/dashboard/lib/services/metric-snapshot-service.ts +++ b/dashboard/lib/services/metric-snapshot-service.ts @@ -104,7 +104,7 @@ function calculateSnapshotMetrics( } // Response time metrics - const durations = logs.map((l) => l.Duration / 1000000); // Convert to milliseconds + const durations = logs.filter(l=>l.DownstreamStatus!=0).map(l => l.Duration / 1000000); // Convert to milliseconds and exclude logs with status 0 const avgDuration = calculateAverage(durations); const p95Duration = calculatePercentile(durations, 95); const p99Duration = calculatePercentile(durations, 99); diff --git a/dashboard/lib/utils/metric-calculator.ts b/dashboard/lib/utils/metric-calculator.ts index 5f9283c..941a64d 100644 --- a/dashboard/lib/utils/metric-calculator.ts +++ b/dashboard/lib/utils/metric-calculator.ts @@ -13,7 +13,7 @@ export function calculateMetrics(logs: TraefikLog[], geoLocations: GeoLocation[] const perSecond = timeSpan > 0 ? total / timeSpan : 0; // Response time metrics - const durations = logs.map(l => l.Duration / 1000000); // Convert to milliseconds + const durations = logs.filter(l=>l.DownstreamStatus!=0).map(l => l.Duration / 1000000); // Convert to milliseconds and exclude logs with status 0 const avgDuration = calculateAverage(durations); const p95Duration = calculatePercentile(durations, 95); const p99Duration = calculatePercentile(durations, 99);