mirror of
https://github.com/urbit/shrub.git
synced 2024-12-13 16:03:36 +03:00
Write events and stats to clay every hour
This commit is contained in:
parent
62c87f5fba
commit
fe0ae82fb4
103
app/gaze.hoon
103
app/gaze.hoon
@ -1,9 +1,4 @@
|
|||||||
:: gaze: azimuth analytics
|
:: gaze: azimuth statistics
|
||||||
::
|
|
||||||
::TODO daily stats, but also sane longer-period stats
|
|
||||||
:: probably convert block numbers to day, then store difs by day
|
|
||||||
:: every day, week, and month, append entry to csv file with stat counters
|
|
||||||
:: not on a timer, but whenever we see a block belogns to the next day/week etc
|
|
||||||
::
|
::
|
||||||
/+ *eth-watcher
|
/+ *eth-watcher
|
||||||
::
|
::
|
||||||
@ -45,21 +40,23 @@
|
|||||||
::
|
::
|
||||||
++ move (pair bone card)
|
++ move (pair bone card)
|
||||||
++ card
|
++ card
|
||||||
$% [%hiss wire (unit user:eyre) mark %hiss hiss:eyre]
|
$% [%poke wire [ship %eth-watcher] %eth-watcher-action action]
|
||||||
:: [%wait wire @da]
|
|
||||||
:: [%rest @da]
|
|
||||||
[%poke wire [ship %eth-watcher] %eth-watcher-action action]
|
|
||||||
[%peer wire [ship %eth-watcher] path]
|
[%peer wire [ship %eth-watcher] path]
|
||||||
|
[%hiss wire (unit user:eyre) mark %hiss hiss:eyre]
|
||||||
|
[%wait wire @da]
|
||||||
|
[%info wire desk nori:clay]
|
||||||
==
|
==
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
|_ [bowl:gall state]
|
|_ [bowl:gall state]
|
||||||
++ node-url (need (de-purl:html 'http://eth-mainnet.urbit.org:8545'))
|
++ node-url (need (de-purl:html 'http://eth-mainnet.urbit.org:8545'))
|
||||||
|
++ export-frequency ~h1
|
||||||
::
|
::
|
||||||
++ prep
|
++ prep
|
||||||
|= old=(unit state)
|
|= old=(unit state)
|
||||||
?~ old
|
?~ old
|
||||||
[~ ..prep]
|
:_ ..prep
|
||||||
|
[ost %wait /export (add now export-frequency)]~
|
||||||
[~ ..prep(+<+ u.old)]
|
[~ ..prep(+<+ u.old)]
|
||||||
::
|
::
|
||||||
:: +poke-noun: do a thing
|
:: +poke-noun: do a thing
|
||||||
@ -326,6 +323,28 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
::
|
::
|
||||||
|
:: +wake-export: periodically export data
|
||||||
|
::
|
||||||
|
++ wake-export
|
||||||
|
|= [=wire ~]
|
||||||
|
^- (quip move _+>)
|
||||||
|
:_ +>
|
||||||
|
:~ [ost %wait /export (add now export-frequency)]
|
||||||
|
(export-move %days (export-days days))
|
||||||
|
(export-move %months (export-months days))
|
||||||
|
(export-move %events export-raw)
|
||||||
|
==
|
||||||
|
::
|
||||||
|
:: +export-move: %info move to write exported .txt
|
||||||
|
::
|
||||||
|
++ export-move
|
||||||
|
|= [nom=@t dat=(list @t)]
|
||||||
|
^- move
|
||||||
|
:^ ost %info /export/[nom]
|
||||||
|
%+ foal:space:userlib
|
||||||
|
/(scot %p our)/home/(scot %da now)/gaze-exports/[nom]/txt
|
||||||
|
[%txt !>(dat)]
|
||||||
|
::
|
||||||
:: +peek-x: accept gall scry
|
:: +peek-x: accept gall scry
|
||||||
::
|
::
|
||||||
:: %/days/txt: per day, digest stats
|
:: %/days/txt: per day, digest stats
|
||||||
@ -334,44 +353,50 @@
|
|||||||
::
|
::
|
||||||
++ peek-x
|
++ peek-x
|
||||||
|= pax=path
|
|= pax=path
|
||||||
^- (unit (unit [mark *]))
|
^- (unit (unit (pair mark *)))
|
||||||
?~ pax ~
|
?~ pax ~
|
||||||
?: =(%days i.pax)
|
?: =(%days i.pax)
|
||||||
:^ ~ ~ %txt
|
:^ ~ ~ %txt
|
||||||
(export-days days)
|
(export-days days)
|
||||||
?: =(%months i.pax)
|
?: =(%months i.pax)
|
||||||
:^ ~ ~ %txt
|
:^ ~ ~ %txt
|
||||||
%- export-days
|
(export-months days)
|
||||||
^+ days
|
|
||||||
%+ roll (flop days)
|
|
||||||
|= [[day=@da sat=stats] mos=(list [mod=@da sat=stats])]
|
|
||||||
^+ mos
|
|
||||||
=/ mod=@da
|
|
||||||
%- year
|
|
||||||
=+ (yore day)
|
|
||||||
-(d.t 1)
|
|
||||||
?~ mos [mod sat]~
|
|
||||||
?: !=(mod mod.i.mos)
|
|
||||||
[[mod sat] mos]
|
|
||||||
:_ t.mos
|
|
||||||
:- mod
|
|
||||||
::TODO this is hideous. can we make a wet gate do this?
|
|
||||||
:* (weld spawned.sat spawned.sat.i.mos)
|
|
||||||
(weld activated.sat activated.sat.i.mos)
|
|
||||||
(weld transfer-p.sat transfer-p.sat.i.mos)
|
|
||||||
(weld transferred.sat transferred.sat.i.mos)
|
|
||||||
(weld configured.sat configured.sat.i.mos)
|
|
||||||
(weld breached.sat breached.sat.i.mos)
|
|
||||||
(weld request.sat request.sat.i.mos)
|
|
||||||
(weld sponsor.sat sponsor.sat.i.mos)
|
|
||||||
(weld management-p.sat management-p.sat.i.mos)
|
|
||||||
(weld voting-p.sat voting-p.sat.i.mos)
|
|
||||||
(weld spawn-p.sat spawn-p.sat.i.mos)
|
|
||||||
==
|
|
||||||
?: =(%raw i.pax)
|
?: =(%raw i.pax)
|
||||||
``txt+export-raw
|
``txt+export-raw
|
||||||
~
|
~
|
||||||
::
|
::
|
||||||
|
:: +export-months: generate a csv of stats per month
|
||||||
|
::
|
||||||
|
++ export-months
|
||||||
|
|= =_days
|
||||||
|
%- export-days
|
||||||
|
^+ days
|
||||||
|
%+ roll (flop days)
|
||||||
|
|= [[day=@da sat=stats] mos=(list [mod=@da sat=stats])]
|
||||||
|
^+ mos
|
||||||
|
=/ mod=@da
|
||||||
|
%- year
|
||||||
|
=+ (yore day)
|
||||||
|
-(d.t 1)
|
||||||
|
?~ mos [mod sat]~
|
||||||
|
?: !=(mod mod.i.mos)
|
||||||
|
[[mod sat] mos]
|
||||||
|
:_ t.mos
|
||||||
|
:- mod
|
||||||
|
::TODO this is hideous. can we make a wet gate do this?
|
||||||
|
:* (weld spawned.sat spawned.sat.i.mos)
|
||||||
|
(weld activated.sat activated.sat.i.mos)
|
||||||
|
(weld transfer-p.sat transfer-p.sat.i.mos)
|
||||||
|
(weld transferred.sat transferred.sat.i.mos)
|
||||||
|
(weld configured.sat configured.sat.i.mos)
|
||||||
|
(weld breached.sat breached.sat.i.mos)
|
||||||
|
(weld request.sat request.sat.i.mos)
|
||||||
|
(weld sponsor.sat sponsor.sat.i.mos)
|
||||||
|
(weld management-p.sat management-p.sat.i.mos)
|
||||||
|
(weld voting-p.sat voting-p.sat.i.mos)
|
||||||
|
(weld spawn-p.sat spawn-p.sat.i.mos)
|
||||||
|
==
|
||||||
|
::
|
||||||
:: +export-days: generate a csv of stats per day
|
:: +export-days: generate a csv of stats per day
|
||||||
::
|
::
|
||||||
++ export-days
|
++ export-days
|
||||||
|
Loading…
Reference in New Issue
Block a user