https://github.com/instrumental/instrumentald
Instrumental System and Service Daemon
https://github.com/instrumental/instrumentald
daemon metrics monitoring service-metrics system-monitor
Last synced: over 1 year ago
JSON representation
Instrumental System and Service Daemon
- Host: GitHub
- URL: https://github.com/instrumental/instrumentald
- Owner: Instrumental
- License: mit
- Created: 2016-06-23T18:51:08.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2018-09-17T20:30:24.000Z (almost 8 years ago)
- Last Synced: 2025-01-27T19:54:23.264Z (over 1 year ago)
- Topics: daemon, metrics, monitoring, service-metrics, system-monitor
- Language: HTML
- Homepage:
- Size: 112 MB
- Stars: 15
- Watchers: 6
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# InstrumentalD
Instrumental is an [application monitoring platform](https://instrumentalapp.com/) built for developers who want a better understanding of their production software. Powerful tools, like the [Instrumental Query Language](https://instrumentalapp.com/docs/query-language), combined with an exploration-focused interface allow you to get real answers to complex questions, in real-time.
**InstrumentalD** is a server agent that provides [system monitoring](#system-metrics) and [service monitoring](#service-metrics). It's fast, reliable, runs on anything *nix, is [simple to configure](conf/instrumentald.toml) and deploy, and has a small memory footprint.
## Installation
`instrumentald` is supported on 32-bit and 64-bit Linux, as well as OSX/macOS. There are prebuilt packages available for Debian, Ubuntu, and RHEL systems.
Detailed installation instructions for supported platforms are available in [INSTALL.md](INSTALL.md). For linux servers, the recommended installation method is to use a prebuilt package, which will automatically install the application as a service in your operating system's startup list.
Once you've installed the package, you will want to edit the `/etc/instrumentald.toml` file with your [Instrumental project token](https://instrumentalapp.com/docs/tokens). Example `/etc/instrumentald.toml`:
```toml
project_token = "YOUR_PROJECT_TOKEN"
system = ["cpu", "disk", "load", "memory", "network", "swap"]
docker = ["unix:///var/run/docker.sock"]
memcached = ["localhost:11211"]
mongodb = ["localhost:27017"]
mysql = ["root@tcp(127.0.0.1:3306)/"]
nginx = ["http://localhost:80/status"]
postgresql = ["postgres://postgres@localhost?sslmode=disable"]
redis = ["tcp://localhost:6379"]
```
## System Metrics
Unless configured otherwise, InstrumentalD will collect system metrics from every server on which it's installed, including:
* CPU Stats
* Disk Stats
* Load Stats
* Memory Stats
* Network Stats
* Swap Stats
A detailed list of system metrics collected by InstrumentalD can be found in the [Instrumental documentation](https://instrumentalapp.com/docs/instrumentald/system-metrics).
## Service Metrics
InstrumentalD is built to make it easy to collect the most important metrics from your critical services. It's currently capable of capturing metrics from the following services:
* [Docker](https://instrumentalapp.com/docs/instrumentald/docker)
* [MySQL](https://instrumentalapp.com/docs/instrumentald/mysql)
* [Memcached](https://instrumentalapp.com/docs/instrumentald/memcached)
* [MongoDB](https://instrumentalapp.com/docs/instrumentald/mongodb)
* [Nginx](https://instrumentalapp.com/docs/instrumentald/nginx)
* [PostgreSQL](https://instrumentalapp.com/docs/instrumentald/postgresql)
* [Redis](https://instrumentalapp.com/docs/instrumentald/redis)
## Custom Plugin Scripts
InstrumentalD can monitor arbitrary processes and system events through a plugin scripting system. Writing plugins is easier than you'd think! Plugin script installation and development instructions are listed in [PLUGIN_SCRIPTS.md](PLUGIN_SCRIPTS.md), and we've got [several examples](examples/) to get you started.
## Command Line Usage
Basic usage:
```sh
instrumentald -k
```
To start `instrumentald` as a daemon:
```sh
instrumentald -k start
```
The project token can also be provided by setting the INSTRUMENTAL_TOKEN environment variable, which eliminates the need to supply the key via command line option.
By default, instrumentald will use the hostname of the current host when reporting metrics, e.g. 'hostname.cpu.in_use'. To specify a different hostname:
```sh
instrumentald -k -H
```
The `start` command will start and detach the process. You may issue additional commands to the process like:
* `stop` - stop the currently running `instrumentald` process
* `restart` - restart the currently running `instrumentald` process
* `foreground` - run the process in the foreground instead of detaching
* `status` - display daemon status (running, stopped)
* `clean` - remove any files created by the daemon
* `kill` - forcibly halt the daemon and remove its pid file
By default, instrumentald will look for a configuration file at `/etc/instrumentald.toml`. You can pass an alternative instead:
```sh
instrumentald -k -H -c
```
## Troubleshooting & Help
We are here to help! Email us at [support@instrumentalapp.com](mailto:support@instrumentalapp.com).