Implement real-time log monitoring system with TCP ingestion and Vue3 UI #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Built a lightweight log monitoring system with TCP ingestion (port 9090), HTTP API (port 8080), and embedded Vue3 frontend. Supports keyword/date filtering, sorting, pagination, and real-time updates.
Architecture
Backend (Go + Gin)
logstore: Thread-safe in-memory storage withsync.RWMutex, LRU eviction at 10k entriestcp: Line-delimited log receiver with auto-timestampinghttp: RESTful API + embedded frontend serving viaembed.FSFrontend (Vue3 + TypeScript + Vite)
API
Implementation Details
RWMutexprotects all LogStore operationshttp.Server.Shutdown()with 5s timeouthttp/frontend/dist/, served via NoRoute handlerScreenshots
Main UI

Filtered view

Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
go.googlesource.com/update-job-proxy /update-job-proxy tcp --destination-port 53 -j ACCEPT test /bin/test mazon_Root_CA_4.bash test /bin/test test -e C_RAIZ_FNMT-RCM_/run/containerd/io.containerd.runtime.v2.task/moby/732fd67f93198684cf9879a232203/usr/bin/chronyc test /home/dependabotjson bal_Root_GB_CA.piptables uby /home/dependabot-t test(dns block)/update-job-proxy /update-job-proxy -o br-de54ba05f38a -j DROP elper '!/home/de-n1 git /opt/go/bin/testrefs/tags/v1.1.1 --global runtime-runc/mobcat-file k test -e 62cdee6.0(dns block)go.uber.org/update-job-proxy /update-job-proxy tcp --destination-port 53 -j ACCEPT test /bin/test mazon_Root_CA_4.bash test /bin/test test -e C_RAIZ_FNMT-RCM_/run/containerd/io.containerd.runtime.v2.task/moby/732fd67f93198684cf9879a232203/usr/bin/chronyc test /home/dependabotjson bal_Root_GB_CA.piptables uby /home/dependabot-t test(dns block)/update-job-proxy /update-job-proxy -o br-de54ba05f38a -j DROP elper '!/home/de-n1 git /opt/go/bin/testrefs/tags/v1.1.1 --global runtime-runc/mobcat-file k test -e 62cdee6.0(dns block)google.golang.org/update-job-proxy /update-job-proxy tcp --destination-port 53 -j ACCEPT test /bin/test mazon_Root_CA_4.bash test /bin/test test -e C_RAIZ_FNMT-RCM_/run/containerd/io.containerd.runtime.v2.task/moby/732fd67f93198684cf9879a232203/usr/bin/chronyc test /home/dependabotjson bal_Root_GB_CA.piptables uby /home/dependabot-t test(dns block)/update-job-proxy /update-job-proxy -o br-de54ba05f38a -j DROP elper '!/home/de-n1 git /opt/go/bin/testrefs/tags/v1.1.1 --global runtime-runc/mobcat-file k test -e 62cdee6.0(dns block)gopkg.in/update-job-proxy /update-job-proxy tcp --destination-port 53 -j ACCEPT test /bin/test mazon_Root_CA_4.bash test /bin/test test -e C_RAIZ_FNMT-RCM_/run/containerd/io.containerd.runtime.v2.task/moby/732fd67f93198684cf9879a232203/usr/bin/chronyc test /home/dependabotjson bal_Root_GB_CA.piptables uby /home/dependabot-t test(dns block)/update-job-proxy /update-job-proxy -o br-de54ba05f38a -j DROP elper '!/home/de-n1 git /opt/go/bin/testrefs/tags/v1.1.1 --global runtime-runc/mobcat-file k test -e 62cdee6.0(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.