Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 2.3 KB

README.md

File metadata and controls

71 lines (49 loc) · 2.3 KB

Envoy-Curses

Welcome to Envoy-Curses, the most textual observability solution for the Envoy proxy. Before you start, you'll need

  1. a working Envoy install. I highly recommend using the examples from the Envoy project. They use docker-compose to set up some nice examples. You can also use wrk as a load driver to run through examples.
  2. npm or yarn

Building

  • install dependencies using npm install or yarn install
  • run the linter if you like, with yarn lint

Running

  • run with node src/index.js [stats endpoint] [polling frequency], e.g. node src/index.js http://localhost:9999

Architecture

The application uses the blessed and blessed-contrib libraries to provide a graphical, terminal-based interface to Envoy's admin server. Currently it uses the /clusters and /stats endpoints. It polls for data on a configurable interval, keeping a ring buffer in memory for every stat (warning: memory is not free, and in this program, not carefully monitored).

Usage

  • This isn't an escape room. Quit with ctrl-c.
  • The app is organized into three views. ** The Server view shows stats about the Envoy process itself ** The Cluster view shows information about configured clusters. ** The Stats view provides an interface for arbitrary stats
  • Navigate between views with left and right arrow keys

Server

No interaction is possible. View the available data, or move to another screen.

Server View

Cluster

  • navigate screens with left and right arrow keys
  • on clusters screen, select clusters with up and down arrow keys. Pressing enter changes stats to the currently selected cluster.
  • press / or ? to bring up stats selector. Enter selects a new stat to chart.

Cluster View

Stats

  • type characters to filter stat names. Use up/down arrows to select stat to chart. Regexes work as well.
  • backspace clears a single character from your filter
  • escape will clear them all

Stats View

Beta Readiness

Known issues currently include

  • a lack of tests
  • support for handling timeouts/network errors when polling the admin server