1 DEFINE{query_name 'throughput_ue';
2 max_lfta_disorder '1'; max_hfta_disorder '1';
5 select ($window*(TB+1))/1000 as TS, e_RAB_ID, UE_ID, GNB_ID,
6 $window/1000.0 as measurementInterval,
8 (sum(usageCountDL)) / UMAX( sum(
9 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
10 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
11 ), 1) as active_throughput,
13 (sum(usageCountDL)) / UMAX(
14 max( UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) ) -
15 min( UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
16 ), $window) as average_throughput,
18 min((usageCountDL) / UMAX(
19 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
20 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
21 , 1) ) as min_throughput,
23 max((usageCountDL) / UMAX(
24 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
25 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
26 , 1) ) as max_throughput
28 from RATDATAUSAGE.rat_data_usage
30 group by e_RAB_ID, id_SgNB_UE_X2AP_ID as UE_ID, gnb_id as GNB_ID, timestamp_ms/$window as TB
33 // transform to switch byte order
34 // (((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24))
35 // (((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
38 DEFINE{query_name 'throughput_rollup';
39 max_lfta_disorder '1'; max_hfta_disorder '1';
42 select TS, e_RAB_ID, GNB_ID,
43 $window/1000.0 as measurementInterval,
44 count(*) as count_ues,
45 quantile_of( UINT(average_throughput), .05) as average_throughput_percentile_05,
46 quantile_of( UINT(average_throughput), .50) as average_throughput_percentile_50,
47 avg( average_throughput) as average_average_throughput,
48 quantile_of( UINT(average_throughput), .95) as average_throughput_percentile_95,
49 quantile_of( UINT(active_throughput), .05) as active_throughput_percentile_05,
50 quantile_of( UINT(active_throughput), .50) as active_throughput_percentile_50,
51 avg( active_throughput) as average_active_throughput,
52 quantile_of( UINT(active_throughput), .95) as active_throughput_percentile_95
54 group by TS, e_RAB_ID, GNB_ID
57 DEFINE{query_name 'throughput_gnb';
58 max_lfta_disorder '1'; max_hfta_disorder '1';
61 select ($window*(TB+1))/1000 as TS, e_RAB_ID, GNB_ID,
62 $window/1000.0 as measurementInterval,
64 (sum(usageCountDL)) / UMAX( sum(
65 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
66 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
67 ), 1) as active_throughput,
69 (sum(usageCountDL)) / UMAX(
70 max( UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) ) -
71 min( UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
72 ), $window) as average_throughput,
74 min((usageCountDL) / UMAX(
75 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
76 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
77 , 1) ) as min_throughput,
79 max((usageCountDL) / UMAX(
80 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
81 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
82 , 1) ) as max_throughput,
84 quantile_of( UINT( (usageCountDL) / UMAX(
85 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
86 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
89 quantile_of( UINT( (usageCountDL) / UMAX(
90 UINT(((endTimeStamp & HEX'FF000000') >> 24) | ((endTimeStamp & HEX'00FF0000') >> 8) | ((endTimeStamp & HEX'0000FF00') << 8) | ((endTimeStamp & HEX'000000FF') << 24)) -
91 UINT(((startTimeStamp & HEX'FF000000') >> 24) | ((startTimeStamp & HEX'00FF0000') >> 8) | ((startTimeStamp & HEX'0000FF00') << 8) | ((startTimeStamp & HEX'000000FF') << 24))
94 from RATDATAUSAGE.rat_data_usage
96 group by e_RAB_ID, gnb_id as GNB_ID, timestamp_ms/$window as TB