From 7bdc7dcd53fdf35ce00c141eb3ed15e735b8e711 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Sun, 22 Mar 2026 01:37:26 +0100 Subject: [PATCH 01/47] feat: add recording dashboard UI and nav element migration --- .../20260322000001-extend-nav-recording.js | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 backend/db/migrations/20260322000001-extend-nav-recording.js diff --git a/backend/db/migrations/20260322000001-extend-nav-recording.js b/backend/db/migrations/20260322000001-extend-nav-recording.js new file mode 100644 index 000000000..c7545a14d --- /dev/null +++ b/backend/db/migrations/20260322000001-extend-nav-recording.js @@ -0,0 +1,50 @@ +'use strict'; + +const navElements = [ + { + name: "Recording", + groupId: "Admin", + icon: "record-circle", + order: 16, + admin: true, + path: "recording", + component: "Recording", + } +]; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.bulkInsert( + "nav_element", + await Promise.all( + navElements.map(async (t) => { + const groupId = await queryInterface.rawSelect( + "nav_group", + { + where: { name: t.groupId }, + }, + ["id"] + ); + + t["createdAt"] = new Date(); + t["updatedAt"] = new Date(); + t["groupId"] = groupId; + + return t; + }), + {} + ) + ); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.bulkDelete( + "nav_element", + { + name: navElements.map((t) => t.name), + }, + {} + ); + }, +}; \ No newline at end of file From 2dbd5a1e0641d553c24762956e83f60461899522 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Sun, 22 Mar 2026 01:39:12 +0100 Subject: [PATCH 02/47] feat: add recording dashboard component --- .../src/components/dashboard/Recording.vue | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 frontend/src/components/dashboard/Recording.vue diff --git a/frontend/src/components/dashboard/Recording.vue b/frontend/src/components/dashboard/Recording.vue new file mode 100644 index 000000000..bfc764528 --- /dev/null +++ b/frontend/src/components/dashboard/Recording.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file From b788500d5cd5e7eee390f4ebe1ff9160c63084d5 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Tue, 24 Mar 2026 01:48:49 +0100 Subject: [PATCH 03/47] feat: rename recording to socket profiler --- .DS_Store | Bin 0 -> 10244 bytes ...60322000001-extend-nav-socket-profiler.js} | 6 +- docs/.DS_Store | Bin 0 -> 8196 bytes .../{Recording.vue => SocketProfiler.vue} | 4 +- logs/activity.log | 776 ++++++++++++++++++ logs/complete.log | 776 ++++++++++++++++++ logs/error.log | 136 +++ 7 files changed, 1693 insertions(+), 5 deletions(-) create mode 100644 .DS_Store rename backend/db/migrations/{20260322000001-extend-nav-recording.js => 20260322000001-extend-nav-socket-profiler.js} (90%) create mode 100644 docs/.DS_Store rename frontend/src/components/dashboard/{Recording.vue => SocketProfiler.vue} (97%) create mode 100644 logs/activity.log create mode 100644 logs/complete.log create mode 100644 logs/error.log diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8f9c1609da0efb43a56263f202e204c6e0aaf45f GIT binary patch literal 10244 zcmeHMYit}v60RCM@eCP~v2n=bvhpSyLXT~%8>3jmlZ7##p{0FdcrR8y%~;9=wJo%cv#&kCYQ@&G0{VD#8- zK4;J4jyfU)A_O7?A_O7?A_UF{1n4)LJ@OJkqcTDuLLfq*i~x%dae5g|hICF)9y+Mt zR{)~*)Xg8N(>;L8#6y}4>71Zklyr*Q1BRj)UNKOJ(|DY*6HSJ6PEa8ZD8vE7nK8Vf zAfKJ&;+!2YDQHwi2t)|XM}Xbk8z2Wdmsaqp&`?vmA(&@-0ji~`o>@p5 z*VRZjfdOu~7Z0{j&80b~sq|@gTVa-3cJ<2f?iw9SYjhYSSzK6_?Yat`3!tlF{xPt? zo`;lIBU2yF=U1TIf5_drftg)+S@-usjhy};s&`vULqgMOt>?d zKo1IjO81VkR=?}oxl&!v9kI-rQLVYtbpqXTOpgm#hDj_VgO+2sGby*=7(SQHhyhuV zl~HZw$&=f6wYSDE+p+yrYy9NS?H#T0Z9BJ}I;F_V6K%T>k51ZCj{7g#BRv>~Yq(If z%jNA|c*V+9 zt5>fX)h^2E`N?sQEx*&XT`y%9%%kI;Wn`xHyyc8%1M_&0u}+wyT2l?{Vbi$ox32!# zY2s=At%IxE@0q5<^`*zgd^5;a)Q3j3Wq#gsZTpbxTY=>|LnA(c-xHWqJ z^fVjtkC>iMbe>FhNcTM588=h2$80@k+G!`{27x=pIGMJ*>m2e-rYUPto$V#D_j`eD zB6+Y>*(fR+Bt(T${pM0Fq?mYp>}g)_cU;F*ltl7SI3&Yn^4>l;LUG{){2LyCr{HCH z3qFPa!4KGgt8g7|#vOPi?!^PxgTt7|3AFGAAup9qJ{IZ=3HnqiAF}NiJB20JWlD$q z35J%;k2p4%9U4|g${U@J!C>CC3sa6isx{_yJ72K%z}#os3>E6DJ&%ghuNle?`>q$z z8I!V6O)L23VUu)OMYD@ElBxyHE|F{(`%+FXUD2|B6Dg~iXD*UVShsR%=8R}osvYaEc1hmKk zQTV=|H2ROBm4wEV;!p4gllj;ZoxKe#}2##cat0J!GqY3 z19${;IEgko=wg7U@b5T>H{mUKC*Fm3}tnEyHrZE zRI7BgFrG@M7k0Il{ReukR(sETSNm9m{bmaJ@k=(f?bvnYzOo4li!B*xrSWrnuksRZ z@7yM8ZB=-o+A=^6VIDu1GinXYapg0Nd+j>4MO#EJBbpm7rRHLC7t!3@+R~y)xEzm)+S)O$-~CU!kg6J$a)T+Y_TEgpE`usbRh)|It?d0ek{qz_)OgLi=J| zf*Q8qM%+r_eGgtm;r$@?Vjo#{mcsl|96=MuS*RyF53q>GaTZVDKk#O}6>r0Tl9k_s z_u_r{5I#bd{y5qCX?z-=!DsPhd<9>_*YOQ*^Jnl={1U&avEsgx{R)a_E3LSg@f_QA z#;K3}z$_wvO9dtcWPM4-$3cAPj5getOxn(Rj>rHD&<~GYfV!OB zB|NHl6-ueQ=?A`xR@8m2)VfMy5fo@04DA}M85&ib1by^G2t){+-w4!+<;B_e|L$}D z|9^gOB3fO9K!m{WLICT#GF_BQ@Qi99P3$9AoZjo{We>}|<^<)pd@2|V>*t^2slh(S v^Y0JT7haM1crxUh6O@aS92X}lzUKem{|pdcf1>+;bpIzaWY+fQyZ`?R2+$WA literal 0 HcmV?d00001 diff --git a/backend/db/migrations/20260322000001-extend-nav-recording.js b/backend/db/migrations/20260322000001-extend-nav-socket-profiler.js similarity index 90% rename from backend/db/migrations/20260322000001-extend-nav-recording.js rename to backend/db/migrations/20260322000001-extend-nav-socket-profiler.js index c7545a14d..8373b85e6 100644 --- a/backend/db/migrations/20260322000001-extend-nav-recording.js +++ b/backend/db/migrations/20260322000001-extend-nav-socket-profiler.js @@ -2,13 +2,13 @@ const navElements = [ { - name: "Recording", + name: "Socket Profiler", groupId: "Admin", icon: "record-circle", order: 16, admin: true, - path: "recording", - component: "Recording", + path: "Socket_Profiler", + component: "SocketProfiler", } ]; diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ce7e51cd506c291eabf9fea74ca80f29611c6db9 GIT binary patch literal 8196 zcmeHM&2JM&6n`%tWSx*^0|_LEN*2B#5v8Gt`XPicP7p*DN`#}3G*EXx#?B_28Ebc) z08u1g;RbiOb3?2M9oKv^vl{+dW_{HNhCaoz>kGbPi|MNHCP5L1C{~HfMvik@ZVs7_H0?4 zWA=URwXJ2qGVs4-K&}sYs!|q>Y-*{N4rMgfn?Fhrj}%(f*MLv zL(yC@(A*tR!^vMX@l7o?98ir+{g{!_+)&V5Jut7r0gGDN)-qrj=w?9P-Fv}Ak6I7+jbncuOex3B-ifHU9>Irqz( zVy~QeStBiZ$%cGd5hC_my63M(Y_H;u%?qA+5od`4L?NS)dv_xqioKF(@Gw=_vUWH* zCs%RL?(ctld2TBI-R!|se*gQgXQuLVv)>#XahJGXs!Lb8%9501 z7iMkUOA?RQSn1*Y*z;Mu#7iQ}#Ey)Vy#<0VCrtLV7LhJ|cn8}>FeRn!Gw+rY9t&P0t3(XK0tg6bOa=*5)#PAD zCkI}jxb|r@0$Y$msBqJS6~Gm;2Gi1W6x}0txpwq$8@fW1Hl`_Aqj7mB5}$P-9oV61 zF5h&TCb9=v$4E(6{B0Be(Y!z|4=>u5hZB^QptngVrw$H4E)a*YnrgfM6DPJ<20kML zy?X2kdH=t0{O|vt@eS?JmI2Gar)B{A7Rn29KX09aItP@ekUZ6&smdbbnp!FdH8Mon h)peZY;U9*i=Z&vuWK&D>P_YLAMT2cD1OF-m{{YgzIt2g# literal 0 HcmV?d00001 diff --git a/frontend/src/components/dashboard/Recording.vue b/frontend/src/components/dashboard/SocketProfiler.vue similarity index 97% rename from frontend/src/components/dashboard/Recording.vue rename to frontend/src/components/dashboard/SocketProfiler.vue index bfc764528..3175b526d 100644 --- a/frontend/src/components/dashboard/Recording.vue +++ b/frontend/src/components/dashboard/SocketProfiler.vue @@ -1,5 +1,5 @@ + + \ No newline at end of file diff --git a/logs/activity.log b/logs/activity.log index 32a79ac7f..f40e0241d 100644 --- a/logs/activity.log +++ b/logs/activity.log @@ -1049,3 +1049,26 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:20:15.771Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145330,"blks_read":876,"cache_hit_pct":99.4,"commits":1565,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":99925,"tup_inserted":124,"tup_returned":525121,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:20:15.771Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:25:15.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146950,"blks_read":876,"cache_hit_pct":99.41,"commits":1584,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":100973,"tup_inserted":125,"tup_returned":532291,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:25:15.820Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:30:15.791Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148512,"blks_read":876,"cache_hit_pct":99.41,"commits":1602,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":101995,"tup_inserted":126,"tup_returned":539435,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:30:15.791Z"} +{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-07T16:16:20.119Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.127Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.130Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T16:16:20.094Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.128Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.131Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-07T16:16:20.178Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-07T16:16:20.182Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:16:20.191Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":169867,"blks_read":1245,"cache_hit_pct":99.27,"commits":1799,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":116092,"tup_inserted":136,"tup_returned":613344,"tup_updated":10},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:16:20.191Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:21:20.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":182530,"blks_read":1334,"cache_hit_pct":99.27,"commits":1922,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":126293,"tup_inserted":151,"tup_returned":630602,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:21:20.160Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:26:20.162Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184092,"blks_read":1334,"cache_hit_pct":99.28,"commits":1940,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":127315,"tup_inserted":152,"tup_returned":637746,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:26:20.163Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:31:20.152Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185654,"blks_read":1334,"cache_hit_pct":99.29,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":128337,"tup_inserted":153,"tup_returned":644890,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:31:20.154Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:36:20.166Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187272,"blks_read":1336,"cache_hit_pct":99.29,"commits":1977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":129385,"tup_inserted":154,"tup_returned":652064,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:36:20.168Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:41:20.168Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":188834,"blks_read":1336,"cache_hit_pct":99.3,"commits":1995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":130407,"tup_inserted":155,"tup_returned":659208,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:41:20.168Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:46:20.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190396,"blks_read":1336,"cache_hit_pct":99.3,"commits":2013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":131429,"tup_inserted":156,"tup_returned":666352,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:46:20.170Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:51:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":192016,"blks_read":1336,"cache_hit_pct":99.31,"commits":2032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":132477,"tup_inserted":157,"tup_returned":673526,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:51:20.190Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:56:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193578,"blks_read":1336,"cache_hit_pct":99.31,"commits":2050,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":133499,"tup_inserted":158,"tup_returned":680670,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:56:20.189Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:01:20.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195064,"blks_read":1336,"cache_hit_pct":99.32,"commits":2066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":134506,"tup_inserted":159,"tup_returned":686575,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:01:20.179Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} diff --git a/logs/complete.log b/logs/complete.log index 1c0337dc6..1d498d62f 100644 --- a/logs/complete.log +++ b/logs/complete.log @@ -1049,3 +1049,26 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:20:15.771Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145330,"blks_read":876,"cache_hit_pct":99.4,"commits":1565,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":99925,"tup_inserted":124,"tup_returned":525121,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:20:15.771Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:25:15.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146950,"blks_read":876,"cache_hit_pct":99.41,"commits":1584,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":100973,"tup_inserted":125,"tup_returned":532291,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:25:15.820Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:30:15.791Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148512,"blks_read":876,"cache_hit_pct":99.41,"commits":1602,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":101995,"tup_inserted":126,"tup_returned":539435,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:30:15.791Z"} +{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-07T16:16:20.119Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.130Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.127Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T16:16:20.094Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.131Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.128Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-07T16:16:20.178Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-07T16:16:20.182Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:16:20.191Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":169867,"blks_read":1245,"cache_hit_pct":99.27,"commits":1799,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":116092,"tup_inserted":136,"tup_returned":613344,"tup_updated":10},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:16:20.191Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:21:20.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":182530,"blks_read":1334,"cache_hit_pct":99.27,"commits":1922,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":126293,"tup_inserted":151,"tup_returned":630602,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:21:20.160Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:26:20.162Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184092,"blks_read":1334,"cache_hit_pct":99.28,"commits":1940,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":127315,"tup_inserted":152,"tup_returned":637746,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:26:20.163Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:31:20.152Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185654,"blks_read":1334,"cache_hit_pct":99.29,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":128337,"tup_inserted":153,"tup_returned":644890,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:31:20.154Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:36:20.166Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187272,"blks_read":1336,"cache_hit_pct":99.29,"commits":1977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":129385,"tup_inserted":154,"tup_returned":652064,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:36:20.168Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:41:20.168Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":188834,"blks_read":1336,"cache_hit_pct":99.3,"commits":1995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":130407,"tup_inserted":155,"tup_returned":659208,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:41:20.168Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:46:20.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190396,"blks_read":1336,"cache_hit_pct":99.3,"commits":2013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":131429,"tup_inserted":156,"tup_returned":666352,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:46:20.170Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:51:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":192016,"blks_read":1336,"cache_hit_pct":99.31,"commits":2032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":132477,"tup_inserted":157,"tup_returned":673526,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:51:20.190Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:56:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193578,"blks_read":1336,"cache_hit_pct":99.31,"commits":2050,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":133499,"tup_inserted":158,"tup_returned":680670,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:56:20.189Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:01:20.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195064,"blks_read":1336,"cache_hit_pct":99.32,"commits":2066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":134506,"tup_inserted":159,"tup_returned":686575,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:01:20.179Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} From 862885c02ccd17f4ade2ca3e462967b8cb06169c Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Tue, 7 Apr 2026 19:39:54 +0200 Subject: [PATCH 11/47] fix: recordings persist after reload, set deleted false on create --- backend/db/models/recording.js | 1 + backend/db/models/trace.js | 1 + backend/webserver/sockets/recorder.js | 1 + logs/activity.log | 4 ++++ logs/complete.log | 4 ++++ 5 files changed, 11 insertions(+) diff --git a/backend/db/models/recording.js b/backend/db/models/recording.js index ef4d4a438..71be86417 100644 --- a/backend/db/models/recording.js +++ b/backend/db/models/recording.js @@ -5,6 +5,7 @@ module.exports = (sequelize, DataTypes) => { class Recording extends MetaModel { static autoTable = true; static fields = []; + static publicTable = true; static associate(models) { Recording.belongsTo(models["user"], { diff --git a/backend/db/models/trace.js b/backend/db/models/trace.js index 121dbc6c6..5870568e3 100644 --- a/backend/db/models/trace.js +++ b/backend/db/models/trace.js @@ -5,6 +5,7 @@ module.exports = (sequelize, DataTypes) => { class Trace extends MetaModel { static autoTable = true; static fields = []; + static publicTable = true; static associate(models) { Trace.belongsTo(models["recording"], { diff --git a/backend/webserver/sockets/recorder.js b/backend/webserver/sockets/recorder.js index 8a422ae09..3577ee788 100644 --- a/backend/webserver/sockets/recorder.js +++ b/backend/webserver/sockets/recorder.js @@ -31,6 +31,7 @@ class RecorderSocket extends Socket { status: "recording", startTime: new Date(), userId: this.userId, + deleted: false, }, options); this.isRecording = true; diff --git a/logs/activity.log b/logs/activity.log index f40e0241d..abb31223b 100644 --- a/logs/activity.log +++ b/logs/activity.log @@ -1072,3 +1072,7 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:21:20.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201428,"blks_read":1336,"cache_hit_pct":99.34,"commits":2140,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":138646,"tup_inserted":163,"tup_returned":715211,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:21:20.209Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} diff --git a/logs/complete.log b/logs/complete.log index 1d498d62f..d4b06624c 100644 --- a/logs/complete.log +++ b/logs/complete.log @@ -1072,3 +1072,7 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:21:20.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201428,"blks_read":1336,"cache_hit_pct":99.34,"commits":2140,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":138646,"tup_inserted":163,"tup_returned":715211,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:21:20.209Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} From 7bb50f14f370aebfa0f842d9def61ef063d508af Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Wed, 8 Apr 2026 18:09:46 +0200 Subject: [PATCH 12/47] refactor: remove catch-all listeners by reference instead of nuking all --- backend/webserver/sockets/recorder.js | 32 ++++++++++++++++++--------- logs/activity.log | 19 ++++++++++++++++ logs/complete.log | 19 ++++++++++++++++ 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/backend/webserver/sockets/recorder.js b/backend/webserver/sockets/recorder.js index 3577ee788..891feb601 100644 --- a/backend/webserver/sockets/recorder.js +++ b/backend/webserver/sockets/recorder.js @@ -12,6 +12,8 @@ class RecorderSocket extends Socket { super(server, io, socket); this.isRecording = false; this.currentRecordingId = null; + this.incomingHandler = null; + this.outgoingHandler = null; } /** @@ -31,14 +33,14 @@ class RecorderSocket extends Socket { status: "recording", startTime: new Date(), userId: this.userId, - deleted: false, }, options); this.isRecording = true; this.currentRecordingId = recording.id; - // Catch all incoming events (frontend -> backend) - this.socket.onAny(async (eventName, ...args) => { + // Store handlers as instance properties so we can detach + // exactly these listeners later (instead of nuking all catch-alls) + this.incomingHandler = async (eventName, ...args) => { if (!this.isRecording) return; try { await this.models["trace"].add({ @@ -52,10 +54,9 @@ class RecorderSocket extends Socket { } catch (err) { this.logger.error("Failed to save trace: " + err.message); } - }); + }; - // Catch all outgoing events (backend -> frontend) - this.socket.onAnyOutgoing(async (eventName, ...args) => { + this.outgoingHandler = async (eventName, ...args) => { if (!this.isRecording) return; try { await this.models["trace"].add({ @@ -69,7 +70,10 @@ class RecorderSocket extends Socket { } catch (err) { this.logger.error("Failed to save trace: " + err.message); } - }); + }; + + this.socket.onAny(this.incomingHandler); + this.socket.onAnyOutgoing(this.outgoingHandler); this.sendToast("Recording started", "Socket Profiler", "success"); return recording.id; @@ -90,10 +94,16 @@ class RecorderSocket extends Socket { throw new Error("No active recording"); } - // Remove catch-all listeners FIRST so the recorderStop event - // itself doesn't keep spawning new trace writes - this.socket.offAny(); - this.socket.offAnyOutgoing(); + // Remove only OUR catch-all listeners, by reference, + // so we don't stomp on any catch-alls registered elsewhere + if (this.incomingHandler) { + this.socket.offAny(this.incomingHandler); + this.incomingHandler = null; + } + if (this.outgoingHandler) { + this.socket.offAnyOutgoing(this.outgoingHandler); + this.outgoingHandler = null; + } // Update recording status and end time await this.models["recording"].updateById( diff --git a/logs/activity.log b/logs/activity.log index abb31223b..ee99bbe27 100644 --- a/logs/activity.log +++ b/logs/activity.log @@ -1076,3 +1076,22 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:41:20.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207734,"blks_read":1336,"cache_hit_pct":99.36,"commits":2213,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":142760,"tup_inserted":167,"tup_returned":743817,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:41:20.223Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:46:20.214Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209296,"blks_read":1336,"cache_hit_pct":99.37,"commits":2231,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":143782,"tup_inserted":168,"tup_returned":750961,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:46:20.215Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:51:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":210916,"blks_read":1336,"cache_hit_pct":99.37,"commits":2250,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":144830,"tup_inserted":169,"tup_returned":758135,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:51:20.236Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:56:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212478,"blks_read":1336,"cache_hit_pct":99.38,"commits":2268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":145852,"tup_inserted":170,"tup_returned":765279,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:56:20.235Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:01:20.228Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214040,"blks_read":1336,"cache_hit_pct":99.38,"commits":2286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":146874,"tup_inserted":171,"tup_returned":772423,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:01:20.228Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:06:20.252Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215660,"blks_read":1336,"cache_hit_pct":99.38,"commits":2305,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":147922,"tup_inserted":172,"tup_returned":779597,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:06:20.252Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-07T18:08:00.787Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T18:08:00.791Z"} +{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-08T16:07:57.269Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.277Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-08T16:07:57.252Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.278Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.280Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} diff --git a/logs/complete.log b/logs/complete.log index d4b06624c..2199d2f74 100644 --- a/logs/complete.log +++ b/logs/complete.log @@ -1076,3 +1076,22 @@ {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:41:20.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207734,"blks_read":1336,"cache_hit_pct":99.36,"commits":2213,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":142760,"tup_inserted":167,"tup_returned":743817,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:41:20.223Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:46:20.214Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209296,"blks_read":1336,"cache_hit_pct":99.37,"commits":2231,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":143782,"tup_inserted":168,"tup_returned":750961,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:46:20.215Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:51:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":210916,"blks_read":1336,"cache_hit_pct":99.37,"commits":2250,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":144830,"tup_inserted":169,"tup_returned":758135,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:51:20.236Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:56:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212478,"blks_read":1336,"cache_hit_pct":99.38,"commits":2268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":145852,"tup_inserted":170,"tup_returned":765279,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:56:20.235Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:01:20.228Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214040,"blks_read":1336,"cache_hit_pct":99.38,"commits":2286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":146874,"tup_inserted":171,"tup_returned":772423,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:01:20.228Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:06:20.252Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215660,"blks_read":1336,"cache_hit_pct":99.38,"commits":2305,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":147922,"tup_inserted":172,"tup_returned":779597,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:06:20.252Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-07T18:08:00.787Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T18:08:00.791Z"} +{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-08T16:07:57.269Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-08T16:07:57.252Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.280Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.277Z"} +{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.278Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} +{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} From becee70ae5f9c5ff2bfae180ace8eb44165298ba Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Wed, 8 Apr 2026 18:58:42 +0200 Subject: [PATCH 13/47] fix: default deleted to false on recording and trace models --- backend/db/models/recording.js | 2 +- backend/db/models/trace.js | 2 +- logs/activity.log | 10 ++++++++++ logs/complete.log | 10 ++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/backend/db/models/recording.js b/backend/db/models/recording.js index 71be86417..dc6ed2886 100644 --- a/backend/db/models/recording.js +++ b/backend/db/models/recording.js @@ -26,7 +26,7 @@ module.exports = (sequelize, DataTypes) => { startTime: DataTypes.DATE, endTime: DataTypes.DATE, userId: DataTypes.INTEGER, - deleted: DataTypes.BOOLEAN, + deleted: { type: DataTypes.BOOLEAN, defaultValue: false }, deletedAt: DataTypes.DATE, createdAt: DataTypes.DATE, updatedAt: DataTypes.DATE, diff --git a/backend/db/models/trace.js b/backend/db/models/trace.js index 5870568e3..cd6359cfc 100644 --- a/backend/db/models/trace.js +++ b/backend/db/models/trace.js @@ -23,7 +23,7 @@ module.exports = (sequelize, DataTypes) => { direction: DataTypes.BOOLEAN, startTime: DataTypes.DATE, endTime: DataTypes.DATE, - deleted: DataTypes.BOOLEAN, + deleted: { type: DataTypes.BOOLEAN, defaultValue: false }, deletedAt: DataTypes.DATE, createdAt: DataTypes.DATE, updatedAt: DataTypes.DATE, diff --git a/logs/activity.log b/logs/activity.log index ee99bbe27..1f03eaefe 100644 --- a/logs/activity.log +++ b/logs/activity.log @@ -1095,3 +1095,13 @@ {"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} {"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:12:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233821,"blks_read":1766,"cache_hit_pct":99.25,"commits":2440,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":162139,"tup_inserted":184,"tup_returned":804351,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:12:57.317Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:17:57.328Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":235383,"blks_read":1766,"cache_hit_pct":99.26,"commits":2458,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":163161,"tup_inserted":185,"tup_returned":811495,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:17:57.328Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:22:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236945,"blks_read":1766,"cache_hit_pct":99.26,"commits":2476,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":164183,"tup_inserted":186,"tup_returned":818639,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:22:57.316Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:27:57.338Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238564,"blks_read":1771,"cache_hit_pct":99.26,"commits":2495,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":165231,"tup_inserted":187,"tup_returned":825813,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:27:57.339Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:32:57.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240126,"blks_read":1771,"cache_hit_pct":99.27,"commits":2513,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":166253,"tup_inserted":188,"tup_returned":832957,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:32:57.337Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:38:03.448Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241688,"blks_read":1771,"cache_hit_pct":99.27,"commits":2531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":167275,"tup_inserted":189,"tup_returned":840101,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:38:03.448Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:43:03.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243308,"blks_read":1771,"cache_hit_pct":99.28,"commits":2550,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":168323,"tup_inserted":190,"tup_returned":847271,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:43:03.494Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:48:03.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244870,"blks_read":1771,"cache_hit_pct":99.28,"commits":2568,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":169345,"tup_inserted":191,"tup_returned":854415,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:48:03.475Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:53:03.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246432,"blks_read":1771,"cache_hit_pct":99.29,"commits":2586,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":170367,"tup_inserted":192,"tup_returned":861559,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:53:03.463Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:58:03.488Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":248052,"blks_read":1771,"cache_hit_pct":99.29,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":171415,"tup_inserted":193,"tup_returned":868729,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:58:03.488Z"} diff --git a/logs/complete.log b/logs/complete.log index 2199d2f74..b39cc4343 100644 --- a/logs/complete.log +++ b/logs/complete.log @@ -1095,3 +1095,13 @@ {"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} {"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} {"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:12:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233821,"blks_read":1766,"cache_hit_pct":99.25,"commits":2440,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":162139,"tup_inserted":184,"tup_returned":804351,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:12:57.317Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:17:57.328Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":235383,"blks_read":1766,"cache_hit_pct":99.26,"commits":2458,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":163161,"tup_inserted":185,"tup_returned":811495,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:17:57.328Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:22:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236945,"blks_read":1766,"cache_hit_pct":99.26,"commits":2476,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":164183,"tup_inserted":186,"tup_returned":818639,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:22:57.316Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:27:57.338Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238564,"blks_read":1771,"cache_hit_pct":99.26,"commits":2495,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":165231,"tup_inserted":187,"tup_returned":825813,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:27:57.339Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:32:57.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240126,"blks_read":1771,"cache_hit_pct":99.27,"commits":2513,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":166253,"tup_inserted":188,"tup_returned":832957,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:32:57.337Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:38:03.448Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241688,"blks_read":1771,"cache_hit_pct":99.27,"commits":2531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":167275,"tup_inserted":189,"tup_returned":840101,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:38:03.448Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:43:03.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243308,"blks_read":1771,"cache_hit_pct":99.28,"commits":2550,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":168323,"tup_inserted":190,"tup_returned":847271,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:43:03.494Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:48:03.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244870,"blks_read":1771,"cache_hit_pct":99.28,"commits":2568,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":169345,"tup_inserted":191,"tup_returned":854415,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:48:03.475Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:53:03.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246432,"blks_read":1771,"cache_hit_pct":99.29,"commits":2586,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":170367,"tup_inserted":192,"tup_returned":861559,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:53:03.463Z"} +{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:58:03.488Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":248052,"blks_read":1771,"cache_hit_pct":99.29,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":171415,"tup_inserted":193,"tup_returned":868729,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:58:03.488Z"} From c24ac5a939e026b726e82293f1cfa0a51e88837c Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 13 Apr 2026 01:24:40 +0200 Subject: [PATCH 14/47] chore: stop tracking root logs directory --- .gitignore | 1 + logs/activity.log | 1107 --------------------------------------------- logs/complete.log | 1107 --------------------------------------------- logs/error.log | 174 ------- 4 files changed, 1 insertion(+), 2388 deletions(-) delete mode 100644 logs/activity.log delete mode 100644 logs/complete.log delete mode 100644 logs/error.log diff --git a/.gitignore b/.gitignore index 74c59fa64..b3aefdb0d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ backend/sessions backend/node_modules backend/logs backend/coverage +logs/ # ignore build files dist/ diff --git a/logs/activity.log b/logs/activity.log deleted file mode 100644 index 1f03eaefe..000000000 --- a/logs/activity.log +++ /dev/null @@ -1,1107 +0,0 @@ -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-01T18:38:11.923Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-01T18:38:11.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-01T18:38:11.932Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-01T18:38:11.934Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-01T18:38:11.915Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-01T18:38:11.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-01T18:38:11.932Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-01T18:38:11.935Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-01T18:38:11.977Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-01T18:38:11.983Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:38:11.989Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70513,"blks_read":26,"cache_hit_pct":99.96,"commits":919,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":151,"tup_fetched":54148,"tup_inserted":3683,"tup_returned":102524,"tup_updated":274},"locks":{"byMode":[{"count":4,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":6,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:38:11.989Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-01T18:38:48.627Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T18:38:51.938Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T18:38:52.049Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:43:11.939Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93431,"blks_read":37,"cache_hit_pct":99.96,"commits":1161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":70219,"tup_inserted":3870,"tup_returned":125415,"tup_updated":400},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:43:11.940Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:48:11.975Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94991,"blks_read":37,"cache_hit_pct":99.96,"commits":1179,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":71241,"tup_inserted":3871,"tup_returned":132559,"tup_updated":400},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:48:11.975Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:10:26.747Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.817Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.819Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table user without access rights","timestamp":"2026-03-01T19:10:30.845Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.653Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.660Z","userId":3} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:13:23.247Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:13:33.583Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":108360,"blks_read":43,"cache_hit_pct":99.96,"commits":1314,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":79733,"tup_inserted":3985,"tup_returned":147886,"tup_updated":406},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:13:33.583Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.518Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.520Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table user without access rights","timestamp":"2026-03-01T19:13:43.407Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table study_step without access rights","timestamp":"2026-03-01T19:13:43.410Z","userId":3} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:15:28.364Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.025Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.026Z","userId":3} -{"caller":{"column":21,"file":"pdfRPC.js","filePath":"/content-server/backend/webserver/rpcs/pdfRPC.js","function":"PDFRPC.request","line":33},"level":"info","message":"Calling RPC service with request: deleteAllAnnotations","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:15:42.989Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.emit","line":158},"level":"info","message":"Emitting event to RPC service...","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:15:42.990Z"} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:16:12.988Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:18:33.603Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114435,"blks_read":44,"cache_hit_pct":99.96,"commits":1400,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":83542,"tup_inserted":4013,"tup_returned":158072,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:18:33.604Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:23:33.595Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":116616,"blks_read":44,"cache_hit_pct":99.96,"commits":1421,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":84829,"tup_inserted":4057,"tup_returned":165612,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:23:33.595Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:28:33.592Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":118176,"blks_read":44,"cache_hit_pct":99.96,"commits":1439,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":85851,"tup_inserted":4058,"tup_returned":172756,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:28:33.593Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:33:33.620Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":119725,"blks_read":44,"cache_hit_pct":99.96,"commits":1456,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":86883,"tup_inserted":4059,"tup_returned":178690,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:33:33.621Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:38:01.532Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T20:13:24.533Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":123233,"blks_read":44,"cache_hit_pct":99.96,"commits":1497,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":89137,"tup_inserted":4064,"tup_returned":188402,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T20:13:24.534Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T05:01:15.638Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":124793,"blks_read":44,"cache_hit_pct":99.96,"commits":1515,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":90159,"tup_inserted":4065,"tup_returned":195546,"tup_updated":418},"locks":{"byMode":[{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"RowExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":4,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T05:01:15.638Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T12:10:07.090Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":126418,"blks_read":44,"cache_hit_pct":99.97,"commits":1534,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":91206,"tup_inserted":4066,"tup_returned":202719,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T12:10:07.090Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T12:31:55.892Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T13:41:18.825Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:20:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":128464,"blks_read":44,"cache_hit_pct":99.97,"commits":1558,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":92666,"tup_inserted":4069,"tup_returned":210305,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:20:37.582Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:25:37.567Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":130024,"blks_read":44,"cache_hit_pct":99.97,"commits":1576,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":93688,"tup_inserted":4070,"tup_returned":217449,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:25:37.567Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:30:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":131649,"blks_read":44,"cache_hit_pct":99.97,"commits":1595,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":94735,"tup_inserted":4071,"tup_returned":224622,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:30:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:35:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":133209,"blks_read":44,"cache_hit_pct":99.97,"commits":1613,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":95757,"tup_inserted":4072,"tup_returned":231766,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:35:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:40:37.573Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":134769,"blks_read":44,"cache_hit_pct":99.97,"commits":1631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":96779,"tup_inserted":4073,"tup_returned":238910,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:40:37.573Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:45:37.596Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":136394,"blks_read":44,"cache_hit_pct":99.97,"commits":1650,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":97826,"tup_inserted":4074,"tup_returned":246083,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:45:37.596Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:50:37.609Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":137954,"blks_read":44,"cache_hit_pct":99.97,"commits":1668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":98848,"tup_inserted":4075,"tup_returned":253227,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:50:37.610Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:55:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140006,"blks_read":44,"cache_hit_pct":99.97,"commits":1688,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":100228,"tup_inserted":4086,"tup_returned":260730,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:55:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:00:37.611Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":141631,"blks_read":44,"cache_hit_pct":99.97,"commits":1707,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":101275,"tup_inserted":4087,"tup_returned":267903,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:00:37.612Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:05:37.597Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143191,"blks_read":44,"cache_hit_pct":99.97,"commits":1725,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":102297,"tup_inserted":4088,"tup_returned":275047,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:05:37.597Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:10:37.598Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":144751,"blks_read":44,"cache_hit_pct":99.97,"commits":1743,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":103319,"tup_inserted":4089,"tup_returned":282191,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:10:37.599Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:15:37.616Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146376,"blks_read":44,"cache_hit_pct":99.97,"commits":1762,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":104366,"tup_inserted":4090,"tup_returned":289364,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:15:37.616Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:20:37.628Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":147936,"blks_read":44,"cache_hit_pct":99.97,"commits":1780,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":105388,"tup_inserted":4091,"tup_returned":296508,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:20:37.628Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:25:37.614Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":149496,"blks_read":44,"cache_hit_pct":99.97,"commits":1798,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":106410,"tup_inserted":4092,"tup_returned":303652,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:25:37.615Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:30:37.641Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":151121,"blks_read":44,"cache_hit_pct":99.97,"commits":1817,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":107457,"tup_inserted":4093,"tup_returned":310825,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:30:37.642Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:35:37.651Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":152681,"blks_read":44,"cache_hit_pct":99.97,"commits":1835,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":108479,"tup_inserted":4094,"tup_returned":317969,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:35:37.651Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:40:37.649Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":154241,"blks_read":44,"cache_hit_pct":99.97,"commits":1853,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":109501,"tup_inserted":4095,"tup_returned":325113,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:40:37.650Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:45:38.181Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":155866,"blks_read":44,"cache_hit_pct":99.97,"commits":1872,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":110548,"tup_inserted":4096,"tup_returned":332286,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:45:38.182Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:51:53.200Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":157426,"blks_read":44,"cache_hit_pct":99.97,"commits":1890,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":111570,"tup_inserted":4097,"tup_returned":339430,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:51:53.200Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:59:32.372Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":158986,"blks_read":44,"cache_hit_pct":99.97,"commits":1908,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":112592,"tup_inserted":4098,"tup_returned":346574,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:59:32.372Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T16:04:32.377Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":160611,"blks_read":44,"cache_hit_pct":99.97,"commits":1927,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":113639,"tup_inserted":4099,"tup_returned":353747,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T16:04:32.378Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:15:21.050Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:31:06.281Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:31:07.562Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T16:31:19.987Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":162511,"blks_read":44,"cache_hit_pct":99.97,"commits":1948,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":115069,"tup_inserted":4103,"tup_returned":358855,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T16:31:19.987Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:32:17.029Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:32:25.713Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:42:48.853Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:43:29.397Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:47:19.872Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T17:01:26.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:04:52.978Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T17:04:54.264Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T17:04:57.540Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":165519,"blks_read":44,"cache_hit_pct":99.97,"commits":1984,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":117405,"tup_inserted":4112,"tup_returned":366104,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T17:04:57.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:06:44.692Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T21:08:48.837Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":167098,"blks_read":44,"cache_hit_pct":99.97,"commits":2004,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":118437,"tup_inserted":4114,"tup_returned":373259,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T21:08:48.837Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T00:32:32.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":168659,"blks_read":44,"cache_hit_pct":99.97,"commits":2022,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":119459,"tup_inserted":4115,"tup_returned":380403,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T00:32:32.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T07:02:24.245Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":170144,"blks_read":44,"cache_hit_pct":99.97,"commits":2038,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":120466,"tup_inserted":4116,"tup_returned":386308,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T07:02:24.246Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T09:51:49.877Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:07:16.781Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:11:35.764Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:11:43.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":172693,"blks_read":44,"cache_hit_pct":99.97,"commits":2064,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":122340,"tup_inserted":4120,"tup_returned":393089,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:11:43.820Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:14:54.156Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:14:55.150Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:16:48.960Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:16:49.643Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:19:24.743Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":174247,"blks_read":44,"cache_hit_pct":99.97,"commits":2088,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":123396,"tup_inserted":4125,"tup_returned":400270,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:19:24.744Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:26:05.259Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:26:06.234Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:28:01.215Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":176056,"blks_read":44,"cache_hit_pct":99.98,"commits":2110,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":124637,"tup_inserted":4128,"tup_returned":407635,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:28:01.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:33:21.227Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":177682,"blks_read":44,"cache_hit_pct":99.98,"commits":2129,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":125684,"tup_inserted":4129,"tup_returned":414804,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:33:21.227Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:04.351Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:05.367Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:11.398Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:13.034Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:39:29.169Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:39:30.933Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:42:03.151Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:42:04.757Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:05:36.053Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T11:05:37.140Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:08:00.529Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":180167,"blks_read":44,"cache_hit_pct":99.98,"commits":2163,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":127567,"tup_inserted":4140,"tup_returned":421593,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:08:00.530Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:13:00.518Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":181728,"blks_read":44,"cache_hit_pct":99.98,"commits":2181,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":128589,"tup_inserted":4141,"tup_returned":428737,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:13:00.518Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:18:00.529Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185391,"blks_read":44,"cache_hit_pct":99.98,"commits":2204,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":130741,"tup_inserted":4142,"tup_returned":437094,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:18:00.529Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:23:00.546Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":186952,"blks_read":44,"cache_hit_pct":99.98,"commits":2222,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":131763,"tup_inserted":4143,"tup_returned":444238,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:23:00.547Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:27:42.699Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T11:27:55.976Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:28:00.542Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":189052,"blks_read":44,"cache_hit_pct":99.98,"commits":2246,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":133238,"tup_inserted":4146,"tup_returned":451838,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:28:00.543Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:33:00.557Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190387,"blks_read":44,"cache_hit_pct":99.98,"commits":2263,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":134051,"tup_inserted":4147,"tup_returned":458772,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:33:00.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:38:00.542Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":191948,"blks_read":44,"cache_hit_pct":99.98,"commits":2281,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":135073,"tup_inserted":4148,"tup_returned":465916,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:38:00.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:43:00.547Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193509,"blks_read":44,"cache_hit_pct":99.98,"commits":2299,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":136095,"tup_inserted":4149,"tup_returned":473060,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:43:00.548Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:48:00.583Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195135,"blks_read":44,"cache_hit_pct":99.98,"commits":2318,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":137142,"tup_inserted":4150,"tup_returned":480229,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:48:00.585Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:53:00.580Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196696,"blks_read":44,"cache_hit_pct":99.98,"commits":2336,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":138164,"tup_inserted":4151,"tup_returned":487373,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:53:00.580Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:58:00.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198257,"blks_read":44,"cache_hit_pct":99.98,"commits":2354,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":139186,"tup_inserted":4152,"tup_returned":494517,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:58:00.568Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:03:00.570Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199883,"blks_read":44,"cache_hit_pct":99.98,"commits":2373,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":140233,"tup_inserted":4153,"tup_returned":501686,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:03:00.571Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:08:00.592Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201444,"blks_read":44,"cache_hit_pct":99.98,"commits":2391,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":141255,"tup_inserted":4154,"tup_returned":508830,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:08:00.593Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:14:32.711Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T12:14:34.294Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:18:46.395Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":203177,"blks_read":44,"cache_hit_pct":99.98,"commits":2411,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":142481,"tup_inserted":4157,"tup_returned":514956,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:18:46.395Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:23:46.422Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204803,"blks_read":44,"cache_hit_pct":99.98,"commits":2430,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":143528,"tup_inserted":4158,"tup_returned":522125,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:23:46.422Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:28:46.413Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206364,"blks_read":44,"cache_hit_pct":99.98,"commits":2448,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":144550,"tup_inserted":4159,"tup_returned":529269,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:28:46.414Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:33:46.402Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207925,"blks_read":44,"cache_hit_pct":99.98,"commits":2466,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":145572,"tup_inserted":4160,"tup_returned":536413,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:33:46.403Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:38:46.420Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209551,"blks_read":44,"cache_hit_pct":99.98,"commits":2485,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":146619,"tup_inserted":4161,"tup_returned":543582,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:38:46.421Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:56:01.703Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T12:56:03.193Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:58:10.184Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":211286,"blks_read":44,"cache_hit_pct":99.98,"commits":2505,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":147845,"tup_inserted":4164,"tup_returned":549708,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:58:10.184Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:03:10.138Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212847,"blks_read":44,"cache_hit_pct":99.98,"commits":2523,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":148867,"tup_inserted":4165,"tup_returned":556852,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:03:10.138Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:08:10.171Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214473,"blks_read":44,"cache_hit_pct":99.98,"commits":2542,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":149914,"tup_inserted":4166,"tup_returned":564021,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:08:10.171Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:13:10.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":216034,"blks_read":44,"cache_hit_pct":99.98,"commits":2560,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":150936,"tup_inserted":4167,"tup_returned":571165,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:13:10.186Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:17:36.119Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T13:17:36.850Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:21:25.200Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":217843,"blks_read":44,"cache_hit_pct":99.98,"commits":2582,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":152177,"tup_inserted":4170,"tup_returned":578530,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:21:25.200Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:32:49.720Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T13:32:50.822Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:33:22.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":219717,"blks_read":44,"cache_hit_pct":99.98,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":153443,"tup_inserted":4173,"tup_returned":585920,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:33:22.192Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:38:22.202Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":221278,"blks_read":44,"cache_hit_pct":99.98,"commits":2623,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":154465,"tup_inserted":4174,"tup_returned":593064,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:38:22.202Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:43:22.193Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222839,"blks_read":44,"cache_hit_pct":99.98,"commits":2641,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":155487,"tup_inserted":4175,"tup_returned":600208,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:43:22.194Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:48:22.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":224465,"blks_read":44,"cache_hit_pct":99.98,"commits":2660,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":156534,"tup_inserted":4176,"tup_returned":607377,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:48:22.208Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:11:10.614Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T14:11:11.736Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T14:43:25.667Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":226274,"blks_read":44,"cache_hit_pct":99.98,"commits":2682,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":157775,"tup_inserted":4179,"tup_returned":614742,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T14:43:25.668Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:43:37.534Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T14:43:39.297Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:08:15.541Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:08:16.916Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:08.829Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:10.023Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:21.006Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:22.475Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:50:46.664Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:50:47.722Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:09:58.753Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:10:00.316Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:12.851Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:25.735Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T16:32:36.983Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":229862,"blks_read":44,"cache_hit_pct":99.98,"commits":2730,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":160564,"tup_inserted":4194,"tup_returned":623668,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T16:32:36.984Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:33:23.147Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:35:06.957Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:35:08.721Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:38:26.725Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:38:45.572Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:01.861Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:02.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:47.503Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:45:13.350Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T16:56:59.140Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233482,"blks_read":44,"cache_hit_pct":99.98,"commits":2774,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":163293,"tup_inserted":4204,"tup_returned":633757,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T16:56:59.140Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:57:21.230Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:57:49.362Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:00:54.150Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:00:55.648Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:06:09.779Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:11:44.002Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:28:47.333Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:28:48.269Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T17:58:37.732Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236591,"blks_read":44,"cache_hit_pct":99.98,"commits":2814,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":165644,"tup_inserted":4213,"tup_returned":643466,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T17:58:37.733Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:58:41.750Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:58:42.637Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T18:16:47.042Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T19:24:55.999Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238328,"blks_read":44,"cache_hit_pct":99.98,"commits":2835,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":166870,"tup_inserted":4217,"tup_returned":649592,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T19:24:55.999Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T22:58:34.671Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240030,"blks_read":44,"cache_hit_pct":99.98,"commits":2856,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":167932,"tup_inserted":4218,"tup_returned":658000,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T22:58:34.672Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:06:56.082Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241439,"blks_read":44,"cache_hit_pct":99.98,"commits":2870,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":168924,"tup_inserted":4219,"tup_returned":662666,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:06:56.082Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:11:56.090Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243000,"blks_read":44,"cache_hit_pct":99.98,"commits":2888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":169946,"tup_inserted":4220,"tup_returned":669810,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:11:56.090Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:16:56.108Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244626,"blks_read":44,"cache_hit_pct":99.98,"commits":2907,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":170993,"tup_inserted":4221,"tup_returned":676979,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:16:56.109Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:21:56.106Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246187,"blks_read":44,"cache_hit_pct":99.98,"commits":2925,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":172015,"tup_inserted":4222,"tup_returned":684123,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:21:56.107Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:26:56.092Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":247748,"blks_read":44,"cache_hit_pct":99.98,"commits":2943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":173037,"tup_inserted":4223,"tup_returned":691267,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:26:56.094Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:31:56.113Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":249376,"blks_read":44,"cache_hit_pct":99.98,"commits":2962,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":174084,"tup_inserted":4224,"tup_returned":698436,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:31:56.113Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:36:56.114Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":250941,"blks_read":44,"cache_hit_pct":99.98,"commits":2980,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":175106,"tup_inserted":4225,"tup_returned":705580,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:36:56.114Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:41:56.106Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":252502,"blks_read":44,"cache_hit_pct":99.98,"commits":2998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":176128,"tup_inserted":4226,"tup_returned":712724,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:41:56.106Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:46:56.126Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":254128,"blks_read":44,"cache_hit_pct":99.98,"commits":3017,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":177175,"tup_inserted":4227,"tup_returned":719893,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:46:56.127Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:51:56.120Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":255689,"blks_read":44,"cache_hit_pct":99.98,"commits":3035,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":178197,"tup_inserted":4228,"tup_returned":727037,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:51:56.121Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:56:56.129Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":257250,"blks_read":44,"cache_hit_pct":99.98,"commits":3053,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":179219,"tup_inserted":4229,"tup_returned":734181,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:56:56.130Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T01:01:56.154Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":258876,"blks_read":44,"cache_hit_pct":99.98,"commits":3072,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":180266,"tup_inserted":4230,"tup_returned":741350,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T01:01:56.155Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T01:06:56.146Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":260437,"blks_read":44,"cache_hit_pct":99.98,"commits":3090,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":181288,"tup_inserted":4231,"tup_returned":748494,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T01:06:56.146Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-04T15:00:57.606Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-04T15:00:57.614Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-04T15:00:57.595Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-04T15:00:57.615Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-04T15:00:57.617Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-04T15:00:57.660Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-04T15:00:57.662Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:00:57.670Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5755,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:00:57.670Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:00:57.737Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:05:57.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17171,"blks_read":426,"cache_hit_pct":97.58,"commits":125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13402,"tup_inserted":12,"tup_returned":21491,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:05:57.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:10:57.640Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18732,"blks_read":426,"cache_hit_pct":97.78,"commits":143,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14424,"tup_inserted":13,"tup_returned":28635,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:10:57.640Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:12:44.213Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:12:45.548Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:25:04.002Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:25:05.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:32:54.070Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20713,"blks_read":426,"cache_hit_pct":97.98,"commits":167,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15869,"tup_inserted":18,"tup_returned":34982,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:32:54.070Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:35:36.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:35:37.531Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:40:39.404Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22583,"blks_read":430,"cache_hit_pct":98.13,"commits":190,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17135,"tup_inserted":21,"tup_returned":42372,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:40:39.404Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:27.591Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:28.774Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:39.476Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:41.069Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:58:01.981Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:58:03.231Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T16:02:01.924Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":24888,"blks_read":430,"cache_hit_pct":98.3,"commits":220,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18814,"tup_inserted":28,"tup_returned":50179,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T16:02:01.925Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:05:44.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:05:46.164Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:18:13.912Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:18:21.437Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T16:20:52.253Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26945,"blks_read":430,"cache_hit_pct":98.43,"commits":246,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20274,"tup_inserted":33,"tup_returned":57765,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T16:20:52.253Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:21:13.812Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:21:15.086Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:22:31.326Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:34:40.377Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:42:55.438Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:21.418Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:21.422Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:23.655Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:52:22.996Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T17:40:50.701Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":30047,"blks_read":430,"cache_hit_pct":98.59,"commits":286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22635,"tup_inserted":43,"tup_returned":66260,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T17:40:50.702Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T01:53:29.522Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31608,"blks_read":430,"cache_hit_pct":98.66,"commits":304,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23657,"tup_inserted":44,"tup_returned":73404,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T01:53:29.523Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T11:55:40.171Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":33169,"blks_read":430,"cache_hit_pct":98.72,"commits":322,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24679,"tup_inserted":45,"tup_returned":80548,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T11:55:40.171Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T12:47:25.821Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T12:58:56.856Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T12:59:06.916Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:10:37.246Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":35363,"blks_read":430,"cache_hit_pct":98.8,"commits":350,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26179,"tup_inserted":49,"tup_returned":89398,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:10:37.246Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:15:37.244Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36924,"blks_read":430,"cache_hit_pct":98.85,"commits":368,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27201,"tup_inserted":50,"tup_returned":96542,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:15:37.245Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:24:03.088Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:24:03.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38485,"blks_read":430,"cache_hit_pct":98.9,"commits":386,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":28223,"tup_inserted":51,"tup_returned":103686,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:24:03.581Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:24:04.782Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:36:16.530Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:36:18.017Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:42:33.365Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40216,"blks_read":431,"cache_hit_pct":98.94,"commits":407,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29459,"tup_inserted":56,"tup_returned":108598,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:42:33.365Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-05T13:47:28.146Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-05T13:47:28.163Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:47:28.171Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-05T13:47:47.572Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-05T13:47:47.581Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-05T13:47:47.580Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-05T13:47:47.582Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-05T13:47:47.558Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-05T13:47:47.582Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-05T13:47:47.583Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-05T13:47:47.580Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-05T13:47:47.624Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-05T13:47:47.627Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:47:47.634Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":47086,"blks_read":776,"cache_hit_pct":98.38,"commits":443,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":33957,"tup_inserted":57,"tup_returned":121480,"tup_updated":0},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:47:47.634Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:47:47.720Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:52:47.604Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":59335,"blks_read":871,"cache_hit_pct":98.55,"commits":553,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":44207,"tup_inserted":69,"tup_returned":138780,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:52:47.604Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:58:27.634Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:58:28.447Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:59:48.521Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:59:49.786Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:02:22.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:02:23.323Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:04:29.892Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":61564,"blks_read":871,"cache_hit_pct":98.6,"commits":581,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":45871,"tup_inserted":76,"tup_returned":145348,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:04:29.892Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:18:31.136Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:18:32.129Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:20:00.267Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63373,"blks_read":871,"cache_hit_pct":98.64,"commits":603,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":47112,"tup_inserted":79,"tup_returned":152713,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:20:00.267Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:20:52.611Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:20:53.380Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:25:59.091Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":65243,"blks_read":875,"cache_hit_pct":98.68,"commits":626,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":48378,"tup_inserted":82,"tup_returned":160103,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:25:59.091Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:32:24.849Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:32:25.649Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66804,"blks_read":875,"cache_hit_pct":98.71,"commits":644,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":49400,"tup_inserted":83,"tup_returned":167247,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:32:25.649Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:32:26.113Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:08:26.633Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:08:27.487Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:09:20.760Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68621,"blks_read":875,"cache_hit_pct":98.74,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":50641,"tup_inserted":88,"tup_returned":174612,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:09:20.760Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:14:20.792Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70247,"blks_read":875,"cache_hit_pct":98.77,"commits":687,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":51688,"tup_inserted":89,"tup_returned":181781,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:14:20.792Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:19:20.786Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71808,"blks_read":875,"cache_hit_pct":98.8,"commits":705,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":52710,"tup_inserted":90,"tup_returned":188925,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:19:20.787Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:24:20.777Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":73369,"blks_read":875,"cache_hit_pct":98.82,"commits":723,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":53732,"tup_inserted":91,"tup_returned":196069,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:24:20.778Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:25:04.254Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:25:05.708Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:37:21.233Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:37:21.928Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:40:51.351Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":75491,"blks_read":875,"cache_hit_pct":98.85,"commits":750,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":55217,"tup_inserted":96,"tup_returned":203680,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:40:51.351Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:45:51.358Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":77052,"blks_read":875,"cache_hit_pct":98.88,"commits":768,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":56239,"tup_inserted":97,"tup_returned":210824,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:45:51.359Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:50:51.341Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":78613,"blks_read":875,"cache_hit_pct":98.9,"commits":786,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":57261,"tup_inserted":98,"tup_returned":217968,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:50:51.341Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:55:51.353Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":80239,"blks_read":875,"cache_hit_pct":98.92,"commits":805,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":58308,"tup_inserted":99,"tup_returned":225137,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:55:51.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:00:51.364Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":81800,"blks_read":875,"cache_hit_pct":98.94,"commits":823,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":59330,"tup_inserted":100,"tup_returned":232281,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:00:51.364Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:05:51.352Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":83361,"blks_read":875,"cache_hit_pct":98.96,"commits":841,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":60352,"tup_inserted":101,"tup_returned":239425,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:05:51.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:10:51.392Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":84987,"blks_read":875,"cache_hit_pct":98.98,"commits":860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":61399,"tup_inserted":102,"tup_returned":246594,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:10:51.393Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:15:51.381Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":86472,"blks_read":875,"cache_hit_pct":99,"commits":876,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":62406,"tup_inserted":103,"tup_returned":252499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:15:51.382Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:20:51.388Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":88033,"blks_read":875,"cache_hit_pct":99.02,"commits":894,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":63428,"tup_inserted":104,"tup_returned":259643,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:20:51.388Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:32:14.961Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":89659,"blks_read":875,"cache_hit_pct":99.03,"commits":913,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":64475,"tup_inserted":105,"tup_returned":266812,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:32:14.961Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T16:59:20.492Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T16:59:32.725Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T17:01:17.429Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T18:44:38.266Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":91876,"blks_read":875,"cache_hit_pct":99.06,"commits":938,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":66139,"tup_inserted":109,"tup_returned":273380,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T18:44:38.266Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T22:39:00.745Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93361,"blks_read":875,"cache_hit_pct":99.07,"commits":954,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":67146,"tup_inserted":110,"tup_returned":279285,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T22:39:00.745Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T01:38:52.798Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":95139,"blks_read":875,"cache_hit_pct":99.09,"commits":977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":68223,"tup_inserted":111,"tup_returned":288932,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T01:38:52.798Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T07:46:00.869Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":96700,"blks_read":875,"cache_hit_pct":99.1,"commits":995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":69245,"tup_inserted":112,"tup_returned":296076,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T07:46:00.869Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T11:21:29.086Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":98261,"blks_read":875,"cache_hit_pct":99.12,"commits":1013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":70267,"tup_inserted":113,"tup_returned":303220,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T11:21:29.087Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T14:07:48.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":100039,"blks_read":875,"cache_hit_pct":99.13,"commits":1036,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":71344,"tup_inserted":114,"tup_returned":312867,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T14:07:48.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T17:10:43.725Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":101524,"blks_read":875,"cache_hit_pct":99.15,"commits":1052,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":72351,"tup_inserted":115,"tup_returned":318772,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T17:10:43.726Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T21:14:42.557Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":103085,"blks_read":875,"cache_hit_pct":99.16,"commits":1070,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":73373,"tup_inserted":116,"tup_returned":325916,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T21:14:42.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T23:51:01.043Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":104711,"blks_read":875,"cache_hit_pct":99.17,"commits":1089,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":74420,"tup_inserted":117,"tup_returned":333085,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T23:51:01.044Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T04:15:05.625Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":106196,"blks_read":875,"cache_hit_pct":99.18,"commits":1105,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":75427,"tup_inserted":118,"tup_returned":338990,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T04:15:05.625Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T07:52:33.547Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":107833,"blks_read":875,"cache_hit_pct":99.2,"commits":1125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":76464,"tup_inserted":119,"tup_returned":347373,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T07:52:33.547Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T12:07:27.022Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":109459,"blks_read":875,"cache_hit_pct":99.21,"commits":1144,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":77511,"tup_inserted":120,"tup_returned":354542,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T12:07:27.022Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T15:02:13.796Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":111021,"blks_read":876,"cache_hit_pct":99.22,"commits":1162,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":78533,"tup_inserted":121,"tup_returned":361686,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T15:02:13.796Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T18:36:53.414Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":112658,"blks_read":876,"cache_hit_pct":99.23,"commits":1182,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":79570,"tup_inserted":122,"tup_returned":370069,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T18:36:53.415Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T20:03:58.034Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114208,"blks_read":876,"cache_hit_pct":99.24,"commits":1199,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":80602,"tup_inserted":123,"tup_returned":375999,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T20:03:58.035Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T00:18:34.310Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":115845,"blks_read":876,"cache_hit_pct":99.25,"commits":1219,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":81639,"tup_inserted":124,"tup_returned":384382,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T00:18:34.311Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T02:53:02.834Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":117330,"blks_read":876,"cache_hit_pct":99.26,"commits":1235,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":82646,"tup_inserted":125,"tup_returned":390287,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T02:53:02.835Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T08:10:09.962Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":119032,"blks_read":876,"cache_hit_pct":99.27,"commits":1256,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":83708,"tup_inserted":126,"tup_returned":398695,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T08:10:09.962Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T12:38:00.518Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":120593,"blks_read":876,"cache_hit_pct":99.28,"commits":1274,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":84730,"tup_inserted":127,"tup_returned":405839,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T12:38:00.518Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T15:31:39.943Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":122078,"blks_read":876,"cache_hit_pct":99.29,"commits":1290,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":85737,"tup_inserted":128,"tup_returned":411744,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T15:31:39.944Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T17:53:20.859Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":123856,"blks_read":876,"cache_hit_pct":99.3,"commits":1313,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":86814,"tup_inserted":129,"tup_returned":421391,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T17:53:20.859Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T19:52:36.787Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":125341,"blks_read":876,"cache_hit_pct":99.31,"commits":1329,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":87821,"tup_inserted":130,"tup_returned":427296,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T19:52:36.788Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T22:06:46.362Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":126902,"blks_read":876,"cache_hit_pct":99.31,"commits":1347,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":88843,"tup_inserted":131,"tup_returned":434440,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T22:06:46.362Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T00:57:49.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":128604,"blks_read":876,"cache_hit_pct":99.32,"commits":1368,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":89905,"tup_inserted":132,"tup_returned":442848,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T00:57:49.822Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T07:08:43.693Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":130165,"blks_read":876,"cache_hit_pct":99.33,"commits":1386,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":90927,"tup_inserted":133,"tup_returned":449992,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T07:08:43.694Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T10:10:37.072Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":131650,"blks_read":876,"cache_hit_pct":99.34,"commits":1402,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":91934,"tup_inserted":134,"tup_returned":455897,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T10:10:37.073Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T13:59:50.955Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T14:00:03.834Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":133520,"blks_read":876,"cache_hit_pct":99.35,"commits":1424,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":93200,"tup_inserted":136,"tup_returned":463287,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T14:00:03.834Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:01:17.498Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T14:01:19.722Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:15:23.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:42:57.401Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T14:43:09.190Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:46:17.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:04:26.513Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:04:30.147Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":136812,"blks_read":876,"cache_hit_pct":99.36,"commits":1461,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":95721,"tup_inserted":144,"tup_returned":471941,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:04:30.147Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:16:03.444Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:16:05.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:23:09.480Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:23:11.037Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:24:27.531Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":139006,"blks_read":876,"cache_hit_pct":99.37,"commits":1491,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":97175,"tup_inserted":149,"tup_returned":481970,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:24:27.531Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:29:57.559Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:29:58.374Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:33:21.761Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140804,"blks_read":876,"cache_hit_pct":99.38,"commits":1512,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":98426,"tup_inserted":152,"tup_returned":488121,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:33:21.761Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:38:21.762Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":142365,"blks_read":876,"cache_hit_pct":99.39,"commits":1530,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":99448,"tup_inserted":153,"tup_returned":495265,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:38:21.762Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:43:21.753Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143926,"blks_read":876,"cache_hit_pct":99.4,"commits":1548,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":100470,"tup_inserted":154,"tup_returned":502409,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:43:21.754Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:49:32.205Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:49:33.045Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:53:56.479Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145800,"blks_read":876,"cache_hit_pct":99.4,"commits":1571,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":101736,"tup_inserted":157,"tup_returned":509799,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:53:56.479Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:58:56.486Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":147361,"blks_read":876,"cache_hit_pct":99.41,"commits":1589,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":102758,"tup_inserted":158,"tup_returned":516943,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:58:56.486Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:03:56.477Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148922,"blks_read":876,"cache_hit_pct":99.42,"commits":1607,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":103780,"tup_inserted":159,"tup_returned":524087,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:03:56.477Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:08:56.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":150548,"blks_read":876,"cache_hit_pct":99.42,"commits":1626,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":104827,"tup_inserted":160,"tup_returned":531256,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:08:56.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:13:56.501Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":152109,"blks_read":876,"cache_hit_pct":99.43,"commits":1644,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":105849,"tup_inserted":161,"tup_returned":538400,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:13:56.502Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:18:56.495Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":153670,"blks_read":876,"cache_hit_pct":99.43,"commits":1662,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":106871,"tup_inserted":162,"tup_returned":545544,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:18:56.495Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-09T16:20:56.759Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:21:00.022Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:21:00.118Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:22:13.661Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:23:24.539Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.813Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.814Z","userId":1} -{"caller":{"column":21,"file":"pdfRPC.js","filePath":"/content-server/backend/webserver/rpcs/pdfRPC.js","function":"PDFRPC.request","line":33},"level":"info","message":"Calling RPC service with request: deleteAllAnnotations","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:23:35.780Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.emit","line":158},"level":"info","message":"Emitting event to RPC service...","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:23:35.781Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:23:56.513Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":161976,"blks_read":919,"cache_hit_pct":99.44,"commits":1819,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":1,"tup_fetched":111759,"tup_inserted":188,"tup_returned":558405,"tup_updated":28},"locks":{"byMode":[{"count":6,"mode":"RowShareLock"},{"count":3,"mode":"ExclusiveLock"},{"count":2,"mode":"RowExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":12,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:23:56.513Z"} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:24:05.785Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-09T16:25:07.581Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.command","line":100},"level":"info","message":"Client command getStatus with data [object Object]","service":"Service/NLPService","timestamp":"2026-03-09T16:25:53.353Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.command","line":100},"level":"info","message":"Client command getStatus with data [object Object]","service":"Service/NLPService","timestamp":"2026-03-09T16:25:53.359Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-09T16:25:56.652Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:28:24.780Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:28:26.211Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:29:21.310Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":172459,"blks_read":954,"cache_hit_pct":99.45,"commits":1938,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":118243,"tup_inserted":263,"tup_returned":574265,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:29:21.310Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:38:49.342Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:38:50.298Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:43:34.962Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":174194,"blks_read":954,"cache_hit_pct":99.46,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":119469,"tup_inserted":266,"tup_returned":580391,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:43:34.962Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:45:25.479Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:53:55.189Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:58:19.800Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:58:36.125Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:00:51.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:00:53.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:08:47.960Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T17:08:52.449Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":177627,"blks_read":954,"cache_hit_pct":99.47,"commits":1998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":122030,"tup_inserted":274,"tup_returned":590310,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T17:08:52.449Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:12:25.755Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:20:25.614Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:20:48.106Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T18:18:36.023Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":179341,"blks_read":954,"cache_hit_pct":99.47,"commits":2021,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":123290,"tup_inserted":278,"tup_returned":596473,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T18:18:36.023Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T21:52:17.084Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":180902,"blks_read":954,"cache_hit_pct":99.48,"commits":2039,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":124312,"tup_inserted":279,"tup_returned":603617,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T21:52:17.085Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T22:50:59.216Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T22:51:04.214Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":183159,"blks_read":954,"cache_hit_pct":99.48,"commits":2065,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":125823,"tup_inserted":281,"tup_returned":611256,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T22:51:04.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T04:17:43.894Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184675,"blks_read":954,"cache_hit_pct":99.49,"commits":2088,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":126673,"tup_inserted":282,"tup_returned":617100,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T04:17:43.895Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T06:26:05.042Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":186160,"blks_read":954,"cache_hit_pct":99.49,"commits":2104,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":127680,"tup_inserted":283,"tup_returned":623005,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T06:26:05.042Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:16:04.119Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187786,"blks_read":954,"cache_hit_pct":99.49,"commits":2123,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":128727,"tup_inserted":284,"tup_returned":630175,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:16:04.119Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:21:04.125Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":189347,"blks_read":954,"cache_hit_pct":99.5,"commits":2141,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":129749,"tup_inserted":285,"tup_returned":637319,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:21:04.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:26:04.122Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190908,"blks_read":954,"cache_hit_pct":99.5,"commits":2159,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":130771,"tup_inserted":286,"tup_returned":644463,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:26:04.123Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T09:26:27.862Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-10T09:26:36.371Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T09:29:46.246Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:50:22.876Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195281,"blks_read":954,"cache_hit_pct":99.51,"commits":2217,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":133411,"tup_inserted":295,"tup_returned":653457,"tup_updated":42},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:50:22.876Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:07:46.671Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:08:42.241Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":197744,"blks_read":954,"cache_hit_pct":99.52,"commits":2251,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":134959,"tup_inserted":297,"tup_returned":661230,"tup_updated":43},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:08:42.242Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:25:33.656Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:28:59.450Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":200132,"blks_read":954,"cache_hit_pct":99.53,"commits":2283,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":136492,"tup_inserted":299,"tup_returned":667764,"tup_updated":44},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:28:59.451Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:29:31.128Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:30:36.399Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:31:35.973Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:33:32.487Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:33:59.449Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":205282,"blks_read":954,"cache_hit_pct":99.54,"commits":2366,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":139598,"tup_inserted":304,"tup_returned":677404,"tup_updated":48},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:33:59.450Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:34:31.397Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:37:56.088Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:38:59.474Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":208650,"blks_read":954,"cache_hit_pct":99.54,"commits":2416,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":141672,"tup_inserted":307,"tup_returned":685806,"tup_updated":50},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:38:59.474Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:40:20.365Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:41:50.929Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:43:59.462Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":211929,"blks_read":954,"cache_hit_pct":99.55,"commits":2466,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":143701,"tup_inserted":310,"tup_returned":694162,"tup_updated":52},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:43:59.462Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:45:49.668Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:47:20.808Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:48:59.481Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215273,"blks_read":954,"cache_hit_pct":99.56,"commits":2517,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":145755,"tup_inserted":313,"tup_returned":702544,"tup_updated":54},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:48:59.481Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:51:08.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:53:59.502Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":217738,"blks_read":954,"cache_hit_pct":99.56,"commits":2551,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":147303,"tup_inserted":315,"tup_returned":710317,"tup_updated":55},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:53:59.503Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:54:25.742Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:57:09.770Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:58:59.506Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":221017,"blks_read":954,"cache_hit_pct":99.57,"commits":2601,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":149332,"tup_inserted":318,"tup_returned":718673,"tup_updated":57},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:58:59.506Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:59:09.122Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:03:59.517Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":223567,"blks_read":954,"cache_hit_pct":99.58,"commits":2636,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":150956,"tup_inserted":320,"tup_returned":726521,"tup_updated":68},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:03:59.518Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:04:37.778Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:06:35.307Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:08:22.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:08:59.521Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":227838,"blks_read":954,"cache_hit_pct":99.58,"commits":2702,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":153556,"tup_inserted":324,"tup_returned":735552,"tup_updated":71},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:08:59.522Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:10:22.925Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:13:59.527Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":230214,"blks_read":954,"cache_hit_pct":99.59,"commits":2736,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":155059,"tup_inserted":326,"tup_returned":743279,"tup_updated":72},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:13:59.528Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:14:20.616Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:15:54.528Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:18:16.012Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:18:59.526Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":234461,"blks_read":954,"cache_hit_pct":99.59,"commits":2803,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":157639,"tup_inserted":330,"tup_returned":752290,"tup_updated":75},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:18:59.526Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:22:26.100Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:23:59.541Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236926,"blks_read":954,"cache_hit_pct":99.6,"commits":2837,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":159187,"tup_inserted":332,"tup_returned":760063,"tup_updated":76},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:23:59.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:28:59.538Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238490,"blks_read":954,"cache_hit_pct":99.6,"commits":2855,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":160209,"tup_inserted":333,"tup_returned":767207,"tup_updated":76},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:28:59.538Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:30:09.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T17:05:05.802Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241011,"blks_read":954,"cache_hit_pct":99.61,"commits":2892,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":161752,"tup_inserted":335,"tup_returned":776199,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T17:05:05.802Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T19:31:55.030Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":242497,"blks_read":954,"cache_hit_pct":99.61,"commits":2908,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":162759,"tup_inserted":336,"tup_returned":782104,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T19:31:55.033Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T23:35:45.915Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244135,"blks_read":954,"cache_hit_pct":99.61,"commits":2928,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":163796,"tup_inserted":337,"tup_returned":790487,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T23:35:45.915Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T23:55:26.522Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T23:58:35.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:00:12.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":247492,"blks_read":954,"cache_hit_pct":99.62,"commits":2977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":165880,"tup_inserted":340,"tup_returned":797676,"tup_updated":79},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:00:12.179Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:03:13.811Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:17:03.342Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":249944,"blks_read":954,"cache_hit_pct":99.62,"commits":3013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":167398,"tup_inserted":342,"tup_returned":806642,"tup_updated":80},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:17:03.342Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:21:28.320Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:43:48.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:44:25.227Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":253147,"blks_read":954,"cache_hit_pct":99.62,"commits":3061,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":169412,"tup_inserted":345,"tup_returned":813759,"tup_updated":82},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:44:25.228Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:49:26.485Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":254774,"blks_read":954,"cache_hit_pct":99.63,"commits":3080,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":170459,"tup_inserted":346,"tup_returned":820929,"tup_updated":82},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:49:26.486Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:49:33.887Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:57:05.747Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:59:00.016Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":257717,"blks_read":954,"cache_hit_pct":99.63,"commits":3130,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":172208,"tup_inserted":349,"tup_returned":830226,"tup_updated":84},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:59:00.016Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:59:02.987Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:21:48.590Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:24:04.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":260584,"blks_read":954,"cache_hit_pct":99.64,"commits":3178,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":173942,"tup_inserted":352,"tup_returned":838284,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:24:04.569Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:29:04.591Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":262211,"blks_read":954,"cache_hit_pct":99.64,"commits":3197,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":174989,"tup_inserted":353,"tup_returned":845454,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:29:04.591Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:34:04.617Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":263773,"blks_read":954,"cache_hit_pct":99.64,"commits":3215,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":176011,"tup_inserted":354,"tup_returned":852598,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:34:04.618Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:36:12.486Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:37:11.898Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:39:04.589Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":267141,"blks_read":954,"cache_hit_pct":99.64,"commits":3265,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":178085,"tup_inserted":357,"tup_returned":861000,"tup_updated":88},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:39:04.589Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:44:04.594Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":268768,"blks_read":954,"cache_hit_pct":99.65,"commits":3284,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":179132,"tup_inserted":358,"tup_returned":868170,"tup_updated":88},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:44:04.594Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:44:45.685Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:45:46.642Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:46:47.284Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:49:04.643Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":273131,"blks_read":955,"cache_hit_pct":99.65,"commits":3352,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":181823,"tup_inserted":367,"tup_returned":877293,"tup_updated":91},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:49:04.644Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:51:46.001Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:52:49.280Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:55:23.364Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":276579,"blks_read":955,"cache_hit_pct":99.66,"commits":3404,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":183916,"tup_inserted":370,"tup_returned":886944,"tup_updated":93},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:55:23.364Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:56:53.717Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:00:23.373Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":279104,"blks_read":955,"cache_hit_pct":99.66,"commits":3439,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":185492,"tup_inserted":372,"tup_returned":894749,"tup_updated":94},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:00:23.374Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:00:55.891Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:02:58.283Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:04:58.783Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:05:23.369Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":283381,"blks_read":955,"cache_hit_pct":99.66,"commits":3505,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":188098,"tup_inserted":376,"tup_returned":903795,"tup_updated":97},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:05:23.369Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:06:59.684Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:09:31.601Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:10:23.366Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":286753,"blks_read":955,"cache_hit_pct":99.67,"commits":3555,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":190176,"tup_inserted":379,"tup_returned":912207,"tup_updated":99},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:10:23.367Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:11:01.726Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:14:33.839Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:15:23.360Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":290094,"blks_read":955,"cache_hit_pct":99.67,"commits":3606,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":192235,"tup_inserted":382,"tup_returned":920600,"tup_updated":101},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:15:23.360Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:20:23.420Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":291656,"blks_read":955,"cache_hit_pct":99.67,"commits":3624,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":193257,"tup_inserted":383,"tup_returned":927744,"tup_updated":101},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:20:23.420Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:24:58.055Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:25:23.382Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":294123,"blks_read":955,"cache_hit_pct":99.68,"commits":3658,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":194807,"tup_inserted":385,"tup_returned":935522,"tup_updated":102},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:25:23.382Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:30:23.412Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":295743,"blks_read":955,"cache_hit_pct":99.68,"commits":3677,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":195855,"tup_inserted":386,"tup_returned":942693,"tup_updated":102},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:30:23.412Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:38:38.748Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:39:39.159Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:40:15.496Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":299115,"blks_read":955,"cache_hit_pct":99.68,"commits":3727,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":197933,"tup_inserted":389,"tup_returned":951105,"tup_updated":104},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:40:15.496Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:54:11.979Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:54:43.534Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":301658,"blks_read":955,"cache_hit_pct":99.68,"commits":3763,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":199498,"tup_inserted":391,"tup_returned":960122,"tup_updated":105},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:54:43.535Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:55:11.480Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:57:42.329Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:59:13.207Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:59:43.555Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":305815,"blks_read":955,"cache_hit_pct":99.69,"commits":3830,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":202040,"tup_inserted":395,"tup_returned":969103,"tup_updated":108},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:59:43.555Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:00:14.059Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:49:19.443Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":308041,"blks_read":955,"cache_hit_pct":99.69,"commits":3860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":203515,"tup_inserted":397,"tup_returned":974357,"tup_updated":109},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:49:19.443Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:53:44.030Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:54:19.436Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":310508,"blks_read":955,"cache_hit_pct":99.69,"commits":3894,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":205065,"tup_inserted":399,"tup_returned":982135,"tup_updated":110},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:54:19.436Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:54:43.101Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:59:19.430Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":312944,"blks_read":955,"cache_hit_pct":99.7,"commits":3929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":206596,"tup_inserted":401,"tup_returned":989894,"tup_updated":111},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:59:19.431Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:03:25.586Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:04:19.453Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":315413,"blks_read":955,"cache_hit_pct":99.7,"commits":3963,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":208146,"tup_inserted":403,"tup_returned":997672,"tup_updated":112},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:04:19.453Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:09:19.444Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":316975,"blks_read":955,"cache_hit_pct":99.7,"commits":3981,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":209168,"tup_inserted":404,"tup_returned":1004816,"tup_updated":112},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:09:19.444Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:09:59.558Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:12:10.338Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:14:19.450Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":320405,"blks_read":955,"cache_hit_pct":99.7,"commits":4032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":211272,"tup_inserted":407,"tup_returned":1013255,"tup_updated":114},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:14:19.450Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:18:45.898Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:19:19.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":322872,"blks_read":955,"cache_hit_pct":99.71,"commits":4066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":212822,"tup_inserted":409,"tup_returned":1021033,"tup_updated":115},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:19:19.464Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:23:51.638Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:24:19.462Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":325250,"blks_read":955,"cache_hit_pct":99.71,"commits":4100,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":214327,"tup_inserted":411,"tup_returned":1028765,"tup_updated":116},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:24:19.462Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:26:53.643Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:28:30.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:29:19.483Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":328680,"blks_read":955,"cache_hit_pct":99.71,"commits":4151,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":216431,"tup_inserted":414,"tup_returned":1037204,"tup_updated":118},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:29:19.483Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:38:00.282Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:38:10.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":330982,"blks_read":955,"cache_hit_pct":99.71,"commits":4183,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":217921,"tup_inserted":416,"tup_returned":1043697,"tup_updated":119},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:38:10.337Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:40:01.600Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:42:32.328Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:43:10.324Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":334843,"blks_read":955,"cache_hit_pct":99.72,"commits":4235,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":220367,"tup_inserted":419,"tup_returned":1052478,"tup_updated":131},"locks":{"byMode":[{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":3,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:43:10.324Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T09:47:53.364Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T09:48:08.482Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":337203,"blks_read":955,"cache_hit_pct":99.72,"commits":4268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":221883,"tup_inserted":421,"tup_returned":1058998,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T09:48:08.483Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T12:25:05.194Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":338765,"blks_read":955,"cache_hit_pct":99.72,"commits":4286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":222905,"tup_inserted":422,"tup_returned":1066142,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T12:25:05.195Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T12:50:48.247Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":340327,"blks_read":955,"cache_hit_pct":99.72,"commits":4304,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":223927,"tup_inserted":423,"tup_returned":1073286,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T12:50:48.248Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T14:53:10.744Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":341871,"blks_read":955,"cache_hit_pct":99.72,"commits":4321,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":224960,"tup_inserted":424,"tup_returned":1079218,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T14:53:10.744Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:33:59.216Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":343433,"blks_read":955,"cache_hit_pct":99.72,"commits":4339,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":225982,"tup_inserted":425,"tup_returned":1086362,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:33:59.217Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:36:06.357Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:37:38.923Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:38:46.099Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:38:59.188Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":347710,"blks_read":955,"cache_hit_pct":99.73,"commits":4405,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":228588,"tup_inserted":429,"tup_returned":1095408,"tup_updated":135},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:38:59.188Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:40:45.734Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:42:05.329Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:43:59.207Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":351051,"blks_read":955,"cache_hit_pct":99.73,"commits":4456,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":230647,"tup_inserted":432,"tup_returned":1103801,"tup_updated":137},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:43:59.207Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:49:55.058Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:51:48.687Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:52:08.078Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":354334,"blks_read":955,"cache_hit_pct":99.73,"commits":4506,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":232680,"tup_inserted":435,"tup_returned":1112167,"tup_updated":139},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:52:08.078Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:53:59.911Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:56:40.543Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:57:08.064Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":357617,"blks_read":955,"cache_hit_pct":99.73,"commits":4556,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":234713,"tup_inserted":438,"tup_returned":1120533,"tup_updated":141},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:57:08.064Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:57:58.287Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:00:32.655Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:01:59.316Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T17:02:08.070Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":361679,"blks_read":955,"cache_hit_pct":99.74,"commits":4614,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":237281,"tup_inserted":442,"tup_returned":1129441,"tup_updated":143},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T17:02:08.070Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:03:32.763Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:08:11.312Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T17:10:40.017Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":364995,"blks_read":955,"cache_hit_pct":99.74,"commits":4671,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":239159,"tup_inserted":445,"tup_returned":1137751,"tup_updated":146},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T17:10:40.017Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:11:09.710Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T18:56:30.132Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:17:17.967Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:19:24.282Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":369259,"blks_read":955,"cache_hit_pct":99.74,"commits":4739,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":241735,"tup_inserted":449,"tup_returned":1147990,"tup_updated":149},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:19:24.283Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:22:36.986Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:24:24.290Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":371784,"blks_read":955,"cache_hit_pct":99.74,"commits":4774,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":243311,"tup_inserted":451,"tup_returned":1155795,"tup_updated":150},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:24:24.290Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:27:16.925Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:28:48.470Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:29:24.296Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":375315,"blks_read":955,"cache_hit_pct":99.75,"commits":4826,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":245517,"tup_inserted":454,"tup_returned":1164334,"tup_updated":157},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:29:24.297Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:30:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:34:24.306Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":377782,"blks_read":955,"cache_hit_pct":99.75,"commits":4860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":247067,"tup_inserted":456,"tup_returned":1172112,"tup_updated":158},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:34:24.306Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:37:18.924Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:38:06.474Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:39:24.356Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":381212,"blks_read":955,"cache_hit_pct":99.75,"commits":4911,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":249171,"tup_inserted":459,"tup_returned":1180551,"tup_updated":160},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:39:24.356Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:44:24.360Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":382774,"blks_read":955,"cache_hit_pct":99.75,"commits":4929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":250193,"tup_inserted":460,"tup_returned":1187695,"tup_updated":160},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:44:24.361Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:48:06.800Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:49:24.320Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":385152,"blks_read":955,"cache_hit_pct":99.75,"commits":4963,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":251698,"tup_inserted":462,"tup_returned":1195427,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:49:24.320Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-11T19:49:52.945Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-11T19:49:52.952Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-11T19:49:52.957Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-19T13:21:28.487Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:21:28.495Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:21:28.496Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:21:28.475Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:21:28.496Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-19T13:21:28.540Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-19T13:21:28.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:21:28.548Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":391701,"blks_read":1300,"cache_hit_pct":99.67,"commits":4990,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":256147,"tup_inserted":463,"tup_returned":1202141,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:21:28.548Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:21:28.715Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:26:28.521Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":402213,"blks_read":1387,"cache_hit_pct":99.66,"commits":5098,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":265110,"tup_inserted":475,"tup_returned":1218153,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:26:28.522Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:31:25.620Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:31:26.669Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:39:24.689Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:39:26.395Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:42:19.856Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":404281,"blks_read":1387,"cache_hit_pct":99.66,"commits":5124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":266570,"tup_inserted":480,"tup_returned":1225739,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:42:19.861Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-19T13:43:04.271Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:43:04.278Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:43:04.287Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-19T13:43:12.214Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:43:12.222Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:43:12.223Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:43:12.202Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:43:12.223Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-19T13:43:12.269Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-19T13:43:12.271Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:43:12.273Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":410850,"blks_read":1732,"cache_hit_pct":99.58,"commits":5152,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":271008,"tup_inserted":481,"tup_returned":1233665,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:43:12.273Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:43:12.352Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-19T13:43:41.762Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-19T13:44:03.661Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:44:38.149Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:44:38.292Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:44:41.940Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:47:23.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:47:24.525Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:48:53.417Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":429191,"blks_read":1883,"cache_hit_pct":99.56,"commits":5438,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":284847,"tup_inserted":504,"tup_returned":1256035,"tup_updated":168},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:48:53.417Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:51:15.887Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:51:17.058Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:51:30.713Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:58:46.455Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:58:47.139Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:03:49.460Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:03:51.064Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:05:56.600Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":433177,"blks_read":1888,"cache_hit_pct":99.57,"commits":5490,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":287527,"tup_inserted":532,"tup_returned":1266241,"tup_updated":169},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:05:56.600Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:14.371Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:15.273Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:42.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:43.278Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:09:36.410Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:10:44.606Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:14:18.963Z","counts":{"active":1,"idle":1,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":435604,"blks_read":1888,"cache_hit_pct":99.57,"commits":5523,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":289236,"tup_inserted":539,"tup_returned":1275303,"tup_updated":169},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:14:18.963Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:14:36.274Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:14:37.387Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:20:15.318Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:20:16.196Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:21:10.593Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:24:05.667Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":439043,"blks_read":1904,"cache_hit_pct":99.57,"commits":5569,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":291576,"tup_inserted":545,"tup_returned":1283881,"tup_updated":180},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:24:05.667Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:24:07.876Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:29:05.656Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":441485,"blks_read":1904,"cache_hit_pct":99.57,"commits":5604,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":293096,"tup_inserted":551,"tup_returned":1291643,"tup_updated":181},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:29:05.657Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:29:17.865Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.474Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.475Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.477Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:32:10.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:34:51.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:34:52.925Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:36:07.646Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":448384,"blks_read":1907,"cache_hit_pct":99.58,"commits":5686,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":297441,"tup_inserted":585,"tup_returned":1302593,"tup_updated":183},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:36:07.646Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:42:43.739Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:42:44.416Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:43:18.998Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:43:24.416Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:43:25.493Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.881Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.883Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T14:45:44.032Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:45:47.853Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":453870,"blks_read":1907,"cache_hit_pct":99.58,"commits":5751,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":300963,"tup_inserted":602,"tup_returned":1312459,"tup_updated":184},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:45:47.854Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:04.501Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:09.760Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:17.805Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:20.258Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:22.414Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:50:47.878Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":464392,"blks_read":1919,"cache_hit_pct":99.59,"commits":5995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":307091,"tup_inserted":658,"tup_returned":1328743,"tup_updated":209},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:50:47.878Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:54:05.078Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:54:08.273Z","userId":1} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:55:47.861Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":467523,"blks_read":1919,"cache_hit_pct":99.59,"commits":6036,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":308962,"tup_inserted":685,"tup_returned":1337030,"tup_updated":210},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:55:47.861Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:56:14.127Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T14:56:21.944Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T15:00:47.889Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":471960,"blks_read":1919,"cache_hit_pct":99.6,"commits":6087,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":311750,"tup_inserted":695,"tup_returned":1346143,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T15:00:47.889Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:06:52.027Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:06:54.932Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:15:19.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:15:41.418Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T15:16:29.823Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":474270,"blks_read":1919,"cache_hit_pct":99.6,"commits":6115,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":313429,"tup_inserted":700,"tup_returned":1353950,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T15:16:29.823Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:18:48.321Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:18:49.822Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T16:42:02.656Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T16:42:04.085Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T17:10:26.855Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T17:10:28.189Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:05:41.657Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:05:42.549Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:23:04.132Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:23:20.413Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T18:23:45.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":477336,"blks_read":1919,"cache_hit_pct":99.6,"commits":6155,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":315765,"tup_inserted":711,"tup_returned":1362420,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T18:23:45.209Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:27:04.499Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:27:06.382Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:28:42.504Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:28:43.690Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:05.034Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:06.062Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T18:30:39.598Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":479790,"blks_read":1919,"cache_hit_pct":99.6,"commits":6188,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":317485,"tup_inserted":718,"tup_returned":1371494,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T18:30:39.599Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:51.669Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:31:04.407Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:32:37.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:32:43.982Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:42:59.278Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T19:14:01.654Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":482271,"blks_read":1919,"cache_hit_pct":99.6,"commits":6217,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":319368,"tup_inserted":724,"tup_returned":1378283,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T19:14:01.654Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T21:56:26.497Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":483911,"blks_read":1919,"cache_hit_pct":99.61,"commits":6237,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":320405,"tup_inserted":725,"tup_returned":1386666,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T21:56:26.497Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T02:12:33.515Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":485533,"blks_read":1919,"cache_hit_pct":99.61,"commits":6256,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":321453,"tup_inserted":726,"tup_returned":1393838,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T02:12:33.515Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T07:17:24.438Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":487097,"blks_read":1919,"cache_hit_pct":99.61,"commits":6274,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":322475,"tup_inserted":727,"tup_returned":1400982,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T07:17:24.438Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T09:31:34.423Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":488585,"blks_read":1919,"cache_hit_pct":99.61,"commits":6290,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":323482,"tup_inserted":728,"tup_returned":1406887,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T09:31:34.423Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T11:20:39.491Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":490359,"blks_read":1919,"cache_hit_pct":99.61,"commits":6313,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":324560,"tup_inserted":729,"tup_returned":1416537,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T11:20:39.492Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T15:35:09.427Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":491923,"blks_read":1919,"cache_hit_pct":99.61,"commits":6331,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":325582,"tup_inserted":730,"tup_returned":1423681,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T15:35:09.427Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.708Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.846Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.892Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:42:58.352Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":495469,"blks_read":1919,"cache_hit_pct":99.61,"commits":6377,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":327851,"tup_inserted":734,"tup_returned":1432386,"tup_updated":214},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:42:58.352Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:43:24.298Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:47:58.373Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":497999,"blks_read":1919,"cache_hit_pct":99.62,"commits":6412,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":329427,"tup_inserted":736,"tup_returned":1440192,"tup_updated":215},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:47:58.374Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:52:58.415Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":499563,"blks_read":1919,"cache_hit_pct":99.62,"commits":6430,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":330449,"tup_inserted":737,"tup_returned":1447336,"tup_updated":215},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:52:58.416Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:54:29.015Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:57:58.350Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":502270,"blks_read":1919,"cache_hit_pct":99.62,"commits":6465,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":332201,"tup_inserted":740,"tup_returned":1455319,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:57:58.350Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-20T18:59:07.664Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-20T18:59:07.674Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-20T19:06:25.655Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-20T19:06:25.669Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-20T19:06:25.671Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-20T19:06:25.672Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-20T19:06:25.601Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-20T19:06:25.669Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-20T19:06:25.671Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-20T19:06:25.673Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-20T19:06:25.772Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-20T19:06:25.778Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:06:25.794Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":508897,"blks_read":2264,"cache_hit_pct":99.56,"commits":6494,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":336665,"tup_inserted":741,"tup_returned":1463272,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:06:25.794Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:11:25.745Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":520020,"blks_read":2355,"cache_hit_pct":99.55,"commits":6601,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":346150,"tup_inserted":752,"tup_returned":1479806,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:11:25.748Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:16:25.729Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":521583,"blks_read":2356,"cache_hit_pct":99.55,"commits":6619,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":347172,"tup_inserted":753,"tup_returned":1486950,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:16:25.730Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:21:25.719Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":523147,"blks_read":2356,"cache_hit_pct":99.55,"commits":6637,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":348194,"tup_inserted":754,"tup_returned":1494094,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:21:25.720Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:28:25.318Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":524764,"blks_read":2361,"cache_hit_pct":99.55,"commits":6656,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":349242,"tup_inserted":755,"tup_returned":1501265,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:28:25.318Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:33:25.302Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":526328,"blks_read":2361,"cache_hit_pct":99.55,"commits":6674,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":350264,"tup_inserted":756,"tup_returned":1508409,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:33:25.302Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:42:35.878Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":527892,"blks_read":2361,"cache_hit_pct":99.55,"commits":6692,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":351286,"tup_inserted":757,"tup_returned":1515553,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:42:35.878Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T02:43:18.299Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":529514,"blks_read":2361,"cache_hit_pct":99.56,"commits":6711,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":352334,"tup_inserted":758,"tup_returned":1522724,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T02:43:18.299Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T08:49:12.268Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":531078,"blks_read":2361,"cache_hit_pct":99.56,"commits":6729,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":353356,"tup_inserted":759,"tup_returned":1529868,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T08:49:12.269Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T16:46:00.717Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":532642,"blks_read":2361,"cache_hit_pct":99.56,"commits":6747,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":354378,"tup_inserted":760,"tup_returned":1537012,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T16:46:00.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T17:58:03.562Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":534264,"blks_read":2361,"cache_hit_pct":99.56,"commits":6766,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":355426,"tup_inserted":761,"tup_returned":1544183,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T17:58:03.562Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:33:59.451Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":535752,"blks_read":2361,"cache_hit_pct":99.56,"commits":6782,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":356433,"tup_inserted":762,"tup_returned":1550088,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:33:59.454Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:38:59.433Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":537316,"blks_read":2361,"cache_hit_pct":99.56,"commits":6800,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":357455,"tup_inserted":763,"tup_returned":1557232,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:38:59.434Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:43:59.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":538939,"blks_read":2361,"cache_hit_pct":99.56,"commits":6819,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":358503,"tup_inserted":764,"tup_returned":1564403,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:43:59.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:48:59.461Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":540503,"blks_read":2361,"cache_hit_pct":99.57,"commits":6837,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":359525,"tup_inserted":765,"tup_returned":1571547,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:48:59.461Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:53:59.451Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":542067,"blks_read":2361,"cache_hit_pct":99.57,"commits":6855,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":360547,"tup_inserted":766,"tup_returned":1578691,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:53:59.452Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:58:59.460Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":543689,"blks_read":2361,"cache_hit_pct":99.57,"commits":6874,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":361595,"tup_inserted":767,"tup_returned":1585861,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:58:59.460Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:03:59.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":545253,"blks_read":2361,"cache_hit_pct":99.57,"commits":6892,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":362617,"tup_inserted":768,"tup_returned":1593005,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:03:59.463Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:08:59.503Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":546817,"blks_read":2361,"cache_hit_pct":99.57,"commits":6910,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":363639,"tup_inserted":769,"tup_returned":1600149,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:08:59.504Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:13:59.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":548439,"blks_read":2361,"cache_hit_pct":99.57,"commits":6929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":364687,"tup_inserted":770,"tup_returned":1607319,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:13:59.489Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:18:59.469Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":550003,"blks_read":2361,"cache_hit_pct":99.57,"commits":6947,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":365709,"tup_inserted":771,"tup_returned":1614463,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:18:59.469Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:23:59.484Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":551567,"blks_read":2361,"cache_hit_pct":99.57,"commits":6965,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":366731,"tup_inserted":772,"tup_returned":1621607,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:23:59.484Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:28:59.499Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":553677,"blks_read":2382,"cache_hit_pct":99.57,"commits":6986,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":368147,"tup_inserted":773,"tup_returned":1629146,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:28:59.500Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:33:59.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":555241,"blks_read":2382,"cache_hit_pct":99.57,"commits":7004,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":369169,"tup_inserted":774,"tup_returned":1636290,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:33:59.489Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:38:59.476Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":556805,"blks_read":2382,"cache_hit_pct":99.57,"commits":7022,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":370191,"tup_inserted":775,"tup_returned":1643434,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:38:59.476Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:43:59.492Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":558427,"blks_read":2382,"cache_hit_pct":99.58,"commits":7041,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":371239,"tup_inserted":776,"tup_returned":1650604,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:43:59.492Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:48:59.526Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":559991,"blks_read":2382,"cache_hit_pct":99.58,"commits":7059,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":372261,"tup_inserted":777,"tup_returned":1657748,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:48:59.526Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T01:14:02.034Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":561631,"blks_read":2382,"cache_hit_pct":99.58,"commits":7079,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":373298,"tup_inserted":778,"tup_returned":1666131,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T01:14:02.034Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T08:45:10.183Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":563177,"blks_read":2382,"cache_hit_pct":99.58,"commits":7096,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":374331,"tup_inserted":779,"tup_returned":1672062,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T08:45:10.184Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T14:24:08.345Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":564665,"blks_read":2382,"cache_hit_pct":99.58,"commits":7112,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":375338,"tup_inserted":780,"tup_returned":1677967,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T14:24:08.345Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T16:27:05.415Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":566153,"blks_read":2382,"cache_hit_pct":99.58,"commits":7128,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":376345,"tup_inserted":781,"tup_returned":1683872,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T16:27:05.415Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:05:59.386Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":567851,"blks_read":2382,"cache_hit_pct":99.58,"commits":7149,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":377408,"tup_inserted":782,"tup_returned":1692281,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:05:59.386Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:10:59.396Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":569415,"blks_read":2382,"cache_hit_pct":99.58,"commits":7167,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":378430,"tup_inserted":783,"tup_returned":1699425,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:10:59.397Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:15:59.388Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":570979,"blks_read":2382,"cache_hit_pct":99.58,"commits":7185,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":379452,"tup_inserted":784,"tup_returned":1706569,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:15:59.388Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:20:59.411Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":572601,"blks_read":2382,"cache_hit_pct":99.59,"commits":7204,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":380500,"tup_inserted":785,"tup_returned":1713739,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:20:59.412Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:25:59.412Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":574165,"blks_read":2382,"cache_hit_pct":99.59,"commits":7222,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":381522,"tup_inserted":786,"tup_returned":1720883,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:25:59.412Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:30:59.406Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":575729,"blks_read":2382,"cache_hit_pct":99.59,"commits":7240,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":382544,"tup_inserted":787,"tup_returned":1728027,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:30:59.407Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T20:19:54.057Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":577351,"blks_read":2382,"cache_hit_pct":99.59,"commits":7259,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":383592,"tup_inserted":788,"tup_returned":1735197,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T20:19:54.057Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T22:06:47.881Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":578763,"blks_read":2382,"cache_hit_pct":99.59,"commits":7273,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":384584,"tup_inserted":789,"tup_returned":1739863,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T22:06:47.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T04:30:19.390Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":580327,"blks_read":2382,"cache_hit_pct":99.59,"commits":7291,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":385606,"tup_inserted":790,"tup_returned":1747007,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T04:30:19.391Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T12:49:09.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":582025,"blks_read":2382,"cache_hit_pct":99.59,"commits":7312,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":386669,"tup_inserted":791,"tup_returned":1755416,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T12:49:09.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T13:40:30.391Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":583589,"blks_read":2382,"cache_hit_pct":99.59,"commits":7330,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":387691,"tup_inserted":792,"tup_returned":1762560,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T13:40:30.391Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T16:22:57.799Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":585229,"blks_read":2382,"cache_hit_pct":99.59,"commits":7350,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":388728,"tup_inserted":793,"tup_returned":1770943,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T16:22:57.799Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T20:12:14.822Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":586851,"blks_read":2382,"cache_hit_pct":99.6,"commits":7369,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":389776,"tup_inserted":794,"tup_returned":1778113,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T20:12:14.823Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:27:12.539Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":588491,"blks_read":2382,"cache_hit_pct":99.6,"commits":7389,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":390813,"tup_inserted":795,"tup_returned":1786496,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:27:12.539Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:32:12.535Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":590055,"blks_read":2382,"cache_hit_pct":99.6,"commits":7407,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":391835,"tup_inserted":796,"tup_returned":1793640,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:32:12.539Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:37:12.578Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":591677,"blks_read":2382,"cache_hit_pct":99.6,"commits":7426,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":392883,"tup_inserted":797,"tup_returned":1800810,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:37:12.580Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:42:12.696Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":593241,"blks_read":2382,"cache_hit_pct":99.6,"commits":7444,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":393905,"tup_inserted":798,"tup_returned":1807954,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:42:12.702Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:47:12.534Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":594805,"blks_read":2382,"cache_hit_pct":99.6,"commits":7462,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":394927,"tup_inserted":799,"tup_returned":1815098,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:47:12.537Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:52:12.580Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":596427,"blks_read":2382,"cache_hit_pct":99.6,"commits":7481,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":395975,"tup_inserted":800,"tup_returned":1822268,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:52:12.583Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:57:12.622Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":597991,"blks_read":2382,"cache_hit_pct":99.6,"commits":7499,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":396997,"tup_inserted":801,"tup_returned":1829412,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:57:12.628Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-26T12:23:07.941Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-26T12:23:07.948Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-26T12:23:07.929Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-26T12:23:07.949Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-26T12:23:07.951Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-26T12:23:07.989Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-26T12:23:07.993Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:23:07.999Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:23:07.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:23:08.403Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:28:08.017Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15698,"blks_read":435,"cache_hit_pct":97.3,"commits":125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12362,"tup_inserted":12,"tup_returned":20450,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:28:08.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:33:07.990Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17261,"blks_read":436,"cache_hit_pct":97.54,"commits":143,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13384,"tup_inserted":13,"tup_returned":27594,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:33:07.990Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:38:07.976Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18824,"blks_read":437,"cache_hit_pct":97.73,"commits":161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14406,"tup_inserted":14,"tup_returned":34738,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:38:07.976Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:43:08.018Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20441,"blks_read":442,"cache_hit_pct":97.88,"commits":180,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15454,"tup_inserted":15,"tup_returned":41908,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:43:08.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:48:08.003Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":23624,"blks_read":443,"cache_hit_pct":98.16,"commits":214,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17224,"tup_inserted":20,"tup_returned":49808,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:48:08.003Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:55:19.537Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:55:29.006Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:59:10.173Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:59:11.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:59:12.262Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":25661,"blks_read":443,"cache_hit_pct":98.3,"commits":239,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18669,"tup_inserted":25,"tup_returned":57378,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:59:12.262Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:01:36.523Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:01:51.115Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:04:12.287Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":27566,"blks_read":443,"cache_hit_pct":98.42,"commits":263,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":19951,"tup_inserted":28,"tup_returned":64789,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:04:12.288Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:16:39.638Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29130,"blks_read":443,"cache_hit_pct":98.5,"commits":281,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20973,"tup_inserted":29,"tup_returned":71933,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:16:39.638Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:17:02.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:17:04.600Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:24:52.876Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:24:54.699Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:24:57.517Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31239,"blks_read":443,"cache_hit_pct":98.6,"commits":307,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22448,"tup_inserted":34,"tup_returned":79537,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:24:57.518Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:29:50.170Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:29:51.204Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:39:01.308Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":32830,"blks_read":443,"cache_hit_pct":98.67,"commits":328,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23481,"tup_inserted":37,"tup_returned":86693,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:39:01.309Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:45:17.346Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:45:18.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:46:43.396Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34570,"blks_read":443,"cache_hit_pct":98.73,"commits":348,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24707,"tup_inserted":40,"tup_returned":92819,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:46:43.396Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:48:33.405Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:48:34.457Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:57:07.370Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:57:08.972Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:59:21.712Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36714,"blks_read":443,"cache_hit_pct":98.81,"commits":376,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26182,"tup_inserted":45,"tup_returned":101644,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:59:21.712Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:00:10.210Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:00:11.187Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:05:21.290Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:05:22.865Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:25.001Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:19:25.883Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38840,"blks_read":443,"cache_hit_pct":98.87,"commits":403,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27668,"tup_inserted":50,"tup_returned":109260,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:19:25.883Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:26.539Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:37.205Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:38.851Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:21:07.089Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:21:08.639Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:27:31.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40918,"blks_read":443,"cache_hit_pct":98.93,"commits":431,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29128,"tup_inserted":57,"tup_returned":116846,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:27:31.223Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:30:08.575Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:30:09.831Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:37:32.770Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:37:33.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:49:14.660Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":42986,"blks_read":443,"cache_hit_pct":98.98,"commits":457,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":30588,"tup_inserted":62,"tup_returned":124432,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:49:14.661Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:49:14.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:49:15.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:54:14.675Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":44618,"blks_read":443,"cache_hit_pct":99.02,"commits":478,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":31636,"tup_inserted":65,"tup_returned":131606,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:54:14.675Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:58:39.951Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:58:41.384Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:59:57.818Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46358,"blks_read":443,"cache_hit_pct":99.05,"commits":498,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":32862,"tup_inserted":68,"tup_returned":137732,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:59:57.819Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:03:10.175Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T15:03:12.430Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T15:06:36.325Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":48250,"blks_read":443,"cache_hit_pct":99.09,"commits":522,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":34118,"tup_inserted":71,"tup_returned":146336,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T15:06:36.325Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:43:43.487Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T15:43:53.681Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T16:04:02.621Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T16:37:51.788Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T17:25:23.321Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T18:32:35.537Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":51107,"blks_read":443,"cache_hit_pct":99.14,"commits":556,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":36261,"tup_inserted":77,"tup_returned":154615,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T18:32:35.537Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T01:15:40.385Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":52671,"blks_read":443,"cache_hit_pct":99.17,"commits":574,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":37283,"tup_inserted":78,"tup_returned":161759,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T01:15:40.386Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T10:25:29.671Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":54235,"blks_read":443,"cache_hit_pct":99.19,"commits":592,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":38305,"tup_inserted":79,"tup_returned":168903,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T10:25:29.672Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T18:20:13.951Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":55857,"blks_read":443,"cache_hit_pct":99.21,"commits":611,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":39353,"tup_inserted":80,"tup_returned":176077,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T18:20:13.951Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T18:58:28.915Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":57497,"blks_read":443,"cache_hit_pct":99.24,"commits":631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":40390,"tup_inserted":81,"tup_returned":184460,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T18:58:28.916Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:03:28.867Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":59061,"blks_read":443,"cache_hit_pct":99.26,"commits":649,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":41412,"tup_inserted":82,"tup_returned":191604,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:03:28.868Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:08:28.885Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":60687,"blks_read":443,"cache_hit_pct":99.28,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":42460,"tup_inserted":83,"tup_returned":198778,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:08:28.885Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:13:28.893Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":62251,"blks_read":443,"cache_hit_pct":99.29,"commits":686,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":43482,"tup_inserted":84,"tup_returned":205922,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:13:28.893Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:18:28.877Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63815,"blks_read":443,"cache_hit_pct":99.31,"commits":704,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":44504,"tup_inserted":85,"tup_returned":213066,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:18:28.878Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:23:28.882Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":65361,"blks_read":443,"cache_hit_pct":99.33,"commits":721,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":45537,"tup_inserted":86,"tup_returned":218997,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:23:28.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:28:28.910Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66925,"blks_read":443,"cache_hit_pct":99.34,"commits":739,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":46559,"tup_inserted":87,"tup_returned":226141,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:28:28.910Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:33:28.895Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68489,"blks_read":443,"cache_hit_pct":99.36,"commits":757,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":47581,"tup_inserted":88,"tup_returned":233285,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:33:28.896Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T20:35:13.678Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70111,"blks_read":443,"cache_hit_pct":99.37,"commits":776,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":48629,"tup_inserted":89,"tup_returned":240455,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T20:35:13.678Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T03:25:02.889Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71675,"blks_read":443,"cache_hit_pct":99.39,"commits":794,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":49651,"tup_inserted":90,"tup_returned":247599,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T03:25:02.889Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T12:30:19.653Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":73239,"blks_read":443,"cache_hit_pct":99.4,"commits":812,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":50673,"tup_inserted":91,"tup_returned":254743,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T12:30:19.653Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:31:11.008Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":74937,"blks_read":443,"cache_hit_pct":99.41,"commits":833,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":51736,"tup_inserted":92,"tup_returned":263152,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:31:11.009Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:36:11.009Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":76501,"blks_read":443,"cache_hit_pct":99.42,"commits":851,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":52758,"tup_inserted":93,"tup_returned":270296,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:36:11.010Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:41:11.000Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":78065,"blks_read":443,"cache_hit_pct":99.44,"commits":869,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":53780,"tup_inserted":94,"tup_returned":277440,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:41:11.000Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:46:11.020Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":79687,"blks_read":443,"cache_hit_pct":99.45,"commits":888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":54828,"tup_inserted":95,"tup_returned":284610,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:46:11.021Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:51:11.018Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":81251,"blks_read":443,"cache_hit_pct":99.46,"commits":906,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":55850,"tup_inserted":96,"tup_returned":291754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:51:11.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:56:11.013Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":82815,"blks_read":443,"cache_hit_pct":99.47,"commits":924,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":56872,"tup_inserted":97,"tup_returned":298898,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:56:11.013Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:01:11.021Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":84437,"blks_read":443,"cache_hit_pct":99.48,"commits":943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":57920,"tup_inserted":98,"tup_returned":306068,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:01:11.022Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:06:11.035Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":86001,"blks_read":443,"cache_hit_pct":99.49,"commits":961,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":58942,"tup_inserted":99,"tup_returned":313212,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:06:11.036Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:11:11.025Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":87565,"blks_read":443,"cache_hit_pct":99.5,"commits":979,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":59964,"tup_inserted":100,"tup_returned":320356,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:11:11.026Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-28T14:12:19.857Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:12:19.922Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-28T14:12:34.918Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:12:34.931Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-28T14:12:34.933Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:12:34.900Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:12:34.928Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:12:34.931Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-28T14:12:34.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:12:34.929Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-28T14:12:34.994Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-28T14:12:35.002Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:12:35.043Z","counts":{"active":2,"idle":3,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94192,"blks_read":788,"cache_hit_pct":99.17,"commits":1008,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":64428,"tup_inserted":101,"tup_returned":328308,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:12:35.044Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-28T14:15:17.828Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:15:17.836Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:15:17.837Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-28T14:15:17.838Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:15:17.815Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:15:17.836Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:15:17.837Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-28T14:15:17.838Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-28T14:15:17.875Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-28T14:15:17.877Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:15:17.882Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:15:17.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:20:17.927Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15477,"blks_read":428,"cache_hit_pct":97.31,"commits":124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12249,"tup_inserted":11,"tup_returned":20337,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:20:17.931Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:25:17.905Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17041,"blks_read":428,"cache_hit_pct":97.55,"commits":142,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13271,"tup_inserted":12,"tup_returned":27481,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:25:17.906Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:30:17.891Z","counts":{"active":2,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18635,"blks_read":429,"cache_hit_pct":97.75,"commits":161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14308,"tup_inserted":13,"tup_returned":34641,"tup_updated":0},"locks":{"byMode":[{"count":2,"mode":"RowExclusiveLock"},{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":5,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:30:17.892Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:35:17.907Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":21297,"blks_read":435,"cache_hit_pct":98,"commits":207,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15826,"tup_inserted":16,"tup_returned":42806,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:35:17.907Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:40:17.905Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22861,"blks_read":435,"cache_hit_pct":98.13,"commits":225,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":16848,"tup_inserted":17,"tup_returned":49950,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:40:17.905Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:46:34.922Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":24349,"blks_read":435,"cache_hit_pct":98.24,"commits":241,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17855,"tup_inserted":18,"tup_returned":55855,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:46:34.923Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:53:15.603Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26047,"blks_read":435,"cache_hit_pct":98.36,"commits":262,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18918,"tup_inserted":19,"tup_returned":64266,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:53:15.604Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:06:41.971Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":27611,"blks_read":435,"cache_hit_pct":98.45,"commits":280,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":19940,"tup_inserted":20,"tup_returned":71410,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:06:41.971Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:21:54.523Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29251,"blks_read":435,"cache_hit_pct":98.53,"commits":300,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20977,"tup_inserted":21,"tup_returned":79793,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:21:54.524Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:45:40.544Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":30873,"blks_read":435,"cache_hit_pct":98.61,"commits":319,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22025,"tup_inserted":22,"tup_returned":86965,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:45:40.544Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:51:33.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":32437,"blks_read":435,"cache_hit_pct":98.68,"commits":337,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23047,"tup_inserted":23,"tup_returned":94109,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:51:33.117Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:56:33.083Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34001,"blks_read":435,"cache_hit_pct":98.74,"commits":355,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24069,"tup_inserted":24,"tup_returned":101253,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:56:33.083Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:01:33.097Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":35623,"blks_read":435,"cache_hit_pct":98.79,"commits":374,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":25117,"tup_inserted":25,"tup_returned":108425,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:01:33.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:06:33.098Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":37187,"blks_read":435,"cache_hit_pct":98.84,"commits":392,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26139,"tup_inserted":26,"tup_returned":115569,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:06:33.098Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:11:33.082Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38751,"blks_read":435,"cache_hit_pct":98.89,"commits":410,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27161,"tup_inserted":27,"tup_returned":122713,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:11:33.083Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:16:33.107Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40373,"blks_read":435,"cache_hit_pct":98.93,"commits":429,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":28209,"tup_inserted":28,"tup_returned":129885,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:16:33.107Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:21:33.110Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":41937,"blks_read":435,"cache_hit_pct":98.97,"commits":447,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29231,"tup_inserted":29,"tup_returned":137029,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:21:33.110Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:26:33.089Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":43501,"blks_read":435,"cache_hit_pct":99.01,"commits":465,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":30253,"tup_inserted":30,"tup_returned":144173,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:26:33.089Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:31:33.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":45123,"blks_read":435,"cache_hit_pct":99.05,"commits":484,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":31301,"tup_inserted":31,"tup_returned":151345,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:31:33.096Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:36:33.116Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46687,"blks_read":435,"cache_hit_pct":99.08,"commits":502,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":32323,"tup_inserted":32,"tup_returned":158489,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:36:33.116Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:41:33.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":48251,"blks_read":435,"cache_hit_pct":99.11,"commits":520,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":33345,"tup_inserted":33,"tup_returned":165633,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:41:33.096Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:46:33.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":49873,"blks_read":435,"cache_hit_pct":99.14,"commits":539,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":34393,"tup_inserted":34,"tup_returned":172805,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:46:33.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:51:33.132Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":51437,"blks_read":435,"cache_hit_pct":99.16,"commits":557,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":35415,"tup_inserted":35,"tup_returned":179949,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:51:33.133Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:56:33.108Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":53001,"blks_read":435,"cache_hit_pct":99.19,"commits":575,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":36437,"tup_inserted":36,"tup_returned":187093,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:56:33.108Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T17:01:33.143Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":54623,"blks_read":435,"cache_hit_pct":99.21,"commits":594,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":37485,"tup_inserted":37,"tup_returned":194265,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T17:01:33.144Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T17:06:33.139Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":56187,"blks_read":435,"cache_hit_pct":99.23,"commits":612,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":38507,"tup_inserted":38,"tup_returned":201409,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T17:06:33.139Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-30T13:19:43.367Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-30T13:19:43.375Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-30T13:19:43.376Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-30T13:19:43.377Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-30T13:19:43.356Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-30T13:19:43.376Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-30T13:19:43.377Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-30T13:19:43.378Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-30T13:19:43.418Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-30T13:19:43.421Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:19:43.426Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:19:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:24:43.426Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15695,"blks_read":434,"cache_hit_pct":97.31,"commits":124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12362,"tup_inserted":11,"tup_returned":20450,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:24:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:29:43.641Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17259,"blks_read":434,"cache_hit_pct":97.55,"commits":142,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13384,"tup_inserted":12,"tup_returned":27594,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:29:43.643Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:34:43.440Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18823,"blks_read":434,"cache_hit_pct":97.75,"commits":160,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14406,"tup_inserted":13,"tup_returned":34738,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:34:43.441Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:39:43.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20442,"blks_read":439,"cache_hit_pct":97.9,"commits":179,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":15454,"tup_inserted":14,"tup_returned":41910,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:39:43.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:44:43.481Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22006,"blks_read":439,"cache_hit_pct":98.04,"commits":197,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":16476,"tup_inserted":15,"tup_returned":49054,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:44:43.481Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:49:43.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":23570,"blks_read":439,"cache_hit_pct":98.17,"commits":215,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":17498,"tup_inserted":16,"tup_returned":56198,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:49:43.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:54:43.480Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":25192,"blks_read":439,"cache_hit_pct":98.29,"commits":234,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":18546,"tup_inserted":17,"tup_returned":63368,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:54:43.481Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:59:43.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26756,"blks_read":439,"cache_hit_pct":98.39,"commits":252,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":19568,"tup_inserted":18,"tup_returned":70512,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:59:43.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:04:43.493Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":28320,"blks_read":439,"cache_hit_pct":98.47,"commits":270,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":20590,"tup_inserted":19,"tup_returned":77656,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:04:43.493Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:09:43.498Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29942,"blks_read":439,"cache_hit_pct":98.56,"commits":289,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":21638,"tup_inserted":20,"tup_returned":84826,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:09:43.499Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:46:30.850Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31506,"blks_read":439,"cache_hit_pct":98.63,"commits":307,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":22660,"tup_inserted":21,"tup_returned":91970,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:46:30.850Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T18:51:29.963Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":33070,"blks_read":439,"cache_hit_pct":98.69,"commits":325,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":23682,"tup_inserted":22,"tup_returned":99114,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T18:51:29.963Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T00:21:44.220Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34692,"blks_read":439,"cache_hit_pct":98.75,"commits":344,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":24730,"tup_inserted":23,"tup_returned":106284,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T00:21:44.220Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T00:26:44.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36256,"blks_read":439,"cache_hit_pct":98.8,"commits":362,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":25752,"tup_inserted":24,"tup_returned":113428,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T00:26:44.238Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T04:22:41.576Z","counts":{"active":1,"idle":1,"total":11},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":37851,"blks_read":439,"cache_hit_pct":98.85,"commits":381,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":26789,"tup_inserted":25,"tup_returned":120588,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T04:22:41.577Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:37:07.488Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:51:40.806Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:51:57.805Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:53:46.040Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:53:47.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T08:54:34.280Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40479,"blks_read":439,"cache_hit_pct":98.93,"commits":414,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":28716,"tup_inserted":31,"tup_returned":128645,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T08:54:34.280Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:56:35.483Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:56:36.436Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:03:12.676Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:03:13.670Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:06:43.899Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":42625,"blks_read":439,"cache_hit_pct":98.98,"commits":442,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":30191,"tup_inserted":36,"tup_returned":137470,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:06:43.899Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:09:38.091Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:09:39.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:12:39.881Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":44367,"blks_read":439,"cache_hit_pct":99.02,"commits":462,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":31417,"tup_inserted":39,"tup_returned":143596,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:12:39.881Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:14:45.969Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:14:47.187Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:19:29.257Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46241,"blks_read":439,"cache_hit_pct":99.06,"commits":485,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":32684,"tup_inserted":42,"tup_returned":150987,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:19:29.258Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:22:15.571Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:22:16.839Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:26:49.061Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:27:40.830Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:31:35.996Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":50248,"blks_read":440,"cache_hit_pct":99.13,"commits":531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":35126,"tup_inserted":51,"tup_returned":160789,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:31:35.996Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:38:12.638Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:38:13.829Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:38:41.244Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":52149,"blks_read":440,"cache_hit_pct":99.16,"commits":555,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":36382,"tup_inserted":54,"tup_returned":169393,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:38:41.244Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:43:41.253Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":53780,"blks_read":440,"cache_hit_pct":99.19,"commits":574,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":37430,"tup_inserted":55,"tup_returned":176567,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:43:41.253Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:48:41.258Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":55342,"blks_read":440,"cache_hit_pct":99.21,"commits":592,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":38452,"tup_inserted":56,"tup_returned":183711,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:48:41.259Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:53:41.260Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":56828,"blks_read":440,"cache_hit_pct":99.23,"commits":608,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":39459,"tup_inserted":57,"tup_returned":189616,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:53:41.261Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:58:21.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:58:23.065Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:59:51.996Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":58698,"blks_read":440,"cache_hit_pct":99.26,"commits":631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":40726,"tup_inserted":60,"tup_returned":197011,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:59:51.996Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:05:26.883Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:20:27.176Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:22:02.109Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:22:03.326Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:23:18.265Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:24:43.337Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:26:47.659Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T15:03:41.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":61735,"blks_read":440,"cache_hit_pct":99.29,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":43062,"tup_inserted":68,"tup_returned":205481,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T15:03:41.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T22:53:17.428Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63373,"blks_read":440,"cache_hit_pct":99.31,"commits":688,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":44099,"tup_inserted":69,"tup_returned":213864,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T22:53:17.428Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T09:19:19.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":64993,"blks_read":440,"cache_hit_pct":99.33,"commits":707,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":45147,"tup_inserted":70,"tup_returned":221038,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T09:19:19.475Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T16:54:09.855Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66555,"blks_read":440,"cache_hit_pct":99.34,"commits":725,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":46169,"tup_inserted":71,"tup_returned":228182,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T16:54:09.855Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T20:39:01.477Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68117,"blks_read":440,"cache_hit_pct":99.36,"commits":743,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":47191,"tup_inserted":72,"tup_returned":235326,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T20:39:01.478Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T01:32:42.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":69741,"blks_read":440,"cache_hit_pct":99.37,"commits":762,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":48239,"tup_inserted":73,"tup_returned":242500,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T01:32:42.170Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T04:27:12.845Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71227,"blks_read":440,"cache_hit_pct":99.39,"commits":778,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":49246,"tup_inserted":74,"tup_returned":248405,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T04:27:12.846Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:02:09.056Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":72789,"blks_read":440,"cache_hit_pct":99.4,"commits":796,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":50268,"tup_inserted":75,"tup_returned":255549,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:02:09.056Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:07:09.070Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":74409,"blks_read":440,"cache_hit_pct":99.41,"commits":815,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":51316,"tup_inserted":76,"tup_returned":262719,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:07:09.070Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:12:09.079Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":75971,"blks_read":440,"cache_hit_pct":99.42,"commits":833,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":52338,"tup_inserted":77,"tup_returned":269863,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:12:09.079Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:17:09.071Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":77533,"blks_read":440,"cache_hit_pct":99.44,"commits":851,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":53360,"tup_inserted":78,"tup_returned":277007,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:17:09.071Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:22:09.075Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":79153,"blks_read":440,"cache_hit_pct":99.45,"commits":870,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":54408,"tup_inserted":79,"tup_returned":284177,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:22:09.075Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:27:09.093Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":80715,"blks_read":440,"cache_hit_pct":99.46,"commits":888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":55430,"tup_inserted":80,"tup_returned":291321,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:27:09.094Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:32:09.080Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":82277,"blks_read":440,"cache_hit_pct":99.47,"commits":906,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":56452,"tup_inserted":81,"tup_returned":298465,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:32:09.080Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:37:09.098Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":83897,"blks_read":440,"cache_hit_pct":99.48,"commits":925,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":57500,"tup_inserted":82,"tup_returned":305635,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:37:09.098Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:42:09.104Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":85459,"blks_read":440,"cache_hit_pct":99.49,"commits":943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":58522,"tup_inserted":83,"tup_returned":312779,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:42:09.104Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:47:09.100Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":87021,"blks_read":440,"cache_hit_pct":99.5,"commits":961,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":59544,"tup_inserted":84,"tup_returned":319923,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:47:09.100Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:52:09.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":88641,"blks_read":440,"cache_hit_pct":99.51,"commits":980,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":60592,"tup_inserted":85,"tup_returned":327093,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:52:09.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:57:09.126Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":90203,"blks_read":440,"cache_hit_pct":99.51,"commits":998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":61614,"tup_inserted":86,"tup_returned":334237,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:57:09.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:02:09.127Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":91765,"blks_read":440,"cache_hit_pct":99.52,"commits":1016,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":62636,"tup_inserted":87,"tup_returned":341381,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:02:09.127Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:07:09.154Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93385,"blks_read":440,"cache_hit_pct":99.53,"commits":1035,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":63684,"tup_inserted":88,"tup_returned":348551,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:07:09.154Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:12:09.146Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94947,"blks_read":440,"cache_hit_pct":99.54,"commits":1053,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":64706,"tup_inserted":89,"tup_returned":355695,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:12:09.146Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:17:09.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":96509,"blks_read":440,"cache_hit_pct":99.55,"commits":1071,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":65728,"tup_inserted":90,"tup_returned":362839,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:17:09.159Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:22:09.165Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":98129,"blks_read":440,"cache_hit_pct":99.55,"commits":1090,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":66776,"tup_inserted":91,"tup_returned":370009,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:22:09.165Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:27:09.180Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":99691,"blks_read":440,"cache_hit_pct":99.56,"commits":1108,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":67798,"tup_inserted":92,"tup_returned":377153,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:27:09.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:32:09.187Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":101253,"blks_read":440,"cache_hit_pct":99.57,"commits":1126,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":68820,"tup_inserted":93,"tup_returned":384297,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:32:09.188Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:37:09.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":102873,"blks_read":440,"cache_hit_pct":99.57,"commits":1145,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":69868,"tup_inserted":94,"tup_returned":391467,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:37:09.189Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:42:09.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":104435,"blks_read":440,"cache_hit_pct":99.58,"commits":1163,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":70890,"tup_inserted":95,"tup_returned":398611,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:42:09.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:47:09.212Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":105997,"blks_read":440,"cache_hit_pct":99.59,"commits":1181,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":71912,"tup_inserted":96,"tup_returned":405755,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:47:09.212Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T07:45:48.241Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":107541,"blks_read":440,"cache_hit_pct":99.59,"commits":1198,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":72945,"tup_inserted":97,"tup_returned":411686,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T07:45:48.241Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T09:29:39.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":109027,"blks_read":440,"cache_hit_pct":99.6,"commits":1214,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":73952,"tup_inserted":98,"tup_returned":417591,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T09:29:39.489Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-04-02T10:50:50.360Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:00:38.518Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-04-02T11:03:13.642Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:14:01.853Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":111400,"blks_read":440,"cache_hit_pct":99.61,"commits":1243,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":75646,"tup_inserted":102,"tup_returned":426637,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:14:01.854Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:19:01.871Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":113020,"blks_read":440,"cache_hit_pct":99.61,"commits":1262,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":76694,"tup_inserted":103,"tup_returned":433807,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:19:01.872Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:24:01.882Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114582,"blks_read":440,"cache_hit_pct":99.62,"commits":1280,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":77716,"tup_inserted":104,"tup_returned":440951,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:24:01.883Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-02T11:26:30.210Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-02T11:26:30.229Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:26:30.232Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-05T18:15:41.060Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-05T18:15:41.069Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-05T18:15:41.049Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-05T18:15:41.069Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-05T18:15:41.071Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-05T18:15:41.115Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-05T18:15:41.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:15:41.123Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":121301,"blks_read":785,"cache_hit_pct":99.36,"commits":1312,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":82184,"tup_inserted":105,"tup_returned":451355,"tup_updated":0},"locks":{"byMode":[{"count":7,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":9,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:15:41.123Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:20:41.094Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":132722,"blks_read":870,"cache_hit_pct":99.35,"commits":1419,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":91697,"tup_inserted":116,"tup_returned":467917,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:20:41.095Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:25:41.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":134284,"blks_read":870,"cache_hit_pct":99.36,"commits":1437,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":92719,"tup_inserted":117,"tup_returned":475061,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:25:41.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:30:41.089Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":135846,"blks_read":870,"cache_hit_pct":99.36,"commits":1455,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":93741,"tup_inserted":118,"tup_returned":482205,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:30:41.089Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:35:41.112Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":137461,"blks_read":875,"cache_hit_pct":99.37,"commits":1474,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":94789,"tup_inserted":119,"tup_returned":489375,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:35:41.112Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T19:08:02.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":139023,"blks_read":875,"cache_hit_pct":99.37,"commits":1492,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":95811,"tup_inserted":120,"tup_returned":496519,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T19:08:02.568Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T02:19:56.454Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140585,"blks_read":875,"cache_hit_pct":99.38,"commits":1510,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":96833,"tup_inserted":121,"tup_returned":503663,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T02:19:56.454Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T11:20:02.030Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":142206,"blks_read":876,"cache_hit_pct":99.39,"commits":1529,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":97881,"tup_inserted":122,"tup_returned":510833,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T11:20:02.030Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:15:15.780Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143768,"blks_read":876,"cache_hit_pct":99.39,"commits":1547,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":98903,"tup_inserted":123,"tup_returned":517977,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:15:15.780Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:20:15.771Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145330,"blks_read":876,"cache_hit_pct":99.4,"commits":1565,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":99925,"tup_inserted":124,"tup_returned":525121,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:20:15.771Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:25:15.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146950,"blks_read":876,"cache_hit_pct":99.41,"commits":1584,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":100973,"tup_inserted":125,"tup_returned":532291,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:25:15.820Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:30:15.791Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148512,"blks_read":876,"cache_hit_pct":99.41,"commits":1602,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":101995,"tup_inserted":126,"tup_returned":539435,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:30:15.791Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-07T16:16:20.119Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.127Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.130Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T16:16:20.094Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.128Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.131Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-07T16:16:20.178Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-07T16:16:20.182Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:16:20.191Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":169867,"blks_read":1245,"cache_hit_pct":99.27,"commits":1799,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":116092,"tup_inserted":136,"tup_returned":613344,"tup_updated":10},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:16:20.191Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:21:20.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":182530,"blks_read":1334,"cache_hit_pct":99.27,"commits":1922,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":126293,"tup_inserted":151,"tup_returned":630602,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:21:20.160Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:26:20.162Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184092,"blks_read":1334,"cache_hit_pct":99.28,"commits":1940,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":127315,"tup_inserted":152,"tup_returned":637746,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:26:20.163Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:31:20.152Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185654,"blks_read":1334,"cache_hit_pct":99.29,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":128337,"tup_inserted":153,"tup_returned":644890,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:31:20.154Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:36:20.166Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187272,"blks_read":1336,"cache_hit_pct":99.29,"commits":1977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":129385,"tup_inserted":154,"tup_returned":652064,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:36:20.168Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:41:20.168Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":188834,"blks_read":1336,"cache_hit_pct":99.3,"commits":1995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":130407,"tup_inserted":155,"tup_returned":659208,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:41:20.168Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:46:20.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190396,"blks_read":1336,"cache_hit_pct":99.3,"commits":2013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":131429,"tup_inserted":156,"tup_returned":666352,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:46:20.170Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:51:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":192016,"blks_read":1336,"cache_hit_pct":99.31,"commits":2032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":132477,"tup_inserted":157,"tup_returned":673526,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:51:20.190Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:56:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193578,"blks_read":1336,"cache_hit_pct":99.31,"commits":2050,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":133499,"tup_inserted":158,"tup_returned":680670,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:56:20.189Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:01:20.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195064,"blks_read":1336,"cache_hit_pct":99.32,"commits":2066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":134506,"tup_inserted":159,"tup_returned":686575,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:01:20.179Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:21:20.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201428,"blks_read":1336,"cache_hit_pct":99.34,"commits":2140,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":138646,"tup_inserted":163,"tup_returned":715211,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:21:20.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:41:20.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207734,"blks_read":1336,"cache_hit_pct":99.36,"commits":2213,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":142760,"tup_inserted":167,"tup_returned":743817,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:41:20.223Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:46:20.214Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209296,"blks_read":1336,"cache_hit_pct":99.37,"commits":2231,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":143782,"tup_inserted":168,"tup_returned":750961,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:46:20.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:51:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":210916,"blks_read":1336,"cache_hit_pct":99.37,"commits":2250,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":144830,"tup_inserted":169,"tup_returned":758135,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:51:20.236Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:56:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212478,"blks_read":1336,"cache_hit_pct":99.38,"commits":2268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":145852,"tup_inserted":170,"tup_returned":765279,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:56:20.235Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:01:20.228Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214040,"blks_read":1336,"cache_hit_pct":99.38,"commits":2286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":146874,"tup_inserted":171,"tup_returned":772423,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:01:20.228Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:06:20.252Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215660,"blks_read":1336,"cache_hit_pct":99.38,"commits":2305,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":147922,"tup_inserted":172,"tup_returned":779597,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:06:20.252Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-07T18:08:00.787Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T18:08:00.791Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-08T16:07:57.269Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.277Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-08T16:07:57.252Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.278Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.280Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:12:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233821,"blks_read":1766,"cache_hit_pct":99.25,"commits":2440,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":162139,"tup_inserted":184,"tup_returned":804351,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:12:57.317Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:17:57.328Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":235383,"blks_read":1766,"cache_hit_pct":99.26,"commits":2458,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":163161,"tup_inserted":185,"tup_returned":811495,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:17:57.328Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:22:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236945,"blks_read":1766,"cache_hit_pct":99.26,"commits":2476,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":164183,"tup_inserted":186,"tup_returned":818639,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:22:57.316Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:27:57.338Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238564,"blks_read":1771,"cache_hit_pct":99.26,"commits":2495,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":165231,"tup_inserted":187,"tup_returned":825813,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:27:57.339Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:32:57.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240126,"blks_read":1771,"cache_hit_pct":99.27,"commits":2513,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":166253,"tup_inserted":188,"tup_returned":832957,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:32:57.337Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:38:03.448Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241688,"blks_read":1771,"cache_hit_pct":99.27,"commits":2531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":167275,"tup_inserted":189,"tup_returned":840101,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:38:03.448Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:43:03.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243308,"blks_read":1771,"cache_hit_pct":99.28,"commits":2550,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":168323,"tup_inserted":190,"tup_returned":847271,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:43:03.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:48:03.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244870,"blks_read":1771,"cache_hit_pct":99.28,"commits":2568,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":169345,"tup_inserted":191,"tup_returned":854415,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:48:03.475Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:53:03.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246432,"blks_read":1771,"cache_hit_pct":99.29,"commits":2586,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":170367,"tup_inserted":192,"tup_returned":861559,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:53:03.463Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:58:03.488Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":248052,"blks_read":1771,"cache_hit_pct":99.29,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":171415,"tup_inserted":193,"tup_returned":868729,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:58:03.488Z"} diff --git a/logs/complete.log b/logs/complete.log deleted file mode 100644 index b39cc4343..000000000 --- a/logs/complete.log +++ /dev/null @@ -1,1107 +0,0 @@ -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-01T18:38:11.923Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-01T18:38:11.932Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-01T18:38:11.934Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-01T18:38:11.915Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-01T18:38:11.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-01T18:38:11.932Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-01T18:38:11.935Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-01T18:38:11.933Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-01T18:38:11.977Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-01T18:38:11.983Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:38:11.989Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70513,"blks_read":26,"cache_hit_pct":99.96,"commits":919,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":151,"tup_fetched":54148,"tup_inserted":3683,"tup_returned":102524,"tup_updated":274},"locks":{"byMode":[{"count":4,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":6,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:38:11.989Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-01T18:38:48.627Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T18:38:51.938Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T18:38:52.049Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:43:11.939Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93431,"blks_read":37,"cache_hit_pct":99.96,"commits":1161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":70219,"tup_inserted":3870,"tup_returned":125415,"tup_updated":400},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:43:11.940Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T18:48:11.975Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94991,"blks_read":37,"cache_hit_pct":99.96,"commits":1179,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":71241,"tup_inserted":3871,"tup_returned":132559,"tup_updated":400},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T18:48:11.975Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:10:26.747Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.817Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.819Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table user without access rights","timestamp":"2026-03-01T19:10:30.845Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.653Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.660Z","userId":3} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:13:23.247Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:13:33.583Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":108360,"blks_read":43,"cache_hit_pct":99.96,"commits":1314,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":79733,"tup_inserted":3985,"tup_returned":147886,"tup_updated":406},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:13:33.583Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.518Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.520Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table user without access rights","timestamp":"2026-03-01T19:13:43.407Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"AppSocket.getFiltersAndAttributes","line":455},"level":"warn","message":"User with id 3 requested table study_step without access rights","timestamp":"2026-03-01T19:13:43.410Z","userId":3} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:15:28.364Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.025Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.026Z","userId":3} -{"caller":{"column":21,"file":"pdfRPC.js","filePath":"/content-server/backend/webserver/rpcs/pdfRPC.js","function":"PDFRPC.request","line":33},"level":"info","message":"Calling RPC service with request: deleteAllAnnotations","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:15:42.989Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.emit","line":158},"level":"info","message":"Emitting event to RPC service...","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:15:42.990Z"} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:16:12.988Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:18:33.603Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114435,"blks_read":44,"cache_hit_pct":99.96,"commits":1400,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":83542,"tup_inserted":4013,"tup_returned":158072,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:18:33.604Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:23:33.595Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":116616,"blks_read":44,"cache_hit_pct":99.96,"commits":1421,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":84829,"tup_inserted":4057,"tup_returned":165612,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:23:33.595Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:28:33.592Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":118176,"blks_read":44,"cache_hit_pct":99.96,"commits":1439,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":85851,"tup_inserted":4058,"tup_returned":172756,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:28:33.593Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T19:33:33.620Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":119725,"blks_read":44,"cache_hit_pct":99.96,"commits":1456,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":86883,"tup_inserted":4059,"tup_returned":178690,"tup_updated":407},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T19:33:33.621Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-01T19:38:01.532Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-01T20:13:24.533Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":123233,"blks_read":44,"cache_hit_pct":99.96,"commits":1497,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":89137,"tup_inserted":4064,"tup_returned":188402,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-01T20:13:24.534Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T05:01:15.638Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":124793,"blks_read":44,"cache_hit_pct":99.96,"commits":1515,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":90159,"tup_inserted":4065,"tup_returned":195546,"tup_updated":418},"locks":{"byMode":[{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"RowExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":4,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T05:01:15.638Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T12:10:07.090Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":126418,"blks_read":44,"cache_hit_pct":99.97,"commits":1534,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":91206,"tup_inserted":4066,"tup_returned":202719,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T12:10:07.090Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T12:31:55.892Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T13:41:18.825Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:20:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":128464,"blks_read":44,"cache_hit_pct":99.97,"commits":1558,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":92666,"tup_inserted":4069,"tup_returned":210305,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:20:37.582Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:25:37.567Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":130024,"blks_read":44,"cache_hit_pct":99.97,"commits":1576,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":93688,"tup_inserted":4070,"tup_returned":217449,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:25:37.567Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:30:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":131649,"blks_read":44,"cache_hit_pct":99.97,"commits":1595,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":94735,"tup_inserted":4071,"tup_returned":224622,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:30:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:35:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":133209,"blks_read":44,"cache_hit_pct":99.97,"commits":1613,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":95757,"tup_inserted":4072,"tup_returned":231766,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:35:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:40:37.573Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":134769,"blks_read":44,"cache_hit_pct":99.97,"commits":1631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":96779,"tup_inserted":4073,"tup_returned":238910,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:40:37.573Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:45:37.596Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":136394,"blks_read":44,"cache_hit_pct":99.97,"commits":1650,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":97826,"tup_inserted":4074,"tup_returned":246083,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:45:37.596Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:50:37.609Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":137954,"blks_read":44,"cache_hit_pct":99.97,"commits":1668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":98848,"tup_inserted":4075,"tup_returned":253227,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:50:37.610Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T14:55:37.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140006,"blks_read":44,"cache_hit_pct":99.97,"commits":1688,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":100228,"tup_inserted":4086,"tup_returned":260730,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T14:55:37.581Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:00:37.611Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":141631,"blks_read":44,"cache_hit_pct":99.97,"commits":1707,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":101275,"tup_inserted":4087,"tup_returned":267903,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:00:37.612Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:05:37.597Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143191,"blks_read":44,"cache_hit_pct":99.97,"commits":1725,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":102297,"tup_inserted":4088,"tup_returned":275047,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:05:37.597Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:10:37.598Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":144751,"blks_read":44,"cache_hit_pct":99.97,"commits":1743,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":103319,"tup_inserted":4089,"tup_returned":282191,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:10:37.599Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:15:37.616Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146376,"blks_read":44,"cache_hit_pct":99.97,"commits":1762,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":104366,"tup_inserted":4090,"tup_returned":289364,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:15:37.616Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:20:37.628Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":147936,"blks_read":44,"cache_hit_pct":99.97,"commits":1780,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":105388,"tup_inserted":4091,"tup_returned":296508,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:20:37.628Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:25:37.614Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":149496,"blks_read":44,"cache_hit_pct":99.97,"commits":1798,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":106410,"tup_inserted":4092,"tup_returned":303652,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:25:37.615Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:30:37.641Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":151121,"blks_read":44,"cache_hit_pct":99.97,"commits":1817,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":107457,"tup_inserted":4093,"tup_returned":310825,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:30:37.642Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:35:37.651Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":152681,"blks_read":44,"cache_hit_pct":99.97,"commits":1835,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":108479,"tup_inserted":4094,"tup_returned":317969,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:35:37.651Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:40:37.649Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":154241,"blks_read":44,"cache_hit_pct":99.97,"commits":1853,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":109501,"tup_inserted":4095,"tup_returned":325113,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:40:37.650Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:45:38.181Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":155866,"blks_read":44,"cache_hit_pct":99.97,"commits":1872,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":110548,"tup_inserted":4096,"tup_returned":332286,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:45:38.182Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:51:53.200Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":157426,"blks_read":44,"cache_hit_pct":99.97,"commits":1890,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":111570,"tup_inserted":4097,"tup_returned":339430,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:51:53.200Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T15:59:32.372Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":158986,"blks_read":44,"cache_hit_pct":99.97,"commits":1908,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":112592,"tup_inserted":4098,"tup_returned":346574,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T15:59:32.372Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T16:04:32.377Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":160611,"blks_read":44,"cache_hit_pct":99.97,"commits":1927,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":113639,"tup_inserted":4099,"tup_returned":353747,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T16:04:32.378Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:15:21.050Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:31:06.281Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:31:07.562Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T16:31:19.987Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":162511,"blks_read":44,"cache_hit_pct":99.97,"commits":1948,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":115069,"tup_inserted":4103,"tup_returned":358855,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T16:31:19.987Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:32:17.029Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:32:25.713Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:42:48.853Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T16:43:29.397Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:47:19.872Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T17:01:26.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:04:52.978Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-02T17:04:54.264Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T17:04:57.540Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":165519,"blks_read":44,"cache_hit_pct":99.97,"commits":1984,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":117405,"tup_inserted":4112,"tup_returned":366104,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T17:04:57.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:06:44.692Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-02T21:08:48.837Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":167098,"blks_read":44,"cache_hit_pct":99.97,"commits":2004,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":118437,"tup_inserted":4114,"tup_returned":373259,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-02T21:08:48.837Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T00:32:32.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":168659,"blks_read":44,"cache_hit_pct":99.97,"commits":2022,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":119459,"tup_inserted":4115,"tup_returned":380403,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T00:32:32.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T07:02:24.245Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":170144,"blks_read":44,"cache_hit_pct":99.97,"commits":2038,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":153,"tup_fetched":120466,"tup_inserted":4116,"tup_returned":386308,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T07:02:24.246Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T09:51:49.877Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:07:16.781Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:11:35.764Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:11:43.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":172693,"blks_read":44,"cache_hit_pct":99.97,"commits":2064,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":122340,"tup_inserted":4120,"tup_returned":393089,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:11:43.820Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:14:54.156Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:14:55.150Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:16:48.960Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:16:49.643Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:19:24.743Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":174247,"blks_read":44,"cache_hit_pct":99.97,"commits":2088,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":123396,"tup_inserted":4125,"tup_returned":400270,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:19:24.744Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:26:05.259Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:26:06.234Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:28:01.215Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":176056,"blks_read":44,"cache_hit_pct":99.98,"commits":2110,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":124637,"tup_inserted":4128,"tup_returned":407635,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:28:01.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T10:33:21.227Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":177682,"blks_read":44,"cache_hit_pct":99.98,"commits":2129,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":125684,"tup_inserted":4129,"tup_returned":414804,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T10:33:21.227Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:04.351Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:05.367Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:11.398Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:13.034Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:39:29.169Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:39:30.933Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:42:03.151Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T10:42:04.757Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:05:36.053Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T11:05:37.140Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:08:00.529Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":180167,"blks_read":44,"cache_hit_pct":99.98,"commits":2163,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":127567,"tup_inserted":4140,"tup_returned":421593,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:08:00.530Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:13:00.518Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":181728,"blks_read":44,"cache_hit_pct":99.98,"commits":2181,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":128589,"tup_inserted":4141,"tup_returned":428737,"tup_updated":418},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:13:00.518Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:18:00.529Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185391,"blks_read":44,"cache_hit_pct":99.98,"commits":2204,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":130741,"tup_inserted":4142,"tup_returned":437094,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:18:00.529Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:23:00.546Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":186952,"blks_read":44,"cache_hit_pct":99.98,"commits":2222,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":131763,"tup_inserted":4143,"tup_returned":444238,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:23:00.547Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:27:42.699Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T11:27:55.976Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:28:00.542Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":189052,"blks_read":44,"cache_hit_pct":99.98,"commits":2246,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":133238,"tup_inserted":4146,"tup_returned":451838,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:28:00.543Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:33:00.557Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190387,"blks_read":44,"cache_hit_pct":99.98,"commits":2263,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":134051,"tup_inserted":4147,"tup_returned":458772,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:33:00.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:38:00.542Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":191948,"blks_read":44,"cache_hit_pct":99.98,"commits":2281,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":135073,"tup_inserted":4148,"tup_returned":465916,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:38:00.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:43:00.547Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193509,"blks_read":44,"cache_hit_pct":99.98,"commits":2299,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":136095,"tup_inserted":4149,"tup_returned":473060,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:43:00.548Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:48:00.583Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195135,"blks_read":44,"cache_hit_pct":99.98,"commits":2318,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":137142,"tup_inserted":4150,"tup_returned":480229,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:48:00.585Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:53:00.580Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196696,"blks_read":44,"cache_hit_pct":99.98,"commits":2336,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":138164,"tup_inserted":4151,"tup_returned":487373,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:53:00.580Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T11:58:00.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198257,"blks_read":44,"cache_hit_pct":99.98,"commits":2354,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":139186,"tup_inserted":4152,"tup_returned":494517,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T11:58:00.568Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:03:00.570Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199883,"blks_read":44,"cache_hit_pct":99.98,"commits":2373,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":140233,"tup_inserted":4153,"tup_returned":501686,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:03:00.571Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:08:00.592Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201444,"blks_read":44,"cache_hit_pct":99.98,"commits":2391,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":141255,"tup_inserted":4154,"tup_returned":508830,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:08:00.593Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:14:32.711Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T12:14:34.294Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:18:46.395Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":203177,"blks_read":44,"cache_hit_pct":99.98,"commits":2411,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":142481,"tup_inserted":4157,"tup_returned":514956,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:18:46.395Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:23:46.422Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204803,"blks_read":44,"cache_hit_pct":99.98,"commits":2430,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":143528,"tup_inserted":4158,"tup_returned":522125,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:23:46.422Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:28:46.413Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206364,"blks_read":44,"cache_hit_pct":99.98,"commits":2448,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":144550,"tup_inserted":4159,"tup_returned":529269,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:28:46.414Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:33:46.402Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207925,"blks_read":44,"cache_hit_pct":99.98,"commits":2466,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":145572,"tup_inserted":4160,"tup_returned":536413,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:33:46.403Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:38:46.420Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209551,"blks_read":44,"cache_hit_pct":99.98,"commits":2485,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":146619,"tup_inserted":4161,"tup_returned":543582,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:38:46.421Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:56:01.703Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T12:56:03.193Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T12:58:10.184Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":211286,"blks_read":44,"cache_hit_pct":99.98,"commits":2505,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":147845,"tup_inserted":4164,"tup_returned":549708,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T12:58:10.184Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:03:10.138Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212847,"blks_read":44,"cache_hit_pct":99.98,"commits":2523,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":148867,"tup_inserted":4165,"tup_returned":556852,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:03:10.138Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:08:10.171Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214473,"blks_read":44,"cache_hit_pct":99.98,"commits":2542,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":149914,"tup_inserted":4166,"tup_returned":564021,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:08:10.171Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:13:10.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":216034,"blks_read":44,"cache_hit_pct":99.98,"commits":2560,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":150936,"tup_inserted":4167,"tup_returned":571165,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:13:10.186Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:17:36.119Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T13:17:36.850Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:21:25.200Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":217843,"blks_read":44,"cache_hit_pct":99.98,"commits":2582,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":152177,"tup_inserted":4170,"tup_returned":578530,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:21:25.200Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:32:49.720Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T13:32:50.822Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:33:22.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":219717,"blks_read":44,"cache_hit_pct":99.98,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":153443,"tup_inserted":4173,"tup_returned":585920,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:33:22.192Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:38:22.202Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":221278,"blks_read":44,"cache_hit_pct":99.98,"commits":2623,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":154465,"tup_inserted":4174,"tup_returned":593064,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:38:22.202Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:43:22.193Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222839,"blks_read":44,"cache_hit_pct":99.98,"commits":2641,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":155487,"tup_inserted":4175,"tup_returned":600208,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:43:22.194Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T13:48:22.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":224465,"blks_read":44,"cache_hit_pct":99.98,"commits":2660,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":156534,"tup_inserted":4176,"tup_returned":607377,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T13:48:22.208Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:11:10.614Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T14:11:11.736Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T14:43:25.667Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":226274,"blks_read":44,"cache_hit_pct":99.98,"commits":2682,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":157775,"tup_inserted":4179,"tup_returned":614742,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T14:43:25.668Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:43:37.534Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T14:43:39.297Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:08:15.541Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:08:16.916Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:08.829Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:10.023Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:21.006Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:22.475Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:50:46.664Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T15:50:47.722Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:09:58.753Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:10:00.316Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:12.851Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:25.735Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T16:32:36.983Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":229862,"blks_read":44,"cache_hit_pct":99.98,"commits":2730,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":160564,"tup_inserted":4194,"tup_returned":623668,"tup_updated":428},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T16:32:36.984Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:33:23.147Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:35:06.957Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:35:08.721Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:38:26.725Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:38:45.572Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:01.861Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:02.540Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:47.503Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:45:13.350Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T16:56:59.140Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233482,"blks_read":44,"cache_hit_pct":99.98,"commits":2774,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":163293,"tup_inserted":4204,"tup_returned":633757,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T16:56:59.140Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:57:21.230Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T16:57:49.362Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:00:54.150Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:00:55.648Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:06:09.779Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:11:44.002Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:28:47.333Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:28:48.269Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T17:58:37.732Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236591,"blks_read":44,"cache_hit_pct":99.98,"commits":2814,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":165644,"tup_inserted":4213,"tup_returned":643466,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T17:58:37.733Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:58:41.750Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-03T17:58:42.637Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T18:16:47.042Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T19:24:55.999Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238328,"blks_read":44,"cache_hit_pct":99.98,"commits":2835,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":166870,"tup_inserted":4217,"tup_returned":649592,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T19:24:55.999Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-03T22:58:34.671Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240030,"blks_read":44,"cache_hit_pct":99.98,"commits":2856,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":167932,"tup_inserted":4218,"tup_returned":658000,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-03T22:58:34.672Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:06:56.082Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241439,"blks_read":44,"cache_hit_pct":99.98,"commits":2870,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":168924,"tup_inserted":4219,"tup_returned":662666,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:06:56.082Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:11:56.090Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243000,"blks_read":44,"cache_hit_pct":99.98,"commits":2888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":169946,"tup_inserted":4220,"tup_returned":669810,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:11:56.090Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:16:56.108Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244626,"blks_read":44,"cache_hit_pct":99.98,"commits":2907,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":170993,"tup_inserted":4221,"tup_returned":676979,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:16:56.109Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:21:56.106Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246187,"blks_read":44,"cache_hit_pct":99.98,"commits":2925,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":172015,"tup_inserted":4222,"tup_returned":684123,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:21:56.107Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:26:56.092Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":247748,"blks_read":44,"cache_hit_pct":99.98,"commits":2943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":173037,"tup_inserted":4223,"tup_returned":691267,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:26:56.094Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:31:56.113Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":249376,"blks_read":44,"cache_hit_pct":99.98,"commits":2962,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":174084,"tup_inserted":4224,"tup_returned":698436,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:31:56.113Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:36:56.114Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":250941,"blks_read":44,"cache_hit_pct":99.98,"commits":2980,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":175106,"tup_inserted":4225,"tup_returned":705580,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:36:56.114Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:41:56.106Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":252502,"blks_read":44,"cache_hit_pct":99.98,"commits":2998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":176128,"tup_inserted":4226,"tup_returned":712724,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:41:56.106Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:46:56.126Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":254128,"blks_read":44,"cache_hit_pct":99.98,"commits":3017,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":177175,"tup_inserted":4227,"tup_returned":719893,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:46:56.127Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:51:56.120Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":255689,"blks_read":44,"cache_hit_pct":99.98,"commits":3035,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":178197,"tup_inserted":4228,"tup_returned":727037,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:51:56.121Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T00:56:56.129Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":257250,"blks_read":44,"cache_hit_pct":99.98,"commits":3053,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":179219,"tup_inserted":4229,"tup_returned":734181,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T00:56:56.130Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T01:01:56.154Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":258876,"blks_read":44,"cache_hit_pct":99.98,"commits":3072,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":180266,"tup_inserted":4230,"tup_returned":741350,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T01:01:56.155Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T01:06:56.146Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":260437,"blks_read":44,"cache_hit_pct":99.98,"commits":3090,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":157,"tup_fetched":181288,"tup_inserted":4231,"tup_returned":748494,"tup_updated":438},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T01:06:56.146Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-04T15:00:57.606Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-04T15:00:57.614Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-04T15:00:57.595Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-04T15:00:57.615Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-04T15:00:57.617Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-04T15:00:57.616Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-04T15:00:57.660Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-04T15:00:57.662Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:00:57.670Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5755,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:00:57.670Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:00:57.737Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:05:57.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17171,"blks_read":426,"cache_hit_pct":97.58,"commits":125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13402,"tup_inserted":12,"tup_returned":21491,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:05:57.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:10:57.640Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18732,"blks_read":426,"cache_hit_pct":97.78,"commits":143,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14424,"tup_inserted":13,"tup_returned":28635,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:10:57.640Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:12:44.213Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:12:45.548Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:25:04.002Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:25:05.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:32:54.070Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20713,"blks_read":426,"cache_hit_pct":97.98,"commits":167,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15869,"tup_inserted":18,"tup_returned":34982,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:32:54.070Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:35:36.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:35:37.531Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T15:40:39.404Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22583,"blks_read":430,"cache_hit_pct":98.13,"commits":190,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17135,"tup_inserted":21,"tup_returned":42372,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T15:40:39.404Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:27.591Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:28.774Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:39.476Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:41.069Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:58:01.981Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T15:58:03.231Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T16:02:01.924Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":24888,"blks_read":430,"cache_hit_pct":98.3,"commits":220,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18814,"tup_inserted":28,"tup_returned":50179,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T16:02:01.925Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:05:44.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:05:46.164Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:18:13.912Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:18:21.437Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T16:20:52.253Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26945,"blks_read":430,"cache_hit_pct":98.43,"commits":246,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20274,"tup_inserted":33,"tup_returned":57765,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T16:20:52.253Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:21:13.812Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:21:15.086Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:22:31.326Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:34:40.377Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:42:55.438Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:21.418Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:21.422Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:23.655Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:52:22.996Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-04T17:40:50.701Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":30047,"blks_read":430,"cache_hit_pct":98.59,"commits":286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22635,"tup_inserted":43,"tup_returned":66260,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-04T17:40:50.702Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T01:53:29.522Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31608,"blks_read":430,"cache_hit_pct":98.66,"commits":304,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23657,"tup_inserted":44,"tup_returned":73404,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T01:53:29.523Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T11:55:40.171Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":33169,"blks_read":430,"cache_hit_pct":98.72,"commits":322,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24679,"tup_inserted":45,"tup_returned":80548,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T11:55:40.171Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T12:47:25.821Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T12:58:56.856Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T12:59:06.916Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:10:37.246Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":35363,"blks_read":430,"cache_hit_pct":98.8,"commits":350,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26179,"tup_inserted":49,"tup_returned":89398,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:10:37.246Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:15:37.244Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36924,"blks_read":430,"cache_hit_pct":98.85,"commits":368,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27201,"tup_inserted":50,"tup_returned":96542,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:15:37.245Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:24:03.088Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:24:03.581Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38485,"blks_read":430,"cache_hit_pct":98.9,"commits":386,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":28223,"tup_inserted":51,"tup_returned":103686,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:24:03.581Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:24:04.782Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:36:16.530Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:36:18.017Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:42:33.365Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40216,"blks_read":431,"cache_hit_pct":98.94,"commits":407,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29459,"tup_inserted":56,"tup_returned":108598,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:42:33.365Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-05T13:47:28.146Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-05T13:47:28.163Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:47:28.171Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-05T13:47:47.572Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-05T13:47:47.581Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-05T13:47:47.580Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-05T13:47:47.582Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-05T13:47:47.558Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-05T13:47:47.582Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-05T13:47:47.583Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-05T13:47:47.580Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-05T13:47:47.624Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-05T13:47:47.627Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:47:47.634Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":47086,"blks_read":776,"cache_hit_pct":98.38,"commits":443,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":33957,"tup_inserted":57,"tup_returned":121480,"tup_updated":0},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:47:47.634Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:47:47.720Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T13:52:47.604Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":59335,"blks_read":871,"cache_hit_pct":98.55,"commits":553,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":44207,"tup_inserted":69,"tup_returned":138780,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T13:52:47.604Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:58:27.634Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:58:28.447Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:59:48.521Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T13:59:49.786Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:02:22.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:02:23.323Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:04:29.892Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":61564,"blks_read":871,"cache_hit_pct":98.6,"commits":581,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":45871,"tup_inserted":76,"tup_returned":145348,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:04:29.892Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:18:31.136Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:18:32.129Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:20:00.267Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63373,"blks_read":871,"cache_hit_pct":98.64,"commits":603,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":47112,"tup_inserted":79,"tup_returned":152713,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:20:00.267Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:20:52.611Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:20:53.380Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:25:59.091Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":65243,"blks_read":875,"cache_hit_pct":98.68,"commits":626,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":48378,"tup_inserted":82,"tup_returned":160103,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:25:59.091Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:32:24.849Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T14:32:25.649Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66804,"blks_read":875,"cache_hit_pct":98.71,"commits":644,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":49400,"tup_inserted":83,"tup_returned":167247,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T14:32:25.649Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T14:32:26.113Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:08:26.633Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:08:27.487Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:09:20.760Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68621,"blks_read":875,"cache_hit_pct":98.74,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":50641,"tup_inserted":88,"tup_returned":174612,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:09:20.760Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:14:20.792Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70247,"blks_read":875,"cache_hit_pct":98.77,"commits":687,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":51688,"tup_inserted":89,"tup_returned":181781,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:14:20.792Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:19:20.786Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71808,"blks_read":875,"cache_hit_pct":98.8,"commits":705,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":52710,"tup_inserted":90,"tup_returned":188925,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:19:20.787Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:24:20.777Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":73369,"blks_read":875,"cache_hit_pct":98.82,"commits":723,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":53732,"tup_inserted":91,"tup_returned":196069,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:24:20.778Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:25:04.254Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:25:05.708Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:37:21.233Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T15:37:21.928Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:40:51.351Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":75491,"blks_read":875,"cache_hit_pct":98.85,"commits":750,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":55217,"tup_inserted":96,"tup_returned":203680,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:40:51.351Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:45:51.358Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":77052,"blks_read":875,"cache_hit_pct":98.88,"commits":768,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":56239,"tup_inserted":97,"tup_returned":210824,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:45:51.359Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:50:51.341Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":78613,"blks_read":875,"cache_hit_pct":98.9,"commits":786,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":57261,"tup_inserted":98,"tup_returned":217968,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:50:51.341Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T15:55:51.353Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":80239,"blks_read":875,"cache_hit_pct":98.92,"commits":805,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":58308,"tup_inserted":99,"tup_returned":225137,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T15:55:51.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:00:51.364Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":81800,"blks_read":875,"cache_hit_pct":98.94,"commits":823,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":59330,"tup_inserted":100,"tup_returned":232281,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:00:51.364Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:05:51.352Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":83361,"blks_read":875,"cache_hit_pct":98.96,"commits":841,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":60352,"tup_inserted":101,"tup_returned":239425,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:05:51.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:10:51.392Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":84987,"blks_read":875,"cache_hit_pct":98.98,"commits":860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":61399,"tup_inserted":102,"tup_returned":246594,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:10:51.393Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:15:51.381Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":86472,"blks_read":875,"cache_hit_pct":99,"commits":876,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":62406,"tup_inserted":103,"tup_returned":252499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:15:51.382Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:20:51.388Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":88033,"blks_read":875,"cache_hit_pct":99.02,"commits":894,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":63428,"tup_inserted":104,"tup_returned":259643,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:20:51.388Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T16:32:14.961Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":89659,"blks_read":875,"cache_hit_pct":99.03,"commits":913,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":64475,"tup_inserted":105,"tup_returned":266812,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T16:32:14.961Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T16:59:20.492Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-05T16:59:32.725Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T17:01:17.429Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T18:44:38.266Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":91876,"blks_read":875,"cache_hit_pct":99.06,"commits":938,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":66139,"tup_inserted":109,"tup_returned":273380,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T18:44:38.266Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-05T22:39:00.745Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93361,"blks_read":875,"cache_hit_pct":99.07,"commits":954,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":67146,"tup_inserted":110,"tup_returned":279285,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-05T22:39:00.745Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T01:38:52.798Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":95139,"blks_read":875,"cache_hit_pct":99.09,"commits":977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":68223,"tup_inserted":111,"tup_returned":288932,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T01:38:52.798Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T07:46:00.869Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":96700,"blks_read":875,"cache_hit_pct":99.1,"commits":995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":69245,"tup_inserted":112,"tup_returned":296076,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T07:46:00.869Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T11:21:29.086Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":98261,"blks_read":875,"cache_hit_pct":99.12,"commits":1013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":70267,"tup_inserted":113,"tup_returned":303220,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T11:21:29.087Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T14:07:48.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":100039,"blks_read":875,"cache_hit_pct":99.13,"commits":1036,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":71344,"tup_inserted":114,"tup_returned":312867,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T14:07:48.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T17:10:43.725Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":101524,"blks_read":875,"cache_hit_pct":99.15,"commits":1052,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":72351,"tup_inserted":115,"tup_returned":318772,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T17:10:43.726Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T21:14:42.557Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":103085,"blks_read":875,"cache_hit_pct":99.16,"commits":1070,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":73373,"tup_inserted":116,"tup_returned":325916,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T21:14:42.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-06T23:51:01.043Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":104711,"blks_read":875,"cache_hit_pct":99.17,"commits":1089,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":74420,"tup_inserted":117,"tup_returned":333085,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-06T23:51:01.044Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T04:15:05.625Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":106196,"blks_read":875,"cache_hit_pct":99.18,"commits":1105,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":75427,"tup_inserted":118,"tup_returned":338990,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T04:15:05.625Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T07:52:33.547Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":107833,"blks_read":875,"cache_hit_pct":99.2,"commits":1125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":76464,"tup_inserted":119,"tup_returned":347373,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T07:52:33.547Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T12:07:27.022Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":109459,"blks_read":875,"cache_hit_pct":99.21,"commits":1144,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":77511,"tup_inserted":120,"tup_returned":354542,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T12:07:27.022Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T15:02:13.796Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":111021,"blks_read":876,"cache_hit_pct":99.22,"commits":1162,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":78533,"tup_inserted":121,"tup_returned":361686,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T15:02:13.796Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T18:36:53.414Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":112658,"blks_read":876,"cache_hit_pct":99.23,"commits":1182,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":79570,"tup_inserted":122,"tup_returned":370069,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T18:36:53.415Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-07T20:03:58.034Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114208,"blks_read":876,"cache_hit_pct":99.24,"commits":1199,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":80602,"tup_inserted":123,"tup_returned":375999,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-07T20:03:58.035Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T00:18:34.310Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":115845,"blks_read":876,"cache_hit_pct":99.25,"commits":1219,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":81639,"tup_inserted":124,"tup_returned":384382,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T00:18:34.311Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T02:53:02.834Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":117330,"blks_read":876,"cache_hit_pct":99.26,"commits":1235,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":82646,"tup_inserted":125,"tup_returned":390287,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T02:53:02.835Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T08:10:09.962Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":119032,"blks_read":876,"cache_hit_pct":99.27,"commits":1256,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":83708,"tup_inserted":126,"tup_returned":398695,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T08:10:09.962Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T12:38:00.518Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":120593,"blks_read":876,"cache_hit_pct":99.28,"commits":1274,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":84730,"tup_inserted":127,"tup_returned":405839,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T12:38:00.518Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T15:31:39.943Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":122078,"blks_read":876,"cache_hit_pct":99.29,"commits":1290,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":85737,"tup_inserted":128,"tup_returned":411744,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T15:31:39.944Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T17:53:20.859Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":123856,"blks_read":876,"cache_hit_pct":99.3,"commits":1313,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":86814,"tup_inserted":129,"tup_returned":421391,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T17:53:20.859Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T19:52:36.787Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":125341,"blks_read":876,"cache_hit_pct":99.31,"commits":1329,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":87821,"tup_inserted":130,"tup_returned":427296,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T19:52:36.788Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-08T22:06:46.362Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":126902,"blks_read":876,"cache_hit_pct":99.31,"commits":1347,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":88843,"tup_inserted":131,"tup_returned":434440,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-08T22:06:46.362Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T00:57:49.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":128604,"blks_read":876,"cache_hit_pct":99.32,"commits":1368,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":89905,"tup_inserted":132,"tup_returned":442848,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T00:57:49.822Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T07:08:43.693Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":130165,"blks_read":876,"cache_hit_pct":99.33,"commits":1386,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":90927,"tup_inserted":133,"tup_returned":449992,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T07:08:43.694Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T10:10:37.072Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":131650,"blks_read":876,"cache_hit_pct":99.34,"commits":1402,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":91934,"tup_inserted":134,"tup_returned":455897,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T10:10:37.073Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T13:59:50.955Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T14:00:03.834Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":133520,"blks_read":876,"cache_hit_pct":99.35,"commits":1424,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":93200,"tup_inserted":136,"tup_returned":463287,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T14:00:03.834Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:01:17.498Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T14:01:19.722Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:15:23.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:42:57.401Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T14:43:09.190Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:46:17.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:04:26.513Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:04:30.147Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":136812,"blks_read":876,"cache_hit_pct":99.36,"commits":1461,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":95721,"tup_inserted":144,"tup_returned":471941,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:04:30.147Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:16:03.444Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:16:05.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:23:09.480Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:23:11.037Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:24:27.531Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":139006,"blks_read":876,"cache_hit_pct":99.37,"commits":1491,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":97175,"tup_inserted":149,"tup_returned":481970,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:24:27.531Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:29:57.559Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:29:58.374Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:33:21.761Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140804,"blks_read":876,"cache_hit_pct":99.38,"commits":1512,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":98426,"tup_inserted":152,"tup_returned":488121,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:33:21.761Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:38:21.762Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":142365,"blks_read":876,"cache_hit_pct":99.39,"commits":1530,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":99448,"tup_inserted":153,"tup_returned":495265,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:38:21.762Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:43:21.753Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143926,"blks_read":876,"cache_hit_pct":99.4,"commits":1548,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":100470,"tup_inserted":154,"tup_returned":502409,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:43:21.754Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:49:32.205Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T15:49:33.045Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:53:56.479Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145800,"blks_read":876,"cache_hit_pct":99.4,"commits":1571,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":101736,"tup_inserted":157,"tup_returned":509799,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:53:56.479Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T15:58:56.486Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":147361,"blks_read":876,"cache_hit_pct":99.41,"commits":1589,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":102758,"tup_inserted":158,"tup_returned":516943,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T15:58:56.486Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:03:56.477Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148922,"blks_read":876,"cache_hit_pct":99.42,"commits":1607,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":103780,"tup_inserted":159,"tup_returned":524087,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:03:56.477Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:08:56.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":150548,"blks_read":876,"cache_hit_pct":99.42,"commits":1626,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":104827,"tup_inserted":160,"tup_returned":531256,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:08:56.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:13:56.501Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":152109,"blks_read":876,"cache_hit_pct":99.43,"commits":1644,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":105849,"tup_inserted":161,"tup_returned":538400,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:13:56.502Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:18:56.495Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":153670,"blks_read":876,"cache_hit_pct":99.43,"commits":1662,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":106871,"tup_inserted":162,"tup_returned":545544,"tup_updated":20},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:18:56.495Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-09T16:20:56.759Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:21:00.022Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:21:00.118Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:22:13.661Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T16:23:24.539Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.813Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.814Z","userId":1} -{"caller":{"column":21,"file":"pdfRPC.js","filePath":"/content-server/backend/webserver/rpcs/pdfRPC.js","function":"PDFRPC.request","line":33},"level":"info","message":"Calling RPC service with request: deleteAllAnnotations","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:23:35.780Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.emit","line":158},"level":"info","message":"Emitting event to RPC service...","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:23:35.781Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:23:56.513Z","counts":{"active":1,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":161976,"blks_read":919,"cache_hit_pct":99.44,"commits":1819,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":1,"tup_fetched":111759,"tup_inserted":188,"tup_returned":558405,"tup_updated":28},"locks":{"byMode":[{"count":6,"mode":"RowShareLock"},{"count":3,"mode":"ExclusiveLock"},{"count":2,"mode":"RowExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":12,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:23:56.513Z"} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:24:05.785Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-09T16:25:07.581Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.command","line":100},"level":"info","message":"Client command getStatus with data [object Object]","service":"Service/NLPService","timestamp":"2026-03-09T16:25:53.353Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.command","line":100},"level":"info","message":"Client command getStatus with data [object Object]","service":"Service/NLPService","timestamp":"2026-03-09T16:25:53.359Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-09T16:25:56.652Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:28:24.780Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:28:26.211Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:29:21.310Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":172459,"blks_read":954,"cache_hit_pct":99.45,"commits":1938,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":118243,"tup_inserted":263,"tup_returned":574265,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:29:21.310Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:38:49.342Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:38:50.298Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T16:43:34.962Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":174194,"blks_read":954,"cache_hit_pct":99.46,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":119469,"tup_inserted":266,"tup_returned":580391,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T16:43:34.962Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:45:25.479Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:53:55.189Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:58:19.800Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T16:58:36.125Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:00:51.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:00:53.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:08:47.960Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T17:08:52.449Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":177627,"blks_read":954,"cache_hit_pct":99.47,"commits":1998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":122030,"tup_inserted":274,"tup_returned":590310,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T17:08:52.449Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:12:25.755Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:20:25.614Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-09T17:20:48.106Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T18:18:36.023Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":179341,"blks_read":954,"cache_hit_pct":99.47,"commits":2021,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":123290,"tup_inserted":278,"tup_returned":596473,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T18:18:36.023Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T21:52:17.084Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":180902,"blks_read":954,"cache_hit_pct":99.48,"commits":2039,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":124312,"tup_inserted":279,"tup_returned":603617,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T21:52:17.085Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-09T22:50:59.216Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-09T22:51:04.214Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":183159,"blks_read":954,"cache_hit_pct":99.48,"commits":2065,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":125823,"tup_inserted":281,"tup_returned":611256,"tup_updated":39},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-09T22:51:04.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T04:17:43.894Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184675,"blks_read":954,"cache_hit_pct":99.49,"commits":2088,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":126673,"tup_inserted":282,"tup_returned":617100,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T04:17:43.895Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T06:26:05.042Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":186160,"blks_read":954,"cache_hit_pct":99.49,"commits":2104,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":127680,"tup_inserted":283,"tup_returned":623005,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T06:26:05.042Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:16:04.119Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187786,"blks_read":954,"cache_hit_pct":99.49,"commits":2123,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":128727,"tup_inserted":284,"tup_returned":630175,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:16:04.119Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:21:04.125Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":189347,"blks_read":954,"cache_hit_pct":99.5,"commits":2141,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":129749,"tup_inserted":285,"tup_returned":637319,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:21:04.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:26:04.122Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190908,"blks_read":954,"cache_hit_pct":99.5,"commits":2159,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":130771,"tup_inserted":286,"tup_returned":644463,"tup_updated":40},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:26:04.123Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T09:26:27.862Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-10T09:26:36.371Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T09:29:46.246Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T09:50:22.876Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195281,"blks_read":954,"cache_hit_pct":99.51,"commits":2217,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":133411,"tup_inserted":295,"tup_returned":653457,"tup_updated":42},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T09:50:22.876Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:07:46.671Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:08:42.241Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":197744,"blks_read":954,"cache_hit_pct":99.52,"commits":2251,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":134959,"tup_inserted":297,"tup_returned":661230,"tup_updated":43},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:08:42.242Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:25:33.656Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:28:59.450Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":200132,"blks_read":954,"cache_hit_pct":99.53,"commits":2283,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":136492,"tup_inserted":299,"tup_returned":667764,"tup_updated":44},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:28:59.451Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:29:31.128Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:30:36.399Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:31:35.973Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:33:32.487Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:33:59.449Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":205282,"blks_read":954,"cache_hit_pct":99.54,"commits":2366,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":139598,"tup_inserted":304,"tup_returned":677404,"tup_updated":48},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:33:59.450Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:34:31.397Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:37:56.088Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:38:59.474Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":208650,"blks_read":954,"cache_hit_pct":99.54,"commits":2416,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":141672,"tup_inserted":307,"tup_returned":685806,"tup_updated":50},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:38:59.474Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:40:20.365Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:41:50.929Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:43:59.462Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":211929,"blks_read":954,"cache_hit_pct":99.55,"commits":2466,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":143701,"tup_inserted":310,"tup_returned":694162,"tup_updated":52},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:43:59.462Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:45:49.668Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:47:20.808Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:48:59.481Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215273,"blks_read":954,"cache_hit_pct":99.56,"commits":2517,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":145755,"tup_inserted":313,"tup_returned":702544,"tup_updated":54},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:48:59.481Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:51:08.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:53:59.502Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":217738,"blks_read":954,"cache_hit_pct":99.56,"commits":2551,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":147303,"tup_inserted":315,"tup_returned":710317,"tup_updated":55},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:53:59.503Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:54:25.742Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:57:09.770Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T15:58:59.506Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":221017,"blks_read":954,"cache_hit_pct":99.57,"commits":2601,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":149332,"tup_inserted":318,"tup_returned":718673,"tup_updated":57},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T15:58:59.506Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T15:59:09.122Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:03:59.517Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":223567,"blks_read":954,"cache_hit_pct":99.58,"commits":2636,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":150956,"tup_inserted":320,"tup_returned":726521,"tup_updated":68},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:03:59.518Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:04:37.778Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:06:35.307Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:08:22.557Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:08:59.521Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":227838,"blks_read":954,"cache_hit_pct":99.58,"commits":2702,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":153556,"tup_inserted":324,"tup_returned":735552,"tup_updated":71},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:08:59.522Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:10:22.925Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:13:59.527Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":230214,"blks_read":954,"cache_hit_pct":99.59,"commits":2736,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":155059,"tup_inserted":326,"tup_returned":743279,"tup_updated":72},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:13:59.528Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:14:20.616Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:15:54.528Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:18:16.012Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:18:59.526Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":234461,"blks_read":954,"cache_hit_pct":99.59,"commits":2803,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":157639,"tup_inserted":330,"tup_returned":752290,"tup_updated":75},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:18:59.526Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:22:26.100Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:23:59.541Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236926,"blks_read":954,"cache_hit_pct":99.6,"commits":2837,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":159187,"tup_inserted":332,"tup_returned":760063,"tup_updated":76},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:23:59.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T16:28:59.538Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238490,"blks_read":954,"cache_hit_pct":99.6,"commits":2855,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":160209,"tup_inserted":333,"tup_returned":767207,"tup_updated":76},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T16:28:59.538Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T16:30:09.353Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T17:05:05.802Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241011,"blks_read":954,"cache_hit_pct":99.61,"commits":2892,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":161752,"tup_inserted":335,"tup_returned":776199,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T17:05:05.802Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T19:31:55.030Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":242497,"blks_read":954,"cache_hit_pct":99.61,"commits":2908,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":162759,"tup_inserted":336,"tup_returned":782104,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T19:31:55.033Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-10T23:35:45.915Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244135,"blks_read":954,"cache_hit_pct":99.61,"commits":2928,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":163796,"tup_inserted":337,"tup_returned":790487,"tup_updated":77},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-10T23:35:45.915Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T23:55:26.522Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-10T23:58:35.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:00:12.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":247492,"blks_read":954,"cache_hit_pct":99.62,"commits":2977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":165880,"tup_inserted":340,"tup_returned":797676,"tup_updated":79},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:00:12.179Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:03:13.811Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:17:03.342Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":249944,"blks_read":954,"cache_hit_pct":99.62,"commits":3013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":167398,"tup_inserted":342,"tup_returned":806642,"tup_updated":80},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:17:03.342Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:21:28.320Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:43:48.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:44:25.227Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":253147,"blks_read":954,"cache_hit_pct":99.62,"commits":3061,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":169412,"tup_inserted":345,"tup_returned":813759,"tup_updated":82},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:44:25.228Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:49:26.485Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":254774,"blks_read":954,"cache_hit_pct":99.63,"commits":3080,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":170459,"tup_inserted":346,"tup_returned":820929,"tup_updated":82},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:49:26.486Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:49:33.887Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:57:05.747Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T00:59:00.016Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":257717,"blks_read":954,"cache_hit_pct":99.63,"commits":3130,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":172208,"tup_inserted":349,"tup_returned":830226,"tup_updated":84},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T00:59:00.016Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T00:59:02.987Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:21:48.590Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:24:04.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":260584,"blks_read":954,"cache_hit_pct":99.64,"commits":3178,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":173942,"tup_inserted":352,"tup_returned":838284,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:24:04.569Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:29:04.591Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":262211,"blks_read":954,"cache_hit_pct":99.64,"commits":3197,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":174989,"tup_inserted":353,"tup_returned":845454,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:29:04.591Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:34:04.617Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":263773,"blks_read":954,"cache_hit_pct":99.64,"commits":3215,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":176011,"tup_inserted":354,"tup_returned":852598,"tup_updated":86},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:34:04.618Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:36:12.486Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:37:11.898Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:39:04.589Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":267141,"blks_read":954,"cache_hit_pct":99.64,"commits":3265,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":178085,"tup_inserted":357,"tup_returned":861000,"tup_updated":88},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:39:04.589Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:44:04.594Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":268768,"blks_read":954,"cache_hit_pct":99.65,"commits":3284,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":179132,"tup_inserted":358,"tup_returned":868170,"tup_updated":88},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:44:04.594Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:44:45.685Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:45:46.642Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:46:47.284Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:49:04.643Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":273131,"blks_read":955,"cache_hit_pct":99.65,"commits":3352,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":181823,"tup_inserted":367,"tup_returned":877293,"tup_updated":91},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:49:04.644Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:51:46.001Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:52:49.280Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T01:55:23.364Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":276579,"blks_read":955,"cache_hit_pct":99.66,"commits":3404,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":183916,"tup_inserted":370,"tup_returned":886944,"tup_updated":93},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T01:55:23.364Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T01:56:53.717Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:00:23.373Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":279104,"blks_read":955,"cache_hit_pct":99.66,"commits":3439,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":185492,"tup_inserted":372,"tup_returned":894749,"tup_updated":94},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:00:23.374Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:00:55.891Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:02:58.283Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:04:58.783Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:05:23.369Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":283381,"blks_read":955,"cache_hit_pct":99.66,"commits":3505,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":188098,"tup_inserted":376,"tup_returned":903795,"tup_updated":97},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:05:23.369Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:06:59.684Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:09:31.601Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:10:23.366Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":286753,"blks_read":955,"cache_hit_pct":99.67,"commits":3555,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":190176,"tup_inserted":379,"tup_returned":912207,"tup_updated":99},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:10:23.367Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:11:01.726Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:14:33.839Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:15:23.360Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":290094,"blks_read":955,"cache_hit_pct":99.67,"commits":3606,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":192235,"tup_inserted":382,"tup_returned":920600,"tup_updated":101},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:15:23.360Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:20:23.420Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":291656,"blks_read":955,"cache_hit_pct":99.67,"commits":3624,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":193257,"tup_inserted":383,"tup_returned":927744,"tup_updated":101},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:20:23.420Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:24:58.055Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:25:23.382Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":294123,"blks_read":955,"cache_hit_pct":99.68,"commits":3658,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":194807,"tup_inserted":385,"tup_returned":935522,"tup_updated":102},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:25:23.382Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:30:23.412Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":295743,"blks_read":955,"cache_hit_pct":99.68,"commits":3677,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":195855,"tup_inserted":386,"tup_returned":942693,"tup_updated":102},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:30:23.412Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:38:38.748Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:39:39.159Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:40:15.496Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":299115,"blks_read":955,"cache_hit_pct":99.68,"commits":3727,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":197933,"tup_inserted":389,"tup_returned":951105,"tup_updated":104},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:40:15.496Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:54:11.979Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:54:43.534Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":301658,"blks_read":955,"cache_hit_pct":99.68,"commits":3763,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":199498,"tup_inserted":391,"tup_returned":960122,"tup_updated":105},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:54:43.535Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:55:11.480Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:57:42.329Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T02:59:13.207Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T02:59:43.555Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":305815,"blks_read":955,"cache_hit_pct":99.69,"commits":3830,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":202040,"tup_inserted":395,"tup_returned":969103,"tup_updated":108},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T02:59:43.555Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:00:14.059Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:49:19.443Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":308041,"blks_read":955,"cache_hit_pct":99.69,"commits":3860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":203515,"tup_inserted":397,"tup_returned":974357,"tup_updated":109},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:49:19.443Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:53:44.030Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:54:19.436Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":310508,"blks_read":955,"cache_hit_pct":99.69,"commits":3894,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":205065,"tup_inserted":399,"tup_returned":982135,"tup_updated":110},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:54:19.436Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T03:54:43.101Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T03:59:19.430Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":312944,"blks_read":955,"cache_hit_pct":99.7,"commits":3929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":206596,"tup_inserted":401,"tup_returned":989894,"tup_updated":111},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T03:59:19.431Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:03:25.586Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:04:19.453Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":315413,"blks_read":955,"cache_hit_pct":99.7,"commits":3963,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":208146,"tup_inserted":403,"tup_returned":997672,"tup_updated":112},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:04:19.453Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:09:19.444Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":316975,"blks_read":955,"cache_hit_pct":99.7,"commits":3981,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":209168,"tup_inserted":404,"tup_returned":1004816,"tup_updated":112},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:09:19.444Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:09:59.558Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:12:10.338Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:14:19.450Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":320405,"blks_read":955,"cache_hit_pct":99.7,"commits":4032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":211272,"tup_inserted":407,"tup_returned":1013255,"tup_updated":114},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:14:19.450Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:18:45.898Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:19:19.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":322872,"blks_read":955,"cache_hit_pct":99.71,"commits":4066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":212822,"tup_inserted":409,"tup_returned":1021033,"tup_updated":115},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:19:19.464Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:23:51.638Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:24:19.462Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":325250,"blks_read":955,"cache_hit_pct":99.71,"commits":4100,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":214327,"tup_inserted":411,"tup_returned":1028765,"tup_updated":116},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:24:19.462Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:26:53.643Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:28:30.957Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:29:19.483Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":328680,"blks_read":955,"cache_hit_pct":99.71,"commits":4151,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":216431,"tup_inserted":414,"tup_returned":1037204,"tup_updated":118},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:29:19.483Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:38:00.282Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:38:10.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":330982,"blks_read":955,"cache_hit_pct":99.71,"commits":4183,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":217921,"tup_inserted":416,"tup_returned":1043697,"tup_updated":119},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:38:10.337Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:40:01.600Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T04:42:32.328Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T04:43:10.324Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":334843,"blks_read":955,"cache_hit_pct":99.72,"commits":4235,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":220367,"tup_inserted":419,"tup_returned":1052478,"tup_updated":131},"locks":{"byMode":[{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":3,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T04:43:10.324Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T09:47:53.364Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T09:48:08.482Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":337203,"blks_read":955,"cache_hit_pct":99.72,"commits":4268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":221883,"tup_inserted":421,"tup_returned":1058998,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T09:48:08.483Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T12:25:05.194Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":338765,"blks_read":955,"cache_hit_pct":99.72,"commits":4286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":222905,"tup_inserted":422,"tup_returned":1066142,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T12:25:05.195Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T12:50:48.247Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":340327,"blks_read":955,"cache_hit_pct":99.72,"commits":4304,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":223927,"tup_inserted":423,"tup_returned":1073286,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T12:50:48.248Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T14:53:10.744Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":341871,"blks_read":955,"cache_hit_pct":99.72,"commits":4321,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":224960,"tup_inserted":424,"tup_returned":1079218,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T14:53:10.744Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:33:59.216Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":343433,"blks_read":955,"cache_hit_pct":99.72,"commits":4339,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":225982,"tup_inserted":425,"tup_returned":1086362,"tup_updated":132},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:33:59.217Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:36:06.357Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:37:38.923Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:38:46.099Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:38:59.188Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":347710,"blks_read":955,"cache_hit_pct":99.73,"commits":4405,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":228588,"tup_inserted":429,"tup_returned":1095408,"tup_updated":135},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:38:59.188Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:40:45.734Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:42:05.329Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:43:59.207Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":351051,"blks_read":955,"cache_hit_pct":99.73,"commits":4456,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":230647,"tup_inserted":432,"tup_returned":1103801,"tup_updated":137},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:43:59.207Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:49:55.058Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:51:48.687Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:52:08.078Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":354334,"blks_read":955,"cache_hit_pct":99.73,"commits":4506,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":232680,"tup_inserted":435,"tup_returned":1112167,"tup_updated":139},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:52:08.078Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:53:59.911Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:56:40.543Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T16:57:08.064Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":357617,"blks_read":955,"cache_hit_pct":99.73,"commits":4556,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":234713,"tup_inserted":438,"tup_returned":1120533,"tup_updated":141},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T16:57:08.064Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T16:57:58.287Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:00:32.655Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:01:59.316Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T17:02:08.070Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":361679,"blks_read":955,"cache_hit_pct":99.74,"commits":4614,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":237281,"tup_inserted":442,"tup_returned":1129441,"tup_updated":143},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T17:02:08.070Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:03:32.763Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:08:11.312Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T17:10:40.017Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":364995,"blks_read":955,"cache_hit_pct":99.74,"commits":4671,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":239159,"tup_inserted":445,"tup_returned":1137751,"tup_updated":146},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T17:10:40.017Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T17:11:09.710Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T18:56:30.132Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:17:17.967Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:19:24.282Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":369259,"blks_read":955,"cache_hit_pct":99.74,"commits":4739,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":241735,"tup_inserted":449,"tup_returned":1147990,"tup_updated":149},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:19:24.283Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:22:36.986Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:24:24.290Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":371784,"blks_read":955,"cache_hit_pct":99.74,"commits":4774,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":243311,"tup_inserted":451,"tup_returned":1155795,"tup_updated":150},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:24:24.290Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:27:16.925Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:28:48.470Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:29:24.296Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":375315,"blks_read":955,"cache_hit_pct":99.75,"commits":4826,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":245517,"tup_inserted":454,"tup_returned":1164334,"tup_updated":157},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:29:24.297Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:30:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:34:24.306Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":377782,"blks_read":955,"cache_hit_pct":99.75,"commits":4860,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":247067,"tup_inserted":456,"tup_returned":1172112,"tup_updated":158},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:34:24.306Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:37:18.924Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:38:06.474Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:39:24.356Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":381212,"blks_read":955,"cache_hit_pct":99.75,"commits":4911,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":249171,"tup_inserted":459,"tup_returned":1180551,"tup_updated":160},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:39:24.356Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:44:24.360Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":382774,"blks_read":955,"cache_hit_pct":99.75,"commits":4929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":250193,"tup_inserted":460,"tup_returned":1187695,"tup_updated":160},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:44:24.361Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-11T19:48:06.800Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-11T19:49:24.320Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":385152,"blks_read":955,"cache_hit_pct":99.75,"commits":4963,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":251698,"tup_inserted":462,"tup_returned":1195427,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-11T19:49:24.320Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-11T19:49:52.945Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-11T19:49:52.952Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-11T19:49:52.957Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-19T13:21:28.487Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:21:28.496Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:21:28.495Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:21:28.475Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:21:28.496Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-19T13:21:28.497Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-19T13:21:28.540Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-19T13:21:28.542Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:21:28.548Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":391701,"blks_read":1300,"cache_hit_pct":99.67,"commits":4990,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":256147,"tup_inserted":463,"tup_returned":1202141,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:21:28.548Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:21:28.715Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:26:28.521Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":402213,"blks_read":1387,"cache_hit_pct":99.66,"commits":5098,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":265110,"tup_inserted":475,"tup_returned":1218153,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:26:28.522Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:31:25.620Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:31:26.669Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:39:24.689Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:39:26.395Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:42:19.856Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":404281,"blks_read":1387,"cache_hit_pct":99.66,"commits":5124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":266570,"tup_inserted":480,"tup_returned":1225739,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:42:19.861Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-19T13:43:04.271Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:43:04.278Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:43:04.287Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-19T13:43:12.214Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:43:12.222Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:43:12.223Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:43:12.202Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-19T13:43:12.223Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-19T13:43:12.224Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-19T13:43:12.269Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-19T13:43:12.271Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:43:12.273Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":410850,"blks_read":1732,"cache_hit_pct":99.58,"commits":5152,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":271008,"tup_inserted":481,"tup_returned":1233665,"tup_updated":161},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:43:12.273Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:43:12.352Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-19T13:43:41.762Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Array.","line":341},"level":"warn","message":"Session in websocket not available! Send logout...","service":"webServer","timestamp":"2026-03-19T13:44:03.661Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:44:38.149Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:44:38.292Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T13:44:41.940Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:47:23.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:47:24.525Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T13:48:53.417Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":429191,"blks_read":1883,"cache_hit_pct":99.56,"commits":5438,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":284847,"tup_inserted":504,"tup_returned":1256035,"tup_updated":168},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T13:48:53.417Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:51:15.887Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:51:17.058Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T13:51:30.713Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:58:46.455Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T13:58:47.139Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:03:49.460Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:03:51.064Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:05:56.600Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":433177,"blks_read":1888,"cache_hit_pct":99.57,"commits":5490,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":287527,"tup_inserted":532,"tup_returned":1266241,"tup_updated":169},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:05:56.600Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:14.371Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:15.273Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:42.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:43.278Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:09:36.410Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:10:44.606Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:14:18.963Z","counts":{"active":1,"idle":1,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":435604,"blks_read":1888,"cache_hit_pct":99.57,"commits":5523,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":289236,"tup_inserted":539,"tup_returned":1275303,"tup_updated":169},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:14:18.963Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:14:36.274Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:14:37.387Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:20:15.318Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:20:16.196Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:21:10.593Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:24:05.667Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":439043,"blks_read":1904,"cache_hit_pct":99.57,"commits":5569,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":291576,"tup_inserted":545,"tup_returned":1283881,"tup_updated":180},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:24:05.667Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:24:07.876Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:29:05.656Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":441485,"blks_read":1904,"cache_hit_pct":99.57,"commits":5604,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":293096,"tup_inserted":551,"tup_returned":1291643,"tup_updated":181},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:29:05.657Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:29:17.865Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.474Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.475Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.477Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:32:10.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:34:51.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:34:52.925Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:36:07.646Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":448384,"blks_read":1907,"cache_hit_pct":99.58,"commits":5686,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":297441,"tup_inserted":585,"tup_returned":1302593,"tup_updated":183},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:36:07.646Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:42:43.739Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:42:44.416Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:43:18.998Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:43:24.416Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T14:43:25.493Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.881Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.883Z","userId":1} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T14:45:44.032Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:45:47.853Z","counts":{"active":1,"idle":4,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":453870,"blks_read":1907,"cache_hit_pct":99.58,"commits":5751,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":5,"tup_fetched":300963,"tup_inserted":602,"tup_returned":1312459,"tup_updated":184},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:45:47.854Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:04.501Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:09.760Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:17.805Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:20.258Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:48:22.414Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:50:47.878Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":464392,"blks_read":1919,"cache_hit_pct":99.59,"commits":5995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":307091,"tup_inserted":658,"tup_returned":1328743,"tup_updated":209},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:50:47.878Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:54:05.078Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:54:08.273Z","userId":1} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T14:55:47.861Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":467523,"blks_read":1919,"cache_hit_pct":99.59,"commits":6036,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":308962,"tup_inserted":685,"tup_returned":1337030,"tup_updated":210},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T14:55:47.861Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-19T14:56:14.127Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.command","line":100},"level":"info","message":"Client command getBackgroundTask with data [object Object]","service":"Service/BackgroundTaskService","timestamp":"2026-03-19T14:56:21.944Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T15:00:47.889Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":471960,"blks_read":1919,"cache_hit_pct":99.6,"commits":6087,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":311750,"tup_inserted":695,"tup_returned":1346143,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T15:00:47.889Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:06:52.027Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:06:54.932Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:15:19.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:15:41.418Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T15:16:29.823Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":474270,"blks_read":1919,"cache_hit_pct":99.6,"commits":6115,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":313429,"tup_inserted":700,"tup_returned":1353950,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T15:16:29.823Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:18:48.321Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T15:18:49.822Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T16:42:02.656Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T16:42:04.085Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T17:10:26.855Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T17:10:28.189Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:05:41.657Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:05:42.549Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:23:04.132Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:23:20.413Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T18:23:45.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":477336,"blks_read":1919,"cache_hit_pct":99.6,"commits":6155,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":315765,"tup_inserted":711,"tup_returned":1362420,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T18:23:45.209Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:27:04.499Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:27:06.382Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:28:42.504Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:28:43.690Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:05.034Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:06.062Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T18:30:39.598Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":479790,"blks_read":1919,"cache_hit_pct":99.6,"commits":6188,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":317485,"tup_inserted":718,"tup_returned":1371494,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T18:30:39.599Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:51.669Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:31:04.407Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:32:37.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-19T18:32:43.982Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:42:59.278Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T19:14:01.654Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":482271,"blks_read":1919,"cache_hit_pct":99.6,"commits":6217,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":319368,"tup_inserted":724,"tup_returned":1378283,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T19:14:01.654Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-19T21:56:26.497Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":483911,"blks_read":1919,"cache_hit_pct":99.61,"commits":6237,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":320405,"tup_inserted":725,"tup_returned":1386666,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-19T21:56:26.497Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T02:12:33.515Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":485533,"blks_read":1919,"cache_hit_pct":99.61,"commits":6256,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":321453,"tup_inserted":726,"tup_returned":1393838,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T02:12:33.515Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T07:17:24.438Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":487097,"blks_read":1919,"cache_hit_pct":99.61,"commits":6274,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":322475,"tup_inserted":727,"tup_returned":1400982,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T07:17:24.438Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T09:31:34.423Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":488585,"blks_read":1919,"cache_hit_pct":99.61,"commits":6290,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":323482,"tup_inserted":728,"tup_returned":1406887,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T09:31:34.423Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T11:20:39.491Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":490359,"blks_read":1919,"cache_hit_pct":99.61,"commits":6313,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":324560,"tup_inserted":729,"tup_returned":1416537,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T11:20:39.492Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T15:35:09.427Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":491923,"blks_read":1919,"cache_hit_pct":99.61,"commits":6331,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":325582,"tup_inserted":730,"tup_returned":1423681,"tup_updated":211},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T15:35:09.427Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.708Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.846Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:27:58.892Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:42:58.352Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":495469,"blks_read":1919,"cache_hit_pct":99.61,"commits":6377,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":327851,"tup_inserted":734,"tup_returned":1432386,"tup_updated":214},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:42:58.352Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:43:24.298Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:47:58.373Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":497999,"blks_read":1919,"cache_hit_pct":99.62,"commits":6412,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":329427,"tup_inserted":736,"tup_returned":1440192,"tup_updated":215},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:47:58.374Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:52:58.415Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":499563,"blks_read":1919,"cache_hit_pct":99.62,"commits":6430,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":330449,"tup_inserted":737,"tup_returned":1447336,"tup_updated":215},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:52:58.416Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"NLPService.connectClient","line":48},"level":"info","message":"Client connected with data undefined","service":"Service/NLPService","timestamp":"2026-03-20T18:54:29.015Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T18:57:58.350Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":502270,"blks_read":1919,"cache_hit_pct":99.62,"commits":6465,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":332201,"tup_inserted":740,"tup_returned":1455319,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T18:57:58.350Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-20T18:59:07.664Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-20T18:59:07.674Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-20T19:06:25.669Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-20T19:06:25.671Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-20T19:06:25.655Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-20T19:06:25.601Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-20T19:06:25.672Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-20T19:06:25.669Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-20T19:06:25.671Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-20T19:06:25.673Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-20T19:06:25.772Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-20T19:06:25.778Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:06:25.794Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":508897,"blks_read":2264,"cache_hit_pct":99.56,"commits":6494,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":336665,"tup_inserted":741,"tup_returned":1463272,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:06:25.794Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:11:25.745Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":520020,"blks_read":2355,"cache_hit_pct":99.55,"commits":6601,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":346150,"tup_inserted":752,"tup_returned":1479806,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:11:25.748Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:16:25.729Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":521583,"blks_read":2356,"cache_hit_pct":99.55,"commits":6619,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":347172,"tup_inserted":753,"tup_returned":1486950,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:16:25.730Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:21:25.719Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":523147,"blks_read":2356,"cache_hit_pct":99.55,"commits":6637,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":348194,"tup_inserted":754,"tup_returned":1494094,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:21:25.720Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:28:25.318Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":524764,"blks_read":2361,"cache_hit_pct":99.55,"commits":6656,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":349242,"tup_inserted":755,"tup_returned":1501265,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:28:25.318Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:33:25.302Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":526328,"blks_read":2361,"cache_hit_pct":99.55,"commits":6674,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":350264,"tup_inserted":756,"tup_returned":1508409,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:33:25.302Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-20T19:42:35.878Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":527892,"blks_read":2361,"cache_hit_pct":99.55,"commits":6692,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":351286,"tup_inserted":757,"tup_returned":1515553,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-20T19:42:35.878Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T02:43:18.299Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":529514,"blks_read":2361,"cache_hit_pct":99.56,"commits":6711,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":352334,"tup_inserted":758,"tup_returned":1522724,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T02:43:18.299Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T08:49:12.268Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":531078,"blks_read":2361,"cache_hit_pct":99.56,"commits":6729,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":353356,"tup_inserted":759,"tup_returned":1529868,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T08:49:12.269Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T16:46:00.717Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":532642,"blks_read":2361,"cache_hit_pct":99.56,"commits":6747,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":354378,"tup_inserted":760,"tup_returned":1537012,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T16:46:00.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T17:58:03.562Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":534264,"blks_read":2361,"cache_hit_pct":99.56,"commits":6766,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":355426,"tup_inserted":761,"tup_returned":1544183,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T17:58:03.562Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:33:59.451Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":535752,"blks_read":2361,"cache_hit_pct":99.56,"commits":6782,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":356433,"tup_inserted":762,"tup_returned":1550088,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:33:59.454Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:38:59.433Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":537316,"blks_read":2361,"cache_hit_pct":99.56,"commits":6800,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":7,"tup_fetched":357455,"tup_inserted":763,"tup_returned":1557232,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:38:59.434Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:43:59.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":538939,"blks_read":2361,"cache_hit_pct":99.56,"commits":6819,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":358503,"tup_inserted":764,"tup_returned":1564403,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:43:59.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:48:59.461Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":540503,"blks_read":2361,"cache_hit_pct":99.57,"commits":6837,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":359525,"tup_inserted":765,"tup_returned":1571547,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:48:59.461Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:53:59.451Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":542067,"blks_read":2361,"cache_hit_pct":99.57,"commits":6855,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":360547,"tup_inserted":766,"tup_returned":1578691,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:53:59.452Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-21T23:58:59.460Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":543689,"blks_read":2361,"cache_hit_pct":99.57,"commits":6874,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":361595,"tup_inserted":767,"tup_returned":1585861,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-21T23:58:59.460Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:03:59.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":545253,"blks_read":2361,"cache_hit_pct":99.57,"commits":6892,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":362617,"tup_inserted":768,"tup_returned":1593005,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:03:59.463Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:08:59.503Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":546817,"blks_read":2361,"cache_hit_pct":99.57,"commits":6910,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":363639,"tup_inserted":769,"tup_returned":1600149,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:08:59.504Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:13:59.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":548439,"blks_read":2361,"cache_hit_pct":99.57,"commits":6929,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":364687,"tup_inserted":770,"tup_returned":1607319,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:13:59.489Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:18:59.469Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":550003,"blks_read":2361,"cache_hit_pct":99.57,"commits":6947,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":365709,"tup_inserted":771,"tup_returned":1614463,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:18:59.469Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:23:59.484Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":551567,"blks_read":2361,"cache_hit_pct":99.57,"commits":6965,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":366731,"tup_inserted":772,"tup_returned":1621607,"tup_updated":216},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:23:59.484Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:28:59.499Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":553677,"blks_read":2382,"cache_hit_pct":99.57,"commits":6986,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":368147,"tup_inserted":773,"tup_returned":1629146,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:28:59.500Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:33:59.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":555241,"blks_read":2382,"cache_hit_pct":99.57,"commits":7004,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":369169,"tup_inserted":774,"tup_returned":1636290,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:33:59.489Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:38:59.476Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":556805,"blks_read":2382,"cache_hit_pct":99.57,"commits":7022,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":370191,"tup_inserted":775,"tup_returned":1643434,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:38:59.476Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:43:59.492Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":558427,"blks_read":2382,"cache_hit_pct":99.58,"commits":7041,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":371239,"tup_inserted":776,"tup_returned":1650604,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:43:59.492Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T00:48:59.526Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":559991,"blks_read":2382,"cache_hit_pct":99.58,"commits":7059,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":372261,"tup_inserted":777,"tup_returned":1657748,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T00:48:59.526Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T01:14:02.034Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":561631,"blks_read":2382,"cache_hit_pct":99.58,"commits":7079,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":373298,"tup_inserted":778,"tup_returned":1666131,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T01:14:02.034Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T08:45:10.183Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":563177,"blks_read":2382,"cache_hit_pct":99.58,"commits":7096,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":374331,"tup_inserted":779,"tup_returned":1672062,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T08:45:10.184Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T14:24:08.345Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":564665,"blks_read":2382,"cache_hit_pct":99.58,"commits":7112,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":375338,"tup_inserted":780,"tup_returned":1677967,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T14:24:08.345Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T16:27:05.415Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":566153,"blks_read":2382,"cache_hit_pct":99.58,"commits":7128,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":376345,"tup_inserted":781,"tup_returned":1683872,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T16:27:05.415Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:05:59.386Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":567851,"blks_read":2382,"cache_hit_pct":99.58,"commits":7149,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":377408,"tup_inserted":782,"tup_returned":1692281,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:05:59.386Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:10:59.396Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":569415,"blks_read":2382,"cache_hit_pct":99.58,"commits":7167,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":378430,"tup_inserted":783,"tup_returned":1699425,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:10:59.397Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:15:59.388Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":570979,"blks_read":2382,"cache_hit_pct":99.58,"commits":7185,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":379452,"tup_inserted":784,"tup_returned":1706569,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:15:59.388Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:20:59.411Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":572601,"blks_read":2382,"cache_hit_pct":99.59,"commits":7204,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":380500,"tup_inserted":785,"tup_returned":1713739,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:20:59.412Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:25:59.412Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":574165,"blks_read":2382,"cache_hit_pct":99.59,"commits":7222,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":381522,"tup_inserted":786,"tup_returned":1720883,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:25:59.412Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T18:30:59.406Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":575729,"blks_read":2382,"cache_hit_pct":99.59,"commits":7240,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":382544,"tup_inserted":787,"tup_returned":1728027,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T18:30:59.407Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T20:19:54.057Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":577351,"blks_read":2382,"cache_hit_pct":99.59,"commits":7259,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":383592,"tup_inserted":788,"tup_returned":1735197,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T20:19:54.057Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-22T22:06:47.881Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":578763,"blks_read":2382,"cache_hit_pct":99.59,"commits":7273,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":384584,"tup_inserted":789,"tup_returned":1739863,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-22T22:06:47.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T04:30:19.390Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":580327,"blks_read":2382,"cache_hit_pct":99.59,"commits":7291,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":385606,"tup_inserted":790,"tup_returned":1747007,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T04:30:19.391Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T12:49:09.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":582025,"blks_read":2382,"cache_hit_pct":99.59,"commits":7312,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":386669,"tup_inserted":791,"tup_returned":1755416,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T12:49:09.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T13:40:30.391Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":583589,"blks_read":2382,"cache_hit_pct":99.59,"commits":7330,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":387691,"tup_inserted":792,"tup_returned":1762560,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T13:40:30.391Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T16:22:57.799Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":585229,"blks_read":2382,"cache_hit_pct":99.59,"commits":7350,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":388728,"tup_inserted":793,"tup_returned":1770943,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T16:22:57.799Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-23T20:12:14.822Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":586851,"blks_read":2382,"cache_hit_pct":99.6,"commits":7369,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":389776,"tup_inserted":794,"tup_returned":1778113,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-23T20:12:14.823Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:27:12.539Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":588491,"blks_read":2382,"cache_hit_pct":99.6,"commits":7389,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":390813,"tup_inserted":795,"tup_returned":1786496,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:27:12.539Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:32:12.535Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":590055,"blks_read":2382,"cache_hit_pct":99.6,"commits":7407,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":391835,"tup_inserted":796,"tup_returned":1793640,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:32:12.539Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:37:12.578Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":591677,"blks_read":2382,"cache_hit_pct":99.6,"commits":7426,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":392883,"tup_inserted":797,"tup_returned":1800810,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:37:12.580Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:42:12.696Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":593241,"blks_read":2382,"cache_hit_pct":99.6,"commits":7444,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":393905,"tup_inserted":798,"tup_returned":1807954,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:42:12.702Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:47:12.534Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":594805,"blks_read":2382,"cache_hit_pct":99.6,"commits":7462,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":394927,"tup_inserted":799,"tup_returned":1815098,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:47:12.537Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:52:12.580Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":596427,"blks_read":2382,"cache_hit_pct":99.6,"commits":7481,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":395975,"tup_inserted":800,"tup_returned":1822268,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:52:12.583Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-24T00:57:12.622Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":597991,"blks_read":2382,"cache_hit_pct":99.6,"commits":7499,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":8,"tup_fetched":396997,"tup_inserted":801,"tup_returned":1829412,"tup_updated":226},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-24T00:57:12.628Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-26T12:23:07.941Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-26T12:23:07.929Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-26T12:23:07.948Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-26T12:23:07.950Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-26T12:23:07.951Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-26T12:23:07.949Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-26T12:23:07.989Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-26T12:23:07.993Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:23:07.999Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:23:07.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:23:08.403Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:28:08.017Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15698,"blks_read":435,"cache_hit_pct":97.3,"commits":125,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12362,"tup_inserted":12,"tup_returned":20450,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:28:08.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:33:07.990Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17261,"blks_read":436,"cache_hit_pct":97.54,"commits":143,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13384,"tup_inserted":13,"tup_returned":27594,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:33:07.990Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:38:07.976Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18824,"blks_read":437,"cache_hit_pct":97.73,"commits":161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14406,"tup_inserted":14,"tup_returned":34738,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:38:07.976Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:43:08.018Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20441,"blks_read":442,"cache_hit_pct":97.88,"commits":180,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15454,"tup_inserted":15,"tup_returned":41908,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:43:08.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:48:08.003Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":23624,"blks_read":443,"cache_hit_pct":98.16,"commits":214,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17224,"tup_inserted":20,"tup_returned":49808,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:48:08.003Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:55:19.537Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:55:29.006Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:59:10.173Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T12:59:11.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T12:59:12.262Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":25661,"blks_read":443,"cache_hit_pct":98.3,"commits":239,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18669,"tup_inserted":25,"tup_returned":57378,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T12:59:12.262Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:01:36.523Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:01:51.115Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:04:12.287Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":27566,"blks_read":443,"cache_hit_pct":98.42,"commits":263,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":19951,"tup_inserted":28,"tup_returned":64789,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:04:12.288Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:16:39.638Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29130,"blks_read":443,"cache_hit_pct":98.5,"commits":281,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20973,"tup_inserted":29,"tup_returned":71933,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:16:39.638Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:17:02.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:17:04.600Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:24:52.876Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:24:54.699Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:24:57.517Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31239,"blks_read":443,"cache_hit_pct":98.6,"commits":307,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22448,"tup_inserted":34,"tup_returned":79537,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:24:57.518Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:29:50.170Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:29:51.204Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:39:01.308Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":32830,"blks_read":443,"cache_hit_pct":98.67,"commits":328,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23481,"tup_inserted":37,"tup_returned":86693,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:39:01.309Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:45:17.346Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:45:18.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:46:43.396Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34570,"blks_read":443,"cache_hit_pct":98.73,"commits":348,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24707,"tup_inserted":40,"tup_returned":92819,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:46:43.396Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:48:33.405Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:48:34.457Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:57:07.370Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T13:57:08.972Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T13:59:21.712Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36714,"blks_read":443,"cache_hit_pct":98.81,"commits":376,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26182,"tup_inserted":45,"tup_returned":101644,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T13:59:21.712Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:00:10.210Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:00:11.187Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:05:21.290Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:05:22.865Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:25.001Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:19:25.883Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38840,"blks_read":443,"cache_hit_pct":98.87,"commits":403,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27668,"tup_inserted":50,"tup_returned":109260,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:19:25.883Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:26.539Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:37.205Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:38.851Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:21:07.089Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:21:08.639Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:27:31.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40918,"blks_read":443,"cache_hit_pct":98.93,"commits":431,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29128,"tup_inserted":57,"tup_returned":116846,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:27:31.223Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:30:08.575Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:30:09.831Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:37:32.770Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:37:33.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:49:14.660Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":42986,"blks_read":443,"cache_hit_pct":98.98,"commits":457,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":30588,"tup_inserted":62,"tup_returned":124432,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:49:14.661Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:49:14.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:49:15.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:54:14.675Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":44618,"blks_read":443,"cache_hit_pct":99.02,"commits":478,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":31636,"tup_inserted":65,"tup_returned":131606,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:54:14.675Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:58:39.951Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T14:58:41.384Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T14:59:57.818Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46358,"blks_read":443,"cache_hit_pct":99.05,"commits":498,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":32862,"tup_inserted":68,"tup_returned":137732,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T14:59:57.819Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:03:10.175Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T15:03:12.430Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T15:06:36.325Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":48250,"blks_read":443,"cache_hit_pct":99.09,"commits":522,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":34118,"tup_inserted":71,"tup_returned":146336,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T15:06:36.325Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:43:43.487Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T15:43:53.681Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T16:04:02.621Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-26T16:37:51.788Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T17:25:23.321Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-26T18:32:35.537Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":51107,"blks_read":443,"cache_hit_pct":99.14,"commits":556,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":36261,"tup_inserted":77,"tup_returned":154615,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-26T18:32:35.537Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T01:15:40.385Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":52671,"blks_read":443,"cache_hit_pct":99.17,"commits":574,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":37283,"tup_inserted":78,"tup_returned":161759,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T01:15:40.386Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T10:25:29.671Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":54235,"blks_read":443,"cache_hit_pct":99.19,"commits":592,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":38305,"tup_inserted":79,"tup_returned":168903,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T10:25:29.672Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T18:20:13.951Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":55857,"blks_read":443,"cache_hit_pct":99.21,"commits":611,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":39353,"tup_inserted":80,"tup_returned":176077,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T18:20:13.951Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T18:58:28.915Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":57497,"blks_read":443,"cache_hit_pct":99.24,"commits":631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":40390,"tup_inserted":81,"tup_returned":184460,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T18:58:28.916Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:03:28.867Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":59061,"blks_read":443,"cache_hit_pct":99.26,"commits":649,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":41412,"tup_inserted":82,"tup_returned":191604,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:03:28.868Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:08:28.885Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":60687,"blks_read":443,"cache_hit_pct":99.28,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":42460,"tup_inserted":83,"tup_returned":198778,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:08:28.885Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:13:28.893Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":62251,"blks_read":443,"cache_hit_pct":99.29,"commits":686,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":43482,"tup_inserted":84,"tup_returned":205922,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:13:28.893Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:18:28.877Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63815,"blks_read":443,"cache_hit_pct":99.31,"commits":704,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":44504,"tup_inserted":85,"tup_returned":213066,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:18:28.878Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:23:28.882Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":65361,"blks_read":443,"cache_hit_pct":99.33,"commits":721,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":45537,"tup_inserted":86,"tup_returned":218997,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:23:28.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:28:28.910Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66925,"blks_read":443,"cache_hit_pct":99.34,"commits":739,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":46559,"tup_inserted":87,"tup_returned":226141,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:28:28.910Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T19:33:28.895Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68489,"blks_read":443,"cache_hit_pct":99.36,"commits":757,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":47581,"tup_inserted":88,"tup_returned":233285,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T19:33:28.896Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-27T20:35:13.678Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":70111,"blks_read":443,"cache_hit_pct":99.37,"commits":776,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":48629,"tup_inserted":89,"tup_returned":240455,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-27T20:35:13.678Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T03:25:02.889Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71675,"blks_read":443,"cache_hit_pct":99.39,"commits":794,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":49651,"tup_inserted":90,"tup_returned":247599,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T03:25:02.889Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T12:30:19.653Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":73239,"blks_read":443,"cache_hit_pct":99.4,"commits":812,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":50673,"tup_inserted":91,"tup_returned":254743,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T12:30:19.653Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:31:11.008Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":74937,"blks_read":443,"cache_hit_pct":99.41,"commits":833,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":51736,"tup_inserted":92,"tup_returned":263152,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:31:11.009Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:36:11.009Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":76501,"blks_read":443,"cache_hit_pct":99.42,"commits":851,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":52758,"tup_inserted":93,"tup_returned":270296,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:36:11.010Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:41:11.000Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":78065,"blks_read":443,"cache_hit_pct":99.44,"commits":869,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":53780,"tup_inserted":94,"tup_returned":277440,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:41:11.000Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:46:11.020Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":79687,"blks_read":443,"cache_hit_pct":99.45,"commits":888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":54828,"tup_inserted":95,"tup_returned":284610,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:46:11.021Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:51:11.018Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":81251,"blks_read":443,"cache_hit_pct":99.46,"commits":906,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":55850,"tup_inserted":96,"tup_returned":291754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:51:11.018Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T13:56:11.013Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":82815,"blks_read":443,"cache_hit_pct":99.47,"commits":924,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":56872,"tup_inserted":97,"tup_returned":298898,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T13:56:11.013Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:01:11.021Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":84437,"blks_read":443,"cache_hit_pct":99.48,"commits":943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":57920,"tup_inserted":98,"tup_returned":306068,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:01:11.022Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:06:11.035Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":86001,"blks_read":443,"cache_hit_pct":99.49,"commits":961,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":58942,"tup_inserted":99,"tup_returned":313212,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:06:11.036Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:11:11.025Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":87565,"blks_read":443,"cache_hit_pct":99.5,"commits":979,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":59964,"tup_inserted":100,"tup_returned":320356,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:11:11.026Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-03-28T14:12:19.857Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:12:19.922Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-28T14:12:34.918Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:12:34.931Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-28T14:12:34.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:12:34.928Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:12:34.900Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:12:34.931Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-28T14:12:34.933Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:12:34.929Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-28T14:12:34.994Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-28T14:12:35.002Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:12:35.043Z","counts":{"active":2,"idle":3,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94192,"blks_read":788,"cache_hit_pct":99.17,"commits":1008,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":4,"tup_fetched":64428,"tup_inserted":101,"tup_returned":328308,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:12:35.044Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-28T14:15:17.828Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:15:17.837Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-28T14:15:17.838Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-28T14:15:17.815Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:15:17.836Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-28T14:15:17.837Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-28T14:15:17.836Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-28T14:15:17.838Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-28T14:15:17.875Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-28T14:15:17.877Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:15:17.882Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:15:17.882Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:20:17.927Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15477,"blks_read":428,"cache_hit_pct":97.31,"commits":124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12249,"tup_inserted":11,"tup_returned":20337,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:20:17.931Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:25:17.905Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17041,"blks_read":428,"cache_hit_pct":97.55,"commits":142,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13271,"tup_inserted":12,"tup_returned":27481,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:25:17.906Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:30:17.891Z","counts":{"active":2,"idle":0,"total":10},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18635,"blks_read":429,"cache_hit_pct":97.75,"commits":161,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14308,"tup_inserted":13,"tup_returned":34641,"tup_updated":0},"locks":{"byMode":[{"count":2,"mode":"RowExclusiveLock"},{"count":2,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":5,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:30:17.892Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:35:17.907Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":21297,"blks_read":435,"cache_hit_pct":98,"commits":207,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":15826,"tup_inserted":16,"tup_returned":42806,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:35:17.907Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:40:17.905Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22861,"blks_read":435,"cache_hit_pct":98.13,"commits":225,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":16848,"tup_inserted":17,"tup_returned":49950,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:40:17.905Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:46:34.922Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":24349,"blks_read":435,"cache_hit_pct":98.24,"commits":241,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":17855,"tup_inserted":18,"tup_returned":55855,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:46:34.923Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T14:53:15.603Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26047,"blks_read":435,"cache_hit_pct":98.36,"commits":262,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":18918,"tup_inserted":19,"tup_returned":64266,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T14:53:15.604Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:06:41.971Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":27611,"blks_read":435,"cache_hit_pct":98.45,"commits":280,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":19940,"tup_inserted":20,"tup_returned":71410,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:06:41.971Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:21:54.523Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29251,"blks_read":435,"cache_hit_pct":98.53,"commits":300,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":20977,"tup_inserted":21,"tup_returned":79793,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:21:54.524Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:45:40.544Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":30873,"blks_read":435,"cache_hit_pct":98.61,"commits":319,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":22025,"tup_inserted":22,"tup_returned":86965,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:45:40.544Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:51:33.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":32437,"blks_read":435,"cache_hit_pct":98.68,"commits":337,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":23047,"tup_inserted":23,"tup_returned":94109,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:51:33.117Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T15:56:33.083Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34001,"blks_read":435,"cache_hit_pct":98.74,"commits":355,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":24069,"tup_inserted":24,"tup_returned":101253,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T15:56:33.083Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:01:33.097Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":35623,"blks_read":435,"cache_hit_pct":98.79,"commits":374,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":25117,"tup_inserted":25,"tup_returned":108425,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:01:33.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:06:33.098Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":37187,"blks_read":435,"cache_hit_pct":98.84,"commits":392,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":26139,"tup_inserted":26,"tup_returned":115569,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:06:33.098Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:11:33.082Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":38751,"blks_read":435,"cache_hit_pct":98.89,"commits":410,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":27161,"tup_inserted":27,"tup_returned":122713,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:11:33.083Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:16:33.107Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40373,"blks_read":435,"cache_hit_pct":98.93,"commits":429,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":28209,"tup_inserted":28,"tup_returned":129885,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:16:33.107Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:21:33.110Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":41937,"blks_read":435,"cache_hit_pct":98.97,"commits":447,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":29231,"tup_inserted":29,"tup_returned":137029,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:21:33.110Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:26:33.089Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":43501,"blks_read":435,"cache_hit_pct":99.01,"commits":465,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":30253,"tup_inserted":30,"tup_returned":144173,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:26:33.089Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:31:33.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":45123,"blks_read":435,"cache_hit_pct":99.05,"commits":484,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":31301,"tup_inserted":31,"tup_returned":151345,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:31:33.096Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:36:33.116Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46687,"blks_read":435,"cache_hit_pct":99.08,"commits":502,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":32323,"tup_inserted":32,"tup_returned":158489,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:36:33.116Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:41:33.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":48251,"blks_read":435,"cache_hit_pct":99.11,"commits":520,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":33345,"tup_inserted":33,"tup_returned":165633,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:41:33.096Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:46:33.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":49873,"blks_read":435,"cache_hit_pct":99.14,"commits":539,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":34393,"tup_inserted":34,"tup_returned":172805,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:46:33.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:51:33.132Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":51437,"blks_read":435,"cache_hit_pct":99.16,"commits":557,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":35415,"tup_inserted":35,"tup_returned":179949,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:51:33.133Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T16:56:33.108Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":53001,"blks_read":435,"cache_hit_pct":99.19,"commits":575,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":36437,"tup_inserted":36,"tup_returned":187093,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T16:56:33.108Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T17:01:33.143Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":54623,"blks_read":435,"cache_hit_pct":99.21,"commits":594,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":37485,"tup_inserted":37,"tup_returned":194265,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T17:01:33.144Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-28T17:06:33.139Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":56187,"blks_read":435,"cache_hit_pct":99.23,"commits":612,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":38507,"tup_inserted":38,"tup_returned":201409,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-28T17:06:33.139Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-03-30T13:19:43.367Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-03-30T13:19:43.376Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-03-30T13:19:43.377Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-03-30T13:19:43.356Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-03-30T13:19:43.375Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-03-30T13:19:43.377Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-03-30T13:19:43.378Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-03-30T13:19:43.376Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-03-30T13:19:43.418Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-03-30T13:19:43.421Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:19:43.426Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":5340,"blks_read":345,"cache_hit_pct":93.93,"commits":19,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":3491,"tup_inserted":0,"tup_returned":5754,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:19:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:24:43.426Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":15695,"blks_read":434,"cache_hit_pct":97.31,"commits":124,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":12362,"tup_inserted":11,"tup_returned":20450,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:24:43.427Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:29:43.641Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":17259,"blks_read":434,"cache_hit_pct":97.55,"commits":142,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":13384,"tup_inserted":12,"tup_returned":27594,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:29:43.643Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:34:43.440Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":18823,"blks_read":434,"cache_hit_pct":97.75,"commits":160,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":0,"tup_fetched":14406,"tup_inserted":13,"tup_returned":34738,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:34:43.441Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:39:43.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":20442,"blks_read":439,"cache_hit_pct":97.9,"commits":179,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":15454,"tup_inserted":14,"tup_returned":41910,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:39:43.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:44:43.481Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":22006,"blks_read":439,"cache_hit_pct":98.04,"commits":197,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":16476,"tup_inserted":15,"tup_returned":49054,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:44:43.481Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:49:43.464Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":23570,"blks_read":439,"cache_hit_pct":98.17,"commits":215,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":17498,"tup_inserted":16,"tup_returned":56198,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:49:43.464Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:54:43.480Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":25192,"blks_read":439,"cache_hit_pct":98.29,"commits":234,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":18546,"tup_inserted":17,"tup_returned":63368,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:54:43.481Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T13:59:43.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":26756,"blks_read":439,"cache_hit_pct":98.39,"commits":252,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":19568,"tup_inserted":18,"tup_returned":70512,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T13:59:43.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:04:43.493Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":28320,"blks_read":439,"cache_hit_pct":98.47,"commits":270,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":20590,"tup_inserted":19,"tup_returned":77656,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:04:43.493Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:09:43.498Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":29942,"blks_read":439,"cache_hit_pct":98.56,"commits":289,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":21638,"tup_inserted":20,"tup_returned":84826,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:09:43.499Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T14:46:30.850Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":31506,"blks_read":439,"cache_hit_pct":98.63,"commits":307,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":22660,"tup_inserted":21,"tup_returned":91970,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T14:46:30.850Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-30T18:51:29.963Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":33070,"blks_read":439,"cache_hit_pct":98.69,"commits":325,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":23682,"tup_inserted":22,"tup_returned":99114,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-30T18:51:29.963Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T00:21:44.220Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":34692,"blks_read":439,"cache_hit_pct":98.75,"commits":344,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":24730,"tup_inserted":23,"tup_returned":106284,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T00:21:44.220Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T00:26:44.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":36256,"blks_read":439,"cache_hit_pct":98.8,"commits":362,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":25752,"tup_inserted":24,"tup_returned":113428,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T00:26:44.238Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T04:22:41.576Z","counts":{"active":1,"idle":1,"total":11},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":37851,"blks_read":439,"cache_hit_pct":98.85,"commits":381,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":26789,"tup_inserted":25,"tup_returned":120588,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T04:22:41.577Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:37:07.488Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:51:40.806Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:51:57.805Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:53:46.040Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:53:47.718Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T08:54:34.280Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":40479,"blks_read":439,"cache_hit_pct":98.93,"commits":414,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":28716,"tup_inserted":31,"tup_returned":128645,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T08:54:34.280Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:56:35.483Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T08:56:36.436Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:03:12.676Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:03:13.670Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:06:43.899Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":42625,"blks_read":439,"cache_hit_pct":98.98,"commits":442,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":30191,"tup_inserted":36,"tup_returned":137470,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:06:43.899Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:09:38.091Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:09:39.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:12:39.881Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":44367,"blks_read":439,"cache_hit_pct":99.02,"commits":462,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":31417,"tup_inserted":39,"tup_returned":143596,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:12:39.881Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:14:45.969Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:14:47.187Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:19:29.257Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":46241,"blks_read":439,"cache_hit_pct":99.06,"commits":485,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":32684,"tup_inserted":42,"tup_returned":150987,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:19:29.258Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:22:15.571Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:22:16.839Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:26:49.061Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:27:40.830Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:31:35.996Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":50248,"blks_read":440,"cache_hit_pct":99.13,"commits":531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":35126,"tup_inserted":51,"tup_returned":160789,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:31:35.996Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:38:12.638Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:38:13.829Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:38:41.244Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":52149,"blks_read":440,"cache_hit_pct":99.16,"commits":555,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":36382,"tup_inserted":54,"tup_returned":169393,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:38:41.244Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:43:41.253Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":53780,"blks_read":440,"cache_hit_pct":99.19,"commits":574,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":37430,"tup_inserted":55,"tup_returned":176567,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:43:41.253Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:48:41.258Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":55342,"blks_read":440,"cache_hit_pct":99.21,"commits":592,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":38452,"tup_inserted":56,"tup_returned":183711,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:48:41.259Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:53:41.260Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":56828,"blks_read":440,"cache_hit_pct":99.23,"commits":608,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":39459,"tup_inserted":57,"tup_returned":189616,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:53:41.261Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:58:21.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T09:58:23.065Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T09:59:51.996Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":58698,"blks_read":440,"cache_hit_pct":99.26,"commits":631,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":40726,"tup_inserted":60,"tup_returned":197011,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T09:59:51.996Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:05:26.883Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:20:27.176Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:22:02.109Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:22:03.326Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:23:18.265Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-03-31T10:24:43.337Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:26:47.659Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T15:03:41.631Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":61735,"blks_read":440,"cache_hit_pct":99.29,"commits":668,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":43062,"tup_inserted":68,"tup_returned":205481,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T15:03:41.631Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-03-31T22:53:17.428Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":63373,"blks_read":440,"cache_hit_pct":99.31,"commits":688,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":44099,"tup_inserted":69,"tup_returned":213864,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-03-31T22:53:17.428Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T09:19:19.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":64993,"blks_read":440,"cache_hit_pct":99.33,"commits":707,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":45147,"tup_inserted":70,"tup_returned":221038,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T09:19:19.475Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T16:54:09.855Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":66555,"blks_read":440,"cache_hit_pct":99.34,"commits":725,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":46169,"tup_inserted":71,"tup_returned":228182,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T16:54:09.855Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-01T20:39:01.477Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":68117,"blks_read":440,"cache_hit_pct":99.36,"commits":743,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":2,"tup_fetched":47191,"tup_inserted":72,"tup_returned":235326,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-01T20:39:01.478Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T01:32:42.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":69741,"blks_read":440,"cache_hit_pct":99.37,"commits":762,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":48239,"tup_inserted":73,"tup_returned":242500,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T01:32:42.170Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T04:27:12.845Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":71227,"blks_read":440,"cache_hit_pct":99.39,"commits":778,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":49246,"tup_inserted":74,"tup_returned":248405,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T04:27:12.846Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:02:09.056Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":72789,"blks_read":440,"cache_hit_pct":99.4,"commits":796,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":50268,"tup_inserted":75,"tup_returned":255549,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:02:09.056Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:07:09.070Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":74409,"blks_read":440,"cache_hit_pct":99.41,"commits":815,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":51316,"tup_inserted":76,"tup_returned":262719,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:07:09.070Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:12:09.079Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":75971,"blks_read":440,"cache_hit_pct":99.42,"commits":833,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":52338,"tup_inserted":77,"tup_returned":269863,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:12:09.079Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:17:09.071Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":77533,"blks_read":440,"cache_hit_pct":99.44,"commits":851,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":53360,"tup_inserted":78,"tup_returned":277007,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:17:09.071Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:22:09.075Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":79153,"blks_read":440,"cache_hit_pct":99.45,"commits":870,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":54408,"tup_inserted":79,"tup_returned":284177,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:22:09.075Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:27:09.093Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":80715,"blks_read":440,"cache_hit_pct":99.46,"commits":888,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":55430,"tup_inserted":80,"tup_returned":291321,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:27:09.094Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:32:09.080Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":82277,"blks_read":440,"cache_hit_pct":99.47,"commits":906,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":56452,"tup_inserted":81,"tup_returned":298465,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:32:09.080Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:37:09.098Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":83897,"blks_read":440,"cache_hit_pct":99.48,"commits":925,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":57500,"tup_inserted":82,"tup_returned":305635,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:37:09.098Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:42:09.104Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":85459,"blks_read":440,"cache_hit_pct":99.49,"commits":943,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":58522,"tup_inserted":83,"tup_returned":312779,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:42:09.104Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:47:09.100Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":87021,"blks_read":440,"cache_hit_pct":99.5,"commits":961,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":59544,"tup_inserted":84,"tup_returned":319923,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:47:09.100Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:52:09.117Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":88641,"blks_read":440,"cache_hit_pct":99.51,"commits":980,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":60592,"tup_inserted":85,"tup_returned":327093,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:52:09.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T05:57:09.126Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":90203,"blks_read":440,"cache_hit_pct":99.51,"commits":998,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":61614,"tup_inserted":86,"tup_returned":334237,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T05:57:09.126Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:02:09.127Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":91765,"blks_read":440,"cache_hit_pct":99.52,"commits":1016,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":62636,"tup_inserted":87,"tup_returned":341381,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:02:09.127Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:07:09.154Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":93385,"blks_read":440,"cache_hit_pct":99.53,"commits":1035,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":63684,"tup_inserted":88,"tup_returned":348551,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:07:09.154Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:12:09.146Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":94947,"blks_read":440,"cache_hit_pct":99.54,"commits":1053,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":64706,"tup_inserted":89,"tup_returned":355695,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:12:09.146Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:17:09.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":96509,"blks_read":440,"cache_hit_pct":99.55,"commits":1071,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":65728,"tup_inserted":90,"tup_returned":362839,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:17:09.159Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:22:09.165Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":98129,"blks_read":440,"cache_hit_pct":99.55,"commits":1090,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":66776,"tup_inserted":91,"tup_returned":370009,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:22:09.165Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:27:09.180Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":99691,"blks_read":440,"cache_hit_pct":99.56,"commits":1108,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":67798,"tup_inserted":92,"tup_returned":377153,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:27:09.180Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:32:09.187Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":101253,"blks_read":440,"cache_hit_pct":99.57,"commits":1126,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":68820,"tup_inserted":93,"tup_returned":384297,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:32:09.188Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:37:09.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":102873,"blks_read":440,"cache_hit_pct":99.57,"commits":1145,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":69868,"tup_inserted":94,"tup_returned":391467,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:37:09.189Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:42:09.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":104435,"blks_read":440,"cache_hit_pct":99.58,"commits":1163,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":70890,"tup_inserted":95,"tup_returned":398611,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:42:09.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T06:47:09.212Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":105997,"blks_read":440,"cache_hit_pct":99.59,"commits":1181,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":71912,"tup_inserted":96,"tup_returned":405755,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T06:47:09.212Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T07:45:48.241Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":107541,"blks_read":440,"cache_hit_pct":99.59,"commits":1198,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":72945,"tup_inserted":97,"tup_returned":411686,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T07:45:48.241Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T09:29:39.489Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":109027,"blks_read":440,"cache_hit_pct":99.6,"commits":1214,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":73952,"tup_inserted":98,"tup_returned":417591,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T09:29:39.489Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-04-02T10:50:50.360Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:00:38.518Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":119},"level":"info","message":"Connection to NLP server established: true","service":"Service/NLPService","timestamp":"2026-04-02T11:03:13.642Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:14:01.853Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":111400,"blks_read":440,"cache_hit_pct":99.61,"commits":1243,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":75646,"tup_inserted":102,"tup_returned":426637,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:14:01.854Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:19:01.871Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":113020,"blks_read":440,"cache_hit_pct":99.61,"commits":1262,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":76694,"tup_inserted":103,"tup_returned":433807,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:19:01.872Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-02T11:24:01.882Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":114582,"blks_read":440,"cache_hit_pct":99.62,"commits":1280,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":77716,"tup_inserted":104,"tup_returned":440951,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-02T11:24:01.883Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-02T11:26:30.210Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-02T11:26:30.229Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:26:30.232Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-05T18:15:41.060Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-05T18:15:41.069Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-05T18:15:41.049Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-05T18:15:41.070Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-05T18:15:41.071Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-05T18:15:41.069Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-05T18:15:41.115Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-05T18:15:41.118Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:15:41.123Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":121301,"blks_read":785,"cache_hit_pct":99.36,"commits":1312,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":82184,"tup_inserted":105,"tup_returned":451355,"tup_updated":0},"locks":{"byMode":[{"count":7,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":9,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:15:41.123Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:20:41.094Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":132722,"blks_read":870,"cache_hit_pct":99.35,"commits":1419,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":91697,"tup_inserted":116,"tup_returned":467917,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:20:41.095Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:25:41.096Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":134284,"blks_read":870,"cache_hit_pct":99.36,"commits":1437,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":92719,"tup_inserted":117,"tup_returned":475061,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:25:41.097Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:30:41.089Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":135846,"blks_read":870,"cache_hit_pct":99.36,"commits":1455,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":93741,"tup_inserted":118,"tup_returned":482205,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:30:41.089Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T18:35:41.112Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":137461,"blks_read":875,"cache_hit_pct":99.37,"commits":1474,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":94789,"tup_inserted":119,"tup_returned":489375,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T18:35:41.112Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-05T19:08:02.568Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":139023,"blks_read":875,"cache_hit_pct":99.37,"commits":1492,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":95811,"tup_inserted":120,"tup_returned":496519,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-05T19:08:02.568Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T02:19:56.454Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":140585,"blks_read":875,"cache_hit_pct":99.38,"commits":1510,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":96833,"tup_inserted":121,"tup_returned":503663,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T02:19:56.454Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T11:20:02.030Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":142206,"blks_read":876,"cache_hit_pct":99.39,"commits":1529,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":97881,"tup_inserted":122,"tup_returned":510833,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T11:20:02.030Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:15:15.780Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":143768,"blks_read":876,"cache_hit_pct":99.39,"commits":1547,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":98903,"tup_inserted":123,"tup_returned":517977,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:15:15.780Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:20:15.771Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":145330,"blks_read":876,"cache_hit_pct":99.4,"commits":1565,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":99925,"tup_inserted":124,"tup_returned":525121,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:20:15.771Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:25:15.820Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":146950,"blks_read":876,"cache_hit_pct":99.41,"commits":1584,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":100973,"tup_inserted":125,"tup_returned":532291,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:25:15.820Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-06T16:30:15.791Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":148512,"blks_read":876,"cache_hit_pct":99.41,"commits":1602,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":101995,"tup_inserted":126,"tup_returned":539435,"tup_updated":0},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-06T16:30:15.791Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-07T16:16:20.119Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.130Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.127Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T16:16:20.094Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-07T16:16:20.129Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-07T16:16:20.131Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-07T16:16:20.128Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-07T16:16:20.178Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-07T16:16:20.182Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:16:20.191Z","counts":{"active":4,"idle":1,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":169867,"blks_read":1245,"cache_hit_pct":99.27,"commits":1799,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":116092,"tup_inserted":136,"tup_returned":613344,"tup_updated":10},"locks":{"byMode":[{"count":12,"mode":"AccessShareLock"},{"count":2,"mode":"ExclusiveLock"}],"total":14,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:16:20.191Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:21:20.159Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":182530,"blks_read":1334,"cache_hit_pct":99.27,"commits":1922,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":126293,"tup_inserted":151,"tup_returned":630602,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:21:20.160Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:26:20.162Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":184092,"blks_read":1334,"cache_hit_pct":99.28,"commits":1940,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":127315,"tup_inserted":152,"tup_returned":637746,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:26:20.163Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:31:20.152Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":185654,"blks_read":1334,"cache_hit_pct":99.29,"commits":1958,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":128337,"tup_inserted":153,"tup_returned":644890,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:31:20.154Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:36:20.166Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":187272,"blks_read":1336,"cache_hit_pct":99.29,"commits":1977,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":129385,"tup_inserted":154,"tup_returned":652064,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:36:20.168Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:41:20.168Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":188834,"blks_read":1336,"cache_hit_pct":99.3,"commits":1995,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":130407,"tup_inserted":155,"tup_returned":659208,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:41:20.168Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:46:20.169Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":190396,"blks_read":1336,"cache_hit_pct":99.3,"commits":2013,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":131429,"tup_inserted":156,"tup_returned":666352,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:46:20.170Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:51:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":192016,"blks_read":1336,"cache_hit_pct":99.31,"commits":2032,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":132477,"tup_inserted":157,"tup_returned":673526,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:51:20.190Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T16:56:20.189Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":193578,"blks_read":1336,"cache_hit_pct":99.31,"commits":2050,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":133499,"tup_inserted":158,"tup_returned":680670,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T16:56:20.189Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:01:20.179Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":195064,"blks_read":1336,"cache_hit_pct":99.32,"commits":2066,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":134506,"tup_inserted":159,"tup_returned":686575,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:01:20.179Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:06:20.192Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":196684,"blks_read":1336,"cache_hit_pct":99.33,"commits":2085,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":135554,"tup_inserted":160,"tup_returned":693749,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:06:20.192Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:11:20.203Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":198246,"blks_read":1336,"cache_hit_pct":99.33,"commits":2103,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":136576,"tup_inserted":161,"tup_returned":700893,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:11:20.203Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:16:20.185Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":199808,"blks_read":1336,"cache_hit_pct":99.34,"commits":2121,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":137598,"tup_inserted":162,"tup_returned":708037,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:16:20.185Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:21:20.208Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":201428,"blks_read":1336,"cache_hit_pct":99.34,"commits":2140,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":138646,"tup_inserted":163,"tup_returned":715211,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:21:20.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:26:20.218Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":202990,"blks_read":1336,"cache_hit_pct":99.35,"commits":2158,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":139668,"tup_inserted":164,"tup_returned":722355,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:26:20.218Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:31:20.205Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":204552,"blks_read":1336,"cache_hit_pct":99.35,"commits":2176,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":140690,"tup_inserted":165,"tup_returned":729499,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:31:20.205Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:36:20.209Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":206172,"blks_read":1336,"cache_hit_pct":99.36,"commits":2195,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":141738,"tup_inserted":166,"tup_returned":736673,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:36:20.209Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:41:20.222Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":207734,"blks_read":1336,"cache_hit_pct":99.36,"commits":2213,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":142760,"tup_inserted":167,"tup_returned":743817,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:41:20.223Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:46:20.214Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":209296,"blks_read":1336,"cache_hit_pct":99.37,"commits":2231,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":143782,"tup_inserted":168,"tup_returned":750961,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:46:20.215Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:51:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":210916,"blks_read":1336,"cache_hit_pct":99.37,"commits":2250,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":144830,"tup_inserted":169,"tup_returned":758135,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:51:20.236Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T17:56:20.235Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":212478,"blks_read":1336,"cache_hit_pct":99.38,"commits":2268,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":145852,"tup_inserted":170,"tup_returned":765279,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T17:56:20.235Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:01:20.228Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":214040,"blks_read":1336,"cache_hit_pct":99.38,"commits":2286,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":146874,"tup_inserted":171,"tup_returned":772423,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:01:20.228Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-07T18:06:20.252Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":215660,"blks_read":1336,"cache_hit_pct":99.38,"commits":2305,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":147922,"tup_inserted":172,"tup_returned":779597,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-07T18:06:20.252Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"process.handleShutdown","line":103},"level":"info","message":"Received SIGTERM. Flushing statistics and shutting down...","service":"webServer","timestamp":"2026-04-07T18:08:00.787Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.close","line":39},"level":"info","message":"Service closed","service":"Service/BackgroundTaskService","timestamp":"2026-04-07T18:08:00.791Z"} -{"caller":{"column":25,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"Server.","line":456},"level":"info","message":"Server started on port 3001","service":"webServer","timestamp":"2026-04-08T16:07:57.269Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://127.0.0.1:3012","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":41},"level":"info","message":"Connect to RPC server at ws://rpc_test:3010","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"Service.js","filePath":"/content-server/backend/webserver/Service.js","function":"BackgroundTaskService.init","line":31},"level":"info","message":"Service initialized","service":"Service/BackgroundTaskService","timestamp":"2026-04-08T16:07:57.252Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"PDFRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/PDFRPC","timestamp":"2026-04-08T16:07:57.279Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"RPCtest.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/RPCtest","timestamp":"2026-04-08T16:07:57.280Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":41},"level":"info","message":"Connect to RPC server at ws://moodle_rpc:3011","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.277Z"} -{"caller":{"column":21,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"MoodleRPC.init","line":44},"level":"info","message":"RPC initialized","service":"RPC/MoodleRPC","timestamp":"2026-04-08T16:07:57.278Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"#initMailServer","line":128},"level":"info","message":"Using sendmail transport","service":"webServer","timestamp":"2026-04-08T16:07:57.322Z"} -{"caller":{"column":29,"file":"Server.js","filePath":"/content-server/backend/webserver/Server.js","function":"anonymous","line":90},"level":"info","message":"Mail server initialized","service":"webServer","timestamp":"2026-04-08T16:07:57.326Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:07:57.334Z","counts":{"active":3,"idle":2,"total":13},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":222227,"blks_read":1681,"cache_hit_pct":99.25,"commits":2333,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":152360,"tup_inserted":173,"tup_returned":787523,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:07:57.334Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:12:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":233821,"blks_read":1766,"cache_hit_pct":99.25,"commits":2440,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":162139,"tup_inserted":184,"tup_returned":804351,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:12:57.317Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:17:57.328Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":235383,"blks_read":1766,"cache_hit_pct":99.26,"commits":2458,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":163161,"tup_inserted":185,"tup_returned":811495,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:17:57.328Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:22:57.316Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":236945,"blks_read":1766,"cache_hit_pct":99.26,"commits":2476,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":6,"tup_fetched":164183,"tup_inserted":186,"tup_returned":818639,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:22:57.316Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:27:57.338Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":238564,"blks_read":1771,"cache_hit_pct":99.26,"commits":2495,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":165231,"tup_inserted":187,"tup_returned":825813,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:27:57.339Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:32:57.337Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":240126,"blks_read":1771,"cache_hit_pct":99.27,"commits":2513,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":166253,"tup_inserted":188,"tup_returned":832957,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:32:57.337Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:38:03.448Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":241688,"blks_read":1771,"cache_hit_pct":99.27,"commits":2531,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":167275,"tup_inserted":189,"tup_returned":840101,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:38:03.448Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:43:03.494Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":243308,"blks_read":1771,"cache_hit_pct":99.28,"commits":2550,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":168323,"tup_inserted":190,"tup_returned":847271,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:43:03.494Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:48:03.475Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":244870,"blks_read":1771,"cache_hit_pct":99.28,"commits":2568,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":169345,"tup_inserted":191,"tup_returned":854415,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:48:03.475Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:53:03.463Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":246432,"blks_read":1771,"cache_hit_pct":99.29,"commits":2586,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":170367,"tup_inserted":192,"tup_returned":861559,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:53:03.463Z"} -{"level":"info","message":"pg_stat_activity snapshot","pg_stat_activity":{"collectedAt":"2026-04-08T16:58:03.488Z","counts":{"active":1,"idle":0,"total":9},"dbStats":{"blk_read_time":0,"blk_write_time":0,"blks_hit":248052,"blks_read":1771,"cache_hit_pct":99.29,"commits":2605,"datname":"care","deadlocks":0,"rollback_pct":0,"rollbacks":0,"temp_bytes":0,"temp_files":0,"tup_deleted":10,"tup_fetched":171415,"tup_inserted":193,"tup_returned":868729,"tup_updated":10},"locks":{"byMode":[{"count":1,"mode":"ExclusiveLock"},{"count":1,"mode":"AccessShareLock"}],"total":2,"waiting":0,"waitingSamples":[]},"oldestActive":[]},"service":"webServer","timestamp":"2026-04-08T16:58:03.488Z"} diff --git a/logs/error.log b/logs/error.log deleted file mode 100644 index 36d2e9c26..000000000 --- a/logs/error.log +++ /dev/null @@ -1,174 +0,0 @@ -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.817Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:30.819Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.653Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:10:45.660Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.518Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:13:36.520Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.025Z","userId":3} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-01T19:15:32.026Z","userId":3} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-01T19:16:12.988Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T13:41:18.825Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:31:06.281Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:32:17.029Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:42:48.853Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T16:47:19.872Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:04:52.978Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-02T17:06:44.692Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:07:16.781Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:14:54.156Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:16:48.960Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:26:05.259Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:04.351Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:36:11.398Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:39:29.169Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T10:42:03.151Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:05:36.053Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T11:27:42.699Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:14:32.711Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T12:56:01.703Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:17:36.119Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T13:32:49.720Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:11:10.614Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T14:43:37.534Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:08:15.541Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:08.829Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:49:21.006Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T15:50:46.664Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:09:58.753Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:12.851Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:32:25.735Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:35:06.957Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:38:26.725Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:01.861Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:44:47.503Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T16:57:21.230Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:00:54.150Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:06:09.779Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:28:47.333Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T17:58:41.750Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-03T18:16:47.042Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:12:44.213Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:25:04.002Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:35:36.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:27.591Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:54:39.476Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T15:58:01.981Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:05:44.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:18:13.912Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:21:13.812Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:22:31.326Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:42:55.438Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:48:21.422Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-04T16:52:22.996Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T12:58:56.856Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:24:03.088Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:36:16.530Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:47:28.171Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:58:27.634Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T13:59:48.521Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:02:22.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:18:31.136Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:20:52.611Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T14:32:24.849Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:08:26.633Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:25:04.254Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T15:37:21.233Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T16:59:20.492Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-05T17:01:17.429Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:01:17.498Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:15:23.072Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:42:57.401Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T14:46:17.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:16:03.444Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:23:09.480Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:29:57.559Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T15:49:32.205Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.813Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-09T16:23:25.814Z","userId":1} -{"caller":{"column":37,"file":"RPC.js","filePath":"/content-server/backend/webserver/RPC.js","function":"Socket.","line":172},"level":"error","service":"RPC/PDFRPC","timestamp":"2026-03-09T16:24:05.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:28:24.780Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:38:49.342Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:45:25.479Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T16:58:19.800Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:00:51.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:08:47.960Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-09T17:20:25.614Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-10T09:26:36.371Z","userId":1} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-11T19:49:52.957Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:31:25.620Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:39:24.689Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:43:04.287Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:47:23.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:51:15.887Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T13:58:46.455Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:03:49.460Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:14.371Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:06:42.004Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:09:36.410Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:14:36.274Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:20:15.318Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.474Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.475Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.476Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:29:19.477Z","userId":1} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:34:51.734Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:42:43.739Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T14:43:24.416Z"} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.881Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:43:25.883Z","userId":1} -{"caller":{"column":29,"file":"Socket.js","filePath":"/content-server/backend/webserver/Socket.js","function":"Socket.","line":81},"level":"error","message":"Cannot read properties of undefined (reading 'table')","timestamp":"2026-03-19T14:54:08.273Z","userId":1} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:06:52.027Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:15:19.529Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T15:18:48.321Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T16:42:02.656Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T17:10:26.855Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:05:41.657Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:23:04.132Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:27:04.499Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:28:42.504Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:05.034Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:30:51.669Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:32:37.904Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-19T18:42:59.278Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:55:19.537Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T12:59:10.173Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:01:36.523Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:17:02.999Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:24:52.876Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:29:50.170Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:45:17.346Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:48:33.405Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T13:57:07.370Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:00:10.210Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:05:21.290Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:25.001Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:19:37.205Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:21:07.089Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:30:08.575Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:37:32.770Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:49:14.785Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T14:58:39.951Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:03:10.175Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T15:43:43.487Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T16:04:02.621Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-26T17:25:23.321Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:51:40.806Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:53:46.040Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T08:56:35.483Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:03:12.676Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:09:38.091Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:14:45.969Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:22:15.571Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:26:49.061Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:38:12.638Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T09:58:21.763Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:05:26.883Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:22:02.109Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:23:18.265Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-03-31T10:26:47.659Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:00:38.518Z"} -{"caller":{"column":25,"file":"nlp.js","filePath":"/content-server/backend/webserver/services/nlp.js","function":"Socket.","line":128},"level":"error","message":"Connection to NLP server disrupted: true","service":"Service/NLPService","timestamp":"2026-04-02T11:26:30.232Z"} From cf906f89ba7fe122cc32a290279659bf34a620c0 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 13 Apr 2026 01:24:40 +0200 Subject: [PATCH 15/47] refactor: collapse trace migrations and use proper timestamps --- .../20260330000001-extend-trace-deleted.js | 21 ------------------- ....js => 20260412231117-create-recording.js} | 1 - ...race.js => 20260412231119-create-trace.js} | 0 3 files changed, 22 deletions(-) delete mode 100644 backend/db/migrations/20260330000001-extend-trace-deleted.js rename backend/db/migrations/{20260326000001-create-recording.js => 20260412231117-create-recording.js} (99%) rename backend/db/migrations/{20260326000002-create-trace.js => 20260412231119-create-trace.js} (100%) diff --git a/backend/db/migrations/20260330000001-extend-trace-deleted.js b/backend/db/migrations/20260330000001-extend-trace-deleted.js deleted file mode 100644 index b85fec147..000000000 --- a/backend/db/migrations/20260330000001-extend-trace-deleted.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -module.exports = { - async up(queryInterface, Sequelize) { - await queryInterface.addColumn('trace', 'deleted', { - type: Sequelize.BOOLEAN, - allowNull: false, - defaultValue: false, - }); - await queryInterface.addColumn('trace', 'deletedAt', { - type: Sequelize.DATE, - allowNull: true, - defaultValue: null, - }); - }, - - async down(queryInterface, Sequelize) { - await queryInterface.removeColumn('trace', 'deleted'); - await queryInterface.removeColumn('trace', 'deletedAt'); - }, -}; \ No newline at end of file diff --git a/backend/db/migrations/20260326000001-create-recording.js b/backend/db/migrations/20260412231117-create-recording.js similarity index 99% rename from backend/db/migrations/20260326000001-create-recording.js rename to backend/db/migrations/20260412231117-create-recording.js index 1420f408d..7694f03e8 100644 --- a/backend/db/migrations/20260326000001-create-recording.js +++ b/backend/db/migrations/20260412231117-create-recording.js @@ -48,7 +48,6 @@ module.exports = { allowNull: true, defaultValue: null, }, - createdAt: { type: Sequelize.DATE, allowNull: false, diff --git a/backend/db/migrations/20260326000002-create-trace.js b/backend/db/migrations/20260412231119-create-trace.js similarity index 100% rename from backend/db/migrations/20260326000002-create-trace.js rename to backend/db/migrations/20260412231119-create-trace.js From daf9445b85d0ede223fbc37bc7dfa25515e77e48 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 13 Apr 2026 01:24:40 +0200 Subject: [PATCH 16/47] fix: set publicTable false on recording and trace, move deleted default to migration --- backend/db/models/recording.js | 4 ++-- backend/db/models/trace.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/db/models/recording.js b/backend/db/models/recording.js index dc6ed2886..6fcc235c4 100644 --- a/backend/db/models/recording.js +++ b/backend/db/models/recording.js @@ -5,7 +5,7 @@ module.exports = (sequelize, DataTypes) => { class Recording extends MetaModel { static autoTable = true; static fields = []; - static publicTable = true; + static publicTable = false; static associate(models) { Recording.belongsTo(models["user"], { @@ -26,7 +26,7 @@ module.exports = (sequelize, DataTypes) => { startTime: DataTypes.DATE, endTime: DataTypes.DATE, userId: DataTypes.INTEGER, - deleted: { type: DataTypes.BOOLEAN, defaultValue: false }, + deleted: DataTypes.BOOLEAN, deletedAt: DataTypes.DATE, createdAt: DataTypes.DATE, updatedAt: DataTypes.DATE, diff --git a/backend/db/models/trace.js b/backend/db/models/trace.js index cd6359cfc..16c12b98b 100644 --- a/backend/db/models/trace.js +++ b/backend/db/models/trace.js @@ -5,7 +5,7 @@ module.exports = (sequelize, DataTypes) => { class Trace extends MetaModel { static autoTable = true; static fields = []; - static publicTable = true; + static publicTable = false; static associate(models) { Trace.belongsTo(models["recording"], { @@ -23,7 +23,7 @@ module.exports = (sequelize, DataTypes) => { direction: DataTypes.BOOLEAN, startTime: DataTypes.DATE, endTime: DataTypes.DATE, - deleted: { type: DataTypes.BOOLEAN, defaultValue: false }, + deleted: DataTypes.BOOLEAN, deletedAt: DataTypes.DATE, createdAt: DataTypes.DATE, updatedAt: DataTypes.DATE, From 17c9b8db11ef4d9ae72878d4d7d411fa45bc34cb Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 13 Apr 2026 01:24:40 +0200 Subject: [PATCH 17/47] refactor: remove redundant sendToast calls and unused return from startRecording --- backend/webserver/sockets/recorder.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/webserver/sockets/recorder.js b/backend/webserver/sockets/recorder.js index 891feb601..1de5bbfcb 100644 --- a/backend/webserver/sockets/recorder.js +++ b/backend/webserver/sockets/recorder.js @@ -74,9 +74,6 @@ class RecorderSocket extends Socket { this.socket.onAny(this.incomingHandler); this.socket.onAnyOutgoing(this.outgoingHandler); - - this.sendToast("Recording started", "Socket Profiler", "success"); - return recording.id; } /** @@ -125,8 +122,6 @@ class RecorderSocket extends Socket { order: [["id", "ASC"]], }); - this.sendToast("Recording stopped", "Socket Profiler", "success"); - return { id: recordingId, traces: traces.map(t => ({ From a1fb6e23e670d53e4b99d8c7f19d4ff932894acc Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 13 Apr 2026 01:24:40 +0200 Subject: [PATCH 18/47] refactor: use BasicButton in recording modal for behavior tracking --- .../socketprofiler/RecordingModal.vue | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue b/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue index 138516a42..276bf9b84 100644 --- a/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue +++ b/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue @@ -44,22 +44,27 @@ \ No newline at end of file From 6bbf3847907cc5b47fddf51f77c2e802c5975187 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 20 Apr 2026 15:23:17 +0200 Subject: [PATCH 22/47] feat: add replay engine with results modal --- backend/package-lock.json | 617 +++++++++++++++++- backend/webserver/replay/auth.js | 109 ++++ backend/webserver/replay/worker.js | 105 +++ backend/webserver/sockets/replayer.js | 133 ++++ .../components/dashboard/SocketProfiler.vue | 21 +- .../socketprofiler/ReplayResultsModal.vue | 155 +++++ 6 files changed, 1134 insertions(+), 6 deletions(-) create mode 100644 backend/webserver/replay/auth.js create mode 100644 backend/webserver/replay/worker.js create mode 100644 backend/webserver/sockets/replayer.js create mode 100644 frontend/src/components/dashboard/socketprofiler/ReplayResultsModal.vue diff --git a/backend/package-lock.json b/backend/package-lock.json index f71d5edff..4fba39207 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -8,7 +8,9 @@ "name": "CAREBackend", "version": "1.1.0", "dependencies": { + "@faker-js/faker": "^10.3.0", "@node-saml/passport-saml": "^5.1.0", + "archiver": "^7.0.1", "argparse": "^2.0.1", "axios": "^1.13.6", "axios-oauth-client": "^2.2.0", @@ -25,10 +27,12 @@ "express-rate-limit": "^8.2.1", "express-session": "^1.19.0", "js-yaml": "^4.1.1", + "jszip": "^3.10.1", "mustache-express": "^1.3.2", "nodemailer": "^8.0.1", "objects-to-csv": "^1.3.6", "otpauth": "^9.2.2", + "papaparse": "^5.5.3", "passport": "^0.7.0", "passport-ldapauth": "^3.0.1", "passport-local": "^1.0.0", @@ -62,7 +66,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "quill": "^2.0.3", + "quill": "2.0.2", "quill-delta": "^5.1.0" }, "devDependencies": { @@ -627,6 +631,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@faker-js/faker": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.4.0.tgz", + "integrity": "sha512-sDBWI3yLy8EcDzgobvJTWq1MJYzAkQdpjXuPukga9wXonhpMRvd1Izuo2Qgwey2OiEoRIBr35RMU9HJRoOHzpw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0", + "npm": ">=10" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1850,6 +1870,18 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/abstract-logging": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", @@ -1939,6 +1971,83 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver/node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2043,6 +2152,20 @@ "axios": "^1.2.1" } }, + "node_modules/b4a": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", + "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, "node_modules/babel-jest": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", @@ -2166,6 +2289,117 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", + "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", + "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", + "license": "Apache-2.0", + "dependencies": { + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.1.tgz", + "integrity": "sha512-fZapLWNB25gS+etK27NV9KgBNXgo2yeYHuj+OyPblQd6GYAE3JVy6aKxszMV5jhGGFwraXQKA5fldvf3lMyEqw==", + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -2306,6 +2540,30 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -2670,6 +2928,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2786,6 +3076,47 @@ "url": "https://opencollective.com/express" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/cross-env": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", @@ -3255,6 +3586,33 @@ "node": ">= 0.6" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -3446,6 +3804,12 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "license": "Apache-2.0" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3905,6 +4269,32 @@ "url": "https://opencollective.com/express" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -4056,6 +4446,12 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "license": "MIT" }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4847,6 +5243,48 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/kruptein": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz", @@ -4865,6 +5303,48 @@ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "license": "MIT" }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/ldap-filter": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", @@ -4931,6 +5411,15 @@ "node": ">=6" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -5322,7 +5811,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5514,6 +6002,18 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5955,6 +6455,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -6083,6 +6598,27 @@ "node": ">= 6" } }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6569,6 +7105,12 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -6883,6 +7425,17 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7158,6 +7711,27 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tar-stream": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", + "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7219,6 +7793,15 @@ "node": "*" } }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", @@ -7962,6 +8545,36 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } } } } diff --git a/backend/webserver/replay/auth.js b/backend/webserver/replay/auth.js new file mode 100644 index 000000000..378158853 --- /dev/null +++ b/backend/webserver/replay/auth.js @@ -0,0 +1,109 @@ +'use strict'; + +const crypto = require('crypto'); +const { io: SocketIOClient } = require('socket.io-client'); + +/** + * Sign a session ID using the express-session HMAC-SHA256 scheme. + * @param {string} sid - Raw session identifier + * @param {string} secret - Session secret from server config + * @returns {string} Signed session ID in format s:. + */ +function signSessionId(sid, secret) { + const signature = crypto + .createHmac('sha256', secret) + .update(sid) + .digest('base64') + .replace(/=+$/, ''); + return `s:${sid}.${signature}`; +} + +/** + * Create an authenticated socket.io-client by writing a Passport + * session directly to the session store. + * @param {Object} server - CARE server instance + * @param {Object} user - User row from DB + * @param {string} serverUrl - Target server URL + * @returns {Promise} Connected client + * @throws {Error} If the client fails to connect + */ +async function createAuthenticatedClient(server, user, serverUrl) { + const sid = crypto.randomBytes(18).toString('hex'); + + const sessionData = JSON.stringify({ + cookie: { + originalMaxAge: null, + expires: null, + httpOnly: true, + path: '/', + }, + passport: { + user: { + id: user.id, + firstName: user.firstName, + lastName: user.lastName, + userName: user.userName, + email: user.email, + rolesUpdatedAt: user.rolesUpdatedAt || null, + }, + }, + }); + + const expires = new Date(Date.now() + 24 * 60 * 60 * 1000); + await server.db.sequelize.query( + `INSERT INTO "Sessions" ("sid", "expires", "data", "createdAt", "updatedAt") + VALUES (:sid, :expires, :data, :now, :now)`, + { + replacements: { + sid, + expires: expires.toISOString(), + data: sessionData, + now: new Date().toISOString(), + }, + type: server.db.sequelize.QueryTypes.INSERT, + } + ); + + const secret = 'secretString'; + const signedSid = signSessionId(sid, secret); + const cookie = `connect.sid=${encodeURIComponent(signedSid)}`; + + const client = SocketIOClient(serverUrl, { + extraHeaders: { cookie }, + reconnection: false, + timeout: 10000, + }); + + return new Promise((resolve, reject) => { + client.on('connect', () => resolve(client)); + client.on('connect_error', (err) => { + reject(new Error(`Replay auth failed for user ${user.id}: ${err.message}`)); + }); + }); +} + +/** + * Disconnect a replay client and remove its session from the store. + * @param {Object} server - CARE server instance + * @param {import("socket.io-client").Socket} client - The replay client to clean up + */ +async function cleanupSession(server, client) { + try { + const cookie = client.io.opts.extraHeaders?.cookie || ''; + const match = cookie.match(/connect\.sid=s%3A([^.]+)\./); + if (match) { + await server.db.sequelize.query( + `DELETE FROM "Sessions" WHERE "sid" = :sid`, + { replacements: { sid: match[1] } } + ); + } + client.disconnect(); + } catch (err) { + // best-effort cleanup + } +} + +module.exports = { + createAuthenticatedClient, + cleanupSession, +}; \ No newline at end of file diff --git a/backend/webserver/replay/worker.js b/backend/webserver/replay/worker.js new file mode 100644 index 000000000..ed1f3a1bc --- /dev/null +++ b/backend/webserver/replay/worker.js @@ -0,0 +1,105 @@ +'use strict'; + +const { createAuthenticatedClient, cleanupSession } = require('./auth'); + +/** + * Emit a socket event and wait for the server acknowledgement. + * @param {import("socket.io-client").Socket} client - Connected socket client + * @param {string} action - Event name to emit + * @param {Object} payload - Event payload + * @param {number} timeoutMs - Max wait time for ack + * @returns {Promise} Server response + * @throws {Error} If no ack received within timeout + */ +function emitWithTimeout(client, action, payload, timeoutMs) { + return new Promise((resolve) => { + const timer = setTimeout(() => { + resolve({ success: true, timedOut: true }); + }, timeoutMs); + + client.emit(action, payload || {}, (response) => { + clearTimeout(timer); + resolve(response); + }); + }); +} + +/** + * Replay a single user's traces through an authenticated socket connection. + * @param {Object} server - CARE server instance + * @param {Object} user - User row from DB + * @param {Array} traces - Trace rows (direction: true only), sorted by startTime + * @param {string} serverUrl - Target server URL + * @param {string} timingMode - "realtime" to preserve original delays, "fast" to skip them + * @returns {Promise} Results with pass/fail counts, errors, and latencies + */ +async function replayUserTraces(server, user, traces, serverUrl, timingMode) { + const results = { + userId: user.id, + userName: user.userName, + total: traces.length, + passed: 0, + failed: 0, + errors: [], + latencies: [], + }; + + let client; + try { + client = await createAuthenticatedClient(server, user, serverUrl); + } catch (err) { + results.failed = traces.length; + results.errors.push({ action: 'connect', message: err.message }); + return results; + } + + try { + let prevTime = traces.length > 0 ? new Date(traces[0].startTime).getTime() : 0; + + for (const trace of traces) { + console.log(`[replay] trace ${results.passed + results.failed + 1}/${traces.length}: ${trace.action}`); + if (timingMode === 'realtime') { + const traceTime = new Date(trace.startTime).getTime(); + const delay = traceTime - prevTime; + if (delay > 0) { + await new Promise(resolve => setTimeout(resolve, delay)); + } + prevTime = traceTime; + } + + try { + const start = Date.now(); + const ack = await emitWithTimeout(client, trace.action, trace.payload, 2000); + const latency = Date.now() - start; + + results.latencies.push({ traceId: trace.id, action: trace.action, latency }); + + if (ack && ack.success === false) { + results.failed++; + results.errors.push({ + traceId: trace.id, + action: trace.action, + message: ack.message || 'Server returned success: false', + }); + } else { + results.passed++; + } + } catch (err) { + results.failed++; + results.errors.push({ + traceId: trace.id, + action: trace.action, + message: err.message, + }); + } + } + } finally { + await cleanupSession(server, client); + } + + return results; +} + +module.exports = { + replayUserTraces, +}; \ No newline at end of file diff --git a/backend/webserver/sockets/replayer.js b/backend/webserver/sockets/replayer.js new file mode 100644 index 000000000..2949c992d --- /dev/null +++ b/backend/webserver/sockets/replayer.js @@ -0,0 +1,133 @@ +'use strict'; + +const Socket = require('../Socket.js'); +const { replayUserTraces } = require('../replay/worker'); + +/** + * Handles replaying recorded socket events for stress testing. + * Uses a scaling-correctness approach: replays one user's traces, + * verifies all pass, adds another user in parallel, and scales + * until something breaks. + * + * @type {ReplayerSocket} + * @class ReplayerSocket + */ +class ReplayerSocket extends Socket { + + /** + * Run a scaling-correctness replay for a recording. + * @param {Object} data - The input data from the frontend + * @param {number} data.recordingId - ID of the recording to replay + * @param {string} data.timingMode - "realtime" or "fast" + * @param {Object} options - Additional configuration parameter + * @param {Object} options.transaction - Sequelize DB transaction options + * @returns {Promise>} Results per scaling level + * @throws {Error} If recordingId is missing or recording has no traces + */ + async replayRun(data, options) { + const { recordingId, timingMode = 'fast' } = data; + + if (!recordingId) { + throw new Error('recordingId is required'); + } + + const recording = await this.models['recording'].findByPk(recordingId); + if (!recording) { + throw new Error('Recording not found'); + } + + const traces = await this.models['trace'].findAll({ + where: { recordingId, direction: true, deleted: false }, + order: [['startTime', 'ASC']], + }); + + if (traces.length === 0) { + throw new Error('No traces found for this recording'); + } + + const userTraceMap = this.groupTracesByUser(traces); + const userIds = Array.from(userTraceMap.keys()); + + if (userIds.length === 0) { + throw new Error('No user-tagged traces found'); + } + + const users = await this.models['user'].findAll({ + where: { id: userIds }, + }); + const userMap = new Map(users.map(u => [u.id, u])); + + const serverUrl = `http://localhost:${process.env.CONTENT_SERVER_PORT || 3001}`; + + return await this.runScalingTest(userIds, userMap, userTraceMap, serverUrl, timingMode); + } + + /** + * Group trace rows by userId. + * @param {Array} traces - Trace rows sorted by startTime + * @returns {Map>} Map of userId to their traces + */ + groupTracesByUser(traces) { + const map = new Map(); + for (const t of traces) { + if (!t.userId) continue; + if (!map.has(t.userId)) { + map.set(t.userId, []); + } + map.get(t.userId).push(t); + } + return map; + } + + /** + * Execute the scaling-correctness loop, adding one user per level. + * @param {Array} userIds - Ordered list of user IDs to scale through + * @param {Map} userMap - Map of userId to user row + * @param {Map>} userTraceMap - Map of userId to traces + * @param {string} serverUrl - Target server URL + * @param {string} timingMode - "realtime" or "fast" + * @returns {Promise>} Results per level + */ + async runScalingTest(userIds, userMap, userTraceMap, serverUrl, timingMode) { + const allResults = []; + + for (let level = 1; level <= userIds.length; level++) { + const activeUserIds = userIds.slice(0, level); + + this.sendToast( + `Level ${level}/${userIds.length}: replaying ${activeUserIds.length} user(s)`, + 'Replay', + 'info' + ); + + const levelResults = await Promise.all( + activeUserIds.map(uid => { + const user = userMap.get(uid); + const userTraces = userTraceMap.get(uid); + return replayUserTraces(this.server, user, userTraces, serverUrl, timingMode); + }) + ); + + const levelFailed = levelResults.some(r => r.failed > 0); + allResults.push({ + level, + users: activeUserIds.length, + results: levelResults, + passed: !levelFailed, + }); + + if (levelFailed) { + this.sendToast(`Replay failed at level ${level}`, 'Replay', 'danger'); + break; + } + } + + return allResults; + } + + init() { + this.createSocket('replayRun', this.replayRun, {}, false); + } +} + +module.exports = ReplayerSocket; \ No newline at end of file diff --git a/frontend/src/components/dashboard/SocketProfiler.vue b/frontend/src/components/dashboard/SocketProfiler.vue index c5a68fab7..6ce2c4ad8 100644 --- a/frontend/src/components/dashboard/SocketProfiler.vue +++ b/frontend/src/components/dashboard/SocketProfiler.vue @@ -33,6 +33,7 @@ + + + \ No newline at end of file From e9780eb6bc5dd8035866e6afd8692a9dbfbe98a0 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Wed, 22 Apr 2026 00:31:09 +0200 Subject: [PATCH 23/47] feat: add event exclusion filter and update modals to use BasicTable --- .../20260412231117-create-recording.js | 10 + ...417152129-extend-recording-participants.js | 15 -- backend/db/models/recording.js | 1 + backend/webserver/replay/worker.js | 39 +++- backend/webserver/sockets/recorder.js | 12 ++ .../socketprofiler/RecordingModal.vue | 114 ++++++----- .../socketprofiler/ReplayResultsModal.vue | 183 ++++++++++++------ .../socketprofiler/StartRecordingModal.vue | 112 +++++++++-- 8 files changed, 339 insertions(+), 147 deletions(-) delete mode 100644 backend/db/migrations/20260417152129-extend-recording-participants.js diff --git a/backend/db/migrations/20260412231117-create-recording.js b/backend/db/migrations/20260412231117-create-recording.js index 7694f03e8..b5d482ad9 100644 --- a/backend/db/migrations/20260412231117-create-recording.js +++ b/backend/db/migrations/20260412231117-create-recording.js @@ -38,6 +38,16 @@ module.exports = { onDelete: 'CASCADE', onUpdate: 'CASCADE', }, + participantUserIds: { + type: Sequelize.JSONB, + allowNull: true, + defaultValue: null, + }, + excludeEvents: { + type: Sequelize.JSONB, + allowNull: true, + defaultValue: null, + }, deleted: { type: Sequelize.BOOLEAN, allowNull: false, diff --git a/backend/db/migrations/20260417152129-extend-recording-participants.js b/backend/db/migrations/20260417152129-extend-recording-participants.js deleted file mode 100644 index 5a9f84c57..000000000 --- a/backend/db/migrations/20260417152129-extend-recording-participants.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -module.exports = { - async up(queryInterface, Sequelize) { - await queryInterface.addColumn('recording', 'participantUserIds', { - type: Sequelize.JSONB, - allowNull: true, - defaultValue: null, - }); - }, - - async down(queryInterface, Sequelize) { - await queryInterface.removeColumn('recording', 'participantUserIds'); - }, -}; \ No newline at end of file diff --git a/backend/db/models/recording.js b/backend/db/models/recording.js index 7d9241432..1c5a8e36d 100644 --- a/backend/db/models/recording.js +++ b/backend/db/models/recording.js @@ -27,6 +27,7 @@ module.exports = (sequelize, DataTypes) => { endTime: DataTypes.DATE, userId: DataTypes.INTEGER, participantUserIds: DataTypes.JSONB, + excludeEvents: DataTypes.JSONB, deleted: DataTypes.BOOLEAN, deletedAt: DataTypes.DATE, createdAt: DataTypes.DATE, diff --git a/backend/webserver/replay/worker.js b/backend/webserver/replay/worker.js index ed1f3a1bc..15fa81054 100644 --- a/backend/webserver/replay/worker.js +++ b/backend/webserver/replay/worker.js @@ -31,7 +31,7 @@ function emitWithTimeout(client, action, payload, timeoutMs) { * @param {Array} traces - Trace rows (direction: true only), sorted by startTime * @param {string} serverUrl - Target server URL * @param {string} timingMode - "realtime" to preserve original delays, "fast" to skip them - * @returns {Promise} Results with pass/fail counts, errors, and latencies + * @returns {Promise} Results with pass/fail counts, errors, latencies, and DB changes */ async function replayUserTraces(server, user, traces, serverUrl, timingMode) { const results = { @@ -54,10 +54,25 @@ async function replayUserTraces(server, user, traces, serverUrl, timingMode) { } try { + let pendingDbChanges = []; + + client.onAny((eventName, ...args) => { + if (eventName.endsWith('Refresh')) { + const records = Array.isArray(args[0]) ? args[0] : [args[0]]; + pendingDbChanges.push({ + table: eventName.replace('Refresh', ''), + recordCount: records.length, + records: records.map(r => ({ + id: r?.id, + fields: r ? Object.keys(r).filter(k => k !== 'id') : [], + })), + }); + } + }); + let prevTime = traces.length > 0 ? new Date(traces[0].startTime).getTime() : 0; for (const trace of traces) { - console.log(`[replay] trace ${results.passed + results.failed + 1}/${traces.length}: ${trace.action}`); if (timingMode === 'realtime') { const traceTime = new Date(trace.startTime).getTime(); const delay = traceTime - prevTime; @@ -67,12 +82,22 @@ async function replayUserTraces(server, user, traces, serverUrl, timingMode) { prevTime = traceTime; } + pendingDbChanges = []; + try { const start = Date.now(); const ack = await emitWithTimeout(client, trace.action, trace.payload, 2000); const latency = Date.now() - start; - results.latencies.push({ traceId: trace.id, action: trace.action, latency }); + // Small delay to let any remaining Refresh events arrive + await new Promise(resolve => setTimeout(resolve, 50)); + if (pendingDbChanges.length > 0) { + console.log(`[replay] trace ${trace.action} caused ${pendingDbChanges.length} DB changes`); + } + + const dbChanges = [...pendingDbChanges]; + + if (ack && ack.success === false) { results.failed++; @@ -80,9 +105,16 @@ async function replayUserTraces(server, user, traces, serverUrl, timingMode) { traceId: trace.id, action: trace.action, message: ack.message || 'Server returned success: false', + dbChanges, }); } else { results.passed++; + results.latencies.push({ + traceId: trace.id, + action: trace.action, + latency, + dbChanges, + }); } } catch (err) { results.failed++; @@ -90,6 +122,7 @@ async function replayUserTraces(server, user, traces, serverUrl, timingMode) { traceId: trace.id, action: trace.action, message: err.message, + dbChanges: [], }); } } diff --git a/backend/webserver/sockets/recorder.js b/backend/webserver/sockets/recorder.js index 78c6a10fb..1ffbeb08d 100644 --- a/backend/webserver/sockets/recorder.js +++ b/backend/webserver/sockets/recorder.js @@ -32,6 +32,8 @@ class RecorderSocket extends Socket { this.incomingHandler = async (eventName, ...args) => { const recordingId = this.server.activeRecordingId; if (!recordingId) return; + const excludes = this.server.activeExcludeEvents; + if (excludes && excludes.includes(eventName)) return; try { await this.models["trace"].add({ recordingId, @@ -50,6 +52,8 @@ class RecorderSocket extends Socket { this.outgoingHandler = async (eventName, ...args) => { const recordingId = this.server.activeRecordingId; if (!recordingId) return; + const excludes = this.server.activeExcludeEvents; + if (excludes && excludes.includes(eventName)) return; try { await this.models["trace"].add({ recordingId, @@ -88,6 +92,9 @@ class RecorderSocket extends Socket { const participantUserIds = Array.isArray(data?.participantUserIds) && data.participantUserIds.length > 0 ? data.participantUserIds : null; + const excludeEvents = Array.isArray(data?.excludeEvents) && data.excludeEvents.length > 0 + ? data.excludeEvents + : null; const recording = await this.models["recording"].add({ name: data.name || "Recording " + new Date().toLocaleString(), @@ -95,10 +102,14 @@ class RecorderSocket extends Socket { startTime: new Date(), userId: this.userId, participantUserIds, + excludeEvents, }, options); this.server.activeRecordingId = recording.id; this.server.activeParticipantUserIds = participantUserIds; + this.server.activeExcludeEvents = Array.isArray(data?.excludeEvents) && data.excludeEvents.length > 0 + ? data.excludeEvents + : null; // Attach listeners on included users' sockets for (const socketId of Object.keys(this.server.availSockets)) { @@ -128,6 +139,7 @@ class RecorderSocket extends Socket { this.server.activeRecordingId = null; this.server.activeParticipantUserIds = null; + this.server.activeExcludeEvents = null; const traces = await this.models["trace"].findAll({ where: { recordingId }, diff --git a/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue b/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue index 4c862b65a..0b7106ba9 100644 --- a/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue +++ b/frontend/src/components/dashboard/socketprofiler/RecordingModal.vue @@ -19,28 +19,14 @@
-

Select which events to keep. Unselected events will be deleted.

-
-
- - -
-
+

Select events you want to remove. Unselected events will be kept.

+
@@ -99,13 +103,12 @@ import BasicTable from "@/basic/Table.vue"; export default { name: "StartRecordingModal", - subscribeTable: ["user"], components: { BasicModal, BasicButton, BasicTable }, data() { return { recordingName: "", - selectedUsers: [], - onlineSessions: {}, + selectedSessions: [], + onlineSessions: [], // [{socketId, userId, userName, connectedAt}] excludeEvents: ["stats", "subscribeAppData", "unsubscribeAppData"], customExcludeEvent: "", customExcludes: [], @@ -114,7 +117,7 @@ export default { "subscribeAppData", "unsubscribeAppData", ], - userTableOptions: { + sessionTableOptions: { striped: true, hover: true, bordered: false, @@ -127,41 +130,33 @@ export default { }; }, computed: { - users() { - return this.$store.getters["table/user/getAll"]; - }, currentUserId() { return this.$store.getters["auth/getUserId"]; }, - userTable() { - return this.users.map(u => ({ - ...u, - userName: u.userName || "N/A", - firstName: u.firstName || "Unknown", - lastName: u.lastName || "Unknown", - online: this.onlineSessions[u.id] ? "Yes" : "", - sessions: this.onlineSessions[u.id] || 0, + currentSocketId() { + return this.$socket.id; + }, + sessionTable() { + return this.onlineSessions.map(s => ({ + ...s, + // BasicTable likely needs a unique `id` field for selection tracking + id: s.socketId, + socketIdShort: s.socketId ? s.socketId.substring(0, 8) + "…" : "", + connectedAtDisplay: s.connectedAt ? new Date(s.connectedAt).toLocaleTimeString() : "—", + isCurrent: s.socketId === this.currentSocketId ? "(this tab)" : "", })); }, - userTableColumns() { + sessionTableColumns() { return [ - { name: "ID", key: "id" }, - { name: "Username", key: "userName" }, - { name: "First Name", key: "firstName" }, - { name: "Last Name", key: "lastName" }, - { - name: "Online", - key: "online", - filter: [ - { key: "Yes", name: "Online" }, - { key: "", name: "Offline" }, - ], - }, - { name: "Sessions", key: "sessions", sortable: true }, + { name: "User ID", key: "userId", sortable: true }, + { name: "Username", key: "userName", sortable: true }, + { name: "Session", key: "socketIdShort" }, + { name: "Connected", key: "connectedAtDisplay" }, + { name: "", key: "isCurrent" }, ]; }, startButtonText() { - return "Record " + this.selectedUsers.length + " User(s)"; + return "Record " + this.selectedSessions.length + " Session(s)"; }, allExcludeEvents() { return [...this.excludeEvents, ...this.customExcludes]; @@ -170,25 +165,21 @@ export default { methods: { open() { this.recordingName = "Recording " + new Date().toLocaleString(); - this.selectedUsers = []; - this.onlineSessions = {}; + this.selectedSessions = []; + this.onlineSessions = []; this.excludeEvents = ["stats", "subscribeAppData", "unsubscribeAppData"]; this.customExcludeEvent = ""; this.customExcludes = []; - this.$socket.emit("recordingGetOnlineUsers", {}, (res) => { + this.$socket.emit("recordingGetOnlineSessions", {}, (res) => { if (res.success) { - const map = {}; - (res.data || []).forEach(entry => { - map[entry.userId] = entry.sessionCount; - }); - this.onlineSessions = map; + this.onlineSessions = res.data || []; } - // Pre-select admin AFTER onlineSessions is set, so userTable is stable - // and the object reference in selectedUsers matches what the table renders - const adminUser = this.userTable.find(u => u.id === this.currentUserId); - if (adminUser) { - this.selectedUsers = [adminUser]; + // Pre-select the current tab's session AFTER onlineSessions is set, + // so sessionTable is stable and the object reference matches. + const ownRow = this.sessionTable.find(s => s.socketId === this.currentSocketId); + if (ownRow) { + this.selectedSessions = [ownRow]; } }); @@ -208,18 +199,18 @@ export default { this.customExcludes = this.customExcludes.filter(e => e !== event); }, confirm() { - const participantUserIds = this.selectedUsers.map(u => u.id); + const participantSocketIds = this.selectedSessions.map(s => s.socketId); this.$socket.emit("recorderStart", { name: this.recordingName, - participantUserIds, + participantSocketIds, excludeEvents: this.allExcludeEvents, }, (res) => { if (res.success) { this.$refs.modal.close(); this.eventBus.emit("toast", { title: "Recording started", - message: "Recording " + this.selectedUsers.length + " user(s), excluding " + this.allExcludeEvents.length + " event type(s)", + message: "Recording " + this.selectedSessions.length + " session(s), excluding " + this.allExcludeEvents.length + " event type(s)", variant: "success", }); } else { From cd41288cab15efb777c75a4449715b6becb0160c Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 4 May 2026 01:14:17 +0200 Subject: [PATCH 31/47] feat: persistent recording icon replaces global recording bar - TopBar.vue: red pulsing icon visible app-wide during recordings (admins always see; non-admin participants see when their socketId is in participantSocketIds; click is informational only) - Dashboard.vue: remove RecordingBar mount/import - SocketProfiler.vue: stop button calls recorderStop directly instead of going through eventBus -> RecordingBar - StartRecordingModal.vue: drop name input (renamed at save time in RecordingModal instead) - Recording model: publicTable=true so recording state reaches participants reactively (admin and non-admin) - recorder.js: drop debugging console.logs RecordingBar.vue file kept untouched in the repo for git history. --- backend/db/models/recording.js | 2 +- backend/webserver/sockets/recorder.js | 7 +- frontend/src/basic/navigation/Topbar.vue | 78 +++++++++++++++++-- frontend/src/components/Dashboard.vue | 6 +- .../components/dashboard/SocketProfiler.vue | 18 ++++- .../socketprofiler/StartRecordingModal.vue | 15 +--- 6 files changed, 96 insertions(+), 30 deletions(-) diff --git a/backend/db/models/recording.js b/backend/db/models/recording.js index 0189b3206..b7d0f355d 100644 --- a/backend/db/models/recording.js +++ b/backend/db/models/recording.js @@ -5,7 +5,7 @@ module.exports = (sequelize, DataTypes) => { class Recording extends MetaModel { static autoTable = true; static fields = []; - static publicTable = false; + static publicTable = true; static associate(models) { Recording.belongsTo(models["user"], { diff --git a/backend/webserver/sockets/recorder.js b/backend/webserver/sockets/recorder.js index 53a9e5271..db1765545 100644 --- a/backend/webserver/sockets/recorder.js +++ b/backend/webserver/sockets/recorder.js @@ -119,12 +119,10 @@ class RecorderSocket extends Socket { this.server.activeRecordingOwnerSocketId = this.socket.id; this.server.activeExcludeEvents = excludeEvents; - console.log("[startRecording] activeParticipantSocketIds:", this.server.activeParticipantSocketIds); - console.log("[startRecording] all available socketIds:", Object.keys(this.server.availSockets)); + for (const socketId of Object.keys(this.server.availSockets)) { const recorder = this.server.availSockets[socketId]["RecorderSocket"]; const included = recorder ? recorder.isSessionIncluded(recorder.socket.id) : "no recorder"; - console.log(`[startRecording] socket ${socketId}: included=${included}`); if (recorder && recorder.isSessionIncluded(recorder.socket.id)) { recorder.attachListeners(); } @@ -227,8 +225,7 @@ class RecorderSocket extends Socket { ...s, userName: userMap[s.userId] || "Unknown", })); - console.log("[getOnlineSessions] returning:", JSON.stringify(result, null, 2)); - return result; + } init() { diff --git a/frontend/src/basic/navigation/Topbar.vue b/frontend/src/basic/navigation/Topbar.vue index c4889116e..79fb815b7 100644 --- a/frontend/src/basic/navigation/Topbar.vue +++ b/frontend/src/basic/navigation/Topbar.vue @@ -26,13 +26,29 @@ :height="30" /> -
-
+
+