In 7.0, Couchbase Server has moved to use Prometheus as the storage backend for stats and when logs are collected, a Prometheus snapshot is generated and included in the zip archive. Promtimer is a tool that uses Prometheus itself and Grafana to allow easy, powerful browsing of Prometheus metrics (stats) available in cbcollects.
In addition to offline browsing of stats, Promtimer supports setting up Grafana to run against a live Couchbase Server cluster.
If you've already installed, here are a some quick links you might be interested in:
Promtimer:
- When running against cbcollects, starts a Prometheus server for each cbcollect you are interested in exploring. (When run against a live cluster this step is not necessary.)
- Generates a convenient Grafana configuration with anonymous login, a custom home dashboard, data sources and dashboards.
- Starts Grafana allowing you to login and browse dashboards that collect metrics from across each node in the cluster.
- Creates dashboard annotations based on important events that happened in
the cbcollect, taking information from the
diag.log
(or from anevents.log
file generated by the Event Logger) or from the/logs
REST API.
You will need:
- Python 3.8 or later
- Grafana (version 7.1 or later)
- Promtimer
To browse stats online, all you need is a live cluster to run against.
For offline browsing of stats, you will additionally need:
- A Prometheus binary (version 2.20 or later)
- Some cbcollects
- (Optional) Event Logger from cbmultimanager
if you wish to generate an
events.log
file
If you happen to be building Couchbase Server 7.0 or later, you will already
have a Prometheus binary: it's in the install/bin
directory of one of your
local builds. If you don't, the Getting Started
instructions on the Prometheus website are comprehensive. You don't actually
need to install Prometheus, you just need the binary. Downloading
and unzipping the pre-compiled binaries for your platform is sufficient.
If you're on Mac,brew
is convenient:
brew install prometheus
It's also possible to build Prometheus from source yourself. This is straightforward:
git clone git@github.com:prometheus/prometheus.git
cd prometheus
make prometheus
You'll need a full Grafana install. The grafana-server
binary alone isn't
sufficient as Grafana ships with many configuration files.
Installation instructions
on the Grafana website look comprehensive. Follow the instructions for your
platform to get a recent version of Grafana. On Mac, it's easy:
brew install grafana
To get Promtimer, clone this repo locally:
git clone https://github.com/couchbaselabs/promtimer.git
As to cbcollects, you probably wouldn't be reading this if you didn't already have them.
For visualisation of cbbackupmgr stats files, you'll also need access to the private
backup
repository in order to use the cbmstatparser
utility. You'll need to
either add the cbmstatparser binary to your path or manually specify it with the
--cbmstatparser-path
flag.
Assemble the cbcollects in a directory. It's fine if you unzip them, but it's not necessary.
Start Promtimer:
bin/promtimer [--prometheus <path-to-prometheus-binary>]
[--grafana-home <path-to-grafana-shared-config-home>]
The path-to-prometheus-binary
specifies the path to the prometheus binary and
must be specified if the binary you wish to use isn't on your PATH.
The path-to-grafana-shared-config-home
is what is known in Grafana terminology as the
"homepath". This is the out-of-the-box Grafana shared config path. On brew-installed
Grafana on Macs this is something like:
/usr/local/share/grafana
On linux systems the homepath should usually be:
/usr/share/grafana
Promtimer defaults the Grafana homepath to these locations on these platforms. However, if you're on a different platform or want to use a different homepath you'll need to explicitly specify it.
The Grafana dashboards page should open for you automatically. If not, navigate
to localhost:13300/dashboards
in your browser and begin exploring the
available dashboards.
Ensure that you have access to either a backup archive or a cbbackupmgr collect zip file.
Start Promtimer:
promtimer --backup-archive-path <path-to-backup-archive-or-zip>
The above command assumes that cbmstatparser
is available on your PATH. If it isn't,
you'll need to specify the location of the cbmstatparser
binary manually via the
--cbmstatparser-path
flag.
The path-to-backup-archive-or-zip
specifies the path to either a backup archive or to
a cbbackupmgr collect zip file.
The Grafana dashboards page should open for you automatically. If not, navigate
to localhost:13300/dashboards
in your browser and begin exploring the
available dashboards.
Start Promtimer and provide the URL to the cluster and the name of the user that Promtimer should authenticate with:
bin/promtimer --cluster <host:port> --user username [--password password]
You'll be securely prompted for the password at the command line, if not specified.
Promtimer will grab user log information (from the diag.log
in the offline case and
the /logs
REST API in the online case) and create dashboard annotations in Grafana
for important system events.
As an option, Promtimer also supports the creating annotations based on an events.log
file for system events generated by the Event Logger in the
cbmultimanager repository. Read
here for more information on the Event Logger.
Promtimer creates a .promtimer
sub-directory in the directory where it's
started and places the Grafana configuration. To clean up, remove this
directory:
rm -rf .promtimer
Awesome! See the list of todos.