{/* Summary Stats */}
{stats && (
-
+
Sessions
{stats.total}
@@ -219,6 +245,20 @@ function LocationSessionsContent() {
succeeded sessions
+
+
DO Peers
+
= 50 ? "text-green-600" :
+ stats.avgDoPercent >= 10 ? "text-yellow-600" :
+ "text-gray-600"
+ }`}>
+ {stats.doSessions > 0 ? `${stats.avgDoPercent}%` : "—"}
+
+
+ {stats.doSessions > 0 ? `${stats.doSessions} of ${stats.total} sessions` : "no DO telemetry"}
+
+
)}
@@ -253,6 +293,9 @@ function LocationSessionsContent() {
Duration
|
+
+ DO Peers
+ |
Started At
|
@@ -280,6 +323,42 @@ function LocationSessionsContent() {
{formatDuration(session.durationSeconds)}
|
+
+ {session.hasDoTelemetry ? (
+
+ = 50
+ ? "bg-green-100 text-green-800"
+ : (session.doPercentPeerCaching ?? 0) >= 10
+ ? "bg-yellow-100 text-yellow-800"
+ : "bg-gray-100 text-gray-600"
+ }`}
+ >
+ {(session.doPercentPeerCaching ?? 0).toFixed(1)}%
+
+
+ ({session.doAppCount}/{session.totalAppCount})
+
+
+ ) : (
+ 0
+ ? `${session.totalAppCount} app(s) installed, no DO telemetry`
+ : "no app install data"
+ }
+ >
+ —
+
+ )}
+ |
{formatDate(session.startedAt)}
|