mirror of
https://github.com/lukaszraczylo/graphql-monitoring-proxy.git
synced 2026-10-22 06:38:13 +00:00
Fix the cleanup routine.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Creates a passthrough proxy to a graphql endpoint(s), allowing you to analyse the queries and responses, producing the Prometheus metrics at a fraction of the cost - because, as we know - $0 is a fair price.
|
Creates a passthrough proxy to a graphql endpoint(s), allowing you to analyse the queries and responses, producing the Prometheus metrics at a fraction of the cost - because, as we know - $0 is a fair price.
|
||||||
|
|
||||||
This project is in active use by [telegram-bot.app](https://telegram-bot.app), and was tested with 30k queries per second on a single instance, consuming 10 MB of RAM and 0.1% CPU.
|
This project is in active use by [telegram-bot.app](https://telegram-bot.app), and was tested with 30k queries per second on a single instance, consuming 10 MB of RAM and 0.1% CPU. [Benchmarks](https://lukaszraczylo.github.io/graphql-monitoring-proxy/dev/bench/) are available.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ const (
|
|||||||
cleanupInterval = 1 * time.Hour
|
cleanupInterval = 1 * time.Hour
|
||||||
)
|
)
|
||||||
|
|
||||||
var delQueries = []string{
|
var delQueries = [...]string{
|
||||||
"DELETE FROM hdb_catalog.event_invocation_logs WHERE created_at < now() - interval '%d days';",
|
"DELETE FROM hdb_catalog.event_invocation_logs WHERE created_at < NOW() - interval '%d days';",
|
||||||
"DELETE FROM hdb_catalog.event_log WHERE created_at < now() - interval '%d days';",
|
"DELETE FROM hdb_catalog.event_log WHERE created_at < NOW() - interval '%d days';",
|
||||||
"DELETE FROM hdb_catalog.hdb_action_log WHERE created_at < NOW() - INTERVAL '%d days';",
|
"DELETE FROM hdb_catalog.hdb_action_log WHERE created_at < NOW() - INTERVAL '%d days';",
|
||||||
"DELETE FROM hdb_catalog.hdb_cron_event_invocation_logs WHERE created_at < NOW() - INTERVAL '%d days';",
|
"DELETE FROM hdb_catalog.hdb_cron_event_invocation_logs WHERE created_at < NOW() - INTERVAL '%d days';",
|
||||||
"DELETE FROM hdb_catalog.hdb_scheduled_event_invocation_logs WHERE created_at < NOW() - INTERVAL '%d days';",
|
"DELETE FROM hdb_catalog.hdb_scheduled_event_invocation_logs WHERE created_at < NOW() - INTERVAL '%d days';",
|
||||||
@@ -39,17 +39,17 @@ func enableHasuraEventCleaner() {
|
|||||||
Pairs: map[string]interface{}{"interval_in_days": cfg.HasuraEventCleaner.ClearOlderThan},
|
Pairs: map[string]interface{}{"interval_in_days": cfg.HasuraEventCleaner.ClearOlderThan},
|
||||||
})
|
})
|
||||||
|
|
||||||
pool, err := pgxpool.New(context.Background(), cfg.HasuraEventCleaner.EventMetadataDb)
|
|
||||||
if err != nil {
|
|
||||||
cfg.Logger.Error(&libpack_logger.LogMessage{
|
|
||||||
Message: "Failed to create connection pool",
|
|
||||||
Pairs: map[string]interface{}{"error": err},
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer pool.Close()
|
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
pool, err := pgxpool.New(context.Background(), cfg.HasuraEventCleaner.EventMetadataDb)
|
||||||
|
if err != nil {
|
||||||
|
cfg.Logger.Error(&libpack_logger.LogMessage{
|
||||||
|
Message: "Failed to create connection pool",
|
||||||
|
Pairs: map[string]interface{}{"error": err.Error()},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer pool.Close()
|
||||||
|
|
||||||
time.Sleep(initialDelay)
|
time.Sleep(initialDelay)
|
||||||
|
|
||||||
cfg.Logger.Info(&libpack_logger.LogMessage{
|
cfg.Logger.Info(&libpack_logger.LogMessage{
|
||||||
@@ -76,7 +76,12 @@ func cleanEvents(pool *pgxpool.Pool) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
cfg.Logger.Error(&libpack_logger.LogMessage{
|
cfg.Logger.Error(&libpack_logger.LogMessage{
|
||||||
Message: "Failed to execute query",
|
Message: "Failed to execute query",
|
||||||
Pairs: map[string]interface{}{"query": query, "error": err},
|
Pairs: map[string]interface{}{"query": query, "error": err.Error()},
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
cfg.Logger.Debug(&libpack_logger.LogMessage{
|
||||||
|
Message: "Successfully executed query",
|
||||||
|
Pairs: map[string]interface{}{"query": query},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user