From 62ed5e08aa69d5b71927d0e0a223be651ebff8de Mon Sep 17 00:00:00 2001 From: sneak Date: Mon, 28 Jul 2025 19:05:45 +0200 Subject: [PATCH] Improve prefix count link styling on status page - Add dashed underline to prefix count links to indicate they are clickable - Change to solid blue underline on hover for better UX - Remove inline styles and use CSS classes instead --- internal/templates/status.html | 12 +- log.txt | 3601 ++++++++++++++++++++++++++++++++ 2 files changed, 3612 insertions(+), 1 deletion(-) diff --git a/internal/templates/status.html b/internal/templates/status.html index ae1d4d4..11262f3 100644 --- a/internal/templates/status.html +++ b/internal/templates/status.html @@ -49,6 +49,16 @@ font-family: 'SF Mono', Monaco, 'Cascadia Mono', 'Roboto Mono', Consolas, 'Courier New', monospace; color: #333; } + .metric-value.metric-link { + text-decoration: underline; + text-decoration-style: dashed; + text-underline-offset: 2px; + cursor: pointer; + } + .metric-value.metric-link:hover { + color: #0066cc; + text-decoration-style: solid; + } .connected { color: #22c55e; } @@ -231,7 +241,7 @@ metric.className = 'metric'; metric.innerHTML = ` /${item.mask_length} - ${formatNumber(item.count)} + ${formatNumber(item.count)} `; container.appendChild(metric); }); diff --git a/log.txt b/log.txt index 46ce4a1..8ba423d 100644 --- a/log.txt +++ b/log.txt @@ -1745,3 +1745,3604 @@ {"time":"2025-07-28T19:04:18.790626+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} 2025/07/28 19:04:18 [akrotiri/bcbAMY2J2l-000337] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56478 - 408 17B in 1.001120666s {"time":"2025-07-28T19:04:18.85916+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:19 [akrotiri/bcbAMY2J2l-000338] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3771B in 808.433583ms +{"time":"2025-07-28T19:04:19.528571+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1186} +{"time":"2025-07-28T19:04:19.528612+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:19.528618+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +2025/07/28 19:04:19 [akrotiri/bcbAMY2J2l-000339] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3771B in 769.520375ms +2025/07/28 19:04:19 [akrotiri/bcbAMY2J2l-000340] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3771B in 768.949042ms +{"time":"2025-07-28T19:04:19.569295+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:19.569314+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":40} +{"time":"2025-07-28T19:04:19.569338+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":4095,"success":4095,"duration_ms":1300} +{"time":"2025-07-28T19:04:19.573491+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:19.643707+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:19.643707+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":74} +{"time":"2025-07-28T19:04:19.644702+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:19.646493+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:19.646495+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:04:19.680217+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:1042:1","peer_asn":"31042"} +2025/07/28 19:04:19 [akrotiri/bcbAMY2J2l-000341] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3767B in 661.094583ms +2025/07/28 19:04:20 [akrotiri/bcbAMY2J2l-000342] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3768B in 624.664292ms +{"time":"2025-07-28T19:04:20.509174+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":862} +{"time":"2025-07-28T19:04:20.509195+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:20.509228+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:20.538639+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":29} +{"time":"2025-07-28T19:04:20.538664+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:20.539704+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:20.543786+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:04:20.543798+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:20.543801+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":3877,"success":3877,"duration_ms":973} +{"time":"2025-07-28T19:04:20.548015+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:20.559908+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":16} +{"time":"2025-07-28T19:04:20.559924+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:20.561056+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:20.58689+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:20 [akrotiri/bcbAMY2J2l-000343] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 626.530209ms +{"time":"2025-07-28T19:04:21.360256+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":800} +{"time":"2025-07-28T19:04:21.360274+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:21.36028+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:21.424763+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:21.424763+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":64} +{"time":"2025-07-28T19:04:21.424841+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20142,"unique_prefixes":3861,"success":3861,"duration_ms":880} +2025/07/28 19:04:21 [akrotiri/bcbAMY2J2l-000344] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 629.45525ms +{"time":"2025-07-28T19:04:21.429085+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:21.68877+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:21.68877+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":264} +{"time":"2025-07-28T19:04:21.690272+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:21.692708+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:21.692712+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +2025/07/28 19:04:22 [akrotiri/bcbAMY2J2l-000345] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3768B in 627.203709ms +{"time":"2025-07-28T19:04:22.384055+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:22.406528+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:22.406576+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":713} +{"time":"2025-07-28T19:04:22.406598+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:22.473718+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:22.473725+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":67} +{"time":"2025-07-28T19:04:22.475103+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:22.477702+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:22.47771+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +2025/07/28 19:04:22 [akrotiri/bcbAMY2J2l-000346] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 624.782125ms +{"time":"2025-07-28T19:04:22.491797+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:22.491802+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":14} +{"time":"2025-07-28T19:04:22.491814+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20159,"unique_prefixes":3659,"success":3659,"duration_ms":1066} +{"time":"2025-07-28T19:04:22.495843+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:22.512898+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":21} +{"time":"2025-07-28T19:04:22.512912+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:22.514147+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:22 [akrotiri/bcbAMY2J2l-000347] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 630.096875ms +{"time":"2025-07-28T19:04:23.198815+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":685} +{"time":"2025-07-28T19:04:23.198834+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:23.198837+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:23.299669+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":100} +{"time":"2025-07-28T19:04:23.299688+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20038,"unique_prefixes":3385,"success":3385,"duration_ms":806} +{"time":"2025-07-28T19:04:23.299673+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:23.307283+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:23.322751+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":23} +{"time":"2025-07-28T19:04:23.322814+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:23.324427+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:23.395673+02:00","level":"DEBUG","msg":"System stats","source":"cli.go:40","func":"routewatch.logDebugStats","goroutines":38,"alloc_mb":326,"total_alloc_mb":3964,"sys_mb":355,"num_gc":75,"heap_alloc_mb":326,"heap_sys_mb":337,"heap_idle_mb":4,"heap_inuse_mb":333,"heap_released_mb":3,"stack_inuse_mb":2} +2025/07/28 19:04:23 [akrotiri/bcbAMY2J2l-000348] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3768B in 707.649333ms +{"time":"2025-07-28T19:04:23.676489+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:23.75757+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:24 [akrotiri/bcbAMY2J2l-000349] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3772B in 721.520083ms +2025/07/28 19:04:24 [akrotiri/bcbAMY2J2l-000350] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3772B in 657.475209ms +{"time":"2025-07-28T19:04:24.750125+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":120001373334,"total_messages":766976,"total_bytes":572125857,"total_mb":"545.62","messages_per_sec":"5992.12","bits_per_sec":"35581230","mbps":"35.58","total_dropped":43741} +{"time":"2025-07-28T19:04:24.750149+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":55402,"queue_cap":100000,"processed":705815,"dropped":0,"avg_time":114275,"min_time":0,"max_time":2021237791} +{"time":"2025-07-28T19:04:24.750155+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":7137,"queue_cap":100000,"processed":754080,"dropped":0,"avg_time":57015,"min_time":0,"max_time":1674970041} +{"time":"2025-07-28T19:04:24.750159+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":617476,"dropped":43741,"avg_time":159448,"min_time":0,"max_time":2069192083} +{"time":"2025-07-28T19:04:24.750162+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":761218,"dropped":0,"avg_time":1548,"min_time":0,"max_time":16413542} +{"time":"2025-07-28T19:04:24.770711+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:24.770703+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1447} +{"time":"2025-07-28T19:04:24.77077+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:24.793515+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"217.29.66.232","peer_asn":"54104"} +{"time":"2025-07-28T19:04:24.796625+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":25} +{"time":"2025-07-28T19:04:24.796634+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:24.797506+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:24.798942+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:04:24.798951+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:24.799949+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:24.799957+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:24.79996+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:24.800834+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:24.800836+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:24.800843+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:24.809644+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":8} +{"time":"2025-07-28T19:04:24.809663+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20056,"unique_prefixes":7527,"success":7527,"duration_ms":1508} +{"time":"2025-07-28T19:04:24.80967+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:24.812772+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:24.885069+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:24.907674+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:24.90768+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":98} +{"time":"2025-07-28T19:04:24.908817+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:24.90984+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:24.909844+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:04:24.909852+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:24 [akrotiri/bcbAMY2J2l-000351] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 637.104583ms +{"time":"2025-07-28T19:04:24.977762+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"195.208.208.187","peer_asn":"9002"} +2025/07/28 19:04:25 [akrotiri/bcbAMY2J2l-000352] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3771B in 642.562334ms +{"time":"2025-07-28T19:04:25.562209+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:25.562209+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":652} +{"time":"2025-07-28T19:04:25.562236+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:25.572354+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:25.572355+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":10} +{"time":"2025-07-28T19:04:25.592575+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.592579+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":20} +{"time":"2025-07-28T19:04:25.593257+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:25.593265+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:25.593272+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.593519+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:25.60323+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:04:25.603241+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":3306,"success":3306,"duration_ms":792} +{"time":"2025-07-28T19:04:25.603254+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.603776+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:25.603783+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.603785+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.604433+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:25.604435+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:25.60445+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.608359+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:25.626018+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":21} +{"time":"2025-07-28T19:04:25.626028+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.626205+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:25.626211+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.626214+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.626648+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:25.62665+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:25.626656+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:25.627061+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:25 [akrotiri/bcbAMY2J2l-000353] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3766B in 641.098375ms +{"time":"2025-07-28T19:04:26.14222+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:26 [akrotiri/bcbAMY2J2l-000354] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 650.62025ms +{"time":"2025-07-28T19:04:26.577058+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":950} +{"time":"2025-07-28T19:04:26.577071+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.577077+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:26.577651+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:26.577658+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.577662+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.578424+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:26.578434+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:26.578442+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.602114+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:26.60212+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":23} +{"time":"2025-07-28T19:04:26.60335+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:26.604934+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:26.604937+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:04:26.611421+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.611421+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:04:26.611449+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":4553,"success":4553,"duration_ms":1007} +{"time":"2025-07-28T19:04:26.611916+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:26.611918+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:26.611924+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.617466+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:26.640127+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":28} +{"time":"2025-07-28T19:04:26.640135+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.640783+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:26.640791+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:26.640794+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:26.641261+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:26 [akrotiri/bcbAMY2J2l-000355] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 638.074208ms +2025/07/28 19:04:27 [akrotiri/bcbAMY2J2l-000356] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3768B in 622.919584ms +{"time":"2025-07-28T19:04:27.682761+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.68276+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1041} +{"time":"2025-07-28T19:04:27.682795+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:27.689203+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:27.734826+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:27.734825+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":52} +{"time":"2025-07-28T19:04:27.734849+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.780879+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":46} +{"time":"2025-07-28T19:04:27.780886+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:27.782119+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:27.788198+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":7} +{"time":"2025-07-28T19:04:27.788212+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":6437,"success":6437,"duration_ms":1175} +{"time":"2025-07-28T19:04:27.788206+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:27.791635+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:27.791646+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.79225+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:27.79226+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.792263+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.792615+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:27.792622+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:27.792627+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.793416+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:27.843391+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":50} +{"time":"2025-07-28T19:04:27.843482+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.844756+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:27.85104+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":7} +{"time":"2025-07-28T19:04:27.851052+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:27.851055+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:04:27 [akrotiri/bcbAMY2J2l-000357] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 637.977917ms +2025/07/28 19:04:28 [akrotiri/bcbAMY2J2l-000358] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3767B in 662.654792ms +{"time":"2025-07-28T19:04:28.851629+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1000} +{"time":"2025-07-28T19:04:28.851654+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:28.851634+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:28.94179+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"196.60.8.170","peer_asn":"327781"} +{"time":"2025-07-28T19:04:28.959922+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":108} +{"time":"2025-07-28T19:04:28.959932+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.960949+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:28.962395+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:04:28.962406+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.962409+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.963197+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:28.963219+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:28.963251+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.972082+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":8} +{"time":"2025-07-28T19:04:28.972095+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":5264,"success":5264,"duration_ms":1182} +{"time":"2025-07-28T19:04:28.972082+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:28.977478+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:04:28 [akrotiri/bcbAMY2J2l-000359] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 635.925666ms +{"time":"2025-07-28T19:04:28.995124+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.995124+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":23} +{"time":"2025-07-28T19:04:28.995669+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:28.995673+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:28.995681+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:28.996178+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:29.03842+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"80.81.192.113","peer_asn":"35320"} +{"time":"2025-07-28T19:04:29.311625+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:29 [akrotiri/bcbAMY2J2l-000360] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 641.688167ms +{"time":"2025-07-28T19:04:29.958109+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:29.958105+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":962} +{"time":"2025-07-28T19:04:29.958186+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:29.96583+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":7} +{"time":"2025-07-28T19:04:29.96584+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:29.965842+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:30 [akrotiri/bcbAMY2J2l-000361] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 664.08975ms +{"time":"2025-07-28T19:04:30.089795+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":123} +{"time":"2025-07-28T19:04:30.089805+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:30.090954+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:30.093472+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:30.093501+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:30.106121+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":12} +{"time":"2025-07-28T19:04:30.106133+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.106136+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":5984,"success":5984,"duration_ms":1133} +{"time":"2025-07-28T19:04:30.106684+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:30.106694+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.106697+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.107073+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:30.107093+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:30.107114+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.110508+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:30.144824+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":37} +{"time":"2025-07-28T19:04:30.144838+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.145171+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:30.145179+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.145182+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.145479+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:30.145482+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:30.145488+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:30.145932+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:30 [akrotiri/bcbAMY2J2l-000362] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3767B in 642.691ms +2025/07/28 19:04:30 [akrotiri/bcbAMY2J2l-000363] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 615.148625ms +{"time":"2025-07-28T19:04:30.985175+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":839} +{"time":"2025-07-28T19:04:30.985195+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:30.985183+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.03981+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":54} +{"time":"2025-07-28T19:04:31.039829+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.039834+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.040937+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:31.040943+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:04:31.040951+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.069889+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:31.069907+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":28} +{"time":"2025-07-28T19:04:31.071249+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:31.075084+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.075086+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:04:31.075172+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":3935,"success":3935,"duration_ms":968} +{"time":"2025-07-28T19:04:31.075579+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:31.075613+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:31.075633+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.085932+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:31.125226+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.125233+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":49} +{"time":"2025-07-28T19:04:31.125844+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:31.125854+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.125857+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.126233+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:31.126234+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:31.126244+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:31.126363+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:31.228805+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:31 [akrotiri/bcbAMY2J2l-000364] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 647.375333ms +2025/07/28 19:04:31 [akrotiri/bcbAMY2J2l-000365] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3771B in 626.473958ms +{"time":"2025-07-28T19:04:32.33968+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1213} +{"time":"2025-07-28T19:04:32.339692+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.339699+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:32.342186+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:04:32.342195+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:32.342197+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.500217+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:32.500214+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":157} +{"time":"2025-07-28T19:04:32.503086+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:32.507257+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":7} +{"time":"2025-07-28T19:04:32.507324+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +2025/07/28 19:04:32 [akrotiri/bcbAMY2J2l-000366] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3768B in 648.011833ms +{"time":"2025-07-28T19:04:32.516911+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:04:32.516927+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7454,"success":7454,"duration_ms":1440} +{"time":"2025-07-28T19:04:32.516968+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.517545+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:32.517555+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.517559+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.518368+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:32.518616+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:32.518637+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.525359+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:32.570419+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":52} +{"time":"2025-07-28T19:04:32.570427+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.570954+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:32.570962+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:32.570963+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:32.571569+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:33 [akrotiri/bcbAMY2J2l-000367] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 640.2715ms +{"time":"2025-07-28T19:04:33.049114+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:33 [akrotiri/bcbAMY2J2l-000368] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3772B in 647.94025ms +{"time":"2025-07-28T19:04:33.541297+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.541297+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":970} +{"time":"2025-07-28T19:04:33.541329+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:33.544349+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":3} +{"time":"2025-07-28T19:04:33.544358+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.544359+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:33.664424+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:33.66443+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":120} +{"time":"2025-07-28T19:04:33.66603+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:33.668585+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:04:33.668612+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:33.677265+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":8} +{"time":"2025-07-28T19:04:33.677278+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20021,"unique_prefixes":4451,"success":4451,"duration_ms":1158} +{"time":"2025-07-28T19:04:33.677285+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.677933+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:33.677943+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.677946+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.678821+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:33.678903+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:33.67892+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.683806+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:33.800981+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:33.80098+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":122} +{"time":"2025-07-28T19:04:33.802157+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:33.802202+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:04:33.802209+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:33.802211+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:34 [akrotiri/bcbAMY2J2l-000369] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 652.733625ms +2025/07/28 19:04:34 [akrotiri/bcbAMY2J2l-000370] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 620.550333ms +{"time":"2025-07-28T19:04:34.739477+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:34.739474+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":937} +{"time":"2025-07-28T19:04:34.739505+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:34.748904+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":130000143709,"total_messages":828416,"total_bytes":622574328,"total_mb":"593.73","messages_per_sec":"6087.49","bits_per_sec":"37088086","mbps":"37.09","total_dropped":59849} +{"time":"2025-07-28T19:04:34.748919+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":29652,"queue_cap":100000,"processed":792568,"dropped":0,"avg_time":114979,"min_time":0,"max_time":2021237791} +{"time":"2025-07-28T19:04:34.748924+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":822221,"dropped":0,"avg_time":58459,"min_time":0,"max_time":1674970041} +{"time":"2025-07-28T19:04:34.748928+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":662371,"dropped":59849,"avg_time":164303,"min_time":0,"max_time":2069192083} +{"time":"2025-07-28T19:04:34.748931+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":822221,"dropped":0,"avg_time":1528,"min_time":0,"max_time":16413542} +{"time":"2025-07-28T19:04:34.836302+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":96} +{"time":"2025-07-28T19:04:34.83631+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.837404+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:04:34.837413+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.837416+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.837614+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:34.837856+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:34.837863+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:34.837879+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.844942+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:34.844942+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":7} +{"time":"2025-07-28T19:04:34.844961+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20002,"unique_prefixes":4152,"success":4152,"duration_ms":1166} +{"time":"2025-07-28T19:04:34.848944+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:34.890073+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.890073+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":45} +{"time":"2025-07-28T19:04:34.890602+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:34.890648+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:34.890673+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:34.891283+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:34 [akrotiri/bcbAMY2J2l-000371] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3769B in 607.912333ms +{"time":"2025-07-28T19:04:35.086906+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:35 [akrotiri/bcbAMY2J2l-000372] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3772B in 646.855625ms +{"time":"2025-07-28T19:04:35.699392+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":808} +{"time":"2025-07-28T19:04:35.699412+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:35.699401+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.757006+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":57} +{"time":"2025-07-28T19:04:35.757032+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.757017+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:35.795946+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":38} +{"time":"2025-07-28T19:04:35.795972+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:35.797045+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:35.799153+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:35.799172+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:35.803084+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":3} +{"time":"2025-07-28T19:04:35.803092+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.803102+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":3317,"success":3317,"duration_ms":957} +{"time":"2025-07-28T19:04:35.803646+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:35.803653+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.803656+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.803936+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:35.803938+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:35.803943+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.810993+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:35.832221+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":28} +{"time":"2025-07-28T19:04:35.83223+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.833134+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:35.833142+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:35.833143+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:35.833426+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:36 [akrotiri/bcbAMY2J2l-000373] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3769B in 632.920208ms +{"time":"2025-07-28T19:04:36.442596+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"195.208.209.174","peer_asn":"25227"} +{"time":"2025-07-28T19:04:36.505651+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"193.239.118.249","peer_asn":"41255"} +2025/07/28 19:04:36 [akrotiri/bcbAMY2J2l-000374] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 692.002334ms +{"time":"2025-07-28T19:04:36.789307+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:37 [akrotiri/bcbAMY2J2l-000375] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3773B in 649.966375ms +2025/07/28 19:04:37 [akrotiri/bcbAMY2J2l-000376] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3772B in 631.404375ms +{"time":"2025-07-28T19:04:37.670526+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1837} +{"time":"2025-07-28T19:04:37.670547+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:37.670534+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.676598+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":6} +{"time":"2025-07-28T19:04:37.676607+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:37.676608+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.795679+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":119} +{"time":"2025-07-28T19:04:37.795692+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:37.796828+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:37.799561+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:37.799586+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:37.812944+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":13} +{"time":"2025-07-28T19:04:37.812958+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20021,"unique_prefixes":10078,"success":10078,"duration_ms":2009} +{"time":"2025-07-28T19:04:37.812958+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.813282+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:37.813291+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.813294+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.813857+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:37.813861+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:37.813867+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.819655+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:37.851065+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":37} +{"time":"2025-07-28T19:04:37.851074+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.851634+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:37.851643+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:37.851644+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:37.852178+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:38 [akrotiri/bcbAMY2J2l-000377] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 628.832ms +{"time":"2025-07-28T19:04:38.046898+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:38 [akrotiri/bcbAMY2J2l-000378] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 649.403875ms +{"time":"2025-07-28T19:04:38.995942+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"80.81.194.190","peer_asn":"31042"} +2025/07/28 19:04:39 [akrotiri/bcbAMY2J2l-000379] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3771B in 659.702125ms +{"time":"2025-07-28T19:04:39.324545+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1472} +{"time":"2025-07-28T19:04:39.324564+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:39.324551+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:39.330058+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:04:39.330065+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:39.330067+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:39.521581+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":191} +{"time":"2025-07-28T19:04:39.521592+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:39.523414+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:39.525236+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:39.525274+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:39.694925+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":169} +{"time":"2025-07-28T19:04:39.694944+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20039,"unique_prefixes":7730,"success":7730,"duration_ms":1881} +{"time":"2025-07-28T19:04:39.694943+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:39.699628+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:39.701036+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":6} +{"time":"2025-07-28T19:04:39.701045+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:39.701047+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:39 [akrotiri/bcbAMY2J2l-000380] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3766B in 775.081042ms +{"time":"2025-07-28T19:04:39.741561+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":40} +{"time":"2025-07-28T19:04:39.741577+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:39.74274+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:39.958471+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:40 [akrotiri/bcbAMY2J2l-000381] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 682.349709ms +2025/07/28 19:04:40 [akrotiri/bcbAMY2J2l-000382] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 655.447042ms +{"time":"2025-07-28T19:04:40.652913+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +{"time":"2025-07-28T19:04:40.659092+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +{"time":"2025-07-28T19:04:40.81003+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1068} +{"time":"2025-07-28T19:04:40.810041+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:40.810046+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:40.8806+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":70} +{"time":"2025-07-28T19:04:40.880617+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:40.880621+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:40.882215+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:40.882219+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:04:40.882225+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:40.920051+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:40.920051+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":37} +{"time":"2025-07-28T19:04:40.921443+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:40.923525+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:40.923531+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:41.011768+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":88} +{"time":"2025-07-28T19:04:41.011789+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20006,"unique_prefixes":5057,"success":5057,"duration_ms":1316} +{"time":"2025-07-28T19:04:41.011774+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.015043+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:41.016225+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:41.016258+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:04:41.016267+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.068186+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:41.068189+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":51} +{"time":"2025-07-28T19:04:41.06941+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:41 [akrotiri/bcbAMY2J2l-000383] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3766B in 663.223042ms +{"time":"2025-07-28T19:04:41.401597+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8:4::73ab:1","peer_asn":"29611"} +{"time":"2025-07-28T19:04:41.401681+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} +{"time":"2025-07-28T19:04:41.404797+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:5598:1","peer_asn":"35598"} +2025/07/28 19:04:41 [akrotiri/bcbAMY2J2l-000384] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3766B in 628.340417ms +{"time":"2025-07-28T19:04:41.746395+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.746395+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":678} +{"time":"2025-07-28T19:04:41.746429+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:41.803415+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:41.803416+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":57} +{"time":"2025-07-28T19:04:41.803487+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.865252+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:41.865254+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":61} +{"time":"2025-07-28T19:04:41.866248+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.86626+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":1} +{"time":"2025-07-28T19:04:41.866282+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20018,"unique_prefixes":2333,"success":2333,"duration_ms":853} +{"time":"2025-07-28T19:04:41.86657+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:41.866607+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:41.866616+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.86662+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.867077+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:41.867086+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.86709+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.867734+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:41.867741+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.867744+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.86852+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:41.868536+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:41.868555+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.871811+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:41.895762+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:41.916312+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":47} +{"time":"2025-07-28T19:04:41.917604+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.918063+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:41.918259+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:41.918272+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:41.918329+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:04:42 [akrotiri/bcbAMY2J2l-000385] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3769B in 697.100375ms +2025/07/28 19:04:42 [akrotiri/bcbAMY2J2l-000386] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 705.386167ms +2025/07/28 19:04:42 [akrotiri/bcbAMY2J2l-000387] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3770B in 707.104041ms +{"time":"2025-07-28T19:04:42.956653+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:42.956651+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1038} +{"time":"2025-07-28T19:04:42.95674+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:42.967017+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":10} +{"time":"2025-07-28T19:04:42.967051+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:43.132106+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":165} +{"time":"2025-07-28T19:04:43.132372+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.133383+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:04:43.133395+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.133399+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.134023+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:43.13421+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:43.134218+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:43.134222+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.140126+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:04:43.140142+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":3156,"success":3156,"duration_ms":1271} +{"time":"2025-07-28T19:04:43.14015+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:43.148549+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:43.210121+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":69} +{"time":"2025-07-28T19:04:43.210179+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.21087+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:43.210889+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.2109+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.211348+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:43.211748+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:43.211777+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:43.211892+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:43.231921+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"80.81.194.92","peer_asn":"57111"} +2025/07/28 19:04:43 [akrotiri/bcbAMY2J2l-000388] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3766B in 815.192667ms +2025/07/28 19:04:43 [akrotiri/bcbAMY2J2l-000389] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3766B in 818.742041ms +{"time":"2025-07-28T19:04:43.514478+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:43 [akrotiri/bcbAMY2J2l-000390] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3768B in 825.370041ms +2025/07/28 19:04:43 [akrotiri/bcbAMY2J2l-000391] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3768B in 828.225417ms +{"time":"2025-07-28T19:04:44.310049+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1098} +{"time":"2025-07-28T19:04:44.310073+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:44.310078+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:44.328606+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:44.32877+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":18} +{"time":"2025-07-28T19:04:44.328781+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":4609,"success":4609,"duration_ms":1187} +{"time":"2025-07-28T19:04:44.32914+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:44.331167+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:44.331191+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:44.339006+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:44.498995+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:44.499004+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":169} +{"time":"2025-07-28T19:04:44.502553+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:44.503607+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:44.504044+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:04:44.504289+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:44.5048+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:44.504811+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:44.584554+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:44 [akrotiri/bcbAMY2J2l-000393] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3768B in 880.943416ms +2025/07/28 19:04:44 [akrotiri/bcbAMY2J2l-000392] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 917.594792ms +{"time":"2025-07-28T19:04:44.749583+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":140000737750,"total_messages":891904,"total_bytes":668545596,"total_mb":"637.57","messages_per_sec":"6049.58","bits_per_sec":"36633330","mbps":"36.63","total_dropped":85662} +{"time":"2025-07-28T19:04:44.749662+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":20191,"queue_cap":100000,"processed":865016,"dropped":0,"avg_time":117713,"min_time":0,"max_time":2021237791} +{"time":"2025-07-28T19:04:44.749695+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":1127,"queue_cap":100000,"processed":884080,"dropped":0,"avg_time":61427,"min_time":0,"max_time":1674970041} +{"time":"2025-07-28T19:04:44.749708+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":97786,"queue_cap":100000,"processed":701759,"dropped":85662,"avg_time":170258,"min_time":0,"max_time":2069192083} +{"time":"2025-07-28T19:04:44.749714+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":885208,"dropped":0,"avg_time":1521,"min_time":0,"max_time":16413542} +2025/07/28 19:04:44 [akrotiri/bcbAMY2J2l-000395] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3769B in 884.6215ms +2025/07/28 19:04:44 [akrotiri/bcbAMY2J2l-000394] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3769B in 891.64025ms +2025/07/28 19:04:45 [akrotiri/bcbAMY2J2l-000396] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3769B in 813.049291ms +2025/07/28 19:04:45 [akrotiri/bcbAMY2J2l-000397] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57342 - 200 3770B in 897.790042ms +{"time":"2025-07-28T19:04:45.456184+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"80.249.210.89","peer_asn":"31042"} +{"time":"2025-07-28T19:04:45.639759+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:45.639759+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1135} +{"time":"2025-07-28T19:04:45.63986+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:45.724307+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.72433+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":84} +{"time":"2025-07-28T19:04:45.724866+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:45.724879+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:45.724931+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.725969+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:45 [akrotiri/bcbAMY2J2l-000399] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 779.246208ms +2025/07/28 19:04:45 [akrotiri/bcbAMY2J2l-000398] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 782.8565ms +{"time":"2025-07-28T19:04:45.728166+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:45.728169+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:45.728989+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.729052+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":0} +{"time":"2025-07-28T19:04:45.72906+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":3720,"success":3720,"duration_ms":1397} +{"time":"2025-07-28T19:04:45.72963+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:45.730209+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:45.730231+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.736631+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:45.78714+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":57} +{"time":"2025-07-28T19:04:45.787152+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.787716+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:45.787726+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.78773+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:45.788378+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:45.788381+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:45.788429+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:45.788447+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:46 [akrotiri/bcbAMY2J2l-000400] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3766B in 766.848625ms +2025/07/28 19:04:46 [akrotiri/bcbAMY2J2l-000401] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57342 - 200 3766B in 775.485375ms +{"time":"2025-07-28T19:04:46.350112+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:46 [akrotiri/bcbAMY2J2l-000403] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 200 3770B in 759.662458ms +2025/07/28 19:04:46 [akrotiri/bcbAMY2J2l-000402] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 770.475417ms +2025/07/28 19:04:47 [akrotiri/bcbAMY2J2l-000405] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57342 - 200 3770B in 710.444792ms +2025/07/28 19:04:47 [akrotiri/bcbAMY2J2l-000404] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 200 3770B in 765.782083ms +{"time":"2025-07-28T19:04:47.447359+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1658} +{"time":"2025-07-28T19:04:47.447378+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:47.447383+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:47.978861+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:04:47 [akrotiri/bcbAMY2J2l-000407] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56696 - 408 17B in 1.000899875s +{"time":"2025-07-28T19:04:47.988407+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:47.988411+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":541} +{"time":"2025-07-28T19:04:47.988485+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7085,"success":7085,"duration_ms":2258} +{"time":"2025-07-28T19:04:48.005743+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:48.099427+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:48.09955+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":111} +{"time":"2025-07-28T19:04:48.099975+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:48.10086+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:48.100871+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:48.101756+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:48.105459+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:48.105472+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:04:48.109593+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:48 [akrotiri/bcbAMY2J2l-000406] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 1.257888333s +{"time":"2025-07-28T19:04:48.455011+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:04:48 [akrotiri/bcbAMY2J2l-000408] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56504 - 408 17B in 1.000308667s +{"time":"2025-07-28T19:04:48.457657+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:04:48 [akrotiri/bcbAMY2J2l-000409] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57342 - 408 17B in 1.000825917s +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000411] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3777B in 1.12936175s +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000412] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3777B in 1.127526375s +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000410] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3777B in 1.157667541s +{"time":"2025-07-28T19:04:49.164784+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2602:fa91:0:cccc::20","peer_asn":"53427"} +{"time":"2025-07-28T19:04:49.291035+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8::7942:0:1","peer_asn":"31042"} +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000414] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3777B in 1.107310083s +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000415] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3777B in 1.11275425s +2025/07/28 19:04:49 [akrotiri/bcbAMY2J2l-000413] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3777B in 1.131553625s +{"time":"2025-07-28T19:04:49.719976+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:49.719993+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1614} +{"time":"2025-07-28T19:04:49.720014+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:49.830385+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:49.830403+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":110} +{"time":"2025-07-28T19:04:49.830739+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:49.916429+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:49.916658+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":86} +{"time":"2025-07-28T19:04:49.919401+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:49.91952+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:49.919481+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:04:49.92205+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:49.928991+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:49.929021+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:04:49.929045+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20027,"unique_prefixes":5593,"success":5593,"duration_ms":1937} +{"time":"2025-07-28T19:04:49.929384+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:49.929899+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:49.930046+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:49.936498+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:50.025521+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:50.025528+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":96} +{"time":"2025-07-28T19:04:50.028143+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:50.03006+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:50.030128+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:04:50.030681+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:50.030733+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:50.030791+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000416] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3771B in 1.080419833s +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000418] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3771B in 1.055472833s +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000417] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3771B in 1.092993s +{"time":"2025-07-28T19:04:50.388369+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:50.544246+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} +{"time":"2025-07-28T19:04:50.547096+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"186.211.128.34","peer_asn":"14840"} +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000419] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3777B in 1.069298s +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000420] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3775B in 1.071911667s +2025/07/28 19:04:50 [akrotiri/bcbAMY2J2l-000421] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 910.012667ms +{"time":"2025-07-28T19:04:50.912606+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":881} +{"time":"2025-07-28T19:04:50.912626+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:50.912648+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:51 [akrotiri/bcbAMY2J2l-000422] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3775B in 854.852417ms +{"time":"2025-07-28T19:04:51.112119+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:51.112131+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":199} +{"time":"2025-07-28T19:04:51.113422+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:51.118009+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:51.118141+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:04:51.118166+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:51.12436+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:51.124422+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":6} +{"time":"2025-07-28T19:04:51.138843+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:51.138854+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":14} +{"time":"2025-07-28T19:04:51.138883+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20152,"unique_prefixes":3772,"success":3772,"duration_ms":1208} +{"time":"2025-07-28T19:04:51.147551+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:51.23146+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:51.231479+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":92} +{"time":"2025-07-28T19:04:51.232847+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:51.236493+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:51.236554+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:04:51.236587+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:51 [akrotiri/bcbAMY2J2l-000424] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3770B in 877.002791ms +2025/07/28 19:04:51 [akrotiri/bcbAMY2J2l-000423] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3771B in 920.284417ms +2025/07/28 19:04:51 [akrotiri/bcbAMY2J2l-000426] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3771B in 836.527167ms +2025/07/28 19:04:51 [akrotiri/bcbAMY2J2l-000425] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3771B in 842.314458ms +{"time":"2025-07-28T19:04:52.193588+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:52.439696+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:52.441066+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1203} +{"time":"2025-07-28T19:04:52.441078+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +2025/07/28 19:04:52 [akrotiri/bcbAMY2J2l-000427] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 786.372958ms +2025/07/28 19:04:52 [akrotiri/bcbAMY2J2l-000428] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3774B in 790.854208ms +{"time":"2025-07-28T19:04:52.650383+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":210} +{"time":"2025-07-28T19:04:52.65172+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:52.650313+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:52.653059+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:52.653101+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:04:52.653135+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:52.659902+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:52.659918+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":6} +{"time":"2025-07-28T19:04:52.666349+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:52.666365+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:04:52.66647+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20009,"unique_prefixes":4303,"success":4303,"duration_ms":1525} +{"time":"2025-07-28T19:04:52.671113+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:52.76942+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:52.769605+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":103} +{"time":"2025-07-28T19:04:52.771837+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:52.773669+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:52.773677+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:04:52.773685+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:52 [akrotiri/bcbAMY2J2l-000429] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 834.0155ms +2025/07/28 19:04:52 [akrotiri/bcbAMY2J2l-000430] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3772B in 856.826334ms +2025/07/28 19:04:53 [akrotiri/bcbAMY2J2l-000432] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3771B in 799.733792ms +2025/07/28 19:04:53 [akrotiri/bcbAMY2J2l-000431] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3771B in 801.2685ms +{"time":"2025-07-28T19:04:53.689969+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:53.689986+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":916} +{"time":"2025-07-28T19:04:53.690007+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +2025/07/28 19:04:53 [akrotiri/bcbAMY2J2l-000434] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3771B in 771.571ms +2025/07/28 19:04:53 [akrotiri/bcbAMY2J2l-000433] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3771B in 779.733709ms +{"time":"2025-07-28T19:04:53.791685+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.79169+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":101} +{"time":"2025-07-28T19:04:53.791968+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:53.792024+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:53.792049+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.792976+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:53.80164+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:04:53.801649+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.801657+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20011,"unique_prefixes":3507,"success":3507,"duration_ms":1134} +{"time":"2025-07-28T19:04:53.802023+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:53.802033+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.802048+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.802168+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:53.802179+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:53.802184+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.809242+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:53.861016+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":58} +{"time":"2025-07-28T19:04:53.861031+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.861418+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:53.861427+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.861431+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.861987+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:53.862015+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:53.862034+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:53.862238+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:53.913884+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:54.142323+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"102.67.56.1","peer_asn":"328474"} +2025/07/28 19:04:54 [akrotiri/bcbAMY2J2l-000435] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3773B in 803.994333ms +2025/07/28 19:04:54 [akrotiri/bcbAMY2J2l-000436] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3773B in 797.963458ms +{"time":"2025-07-28T19:04:54.749153+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":150000204750,"total_messages":954539,"total_bytes":715423088,"total_mb":"682.28","messages_per_sec":"6150.52","bits_per_sec":"37173721","mbps":"37.17","total_dropped":123924} +{"time":"2025-07-28T19:04:54.74919+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":29037,"queue_cap":100000,"processed":918329,"dropped":0,"avg_time":121066,"min_time":0,"max_time":2311683250} +{"time":"2025-07-28T19:04:54.749326+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":3286,"queue_cap":100000,"processed":944080,"dropped":0,"avg_time":63917,"min_time":0,"max_time":1811217458} +{"time":"2025-07-28T19:04:54.749343+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":99137,"queue_cap":100000,"processed":724305,"dropped":123924,"avg_time":178031,"min_time":0,"max_time":2258306666} +{"time":"2025-07-28T19:04:54.749452+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":947367,"dropped":0,"avg_time":1541,"min_time":0,"max_time":16413542} +2025/07/28 19:04:54 [akrotiri/bcbAMY2J2l-000437] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3773B in 793.444583ms +2025/07/28 19:04:54 [akrotiri/bcbAMY2J2l-000438] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3773B in 799.480292ms +2025/07/28 19:04:55 [akrotiri/bcbAMY2J2l-000439] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3774B in 799.997375ms +2025/07/28 19:04:55 [akrotiri/bcbAMY2J2l-000440] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 797.722292ms +{"time":"2025-07-28T19:04:55.520297+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1658} +{"time":"2025-07-28T19:04:55.520306+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.520331+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:55.601914+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:55.601963+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":81} +{"time":"2025-07-28T19:04:55.601988+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.65725+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":55} +{"time":"2025-07-28T19:04:55.657291+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:55.658517+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:55.664486+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":7} +{"time":"2025-07-28T19:04:55.664523+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:55.67661+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":12} +{"time":"2025-07-28T19:04:55.676628+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20008,"unique_prefixes":7638,"success":7638,"duration_ms":1874} +{"time":"2025-07-28T19:04:55.676644+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.677184+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:55.677211+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.677214+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:55.681534+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:55.72503+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":47} +{"time":"2025-07-28T19:04:55.725054+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.725724+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:55.725734+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.725738+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.725967+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:55.725985+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:55.726002+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:55.726775+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:55 [akrotiri/bcbAMY2J2l-000441] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3770B in 781.342625ms +{"time":"2025-07-28T19:04:55.766554+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:12f8::221:238","peer_asn":"262317"} +2025/07/28 19:04:55 [akrotiri/bcbAMY2J2l-000442] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3770B in 769.627834ms +2025/07/28 19:04:56 [akrotiri/bcbAMY2J2l-000443] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3770B in 765.716042ms +2025/07/28 19:04:56 [akrotiri/bcbAMY2J2l-000444] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3770B in 802.845417ms +{"time":"2025-07-28T19:04:56.55576+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:56 [akrotiri/bcbAMY2J2l-000445] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3773B in 763.641792ms +2025/07/28 19:04:56 [akrotiri/bcbAMY2J2l-000446] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3773B in 773.407208ms +{"time":"2025-07-28T19:04:56.887217+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:56.887212+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1161} +{"time":"2025-07-28T19:04:56.887282+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:56.894192+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":6} +{"time":"2025-07-28T19:04:56.894205+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:56.894226+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:57.010951+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":116} +{"time":"2025-07-28T19:04:57.011571+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:57.012498+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:57.024222+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":12} +{"time":"2025-07-28T19:04:57.024255+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:57.085675+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":61} +{"time":"2025-07-28T19:04:57.08569+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20009,"unique_prefixes":4624,"success":4624,"duration_ms":1408} +{"time":"2025-07-28T19:04:57.085734+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:57.090227+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:04:57.09024+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:57.090263+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:57.098424+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:57.148964+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":58} +{"time":"2025-07-28T19:04:57.148996+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:57.150862+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:57.15262+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":3} +{"time":"2025-07-28T19:04:57.152631+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:57.152654+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:04:57 [akrotiri/bcbAMY2J2l-000447] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3769B in 746.378583ms +2025/07/28 19:04:57 [akrotiri/bcbAMY2J2l-000448] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3769B in 749.734083ms +2025/07/28 19:04:57 [akrotiri/bcbAMY2J2l-000449] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3767B in 751.793333ms +2025/07/28 19:04:57 [akrotiri/bcbAMY2J2l-000450] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3767B in 767.75075ms +2025/07/28 19:04:58 [akrotiri/bcbAMY2J2l-000451] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3767B in 747.345667ms +2025/07/28 19:04:58 [akrotiri/bcbAMY2J2l-000452] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3767B in 738.283208ms +{"time":"2025-07-28T19:04:58.680488+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1527} +{"time":"2025-07-28T19:04:58.680508+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:58.680551+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:58.731606+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":51} +{"time":"2025-07-28T19:04:58.731676+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:58.733337+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:58.736518+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:04:58.736531+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:58.736536+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:58.737198+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:58.737212+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:58.737231+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:04:58 [akrotiri/bcbAMY2J2l-000453] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3768B in 752.557708ms +{"time":"2025-07-28T19:04:58.74782+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:b18:10::3","peer_asn":"47787"} +{"time":"2025-07-28T19:04:58.752809+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:58.752826+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":15} +{"time":"2025-07-28T19:04:58.752853+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":8482,"success":8482,"duration_ms":1665} +{"time":"2025-07-28T19:04:58.759786+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:04:58 [akrotiri/bcbAMY2J2l-000454] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3767B in 751.993917ms +{"time":"2025-07-28T19:04:58.796519+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:58.796944+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:58.797091+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:58.797141+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:58.797259+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":43} +{"time":"2025-07-28T19:04:58.799352+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:59.114424+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:04:59 [akrotiri/bcbAMY2J2l-000455] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3769B in 779.897334ms +2025/07/28 19:04:59 [akrotiri/bcbAMY2J2l-000456] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3769B in 804.527584ms +{"time":"2025-07-28T19:04:59.420457+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"103.200.113.1","peer_asn":"131477"} +{"time":"2025-07-28T19:04:59.562948+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2400:c3e0::2","peer_asn":"142271"} +{"time":"2025-07-28T19:04:59.786648+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":989} +{"time":"2025-07-28T19:04:59.786669+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:59.786678+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.792086+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:04:59.792101+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.792127+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:04:59 [akrotiri/bcbAMY2J2l-000457] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 795.985583ms +2025/07/28 19:04:59 [akrotiri/bcbAMY2J2l-000458] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3770B in 789.535958ms +{"time":"2025-07-28T19:04:59.820157+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:04:59.820157+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":28} +{"time":"2025-07-28T19:04:59.821586+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:59.824007+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:04:59.824036+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:04:59.829879+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:04:59.829891+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.829892+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20056,"unique_prefixes":6202,"success":6202,"duration_ms":1075} +{"time":"2025-07-28T19:04:59.830566+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:59.830574+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.830577+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.830817+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:04:59.830842+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:59.830865+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.839822+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:59.859979+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":29} +{"time":"2025-07-28T19:04:59.859992+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.860131+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:59.860138+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.860142+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.860586+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:04:59.860609+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:04:59.860631+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:04:59.861364+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:00 [akrotiri/bcbAMY2J2l-000460] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3767B in 798.814625ms +2025/07/28 19:05:00 [akrotiri/bcbAMY2J2l-000459] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3767B in 814.31375ms +2025/07/28 19:05:00 [akrotiri/bcbAMY2J2l-000461] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3767B in 827.383125ms +2025/07/28 19:05:00 [akrotiri/bcbAMY2J2l-000462] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3767B in 832.110541ms +{"time":"2025-07-28T19:05:01.258888+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1398} +{"time":"2025-07-28T19:05:01.258908+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:01.258934+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.267013+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":8} +{"time":"2025-07-28T19:05:01.267028+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.26704+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:01.348406+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":81} +{"time":"2025-07-28T19:05:01.348443+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:01.349815+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:01.362251+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":13} +{"time":"2025-07-28T19:05:01.36227+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20512,"unique_prefixes":9772,"success":9772,"duration_ms":1531} +{"time":"2025-07-28T19:05:01.362273+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.362984+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:01.362995+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.363+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.363685+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:01.363698+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:01.363736+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:01 [akrotiri/bcbAMY2J2l-000463] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 863.342041ms +{"time":"2025-07-28T19:05:01.370526+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:05:01 [akrotiri/bcbAMY2J2l-000464] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3768B in 856.822625ms +{"time":"2025-07-28T19:05:01.391641+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":27} +{"time":"2025-07-28T19:05:01.391655+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.392172+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:01.392182+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.392186+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.392752+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:01.392818+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:01.392841+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:01.392959+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:01.420226+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:01 [akrotiri/bcbAMY2J2l-000465] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3770B in 807.067625ms +2025/07/28 19:05:01 [akrotiri/bcbAMY2J2l-000466] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3770B in 813.306ms +2025/07/28 19:05:02 [akrotiri/bcbAMY2J2l-000467] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3770B in 876.206917ms +2025/07/28 19:05:02 [akrotiri/bcbAMY2J2l-000468] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3770B in 867.692375ms +{"time":"2025-07-28T19:05:02.534307+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1141} +{"time":"2025-07-28T19:05:02.534326+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:02.534343+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.631842+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:02.631851+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":97} +{"time":"2025-07-28T19:05:02.631947+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.680898+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":49} +{"time":"2025-07-28T19:05:02.680914+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:02.682211+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:02.687929+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":7} +{"time":"2025-07-28T19:05:02.687942+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:02.693631+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:05:02.693646+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20063,"unique_prefixes":6588,"success":6588,"duration_ms":1329} +{"time":"2025-07-28T19:05:02.693654+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.697141+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":3} +{"time":"2025-07-28T19:05:02.697154+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.697163+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:02.69987+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:02.743833+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":46} +{"time":"2025-07-28T19:05:02.743855+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.745177+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:02.748712+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:05:02.748726+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:02.74875+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:05:02 [akrotiri/bcbAMY2J2l-000469] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 839.455459ms +2025/07/28 19:05:02 [akrotiri/bcbAMY2J2l-000470] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3768B in 825.521291ms +2025/07/28 19:05:03 [akrotiri/bcbAMY2J2l-000472] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3769B in 795.552208ms +2025/07/28 19:05:03 [akrotiri/bcbAMY2J2l-000471] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3769B in 810.442958ms +{"time":"2025-07-28T19:05:03.742578+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":993} +{"time":"2025-07-28T19:05:03.7426+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:03.742598+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:03.787358+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"198.32.160.113","peer_asn":"15547"} +{"time":"2025-07-28T19:05:03.789092+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":46} +{"time":"2025-07-28T19:05:03.789121+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.794304+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:05:03.794323+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.794322+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:03.819589+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":25} +{"time":"2025-07-28T19:05:03.819608+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20026,"unique_prefixes":5520,"success":5520,"duration_ms":1124} +{"time":"2025-07-28T19:05:03.819626+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.822247+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:05:03.822261+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.822273+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.822986+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:03.822993+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.822996+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.823256+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:03.823263+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.823267+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.823532+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:03.823537+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.82354+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.823601+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:03.823606+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.823609+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.824125+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:03.824131+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.824134+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:03.828564+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:03.829186+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:05:03.8292+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:03.829208+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:03 [akrotiri/bcbAMY2J2l-000474] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3766B in 870.247625ms +2025/07/28 19:05:03 [akrotiri/bcbAMY2J2l-000473] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3766B in 882.467791ms +{"time":"2025-07-28T19:05:04.118696+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:04 [akrotiri/bcbAMY2J2l-000475] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3768B in 812.269917ms +2025/07/28 19:05:04 [akrotiri/bcbAMY2J2l-000476] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3768B in 801.896083ms +{"time":"2025-07-28T19:05:04.422036+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:04.750235+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":160001230500,"total_messages":996764,"total_bytes":745969411,"total_mb":"711.41","messages_per_sec":"5839.24","bits_per_sec":"35091787","mbps":"35.09","total_dropped":128275} +{"time":"2025-07-28T19:05:04.750265+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":7527,"queue_cap":100000,"processed":981604,"dropped":0,"avg_time":123373,"min_time":0,"max_time":2311683250} +{"time":"2025-07-28T19:05:04.750272+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":5051,"queue_cap":100000,"processed":984080,"dropped":0,"avg_time":65596,"min_time":0,"max_time":1811217458} +{"time":"2025-07-28T19:05:04.750276+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":94571,"queue_cap":100000,"processed":766285,"dropped":128275,"avg_time":181348,"min_time":0,"max_time":2258306666} +{"time":"2025-07-28T19:05:04.75028+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeeringHandler","index":3,"queue_len":3,"queue_cap":100000,"processed":989128,"dropped":0,"avg_time":1553,"min_time":0,"max_time":16413542} +2025/07/28 19:05:04 [akrotiri/bcbAMY2J2l-000478] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3772B in 829.906167ms +2025/07/28 19:05:04 [akrotiri/bcbAMY2J2l-000477] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 851.271292ms +{"time":"2025-07-28T19:05:05.085508+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1256} +{"time":"2025-07-28T19:05:05.085532+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:05.085534+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:05.183753+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:05.183757+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":98} +{"time":"2025-07-28T19:05:05.183781+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:05.223694+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":39} +{"time":"2025-07-28T19:05:05.223866+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:05.227862+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":3} +{"time":"2025-07-28T19:05:05.228835+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:05.228845+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:05.293673+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:05.293691+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":64} +{"time":"2025-07-28T19:05:05.294951+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:05.310608+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:05.310619+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":16} +{"time":"2025-07-28T19:05:05.310642+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":7353,"success":7353,"duration_ms":1489} +{"time":"2025-07-28T19:05:05.310776+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:05.310792+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:05.310802+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:05.318313+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:05.331737+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:05.331734+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":20} +{"time":"2025-07-28T19:05:05.332098+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:05.33211+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:05.332115+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:05 [akrotiri/bcbAMY2J2l-000479] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3766B in 838.740292ms +2025/07/28 19:05:05 [akrotiri/bcbAMY2J2l-000480] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3766B in 837.840334ms +{"time":"2025-07-28T19:05:05.553645+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:05 [akrotiri/bcbAMY2J2l-000482] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3769B in 833.506625ms +2025/07/28 19:05:05 [akrotiri/bcbAMY2J2l-000481] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3769B in 862.047167ms +{"time":"2025-07-28T19:05:06.00495+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:06.326763+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":994} +{"time":"2025-07-28T19:05:06.326782+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:06.326787+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:06.354878+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:06.354894+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":28} +{"time":"2025-07-28T19:05:06.354916+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20021,"unique_prefixes":5871,"success":5871,"duration_ms":1042} +{"time":"2025-07-28T19:05:06.355499+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:06.355512+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:06.35553+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:06.360477+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:06.360486+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:06.373563+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:05:06 [akrotiri/bcbAMY2J2l-000483] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3770B in 871.968333ms +{"time":"2025-07-28T19:05:06.405612+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:06.406065+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":45} +{"time":"2025-07-28T19:05:06.406195+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:06.408022+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:06.408236+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:06 [akrotiri/bcbAMY2J2l-000484] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3767B in 880.531459ms +{"time":"2025-07-28T19:05:06.557652+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:06.64027+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:de8:4::1:8403:1","peer_asn":"18403"} +{"time":"2025-07-28T19:05:06.723965+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:07 [akrotiri/bcbAMY2J2l-000485] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3776B in 978.3245ms +2025/07/28 19:05:07 [akrotiri/bcbAMY2J2l-000486] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3776B in 964.24975ms +{"time":"2025-07-28T19:05:07.751071+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.751071+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1344} +{"time":"2025-07-28T19:05:07.75141+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:07.751838+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:07.751853+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.751862+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:07.816817+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":64} +{"time":"2025-07-28T19:05:07.817029+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:07.818197+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:07.821304+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:07.821342+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:07.828076+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:05:07.828099+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":8990,"success":8990,"duration_ms":1470} +{"time":"2025-07-28T19:05:07.828111+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.828399+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:07.828413+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.828419+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.828596+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:07.828613+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:07.828624+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.841082+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:05:07 [akrotiri/bcbAMY2J2l-000487] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3773B in 991.765125ms +2025/07/28 19:05:07 [akrotiri/bcbAMY2J2l-000488] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3773B in 982.675833ms +{"time":"2025-07-28T19:05:07.977573+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":148} +{"time":"2025-07-28T19:05:07.977584+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.978879+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:07.978892+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:07.978999+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:07.979542+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:08 [akrotiri/bcbAMY2J2l-000490] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3773B in 975.683041ms +2025/07/28 19:05:08 [akrotiri/bcbAMY2J2l-000489] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3774B in 1.040663416s +{"time":"2025-07-28T19:05:08.43137+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:08 [akrotiri/bcbAMY2J2l-000491] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3776B in 1.04019375s +2025/07/28 19:05:08 [akrotiri/bcbAMY2J2l-000492] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3776B in 1.031590042s +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000493] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3775B in 968.653666ms +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000494] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3775B in 969.98025ms +{"time":"2025-07-28T19:05:09.406139+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1427} +{"time":"2025-07-28T19:05:09.406159+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:09.40618+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.407363+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:09.407377+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.407383+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000495] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3777B in 879.011916ms +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000496] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3777B in 872.03225ms +{"time":"2025-07-28T19:05:09.464213+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":56} +{"time":"2025-07-28T19:05:09.46425+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:09.466286+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:09.469255+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:05:09.469277+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:09.479186+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:05:09.479202+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20003,"unique_prefixes":9733,"success":9733,"duration_ms":1649} +{"time":"2025-07-28T19:05:09.479228+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.479698+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:09.479709+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.479727+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:09.490406+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:09.501998+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":22} +{"time":"2025-07-28T19:05:09.502013+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.502557+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:09.502566+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.502571+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.502972+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:09.502998+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:09.503022+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:09.503436+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:09.532093+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000497] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3776B in 901.920958ms +2025/07/28 19:05:09 [akrotiri/bcbAMY2J2l-000498] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3776B in 875.256209ms +{"time":"2025-07-28T19:05:10.382255+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:43f8:6d0::60","peer_asn":"37468"} +2025/07/28 19:05:10 [akrotiri/bcbAMY2J2l-000499] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3776B in 891.226667ms +2025/07/28 19:05:10 [akrotiri/bcbAMY2J2l-000500] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3776B in 891.901083ms +{"time":"2025-07-28T19:05:10.954514+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1451} +{"time":"2025-07-28T19:05:10.954533+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:10.954555+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:10.955215+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:10.955231+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:10.955237+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:10 [akrotiri/bcbAMY2J2l-000502] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3777B in 908.284625ms +2025/07/28 19:05:10 [akrotiri/bcbAMY2J2l-000501] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3777B in 932.042041ms +{"time":"2025-07-28T19:05:11.023048+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":67} +{"time":"2025-07-28T19:05:11.023059+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:11.024411+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:11.025927+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:05:11.025984+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:11.144693+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":118} +{"time":"2025-07-28T19:05:11.144712+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":9355,"success":9355,"duration_ms":1663} +{"time":"2025-07-28T19:05:11.144727+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.145578+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:11.145591+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.145595+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.145707+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:11.145845+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:11.145893+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.158941+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:11.253517+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":107} +{"time":"2025-07-28T19:05:11.254859+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:11.254865+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:11.345297+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.345344+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":90} +{"time":"2025-07-28T19:05:11.346778+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:11.346794+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:11.346812+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:11.351534+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:11 [akrotiri/bcbAMY2J2l-000503] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3772B in 906.031875ms +2025/07/28 19:05:11 [akrotiri/bcbAMY2J2l-000504] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3773B in 922.998625ms +{"time":"2025-07-28T19:05:11.492972+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:11.803416+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"193.107.13.3","peer_asn":"47787"} +2025/07/28 19:05:12 [akrotiri/bcbAMY2J2l-000505] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3776B in 971.944208ms +2025/07/28 19:05:12 [akrotiri/bcbAMY2J2l-000506] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3776B in 947.740042ms +2025/07/28 19:05:12 [akrotiri/bcbAMY2J2l-000507] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3775B in 921.753958ms +2025/07/28 19:05:12 [akrotiri/bcbAMY2J2l-000508] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3775B in 914.019958ms +{"time":"2025-07-28T19:05:12.984183+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"196.60.8.60","peer_asn":"37468"} +{"time":"2025-07-28T19:05:13.258056+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1911} +{"time":"2025-07-28T19:05:13.258075+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:13.258089+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.259464+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:13.259477+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.259481+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.261212+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:13.261238+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:13.261262+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.266374+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:13.26812+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:05:13.2728+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:13.326821+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:13.326851+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":60} +{"time":"2025-07-28T19:05:13.328918+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:13.336242+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.336605+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:13.339156+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:05:13.339167+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20061,"unique_prefixes":7696,"success":7696,"duration_ms":2190} +{"time":"2025-07-28T19:05:13.339284+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:13.340186+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:13.340206+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.340366+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":2} +{"time":"2025-07-28T19:05:13.355458+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:13.418829+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":79} +{"time":"2025-07-28T19:05:13.418853+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.419424+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:13.419436+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.419441+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.420056+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:13.420082+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:13.4201+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:13.421091+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:13 [akrotiri/bcbAMY2J2l-000509] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3773B in 1.093928042s +2025/07/28 19:05:13 [akrotiri/bcbAMY2J2l-000511] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3773B in 1.086461958s +2025/07/28 19:05:13 [akrotiri/bcbAMY2J2l-000510] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3773B in 1.08876425s +2025/07/28 19:05:13 [akrotiri/bcbAMY2J2l-000512] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3773B in 1.114243375s +2025/07/28 19:05:14 [akrotiri/bcbAMY2J2l-000513] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3773B in 1.108768333s +2025/07/28 19:05:14 [akrotiri/bcbAMY2J2l-000514] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3773B in 1.115006125s +{"time":"2025-07-28T19:05:14.633859+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:14 [akrotiri/bcbAMY2J2l-000515] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3774B in 996.544416ms +2025/07/28 19:05:14 [akrotiri/bcbAMY2J2l-000516] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3775B in 1.002078709s +{"time":"2025-07-28T19:05:14.74909+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":170000012834,"total_messages":1062502,"total_bytes":794795839,"total_mb":"757.98","messages_per_sec":"5943.31","bits_per_sec":"35498841","mbps":"35.50","total_dropped":138693} +{"time":"2025-07-28T19:05:14.749111+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":9066,"queue_cap":100000,"processed":1045303,"dropped":0,"avg_time":123824,"min_time":0,"max_time":2311683250} +{"time":"2025-07-28T19:05:14.749117+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PeerHandler","index":1,"queue_len":290,"queue_cap":100000,"processed":1054080,"dropped":0,"avg_time":68115,"min_time":0,"max_time":1917211625} +{"time":"2025-07-28T19:05:14.749121+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":97199,"queue_cap":100000,"processed":818479,"dropped":138693,"avg_time":181410,"min_time":0,"max_time":2258306666} +{"time":"2025-07-28T19:05:14.749125+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":1054372,"dropped":0,"avg_time":1560,"min_time":0,"max_time":16413542} +{"time":"2025-07-28T19:05:14.779609+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1359} +{"time":"2025-07-28T19:05:14.779628+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:14.779633+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.784424+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":4} +{"time":"2025-07-28T19:05:14.784436+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.784441+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.784737+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:14.784752+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:14.784771+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.818674+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":33} +{"time":"2025-07-28T19:05:14.818708+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:14.82115+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:14.924399+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":105} +{"time":"2025-07-28T19:05:14.924429+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:14.927819+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.927866+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":3} +{"time":"2025-07-28T19:05:14.927893+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7087,"success":7087,"duration_ms":1585} +{"time":"2025-07-28T19:05:14.928488+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:14.928513+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:14.928529+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.942862+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:14.973394+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":44} +{"time":"2025-07-28T19:05:14.973405+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.974006+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:14.974027+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:14.974056+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:14.975617+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:15 [akrotiri/bcbAMY2J2l-000517] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3772B in 978.858834ms +2025/07/28 19:05:15 [akrotiri/bcbAMY2J2l-000518] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3772B in 948.800041ms +2025/07/28 19:05:15 [akrotiri/bcbAMY2J2l-000520] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3772B in 957.832542ms +2025/07/28 19:05:15 [akrotiri/bcbAMY2J2l-000519] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 992.629ms +2025/07/28 19:05:16 [akrotiri/bcbAMY2J2l-000522] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3772B in 983.227833ms +2025/07/28 19:05:16 [akrotiri/bcbAMY2J2l-000521] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3773B in 1.008682625s +{"time":"2025-07-28T19:05:16.189446+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1215} +{"time":"2025-07-28T19:05:16.189468+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:16.189467+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.26526+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":75} +{"time":"2025-07-28T19:05:16.265313+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.265277+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:16.318891+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":53} +{"time":"2025-07-28T19:05:16.318949+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:16.320287+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:16.325782+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:05:16.325792+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.325804+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":7531,"success":7531,"duration_ms":1395} +{"time":"2025-07-28T19:05:16.326287+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:16.326297+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.326301+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.326577+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:16.326597+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:16.32661+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.334592+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:16.355932+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":29} +{"time":"2025-07-28T19:05:16.355954+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.356535+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:16.356547+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.356551+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.356653+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:16.35667+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:16.356678+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:16.671381+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:16 [akrotiri/bcbAMY2J2l-000524] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3771B in 1.094025625s +2025/07/28 19:05:16 [akrotiri/bcbAMY2J2l-000523] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3771B in 1.131702416s +{"time":"2025-07-28T19:05:16.728854+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:16.864368+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"80.81.194.204","peer_asn":"48166"} +{"time":"2025-07-28T19:05:16.894565+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} +{"time":"2025-07-28T19:05:16.90058+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2001:12f8::121","peer_asn":"42473"} +2025/07/28 19:05:17 [akrotiri/bcbAMY2J2l-000525] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3775B in 1.066853583s +2025/07/28 19:05:17 [akrotiri/bcbAMY2J2l-000526] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3775B in 1.046148792s +{"time":"2025-07-28T19:05:17.437389+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1080} +{"time":"2025-07-28T19:05:17.437415+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:17.437421+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:17.442928+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:17.44296+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:05:17.443042+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":5492,"success":5492,"duration_ms":1114} +{"time":"2025-07-28T19:05:17.443077+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:17.445103+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:17.445114+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:17.481356+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:17.515569+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:17.515586+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":72} +{"time":"2025-07-28T19:05:17.521401+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:17.521606+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:05:17.526848+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:17.526889+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:05:17.526898+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:17 [akrotiri/bcbAMY2J2l-000527] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 1.078901125s +2025/07/28 19:05:17 [akrotiri/bcbAMY2J2l-000528] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3770B in 1.075309917s +{"time":"2025-07-28T19:05:17.802056+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:18 [akrotiri/bcbAMY2J2l-000530] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3773B in 1.040894208s +2025/07/28 19:05:18 [akrotiri/bcbAMY2J2l-000529] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3773B in 1.086979209s +2025/07/28 19:05:18 [akrotiri/bcbAMY2J2l-000531] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3772B in 1.060909209s +2025/07/28 19:05:18 [akrotiri/bcbAMY2J2l-000532] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 1.049015s +{"time":"2025-07-28T19:05:18.800815+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1273} +{"time":"2025-07-28T19:05:18.800834+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:18.800839+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:18.806027+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.806053+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:05:18.806085+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":6184,"success":6184,"duration_ms":1341} +{"time":"2025-07-28T19:05:18.806414+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:18.806426+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:18.806442+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.816373+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:18.84312+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":36} +{"time":"2025-07-28T19:05:18.843151+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.843614+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:18.843626+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.843631+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.844567+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:18.844581+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:18.844594+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:18.844678+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:19.0144+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:19 [akrotiri/bcbAMY2J2l-000533] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 1.004313875s +2025/07/28 19:05:19 [akrotiri/bcbAMY2J2l-000534] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3774B in 1.03149s +2025/07/28 19:05:19 [akrotiri/bcbAMY2J2l-000536] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3774B in 981.936042ms +2025/07/28 19:05:19 [akrotiri/bcbAMY2J2l-000535] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3775B in 1.002930917s +{"time":"2025-07-28T19:05:19.794488+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":949} +{"time":"2025-07-28T19:05:19.794509+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:19.794494+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.801973+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":7} +{"time":"2025-07-28T19:05:19.801993+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.801998+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.805058+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:19.805077+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":3} +{"time":"2025-07-28T19:05:19.805135+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.84758+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:19.847595+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":42} +{"time":"2025-07-28T19:05:19.853531+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:19.853636+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:05:19.948759+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.948828+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":95} +{"time":"2025-07-28T19:05:19.948852+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20303,"unique_prefixes":3923,"success":3923,"duration_ms":1138} +{"time":"2025-07-28T19:05:19.94898+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.948991+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.948995+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.949136+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.949147+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.949207+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.94967+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.94968+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.949684+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.950672+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.950679+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.950683+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.95121+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.951221+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.951225+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.951783+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.951791+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.951795+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.953604+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.953684+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.953694+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.954389+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.954399+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.954403+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.954689+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.954698+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.954701+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.955232+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.955237+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.955241+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.9556+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.955609+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.955613+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.955946+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.955953+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.955957+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.956251+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.956258+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.956262+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.956661+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.956668+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.956672+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.95698+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.956987+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.95699+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.957529+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.957535+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.957539+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.957838+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.957845+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.95785+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.957975+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.95798+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.957983+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.958536+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.958543+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.958546+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.958889+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.958895+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.958898+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.959848+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.959856+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.959859+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.95994+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.959945+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.959949+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.960407+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.960414+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.960418+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.960945+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.960951+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.960955+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.96126+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.961266+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.961269+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.961337+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.961342+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.961345+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.961466+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:19.961859+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.961866+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.96187+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.962138+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:19.962144+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:19.962163+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:20.028668+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:20 [akrotiri/bcbAMY2J2l-000538] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3770B in 977.01175ms +2025/07/28 19:05:20 [akrotiri/bcbAMY2J2l-000537] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3771B in 1.00354575s +2025/07/28 19:05:20 [akrotiri/bcbAMY2J2l-000540] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3772B in 1.030501625s +2025/07/28 19:05:20 [akrotiri/bcbAMY2J2l-000539] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3772B in 1.079879833s +{"time":"2025-07-28T19:05:21.032161+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1069} +{"time":"2025-07-28T19:05:21.032197+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:21.032178+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.052338+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":20} +{"time":"2025-07-28T19:05:21.052442+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:21.052491+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.085942+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:21 [akrotiri/bcbAMY2J2l-000541] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3775B in 1.051507417s +{"time":"2025-07-28T19:05:21.167814+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":115} +{"time":"2025-07-28T19:05:21.171183+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:21.171195+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:21.224913+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:21.225616+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":53} +{"time":"2025-07-28T19:05:21.234673+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.235032+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:05:21.235054+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20009,"unique_prefixes":5271,"success":5271,"duration_ms":1281} +{"time":"2025-07-28T19:05:21.235632+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:21.237537+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.23755+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.249081+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:21.250824+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":15} +{"time":"2025-07-28T19:05:21.251913+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.254173+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:05:21.254187+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.254192+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.254329+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.254335+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.254341+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.256378+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:21.257064+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:05:21.257096+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:21 [akrotiri/bcbAMY2J2l-000542] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3769B in 1.134970084s +{"time":"2025-07-28T19:05:21.476284+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:21 [akrotiri/bcbAMY2J2l-000544] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 200 3772B in 1.228493375s +2025/07/28 19:05:21 [akrotiri/bcbAMY2J2l-000543] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 1.232698166s +{"time":"2025-07-28T19:05:21.875405+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":618} +{"time":"2025-07-28T19:05:21.875425+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.875427+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:21.876068+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.876083+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.876115+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:21.927451+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":51} +{"time":"2025-07-28T19:05:21.92751+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:21.931978+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":4} +{"time":"2025-07-28T19:05:21.93199+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":2521,"success":2521,"duration_ms":694} +{"time":"2025-07-28T19:05:21.932006+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.932506+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.932515+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93252+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.932626+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.932633+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.932638+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.932723+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.93273+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.932733+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.933376+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.933385+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93339+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.933652+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.933662+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.933666+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.934225+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.934232+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.934235+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.934717+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.934726+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93473+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935044+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.93505+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935054+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935425+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.935432+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935435+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935964+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.935971+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.935975+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.936461+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.93647+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.936475+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.936559+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.936565+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93657+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.936649+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.936656+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.936659+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937324+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.93733+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937333+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937635+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.937641+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937645+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937718+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.937726+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93773+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937827+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.937833+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.937837+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.938434+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.93844+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.938443+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.938522+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.938528+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.938532+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.93862+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.938626+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.938629+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939065+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.939071+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939075+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939157+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.939165+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939195+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939609+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.939615+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939619+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939865+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.939871+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.939875+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940226+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.940234+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940238+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940487+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.940494+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940498+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940717+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.940723+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.940727+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.941096+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.941102+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.941106+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.941171+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.941177+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.941181+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.94142+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.941427+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.94143+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.941991+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.941998+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942001+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.94223+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.942237+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942272+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942346+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.942355+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942359+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.94243+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.942438+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942441+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942507+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:21.942546+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.942553+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942557+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942624+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:21.942646+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:21.942666+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +2025/07/28 19:05:22 [akrotiri/bcbAMY2J2l-000546] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3770B in 1.081123209s +{"time":"2025-07-28T19:05:22.223189+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:22 [akrotiri/bcbAMY2J2l-000545] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3773B in 1.10500875s +{"time":"2025-07-28T19:05:22.336212+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8:1::a503:1042:1","peer_asn":"31042"} +{"time":"2025-07-28T19:05:22.515463+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:22.97043+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1027} +{"time":"2025-07-28T19:05:22.970451+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:22.970453+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:22.970808+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:22.970824+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:22.970835+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:23.036241+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":65} +{"time":"2025-07-28T19:05:23.036512+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:23.038336+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:23.041097+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:23.041623+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:23.046646+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.046649+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":4} +{"time":"2025-07-28T19:05:23.046896+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":5434,"success":5434,"duration_ms":1112} +{"time":"2025-07-28T19:05:23.047144+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.047155+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.047159+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.047251+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.047258+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.047262+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.048072+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:23.048096+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.048109+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.062892+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:23.079952+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":31} +{"time":"2025-07-28T19:05:23.079972+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.080756+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.080771+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.080776+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.080934+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.080941+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.080945+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.08103+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:23.081345+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:23.081361+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:23.247185+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000548] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57341 - 408 17B in 1.003542541s +{"time":"2025-07-28T19:05:23.317629+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:23.396257+02:00","level":"DEBUG","msg":"System stats","source":"cli.go:40","func":"routewatch.logDebugStats","goroutines":55,"alloc_mb":273,"total_alloc_mb":5767,"sys_mb":520,"num_gc":84,"heap_alloc_mb":273,"heap_sys_mb":495,"heap_idle_mb":169,"heap_inuse_mb":326,"heap_released_mb":75,"stack_inuse_mb":4} +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000550] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3772B in 1.207825125s +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000547] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3772B in 1.237545709s +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000549] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3772B in 1.267907042s +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000551] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 1.182018958s +2025/07/28 19:05:23 [akrotiri/bcbAMY2J2l-000552] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3774B in 1.224593708s +{"time":"2025-07-28T19:05:24.165685+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:24.19434+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.19434+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1113} +{"time":"2025-07-28T19:05:24.194587+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:24.195186+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:24.195203+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.195208+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.195944+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:24.195976+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:24.195991+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.2858+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:24.285815+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":89} +{"time":"2025-07-28T19:05:24.288382+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:24.290022+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:24.290178+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:24.30068+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.30068+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":10} +{"time":"2025-07-28T19:05:24.300849+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":4740,"success":4740,"duration_ms":1249} +{"time":"2025-07-28T19:05:24.308525+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:24.310248+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":7} +{"time":"2025-07-28T19:05:24.310273+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.318238+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:24.348669+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":40} +{"time":"2025-07-28T19:05:24.348704+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.349006+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:24.349021+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.349027+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.349218+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:24.349228+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.349233+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:24.349584+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:24.353872+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:24.353929+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +2025/07/28 19:05:24 [akrotiri/bcbAMY2J2l-000553] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57425 - 200 3771B in 1.30059475s +2025/07/28 19:05:24 [akrotiri/bcbAMY2J2l-000554] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3771B in 1.201782625s +{"time":"2025-07-28T19:05:24.685963+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:24 [akrotiri/bcbAMY2J2l-000555] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3772B in 1.214842625s +{"time":"2025-07-28T19:05:24.749757+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":180000580709,"total_messages":1116672,"total_bytes":835849057,"total_mb":"797.13","messages_per_sec":"5829.06","bits_per_sec":"34955704","mbps":"34.96","total_dropped":138693} +{"time":"2025-07-28T19:05:24.749805+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":61,"queue_cap":100000,"processed":1108013,"dropped":0,"avg_time":125273,"min_time":0,"max_time":2311683250} +{"time":"2025-07-28T19:05:24.749815+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":1108075,"dropped":0,"avg_time":67293,"min_time":0,"max_time":1917211625} +{"time":"2025-07-28T19:05:24.749823+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":77375,"queue_cap":100000,"processed":892006,"dropped":138693,"avg_time":178735,"min_time":0,"max_time":2258306666} +{"time":"2025-07-28T19:05:24.749835+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":1108075,"dropped":0,"avg_time":1587,"min_time":0,"max_time":16413542} +2025/07/28 19:05:24 [akrotiri/bcbAMY2J2l-000556] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3772B in 1.217097417s +2025/07/28 19:05:24 [akrotiri/bcbAMY2J2l-000557] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3774B in 1.184537083s +2025/07/28 19:05:25 [akrotiri/bcbAMY2J2l-000558] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3773B in 1.217948292s +2025/07/28 19:05:25 [akrotiri/bcbAMY2J2l-000559] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57425 - 200 3773B in 1.127099833s +2025/07/28 19:05:25 [akrotiri/bcbAMY2J2l-000560] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3773B in 1.221673291s +2025/07/28 19:05:25 [akrotiri/bcbAMY2J2l-000561] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3773B in 1.18093425s +{"time":"2025-07-28T19:05:26.015599+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.015689+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1665} +{"time":"2025-07-28T19:05:26.015742+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:26.016072+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:26.016083+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.016088+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.016965+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:26.018776+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:26.018795+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.050849+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:26.050891+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":33} +{"time":"2025-07-28T19:05:26.052899+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:26.056345+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.056347+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":5} +{"time":"2025-07-28T19:05:26.056371+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20001,"unique_prefixes":9150,"success":9150,"duration_ms":1753} +{"time":"2025-07-28T19:05:26.056728+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:26.05684+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:26.056851+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.065319+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:26.112915+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":56} +{"time":"2025-07-28T19:05:26.112963+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.113684+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:26.113695+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.1137+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.113832+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:26.113869+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:26.11391+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:26.271215+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +2025/07/28 19:05:26 [akrotiri/bcbAMY2J2l-000563] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 200 3773B in 1.243165958s +2025/07/28 19:05:26 [akrotiri/bcbAMY2J2l-000562] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 200 3773B in 1.27942025s +{"time":"2025-07-28T19:05:26.573706+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +2025/07/28 19:05:26 [akrotiri/bcbAMY2J2l-000564] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 200 3776B in 1.278715208s +2025/07/28 19:05:26 [akrotiri/bcbAMY2J2l-000565] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57425 - 200 3777B in 1.2944385s +2025/07/28 19:05:27 [akrotiri/bcbAMY2J2l-000567] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 200 3775B in 1.339044041s +2025/07/28 19:05:27 [akrotiri/bcbAMY2J2l-000566] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 200 3775B in 1.414130084s +{"time":"2025-07-28T19:05:27.642262+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:27 [akrotiri/bcbAMY2J2l-000569] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:56697 - 408 17B in 1.002236833s +{"time":"2025-07-28T19:05:27.642575+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:27 [akrotiri/bcbAMY2J2l-000568] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57347 - 408 17B in 1.002518041s +{"time":"2025-07-28T19:05:27.824989+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1711} +{"time":"2025-07-28T19:05:27.825027+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:27.825036+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:27.83756+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:27.838206+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:27.842521+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:27.842795+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":12} +{"time":"2025-07-28T19:05:27.842806+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20019,"unique_prefixes":6762,"success":6762,"duration_ms":1784} +{"time":"2025-07-28T19:05:27.845306+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:27.845324+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:27.845339+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:27.848779+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:27.853387+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:28.015137+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":172} +{"time":"2025-07-28T19:05:28.016156+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.016957+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.016971+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.016976+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.017082+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.017089+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.017092+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.017229+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.017235+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.017238+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.01732+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.017325+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.017329+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.01757+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:28.018372+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:28.018382+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.018387+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.018686+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.018693+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.018698+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.018785+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:28.018794+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:28.018799+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:28.143943+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000570] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57425 - 408 17B in 1.0018105s +{"time":"2025-07-28T19:05:28.144369+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000571] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57346 - 408 17B in 1.002080125s +{"time":"2025-07-28T19:05:28.219005+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"217.29.66.232","peer_asn":"54104"} +{"time":"2025-07-28T19:05:28.223088+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"195.208.208.187","peer_asn":"9002"} +{"time":"2025-07-28T19:05:28.22797+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":209} +{"time":"2025-07-28T19:05:28.229318+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:28.349134+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:28.642779+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000572] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57344 - 408 17B in 1.000669541s +{"time":"2025-07-28T19:05:28.643482+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000575] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57451 - 408 17B in 1.000167208s +{"time":"2025-07-28T19:05:28.643551+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000573] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57339 - 408 17B in 1.001364083s +{"time":"2025-07-28T19:05:28.643622+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:28 [akrotiri/bcbAMY2J2l-000574] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57452 - 408 17B in 1.000473292s +{"time":"2025-07-28T19:05:29.150211+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000576] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57454 - 408 17B in 1.005714s +{"time":"2025-07-28T19:05:29.152446+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000577] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57455 - 408 17B in 1.005499041s +{"time":"2025-07-28T19:05:29.64375+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000578] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57497 - 408 17B in 1.000101125s +{"time":"2025-07-28T19:05:29.64604+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000579] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57500 - 408 17B in 1.000181958s +{"time":"2025-07-28T19:05:29.647017+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000581] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57498 - 408 17B in 1.000275833s +{"time":"2025-07-28T19:05:29.647411+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:29 [akrotiri/bcbAMY2J2l-000580] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57499 - 408 17B in 1.000693333s +{"time":"2025-07-28T19:05:29.667323+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1437} +{"time":"2025-07-28T19:05:29.66734+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:29.667345+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:29.687674+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:29.687694+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":20} +{"time":"2025-07-28T19:05:29.687703+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20060,"unique_prefixes":6710,"success":6710,"duration_ms":1843} +{"time":"2025-07-28T19:05:29.69197+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:29.704244+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:29.705964+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":16} +{"time":"2025-07-28T19:05:29.706974+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:29.706988+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":2} +{"time":"2025-07-28T19:05:29.706998+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:29.714011+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:29.766631+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM peerings","duration":54581125} +{"time":"2025-07-28T19:05:29.821738+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:29.82414+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":114} +{"time":"2025-07-28T19:05:29.829386+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:30.15401+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000583] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57502 - 408 17B in 1.000997458s +{"time":"2025-07-28T19:05:30.155319+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000582] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57501 - 408 17B in 1.003434917s +{"time":"2025-07-28T19:05:30.645553+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000584] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57504 - 408 17B in 1.001253375s +{"time":"2025-07-28T19:05:30.648219+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000586] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57506 - 408 17B in 1.000697042s +{"time":"2025-07-28T19:05:30.648336+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000585] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57505 - 408 17B in 1.001516708s +{"time":"2025-07-28T19:05:30.648399+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:30 [akrotiri/bcbAMY2J2l-000587] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57507 - 408 17B in 1.000330834s +{"time":"2025-07-28T19:05:30.782565+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:30.782597+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":960} +{"time":"2025-07-28T19:05:30.782609+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:30.837163+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:30.837184+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":54} +{"time":"2025-07-28T19:05:30.837328+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:30.844667+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:30.844735+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":7} +{"time":"2025-07-28T19:05:30.848699+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:31.156844+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000588] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57509 - 408 17B in 1.001031334s +{"time":"2025-07-28T19:05:31.157972+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000589] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57510 - 408 17B in 1.002004166s +{"time":"2025-07-28T19:05:31.212724+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:31.214007+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":368} +{"time":"2025-07-28T19:05:31.216066+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:31.221061+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:31.221222+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":8} +{"time":"2025-07-28T19:05:31.221232+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20006,"unique_prefixes":2051,"success":2051,"duration_ms":1532} +{"time":"2025-07-28T19:05:31.22156+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:31.226353+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:31.226378+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:31.229603+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:31.23237+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:31.236103+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":10} +{"time":"2025-07-28T19:05:31.372446+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:31.372612+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":140} +{"time":"2025-07-28T19:05:31.373094+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:31.373104+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:31.373276+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:31.375317+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:31.647857+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000590] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57511 - 408 17B in 1.001480417s +{"time":"2025-07-28T19:05:31.653944+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000591] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57514 - 408 17B in 1.003183416s +{"time":"2025-07-28T19:05:31.655766+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000593] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57512 - 408 17B in 1.002635792s +{"time":"2025-07-28T19:05:31.6561+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:31 [akrotiri/bcbAMY2J2l-000592] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57513 - 408 17B in 1.004582291s +{"time":"2025-07-28T19:05:31.776379+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:32.086985+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"196.60.8.170","peer_asn":"327781"} +{"time":"2025-07-28T19:05:32.165307+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000595] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57536 - 408 17B in 1.002541542s +{"time":"2025-07-28T19:05:32.166595+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000594] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57537 - 408 17B in 1.006852625s +{"time":"2025-07-28T19:05:32.650256+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000596] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57558 - 408 17B in 1.001827875s +{"time":"2025-07-28T19:05:32.65558+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000597] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57559 - 408 17B in 1.000310833s +{"time":"2025-07-28T19:05:32.657357+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000598] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57561 - 408 17B in 1.000378375s +{"time":"2025-07-28T19:05:32.662509+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:32 [akrotiri/bcbAMY2J2l-000599] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57560 - 408 17B in 1.004486209s +{"time":"2025-07-28T19:05:32.912337+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"80.81.192.113","peer_asn":"35320"} +{"time":"2025-07-28T19:05:32.986868+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1613} +{"time":"2025-07-28T19:05:32.986903+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:32.98691+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:33.063973+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.064063+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":77} +{"time":"2025-07-28T19:05:33.064082+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20007,"unique_prefixes":6014,"success":6014,"duration_ms":1841} +{"time":"2025-07-28T19:05:33.065611+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.065625+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:33.065636+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.068451+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:33.167395+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000600] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57563 - 408 17B in 1.001308125s +{"time":"2025-07-28T19:05:33.171299+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000601] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57564 - 408 17B in 1.002402583s +{"time":"2025-07-28T19:05:33.225332+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:33.225332+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":159} +{"time":"2025-07-28T19:05:33.227896+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.231434+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.231437+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":6} +{"time":"2025-07-28T19:05:33.23218+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:33.233415+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:33.233437+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.240692+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:33.460192+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.466265+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":228} +{"time":"2025-07-28T19:05:33.466534+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:33.504661+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.506274+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:33.50801+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":44} +{"time":"2025-07-28T19:05:33.508113+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:33.509331+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.510561+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:33.510632+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:33.511013+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.512756+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.512883+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.51406+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":2} +{"time":"2025-07-28T19:05:33.514122+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":1357,"success":1357,"duration_ms":448} +{"time":"2025-07-28T19:05:33.514803+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:33.514868+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.521747+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:33.539019+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:33.543475+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":30} +{"time":"2025-07-28T19:05:33.543746+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.544146+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:33.544158+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.544163+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.545188+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:33.549577+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:33.549681+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":5} +{"time":"2025-07-28T19:05:33.549703+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:33.65275+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000602] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57565 - 408 17B in 1.000725417s +{"time":"2025-07-28T19:05:33.665818+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000605] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57568 - 408 17B in 1.001417458s +{"time":"2025-07-28T19:05:33.666029+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000603] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57566 - 408 17B in 1.002624708s +{"time":"2025-07-28T19:05:33.666093+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:33 [akrotiri/bcbAMY2J2l-000604] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57567 - 408 17B in 1.001847625s +{"time":"2025-07-28T19:05:33.852625+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM bgp_peers","duration":73738084} +{"time":"2025-07-28T19:05:33.952922+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:33.957822+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":403} +{"time":"2025-07-28T19:05:33.959408+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:34.03423+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:34.03432+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":81} +{"time":"2025-07-28T19:05:34.172329+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000606] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57571 - 408 17B in 1.000444042s +{"time":"2025-07-28T19:05:34.173663+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000607] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57570 - 408 17B in 1.000190208s +{"time":"2025-07-28T19:05:34.310266+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.310654+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":276} +{"time":"2025-07-28T19:05:34.310791+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:34.310975+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:34.310996+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.312686+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:34.317241+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":6} +{"time":"2025-07-28T19:05:34.317256+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20055,"unique_prefixes":1464,"success":1464,"duration_ms":801} +{"time":"2025-07-28T19:05:34.31738+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.317799+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:34.317812+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.317818+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.31844+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:34.318578+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:34.318705+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.32659+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:34.424645+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":106} +{"time":"2025-07-28T19:05:34.424892+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.425258+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:34.425329+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:34.425342+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:34.427594+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:34.657736+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000608] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57592 - 408 17B in 1.00187875s +{"time":"2025-07-28T19:05:34.668053+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000610] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57594 - 408 17B in 1.000435333s +{"time":"2025-07-28T19:05:34.66906+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000609] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57595 - 408 17B in 1.001518s +{"time":"2025-07-28T19:05:34.671834+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:34 [akrotiri/bcbAMY2J2l-000611] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57593 - 408 17B in 1.001322s +{"time":"2025-07-28T19:05:34.749258+02:00","level":"INFO","msg":"Stream statistics","source":"streamer.go:271","func":"streamer.(*Streamer).logMetrics","uptime":190000023834,"total_messages":1188864,"total_bytes":889019510,"total_mb":"847.84","messages_per_sec":"6015.94","bits_per_sec":"36063755","mbps":"36.06","total_dropped":158227} +{"time":"2025-07-28T19:05:34.749284+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.ASHandler","index":0,"queue_len":15549,"queue_cap":100000,"processed":1164236,"dropped":0,"avg_time":127089,"min_time":0,"max_time":2311683250} +{"time":"2025-07-28T19:05:34.749291+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":1179786,"dropped":0,"avg_time":69313,"min_time":0,"max_time":1917211625} +{"time":"2025-07-28T19:05:34.749297+02:00","level":"INFO","msg":"Handler statistics","source":"streamer.go:304","func":"streamer.(*Streamer).logMetrics","handler":"*routewatch.PrefixHandler","index":2,"queue_len":97266,"queue_cap":100000,"processed":924292,"dropped":158227,"avg_time":183324,"min_time":0,"max_time":2258306666} +{"time":"2025-07-28T19:05:34.749302+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":1179786,"dropped":0,"avg_time":1725,"min_time":0,"max_time":26563875} +{"time":"2025-07-28T19:05:35.174223+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000613] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57598 - 408 17B in 1.000130417s +{"time":"2025-07-28T19:05:35.174315+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000612] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57597 - 408 17B in 1.001205417s +{"time":"2025-07-28T19:05:35.49202+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1066} +{"time":"2025-07-28T19:05:35.492049+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:35.492056+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:35.512764+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.512774+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":20} +{"time":"2025-07-28T19:05:35.512794+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20178,"unique_prefixes":5895,"success":5895,"duration_ms":1194} +{"time":"2025-07-28T19:05:35.512948+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:35.512996+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:35.513023+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.522649+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:35.562387+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:35.632947+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":119} +{"time":"2025-07-28T19:05:35.633335+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.634328+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:35.634344+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.634349+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.63468+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:35.635001+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:35.637894+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:35.637933+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:35.660982+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000614] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57599 - 408 17B in 1.00124975s +{"time":"2025-07-28T19:05:35.670329+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000615] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57600 - 408 17B in 1.00159775s +{"time":"2025-07-28T19:05:35.670837+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000616] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57601 - 408 17B in 1.001373083s +{"time":"2025-07-28T19:05:35.688143+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:35 [akrotiri/bcbAMY2J2l-000617] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57602 - 408 17B in 1.014207334s +{"time":"2025-07-28T19:05:36.176727+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000618] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57605 - 408 17B in 1.001538083s +{"time":"2025-07-28T19:05:36.180129+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000619] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57604 - 408 17B in 1.004434625s +{"time":"2025-07-28T19:05:36.609854+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:36.609882+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":974} +{"time":"2025-07-28T19:05:36.609907+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:36.61719+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:36.621146+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":7} +{"time":"2025-07-28T19:05:36.66357+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000620] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57607 - 408 17B in 1.001291416s +{"time":"2025-07-28T19:05:36.671243+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +{"time":"2025-07-28T19:05:36.671446+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000622] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57609 - 408 17B in 1.000091333s +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000621] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57608 - 408 17B in 1.000391042s +{"time":"2025-07-28T19:05:36.689038+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:36 [akrotiri/bcbAMY2J2l-000623] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57610 - 408 17B in 1.0002695s +{"time":"2025-07-28T19:05:36.725322+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.725506+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":108} +{"time":"2025-07-28T19:05:36.726728+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:36.726744+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":1} +{"time":"2025-07-28T19:05:36.726753+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.728511+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:36.741358+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":14} +{"time":"2025-07-28T19:05:36.74138+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20016,"unique_prefixes":4240,"success":4240,"duration_ms":1226} +{"time":"2025-07-28T19:05:36.741388+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.742219+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:36.742234+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.74224+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.7424+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:36.745695+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:36.74691+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:36.756327+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:36.834235+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":91} +{"time":"2025-07-28T19:05:36.836136+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:36.836157+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:37.04687+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:37.047129+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":210} +{"time":"2025-07-28T19:05:37.047841+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:37.048555+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:37.04857+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:37.049523+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:37.183156+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000625] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57613 - 408 17B in 1.002287458s +{"time":"2025-07-28T19:05:37.185593+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000624] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57612 - 408 17B in 1.007349541s +{"time":"2025-07-28T19:05:37.608457+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:37.666634+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000626] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57614 - 408 17B in 1.002527458s +{"time":"2025-07-28T19:05:37.681273+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000627] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57615 - 408 17B in 1.009195042s +{"time":"2025-07-28T19:05:37.682224+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000628] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57616 - 408 17B in 1.009114042s +{"time":"2025-07-28T19:05:37.706899+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:37 [akrotiri/bcbAMY2J2l-000629] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57617 - 408 17B in 1.017035916s +{"time":"2025-07-28T19:05:37.906915+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM peerings","duration":61838417} +{"time":"2025-07-28T19:05:38.125516+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM bgp_peers","duration":218197375} +{"time":"2025-07-28T19:05:38.187186+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000630] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57618 - 408 17B in 1.001710334s +{"time":"2025-07-28T19:05:38.188661+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000631] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57619 - 408 17B in 1.001101375s +{"time":"2025-07-28T19:05:38.672933+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000632] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57621 - 408 17B in 1.005903625s +{"time":"2025-07-28T19:05:38.676863+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1629} +{"time":"2025-07-28T19:05:38.676882+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:38.676888+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:38.68407+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000634] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57622 - 408 17B in 1.001082292s +{"time":"2025-07-28T19:05:38.685933+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000633] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57623 - 408 17B in 1.003156291s +{"time":"2025-07-28T19:05:38.690255+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:38.690698+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:38.692666+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":13} +{"time":"2025-07-28T19:05:38.692717+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20018,"unique_prefixes":6683,"success":6683,"duration_ms":1949} +{"time":"2025-07-28T19:05:38.693193+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:38.693351+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:38.702372+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:38.731884+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:38 [akrotiri/bcbAMY2J2l-000635] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57624 - 408 17B in 1.023194167s +{"time":"2025-07-28T19:05:38.82378+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:38.823872+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":133} +{"time":"2025-07-28T19:05:38.826312+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:38.829521+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:38.829586+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":5} +{"time":"2025-07-28T19:05:38.829848+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:38.829892+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:38.829925+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:38.833367+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:39.191456+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000637] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57626 - 408 17B in 1.002349833s +{"time":"2025-07-28T19:05:39.191637+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000636] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57627 - 408 17B in 1.002500084s +{"time":"2025-07-28T19:05:39.256708+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":63911750} +{"time":"2025-07-28T19:05:39.257387+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":64650583} +{"time":"2025-07-28T19:05:39.378021+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes WHERE ip_version = ?","duration":94367708} +{"time":"2025-07-28T19:05:39.67543+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000638] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57689 - 408 17B in 1.000219375s +{"time":"2025-07-28T19:05:39.688571+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000639] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57690 - 408 17B in 1.001686458s +{"time":"2025-07-28T19:05:39.689611+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000640] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57691 - 408 17B in 1.002631917s +{"time":"2025-07-28T19:05:39.733984+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:39 [akrotiri/bcbAMY2J2l-000641] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57692 - 408 17B in 1.001166208s +{"time":"2025-07-28T19:05:40.193818+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000643] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57713 - 408 17B in 1.001087459s +{"time":"2025-07-28T19:05:40.193955+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000642] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57714 - 408 17B in 1.001309875s +{"time":"2025-07-28T19:05:40.436895+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"193.239.118.249","peer_asn":"41255"} +{"time":"2025-07-28T19:05:40.481332+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:40.481472+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1651} +{"time":"2025-07-28T19:05:40.481808+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:40.563873+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.564015+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":82} +{"time":"2025-07-28T19:05:40.56459+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:40.564986+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:40.565003+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.569086+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:40.569212+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":4} +{"time":"2025-07-28T19:05:40.570252+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:40.59265+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.59287+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:40.593287+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:40.593491+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":23} +{"time":"2025-07-28T19:05:40.593504+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20016,"unique_prefixes":5967,"success":5967,"duration_ms":1899} +{"time":"2025-07-28T19:05:40.5937+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.605787+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:40.676384+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000644] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57715 - 408 17B in 1.000080167s +{"time":"2025-07-28T19:05:40.68052+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":87} +{"time":"2025-07-28T19:05:40.681258+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.681931+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:40.681943+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.681948+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.682302+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:40.682307+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":0} +{"time":"2025-07-28T19:05:40.682322+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:40.683302+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:40.69047+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000646] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57717 - 408 17B in 1.000262959s +{"time":"2025-07-28T19:05:40.690628+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000645] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57716 - 408 17B in 1.00111475s +{"time":"2025-07-28T19:05:40.738459+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:40 [akrotiri/bcbAMY2J2l-000647] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57718 - 408 17B in 1.00373775s +{"time":"2025-07-28T19:05:40.786407+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":73051041} +{"time":"2025-07-28T19:05:40.959963+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"195.208.209.174","peer_asn":"25227"} +{"time":"2025-07-28T19:05:41.195764+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000648] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57720 - 408 17B in 1.00131175s +{"time":"2025-07-28T19:05:41.197205+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000649] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57721 - 408 17B in 1.002605709s +{"time":"2025-07-28T19:05:41.252373+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":54116333} +{"time":"2025-07-28T19:05:41.253116+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":55930792} +{"time":"2025-07-28T19:05:41.298972+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:41.678378+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000650] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57722 - 408 17B in 1.001111625s +{"time":"2025-07-28T19:05:41.695898+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000652] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57723 - 408 17B in 1.004002292s +{"time":"2025-07-28T19:05:41.69599+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000651] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57724 - 408 17B in 1.004133292s +{"time":"2025-07-28T19:05:41.750031+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:41 [akrotiri/bcbAMY2J2l-000653] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57725 - 408 17B in 1.007148042s +{"time":"2025-07-28T19:05:41.82562+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":1143} +{"time":"2025-07-28T19:05:41.825645+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:41.825652+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:41.875587+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:41.876183+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":49} +{"time":"2025-07-28T19:05:41.876207+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20036,"unique_prefixes":4504,"success":4504,"duration_ms":1279} +{"time":"2025-07-28T19:05:41.8815+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:41.944083+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:41.944177+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":68} +{"time":"2025-07-28T19:05:41.944224+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:42.193407+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:42.203301+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":249} +{"time":"2025-07-28T19:05:42.203432+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000655] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57747 - 408 17B in 1.005244208s +{"time":"2025-07-28T19:05:42.203637+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000654] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57746 - 408 17B in 1.006499875s +{"time":"2025-07-28T19:05:42.234458+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:42.246885+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpdatePeerBatch (database.go:639)","duration_ms":41} +{"time":"2025-07-28T19:05:42.266002+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:42.323515+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":106967500} +{"time":"2025-07-28T19:05:42.323828+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":78706541} +{"time":"2025-07-28T19:05:42.374824+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":50991000} +{"time":"2025-07-28T19:05:42.680337+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000656] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57748 - 408 17B in 1.000852875s +{"time":"2025-07-28T19:05:42.699201+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000657] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57750 - 408 17B in 1.002072667s +{"time":"2025-07-28T19:05:42.709442+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000658] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57749 - 408 17B in 1.015503708s +{"time":"2025-07-28T19:05:42.752963+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:42 [akrotiri/bcbAMY2J2l-000659] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57751 - 408 17B in 1.001384958s +{"time":"2025-07-28T19:05:42.757454+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":76057000} +{"time":"2025-07-28T19:05:42.758111+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM asns","duration":57635333} +{"time":"2025-07-28T19:05:42.815387+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":57215333} +{"time":"2025-07-28T19:05:42.873198+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":115114750} +{"time":"2025-07-28T19:05:42.914811+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"27.111.229.239","peer_asn":"17639"} +{"time":"2025-07-28T19:05:42.935576+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":175282541} +{"time":"2025-07-28T19:05:42.937915+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes WHERE ip_version = ?","duration":120339000} +{"time":"2025-07-28T19:05:42.945391+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM peerings","duration":66545708} +{"time":"2025-07-28T19:05:42.996889+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +{"time":"2025-07-28T19:05:43.003918+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8::8b0e:0:1","peer_asn":"35598"} +{"time":"2025-07-28T19:05:43.025562+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"UpsertLiveRouteBatch (database.go:180)","duration_ms":791} +{"time":"2025-07-28T19:05:43.025598+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:43.025848+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:43.054805+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM bgp_peers","duration":51294042} +{"time":"2025-07-28T19:05:43.057786+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:43.060415+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":32} +{"time":"2025-07-28T19:05:43.060436+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:43.137565+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"80.81.194.190","peer_asn":"31042"} +{"time":"2025-07-28T19:05:43.216579+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000660] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57755 - 408 17B in 1.000143625s +{"time":"2025-07-28T19:05:43.216752+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000661] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57754 - 408 17B in 1.000319417s +{"time":"2025-07-28T19:05:43.246714+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"DeleteLiveRouteBatch","caller":"database.go:261"} +{"time":"2025-07-28T19:05:43.246749+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":188} +{"time":"2025-07-28T19:05:43.248986+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:43.256327+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:43.256359+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"DeleteLiveRouteBatch (database.go:261)","duration_ms":9} +{"time":"2025-07-28T19:05:43.256379+02:00","level":"DEBUG","msg":"Flushed prefix batch","source":"prefixhandler.go:223","func":"routewatch.(*PrefixHandler).flushBatchLocked","batch_size":20000,"unique_prefixes":1707,"success":1707,"duration_ms":1378} +{"time":"2025-07-28T19:05:43.270111+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:43.543604+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes WHERE ip_version = ?","duration":285148250} +{"time":"2025-07-28T19:05:43.576528+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":329298541} +{"time":"2025-07-28T19:05:43.579908+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:43.579934+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"RecordPeering (database.go:587)","duration_ms":323} +{"time":"2025-07-28T19:05:43.579949+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"RecordPeering","caller":"database.go:587"} +{"time":"2025-07-28T19:05:43.681524+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000662] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57756 - 408 17B in 1.000376833s +{"time":"2025-07-28T19:05:43.700515+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000663] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57757 - 408 17B in 1.000105958s +{"time":"2025-07-28T19:05:43.715774+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000664] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57758 - 408 17B in 1.000901625s +{"time":"2025-07-28T19:05:43.754521+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:43 [akrotiri/bcbAMY2J2l-000665] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57759 - 408 17B in 1.000899709s +{"time":"2025-07-28T19:05:43.84935+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM prefixes","duration":69647459} +{"time":"2025-07-28T19:05:43.85569+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM peerings","duration":122711125} +{"time":"2025-07-28T19:05:43.89859+02:00","level":"DEBUG","msg":"Database lock acquired","source":"database.go:149","func":"database.(*Database).lock","operation":"UpsertLiveRouteBatch","caller":"database.go:180"} +{"time":"2025-07-28T19:05:43.898613+02:00","level":"DEBUG","msg":"Database lock released","source":"database.go:161","func":"database.(*Database).unlock","held_by":"GetOrCreateASNBatch (database.go:331)","duration_ms":318} +{"time":"2025-07-28T19:05:43.900715+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"GetOrCreateASNBatch","caller":"database.go:331"} +{"time":"2025-07-28T19:05:43.909027+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM bgp_peers","duration":53288708} +{"time":"2025-07-28T19:05:44.066815+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"SELECT COUNT(*) FROM peerings","duration":112416958} +{"time":"2025-07-28T19:05:44.157471+02:00","level":"INFO","msg":"BGP session opened","source":"streamer.go:432","func":"streamer.(*Streamer).stream","peer":"2001:7f8:4::73ab:1","peer_asn":"29611"} +{"time":"2025-07-28T19:05:44.159413+02:00","level":"DEBUG","msg":"Acquiring database lock","source":"database.go:143","func":"database.(*Database).lock","operation":"UpdatePeerBatch","caller":"database.go:639"} +{"time":"2025-07-28T19:05:44.171885+02:00","level":"WARN","msg":"BGP notification","source":"streamer.go:440","func":"streamer.(*Streamer).stream","peer":"2001:7f8:4::73ab:1","peer_asn":"29611"} +{"time":"2025-07-28T19:05:44.218761+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000666] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57761 - 408 17B in 1.001229834s +{"time":"2025-07-28T19:05:44.219547+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000667] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57760 - 408 17B in 1.001939375s +{"time":"2025-07-28T19:05:44.438628+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +{"time":"2025-07-28T19:05:44.438628+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +fatal error: concurrent map writes{"time":"2025-07-28T19:05:44.438654+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +{"time":"2025-07-28T19:05:44.438692+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000672] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57767 - 408 134B in 219.029417ms +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000671] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57765 - 408 151B in 683.454125ms +{"time":"2025-07-28T19:05:44.438794+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000673] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57768 - 408 151B in 218.765042ms +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000669] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57763 - 408 151B in 737.347875ms +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000668] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57762 - 408 134B in 755.382416ms +{"time":"2025-07-28T19:05:44.438937+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000670] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57764 - 408 151B in 721.971208ms +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000674] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57769 - 408 149B in 55.583µs +{"time":"2025-07-28T19:05:44.43863+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +{"time":"2025-07-28T19:05:44.439112+02:00","level":"ERROR","msg":"Database stats timeout","source":"handlers.go:250","func":"server.(*Server).setupRoutes.func1.(*Server).handleStats.1"} +2025/07/28 19:05:44 [akrotiri/bcbAMY2J2l-000675] "GET http://127.0.0.1:8080/api/v1/stats HTTP/1.1" from 127.0.0.1:57770 - 408 149B in 58.25µs + + +goroutine 514511 [running]: +internal/runtime/maps.fatal({0x100aa593f?, 0x10059d998?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/panic.go:1058 +0x20 +net/textproto.MIMEHeader.Set(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/textproto/header.go:22 +net/http.Header.Set(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/header.go:40 +net/http.Error({0x100c9e0b8, 0x14018c8ce10}, {0x100aa1935, 0x10}, 0x198) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2323 +0xc8 +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1({0x100c9e0b8, 0x14018c8ce10}, 0x1400371a140?) + /Users/user/dev/routewatch/internal/server/handlers.go:251 +0x4f0 +net/http.HandlerFunc.ServeHTTP(0x140007cca50?, {0x100c9e0b8?, 0x14018c8ce10?}, 0x14005cf8998?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2294 +0x38 +github.com/go-chi/chi/v5.(*Mux).routeHTTP(0x14000202300, {0x100c9e0b8, 0x14018c8ce10}, 0x1400371a140) + /Users/user/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.2/mux.go:478 +0x280 +net/http.HandlerFunc.ServeHTTP(0x140081a7c88?, {0x100c9e0b8?, 0x14018c8ce10?}, 0x140081a7c68?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2294 +0x38 +github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0x14000202300, {0x100c9e0b8, 0x14018c8ce10}, 0x1400371a140) + /Users/user/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.2/mux.go:73 +0x2c4 +github.com/go-chi/chi/v5.(*Mux).Mount.func1({0x100c9e0b8, 0x14018c8ce10}, 0x1400371a140) + /Users/user/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.2/mux.go:325 +0x1e0 +net/http.HandlerFunc.ServeHTTP(0x140007cca50?, {0x100c9e0b8?, 0x14018c8ce10?}, 0x1400a8f29c4?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2294 +0x38 +github.com/go-chi/chi/v5.(*Mux).routeHTTP(0x140002022a0, {0x100c9e0b8, 0x14018c8ce10}, 0x1400371a140) + /Users/user/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.2/mux.go:478 +0x280 +net/http.HandlerFunc.ServeHTTP(0x140081a7eb8?, {0x100c9e0b8?, 0x14018c8ce10?}, 0x10054057c?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2294 +0x38 +git.eeqj.de/sneak/routewatch/internal/server.JSONResponseMiddleware.func1({0x100c9e088, 0x1401a075980}, 0x1400371a140) + /Users/user/dev/routewatch/internal/server/middleware.go:67 +0x168 +net/http.HandlerFunc.ServeHTTP(0x1400371a000?, {0x100c9e088?, 0x1401a075980?}, 0x1005a87c4?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:2294 +0x38 +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.TimeoutMiddleware.func2.1.1() + /Users/user/dev/routewatch/internal/server/middleware.go:168 +0x9c +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.TimeoutMiddleware.func2.1 in goroutine 514509 + /Users/user/dev/routewatch/internal/server/middleware.go:161 +0x184 + +goroutine 1 [chan receive, 3 minutes]: +go.uber.org/fx.(*App).run(0x140000c0420, 0x1400019de68) + /Users/user/go/pkg/mod/go.uber.org/fx@v1.24.0/app.go:613 +0x98 +go.uber.org/fx.(*App).Run(0x140000c0420) + /Users/user/go/pkg/mod/go.uber.org/fx@v1.24.0/app.go:600 +0x34 +git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry() + /Users/user/dev/routewatch/internal/routewatch/cli.go:97 +0xec +main.main() + /Users/user/dev/routewatch/cmd/routewatch/main.go:9 +0x1c + +goroutine 4 [select, 3 minutes]: +database/sql.(*DB).connectionOpener(0x140000e7520, {0x100c9ea70, 0x140000d67d0}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1261 +0x80 +created by database/sql.OpenDB in goroutine 1 + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:841 +0x124 + +goroutine 34 [chan receive]: +github.com/rcrowley/go-metrics.(*meterArbiter).tick(...) + /Users/user/go/pkg/mod/github.com/rcrowley/go-metrics@v0.0.0-20250401214520-65e299d6c5c9/meter.go:239 +created by github.com/rcrowley/go-metrics.NewMeter in goroutine 1 + /Users/user/go/pkg/mod/github.com/rcrowley/go-metrics@v0.0.0-20250401214520-65e299d6c5c9/meter.go:46 +0xc8 + +goroutine 7 [select, 3 minutes]: +go.uber.org/fx.(*signalReceivers).relayer(0x140000c0488) + /Users/user/go/pkg/mod/go.uber.org/fx@v1.24.0/signal.go:84 +0x88 +created by go.uber.org/fx.(*signalReceivers).Start in goroutine 1 + /Users/user/go/pkg/mod/go.uber.org/fx@v1.24.0/signal.go:112 +0x208 + +goroutine 36 [chan receive]: +git.eeqj.de/sneak/routewatch/internal/routewatch.logDebugStats(0x14000064600) + /Users/user/dev/routewatch/internal/routewatch/cli.go:36 +0x350 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1 in goroutine 35 + /Users/user/dev/routewatch/internal/routewatch/cli.go:65 +0x80 + +goroutine 21 [syscall, 3 minutes]: +os/signal.signal_recv() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/sigqueue.go:149 +0x2c +os/signal.loop() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/os/signal/signal_unix.go:23 +0x1c +created by os/signal.Notify.func1.1 in goroutine 35 + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/os/signal/signal.go:152 +0x28 + +goroutine 5 [chan receive, 3 minutes]: +git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1.1() + /Users/user/dev/routewatch/internal/routewatch/cli.go:72 +0x3c +created by git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1.1 in goroutine 35 + /Users/user/dev/routewatch/internal/routewatch/cli.go:71 +0x144 + +goroutine 22 [select]: +git.eeqj.de/sneak/routewatch/internal/routewatch.(*ASHandler).flushLoop(0x140001220e0) + /Users/user/dev/routewatch/internal/routewatch/ashandler.go:117 +0xc4 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.NewASHandler in goroutine 6 + /Users/user/dev/routewatch/internal/routewatch/ashandler.go:55 +0x144 + +goroutine 23 [select]: +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeerHandler).flushLoop(0x140001221c0) + /Users/user/dev/routewatch/internal/routewatch/peerhandler.go:106 +0xc4 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.NewPeerHandler in goroutine 6 + /Users/user/dev/routewatch/internal/routewatch/peerhandler.go:56 +0x144 + +goroutine 32 [sync.Mutex.Lock]: +internal/sync.runtime_SemacquireMutex(0x140001ce4f8?, 0xc?, 0x1400106eee8?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/sema.go:95 +0x28 +internal/sync.(*Mutex).lockSlow(0x140000ce090) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:149 +0x170 +internal/sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:70 +sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/sync/mutex.go:46 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PrefixHandler).flushLoop(0x140000ce070) + /Users/user/dev/routewatch/internal/routewatch/prefixhandler.go:146 +0x130 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.NewPrefixHandler in goroutine 6 + /Users/user/dev/routewatch/internal/routewatch/prefixhandler.go:69 +0x144 + +goroutine 33 [sync.Mutex.Lock]: +internal/sync.runtime_SemacquireMutex(0x100a9928a?, 0x4?, 0x19?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/sema.go:95 +0x28 +internal/sync.(*Mutex).lockSlow(0x140000d6840) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:149 +0x170 +internal/sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:70 +sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/sync/mutex.go:46 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).lock(0x140000d6820, {0x100a9fc01, 0xd}) + /Users/user/dev/routewatch/internal/database/database.go:145 +0x18c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).RecordPeering(0x140000d6820, 0xee019a488?, 0xbcea, {0x0, 0xee019a488, 0x0}) + /Users/user/dev/routewatch/internal/database/database.go:587 +0xe4 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeeringHandler).processPeerings(0x1400003e200) + /Users/user/dev/routewatch/internal/routewatch/peeringhandler.go:205 +0x414 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeeringHandler).processLoop(0x1400003e200) + /Users/user/dev/routewatch/internal/routewatch/peeringhandler.go:99 +0x68 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.NewPeeringHandler in goroutine 6 + /Users/user/dev/routewatch/internal/routewatch/peeringhandler.go:52 +0xec + +goroutine 50 [select, 3 minutes]: +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeeringHandler).pruneLoop(0x1400003e200) + /Users/user/dev/routewatch/internal/routewatch/peeringhandler.go:115 +0xa4 +created by git.eeqj.de/sneak/routewatch/internal/routewatch.NewPeeringHandler in goroutine 6 + /Users/user/dev/routewatch/internal/routewatch/peeringhandler.go:53 +0x12c + +goroutine 8 [sync.Mutex.Lock]: +internal/sync.runtime_SemacquireMutex(0x100a9928a?, 0x4?, 0x19?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/sema.go:95 +0x28 +internal/sync.(*Mutex).lockSlow(0x140000d6840) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:149 +0x170 +internal/sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:70 +sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/sync/mutex.go:46 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).lock(0x140000d6820, {0x100aa3a1f, 0x13}) + /Users/user/dev/routewatch/internal/database/database.go:145 +0x18c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetOrCreateASNBatch(0x140000d6820, 0x14010f95da0) + /Users/user/dev/routewatch/internal/database/database.go:331 +0x50 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*ASHandler).flushBatchLocked(0x140001220e0) + /Users/user/dev/routewatch/internal/routewatch/ashandler.go:150 +0x138 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*ASHandler).HandleMessage(0x140001220e0, 0x1401c1e87e0) + /Users/user/dev/routewatch/internal/routewatch/ashandler.go:106 +0x2d0 +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).runHandlerWorker(0x1400003e200?, 0x140001440a0) + /Users/user/dev/routewatch/internal/streamer/streamer.go:168 +0x78 +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start in goroutine 6 + /Users/user/dev/routewatch/internal/streamer/streamer.go:134 +0x128 + +goroutine 9 [sync.Mutex.Lock]: +internal/sync.runtime_SemacquireMutex(0x100a9928a?, 0x4?, 0x19?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/runtime/sema.go:95 +0x28 +internal/sync.(*Mutex).lockSlow(0x140000d6840) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:149 +0x170 +internal/sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/internal/sync/mutex.go:70 +sync.(*Mutex).Lock(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/sync/mutex.go:46 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).lock(0x140000d6820, {0x100aa0e27, 0xf}) + /Users/user/dev/routewatch/internal/database/database.go:145 +0x18c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).UpdatePeerBatch(0x140000d6820, 0x14014fd8360) + /Users/user/dev/routewatch/internal/database/database.go:639 +0x50 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeerHandler).flushBatchLocked(0x140001221c0) + /Users/user/dev/routewatch/internal/routewatch/peerhandler.go:150 +0x35c +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PeerHandler).HandleMessage(0x140001221c0, 0x1400bd92480) + /Users/user/dev/routewatch/internal/routewatch/peerhandler.go:95 +0x1f8 +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).runHandlerWorker(0x140000ce070?, 0x140001440f0) + /Users/user/dev/routewatch/internal/streamer/streamer.go:168 +0x78 +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start in goroutine 6 + /Users/user/dev/routewatch/internal/streamer/streamer.go:134 +0x128 + +goroutine 10 [runnable]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_row_internal(0x5256b9600, 0x140105413f8, 0x14010541480) + _cgo_gotypes.go:397 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteStmt).execSync.func3(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2124 +github.com/mattn/go-sqlite3.(*SQLiteStmt).execSync(0x1401d62c060, {0x140052a81c0?, 0x9ad19cff?, 0x10059cd00?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2124 +0x94 +github.com/mattn/go-sqlite3.(*SQLiteStmt).exec(0x1401d62c060, {0x100c9ea00, 0x1012a9420}, {0x140052a81c0, 0xb, 0xb}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2085 +0x308 +github.com/mattn/go-sqlite3.(*SQLiteStmt).ExecContext(0x1400011b608?, {0x100c9ea00?, 0x1012a9420?}, {0x140052a81c0?, 0x1?, 0x1005b5750?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3_go18.go:53 +0x28 +database/sql.ctxDriverStmtExec({0x100c9ea00, 0x1012a9420}, {0x100c9eca0, 0x1401d62c060}, {0x140052a81c0, 0xb, 0x140035148d0?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/ctxutil.go:65 +0x9c +database/sql.resultFromStatement({0x100c9ea00, 0x1012a9420}, {0x100c9e1d8, 0x14003d0d260}, 0x1400e2eb180, {0x1400011b568, 0xb, 0xb}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:2680 +0xd4 +database/sql.(*Stmt).ExecContext.func1(0x0?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:2654 +0x8c +database/sql.(*DB).retry(0x1400011b388?, 0x1400011b3a0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*Stmt).ExecContext(0x100c8d800?, {0x100c9ea00?, 0x1012a9420?}, {0x1400011b568?, 0x1f6?, 0x146798250?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:2648 +0x124 +database/sql.(*Stmt).Exec(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:2668 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).UpsertLiveRouteBatch(0x140000d6820, {0x14004b36000, 0x1c14, 0x1907?}) + /Users/user/dev/routewatch/internal/database/database.go:230 +0x4a0 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PrefixHandler).flushBatchLocked(0x140000ce070) + /Users/user/dev/routewatch/internal/routewatch/prefixhandler.go:207 +0x554 +git.eeqj.de/sneak/routewatch/internal/routewatch.(*PrefixHandler).HandleMessage(0x140000ce070, 0x140068966c0) + /Users/user/dev/routewatch/internal/routewatch/prefixhandler.go:133 +0x308 +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).runHandlerWorker(0x0?, 0x140000d6000) + /Users/user/dev/routewatch/internal/streamer/streamer.go:168 +0x78 +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start in goroutine 6 + /Users/user/dev/routewatch/internal/streamer/streamer.go:134 +0x128 + +goroutine 11 [chan receive]: +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).runHandlerWorker(0x0?, 0x140000d6050) + /Users/user/dev/routewatch/internal/streamer/streamer.go:166 +0x38 +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start in goroutine 6 + /Users/user/dev/routewatch/internal/streamer/streamer.go:134 +0x128 + +goroutine 12 [runnable]: +encoding/json.(*decodeState).literalStore(0x14005136870, {0x14001251fcf, 0x13e, 0x4031}, {0x100bcb3a0?, 0x1400513e120?, 0x14000b5b468?}, 0x0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:953 +0x838 +encoding/json.(*decodeState).value(0x14005136870, {0x100bcb3a0?, 0x1400513e120?, 0x3?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:389 +0x114 +encoding/json.(*decodeState).object(0x14005136870, {0x100c82e60?, 0x1400513e010?, 0x4237?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:762 +0xae4 +encoding/json.(*decodeState).value(0x14005136870, {0x100c82e60?, 0x1400513e010?, 0x0?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:375 +0x40 +encoding/json.(*decodeState).object(0x14005136870, {0x100bb66c0?, 0x1400513e000?, 0x100668090?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:762 +0xae4 +encoding/json.(*decodeState).value(0x14005136870, {0x100bb66c0?, 0x1400513e000?, 0x100667b90?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:375 +0x40 +encoding/json.(*decodeState).unmarshal(0x14005136870, {0x100bb66c0?, 0x1400513e000?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:178 +0x100 +encoding/json.Unmarshal({0x14001251dc1, 0x34e, 0x423f}, {0x100bb66c0, 0x1400513e000}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/encoding/json/decode.go:108 +0xe4 +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).stream(0x14000232000, {0x100c9ea70, 0x14000144000}) + /Users/user/dev/routewatch/internal/streamer/streamer.go:396 +0x440 +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start.func1() + /Users/user/dev/routewatch/internal/streamer/streamer.go:138 +0x2c +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).Start in goroutine 6 + /Users/user/dev/routewatch/internal/streamer/streamer.go:137 +0x1f8 + +goroutine 66 [runnable]: +syscall.Getsockname(0x27?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/syscall/syscall_bsd.go:298 +0x90 +net.(*netFD).accept(0x140000d4080) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/fd_unix.go:188 +0x19c +net.(*TCPListener).accept(0x14000116000) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/tcpsock_posix.go:159 +0x24 +net.(*TCPListener).Accept(0x14000116000) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/tcpsock.go:380 +0x2c +net/http.(*Server).Serve(0x1400014e100, {0x100c9e118, 0x14000116000}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:3424 +0x290 +net/http.(*Server).ListenAndServe(0x1400014e100) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/server.go:3350 +0x84 +git.eeqj.de/sneak/routewatch/internal/server.(*Server).Start.func1() + /Users/user/dev/routewatch/internal/server/server.go:55 +0x28 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).Start in goroutine 6 + /Users/user/dev/routewatch/internal/server/server.go:54 +0x19c + +goroutine 38 [select, 3 minutes]: +net/http.(*persistConn).readLoop(0x14000000a20) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/transport.go:2395 +0xb04 +created by net/http.(*Transport).dialConn in goroutine 13 + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/transport.go:1944 +0x11c4 + +goroutine 477992 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 477991 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 39 [select, 3 minutes]: +net/http.(*persistConn).writeLoop(0x14000000a20) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/transport.go:2590 +0x9c +created by net/http.(*Transport).dialConn in goroutine 13 + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/net/http/transport.go:1945 +0x120c + +goroutine 470084 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470083 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 63 [select]: +git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).stream.func2() + /Users/user/dev/routewatch/internal/streamer/streamer.go:356 +0x94 +created by git.eeqj.de/sneak/routewatch/internal/streamer.(*Streamer).stream in goroutine 12 + /Users/user/dev/routewatch/internal/streamer/streamer.go:354 +0x1cc + +goroutine 495650 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 493249 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 29330 [chan send, 3 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 28113 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479864 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479863 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503528 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503527 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463058 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 460833 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463034 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 463033 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 195877 [chan send, 2 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 195876 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510362 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510361 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 307156 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 307155 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463037 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 463036 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 460828 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 460827 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 487943 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 487942 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 377779 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 377778 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 519252 [select]: +database/sql.(*DB).conn(0x140000e7520, {0x100c9ea00, 0x1012a9420}, 0x1) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1369 +0x49c +database/sql.(*DB).query(0x140000e7520, {0x100c9ea00, 0x1012a9420}, {0x100aad211, 0x20}, {0x0, 0x0, 0x0}, 0x98?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1759 +0x40 +database/sql.(*DB).QueryContext.func1(0x28?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1742 +0x54 +database/sql.(*DB).retry(0x0?, 0x140042b3c10) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*DB).QueryContext(0x140042b3cb8?, {0x100c9ea00?, 0x1012a9420?}, {0x100aad211?, 0x140047c4ac8?}, {0x0?, 0x0?, 0x140047c4a90?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1741 +0x94 +database/sql.(*DB).QueryRowContext(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1842 +database/sql.(*DB).QueryRow(0x140000324b0?, {0x100aad211?, 0x1e?}, {0x0?, 0x0?, 0x0?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1856 +0x48 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:799 +0x2ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 519251 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 493255 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 493254 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506087 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506086 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 502448 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 502447 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510451 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510450 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 198769 [chan send, 2 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 198768 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479647 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479646 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 470103 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470102 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503557 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503556 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 498830 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 498829 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 493250 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 490705 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472845 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 472844 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 1592 [chan send, 3 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 1591 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503805 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503804 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506115 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506114 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 502193 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 502192 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 228546 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 228545 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 514499 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x533a81150) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x14004a5b800, {0x1400ae813e0, 0x2, 0x2?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x14004a5b800, {0x1400ae813e0, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x140045a0820) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x140045a0858}, 0x14000b61b98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x140045a0820) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:925 +0x38c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 514498 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 469632 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 469631 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503838 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503837 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 505325 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 505324 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 520147 [chan receive]: +database/sql.(*Tx).awaitDone(0x1400ba2f380) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:2212 +0x34 +created by database/sql.(*DB).beginDC in goroutine 10 + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1925 +0x19c + +goroutine 520757 [select]: +database/sql.(*DB).conn(0x140000e7520, {0x100c9ea00, 0x1012a9420}, 0x1) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1369 +0x49c +database/sql.(*DB).query(0x140000e7520, {0x100c9ea00, 0x1012a9420}, {0x100aaaec5, 0x1d}, {0x0, 0x0, 0x0}, 0x0?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1759 +0x40 +database/sql.(*DB).QueryContext.func1(0x58?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1742 +0x54 +database/sql.(*DB).retry(0x406fb88?, 0x1400406fb80) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*DB).QueryContext(0x3a85f48d34b?, {0x100c9ea00?, 0x1012a9420?}, {0x100aaaec5?, 0x9867822fb935?}, {0x0?, 0xe85f0f80406fc48?, 0x6887ade8?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1741 +0x94 +database/sql.(*DB).QueryRowContext(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1842 +database/sql.(*DB).QueryRow(0x14004049180?, {0x100aaaec5?, 0x1400406fcd8?}, {0x0?, 0x14004049180?, 0x1400406fdc0?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1856 +0x48 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).queryRow(0x140000d6820, {0x100aaaec5, 0x1d}, {0x0, 0x0, 0x0}) + /Users/user/dev/routewatch/internal/database/slowquery.go:26 +0xb4 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:759 +0xb4 +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 520756 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 482735 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 482734 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 470079 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470078 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 24764 [chan send, 3 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 24763 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 515927 [runnable]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x548f10ca0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x1401c1999e0, {0x14004603560, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x1401c1999e0, {0x14004603560, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x140047288c0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x140047288f8}, 0x14000199b98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x140047288c0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:903 +0x168 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 515926 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472866 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 471937 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 469646 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 469645 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 518752 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x547a61ab0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x1400af3ad80, {0x14016cd2d20, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x1400af3ad80, {0x14016cd2d20, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x14004049220) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x14004049258}, 0x14018967b98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x14004049220) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:903 +0x168 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 518751 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 495636 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 495635 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 508808 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 508807 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 482730 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 482729 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 493056 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 493055 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 468137 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 468136 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 514512 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x15002bb80) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x1401c199920, {0x14004602760, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x1401c199920, {0x14004602760, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x14004728780) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x140047287b8}, 0x14007e6fb98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x14004728780) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:903 +0x168 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 514511 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 462205 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 462204 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472872 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 472871 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463017 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 463016 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 455221 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 455220 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463020 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 463019 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 513244 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x53f6b28c0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x140179cf140, {0x1401a898e00, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x140179cf140, {0x1401a898e00, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x1400259dea0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x1400259ded8}, 0x14003117b98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x1400259dea0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:925 +0x38c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 513243 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472854 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 472853 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479753 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479752 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479183 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479182 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 466968 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 466967 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 507901 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 507900 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 497830 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 497829 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 520509 [select]: +database/sql.(*DB).conn(0x140000e7520, {0x100c9ea00, 0x1012a9420}, 0x1) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1369 +0x49c +database/sql.(*DB).query(0x140000e7520, {0x100c9ea00, 0x1012a9420}, {0x100aa7e95, 0x19}, {0x0, 0x0, 0x0}, 0x0?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1759 +0x40 +database/sql.(*DB).QueryContext.func1(0xb8?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1742 +0x54 +database/sql.(*DB).retry(0x108?, 0x14019ba1b80) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*DB).QueryContext(0x3a85f9055dd?, {0x100c9ea00?, 0x1012a9420?}, {0x100aa7e95?, 0x98678dd34ef8?}, {0x0?, 0x1a298e3819ba1c78?, 0x6887ade8?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1741 +0x94 +database/sql.(*DB).QueryRowContext(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1842 +database/sql.(*DB).QueryRow(0x101484f30?, {0x100aa7e95?, 0x14000093808?}, {0x0?, 0x14019ba1ca8?, 0x10054105c?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1856 +0x48 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).queryRow(0x140000d6820, {0x100aa7e95, 0x19}, {0x0, 0x0, 0x0}) + /Users/user/dev/routewatch/internal/database/slowquery.go:26 +0xb4 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:753 +0x6c +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 520508 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 371676 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 371675 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506077 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506076 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503578 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503577 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503573 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503572 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 470116 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470115 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510455 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510454 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510438 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510437 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 493245 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 493244 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 477996 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 477995 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 475968 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 475967 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 519985 [select]: +database/sql.(*DB).conn(0x140000e7520, {0x100c9ea00, 0x1012a9420}, 0x1) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1369 +0x49c +database/sql.(*DB).query(0x140000e7520, {0x100c9ea00, 0x1012a9420}, {0x100aaaec5, 0x1d}, {0x0, 0x0, 0x0}, 0x0?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1759 +0x40 +database/sql.(*DB).QueryContext.func1(0x58?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1742 +0x54 +database/sql.(*DB).retry(0x19bb88?, 0x1400019bb80) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*DB).QueryContext(0x3a85f48d621?, {0x100c9ea00?, 0x1012a9420?}, {0x100aaaec5?, 0x986782302f5f?}, {0x0?, 0xe866a100019bc48?, 0x6887ade8?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1741 +0x94 +database/sql.(*DB).QueryRowContext(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1842 +database/sql.(*DB).QueryRow(0x1400259de00?, {0x100aaaec5?, 0x1400019bcd8?}, {0x0?, 0x1400259de00?, 0x1400019bdc0?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1856 +0x48 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).queryRow(0x140000d6820, {0x100aaaec5, 0x1d}, {0x0, 0x0, 0x0}) + /Users/user/dev/routewatch/internal/database/slowquery.go:26 +0xb4 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:759 +0xb4 +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 519984 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503554 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 501905 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 487954 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 481425 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479830 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479829 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 478289 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 478288 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 518965 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x3b16e9f60) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x1401a1df3e0, {0x140100b0a00, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x1401a1df3e0, {0x140100b0a00, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x1400357d860) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x1400357d898}, 0x14007e6db98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x1400357d860) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:903 +0x168 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 518964 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510357 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510356 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 475135 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 475134 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 489915 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 489914 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503542 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503541 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 495258 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 495257 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510427 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510426 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479842 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479825 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 495628 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 495627 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472431 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 472430 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 472491 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 472490 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 495647 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 495646 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 497491 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 497490 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 470099 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470098 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503592 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503591 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 503595 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 503594 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510447 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510446 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479641 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479640 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 377777 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 377776 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 222302 [chan send, 1 minutes]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 222301 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 488274 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 488273 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 517123 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x52455a8c0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x14013811ec0, {0x1401d327e80, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x14013811ec0, {0x1401d327e80, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x14004289d60) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x14004289d98}, 0x14000b5fb98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x14004289d60) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:903 +0x168 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 517122 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 487971 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 487970 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506047 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506046 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 513865 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x300bf9ab0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x140047d81e0, {0x14019d445a0, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x140047d81e0, {0x14019d445a0, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x140047bfae0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x140047bfb18}, 0x14000b5db98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x140047bfae0) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:925 +0x38c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 513864 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 520748 [select]: +database/sql.(*DB).conn(0x140000e7520, {0x100c9ea00, 0x1012a9420}, 0x1) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1369 +0x49c +database/sql.(*DB).query(0x140000e7520, {0x100c9ea00, 0x1012a9420}, {0x100aa7e95, 0x19}, {0x0, 0x0, 0x0}, 0x0?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1759 +0x40 +database/sql.(*DB).QueryContext.func1(0xb8?) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1742 +0x54 +database/sql.(*DB).retry(0x108?, 0x1400c7a6b80) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1576 +0x4c +database/sql.(*DB).QueryContext(0x3a85f906592?, {0x100c9ea00?, 0x1012a9420?}, {0x100aa7e95?, 0x98678dd5dd6e?}, {0x0?, 0x1a2c1a900c7a6c78?, 0x6887ade8?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1741 +0x94 +database/sql.(*DB).QueryRowContext(...) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1842 +database/sql.(*DB).QueryRow(0x1014853e8?, {0x100aa7e95?, 0x14000101008?}, {0x0?, 0x1400c7a6ca8?, 0x10054105c?}) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:1856 +0x48 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).queryRow(0x140000d6820, {0x100aa7e95, 0x19}, {0x0, 0x0, 0x0}) + /Users/user/dev/routewatch/internal/database/slowquery.go:26 +0xb4 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:753 +0x6c +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 520747 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479826 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479633 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 469628 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 469627 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506084 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506083 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 506101 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 506100 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 479858 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 479185 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 463009 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 463008 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 509536 [syscall]: +github.com/mattn/go-sqlite3._Cfunc__sqlite3_step_internal(0x5492c0ca0) + _cgo_gotypes.go:384 +0x34 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked.func1(...) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +github.com/mattn/go-sqlite3.(*SQLiteRows).nextSyncLocked(0x1401a1df620, {0x140100b1ae0, 0x2, 0x10059d998?}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2233 +0x64 +github.com/mattn/go-sqlite3.(*SQLiteRows).Next(0x1401a1df620, {0x140100b1ae0, 0x2, 0x2}) + /Users/user/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.29/sqlite3.go:2209 +0x2fc +database/sql.(*Rows).nextLocked(0x1400357da40) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3066 +0x144 +database/sql.(*Rows).Next.func1() + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3041 +0x30 +database/sql.withLock({0x100c9bee8, 0x1400357da78}, 0x14019a43b98) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3574 +0x74 +database/sql.(*Rows).Next(0x1400357da40) + /nix/store/f4a0g1p943l61wfvqnpdr73v9bsyfhf2-go-1.24.4/share/go/src/database/sql/sql.go:3040 +0x74 +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetPrefixDistribution(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:925 +0x38c +git.eeqj.de/sneak/routewatch/internal/database.(*Database).GetStats(0x140000d6820) + /Users/user/dev/routewatch/internal/database/database.go:805 +0x3ec +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:237 +0x64 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 509535 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510430 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510429 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 508811 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 508810 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 489920 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 489919 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 470072 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 470071 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 510442 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 510441 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 469502 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 469501 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 489896 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 489895 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 495642 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 495641 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0 + +goroutine 497523 [chan send]: +git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1.1() + /Users/user/dev/routewatch/internal/server/handlers.go:244 +0x180 +created by git.eeqj.de/sneak/routewatch/internal/server.(*Server).setupRoutes.func1.(*Server).handleStats.1 in goroutine 497522 + /Users/user/dev/routewatch/internal/server/handlers.go:236 +0x1a0