diff --git a/ConfidenceDemoApp/ConfidenceDemoApp/ContentView.swift b/ConfidenceDemoApp/ConfidenceDemoApp/ContentView.swift index cfa931f8..e1f99db4 100644 --- a/ConfidenceDemoApp/ConfidenceDemoApp/ContentView.swift +++ b/ConfidenceDemoApp/ConfidenceDemoApp/ContentView.swift @@ -23,6 +23,8 @@ struct ContentView: View { .padding(10) Text(text.text) Button("Get remote flag value") { + let test = confidence.getEvaluation(key: "swift-demoapp.color", defaultValue: true) + print("\(test)") text.text = confidence.getValue(key: "swift-demoapp.color", defaultValue: "ERROR") if text.text == "Green" { color.color = .green diff --git a/Sources/Confidence/Confidence.swift b/Sources/Confidence/Confidence.swift index f63f9d49..a5069082 100644 --- a/Sources/Confidence/Confidence.swift +++ b/Sources/Confidence/Confidence.swift @@ -153,8 +153,7 @@ public class Confidence: ConfidenceEventSender { return self.cache.evaluate( flagName: key, defaultValue: defaultValue, - // TMP - TESTING (force a different context, causing STALE) - context: ["test":ConfidenceValue(null: ())], + context: getContext(), flagApplier: flagApplier ) } diff --git a/Sources/Confidence/Telemetry/TelemetryManager.swift b/Sources/Confidence/Telemetry/TelemetryManager.swift index 49a223d5..1d663ab0 100644 --- a/Sources/Confidence/Telemetry/TelemetryManager.swift +++ b/Sources/Confidence/Telemetry/TelemetryManager.swift @@ -2,21 +2,21 @@ import Foundation protocol TelemetryManager { func incrementStaleAccess() + func incrementFlagTypeMismatch() func getSnapshot() -> TelemetryPayload } class Telemetry: TelemetryManager { private let queue = DispatchQueue(label: "com.confidence.telemetry_manager") private var staleAccessCounter = 0; + private var flagTypeMismatchCounter = 0; public init() {} - static public let shared: TelemetryManager = Telemetry() + static public let shared: TelemetryManager = Telemetry.init() public func getSnapshot() -> TelemetryPayload { - return queue.sync { - TelemetryPayload(staleAccess: getStaleAccessAndReset()) - } + TelemetryPayload(flagMismatch: getFlagTypeMismatch(), staleAccess: getStaleAccessAndReset()) } public func incrementStaleAccess() { @@ -25,6 +25,12 @@ class Telemetry: TelemetryManager { } } + public func incrementFlagTypeMismatch() { + queue.sync { + flagTypeMismatchCounter += 1 + } + } + private func getStaleAccessAndReset() -> Int { return queue.sync { let currentCounter = staleAccessCounter @@ -32,4 +38,12 @@ class Telemetry: TelemetryManager { return currentCounter } } + + private func getFlagTypeMismatch() -> Int { + return queue.sync { + let currentCounter = flagTypeMismatchCounter + flagTypeMismatchCounter = 0; + return currentCounter + } + } } diff --git a/Sources/Confidence/Telemetry/TelemetryPayload.swift b/Sources/Confidence/Telemetry/TelemetryPayload.swift index 66b6c774..66b75244 100644 --- a/Sources/Confidence/Telemetry/TelemetryPayload.swift +++ b/Sources/Confidence/Telemetry/TelemetryPayload.swift @@ -1,5 +1,6 @@ import Foundation struct TelemetryPayload: Encodable { + var flagMismatch = 0 var staleAccess = 0 }