add hi-precision bucketing for short term viz
This commit is contained in:
parent
9f1942344b
commit
d83ff16c1a
2 changed files with 23 additions and 3 deletions
|
@ -20,11 +20,21 @@ impl Analytics {
|
|||
ctx: &Context<'ctx>,
|
||||
#[graphql(default = 60)] bucket_size: u64,
|
||||
world_id: Option<i32>,
|
||||
#[graphql(default = false)] hi_precision: bool,
|
||||
) -> Vec<Event> {
|
||||
let pool = ctx.data::<Pool<Postgres>>().unwrap();
|
||||
|
||||
let sql = format!("SELECT time_bucket('{} seconds', time) AS bucket, count(*), event_name, world_id FROM analytics WHERE time > now() - interval '1 day' {} GROUP BY bucket, world_id, event_name ORDER BY bucket ASC",
|
||||
bucket_size,
|
||||
let sql = format!("SELECT time_bucket('{} seconds', time) AS bucket, count(*), event_name, world_id FROM analytics WHERE time > now() - interval '{}' {} GROUP BY bucket, world_id, event_name ORDER BY bucket ASC",
|
||||
if hi_precision {
|
||||
5
|
||||
} else {
|
||||
bucket_size
|
||||
},
|
||||
if hi_precision {
|
||||
"1 hour"
|
||||
} else {
|
||||
"1 day"
|
||||
},
|
||||
if let Some(world_id) = world_id {
|
||||
format!("AND world_id = {}", world_id)
|
||||
} else {
|
||||
|
|
|
@ -148,6 +148,12 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
[<a href="/">home</a>] [<a href="/ingest">1 day w/ 5m buckets</a>] [<a
|
||||
href="/ingest?hi=1"
|
||||
>1 hour w/ 5s buckets</a
|
||||
>]
|
||||
</p>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/humanize-plus@1.8.2/dist/humanize.min.js"></script>
|
||||
|
@ -293,7 +299,11 @@
|
|||
query: `
|
||||
{
|
||||
analytics {
|
||||
events(bucketSize: ${60 * 5}) {
|
||||
events(${
|
||||
location.search.includes("hi=1")
|
||||
? "hiPrecision: true"
|
||||
: "bucketSize: 300"
|
||||
}) {
|
||||
eventName
|
||||
count
|
||||
time
|
||||
|
|
Loading…
Add table
Reference in a new issue