Skip to content

Commit d61fc21

Browse files
committed
fix
1 parent c17d25a commit d61fc21

1 file changed

Lines changed: 33 additions & 4 deletions

File tree

services/rend-api/src/telemetry.rs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,10 @@ async fn get_analytics_live_inner(
883883
{
884884
Ok(rows) => Ok(analytics_live_response(window, fetched_at, rows)),
885885
Err(error) => {
886-
tracing::warn!(?error, "player_events live query failed; falling back to rollups");
886+
tracing::warn!(
887+
?error,
888+
"player_events live query failed; falling back to rollups"
889+
);
887890
analytics_live_from_rollups(state, &organization_id, window, fetched_at).await
888891
}
889892
}
@@ -2011,7 +2014,7 @@ fn clickhouse_live_analytics_query(
20112014
"\
20122015
SELECT \
20132016
'bucket' AS row_kind, \
2014-
toUnixTimestamp64Milli(toStartOfMinute(observed_at)) AS bucket_start_ms, \
2017+
toInt64(toUnixTimestamp(toStartOfMinute(observed_at))) * 1000 AS bucket_start_ms, \
20152018
countIf(phase = 'first_frame') AS views, \
20162019
sumIf(watch_delta_ms, phase = 'watch_heartbeat') AS watch_time_ms, \
20172020
toUInt64(0) AS unique_viewers, \
@@ -2846,6 +2849,22 @@ mod tests {
28462849
);
28472850
}
28482851

2852+
#[test]
2853+
fn live_analytics_bucket_query_keeps_clickhouse_datetime64_compatible() {
2854+
let window = NormalizedPlaybackAnalyticsWindow {
2855+
started_at: DateTime::parse_from_rfc3339("2026-06-13T11:00:00.000Z")
2856+
.unwrap()
2857+
.with_timezone(&Utc),
2858+
ended_at: DateTime::parse_from_rfc3339("2026-06-13T12:00:00.000Z")
2859+
.unwrap()
2860+
.with_timezone(&Utc),
2861+
};
2862+
let query = clickhouse_live_analytics_query("00000000-0000-0000-0000-000000000001", window);
2863+
2864+
assert!(query.contains("toInt64(toUnixTimestamp(toStartOfMinute(observed_at))) * 1000"));
2865+
assert!(!query.contains("toUnixTimestamp64Milli(toStartOfMinute(observed_at))"));
2866+
}
2867+
28492868
#[test]
28502869
fn analytics_breakdowns_query_covers_acquisition_dimensions() {
28512870
let window = NormalizedPlaybackAnalyticsWindow {
@@ -2860,8 +2879,18 @@ mod tests {
28602879
clickhouse_analytics_breakdowns_query("00000000-0000-0000-0000-000000000001", window);
28612880

28622881
for dimension in [
2863-
"channel", "referrer", "campaign", "keyword", "hostname", "country", "region", "city",
2864-
"browser", "os", "device", "page_type",
2882+
"channel",
2883+
"referrer",
2884+
"campaign",
2885+
"keyword",
2886+
"hostname",
2887+
"country",
2888+
"region",
2889+
"city",
2890+
"browser",
2891+
"os",
2892+
"device",
2893+
"page_type",
28652894
] {
28662895
assert!(
28672896
query.contains(&format!("'{dimension}' AS dimension")),

0 commit comments

Comments
 (0)