A small tcp server for monitoring a node in a cluster
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Antonio De Lucreziis 3113a10e0c fix: release action bug 10 months ago
.github/workflows fix: release action bug 10 months ago
.gitignore initial commit 10 months ago
README.md initial commit 10 months ago
go.mod initial commit 10 months ago
main.go initial commit 10 months ago

README.md

Go Stats Server

This Go project implements a simple TCP server that responds to custom commands over the network. The server performs various system-related tasks and provides information such as CPU usage, memory status, network statistics, storage details, and system uptime.

Usage

  1. Build the Server:

    CGO_ENABLED=0 GOARCH=<arch> go build -a -ldflags '-s -w' -o ./out/stats-server main.go
    
  2. Run the Server:

    ./out/stats-server
    
  3. Connect to the Server: Use a TCP client to connect to the server on port 12345. You can send commands like "cpu," "memory," "network," "storage," "uptime," and "exit."

    Example using nc:

    echo "cpu" | nc localhost 12345
    

    or using golang

    import "net"
    
    func main() {
        conn, err := net.Dial("tcp", "localhost:12345")
        if err != nil {
            // handle error
        }
        defer conn.Close()
    
        conn.Write([]byte("cpu"))
    }
    

GitHub Actions Workflow

The included GitHub Actions workflow automates the build and release process. On each push to the main branch, the workflow builds the Go program, creates a GitHub release, and uploads the compiled binary as an artifact.

Downloading the Artifact

TODO