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>,
|
ctx: &Context<'ctx>,
|
||||||
#[graphql(default = 60)] bucket_size: u64,
|
#[graphql(default = 60)] bucket_size: u64,
|
||||||
world_id: Option<i32>,
|
world_id: Option<i32>,
|
||||||
|
#[graphql(default = false)] hi_precision: bool,
|
||||||
) -> Vec<Event> {
|
) -> Vec<Event> {
|
||||||
let pool = ctx.data::<Pool<Postgres>>().unwrap();
|
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",
|
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",
|
||||||
bucket_size,
|
if hi_precision {
|
||||||
|
5
|
||||||
|
} else {
|
||||||
|
bucket_size
|
||||||
|
},
|
||||||
|
if hi_precision {
|
||||||
|
"1 hour"
|
||||||
|
} else {
|
||||||
|
"1 day"
|
||||||
|
},
|
||||||
if let Some(world_id) = world_id {
|
if let Some(world_id) = world_id {
|
||||||
format!("AND world_id = {}", world_id)
|
format!("AND world_id = {}", world_id)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -148,6 +148,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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/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/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>
|
<script src="https://cdn.jsdelivr.net/npm/humanize-plus@1.8.2/dist/humanize.min.js"></script>
|
||||||
|
@ -293,7 +299,11 @@
|
||||||
query: `
|
query: `
|
||||||
{
|
{
|
||||||
analytics {
|
analytics {
|
||||||
events(bucketSize: ${60 * 5}) {
|
events(${
|
||||||
|
location.search.includes("hi=1")
|
||||||
|
? "hiPrecision: true"
|
||||||
|
: "bucketSize: 300"
|
||||||
|
}) {
|
||||||
eventName
|
eventName
|
||||||
count
|
count
|
||||||
time
|
time
|
||||||
|
|
Loading…
Add table
Reference in a new issue