Compare commits

..

8 Commits

Author SHA1 Message Date
bel 439c481c60 log err
cicd / ci (push) Successful in 3m25s
2026-07-07 17:16:08 -06:00
bel 0a58f85ca3 2d cause only reaps sad
cicd / ci (push) Successful in 2m56s
2026-06-28 09:42:07 -06:00
bel 141c0e5100 forget it 30d
cicd / ci (push) Successful in 3m12s
2026-06-28 09:35:43 -06:00
bel 9f3de791f9 fix killnig and 55h 2026-06-28 09:35:22 -06:00
bel 8d3db70e01 botched
cicd / ci (push) Has been cancelled
2026-06-28 09:33:04 -06:00
bel 831fed82f7 go delete success from more than 12h ago
cicd / ci (push) Successful in 3m39s
2026-06-28 09:23:11 -06:00
bel 43887bb447 list ms too
cicd / ci (push) Successful in 2m3s
2026-06-28 00:56:29 -06:00
bel 0b9b790986 okay,slow,err
cicd / ci (push) Successful in 2m51s
2026-06-28 00:51:16 -06:00
2 changed files with 50 additions and 15 deletions
+9 -3
View File
@@ -9,11 +9,14 @@
SELECT SELECT
start AS start start AS start
, CASE , CASE
WHEN ms < 750 OR ok THEN WHEN ms < 50 AND ok THEN
'okay' 'okay'
WHEN ms < 750 AND ok THEN
'slow'
ELSE ELSE
'errored' 'bad'
END AS ok END AS ok
, ms AS ms
FROM FROM
"pinger_pings" "pinger_pings"
ORDER BY start DESC ORDER BY start DESC
@@ -23,9 +26,12 @@
[ [
{{.ok}}==="okay" {{.ok}}==="okay"
? "🟢" ? "🟢"
: "🔴", : {{.ok}}==="slow"
? "🟠"
: "🔴",
`${Math.round((new Date() - 1000*{{.start}})/1000.0)}s ago`, `${Math.round((new Date() - 1000*{{.start}})/1000.0)}s ago`,
new Date(1000*{{.start}}), new Date(1000*{{.start}}),
"{{.ms}}ms",
], ],
{{ end }} {{ end }}
] ]
+29
View File
@@ -42,6 +42,7 @@ func run(ctx context.Context) error {
defer wg.Wait() defer wg.Wait()
for _, foo := range []func(context.Context) error{ for _, foo := range []func(context.Context) error{
s.pingAndRecord, s.pingAndRecord,
s.collectGarbage,
s.listen, s.listen,
} { } {
foo := foo foo := foo
@@ -141,6 +142,32 @@ func (s S) listen(ctx context.Context) error {
return nil return nil
} }
func (s S) collectGarbage(ctx context.Context) error {
c := time.NewTicker(time.Hour)
defer c.Stop()
for {
select {
case <-c.C:
case <-ctx.Done():
return nil
}
if _, err := s.ExecContext(ctx, `
DELETE FROM "pinger_pings"
WHERE
start < $1
AND (
ms < 100
OR ok
)
`, time.Now().Add(-1*2*24*time.Hour).Unix()); err != nil {
log.Println("!", err)
}
}
return nil
}
func (s S) pingAndRecord(ctx context.Context) error { func (s S) pingAndRecord(ctx context.Context) error {
ctx, can := context.WithCancel(ctx) ctx, can := context.WithCancel(ctx)
defer can() defer can()
@@ -224,6 +251,8 @@ func (s S) pingAndRecord(ctx context.Context) error {
} }
if err == nil { if err == nil {
conn.Close() conn.Close()
} else {
log.Println("!", err)
} }
}() }()
} }