NAME
es-graphite-dynamic.pl - Dynamically gather metrics and send to graphite
VERSION
version 8.3
SYNOPSIS
es-graphite-dynamic.pl --host [host] [options]
Options:
--help print help
--manual print full manual
--carbon-base The prefix to use for carbon metrics (Default: general.es)
--carbon-server Send Graphite stats to Carbon Server (Automatically sets format=graphite)
--carbon-port Port for to use for Carbon (Default: 2003)
--carbon-proto Protocol for to use for Carbon (Default: tcp)
--with-indices Also send individual index stats
--ignore Comma separated list of keys to ignore in collection
--prefix A metric path to prefix stats, defaults to (--carbon-base).(hostname)
--no-prefix Don't prefix the metrics at all
From App::ElasticSearch::Utilities:
--local Use localhost as the elasticsearch host
--host ElasticSearch host to connect to
--port HTTP port for your cluster
--proto Defaults to 'http', can also be 'https'
--http-username HTTP Basic Auth username
--http-password HTTP Basic Auth password (if not specified, and --http-user is, you will be prompted)
--password-exec Script to run to get the users password
--noop Any operations other than GET are disabled, can be negated with --no-noop
--timeout Timeout to ElasticSearch, default 10
--keep-proxy Do not remove any proxy settings from %ENV
--index Index to run commands against
--base For daily indexes, reference only those starting with "logstash"
(same as --pattern logstash-* or logstash-DATE)
--datesep Date separator, default '.' also (--date-separator)
--pattern Use a pattern to operate on the indexes
--days If using a pattern or base, how many days back to go, default: 1
See also the "CONNECTION ARGUMENTS" and "INDEX SELECTION ARGUMENTS" sections from App::ElasticSearch::Utilities.
From CLI::Helpers:
--data-file Path to a file to write lines tagged with 'data => 1'
--tags A comma separated list of tags to display
--color Boolean, enable/disable color, default use git settings
--verbose Incremental, increase verbosity (Alias is -v)
--debug Show developer output
--debug-class Show debug messages originating from a specific package, default: main
--quiet Show no output (for cron)
--syslog Generate messages to syslog as well
--syslog-facility Default "local0"
--syslog-tag The program name, default is the script name
--syslog-debug Enable debug messages to syslog if in use, default false
--nopaste Use App::Nopaste to paste output to configured paste service
--nopaste-public Defaults to false, specify to use public paste services
--nopaste-service Comma-separated App::Nopaste service, defaults to Shadowcat
DESCRIPTION
This script collects interesting monitoring data from the ElasticSearch cluster and maps that data directly into Graphite. If ElasticSearch changes the names of data, those changes will be reflected in the metric path immediately.
OPTIONS
- help
-
Print this message and exit
- manual
-
Print this message and exit
- carbon-base
-
The prefix to use for metrics sent to carbon. The default is "general.es". Please note, the host name of the ElasticSearch node will be appended, followed by the metric name.
- carbon-server
-
Send stats to the carbon server specified. This automatically forces --format=graphite and does not produce stats on STDOUT
- carbon-port
-
Use this port for the carbon server, useless without --carbon-server
- with-indices
-
Also grab data at the individual index level, will not append hostnames as this is useless. It will map the data into "$CARBON_BASE.cluster.$CLUSTERNAME.$INDEX..."
- ignore
-
A comma separated list of keys to ignore when parsing the tree. This is in addition to the default ignore list: attributes,id,timestamp,upms,_all,_shards
Examples:
es-graphite-dynamic.pl --with-indices --ignore primaries,get,warmer
- prefix
-
A metric path to prefix the collected stats with. This is useful for using es-graphite-dynamic.pl with another collector such as Diamond which expects metrics in a certain format. To use with diamond's userscripts or files collector you could:
#!/bin/sh # userscripts es-graphite-dynamic.pl --local --prefix elasticsearch
Or with the file collector, you could cron this:
es-graphite-dynamic.pl --local --prefix elasticsearch --data-file /tmp/diamond/elasticsearch.out --quiet
If not specified, the assumption is data will be going directly to graphite and the metric path will be set as:
'general.es.$HOSTNAME'
- no-prefix
-
Don't set the prefix to the metric names.
AUTHOR
Brad Lhotsky <brad@divisionbyzero.net>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2022 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License