gops is a command-line diagnostic tool for inspecting and profiling Go processes running on your system.
The tool solves the problem of understanding the runtime state and performance characteristics of Go applications without modifying their source code. It works by either querying process metadata available to the operating system or, for deeper diagnostics, communicating with an optional agent that can be embedded in a Go binary. The agent approach allows gops to retrieve stack traces, memory statistics, garbage collection information, and profiling data from running processes.
Developers should adopt gops when they need to troubleshoot production Go services or understand the behavior of running applications. It suits any environment where Go processes are deployed and you need visibility into their runtime state without stopping or restarting them. The tool operates in two modes: local mode, which requires running gops as the same user as the target process and uses the process ID, and remote mode, which connects to a process's agent via a host and port combination. Basic process listing and inspection work without any code changes, but accessing advanced diagnostics like stack traces, memory stats, and profiling requires embedding the diagnostics agent in your application.
The project maintains a steady stream of updates addressing both new features and maintenance needs. Development includes regular dependency updates and bug fixes that keep the tool compatible with current Go versions. The codebase receives contributions that expand its capabilities while maintaining its core focus on process diagnostics and profiling.