diff --git a/internal/database/database.go b/internal/database/database.go index 3844f1d..dc950e2 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -127,6 +127,16 @@ func (d *Database) Initialize() error { d.logger.Warn("Failed to VACUUM database", "error", err) } + // Create any missing indexes for existing databases + missingIndexes := []string{ + "CREATE INDEX IF NOT EXISTS idx_live_routes_origin_asn ON live_routes(origin_asn)", + } + for _, idx := range missingIndexes { + if err := d.exec(idx); err != nil { + d.logger.Warn("Failed to create index", "index", idx, "error", err) + } + } + return nil } diff --git a/internal/database/schema.sql b/internal/database/schema.sql index a5f250c..eba38b5 100644 --- a/internal/database/schema.sql +++ b/internal/database/schema.sql @@ -93,4 +93,6 @@ CREATE INDEX IF NOT EXISTS idx_live_routes_last_updated ON live_routes(last_upda -- Indexes for IPv4 range queries CREATE INDEX IF NOT EXISTS idx_live_routes_ipv4_range ON live_routes(v4_ip_start, v4_ip_end) WHERE ip_version = 4; -- Index to optimize COUNT(DISTINCT prefix) queries -CREATE INDEX IF NOT EXISTS idx_live_routes_ip_mask_prefix ON live_routes(ip_version, mask_length, prefix); \ No newline at end of file +CREATE INDEX IF NOT EXISTS idx_live_routes_ip_mask_prefix ON live_routes(ip_version, mask_length, prefix); +-- Index to optimize AS detail queries +CREATE INDEX IF NOT EXISTS idx_live_routes_origin_asn ON live_routes(origin_asn); \ No newline at end of file diff --git a/internal/routewatch/prefixhandler.go b/internal/routewatch/prefixhandler.go index c39bfb9..8c1090d 100644 --- a/internal/routewatch/prefixhandler.go +++ b/internal/routewatch/prefixhandler.go @@ -19,7 +19,7 @@ const ( prefixHandlerQueueSize = 100000 // prefixBatchSize is the number of prefix updates to batch together - prefixBatchSize = 20000 + prefixBatchSize = 25000 // prefixBatchTimeout is the maximum time to wait before flushing a batch // DO NOT reduce this timeout - larger batches are more efficient diff --git a/log.txt b/log.txt index abc80e7..25a7d18 100644 --- a/log.txt +++ b/log.txt @@ -10,1151 +10,851 @@ [Fx] PROVIDE *routewatch.RouteWatch <= git.eeqj.de/sneak/routewatch/internal/routewatch.New() [Fx] INVOKE git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1() [Fx] BEFORE RUN provide: go.uber.org/fx.New.func1() -[Fx] RUN provide: go.uber.org/fx.New.func1() in 4.042µs +[Fx] RUN provide: go.uber.org/fx.New.func1() in 4.292µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/config.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/config.New() in 4.208µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/config.New() in 5.542µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/logger.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/logger.New() in 3.333µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/logger.New() in 4.667µs [Fx] BEFORE RUN provide: fx.Annotate(git.eeqj.de/sneak/routewatch/internal/database.New(), fx.As([[database.Store]]) -{"time":"2025-07-28T22:01:04.984272+02:00","level":"INFO","msg":"Opening database","source":"database.go:61","func":"database.New","path":"/Users/user/Library/Application Support/berlin.sneak.app.routewatch/db.sqlite"} -{"time":"2025-07-28T22:01:05.362826+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"PRAGMA wal_checkpoint(TRUNCATE)","duration":303947625} -{"time":"2025-07-28T22:01:05.363109+02:00","level":"INFO","msg":"Running VACUUM to optimize database (this may take a moment)","source":"database.go:125","func":"database.(*Database).Initialize"} -{"time":"2025-07-28T22:01:21.328362+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"VACUUM","duration":15963139625} -[Fx] RUN provide: fx.Annotate(git.eeqj.de/sneak/routewatch/internal/database.New(), fx.As([[database.Store]]) in 16.347209166s +{"time":"2025-07-28T22:05:38.373796+02:00","level":"INFO","msg":"Opening database","source":"database.go:61","func":"database.New","path":"/Users/user/Library/Application Support/berlin.sneak.app.routewatch/db.sqlite"} +{"time":"2025-07-28T22:05:53.735187+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"PRAGMA wal_checkpoint(TRUNCATE)","duration":4304952583} +{"time":"2025-07-28T22:05:53.735747+02:00","level":"INFO","msg":"Running VACUUM to optimize database (this may take a moment)","source":"database.go:125","func":"database.(*Database).Initialize"} +{"time":"2025-07-28T22:06:10.50962+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"VACUUM","duration":16771382375} +[Fx] RUN provide: fx.Annotate(git.eeqj.de/sneak/routewatch/internal/database.New(), fx.As([[database.Store]]) in 32.137852958s [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/metrics.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/metrics.New() in 823µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/metrics.New() in 466.959µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/streamer.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/streamer.New() in 127.917µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/streamer.New() in 173.375µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/server.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/server.New() in 523.417µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/server.New() in 257.292µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/routewatch.New() -[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/routewatch.New() in 4.875µs +[Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/routewatch.New() in 4.917µs [Fx] BEFORE RUN provide: go.uber.org/fx.(*App).shutdowner-fm() -[Fx] RUN provide: go.uber.org/fx.(*App).shutdowner-fm() in 45.917µs +[Fx] RUN provide: go.uber.org/fx.(*App).shutdowner-fm() in 8.833µs [Fx] HOOK OnStart git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1() executing (caller: git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1) -[Fx] HOOK OnStart git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1() called by git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1 ran successfully in 300.584µs +[Fx] HOOK OnStart git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1() called by git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1 ran successfully in 295.5µs [Fx] RUNNING -{"time":"2025-07-28T22:01:21.338349+02:00","level":"INFO","msg":"Starting RouteWatch","source":"app.go:64","func":"routewatch.(*RouteWatch).Run"} -{"time":"2025-07-28T22:01:21.338517+02:00","level":"INFO","msg":"Using batched database handlers for improved performance","source":"app.go:76","func":"routewatch.(*RouteWatch).Run"} -{"time":"2025-07-28T22:01:21.341865+02:00","level":"INFO","msg":"Starting HTTP server","source":"server.go:52","func":"server.(*Server).Start","port":"8080"} -2025/07/28 22:01:22 [akrotiri/RUhnevNJMK-000001] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3678B in 624.400792ms -2025/07/28 22:01:23 [akrotiri/RUhnevNJMK-000002] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3678B in 566.482709ms -{"time":"2025-07-28T22:01:23.853564+02:00","level":"INFO","msg":"Connected to RIS Live stream","source":"streamer.go:413","func":"streamer.(*Streamer).stream"} -2025/07/28 22:01:24 [akrotiri/RUhnevNJMK-000003] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3646B in 603.250833ms -{"time":"2025-07-28T22:01:24.346791+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:24.346804+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:24.53404+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:24.555848+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} -{"time":"2025-07-28T22:01:24.555887+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} -{"time":"2025-07-28T22:01:25.340538+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:25 [akrotiri/RUhnevNJMK-000004] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3693B in 853.076333ms -2025/07/28 22:01:26 [akrotiri/RUhnevNJMK-000005] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3729B in 766.6965ms -{"time":"2025-07-28T22:01:26.757288+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2410} -{"time":"2025-07-28T22:01:26.757307+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:26.757331+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:27.315883+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2602:fa91:0:cccc::20","peer_asn":"53427"} -2025/07/28 22:01:27 [akrotiri/RUhnevNJMK-000006] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3734B in 959.740709ms -2025/07/28 22:01:27 [akrotiri/RUhnevNJMK-000007] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3734B in 743.030917ms -{"time":"2025-07-28T22:01:27.994679+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":1237} -{"time":"2025-07-28T22:01:27.994737+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:27.996358+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:28.022984+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":28} -{"time":"2025-07-28T22:01:28.022994+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:28.025344+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:28.037666+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:28.037665+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":14} -{"time":"2025-07-28T22:01:28.0377+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":14599,"unique_prefixes":6611,"success":6611,"duration_ms":3695} -{"time":"2025-07-28T22:01:28.046642+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:28.080296+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":42} -{"time":"2025-07-28T22:01:28.080411+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:28.081536+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:28.084673+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} -{"time":"2025-07-28T22:01:28.084696+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:28 [akrotiri/RUhnevNJMK-000008] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3753B in 804.725334ms -2025/07/28 22:01:28 [akrotiri/RUhnevNJMK-000009] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3754B in 805.373917ms -2025/07/28 22:01:29 [akrotiri/RUhnevNJMK-000010] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3754B in 700.94275ms -{"time":"2025-07-28T22:01:29.226379+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:29 [akrotiri/RUhnevNJMK-000011] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3757B in 678.106ms -{"time":"2025-07-28T22:01:29.590633+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1505} -{"time":"2025-07-28T22:01:29.590644+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:29.590652+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:29.630883+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":40} -{"time":"2025-07-28T22:01:29.630918+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:29.632535+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:29.634722+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:29.634731+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:29.641724+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} -{"time":"2025-07-28T22:01:29.641732+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:29.641737+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":6395,"success":6395,"duration_ms":1602} -{"time":"2025-07-28T22:01:29.657978+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:29.675279+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":33} -{"time":"2025-07-28T22:01:29.675319+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:29.676556+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:29.763831+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"102.67.56.1","peer_asn":"328474"} -2025/07/28 22:01:30 [akrotiri/RUhnevNJMK-000012] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3753B in 920.511291ms -2025/07/28 22:01:30 [akrotiri/RUhnevNJMK-000013] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3753B in 716.350125ms -2025/07/28 22:01:31 [akrotiri/RUhnevNJMK-000014] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 679.880083ms -{"time":"2025-07-28T22:01:31.111051+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:31.111047+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1435} -{"time":"2025-07-28T22:01:31.111112+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:31.510809+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:31.510805+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":399} -{"time":"2025-07-28T22:01:31.512452+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:31 [akrotiri/RUhnevNJMK-000015] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3751B in 676.542666ms -{"time":"2025-07-28T22:01:31.568475+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:31.568473+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":57} -{"time":"2025-07-28T22:01:31.568504+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20015,"unique_prefixes":7993,"success":7993,"duration_ms":1925} -{"time":"2025-07-28T22:01:31.574136+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:31.610023+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":41} -{"time":"2025-07-28T22:01:31.610026+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:31.611202+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:32 [akrotiri/RUhnevNJMK-000016] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 660.744667ms -{"time":"2025-07-28T22:01:32.10543+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:32 [akrotiri/RUhnevNJMK-000017] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3754B in 638.409417ms -{"time":"2025-07-28T22:01:32.541483+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":931} -{"time":"2025-07-28T22:01:32.541499+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:32.541488+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:32.570365+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":28} -{"time":"2025-07-28T22:01:32.570377+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:32.574364+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:32.574371+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:32.579091+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:01:32.579102+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20128,"unique_prefixes":4585,"success":4585,"duration_ms":1009} -{"time":"2025-07-28T22:01:32.585714+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:32.585723+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:32.591847+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:12f8::221:238","peer_asn":"262317"} -{"time":"2025-07-28T22:01:32.906171+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:33 [akrotiri/RUhnevNJMK-000018] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 671.690709ms -2025/07/28 22:01:33 [akrotiri/RUhnevNJMK-000019] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3750B in 659.939125ms -{"time":"2025-07-28T22:01:33.854804+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":10001128792,"total_messages":46592,"total_bytes":34707300,"total_mb":"33.10","messages_per_sec":"489.62","bits_per_sec":"2858426","mbps":"2.86","total_dropped":0} -{"time":"2025-07-28T22:01:33.85483+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":4222,"queue_cap":100000,"processed":41866,"dropped":0,"avg_time":191952,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:01:33.854836+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":46089,"dropped":0,"avg_time":78637,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:01:33.85484+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":18561,"queue_cap":100000,"processed":27527,"dropped":0,"avg_time":298957,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:01:33.854856+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":46089,"dropped":0,"avg_time":1310,"min_time":0,"max_time":447917} -{"time":"2025-07-28T22:01:33.907839+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1322} -{"time":"2025-07-28T22:01:33.907858+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:33.907843+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:34 [akrotiri/RUhnevNJMK-000020] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3752B in 662.324083ms -{"time":"2025-07-28T22:01:34.293497+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:34.293494+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":385} -{"time":"2025-07-28T22:01:34.294759+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:34.311067+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":17} -{"time":"2025-07-28T22:01:34.311097+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20025,"unique_prefixes":7017,"success":7017,"duration_ms":1731} -{"time":"2025-07-28T22:01:34.311075+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:34.316263+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:34.347808+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":36} -{"time":"2025-07-28T22:01:34.347814+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:34 [akrotiri/RUhnevNJMK-000021] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3749B in 672.9005ms -{"time":"2025-07-28T22:01:34.67473+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:35 [akrotiri/RUhnevNJMK-000022] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3754B in 655.746333ms -{"time":"2025-07-28T22:01:35.241005+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:35.241004+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":893} -{"time":"2025-07-28T22:01:35.241035+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:35.24455+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:35.244558+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:35.516258+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":271} -{"time":"2025-07-28T22:01:35.516281+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":5096,"success":5096,"duration_ms":1204} -{"time":"2025-07-28T22:01:35.522156+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:35.522175+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:35 [akrotiri/RUhnevNJMK-000023] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3751B in 656.236625ms -{"time":"2025-07-28T22:01:35.828098+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:36 [akrotiri/RUhnevNJMK-000024] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3752B in 682.476708ms -2025/07/28 22:01:36 [akrotiri/RUhnevNJMK-000025] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3753B in 664.882834ms -{"time":"2025-07-28T22:01:36.668677+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1146} -{"time":"2025-07-28T22:01:36.668701+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:36.668685+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:36.812488+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:37.050778+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:37.050776+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":382} -{"time":"2025-07-28T22:01:37.05198+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:37.067833+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":17} -{"time":"2025-07-28T22:01:37.067849+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20011,"unique_prefixes":5834,"success":5834,"duration_ms":1550} -{"time":"2025-07-28T22:01:37.06784+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:37.071724+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:37.071758+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:37.076639+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:37.113344+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:37.11334+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":41} -2025/07/28 22:01:37 [akrotiri/RUhnevNJMK-000026] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3751B in 684.735958ms -2025/07/28 22:01:37 [akrotiri/RUhnevNJMK-000027] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 677.072292ms -{"time":"2025-07-28T22:01:37.865532+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:38 [akrotiri/RUhnevNJMK-000028] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3753B in 656.84075ms -{"time":"2025-07-28T22:01:38.123549+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:1042:1","peer_asn":"31042"} -{"time":"2025-07-28T22:01:38.201996+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:38.201992+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1088} -{"time":"2025-07-28T22:01:38.202064+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:38.229111+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":27} -{"time":"2025-07-28T22:01:38.229118+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:38.232187+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:01:38.232199+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":10662,"success":10662,"duration_ms":1163} -{"time":"2025-07-28T22:01:38.238932+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:38.23894+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:38 [akrotiri/RUhnevNJMK-000029] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 817.593584ms -{"time":"2025-07-28T22:01:38.883269+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"198.32.160.113","peer_asn":"15547"} -{"time":"2025-07-28T22:01:39.038654+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:39.127914+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:39 [akrotiri/RUhnevNJMK-000030] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3757B in 998.624625ms -2025/07/28 22:01:39 [akrotiri/RUhnevNJMK-000031] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3757B in 813.614125ms -{"time":"2025-07-28T22:01:40.048297+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:40.048293+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1809} -{"time":"2025-07-28T22:01:40.048326+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:01:40 [akrotiri/RUhnevNJMK-000032] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3757B in 664.02575ms -{"time":"2025-07-28T22:01:40.575297+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":526} -{"time":"2025-07-28T22:01:40.575302+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:40.577067+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:40.589974+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:40.589969+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":14} -{"time":"2025-07-28T22:01:40.591949+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:40.596354+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} -{"time":"2025-07-28T22:01:40.596365+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20026,"unique_prefixes":7743,"success":7743,"duration_ms":2363} -{"time":"2025-07-28T22:01:40.596433+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:40 [akrotiri/RUhnevNJMK-000033] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3756B in 668.358375ms -{"time":"2025-07-28T22:01:40.611783+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:40.64741+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":51} -{"time":"2025-07-28T22:01:40.64742+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:40.648513+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:40.64944+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:01:40.64945+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:41 [akrotiri/RUhnevNJMK-000034] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3754B in 664.970917ms -{"time":"2025-07-28T22:01:41.43949+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:41 [akrotiri/RUhnevNJMK-000035] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 658.788208ms -{"time":"2025-07-28T22:01:41.928459+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:41.928458+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1278} -{"time":"2025-07-28T22:01:41.92849+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:01:42 [akrotiri/RUhnevNJMK-000036] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3758B in 693.2295ms -{"time":"2025-07-28T22:01:42.369929+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":441} -{"time":"2025-07-28T22:01:42.36993+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:42.371139+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:42.386261+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":16} -{"time":"2025-07-28T22:01:42.386271+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:42.394882+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":8} -{"time":"2025-07-28T22:01:42.394892+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:42.394893+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":12278,"success":12278,"duration_ms":1797} -{"time":"2025-07-28T22:01:42.404314+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:42.428018+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":33} -{"time":"2025-07-28T22:01:42.428029+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:42.429143+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:42 [akrotiri/RUhnevNJMK-000037] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3754B in 688.135833ms -{"time":"2025-07-28T22:01:43.008942+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:43 [akrotiri/RUhnevNJMK-000038] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3757B in 664.126333ms -2025/07/28 22:01:43 [akrotiri/RUhnevNJMK-000039] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 677.257291ms -{"time":"2025-07-28T22:01:43.841036+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:43.841032+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1412} -{"time":"2025-07-28T22:01:43.841062+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:43.853732+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":20000008417,"total_messages":102400,"total_bytes":75578907,"total_mb":"72.08","messages_per_sec":"1127.10","bits_per_sec":"6631323","mbps":"6.63","total_dropped":0} -{"time":"2025-07-28T22:01:43.853746+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":15021,"queue_cap":100000,"processed":86436,"dropped":0,"avg_time":167993,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:01:43.85375+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":3340,"queue_cap":100000,"processed":98117,"dropped":0,"avg_time":70674,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:01:43.853756+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":41353,"queue_cap":100000,"processed":60104,"dropped":0,"avg_time":300199,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:01:43.853759+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":101458,"dropped":0,"avg_time":1315,"min_time":0,"max_time":893750} -{"time":"2025-07-28T22:01:43.881988+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:43.881984+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":40} -{"time":"2025-07-28T22:01:43.883058+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:43.885266+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:43.885273+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:43.890424+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":5} -{"time":"2025-07-28T22:01:43.890437+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":10463,"success":10463,"duration_ms":1494} -{"time":"2025-07-28T22:01:43.890438+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:43.897259+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:de8:4::1:8403:1","peer_asn":"18403"} -{"time":"2025-07-28T22:01:43.898879+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:43.920747+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":30} -{"time":"2025-07-28T22:01:43.920757+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:43.922453+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:44 [akrotiri/RUhnevNJMK-000040] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3758B in 831.70825ms -{"time":"2025-07-28T22:01:44.748197+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:44 [akrotiri/RUhnevNJMK-000041] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 911.975042ms -2025/07/28 22:01:45 [akrotiri/RUhnevNJMK-000042] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3762B in 782.325042ms -2025/07/28 22:01:45 [akrotiri/RUhnevNJMK-000043] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 664.596875ms -{"time":"2025-07-28T22:01:45.871246+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:45.871245+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1950} -{"time":"2025-07-28T22:01:45.871281+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:46.118781+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:43f8:6d0::60","peer_asn":"37468"} -2025/07/28 22:01:46 [akrotiri/RUhnevNJMK-000044] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3762B in 700.99625ms -{"time":"2025-07-28T22:01:46.175519+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:46.175516+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":304} -{"time":"2025-07-28T22:01:46.176861+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:46.187445+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":11} -{"time":"2025-07-28T22:01:46.187457+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:46.189629+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:46.197258+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":9} -{"time":"2025-07-28T22:01:46.197267+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:46.19727+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20004,"unique_prefixes":7607,"success":7607,"duration_ms":2305} -{"time":"2025-07-28T22:01:46.208587+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:46.233354+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":36} -{"time":"2025-07-28T22:01:46.233363+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:46.234494+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:46.236774+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:46.236788+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:46.278082+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.190","peer_asn":"31042"} -{"time":"2025-07-28T22:01:46.303317+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"103.200.113.1","peer_asn":"131477"} -2025/07/28 22:01:46 [akrotiri/RUhnevNJMK-000045] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3759B in 731.221208ms -{"time":"2025-07-28T22:01:47.062058+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:47 [akrotiri/RUhnevNJMK-000046] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3761B in 713.984792ms -{"time":"2025-07-28T22:01:47.967847+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv6 routes: context deadline exceeded"} -2025/07/28 22:01:47 [akrotiri/RUhnevNJMK-000047] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3751B in 1.001478875s -{"time":"2025-07-28T22:01:48.046005+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1809} -{"time":"2025-07-28T22:01:48.046025+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:48.04603+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:48.053493+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:48.053504+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} -{"time":"2025-07-28T22:01:48.053524+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20012,"unique_prefixes":13658,"success":13658,"duration_ms":1855} -{"time":"2025-07-28T22:01:48.065728+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:48.098741+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:48.098739+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":45} -{"time":"2025-07-28T22:01:48.104446+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:48.107992+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:48.108543+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":9} -{"time":"2025-07-28T22:01:48.469861+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:01:48 [akrotiri/RUhnevNJMK-000048] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 0B in 1.000097709s -{"time":"2025-07-28T22:01:48.974429+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:01:48 [akrotiri/RUhnevNJMK-000049] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 0B in 1.000212625s -{"time":"2025-07-28T22:01:49.056688+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:49.479411+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv6 routes: context deadline exceeded"} -2025/07/28 22:01:49 [akrotiri/RUhnevNJMK-000050] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3752B in 1.001190334s -{"time":"2025-07-28T22:01:49.670884+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:49.670884+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1562} -{"time":"2025-07-28T22:01:49.671005+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:49.758974+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:b18:10::3","peer_asn":"47787"} -2025/07/28 22:01:49 [akrotiri/RUhnevNJMK-000051] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 839.842917ms -{"time":"2025-07-28T22:01:49.998745+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:49.998746+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":327} -{"time":"2025-07-28T22:01:50.00002+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.003567+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} -{"time":"2025-07-28T22:01:50.003567+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:50.004983+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.005002+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} -{"time":"2025-07-28T22:01:50.005011+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20008,"unique_prefixes":11441,"success":11441,"duration_ms":1949} -{"time":"2025-07-28T22:01:50.017964+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.045446+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.045443+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":40} -{"time":"2025-07-28T22:01:50.046593+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:50 [akrotiri/RUhnevNJMK-000052] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3760B in 774.444042ms -{"time":"2025-07-28T22:01:50.36058+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":315} -{"time":"2025-07-28T22:01:50.360599+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:50.360588+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.465839+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":105} -{"time":"2025-07-28T22:01:50.465851+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:50.466493+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":0} -{"time":"2025-07-28T22:01:50.466502+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20005,"unique_prefixes":10838,"success":10838,"duration_ms":459} -{"time":"2025-07-28T22:01:50.467202+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.467208+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.48021+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.492528+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":25} -{"time":"2025-07-28T22:01:50.492541+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.493767+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.503146+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"196.60.8.60","peer_asn":"37468"} -{"time":"2025-07-28T22:01:50.866708+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":374} -{"time":"2025-07-28T22:01:50.866727+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:50.866719+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.886091+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":19} -{"time":"2025-07-28T22:01:50.886103+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:50.887451+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.890519+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:01:50.890527+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":11181,"success":11181,"duration_ms":422} -{"time":"2025-07-28T22:01:50.890528+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.89911+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.902593+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":12} -{"time":"2025-07-28T22:01:50.902608+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:50.903824+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:50.928769+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:50 [akrotiri/RUhnevNJMK-000053] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 975.599791ms -{"time":"2025-07-28T22:01:51.372775+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":470} -{"time":"2025-07-28T22:01:51.372795+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:51.372799+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:51.376672+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:51.376692+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:01:51.376724+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20005,"unique_prefixes":9565,"success":9565,"duration_ms":484} -{"time":"2025-07-28T22:01:51.389055+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:51.39203+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:51.392057+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":15} -{"time":"2025-07-28T22:01:51.393754+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:51.396432+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:51.396436+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} -2025/07/28 22:01:51 [akrotiri/RUhnevNJMK-000054] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 927.413375ms -2025/07/28 22:01:51 [akrotiri/RUhnevNJMK-000055] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3757B in 819.113583ms -{"time":"2025-07-28T22:01:51.997727+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:51.997727+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":601} -{"time":"2025-07-28T22:01:51.997816+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:52.102453+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":104} -{"time":"2025-07-28T22:01:52.10246+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:52.10359+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:52.107109+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:01:52.107116+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:52.107125+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20004,"unique_prefixes":13111,"success":13111,"duration_ms":728} -{"time":"2025-07-28T22:01:52.120087+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:52.125368+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":18} -{"time":"2025-07-28T22:01:52.125383+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:52 [akrotiri/RUhnevNJMK-000056] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3757B in 764.428833ms -{"time":"2025-07-28T22:01:52.522069+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":396} -{"time":"2025-07-28T22:01:52.522088+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:52.522092+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:52.530873+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":8} -{"time":"2025-07-28T22:01:52.530893+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20008,"unique_prefixes":8300,"success":8300,"duration_ms":421} -{"time":"2025-07-28T22:01:52.536166+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:52.536183+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:52.78679+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:52.981456+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:01:53 [akrotiri/RUhnevNJMK-000057] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 856.153458ms -{"time":"2025-07-28T22:01:53.124064+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":587} -{"time":"2025-07-28T22:01:53.12408+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:53.124084+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:53.323187+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:53.3232+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":199} -{"time":"2025-07-28T22:01:53.323227+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20022,"unique_prefixes":4708,"success":4708,"duration_ms":791} -2025/07/28 22:01:53 [akrotiri/RUhnevNJMK-000058] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 839.594375ms -{"time":"2025-07-28T22:01:53.332114+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:53.340367+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:53.340367+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":17} -{"time":"2025-07-28T22:01:53.344271+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:53.344279+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:01:53.610146+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":265} -{"time":"2025-07-28T22:01:53.610169+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:53.610173+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:53.620842+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":10} -{"time":"2025-07-28T22:01:53.620856+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":4890,"success":4890,"duration_ms":295} -{"time":"2025-07-28T22:01:53.627795+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:53.627804+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:53.820517+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:01:53 [akrotiri/RUhnevNJMK-000059] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3758B in 827.989667ms -{"time":"2025-07-28T22:01:53.853994+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":30000201583,"total_messages":164221,"total_bytes":120618255,"total_mb":"115.03","messages_per_sec":"1966.39","bits_per_sec":"11596129","mbps":"11.60","total_dropped":0} -{"time":"2025-07-28T22:01:53.85401+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":774,"queue_cap":100000,"processed":162002,"dropped":0,"avg_time":152896,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:01:53.854016+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":162777,"dropped":0,"avg_time":74576,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:01:53.85402+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":18910,"queue_cap":100000,"processed":143866,"dropped":0,"avg_time":203409,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:01:53.854024+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":162777,"dropped":0,"avg_time":1341,"min_time":0,"max_time":893750} -{"time":"2025-07-28T22:01:54.164784+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8::7942:0:1","peer_asn":"31042"} -{"time":"2025-07-28T22:01:54.268776+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":640} -{"time":"2025-07-28T22:01:54.268792+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:54.268796+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:54.290848+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.204","peer_asn":"48166"} -{"time":"2025-07-28T22:01:54.377264+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":108} -{"time":"2025-07-28T22:01:54.377323+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:54.379603+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":2} -{"time":"2025-07-28T22:01:54.379618+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20005,"unique_prefixes":6727,"success":6727,"duration_ms":757} -{"time":"2025-07-28T22:01:54.385689+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:54.3857+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:54 [akrotiri/RUhnevNJMK-000060] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3757B in 825.003458ms -{"time":"2025-07-28T22:01:54.620126+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:54.757402+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":371} -{"time":"2025-07-28T22:01:54.75744+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:54.757415+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:54.771937+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":14} -{"time":"2025-07-28T22:01:54.771967+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:54.77592+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:01:54.775934+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20068,"unique_prefixes":4580,"success":4580,"duration_ms":394} -{"time":"2025-07-28T22:01:54.786005+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:54.78602+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:54 [akrotiri/RUhnevNJMK-000061] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3754B in 791.541958ms -{"time":"2025-07-28T22:01:54.819854+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:55.507669+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:01:55 [akrotiri/RUhnevNJMK-000062] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3749B in 1.000674709s -{"time":"2025-07-28T22:01:55.516472+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:55.926886+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:55.926883+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1140} -{"time":"2025-07-28T22:01:55.92691+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:56.010468+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:01:56 [akrotiri/RUhnevNJMK-000063] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3752B in 1.001334417s -{"time":"2025-07-28T22:01:56.132226+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":205} -{"time":"2025-07-28T22:01:56.132246+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:56.142045+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":9} -{"time":"2025-07-28T22:01:56.142053+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:56.143826+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} -{"time":"2025-07-28T22:01:56.143836+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":4616,"success":4616,"duration_ms":1366} -{"time":"2025-07-28T22:01:56.150439+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:56.150453+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:56 [akrotiri/RUhnevNJMK-000064] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3758B in 709.048792ms -{"time":"2025-07-28T22:01:56.40149+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:56.461465+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:56.498296+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":347} -{"time":"2025-07-28T22:01:56.498314+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:56.498303+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:56.527365+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:56.527361+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":29} -{"time":"2025-07-28T22:01:56.530229+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:01:56.530242+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:56.531619+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} -{"time":"2025-07-28T22:01:56.531628+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20096,"unique_prefixes":4702,"success":4702,"duration_ms":386} -{"time":"2025-07-28T22:01:56.534991+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:56.534999+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:56 [akrotiri/RUhnevNJMK-000065] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 879.606875ms -{"time":"2025-07-28T22:01:57.218639+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":683} -{"time":"2025-07-28T22:01:57.218656+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.21866+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.376563+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":157} -{"time":"2025-07-28T22:01:57.376598+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":2747,"success":2747,"duration_ms":844} -{"time":"2025-07-28T22:01:57.381221+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:57.381245+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:57.484773+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:57.520041+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:01:57 [akrotiri/RUhnevNJMK-000066] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3749B in 1.001433584s -{"time":"2025-07-28T22:01:57.550907+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":169} -{"time":"2025-07-28T22:01:57.550928+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.550918+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:57.568894+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.568907+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":17} -{"time":"2025-07-28T22:01:57.638392+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":69} -{"time":"2025-07-28T22:01:57.638413+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":3087,"success":3087,"duration_ms":260} -{"time":"2025-07-28T22:01:57.641763+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:57.641773+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:01:57 [akrotiri/RUhnevNJMK-000067] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3756B in 716.546125ms -{"time":"2025-07-28T22:01:57.903423+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":261} -{"time":"2025-07-28T22:01:57.903441+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.903446+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:57.911246+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} -{"time":"2025-07-28T22:01:57.911263+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":3234,"success":3234,"duration_ms":272} -{"time":"2025-07-28T22:01:57.917214+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:57.917227+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:58.52962+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:01:58 [akrotiri/RUhnevNJMK-000068] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3746B in 1.00250825s -{"time":"2025-07-28T22:01:58.749637+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:58.795807+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:01:58.795809+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":878} -{"time":"2025-07-28T22:01:58.795909+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:58.909878+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:59.032233+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:01:59 [akrotiri/RUhnevNJMK-000069] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3750B in 1.000747791s -{"time":"2025-07-28T22:01:59.278713+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":482} -{"time":"2025-07-28T22:01:59.27872+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:59.286853+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":8} -{"time":"2025-07-28T22:01:59.28687+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:01:59.286874+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20018,"unique_prefixes":5462,"success":5462,"duration_ms":1374} -{"time":"2025-07-28T22:01:59.293299+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} -{"time":"2025-07-28T22:01:59.293401+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:59.293408+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:59.486233+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":192} -{"time":"2025-07-28T22:01:59.486251+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:59.486256+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:59.489588+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:01:59.489601+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20004,"unique_prefixes":3654,"success":3654,"duration_ms":201} -{"time":"2025-07-28T22:01:59.495081+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:59.495092+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:59.536741+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv6 routes: context deadline exceeded"} -2025/07/28 22:01:59 [akrotiri/RUhnevNJMK-000070] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3745B in 1.00385675s -{"time":"2025-07-28T22:01:59.803645+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":308} -{"time":"2025-07-28T22:01:59.803662+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:59.803666+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:01:59.816071+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":12} -{"time":"2025-07-28T22:01:59.816084+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":4612,"success":4612,"duration_ms":325} -{"time":"2025-07-28T22:01:59.820108+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:01:59.82012+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:00.037726+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} -2025/07/28 22:02:00 [akrotiri/RUhnevNJMK-000071] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3746B in 1.00245475s -{"time":"2025-07-28T22:02:00.183685+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:00.541692+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:02:00 [akrotiri/RUhnevNJMK-000072] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 0B in 1.000659084s -{"time":"2025-07-28T22:02:00.72946+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:00.729457+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":909} -{"time":"2025-07-28T22:02:00.729508+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:00 [akrotiri/RUhnevNJMK-000073] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3760B in 806.242167ms -{"time":"2025-07-28T22:02:00.962195+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:00.963073+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":233} -{"time":"2025-07-28T22:02:00.963157+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:00.964347+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:00.968086+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:02:00.9681+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":4158,"success":4158,"duration_ms":1151} -{"time":"2025-07-28T22:02:00.968106+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:00.971238+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:00.971246+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:00.972814+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:00.991363+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":20} -{"time":"2025-07-28T22:02:00.991373+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:01.323003+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":331} -{"time":"2025-07-28T22:02:01.323021+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:01.323025+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:01 [akrotiri/RUhnevNJMK-000074] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3758B in 778.859375ms -{"time":"2025-07-28T22:02:01.338148+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":15} -{"time":"2025-07-28T22:02:01.338164+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20012,"unique_prefixes":4922,"success":4922,"duration_ms":369} -{"time":"2025-07-28T22:02:01.694335+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:01.694351+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:01 [akrotiri/RUhnevNJMK-000075] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 746.671542ms -{"time":"2025-07-28T22:02:02.527352+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":832} -{"time":"2025-07-28T22:02:02.527368+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:02.527372+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:02 [akrotiri/RUhnevNJMK-000076] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3758B in 828.2645ms -2025/07/28 22:02:02 [akrotiri/RUhnevNJMK-000077] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 790.838542ms -{"time":"2025-07-28T22:02:02.934567+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":407} -{"time":"2025-07-28T22:02:02.934585+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20364,"unique_prefixes":6483,"success":6483,"duration_ms":1245} -{"time":"2025-07-28T22:02:03.259301+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:03.259317+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:03 [akrotiri/RUhnevNJMK-000078] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3757B in 759.507334ms -{"time":"2025-07-28T22:02:03.333738+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":74} -{"time":"2025-07-28T22:02:03.340439+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:03.340448+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:03.343294+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:03.50122+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"195.208.208.187","peer_asn":"9002"} -{"time":"2025-07-28T22:02:03.85491+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":40001051875,"total_messages":206848,"total_bytes":152904757,"total_mb":"145.82","messages_per_sec":"2447.99","bits_per_sec":"14525967","mbps":"14.53","total_dropped":0} -{"time":"2025-07-28T22:02:03.854966+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":0,"queue_cap":100000,"processed":205009,"dropped":0,"avg_time":135299,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:02:03.854971+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":205009,"dropped":0,"avg_time":67917,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:02:03.854975+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":0,"queue_cap":100000,"processed":205009,"dropped":0,"avg_time":186447,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:02:03.854978+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":205009,"dropped":0,"avg_time":1356,"min_time":0,"max_time":893750} -{"time":"2025-07-28T22:02:03.895341+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:03.895356+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:04.006624+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.92","peer_asn":"57111"} -{"time":"2025-07-28T22:02:04.032344+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"217.29.66.232","peer_asn":"54104"} -{"time":"2025-07-28T22:02:04.063156+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:02:04 [akrotiri/RUhnevNJMK-000079] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 0B in 1.000123417s -{"time":"2025-07-28T22:02:04.102976+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.249.210.89","peer_asn":"31042"} -{"time":"2025-07-28T22:02:04.194437+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:04 [akrotiri/RUhnevNJMK-000080] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 699.379083ms -{"time":"2025-07-28T22:02:04.54266+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:04 [akrotiri/RUhnevNJMK-000081] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 651.24025ms -2025/07/28 22:02:05 [akrotiri/RUhnevNJMK-000082] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 676.696875ms -{"time":"2025-07-28T22:02:05.417288+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:05.417282+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1521} -{"time":"2025-07-28T22:02:05.417375+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:05.590277+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":172} -{"time":"2025-07-28T22:02:05.590288+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:05.591547+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:05.595741+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} -{"time":"2025-07-28T22:02:05.595785+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:05.62215+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":26} -{"time":"2025-07-28T22:02:05.622167+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":8129,"success":8129,"duration_ms":1733} -{"time":"2025-07-28T22:02:05.622208+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:05.629494+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:05.706356+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:05.706354+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":84} -{"time":"2025-07-28T22:02:05.707624+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:05 [akrotiri/RUhnevNJMK-000083] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 692.927ms -{"time":"2025-07-28T22:02:06.044518+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:06 [akrotiri/RUhnevNJMK-000084] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 695.475375ms -2025/07/28 22:02:06 [akrotiri/RUhnevNJMK-000085] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 717.744166ms -{"time":"2025-07-28T22:02:06.818676+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"196.60.8.170","peer_asn":"327781"} -{"time":"2025-07-28T22:02:06.985463+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:06.985461+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1279} -{"time":"2025-07-28T22:02:06.985493+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:07.061728+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":76} -{"time":"2025-07-28T22:02:07.061736+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:07.06294+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:07.063785+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:07.063796+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:07.189417+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:07.207738+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":143} -{"time":"2025-07-28T22:02:07.207752+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20194,"unique_prefixes":6736,"success":6736,"duration_ms":1584} -{"time":"2025-07-28T22:02:07.207872+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:07.218064+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:07.28581+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:07.285805+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":77} -{"time":"2025-07-28T22:02:07.287001+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:07.288231+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:07.288241+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:07 [akrotiri/RUhnevNJMK-000086] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3759B in 688.240667ms -2025/07/28 22:02:07 [akrotiri/RUhnevNJMK-000087] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3759B in 793.6585ms -{"time":"2025-07-28T22:02:08.130214+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"80.81.192.113","peer_asn":"35320"} -2025/07/28 22:02:08 [akrotiri/RUhnevNJMK-000088] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3760B in 672.94475ms -{"time":"2025-07-28T22:02:08.4685+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} -{"time":"2025-07-28T22:02:08.470292+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} -2025/07/28 22:02:08 [akrotiri/RUhnevNJMK-000089] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 619.641709ms -{"time":"2025-07-28T22:02:08.809935+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:08.910564+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1622} -{"time":"2025-07-28T22:02:08.91058+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:08.910581+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:09.08868+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:09.088673+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":178} -{"time":"2025-07-28T22:02:09.089874+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:09.091669+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:09.091676+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:09.101102+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":9} -{"time":"2025-07-28T22:02:09.101114+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:09.10112+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":10964,"success":10964,"duration_ms":1892} -{"time":"2025-07-28T22:02:09.111578+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:09.168231+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:09.168228+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":67} -{"time":"2025-07-28T22:02:09.169589+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:09 [akrotiri/RUhnevNJMK-000090] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3759B in 690.310583ms -2025/07/28 22:02:09 [akrotiri/RUhnevNJMK-000091] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3760B in 750.233958ms -2025/07/28 22:02:10 [akrotiri/RUhnevNJMK-000092] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 696.605875ms -{"time":"2025-07-28T22:02:10.815146+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:10.815148+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1646} -{"time":"2025-07-28T22:02:10.815207+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:10 [akrotiri/RUhnevNJMK-000093] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 725.665625ms -{"time":"2025-07-28T22:02:10.934278+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:10.98418+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:10.984178+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":169} -{"time":"2025-07-28T22:02:10.985216+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:11.019069+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":34} -{"time":"2025-07-28T22:02:11.019086+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":11565,"success":11565,"duration_ms":1917} -{"time":"2025-07-28T22:02:11.019073+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:11.022362+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:11.02237+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:11.027253+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:11.071644+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":49} -{"time":"2025-07-28T22:02:11.071653+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:11.072793+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:11 [akrotiri/RUhnevNJMK-000094] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 708.955292ms -2025/07/28 22:02:11 [akrotiri/RUhnevNJMK-000095] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 730.855875ms -{"time":"2025-07-28T22:02:12.396772+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1325} -{"time":"2025-07-28T22:02:12.396791+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:12.396781+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:12 [akrotiri/RUhnevNJMK-000096] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 807.181959ms -{"time":"2025-07-28T22:02:12.558125+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:12.558121+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":161} -{"time":"2025-07-28T22:02:12.559317+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:12.566894+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":8} -{"time":"2025-07-28T22:02:12.5669+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:12.566909+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":9513,"success":9513,"duration_ms":1546} -{"time":"2025-07-28T22:02:12.575771+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:12.601533+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":34} -{"time":"2025-07-28T22:02:12.601625+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:12.602844+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:12 [akrotiri/RUhnevNJMK-000097] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 707.405ms -{"time":"2025-07-28T22:02:13.180238+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2400:c3e0::2","peer_asn":"142271"} -{"time":"2025-07-28T22:02:13.185338+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:13 [akrotiri/RUhnevNJMK-000098] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 768.195ms -{"time":"2025-07-28T22:02:13.597484+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} -{"time":"2025-07-28T22:02:13.597504+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} -2025/07/28 22:02:13 [akrotiri/RUhnevNJMK-000099] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 638.447917ms -{"time":"2025-07-28T22:02:13.854449+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":50000502000,"total_messages":268482,"total_bytes":197322408,"total_mb":"188.18","messages_per_sec":"2941.38","bits_per_sec":"17253481","mbps":"17.25","total_dropped":0} -{"time":"2025-07-28T22:02:13.854471+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":8769,"queue_cap":100000,"processed":257345,"dropped":0,"avg_time":140451,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:02:13.854477+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":2627,"queue_cap":100000,"processed":263487,"dropped":0,"avg_time":62550,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:02:13.854482+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":31077,"queue_cap":100000,"processed":235037,"dropped":0,"avg_time":199546,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:02:13.854486+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":266115,"dropped":0,"avg_time":1363,"min_time":0,"max_time":893750} -{"time":"2025-07-28T22:02:14.145899+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1544} -{"time":"2025-07-28T22:02:14.145918+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:14.145905+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:14 [akrotiri/RUhnevNJMK-000100] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3765B in 689.966125ms -{"time":"2025-07-28T22:02:14.350023+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:14.350018+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":204} -{"time":"2025-07-28T22:02:14.35122+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:14.355148+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} -{"time":"2025-07-28T22:02:14.35516+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:14.357295+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":2} -{"time":"2025-07-28T22:02:14.357307+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:14.357308+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":9022,"success":9022,"duration_ms":1789} -{"time":"2025-07-28T22:02:14.364638+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:14.382676+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":25} -{"time":"2025-07-28T22:02:14.382723+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:14.383971+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:14 [akrotiri/RUhnevNJMK-000101] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3760B in 774.580833ms -2025/07/28 22:02:15 [akrotiri/RUhnevNJMK-000102] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3760B in 689.282416ms -{"time":"2025-07-28T22:02:15.337123+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:15 [akrotiri/RUhnevNJMK-000103] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 675.630292ms -{"time":"2025-07-28T22:02:15.867087+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1484} -{"time":"2025-07-28T22:02:15.867151+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:15.867183+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:16.09999+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":232} -{"time":"2025-07-28T22:02:16.099996+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:16.101169+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:16.10524+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} -{"time":"2025-07-28T22:02:16.10525+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:16.118463+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":13} -{"time":"2025-07-28T22:02:16.118474+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7900,"success":7900,"duration_ms":1759} -{"time":"2025-07-28T22:02:16.118479+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:16.125268+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:16.146214+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":27} -{"time":"2025-07-28T22:02:16.146222+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:16.147624+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:16.245692+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"195.208.209.174","peer_asn":"25227"} -2025/07/28 22:02:16 [akrotiri/RUhnevNJMK-000104] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 744.318792ms -2025/07/28 22:02:16 [akrotiri/RUhnevNJMK-000105] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 720.358209ms -{"time":"2025-07-28T22:02:17.095839+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:17.377271+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1231} -{"time":"2025-07-28T22:02:17.377291+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:17.37728+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:17 [akrotiri/RUhnevNJMK-000106] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3765B in 854.610417ms -{"time":"2025-07-28T22:02:18.142328+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:02:18 [akrotiri/RUhnevNJMK-000107] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 0B in 1.001162084s -{"time":"2025-07-28T22:02:18.283532+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":906} -{"time":"2025-07-28T22:02:18.283584+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:18.28622+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:18.293948+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":10} -{"time":"2025-07-28T22:02:18.294034+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:18.306171+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":12} -{"time":"2025-07-28T22:02:18.306201+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20074,"unique_prefixes":7264,"success":7264,"duration_ms":2186} -{"time":"2025-07-28T22:02:18.306248+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:18.31344+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:18.376117+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":69} -{"time":"2025-07-28T22:02:18.376127+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:18.377295+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:18.651618+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:02:18 [akrotiri/RUhnevNJMK-000108] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 0B in 1.000277s -2025/07/28 22:02:18 [akrotiri/RUhnevNJMK-000109] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 829.337292ms -{"time":"2025-07-28T22:02:19.069595+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":693} -{"time":"2025-07-28T22:02:19.069616+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:19.069603+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:19.16855+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":98} -{"time":"2025-07-28T22:02:19.168572+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:19.169732+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:19.175017+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} -{"time":"2025-07-28T22:02:19.175033+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20081,"unique_prefixes":4204,"success":4204,"duration_ms":867} -{"time":"2025-07-28T22:02:19.175051+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:19.185858+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:19.21954+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":44} -{"time":"2025-07-28T22:02:19.219597+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:19.377788+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:19 [akrotiri/RUhnevNJMK-000110] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3761B in 814.847958ms -2025/07/28 22:02:19 [akrotiri/RUhnevNJMK-000111] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 719.801209ms -{"time":"2025-07-28T22:02:19.990014+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:20.050033+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":830} -{"time":"2025-07-28T22:02:20.050044+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:20.050049+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:20.132782+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":82} -{"time":"2025-07-28T22:02:20.132799+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:20.185378+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":52} -{"time":"2025-07-28T22:02:20.185389+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:20.188867+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:02:20.188882+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":5380,"success":5380,"duration_ms":1012} -{"time":"2025-07-28T22:02:20.193335+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:20.193347+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:20 [akrotiri/RUhnevNJMK-000112] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3759B in 794.168125ms -{"time":"2025-07-28T22:02:20.735624+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:20.736657+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:4::73ab:1","peer_asn":"29611"} -{"time":"2025-07-28T22:02:20.829699+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":636} -{"time":"2025-07-28T22:02:20.829708+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:20.829745+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:20 [akrotiri/RUhnevNJMK-000113] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3760B in 692.779375ms -{"time":"2025-07-28T22:02:20.901859+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} -{"time":"2025-07-28T22:02:20.901886+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} -{"time":"2025-07-28T22:02:20.904412+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:20.975775+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":146} -{"time":"2025-07-28T22:02:20.975797+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:20.98256+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} -{"time":"2025-07-28T22:02:20.98258+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20027,"unique_prefixes":3840,"success":3840,"duration_ms":792} -{"time":"2025-07-28T22:02:20.98259+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:20.987028+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} -{"time":"2025-07-28T22:02:20.989719+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:20.989727+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:21.164791+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"193.239.118.249","peer_asn":"41255"} -{"time":"2025-07-28T22:02:21.339342+02:00","level":"DEBUG","msg":"System stats","source":"cli.go:40","func":"routewatch.logDebugStats","goroutines":35,"alloc_mb":98,"total_alloc_mb":1793,"sys_mb":207,"num_gc":42,"heap_alloc_mb":98,"heap_sys_mb":192,"heap_idle_mb":68,"heap_inuse_mb":124,"heap_released_mb":29,"stack_inuse_mb":3} -2025/07/28 22:02:21 [akrotiri/RUhnevNJMK-000114] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3758B in 754.739875ms -{"time":"2025-07-28T22:02:21.81308+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":823} -{"time":"2025-07-28T22:02:21.813098+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:21.813102+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:21.9152+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":102} -{"time":"2025-07-28T22:02:21.915219+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20013,"unique_prefixes":5695,"success":5695,"duration_ms":930} -{"time":"2025-07-28T22:02:21.923164+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:21.923177+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:21.993527+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:22 [akrotiri/RUhnevNJMK-000116] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3760B in 708.570208ms -2025/07/28 22:02:22 [akrotiri/RUhnevNJMK-000115] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3760B in 798.812542ms -{"time":"2025-07-28T22:02:22.824677+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:22 [akrotiri/RUhnevNJMK-000117] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58143 - 200 3763B in 700.42575ms -{"time":"2025-07-28T22:02:23.125161+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1201} -{"time":"2025-07-28T22:02:23.12518+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:23.125164+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:23.255459+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":130} -{"time":"2025-07-28T22:02:23.255543+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:23.256718+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:23.260601+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} -{"time":"2025-07-28T22:02:23.260638+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:23.294896+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":34} -{"time":"2025-07-28T22:02:23.294913+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":9024,"success":9024,"duration_ms":1378} -{"time":"2025-07-28T22:02:23.294953+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:23.302047+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:23.349207+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":54} -{"time":"2025-07-28T22:02:23.34922+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:23 [akrotiri/RUhnevNJMK-000118] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3758B in 746.88625ms -{"time":"2025-07-28T22:02:23.854906+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":60000917708,"total_messages":320512,"total_bytes":234264434,"total_mb":"223.41","messages_per_sec":"3258.53","bits_per_sec":"19099531","mbps":"19.10","total_dropped":0} -{"time":"2025-07-28T22:02:23.85493+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":0,"queue_cap":100000,"processed":317647,"dropped":0,"avg_time":140270,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:02:23.854936+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":317647,"dropped":0,"avg_time":65815,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:02:23.85494+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":35927,"queue_cap":100000,"processed":281719,"dropped":0,"avg_time":204549,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:02:23.854943+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":317647,"dropped":0,"avg_time":1398,"min_time":0,"max_time":893750} -2025/07/28 22:02:23 [akrotiri/RUhnevNJMK-000119] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3756B in 692.845583ms -{"time":"2025-07-28T22:02:24.096686+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:24.275413+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":926} -{"time":"2025-07-28T22:02:24.275431+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:24.275468+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:24.40062+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":125} -{"time":"2025-07-28T22:02:24.40063+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:24.404416+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:02:24.40443+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":6814,"success":6814,"duration_ms":1108} -{"time":"2025-07-28T22:02:24.409663+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:24.409673+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:24 [akrotiri/RUhnevNJMK-000120] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3759B in 813.489125ms -2025/07/28 22:02:24 [akrotiri/RUhnevNJMK-000121] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3759B in 678.516875ms -{"time":"2025-07-28T22:02:25.072382+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:25.075156+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:25.251803+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:25.251801+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":842} -{"time":"2025-07-28T22:02:25.251894+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:25.379433+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":127} -{"time":"2025-07-28T22:02:25.379445+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:25.383072+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:25.383084+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:25.386449+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} -{"time":"2025-07-28T22:02:25.386461+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20081,"unique_prefixes":5665,"success":5665,"duration_ms":981} -{"time":"2025-07-28T22:02:25.390267+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:25.390276+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:25 [akrotiri/RUhnevNJMK-000122] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3759B in 813.866875ms -2025/07/28 22:02:25 [akrotiri/RUhnevNJMK-000123] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3759B in 694.576959ms -{"time":"2025-07-28T22:02:26.00622+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":615} -{"time":"2025-07-28T22:02:26.006237+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:26.006241+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:26.025971+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":19} -{"time":"2025-07-28T22:02:26.025987+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":3452,"success":3452,"duration_ms":638} -{"time":"2025-07-28T22:02:26.031698+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:26.031707+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:26.32688+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:26 [akrotiri/RUhnevNJMK-000124] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 775.815208ms -2025/07/28 22:02:26 [akrotiri/RUhnevNJMK-000125] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 688.321167ms -{"time":"2025-07-28T22:02:26.985101+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:26.985096+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":953} -{"time":"2025-07-28T22:02:26.985216+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:27.018409+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":33} -{"time":"2025-07-28T22:02:27.018424+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:27.022903+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:02:27.022914+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20312,"unique_prefixes":6472,"success":6472,"duration_ms":996} -{"time":"2025-07-28T22:02:27.02945+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:27.029459+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:27.304286+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"193.107.13.3","peer_asn":"47787"} -{"time":"2025-07-28T22:02:27.362916+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:27.363303+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:27 [akrotiri/RUhnevNJMK-000126] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 738.491542ms -{"time":"2025-07-28T22:02:27.630463+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} -{"time":"2025-07-28T22:02:27.630505+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} -2025/07/28 22:02:27 [akrotiri/RUhnevNJMK-000127] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3765B in 685.237542ms -{"time":"2025-07-28T22:02:28.025876+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":996} -{"time":"2025-07-28T22:02:28.0259+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:28.025882+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:28.129253+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":103} -{"time":"2025-07-28T22:02:28.129269+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:28.132555+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:28.132566+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:28.199832+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":67} -{"time":"2025-07-28T22:02:28.199848+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20083,"unique_prefixes":8328,"success":8328,"duration_ms":1176} -{"time":"2025-07-28T22:02:28.208629+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:28.208644+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:28.411152+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:28 [akrotiri/RUhnevNJMK-000128] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 760.79625ms -2025/07/28 22:02:28 [akrotiri/RUhnevNJMK-000129] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 717.950541ms -{"time":"2025-07-28T22:02:29.028955+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:29 [akrotiri/RUhnevNJMK-000130] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3765B in 670.043167ms -{"time":"2025-07-28T22:02:29.40823+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:29.408224+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1199} -{"time":"2025-07-28T22:02:29.408301+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:29.452313+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":44} -{"time":"2025-07-28T22:02:29.452327+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:29.453511+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:29.455314+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:29.455327+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:29.463001+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} -{"time":"2025-07-28T22:02:29.463008+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:29.463015+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20005,"unique_prefixes":10039,"success":10039,"duration_ms":1262} -{"time":"2025-07-28T22:02:29.472385+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:29.517613+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:29.517613+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":54} -{"time":"2025-07-28T22:02:29.626326+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2602:fa91:0:cccc::20","peer_asn":"53427"} -{"time":"2025-07-28T22:02:29.853958+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:29 [akrotiri/RUhnevNJMK-000131] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 722.559458ms -2025/07/28 22:02:30 [akrotiri/RUhnevNJMK-000132] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 725.408916ms -{"time":"2025-07-28T22:02:30.539641+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:30.916055+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1398} -{"time":"2025-07-28T22:02:30.916073+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:30.916073+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:31 [akrotiri/RUhnevNJMK-000133] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 844.985791ms -{"time":"2025-07-28T22:02:31.079929+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":163} -{"time":"2025-07-28T22:02:31.079934+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:31.081106+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:31.082394+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:31.082405+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:31.086892+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} -{"time":"2025-07-28T22:02:31.0869+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:31.086904+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20085,"unique_prefixes":10164,"success":10164,"duration_ms":1622} -{"time":"2025-07-28T22:02:31.09533+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:31.136525+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:31.136538+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":49} -{"time":"2025-07-28T22:02:31.330349+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:31 [akrotiri/RUhnevNJMK-000134] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 843.047166ms -2025/07/28 22:02:31 [akrotiri/RUhnevNJMK-000135] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 696.199375ms -{"time":"2025-07-28T22:02:31.956921+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:32.395042+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1258} -{"time":"2025-07-28T22:02:32.395073+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:32.395049+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:32 [akrotiri/RUhnevNJMK-000136] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 748.732333ms -{"time":"2025-07-28T22:02:32.560364+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":165} -{"time":"2025-07-28T22:02:32.560375+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:32.561897+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:32.563374+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:32.563408+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:32.575871+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":12} -{"time":"2025-07-28T22:02:32.5759+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":8098,"success":8098,"duration_ms":1487} -{"time":"2025-07-28T22:02:32.575887+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:32.587886+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:32.63889+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":62} -{"time":"2025-07-28T22:02:32.638901+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:32.749307+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:33 [akrotiri/RUhnevNJMK-000137] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 909.860875ms -2025/07/28 22:02:33 [akrotiri/RUhnevNJMK-000138] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 733.938333ms -{"time":"2025-07-28T22:02:33.533377+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:33.682562+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1043} -{"time":"2025-07-28T22:02:33.682577+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:33.682581+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:33.781885+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"102.67.56.1","peer_asn":"328474"} -{"time":"2025-07-28T22:02:33.810403+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:33.810405+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":127} -{"time":"2025-07-28T22:02:33.810484+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20008,"unique_prefixes":8821,"success":8821,"duration_ms":1233} -{"time":"2025-07-28T22:02:33.820477+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:33.854059+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":70000008875,"total_messages":379904,"total_bytes":276608958,"total_mb":"263.79","messages_per_sec":"3549.48","bits_per_sec":"20607761","mbps":"20.61","total_dropped":0} -{"time":"2025-07-28T22:02:33.854082+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":7507,"queue_cap":100000,"processed":369056,"dropped":0,"avg_time":136381,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:02:33.854094+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":3076,"queue_cap":100000,"processed":373487,"dropped":0,"avg_time":63116,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:02:33.854098+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":46260,"queue_cap":100000,"processed":330303,"dropped":0,"avg_time":206289,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:02:33.854102+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":376564,"dropped":0,"avg_time":1390,"min_time":0,"max_time":893750} -{"time":"2025-07-28T22:02:33.875217+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:33.875218+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":64} -{"time":"2025-07-28T22:02:33.87645+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:33.878297+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:33.878299+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -2025/07/28 22:02:33 [akrotiri/RUhnevNJMK-000139] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 793.000541ms -2025/07/28 22:02:34 [akrotiri/RUhnevNJMK-000140] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 837.306833ms -2025/07/28 22:02:34 [akrotiri/RUhnevNJMK-000141] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3762B in 703.82025ms -{"time":"2025-07-28T22:02:34.909427+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:34.909427+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1031} -{"time":"2025-07-28T22:02:34.909509+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:34.926855+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:12f8::221:238","peer_asn":"262317"} -{"time":"2025-07-28T22:02:35.044223+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":134} -{"time":"2025-07-28T22:02:35.044233+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:35.045434+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:35.051495+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} -{"time":"2025-07-28T22:02:35.051508+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20391,"unique_prefixes":6464,"success":6464,"duration_ms":1239} -{"time":"2025-07-28T22:02:35.051522+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:35.058036+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:35.10469+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":53} -{"time":"2025-07-28T22:02:35.104698+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:35.138504+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:35.402151+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:35 [akrotiri/RUhnevNJMK-000142] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 773.275625ms -2025/07/28 22:02:35 [akrotiri/RUhnevNJMK-000143] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3767B in 698.89025ms -{"time":"2025-07-28T22:02:35.985033+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":880} -{"time":"2025-07-28T22:02:35.985056+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:35.985042+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:35.987733+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} -{"time":"2025-07-28T22:02:35.987744+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:36.023119+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":35} -{"time":"2025-07-28T22:02:36.023131+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:36.037054+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":13} -{"time":"2025-07-28T22:02:36.037068+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7637,"success":7637,"duration_ms":984} -{"time":"2025-07-28T22:02:36.044981+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:36.044992+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:36.514029+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:36 [akrotiri/RUhnevNJMK-000144] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3762B in 800.69575ms -{"time":"2025-07-28T22:02:36.925546+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:37 [akrotiri/RUhnevNJMK-000145] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3766B in 844.402ms -{"time":"2025-07-28T22:02:37.443264+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1398} -{"time":"2025-07-28T22:02:37.443281+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:37.443306+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:37.59141+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":148} -{"time":"2025-07-28T22:02:37.591422+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:37.592849+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:37.597874+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} -{"time":"2025-07-28T22:02:37.597887+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:37.606465+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":8} -{"time":"2025-07-28T22:02:37.606477+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:37.606481+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":10163,"success":10163,"duration_ms":1568} -{"time":"2025-07-28T22:02:37.615618+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:37.683969+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:37.683965+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":77} -2025/07/28 22:02:37 [akrotiri/RUhnevNJMK-000146] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 783.588542ms -{"time":"2025-07-28T22:02:37.739874+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:37 [akrotiri/RUhnevNJMK-000147] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3763B in 711.794ms -2025/07/28 22:02:38 [akrotiri/RUhnevNJMK-000148] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 798.138125ms -2025/07/28 22:02:38 [akrotiri/RUhnevNJMK-000149] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 746.51125ms -{"time":"2025-07-28T22:02:39.009493+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:39.111468+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:39.111463+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1427} -{"time":"2025-07-28T22:02:39.111544+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:39.26903+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":157} -{"time":"2025-07-28T22:02:39.269098+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:39.270493+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:39.280177+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":11} -{"time":"2025-07-28T22:02:39.280189+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:39.30113+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":20} -{"time":"2025-07-28T22:02:39.301137+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:39.301153+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20009,"unique_prefixes":9103,"success":9103,"duration_ms":1693} -{"time":"2025-07-28T22:02:39.312847+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:39.342309+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":41} -{"time":"2025-07-28T22:02:39.342337+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -2025/07/28 22:02:39 [akrotiri/RUhnevNJMK-000150] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3761B in 725.073583ms -{"time":"2025-07-28T22:02:39.582433+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:39 [akrotiri/RUhnevNJMK-000151] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 727.854291ms -2025/07/28 22:02:40 [akrotiri/RUhnevNJMK-000152] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 671.548042ms -{"time":"2025-07-28T22:02:40.491044+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:40.782978+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:1042:1","peer_asn":"31042"} -2025/07/28 22:02:40 [akrotiri/RUhnevNJMK-000153] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3767B in 711.36175ms -{"time":"2025-07-28T22:02:41.095104+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1752} -{"time":"2025-07-28T22:02:41.095118+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:41.095122+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:41.300716+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:41.300746+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":205} -{"time":"2025-07-28T22:02:41.30229+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:41.306222+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} -{"time":"2025-07-28T22:02:41.306249+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:41.319617+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":13} -{"time":"2025-07-28T22:02:41.319661+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":13074,"success":13074,"duration_ms":2017} -{"time":"2025-07-28T22:02:41.319656+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:41.331607+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:41.394339+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":74} -{"time":"2025-07-28T22:02:41.394383+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:41.397175+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:41 [akrotiri/RUhnevNJMK-000154] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3763B in 734.252375ms -{"time":"2025-07-28T22:02:42.005608+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"198.32.160.113","peer_asn":"15547"} -2025/07/28 22:02:42 [akrotiri/RUhnevNJMK-000155] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 766.4015ms -{"time":"2025-07-28T22:02:42.21861+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:42 [akrotiri/RUhnevNJMK-000156] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3767B in 740.036666ms -2025/07/28 22:02:42 [akrotiri/RUhnevNJMK-000157] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3768B in 689.262625ms -{"time":"2025-07-28T22:02:42.990777+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:42.990769+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1596} -{"time":"2025-07-28T22:02:42.990857+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:43.020875+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":30} -{"time":"2025-07-28T22:02:43.020888+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:43.021961+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:43.023905+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} -{"time":"2025-07-28T22:02:43.02392+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:43.029445+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":5} -{"time":"2025-07-28T22:02:43.029456+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":9684,"success":9684,"duration_ms":1707} -{"time":"2025-07-28T22:02:43.029456+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:43.040738+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:43.226642+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":197} -{"time":"2025-07-28T22:02:43.226649+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:43.227774+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:43 [akrotiri/RUhnevNJMK-000158] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 696.743167ms -{"time":"2025-07-28T22:02:43.854213+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":80000102792,"total_messages":435712,"total_bytes":317323689,"total_mb":"302.62","messages_per_sec":"3951.39","bits_per_sec":"22934695","mbps":"22.93","total_dropped":0} -{"time":"2025-07-28T22:02:43.854236+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":5218,"queue_cap":100000,"processed":426676,"dropped":0,"avg_time":139988,"min_time":0,"max_time":3461305541} -{"time":"2025-07-28T22:02:43.854242+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":431895,"dropped":0,"avg_time":63316,"min_time":0,"max_time":2677144500} -{"time":"2025-07-28T22:02:43.854246+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":56656,"queue_cap":100000,"processed":375238,"dropped":0,"avg_time":206146,"min_time":0,"max_time":3687716542} -{"time":"2025-07-28T22:02:43.854261+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":431895,"dropped":0,"avg_time":1390,"min_time":0,"max_time":912250} -2025/07/28 22:02:43 [akrotiri/RUhnevNJMK-000159] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3764B in 703.21525ms -2025/07/28 22:02:44 [akrotiri/RUhnevNJMK-000160] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 651.367167ms -{"time":"2025-07-28T22:02:44.543673+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:45 [akrotiri/RUhnevNJMK-000161] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3767B in 760.279792ms -{"time":"2025-07-28T22:02:45.323885+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:45.323882+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2097} -{"time":"2025-07-28T22:02:45.323913+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -2025/07/28 22:02:45 [akrotiri/RUhnevNJMK-000162] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3768B in 657.70675ms -{"time":"2025-07-28T22:02:45.594589+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -{"time":"2025-07-28T22:02:45.594587+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":270} -{"time":"2025-07-28T22:02:45.595844+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:45.599364+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} -{"time":"2025-07-28T22:02:45.599381+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:45.606436+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} -{"time":"2025-07-28T22:02:45.606443+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:45.60645+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20190,"unique_prefixes":13593,"success":13593,"duration_ms":2575} -{"time":"2025-07-28T22:02:45.619036+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:45.636371+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":29} -{"time":"2025-07-28T22:02:45.636478+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} -{"time":"2025-07-28T22:02:45.6379+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -2025/07/28 22:02:46 [akrotiri/RUhnevNJMK-000163] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3761B in 814.492334ms -{"time":"2025-07-28T22:02:46.236652+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} -2025/07/28 22:02:46 [akrotiri/RUhnevNJMK-000164] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3764B in 739.1915ms -2025/07/28 22:02:47 [akrotiri/RUhnevNJMK-000165] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 3765B in 751.214792ms -2025/07/28 22:02:47 [akrotiri/RUhnevNJMK-000166] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58144 - 200 3765B in 638.575917ms -{"time":"2025-07-28T22:02:47.492969+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1856} -{"time":"2025-07-28T22:02:47.492977+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} -{"time":"2025-07-28T22:02:47.492986+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} -{"time":"2025-07-28T22:02:48.225361+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:de8:4::1:8403:1","peer_asn":"18403"} -{"time":"2025-07-28T22:02:48.265211+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} -2025/07/28 22:02:48 [akrotiri/RUhnevNJMK-000167] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:58141 - 200 0B in 1.0000955s -panic: runtime error: invalid memory address or nil pointer dereference -[signal SIGSEGV: segmentation violation code=0x2 addr=0x61 pc=0x1007dfca8] - -goroutine 211890 [running]: -database/sql.(*Rows).closemuRUnlockIfHeldByScan(0x1400a08a000?) - /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3412 +0x18 -database/sql.(*Rows).Close(0x0) - /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3439 +0x20 -git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistributionContext.func1() - /Users/user/dev/routewatch/internal/database/database.go:915 +0x24 -git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistributionContext(0x14000166820, {0x100e271b0, 0x140002004d0}) - /Users/user/dev/routewatch/internal/database/database.go:935 +0x2fc -git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStatsContext(0x14000166820, {0x100e271b0, 0x140002004d0}) - /Users/user/dev/routewatch/internal/database/database.go:813 +0x4ec -git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() - /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x6c -created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 211873 - /Users/user/dev/routewatch/internal/server/handlers.go:235 +0x1b8 +{"time":"2025-07-28T22:06:10.5161+02:00","level":"INFO","msg":"Starting RouteWatch","source":"app.go:64","func":"routewatch.(*RouteWatch).Run"} +{"time":"2025-07-28T22:06:10.516303+02:00","level":"INFO","msg":"Using batched database handlers for improved performance","source":"app.go:76","func":"routewatch.(*RouteWatch).Run"} +{"time":"2025-07-28T22:06:10.517982+02:00","level":"INFO","msg":"Starting HTTP server","source":"server.go:52","func":"server.(*Server).Start","port":"8080"} +{"time":"2025-07-28T22:06:13.171541+02:00","level":"INFO","msg":"Connected to RIS Live stream","source":"streamer.go:413","func":"streamer.(*Streamer).stream"} +{"time":"2025-07-28T22:06:13.526167+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:13.526195+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:14.080201+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:14.517968+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:14.759124+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1232} +{"time":"2025-07-28T22:06:14.759145+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:14.759131+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:14.958983+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":199} +{"time":"2025-07-28T22:06:14.958989+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:14.961951+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:06:14.961959+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:14.962699+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":0} +{"time":"2025-07-28T22:06:14.962706+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":15002,"unique_prefixes":4040,"success":4040,"duration_ms":1444} +{"time":"2025-07-28T22:06:14.967499+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:14.967511+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:15.057852+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:15.509654+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"195.208.208.187","peer_asn":"9002"} +{"time":"2025-07-28T22:06:15.700523+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":732} +{"time":"2025-07-28T22:06:15.700545+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:15.70055+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:15.707031+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:15.707039+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:06:15.707051+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25025,"unique_prefixes":4206,"success":4206,"duration_ms":743} +{"time":"2025-07-28T22:06:15.711882+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:15.717319+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":10} +{"time":"2025-07-28T22:06:15.717335+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:15.718515+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:15.843046+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:16.208683+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"217.29.66.232","peer_asn":"54104"} +{"time":"2025-07-28T22:06:16.261113+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":543} +{"time":"2025-07-28T22:06:16.261132+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:16.261137+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:16.263457+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:16.263513+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":2} +{"time":"2025-07-28T22:06:16.263537+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":4853,"success":4853,"duration_ms":555} +{"time":"2025-07-28T22:06:16.275864+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:16.294769+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:16.294769+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":31} +{"time":"2025-07-28T22:06:16.297071+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:16.297924+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:16.297943+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} +{"time":"2025-07-28T22:06:16.577547+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"27.111.229.239","peer_asn":"17639"} +{"time":"2025-07-28T22:06:16.753285+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:16.753285+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":455} +{"time":"2025-07-28T22:06:16.753319+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:16.771728+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":18} +{"time":"2025-07-28T22:06:16.771743+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:16.773378+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:16.773387+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":6202,"success":6202,"duration_ms":507} +{"time":"2025-07-28T22:06:16.78008+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:16.780089+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:17.176344+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:17.225406+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":445} +{"time":"2025-07-28T22:06:17.225415+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:17.225422+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:17.242115+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":16} +{"time":"2025-07-28T22:06:17.242132+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:17.243674+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:17.243683+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25002,"unique_prefixes":7954,"success":7954,"duration_ms":469} +{"time":"2025-07-28T22:06:17.330666+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:17.330679+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:17.396854+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:18.231576+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":900} +{"time":"2025-07-28T22:06:18.231634+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:18.231599+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:18.244061+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":12} +{"time":"2025-07-28T22:06:18.244086+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:18.250707+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:18.250985+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:06:18.251003+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25059,"unique_prefixes":7393,"success":7393,"duration_ms":927} +{"time":"2025-07-28T22:06:18.25105+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:18.268857+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":17} +{"time":"2025-07-28T22:06:18.795748+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:18.795764+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:19.062881+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":267} +{"time":"2025-07-28T22:06:19.062896+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:19.0629+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:19.066952+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:06:19.066968+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25016,"unique_prefixes":5037,"success":5037,"duration_ms":277} +{"time":"2025-07-28T22:06:19.436596+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:19.436636+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:19.464446+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":27} +{"time":"2025-07-28T22:06:19.678563+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:19.678613+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:19.682977+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.249.210.89","peer_asn":"31042"} +{"time":"2025-07-28T22:06:19.691263+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":12} +{"time":"2025-07-28T22:06:19.899012+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"196.60.8.170","peer_asn":"327781"} +{"time":"2025-07-28T22:06:19.970392+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:19.970406+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:20.225584+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:20.26698+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":296} +{"time":"2025-07-28T22:06:20.267003+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:20.267039+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:20.285609+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":18} +{"time":"2025-07-28T22:06:20.285642+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:20.286756+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:20.286767+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25060,"unique_prefixes":5413,"success":5413,"duration_ms":321} +{"time":"2025-07-28T22:06:21.006745+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"80.81.192.113","peer_asn":"35320"} +{"time":"2025-07-28T22:06:21.026459+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.92","peer_asn":"57111"} +{"time":"2025-07-28T22:06:21.076441+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:21.076463+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:21.089448+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":12} +{"time":"2025-07-28T22:06:21.286262+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:21.286276+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:21.419527+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:21.483303+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":197} +{"time":"2025-07-28T22:06:21.483312+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:21.483321+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:21.486117+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:06:21.486136+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:21.486628+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":0} +{"time":"2025-07-28T22:06:21.486634+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25009,"unique_prefixes":3834,"success":3834,"duration_ms":206} +{"time":"2025-07-28T22:06:21.933989+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:21.93402+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:21.953655+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":19} +{"time":"2025-07-28T22:06:22.32989+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:22.329911+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:22.587439+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":257} +{"time":"2025-07-28T22:06:22.587455+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:22.587459+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:22.589183+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:22.589193+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25004,"unique_prefixes":7822,"success":7822,"duration_ms":275} +{"time":"2025-07-28T22:06:22.688939+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:22.688955+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:22.703874+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":14} +{"time":"2025-07-28T22:06:23.083139+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:23.083169+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:23.089052+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} +{"time":"2025-07-28T22:06:23.172741+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":10001090292,"total_messages":59222,"total_bytes":46946947,"total_mb":"44.77","messages_per_sec":"520.18","bits_per_sec":"3453271","mbps":"3.45","total_dropped":0} +{"time":"2025-07-28T22:06:23.172764+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":0,"queue_cap":100000,"processed":58719,"dropped":0,"avg_time":48198,"min_time":0,"max_time":879332917} +{"time":"2025-07-28T22:06:23.172773+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":58719,"dropped":0,"avg_time":30805,"min_time":0,"max_time":847898542} +{"time":"2025-07-28T22:06:23.172779+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":0,"queue_cap":100000,"processed":58719,"dropped":0,"avg_time":97181,"min_time":0,"max_time":1409291417} +{"time":"2025-07-28T22:06:23.172784+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":58719,"dropped":0,"avg_time":1449,"min_time":0,"max_time":3400875} +{"time":"2025-07-28T22:06:23.68097+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:23.680993+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:24.005982+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":324} +{"time":"2025-07-28T22:06:24.005997+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:24.006001+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:24.006015+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:24.007342+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:24.007354+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25002,"unique_prefixes":7208,"success":7208,"duration_ms":338} +{"time":"2025-07-28T22:06:24.007358+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:24.019125+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":11} +{"time":"2025-07-28T22:06:24.078938+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} +{"time":"2025-07-28T22:06:24.083891+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} +2025/07/28 22:06:24 [akrotiri/CDxcs67wDd-000001] "GET http://127.0.0.1:8080/status HTTP/1.1" from 127.0.0.1:61543 - 200 14619B in 1.20975ms +{"time":"2025-07-28T22:06:24.557693+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:24.557712+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:24.767681+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":209} +{"time":"2025-07-28T22:06:24.767704+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:24.767708+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:24.769659+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":1} +{"time":"2025-07-28T22:06:24.769672+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25077,"unique_prefixes":4418,"success":4418,"duration_ms":217} +{"time":"2025-07-28T22:06:24.815657+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:24.815713+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:24.827843+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":12} +{"time":"2025-07-28T22:06:24.984444+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:24.984461+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:24.988723+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +2025/07/28 22:06:25 [akrotiri/CDxcs67wDd-000002] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3740B in 841.889375ms +{"time":"2025-07-28T22:06:25.684819+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:25.684831+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:25 [akrotiri/CDxcs67wDd-000003] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3743B in 623.636208ms +{"time":"2025-07-28T22:06:25.90325+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":218} +{"time":"2025-07-28T22:06:26.124638+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:26.124669+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:26 [akrotiri/CDxcs67wDd-000004] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3743B in 704.217125ms +{"time":"2025-07-28T22:06:26.630537+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:26.658544+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:27.254468+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:249","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 22:06:27 [akrotiri/CDxcs67wDd-000005] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 0B in 1.000163708s +2025/07/28 22:06:27 [akrotiri/CDxcs67wDd-000006] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3749B in 739.590167ms +2025/07/28 22:06:27 [akrotiri/CDxcs67wDd-000007] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3749B in 750.517625ms +{"time":"2025-07-28T22:06:28.224637+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2099} +{"time":"2025-07-28T22:06:28.22465+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:28.224659+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:06:28 [akrotiri/CDxcs67wDd-000008] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3750B in 704.245959ms +{"time":"2025-07-28T22:06:28.403945+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:28.403947+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":179} +{"time":"2025-07-28T22:06:28.40513+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:28.407526+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} +{"time":"2025-07-28T22:06:28.407547+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:28.422831+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":15} +{"time":"2025-07-28T22:06:28.422846+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25200,"unique_prefixes":12548,"success":12548,"duration_ms":2313} +{"time":"2025-07-28T22:06:28.422836+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:28.432887+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:28.46032+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":37} +{"time":"2025-07-28T22:06:28.46033+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:28.707645+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} +{"time":"2025-07-28T22:06:28.707669+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} +{"time":"2025-07-28T22:06:28.708546+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:28.781295+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:28 [akrotiri/CDxcs67wDd-000009] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3749B in 756.9745ms +2025/07/28 22:06:29 [akrotiri/CDxcs67wDd-000010] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3753B in 763.037166ms +{"time":"2025-07-28T22:06:29.611376+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"195.208.209.174","peer_asn":"25227"} +2025/07/28 22:06:29 [akrotiri/CDxcs67wDd-000011] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3753B in 678.081ms +{"time":"2025-07-28T22:06:29.914714+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:29.91471+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1454} +{"time":"2025-07-28T22:06:29.914754+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:30.040249+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":125} +{"time":"2025-07-28T22:06:30.040259+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:30.041388+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:30.044274+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +{"time":"2025-07-28T22:06:30.044295+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:30.055687+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":11} +{"time":"2025-07-28T22:06:30.055701+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25268,"unique_prefixes":8160,"success":8160,"duration_ms":1631} +{"time":"2025-07-28T22:06:30.055692+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:30.062939+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:30.08672+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":31} +{"time":"2025-07-28T22:06:30.086725+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:30 [akrotiri/CDxcs67wDd-000012] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3748B in 664.597375ms +{"time":"2025-07-28T22:06:30.554231+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2400:c3e0::2","peer_asn":"142271"} +2025/07/28 22:06:30 [akrotiri/CDxcs67wDd-000013] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3747B in 668.257917ms +{"time":"2025-07-28T22:06:31.051869+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:31.107905+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:31 [akrotiri/CDxcs67wDd-000014] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3753B in 670.752417ms +{"time":"2025-07-28T22:06:31.445361+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1358} +{"time":"2025-07-28T22:06:31.445382+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:31.445371+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:31.568492+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":123} +{"time":"2025-07-28T22:06:31.568499+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:31.572955+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +{"time":"2025-07-28T22:06:31.573023+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:31.588203+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":15} +{"time":"2025-07-28T22:06:31.588219+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25063,"unique_prefixes":7699,"success":7699,"duration_ms":1531} +{"time":"2025-07-28T22:06:31.594241+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:31.594251+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:31 [akrotiri/CDxcs67wDd-000015] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3748B in 665.950958ms +2025/07/28 22:06:32 [akrotiri/CDxcs67wDd-000016] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3752B in 699.108458ms +{"time":"2025-07-28T22:06:32.503624+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:32.583552+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":989} +{"time":"2025-07-28T22:06:32.583561+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:32.58357+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:32.607824+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:4::73ab:1","peer_asn":"29611"} +{"time":"2025-07-28T22:06:32.621747+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":38} +{"time":"2025-07-28T22:06:32.621759+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:32.636923+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +{"time":"2025-07-28T22:06:32.639883+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":18} +{"time":"2025-07-28T22:06:32.639897+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25199,"unique_prefixes":5899,"success":5899,"duration_ms":1050} +{"time":"2025-07-28T22:06:32.64409+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:32.644099+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:32.657387+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +2025/07/28 22:06:32 [akrotiri/CDxcs67wDd-000017] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3752B in 693.084708ms +{"time":"2025-07-28T22:06:33.142504+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"193.239.118.249","peer_asn":"41255"} +{"time":"2025-07-28T22:06:33.172321+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":20000600042,"total_messages":106496,"total_bytes":82519386,"total_mb":"78.70","messages_per_sec":"1259.43","bits_per_sec":"7815951","mbps":"7.82","total_dropped":0} +{"time":"2025-07-28T22:06:33.172345+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":0,"queue_cap":100000,"processed":105543,"dropped":0,"avg_time":65635,"min_time":0,"max_time":1773980458} +{"time":"2025-07-28T22:06:33.172351+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":0,"queue_cap":100000,"processed":105543,"dropped":0,"avg_time":50226,"min_time":0,"max_time":1749405083} +{"time":"2025-07-28T22:06:33.172355+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":3230,"queue_cap":100000,"processed":102312,"dropped":0,"avg_time":125064,"min_time":0,"max_time":2313097750} +{"time":"2025-07-28T22:06:33.172359+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":105543,"dropped":0,"avg_time":1376,"min_time":0,"max_time":3400875} +2025/07/28 22:06:33 [akrotiri/CDxcs67wDd-000018] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3753B in 676.837125ms +{"time":"2025-07-28T22:06:33.445612+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":801} +{"time":"2025-07-28T22:06:33.445629+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:33.445633+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:33.451434+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":5} +{"time":"2025-07-28T22:06:33.451447+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25025,"unique_prefixes":3555,"success":3555,"duration_ms":810} +{"time":"2025-07-28T22:06:33.643095+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:33.64311+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:33 [akrotiri/CDxcs67wDd-000019] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3751B in 659.737125ms +{"time":"2025-07-28T22:06:33.799753+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:33.800146+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:34.186838+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":543} +{"time":"2025-07-28T22:06:34.186852+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:34.186857+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:34.238562+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":51} +{"time":"2025-07-28T22:06:34.238627+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:34.25364+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":15} +{"time":"2025-07-28T22:06:34.253647+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:34.260047+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:06:34.260062+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25002,"unique_prefixes":3570,"success":3570,"duration_ms":620} +2025/07/28 22:06:34 [akrotiri/CDxcs67wDd-000020] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3748B in 673.683667ms +2025/07/28 22:06:34 [akrotiri/CDxcs67wDd-000021] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3748B in 638.654375ms +{"time":"2025-07-28T22:06:35.059333+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:35.059351+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:35.077698+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":18} +2025/07/28 22:06:35 [akrotiri/CDxcs67wDd-000022] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3747B in 626.574458ms +{"time":"2025-07-28T22:06:35.391213+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:35.391227+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:35 [akrotiri/CDxcs67wDd-000023] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3751B in 708.742958ms +{"time":"2025-07-28T22:06:35.994347+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":603} +{"time":"2025-07-28T22:06:35.994384+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:35.994389+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:36.019076+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":24} +{"time":"2025-07-28T22:06:36.019096+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":3674,"success":3674,"duration_ms":631} +{"time":"2025-07-28T22:06:36.058931+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:36.058942+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:36.114023+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":55} +{"time":"2025-07-28T22:06:36.283261+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:36.283301+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:36.315099+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":31} +2025/07/28 22:06:36 [akrotiri/CDxcs67wDd-000024] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3748B in 695.195541ms +2025/07/28 22:06:36 [akrotiri/CDxcs67wDd-000025] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3748B in 642.154792ms +{"time":"2025-07-28T22:06:36.981772+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:36.981786+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:37.372859+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:37 [akrotiri/CDxcs67wDd-000026] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3752B in 671.656291ms +{"time":"2025-07-28T22:06:37.738034+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":756} +{"time":"2025-07-28T22:06:37.738053+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:37.738198+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:37.825702+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":87} +{"time":"2025-07-28T22:06:37.825713+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:37.830704+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:06:37.830718+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25031,"unique_prefixes":6184,"success":6184,"duration_ms":853} +2025/07/28 22:06:37 [akrotiri/CDxcs67wDd-000027] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3748B in 686.848125ms +2025/07/28 22:06:38 [akrotiri/CDxcs67wDd-000028] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3748B in 663.914625ms +{"time":"2025-07-28T22:06:38.421247+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:38.421259+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:38.426499+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:38.427686+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} +{"time":"2025-07-28T22:06:38.427699+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:38.697108+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:38 [akrotiri/CDxcs67wDd-000029] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3754B in 663.779834ms +{"time":"2025-07-28T22:06:39.074229+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:39.07423+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":646} +{"time":"2025-07-28T22:06:39.074268+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:39.151976+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":77} +{"time":"2025-07-28T22:06:39.151984+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:39.156165+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:06:39.156178+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":4793,"success":4793,"duration_ms":734} +2025/07/28 22:06:39 [akrotiri/CDxcs67wDd-000030] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3750B in 671.421ms +2025/07/28 22:06:39 [akrotiri/CDxcs67wDd-000031] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3750B in 657.66825ms +{"time":"2025-07-28T22:06:39.909903+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:39.909918+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:39.913823+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:39.936372+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":26} +{"time":"2025-07-28T22:06:39.936376+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:40 [akrotiri/CDxcs67wDd-000032] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3753B in 667.81825ms +{"time":"2025-07-28T22:06:40.505261+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} +{"time":"2025-07-28T22:06:40.507887+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} +{"time":"2025-07-28T22:06:40.518215+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:40.725938+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:40.725932+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":789} +{"time":"2025-07-28T22:06:40.726004+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:40.793823+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":67} +{"time":"2025-07-28T22:06:40.793885+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:40.797454+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} +{"time":"2025-07-28T22:06:40.797468+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25004,"unique_prefixes":6371,"success":6371,"duration_ms":889} +2025/07/28 22:06:40 [akrotiri/CDxcs67wDd-000033] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3750B in 678.936292ms +{"time":"2025-07-28T22:06:40.982913+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:40.982925+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:41.002914+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":19} +{"time":"2025-07-28T22:06:41.006332+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:41.006343+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:41.264302+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"193.107.13.3","peer_asn":"47787"} +2025/07/28 22:06:41 [akrotiri/CDxcs67wDd-000034] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3751B in 667.160917ms +{"time":"2025-07-28T22:06:41.685222+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":678} +{"time":"2025-07-28T22:06:41.685238+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:41.685242+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:41.700169+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":14} +{"time":"2025-07-28T22:06:41.700182+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25007,"unique_prefixes":6032,"success":6032,"duration_ms":698} +2025/07/28 22:06:41 [akrotiri/CDxcs67wDd-000035] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3750B in 663.800209ms +{"time":"2025-07-28T22:06:42.140327+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"2602:fa91:0:cccc::20","peer_asn":"53427"} +2025/07/28 22:06:42 [akrotiri/CDxcs67wDd-000036] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3750B in 631.061667ms +{"time":"2025-07-28T22:06:42.402348+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:42.402364+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:42.40629+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:42.468984+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":66} +{"time":"2025-07-28T22:06:42.468995+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +2025/07/28 22:06:42 [akrotiri/CDxcs67wDd-000037] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3753B in 666.842292ms +{"time":"2025-07-28T22:06:43.005973+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":536} +{"time":"2025-07-28T22:06:43.00599+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:43.005994+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:43.035138+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":29} +{"time":"2025-07-28T22:06:43.035155+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25013,"unique_prefixes":4692,"success":4692,"duration_ms":632} +{"time":"2025-07-28T22:06:43.153852+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:43.153866+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:43.172026+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":30000240583,"total_messages":147456,"total_bytes":114242028,"total_mb":"108.95","messages_per_sec":"1718.23","bits_per_sec":"10600313","mbps":"10.60","total_dropped":0} +{"time":"2025-07-28T22:06:43.17206+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":0,"queue_cap":100000,"processed":146026,"dropped":0,"avg_time":57968,"min_time":0,"max_time":1773980458} +{"time":"2025-07-28T22:06:43.172066+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":114,"queue_cap":100000,"processed":145911,"dropped":0,"avg_time":41292,"min_time":0,"max_time":1749405083} +{"time":"2025-07-28T22:06:43.172071+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":0,"queue_cap":100000,"processed":146026,"dropped":0,"avg_time":127884,"min_time":0,"max_time":2313097750} +{"time":"2025-07-28T22:06:43.172074+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":146026,"dropped":0,"avg_time":1395,"min_time":0,"max_time":3400875} +{"time":"2025-07-28T22:06:43.209132+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":55} +2025/07/28 22:06:43 [akrotiri/CDxcs67wDd-000038] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3750B in 697.561667ms +{"time":"2025-07-28T22:06:43.507824+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:43.507839+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:43.519765+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:43 [akrotiri/CDxcs67wDd-000039] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3755B in 675.506041ms +{"time":"2025-07-28T22:06:44.107355+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:44.107351+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":599} +{"time":"2025-07-28T22:06:44.107381+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:44.178056+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:44.178061+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":70} +{"time":"2025-07-28T22:06:44.18455+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:06:44.184564+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":5304,"success":5304,"duration_ms":682} +{"time":"2025-07-28T22:06:44.261332+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:44.261347+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:44.336495+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":75} +2025/07/28 22:06:44 [akrotiri/CDxcs67wDd-000040] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3750B in 686.964042ms +{"time":"2025-07-28T22:06:44.506943+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:44.506957+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:44.76795+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:44 [akrotiri/CDxcs67wDd-000041] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3755B in 669.086667ms +{"time":"2025-07-28T22:06:44.992506+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"102.67.56.1","peer_asn":"328474"} +{"time":"2025-07-28T22:06:45.246659+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:45 [akrotiri/CDxcs67wDd-000042] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3757B in 703.737417ms +{"time":"2025-07-28T22:06:45.891437+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:12f8::221:238","peer_asn":"262317"} +2025/07/28 22:06:46 [akrotiri/CDxcs67wDd-000043] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3759B in 810.926291ms +2025/07/28 22:06:46 [akrotiri/CDxcs67wDd-000044] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3761B in 822.023333ms +{"time":"2025-07-28T22:06:46.533304+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2026} +{"time":"2025-07-28T22:06:46.533323+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:46.533312+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:46.536197+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:06:46.53625+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:46.538415+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:46.833591+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":297} +{"time":"2025-07-28T22:06:46.833673+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:46.834734+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:46.850144+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":16} +{"time":"2025-07-28T22:06:46.850151+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:46.850162+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":7301,"success":7301,"duration_ms":2350} +{"time":"2025-07-28T22:06:46.853816+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} +{"time":"2025-07-28T22:06:46.853836+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:46.858759+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:46.908164+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":54} +{"time":"2025-07-28T22:06:46.908173+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:46.909393+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:46 [akrotiri/CDxcs67wDd-000045] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3755B in 741.661416ms +{"time":"2025-07-28T22:06:47.228593+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:47 [akrotiri/CDxcs67wDd-000046] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3760B in 784.205666ms +2025/07/28 22:06:48 [akrotiri/CDxcs67wDd-000047] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3760B in 858.748959ms +2025/07/28 22:06:48 [akrotiri/CDxcs67wDd-000048] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3762B in 922.35575ms +2025/07/28 22:06:48 [akrotiri/CDxcs67wDd-000049] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3762B in 717.44775ms +{"time":"2025-07-28T22:06:49.070689+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2162} +{"time":"2025-07-28T22:06:49.07071+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:49.07069+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:49.262706+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:49.262703+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":191} +{"time":"2025-07-28T22:06:49.264146+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:49.268862+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} +{"time":"2025-07-28T22:06:49.268962+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:49.271413+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:49.275211+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:06:49.275223+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:49.275227+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25022,"unique_prefixes":8451,"success":8451,"duration_ms":2423} +{"time":"2025-07-28T22:06:49.289595+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:49.334214+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":58} +{"time":"2025-07-28T22:06:49.334808+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:49.335476+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:49.336923+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:06:49.33696+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:49.339465+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:49 [akrotiri/CDxcs67wDd-000050] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3762B in 700.93825ms +2025/07/28 22:06:49 [akrotiri/CDxcs67wDd-000051] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3761B in 723.658584ms +2025/07/28 22:06:50 [akrotiri/CDxcs67wDd-000052] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3762B in 723.958167ms +2025/07/28 22:06:51 [akrotiri/CDxcs67wDd-000053] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3763B in 789.249666ms +{"time":"2025-07-28T22:06:51.345984+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:51.345981+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2009} +{"time":"2025-07-28T22:06:51.346045+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:06:51 [akrotiri/CDxcs67wDd-000054] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 729.796792ms +{"time":"2025-07-28T22:06:51.570378+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":224} +{"time":"2025-07-28T22:06:51.570384+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:51.571522+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:52.01069+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:52.010713+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":440} +{"time":"2025-07-28T22:06:52.012718+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:52.014759+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:06:52.014771+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":12177,"success":12177,"duration_ms":2738} +{"time":"2025-07-28T22:06:52.014789+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:52.027547+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:52.077048+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":62} +{"time":"2025-07-28T22:06:52.07706+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:52.078084+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:52.078855+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:06:52.078905+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:52.080704+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:52 [akrotiri/CDxcs67wDd-000055] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3764B in 761.892209ms +2025/07/28 22:06:52 [akrotiri/CDxcs67wDd-000056] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3763B in 748.435166ms +2025/07/28 22:06:53 [akrotiri/CDxcs67wDd-000057] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3763B in 818.889875ms +{"time":"2025-07-28T22:06:53.171897+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":40000054958,"total_messages":236070,"total_bytes":173546136,"total_mb":"165.51","messages_per_sec":"2394.38","bits_per_sec":"14348680","mbps":"14.35","total_dropped":0} +{"time":"2025-07-28T22:06:53.171939+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":49325,"queue_cap":100000,"processed":184824,"dropped":0,"avg_time":86734,"min_time":0,"max_time":2353906708} +{"time":"2025-07-28T22:06:53.171946+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":18240,"queue_cap":100000,"processed":215911,"dropped":0,"avg_time":60302,"min_time":0,"max_time":2671848958} +{"time":"2025-07-28T22:06:53.17195+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":51257,"queue_cap":100000,"processed":182895,"dropped":0,"avg_time":146934,"min_time":0,"max_time":2738066542} +{"time":"2025-07-28T22:06:53.171953+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":7,"queue_cap":100000,"processed":234145,"dropped":0,"avg_time":1348,"min_time":0,"max_time":3400875} +2025/07/28 22:06:53 [akrotiri/CDxcs67wDd-000058] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 908.789542ms +2025/07/28 22:06:53 [akrotiri/CDxcs67wDd-000059] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3763B in 636.898625ms +{"time":"2025-07-28T22:06:54.262311+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:54.262305+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2183} +{"time":"2025-07-28T22:06:54.262387+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:54.553415+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":291} +{"time":"2025-07-28T22:06:54.553453+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:54.554658+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:54.559549+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} +{"time":"2025-07-28T22:06:54.559575+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:54.561501+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:54.573833+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":14} +{"time":"2025-07-28T22:06:54.573848+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":12370,"success":12370,"duration_ms":2557} +{"time":"2025-07-28T22:06:54.573861+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:06:54 [akrotiri/CDxcs67wDd-000060] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3762B in 830.803042ms +{"time":"2025-07-28T22:06:54.585075+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:54.630347+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":56} +{"time":"2025-07-28T22:06:54.630359+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:54.631495+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:54.632104+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:06:54.632164+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:54.633981+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:54.707675+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"198.32.160.113","peer_asn":"15547"} +2025/07/28 22:06:55 [akrotiri/CDxcs67wDd-000061] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3763B in 955.094167ms +2025/07/28 22:06:55 [akrotiri/CDxcs67wDd-000062] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 843.890625ms +2025/07/28 22:06:55 [akrotiri/CDxcs67wDd-000063] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3763B in 660.594792ms +2025/07/28 22:06:56 [akrotiri/CDxcs67wDd-000064] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 757.125042ms +{"time":"2025-07-28T22:06:56.53063+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1898} +{"time":"2025-07-28T22:06:56.530648+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:56.530637+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:56.851986+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":321} +{"time":"2025-07-28T22:06:56.852004+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:56.853359+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:56.856731+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +{"time":"2025-07-28T22:06:56.856742+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:56.858701+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:56.859794+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":3} +{"time":"2025-07-28T22:06:56.859802+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":10446,"success":10446,"duration_ms":2283} +{"time":"2025-07-28T22:06:56.859804+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:56.875979+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:56.937328+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":77} +{"time":"2025-07-28T22:06:56.937364+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:56.938878+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:56.939663+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:06:56.939695+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:56.941705+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:57 [akrotiri/CDxcs67wDd-000065] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3763B in 878.294792ms +2025/07/28 22:06:57 [akrotiri/CDxcs67wDd-000066] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 780.700416ms +2025/07/28 22:06:57 [akrotiri/CDxcs67wDd-000067] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3763B in 653.111125ms +{"time":"2025-07-28T22:06:58.418225+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:1042:1","peer_asn":"31042"} +2025/07/28 22:06:58 [akrotiri/CDxcs67wDd-000068] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3762B in 699.209708ms +{"time":"2025-07-28T22:06:58.876076+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1936} +{"time":"2025-07-28T22:06:58.876098+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:06:58.876102+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:06:58 [akrotiri/CDxcs67wDd-000069] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3762B in 672.349791ms +{"time":"2025-07-28T22:06:59.006173+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:de8:4::1:8403:1","peer_asn":"18403"} +{"time":"2025-07-28T22:06:59.139374+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:59.139376+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":263} +{"time":"2025-07-28T22:06:59.139407+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25007,"unique_prefixes":12611,"success":12611,"duration_ms":2276} +{"time":"2025-07-28T22:06:59.155793+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:59.22431+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:06:59.224311+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":84} +{"time":"2025-07-28T22:06:59.225611+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:06:59.226273+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:06:59.226276+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:06:59.227775+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:06:59 [akrotiri/CDxcs67wDd-000070] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3763B in 832.9905ms +2025/07/28 22:07:00 [akrotiri/CDxcs67wDd-000071] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3767B in 925.902083ms +2025/07/28 22:07:00 [akrotiri/CDxcs67wDd-000072] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3773B in 828.523333ms +2025/07/28 22:07:01 [akrotiri/CDxcs67wDd-000073] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3775B in 969.562875ms +2025/07/28 22:07:01 [akrotiri/CDxcs67wDd-000074] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3775B in 928.70175ms +{"time":"2025-07-28T22:07:01.857903+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:01.857902+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2631} +{"time":"2025-07-28T22:07:01.857956+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:01.906676+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"103.200.113.1","peer_asn":"131477"} +{"time":"2025-07-28T22:07:02.118761+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:43f8:6d0::60","peer_asn":"37468"} +{"time":"2025-07-28T22:07:02.234542+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:02.234542+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":376} +{"time":"2025-07-28T22:07:02.236452+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:02.239925+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:02.239938+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} +{"time":"2025-07-28T22:07:02.242231+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:02.246023+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:02.246031+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":6} +{"time":"2025-07-28T22:07:02.24604+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25009,"unique_prefixes":11965,"success":11965,"duration_ms":3104} +{"time":"2025-07-28T22:07:02.260574+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:02.320905+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:02.320991+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":74} +{"time":"2025-07-28T22:07:02.322112+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:02.324538+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:02.324562+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":3} +{"time":"2025-07-28T22:07:02.326403+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:07:02 [akrotiri/CDxcs67wDd-000075] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3774B in 956.63075ms +{"time":"2025-07-28T22:07:02.906462+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} +2025/07/28 22:07:02 [akrotiri/CDxcs67wDd-000076] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61568 - 200 3765B in 1.010923375s +{"time":"2025-07-28T22:07:03.172417+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":50000497625,"total_messages":359424,"total_bytes":257032534,"total_mb":"245.13","messages_per_sec":"3576.23","bits_per_sec":"20396734","mbps":"20.40","total_dropped":69356} +{"time":"2025-07-28T22:07:03.172535+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":100000,"queue_cap":100000,"processed":215623,"dropped":41454,"avg_time":121843,"min_time":0,"max_time":3009525458} +{"time":"2025-07-28T22:07:03.172543+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":71166,"queue_cap":100000,"processed":285911,"dropped":0,"avg_time":81360,"min_time":0,"max_time":3012558583} +{"time":"2025-07-28T22:07:03.172548+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":100000,"queue_cap":100000,"processed":229175,"dropped":27902,"avg_time":161892,"min_time":0,"max_time":3104266083} +{"time":"2025-07-28T22:07:03.172552+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":357078,"dropped":0,"avg_time":1541,"min_time":0,"max_time":13416875} +2025/07/28 22:07:03 [akrotiri/CDxcs67wDd-000077] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3777B in 939.839417ms +2025/07/28 22:07:03 [akrotiri/CDxcs67wDd-000078] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3778B in 877.470541ms +2025/07/28 22:07:04 [akrotiri/CDxcs67wDd-000079] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3778B in 874.863ms +{"time":"2025-07-28T22:07:04.336724+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"196.60.8.60","peer_asn":"37468"} +{"time":"2025-07-28T22:07:04.338639+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"196.60.8.60","peer_asn":"37468"} +2025/07/28 22:07:04 [akrotiri/CDxcs67wDd-000080] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3776B in 835.631334ms +{"time":"2025-07-28T22:07:04.957401+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:04.957402+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2632} +{"time":"2025-07-28T22:07:04.957482+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:05.303358+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv6 routes: context deadline exceeded"} +2025/07/28 22:07:05 [akrotiri/CDxcs67wDd-000081] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3769B in 1.000867334s +{"time":"2025-07-28T22:07:05.343269+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:05.343283+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":385} +{"time":"2025-07-28T22:07:05.345223+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:05.345259+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:05.345564+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:05.346992+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:05.359816+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":14} +{"time":"2025-07-28T22:07:05.359833+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":12724,"success":12724,"duration_ms":3111} +{"time":"2025-07-28T22:07:05.359841+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:05.378899+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:05.468416+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":108} +{"time":"2025-07-28T22:07:05.468427+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:05.469748+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:05.46996+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:05.469987+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:05.471944+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:05.806114+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv6 routes: context deadline exceeded"} +2025/07/28 22:07:05 [akrotiri/CDxcs67wDd-000082] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3766B in 1.000603209s +2025/07/28 22:07:06 [akrotiri/CDxcs67wDd-000083] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3778B in 878.315917ms +2025/07/28 22:07:06 [akrotiri/CDxcs67wDd-000084] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3779B in 801.562959ms +{"time":"2025-07-28T22:07:06.674009+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.190","peer_asn":"31042"} +2025/07/28 22:07:07 [akrotiri/CDxcs67wDd-000085] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 839.2745ms +{"time":"2025-07-28T22:07:07.637638+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:07.637634+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2167} +{"time":"2025-07-28T22:07:07.63771+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:07:07 [akrotiri/CDxcs67wDd-000086] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 828.468084ms +{"time":"2025-07-28T22:07:07.931037+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":293} +{"time":"2025-07-28T22:07:07.931148+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:07.934027+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:07.937872+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":6} +{"time":"2025-07-28T22:07:07.937902+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:07.94102+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:07.943393+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":5} +{"time":"2025-07-28T22:07:07.943405+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25009,"unique_prefixes":10456,"success":10456,"duration_ms":2580} +{"time":"2025-07-28T22:07:07.943426+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:07.959086+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:08.010262+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":66} +{"time":"2025-07-28T22:07:08.010282+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:08.012005+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:08.012034+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:08.012205+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:08.015222+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:07:08 [akrotiri/CDxcs67wDd-000087] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61563 - 200 3779B in 810.253292ms +2025/07/28 22:07:08 [akrotiri/CDxcs67wDd-000088] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3779B in 864.130166ms +2025/07/28 22:07:09 [akrotiri/CDxcs67wDd-000089] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3780B in 834.624666ms +2025/07/28 22:07:09 [akrotiri/CDxcs67wDd-000090] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 709.624708ms +{"time":"2025-07-28T22:07:10.01452+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:10.01452+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2002} +{"time":"2025-07-28T22:07:10.014601+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:07:10 [akrotiri/CDxcs67wDd-000091] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3782B in 808.166ms +{"time":"2025-07-28T22:07:10.287222+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:10.287218+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":272} +{"time":"2025-07-28T22:07:10.288314+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:10.289105+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:10.289116+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:10.290657+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:10.305809+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":16} +{"time":"2025-07-28T22:07:10.305828+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:10.305832+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":11138,"success":11138,"duration_ms":2360} +{"time":"2025-07-28T22:07:10.321073+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:10.346572+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.204","peer_asn":"48166"} +{"time":"2025-07-28T22:07:10.358916+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":53} +{"time":"2025-07-28T22:07:10.358927+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:10.359936+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:10.360355+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:10.36039+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:10.362102+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:10.517511+02:00","level":"DEBUG","msg":"System stats","source":"cli.go:40","func":"routewatch.logDebugStats","goroutines":37,"alloc_mb":253,"total_alloc_mb":1909,"sys_mb":434,"num_gc":46,"heap_alloc_mb":253,"heap_sys_mb":412,"heap_idle_mb":109,"heap_inuse_mb":303,"heap_released_mb":4,"stack_inuse_mb":3} +2025/07/28 22:07:10 [akrotiri/CDxcs67wDd-000092] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3778B in 896.543791ms +2025/07/28 22:07:11 [akrotiri/CDxcs67wDd-000093] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3779B in 729.286083ms +2025/07/28 22:07:11 [akrotiri/CDxcs67wDd-000094] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3780B in 732.767625ms +2025/07/28 22:07:12 [akrotiri/CDxcs67wDd-000095] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 836.217334ms +2025/07/28 22:07:12 [akrotiri/CDxcs67wDd-000096] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 661.503417ms +{"time":"2025-07-28T22:07:12.989753+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:7f8::7942:0:1","peer_asn":"31042"} +2025/07/28 22:07:13 [akrotiri/CDxcs67wDd-000097] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 734.383792ms +{"time":"2025-07-28T22:07:13.172111+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":60000150292,"total_messages":498039,"total_bytes":350905557,"total_mb":"334.65","messages_per_sec":"5258.80","bits_per_sec":"29343421","mbps":"29.34","total_dropped":331660} +{"time":"2025-07-28T22:07:13.172128+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":100000,"queue_cap":100000,"processed":242219,"dropped":152977,"avg_time":141638,"min_time":0,"max_time":3021689916} +{"time":"2025-07-28T22:07:13.172134+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":100000,"queue_cap":100000,"processed":345911,"dropped":49285,"avg_time":90466,"min_time":0,"max_time":3019238458} +{"time":"2025-07-28T22:07:13.172137+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":100000,"queue_cap":100000,"processed":265798,"dropped":129398,"avg_time":169899,"min_time":0,"max_time":3111744000} +{"time":"2025-07-28T22:07:13.172142+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":495197,"dropped":0,"avg_time":1558,"min_time":0,"max_time":13416875} +{"time":"2025-07-28T22:07:13.333656+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:13.333656+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2973} +{"time":"2025-07-28T22:07:13.33369+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:07:13 [akrotiri/CDxcs67wDd-000098] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3783B in 700.670583ms +{"time":"2025-07-28T22:07:13.639137+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":305} +{"time":"2025-07-28T22:07:13.639147+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:13.640319+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:13.644871+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} +{"time":"2025-07-28T22:07:13.644905+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:13.647654+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:13.649036+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:07:13.649047+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":14401,"success":14401,"duration_ms":3341} +{"time":"2025-07-28T22:07:13.649057+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:13.657595+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:13.702912+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:13.702911+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":53} +{"time":"2025-07-28T22:07:13.703676+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":0} +{"time":"2025-07-28T22:07:13.703729+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:13.704234+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:13.705377+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:07:14 [akrotiri/CDxcs67wDd-000099] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 725.974541ms +2025/07/28 22:07:14 [akrotiri/CDxcs67wDd-000100] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 713.777ms +{"time":"2025-07-28T22:07:14.838155+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:14.83816+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1134} +{"time":"2025-07-28T22:07:14.838379+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:15.077597+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":239} +{"time":"2025-07-28T22:07:15.077628+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:15.078786+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:15.082773+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":5} +{"time":"2025-07-28T22:07:15.082812+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:15.084499+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:07:15 [akrotiri/CDxcs67wDd-000101] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 720.285125ms +{"time":"2025-07-28T22:07:15.092807+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":10} +{"time":"2025-07-28T22:07:15.092819+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25001,"unique_prefixes":4903,"success":4903,"duration_ms":1442} +{"time":"2025-07-28T22:07:15.09282+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:15.110434+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:15.163984+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":71} +{"time":"2025-07-28T22:07:15.163997+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:15.165144+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:15.165716+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:15.165737+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:15.167331+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:15.468158+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"2001:b18:10::3","peer_asn":"47787"} +2025/07/28 22:07:15 [akrotiri/CDxcs67wDd-000102] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3779B in 856.589042ms +2025/07/28 22:07:16 [akrotiri/CDxcs67wDd-000103] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3780B in 757.343208ms +2025/07/28 22:07:16 [akrotiri/CDxcs67wDd-000104] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 730.44575ms +2025/07/28 22:07:17 [akrotiri/CDxcs67wDd-000105] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 733.7785ms +{"time":"2025-07-28T22:07:17.542673+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2376} +{"time":"2025-07-28T22:07:17.542696+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:17.542711+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +2025/07/28 22:07:17 [akrotiri/CDxcs67wDd-000106] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 682.142834ms +{"time":"2025-07-28T22:07:18.223171+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":680} +{"time":"2025-07-28T22:07:18.223196+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:18.225991+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:18.234377+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":11} +{"time":"2025-07-28T22:07:18.234574+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:18.237769+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:18.238983+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:18.238985+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":4} +{"time":"2025-07-28T22:07:18.239009+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":13578,"success":13578,"duration_ms":3143} +{"time":"2025-07-28T22:07:18.256265+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:18.320259+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":81} +{"time":"2025-07-28T22:07:18.320267+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:18.321115+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":0} +{"time":"2025-07-28T22:07:18.321157+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:18.32123+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:18.323214+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:18.379602+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} +2025/07/28 22:07:18 [akrotiri/CDxcs67wDd-000107] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3769B in 1.001144583s +{"time":"2025-07-28T22:07:18.882464+02:00","level":"WARN","msg":"Failed to get live route counts","source":"handlers.go:271","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1","error":"failed to count IPv4 routes: context deadline exceeded"} +2025/07/28 22:07:18 [akrotiri/CDxcs67wDd-000108] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3769B in 1.00075575s +2025/07/28 22:07:19 [akrotiri/CDxcs67wDd-000109] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3782B in 757.815542ms +{"time":"2025-07-28T22:07:19.381612+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"195.208.208.187","peer_asn":"9002"} +2025/07/28 22:07:19 [akrotiri/CDxcs67wDd-000110] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3784B in 697.442083ms +2025/07/28 22:07:20 [akrotiri/CDxcs67wDd-000111] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3784B in 677.413417ms +{"time":"2025-07-28T22:07:20.29597+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:20.295967+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":1974} +{"time":"2025-07-28T22:07:20.295998+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +2025/07/28 22:07:20 [akrotiri/CDxcs67wDd-000112] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3784B in 724.694334ms +{"time":"2025-07-28T22:07:20.625237+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":329} +{"time":"2025-07-28T22:07:20.625255+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:20.62666+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:20.632501+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":7} +{"time":"2025-07-28T22:07:20.632576+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:20.636547+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:20.640065+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":7} +{"time":"2025-07-28T22:07:20.640083+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25045,"unique_prefixes":11471,"success":11471,"duration_ms":2398} +{"time":"2025-07-28T22:07:20.640082+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:20.653597+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:20.666295+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"27.111.229.239","peer_asn":"17639"} +{"time":"2025-07-28T22:07:20.688306+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":48} +{"time":"2025-07-28T22:07:20.688317+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:20.689718+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:20.689887+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:20.689912+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:20.691608+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:21.18074+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"217.29.66.232","peer_asn":"54104"} +2025/07/28 22:07:21 [akrotiri/CDxcs67wDd-000113] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3781B in 881.200125ms +2025/07/28 22:07:21 [akrotiri/CDxcs67wDd-000114] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3781B in 838.895125ms +{"time":"2025-07-28T22:07:22.056506+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"196.60.8.170","peer_asn":"327781"} +2025/07/28 22:07:22 [akrotiri/CDxcs67wDd-000115] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3783B in 605.655833ms +2025/07/28 22:07:22 [akrotiri/CDxcs67wDd-000116] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3783B in 725.924291ms +{"time":"2025-07-28T22:07:22.790165+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:22.790161+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2100} +{"time":"2025-07-28T22:07:22.790194+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:23.075685+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:23.075683+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":285} +{"time":"2025-07-28T22:07:23.077533+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:23.080427+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +{"time":"2025-07-28T22:07:23.080438+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:23.082943+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:23.085914+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":5} +{"time":"2025-07-28T22:07:23.085924+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":10722,"success":10722,"duration_ms":2443} +{"time":"2025-07-28T22:07:23.085946+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:23.104499+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:23.161087+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":75} +{"time":"2025-07-28T22:07:23.161096+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:23.162217+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:23.162633+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":1} +{"time":"2025-07-28T22:07:23.162677+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:23.164719+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:23.173082+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":70001058208,"total_messages":582656,"total_bytes":412603415,"total_mb":"393.49","messages_per_sec":"6118.41","bits_per_sec":"34222236","mbps":"34.22","total_dropped":427933} +{"time":"2025-07-28T22:07:23.173096+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":91615,"queue_cap":100000,"processed":287368,"dropped":200349,"avg_time":163924,"min_time":0,"max_time":3279691916} +{"time":"2025-07-28T22:07:23.1731+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":79690,"queue_cap":100000,"processed":445911,"dropped":53731,"avg_time":98873,"min_time":0,"max_time":3283178708} +{"time":"2025-07-28T22:07:23.173104+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":90107,"queue_cap":100000,"processed":315372,"dropped":173853,"avg_time":183704,"min_time":0,"max_time":3341028125} +{"time":"2025-07-28T22:07:23.173107+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":0,"queue_cap":100000,"processed":579333,"dropped":0,"avg_time":1515,"min_time":0,"max_time":13416875} +2025/07/28 22:07:23 [akrotiri/CDxcs67wDd-000117] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3782B in 840.749375ms +2025/07/28 22:07:23 [akrotiri/CDxcs67wDd-000118] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3784B in 738.02125ms +2025/07/28 22:07:24 [akrotiri/CDxcs67wDd-000119] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3785B in 721.498875ms +{"time":"2025-07-28T22:07:24.610404+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.249.210.89","peer_asn":"31042"} +2025/07/28 22:07:24 [akrotiri/CDxcs67wDd-000120] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3785B in 722.397541ms +{"time":"2025-07-28T22:07:25.034457+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:501","func":"streamer.(*Streamer).stream","peer":"80.81.194.92","peer_asn":"57111"} +{"time":"2025-07-28T22:07:25.036308+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:509","func":"streamer.(*Streamer).stream","peer":"80.81.192.113","peer_asn":"35320"} +2025/07/28 22:07:25 [akrotiri/CDxcs67wDd-000121] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3785B in 667.370375ms +{"time":"2025-07-28T22:07:25.244224+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:25.24422+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:181)","duration_ms":2081} +{"time":"2025-07-28T22:07:25.244252+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:25.53672+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:25.53672+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":292} +{"time":"2025-07-28T22:07:25.538192+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:25.541033+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":4} +{"time":"2025-07-28T22:07:25.541041+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:262"} +{"time":"2025-07-28T22:07:25.542603+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:25.554606+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:262)","duration_ms":13} +{"time":"2025-07-28T22:07:25.554624+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":25000,"unique_prefixes":14210,"success":14210,"duration_ms":2466} +{"time":"2025-07-28T22:07:25.554648+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:25.575785+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:25.619578+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:332)","duration_ms":64} +{"time":"2025-07-28T22:07:25.619599+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +{"time":"2025-07-28T22:07:25.621313+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:332"} +{"time":"2025-07-28T22:07:25.62235+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:162","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:640)","duration_ms":2} +{"time":"2025-07-28T22:07:25.622393+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:150","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:181"} +{"time":"2025-07-28T22:07:25.624641+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:144","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:640"} +2025/07/28 22:07:25 [akrotiri/CDxcs67wDd-000122] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3783B in 860.813ms +2025/07/28 22:07:26 [akrotiri/CDxcs67wDd-000123] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3783B in 789.487167ms +2025/07/28 22:07:26 [akrotiri/CDxcs67wDd-000124] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:62108 - 200 3783B in 723.284542ms +2025/07/28 22:07:27 [akrotiri/CDxcs67wDd-000125] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:61543 - 200 3783B in 684.08625ms