cmd/ursrv: Fix broken block transfer chart

This commit is contained in:
Jakob Borg 2023-01-31 09:09:36 +01:00
parent dc6d695c00
commit 5a50de1154
2 changed files with 18 additions and 14 deletions

View File

@ -119,13 +119,13 @@ func setupDB(db *sql.DB) error {
_, err = db.Exec(`CREATE TABLE IF NOT EXISTS BlockStats ( _, err = db.Exec(`CREATE TABLE IF NOT EXISTS BlockStats (
Day TIMESTAMP NOT NULL, Day TIMESTAMP NOT NULL,
Reports INTEGER NOT NULL, Reports INTEGER NOT NULL,
Total INTEGER NOT NULL, Total BIGINT NOT NULL,
Renamed INTEGER NOT NULL, Renamed BIGINT NOT NULL,
Reused INTEGER NOT NULL, Reused BIGINT NOT NULL,
Pulled INTEGER NOT NULL, Pulled BIGINT NOT NULL,
CopyOrigin INTEGER NOT NULL, CopyOrigin BIGINT NOT NULL,
CopyOriginShifted INTEGER NOT NULL, CopyOriginShifted BIGINT NOT NULL,
CopyElsewhere INTEGER NOT NULL CopyElsewhere BIGINT NOT NULL
)`) )`)
if err != nil { if err != nil {
return err return err
@ -306,13 +306,13 @@ func aggregateBlockStats(db *sql.DB, since time.Time) (int64, error) {
SELECT SELECT
DATE_TRUNC('day', Received) AS Day, DATE_TRUNC('day', Received) AS Day,
COUNT(1) As Reports, COUNT(1) As Reports,
SUM((Report->'blockStats'->>'total')::numeric) AS Total, SUM((Report->'blockStats'->>'total')::numeric)::bigint AS Total,
SUM((Report->'blockStats'->>'renamed')::numeric) AS Renamed, SUM((Report->'blockStats'->>'renamed')::numeric)::bigint AS Renamed,
SUM((Report->'blockStats'->>'reused')::numeric) AS Reused, SUM((Report->'blockStats'->>'reused')::numeric)::bigint AS Reused,
SUM((Report->'blockStats'->>'pulled')::numeric) AS Pulled, SUM((Report->'blockStats'->>'pulled')::numeric)::bigint AS Pulled,
SUM((Report->'blockStats'->>'copyOrigin')::numeric) AS CopyOrigin, SUM((Report->'blockStats'->>'copyOrigin')::numeric)::bigint AS CopyOrigin,
SUM((Report->'blockStats'->>'copyOriginShifted')::numeric) AS CopyOriginShifted, SUM((Report->'blockStats'->>'copyOriginShifted')::numeric)::bigint AS CopyOriginShifted,
SUM((Report->'blockStats'->>'copyElsewhere')::numeric) AS CopyElsewhere SUM((Report->'blockStats'->>'copyElsewhere')::numeric)::bigint AS CopyElsewhere
FROM ReportsJson FROM ReportsJson
WHERE WHERE
Received > $1 Received > $1

View File

@ -1133,6 +1133,10 @@ func getBlockStats(db *sql.DB) ([][]interface{}, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
// Legacy bad data on certain days
if reports <= 0 || pulled < 0 || renamed < 0 || reused < 0 || copyOrigin < 0 || copyOriginShifted < 0 || copyElsewhere < 0 {
continue
}
row := []interface{}{ row := []interface{}{
day.Format("2006-01-02"), day.Format("2006-01-02"),
reports, reports,