📚 ostent - Awesome Go Library for Software Packages
collects and displays system metrics and optionally relays to Graphite and/or InfluxDB.
Detailed Description of ostent
Ostent
Ostent collects metrics to display and report to InfluxDB, Graphite, Librato.
System metrics collected and reported:
- RAM, swap usage
- CPU usage, load average
- Disk space usage in bytes and inodes
- Network ins and outs in bytes, packets, drops and errors
The processes top is on-display only.
Install
Ostent is a single executable. Release tarball has the binary — download and extract in one go:
curl -L https://github.com/ostrost/ostent/releases/download/v0.7.0/`uname`-`uname -m`.tar.xz | tar Jxf -
This will place executable in ./usr/**/bin/ostent
.
For system-wide install use sudo tar Jxf - -C / <<<...
.
Platforms:
- Linux
- FreeBSD
- Mac OS X
Usage
$ ostent -h
Ostent is a server tool to collect, display and report system metrics.
Usage:
ostent [flags]
Flags:
--bind string server bind address (default "")
--bind-port int server bind port (default 8050)
--config string config filename (default "$HOME/.ostent.toml")
--interval duration metrics collection interval (default 10s)
--log-requests log server requests (default false)
--upgrade-checks periodic upgrade checks (default true)
--version print version and exit
Config
Configuration file supports all [telegraf][3] settings.
Ostent implementation features extra [agent]
bind
and bind_port
.
Otherwise same structure, sections and options of [telegraf config][3].
[3]: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration
Defaults for options and plugins applied when they're not stated in the file.
Each default plugin can be disabled with it's disabled = true
.
Effective runtime config is printed at ostent startup and reload.
To enable reporting to InfluxDB:
[outputs]
[outputs.influxdb]
database = "ostent"
urls = ["http://127.0.0.1:8086"]
Other outputs sections would be [outputs.graphite]
and [outputs.librato]
.
Running the code
go get github.com/ostrost/ostent
ostent
to run.
See also Two kind of builds.
Rebuilding
cd $(go list -f {{.Dir}} github.com/ostrost/ostent)
make init
once.npm install
once, optional, sets up assets and template rebuilding.gulp watch
ormake
after changes.
make
rebuilds these commited to the repo files:
share/assets/bindata.*.go
share/assets/css/*.css
share/assets/js/*/*.js
share/templates/*.html
share/templates/bindata.*.go
share/js/*.jsx
If you don't change source files, content re-generated should not differ from the commited.
gulp watch
- watches share/{js,style,templatesorigin} and rebuilds dependants on changes
- does live-reloading
ostent
code run - acceps all ostent flags e.g.
gulp watch -b 127.0.0.1:8080
Two kinds of builds
Standalone and release binaries produced by make
(or go get -tags bin
)
include embeded template and assets.
Non-bin builds made by gulp watch
and go get
- serve assets and use template from actual files
- have a set of flags facilitating debugging etc.