diff --git a/relay/main.go b/relay/main.go index d3f5134..668f160 100644 --- a/relay/main.go +++ b/relay/main.go @@ -112,6 +112,95 @@ func main() { `, count) }) + mux.HandleFunc("/stats", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("content-type", "text/html") + + // Query the number of events for each kind, sorted by kind + rows, err := db.DB.Query("SELECT kind, COUNT(*) FROM event GROUP BY kind ORDER BY kind") + if err != nil { + fmt.Printf("Error querying event kinds: %v\n", err) + return + } + defer rows.Close() + + stats := make(map[string]int) + for rows.Next() { + var kind string + var count int + if err := rows.Scan(&kind, &count); err != nil { + fmt.Printf("Error scanning row: %v\n", err) + return + } + stats[kind] = count + } + + // Improved HTML content for stats + fmt.Fprintf(w, ` + + + + + + Scrapestr Relay Stats + + + +
+

Event Stats

+ + + + + + `) + for kind, count := range stats { + fmt.Fprintf(w, ` + + + + + `, kind, count) + } + fmt.Fprintf(w, ` +
KindCount
%s%d
+
+ + + `) + }) + fmt.Println("running on :3334") http.ListenAndServe(":3334", relay) }