From 0d1cb7ca3f1c371b09668d22563397fbb3687520 Mon Sep 17 00:00:00 2001 From: Anton Volokhov Date: Thu, 2 Sep 2021 00:15:14 +0100 Subject: [PATCH] fix display unit --- Sources/Prometheus/MetricTypes/Summary.swift | 3 ++- Tests/SwiftPrometheusTests/SummaryTests.swift | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/Prometheus/MetricTypes/Summary.swift b/Sources/Prometheus/MetricTypes/Summary.swift index 05e0723..8bfcc58 100644 --- a/Sources/Prometheus/MetricTypes/Summary.swift +++ b/Sources/Prometheus/MetricTypes/Summary.swift @@ -139,7 +139,8 @@ public class PromSummary: P // Updated for SwiftMetrics 2.0 to be unit agnostic if displayUnit is set or default to nanoseconds. private func format(_ v: Double) -> Double { - let displayUnitScale = self.displayUnit?.scaleFromNanoseconds ?? 1 + let displayUnit = lock.withLock { self.displayUnit } + let displayUnitScale = displayUnit?.scaleFromNanoseconds ?? 1 return v / Double(displayUnitScale) } diff --git a/Tests/SwiftPrometheusTests/SummaryTests.swift b/Tests/SwiftPrometheusTests/SummaryTests.swift index 0b6a7b0..bedb116 100644 --- a/Tests/SwiftPrometheusTests/SummaryTests.swift +++ b/Tests/SwiftPrometheusTests/SummaryTests.swift @@ -36,7 +36,8 @@ final class SummaryTests: XCTestCase { func testSummary() { let summary = Timer(label: "my_summary") - + summary.handler.preferDisplayUnit(.nanoseconds) + summary.recordNanoseconds(1) summary.recordNanoseconds(2) summary.recordNanoseconds(4)