hbase-exporter/README.md

52 lines
1.5 KiB
Markdown
Raw Normal View History

2019-04-04 13:37:54 +00:00
# hbase-exporter
## An HBase Prometheus Exporter
Relays JMX metrics for consumption by Prometheus
The exporter parses the (Hortonworks) Hadoop config and uses (Hortonworks)
Hadoop internal tooling to determine e.g. the currently active master
so that it can run in different environments without requiring any configuration
2020-06-24 23:06:10 +00:00
Those tools are not yet included when building the app as a container
2019-04-04 13:37:54 +00:00
2019-04-10 12:49:46 +00:00
Since some important metrics are missing or empty in JMX, we additionally parse the HBase Master UI
2019-04-04 13:37:54 +00:00
for e.g. 'Stale regions in transition'
2019-04-10 12:49:46 +00:00
The hbase hbck log is parsed to check for inconsistencies in HBase.
The log is created independently from the exporter with the help of
a systemd-timer unit and a systemd-hbck-service unit
2019-04-04 13:37:54 +00:00
2019-04-10 12:49:46 +00:00
Unfortunately querying the active namenode requires superuser privileges
2019-04-04 13:37:54 +00:00
2019-04-10 12:49:46 +00:00
For python module requirements see requirements.txt
2020-06-24 23:06:10 +00:00
2019-04-04 13:37:54 +00:00
```sh
2020-06-24 23:06:10 +00:00
$ sudo dnf/pkg install python36
2019-04-04 13:37:54 +00:00
```
```sh
# As the user executing the exporter:
2020-06-24 23:06:10 +00:00
$ pip3[.6] install --user -r requirements.txt
```
To generate the necessary HBase Python Protobuf bindings, run the Makefile
The protobuf compiler is necessary to build them
Install the protobuf compiler
```
$ sudo dnf/pkg install protobuf-c
2019-04-04 13:37:54 +00:00
```
2020-06-24 23:06:10 +00:00
Run make
```
$ make
```
## Issues
Import paths do not work in generated protobufs when used from a subdir
https://github.com/protocolbuffers/protobuf/issues/1491
The solution used here is mentioned in the comments:
https://github.com/protocolbuffers/protobuf/issues/1491#issuecomment-547504972