Commit Graph

163 Commits

Author SHA1 Message Date
Ske c70556f5f9 Increase minimum thread pool size 2019-12-23 00:28:19 +01:00
Ske b6597c79d6 Add temporary ThreadPool trace logging 2019-12-22 23:27:11 +01:00
Ske b81eda47aa Expand pk;stats functionality 2019-12-22 12:50:47 +01:00
Ske 93a52ff95a Add exception logging for dropped connections 2019-12-22 12:08:52 +01:00
Ske 6a55555e48 Attempt a few memory/connection optimizations 2019-12-22 01:08:14 +01:00
Ske 378cba09e5 Add channel blacklists for logging and proxying
Necessary database migrations for this commit:
    alter table servers add column log_blacklist bigint[] not null default array[]::bigint[];
    alter table servers add column blacklist bigint[] not null default array[]::bigint[];
2019-11-03 19:15:50 +01:00
Ske 8d003da091 Remove chunk of commented-out outdated code 2019-11-03 13:37:48 +01:00
Ske 0f48c6879b Attempt to fix slow/timeout-y bot startup
I've noticed the bot's CPU spiking for a few minutes as it's
just connecting, and a lot of shard connections are timing out.

I suspect it might be the overload of messages as the shards
connect and Discord sends it the entire backlog at once. So,
as an interim solution, I'm making it simply discard every
message before the socket is fully connected. Hopefully this
should help reduce the pressure.
2019-10-31 17:21:12 +01:00
Ske 545e8df6a7 Reduce the log level of various common events 2019-10-27 23:44:27 +01:00
Ske fbb5dbbf5d Don't embed support server link in error message 2019-10-27 23:01:38 +01:00
Ske 7f55fca625 Make prefix matching case-insensitive 2019-10-27 15:08:33 +01:00
Ske aed38f37f7 Allow starting bot before all shards are up 2019-10-27 13:01:33 +01:00
Ske 6a73b3bdd6 Refactor data stores, merging the Store classes 2019-10-26 19:45:44 +02:00
Ske 53ae0e3d70 Improve error handling and reporting after command rewrite 2019-10-22 19:31:40 +02:00
Ske 1988b29fbc Refactor command system 2019-10-05 07:41:00 +02:00
Ske 86d0b24758 Include event ID in Sentry dump 2019-09-02 20:37:24 +02:00
Ske 74e0508065 Increase webhook name limit to 80 2019-08-14 07:16:48 +02:00
Ske 5f79aaf960 Fix API service injection 2019-08-12 06:54:28 +02:00
Ske a48940476c Eagerly discard messages before shard init 2019-08-12 06:10:55 +02:00
Ske 7945603cdb Include invite link in error message 2019-08-12 06:03:20 +02:00
Ske d3f821a266 Send a request ID on error 2019-08-12 05:56:05 +02:00
Ske 145ecb91ad Refactor proxy service 2019-08-12 05:47:55 +02:00
Ske fda98bc25f Lower message cache size 2019-08-12 05:03:18 +02:00
Ske c68ce1bdd3 Log gateway latency to console 2019-08-12 04:05:22 +02:00
Ske aa04d2055e Avoid deleting messages from the store if they're not webhooks 2019-08-12 03:51:54 +02:00
Ske 423d23faf7 Cache account lookup in memory when proxying 2019-08-12 03:48:08 +02:00
Ske 99ec3cd355 Instrument and log database queries 2019-08-12 02:05:30 +02:00
Ske ea476d4051 Yield event handlers to task queue before handling 2019-08-12 01:15:55 +02:00
Ske a689d61788 Collect webhook response time and shard latency 2019-08-12 00:57:23 +02:00
Ske b593c32950 Add more extensive debug-level logging
- Logging of event IDs
- Logging of command invocations (at DEBUG)
2019-08-12 00:07:29 +02:00
Ske 942022d408 Track database handles over metrics 2019-08-11 22:56:20 +02:00
Ske 3f6a260fac Properly associate trigger events with Sentry errors 2019-08-09 12:47:46 +02:00
Ske 11eabe2e3d Update D.NET version and add bulk deletion support 2019-07-21 17:16:04 +02:00
Ske 4fe80749c4 Fix compiler warnings CS1998 and CS4014 2019-07-21 16:43:28 +02:00
Ske 4f33ed84ac Disable message caching
This will potentially fix the memory leaking issues.
2019-07-20 23:10:26 +02:00
Ske b85c79c57b Expand logging capability 2019-07-19 02:29:08 +02:00
Ske 0b4335ccaa Add logger to API service setup 2019-07-18 17:26:06 +02:00
Ske 961bfe9094 Add basic logging framework 2019-07-18 17:13:42 +02:00
Ske a188c64a0e Clean up unused imports 2019-07-17 13:38:23 +02:00
Ske 02b41413b3 Add basic InfluxDB reporter 2019-07-16 23:34:22 +02:00
Ske 2d58705e85 Add basic WIP metrics system 2019-07-16 21:59:06 +02:00
Ske 51b9afddea Properly format Sentry message breadcrumbs 2019-07-16 01:32:08 +02:00
Ske 2aae92406a Remove Sentry scope setup for now 2019-07-16 01:28:55 +02:00
Ske d47e7e7a06 Don't process messages until we're fully connected to shard zero 2019-07-15 21:29:45 +02:00
Ske 18e4d7c9ac Add preliminary Sentry support 2019-07-15 21:02:50 +02:00
Ske 7475980bd3 Fix sharding issue hopefully for good 2019-07-15 17:23:27 +02:00
Ske 1f3b0c6de6 Properly initialize a sharded client 2019-07-15 17:16:14 +02:00
Ske ebc311ecc3 Remove message query reaction AND open DB connection when obtaining one 2019-07-14 05:23:27 +02:00
Ske c6905f4ca1 Allow single quotes in command arguments 2019-07-11 22:34:38 +02:00
Ske d829630a35 Fix database connection pool contention (maybe)
Instead of acquiring a connection per service per request, we
acquire connections more often but at a more granular level, meaning
they're also disposed of more quickly instead of staying for a long time
in case of long-running commands or leaks.
2019-07-11 21:25:23 +02:00