Operational Diagnostics Reports
Data Freshness Report
Compare a fixed data-age reading with a freshness limit and label the result.
freshness report
Data freshness can be modeled with a scalar age before any clock or upstream feed is introduced.
Data Freshness Report
DataFreshness.kt
Replay: real traced execution (multi-file project)
fun main() {
val ageMinutes = 18
val maxAge = 30
var freshnessStatus = "aging"
if (ageMinutes <= 10) {
freshnessStatus = "fresh"
} else if (ageMinutes > maxAge) {
freshnessStatus = "stale"
}
println("age=$ageMinutes max=$maxAge status=$freshnessStatus")
}
fun main() {
val ageMinutes = 5
val maxAge = 30
var freshnessStatus = "aging"
if (ageMinutes <= 10) {
freshnessStatus = "fresh"
} else if (ageMinutes > maxAge) {
freshnessStatus = "stale"
}
println("age=$ageMinutes max=$maxAge status=$freshnessStatus")
}
fun main() {
val ageMinutes = 45
val maxAge = 30
var freshnessStatus = "aging"
if (ageMinutes <= 10) {
freshnessStatus = "fresh"
} else if (ageMinutes > maxAge) {
freshnessStatus = "stale"
}
println("age=$ageMinutes max=$maxAge status=$freshnessStatus")
}
ageMinutes ← 18, maxAge ← 30, freshnessStatus ← aging
1fun main() {2 val ageMinutes→ 18 = 18 //@ageMinutes=5, 453 val maxAge→ 30 = 304 var freshnessStatus→ aging = "aging"56 if (ageMinutes <= 10) {7 freshnessStatus = "fresh"8 } else if (ageMinutes > maxAge) {9 freshnessStatus = "stale"10 }1112 println("age=$ageMinutes18 max=$maxAge30 status=$freshnessStatusaging")13}outputage=18 max=30 status=aging
ageMinutes ← 5, maxAge ← 30, freshnessStatus ← aging
1fun main() {2 val ageMinutes→ 5 = 53 val maxAge→ 30 = 304 var freshnessStatus→ aging = "aging"freshnessStatus ← fresh
6if (ageMinutes5 <= 10) {7 freshnessStatus→ fresh = "fresh"8} else if (ageMinutes > maxAge) {println("age=$ageMinutes max=$maxAge status=$freshnessStatus")
12 println("age=$ageMinutes5 max=$maxAge30 status=$freshnessStatusfresh")13}outputage=5 max=30 status=fresh
ageMinutes ← 45, maxAge ← 30, freshnessStatus ← aging
1fun main() {2 val ageMinutes→ 45 = 453 val maxAge→ 30 = 304 var freshnessStatus→ aging = "aging"freshnessStatus ← stale
7 freshnessStatus = "fresh"8} else if (ageMinutes45 > maxAge30) {9 freshnessStatus→ stale = "stale"10}println("age=$ageMinutes max=$maxAge status=$freshnessStatus")
12 println("age=$ageMinutes45 max=$maxAge30 status=$freshnessStatusstale")13}outputage=45 max=30 status=stale