This exporter exposes the statistics provided by a specific ArangoDB instance in a format compatible with prometheus.
This component has been deprecated.
Recent ArangoDB versions support exposing metrics directly into a Prometheus format. We recommend using that.
For more details on how to do that, go to github.com/arangodb/kube-arangodb/docs/design/exporter.md.
To use the ArangoDB Exporter, run the following:
arangodb-exporter \
--arangodb.endpoint=http://<your-database-host>:8529 \
--arangodb.jwtsecret=<your-jwt-secret> \
--ssl.keyfile=<your-optional-ssl-keyfile>This results in an ArangoDB Exporter exposing all statistics of
the ArangoDB server (running at http://<your-database-host>:8529)
at http://<your-host-ip>:9101/metrics.
Use internal metrics exporter mode for ArangoDB < 3.6.0
In this mode metrics are calculated on ArangoDB Exporter side
Expose ArangoDB metrics for ArangoDB >= 3.6.0
In this mode metrics provided by ArangoDB _admin/metrics are exposed on Exporter port.
To run the ArangoDB Exporter in docker, use an image such as
arangodb/arangodb-exporter:0.1.3.
There are several ways to configure Prometheus to fetch metrics from the ArangoDB Exporter.
Below you're find a sample Prometheus configuration file that can be used to fetch metrics from an ArangoDB exporter listening on localhost port 9101 (without TLS).
global:
scrape_interval: 15s
scrape_configs:
- job_name: arangodb
static_configs:
- targets: ['localhost:9101']For more info on configuring Prometheus go to its configuration documentation.
If you're using the Prometheus Operator
in Kubernetes, you need to create an additional Service and a ServiceMonitor resource
like this:
kind: Service
apiVersion: v1
metadata:
name: arangodb-exporters-service
labels:
app: arangodb-exporter
spec:
selector:
app: arangodb-exporter
ports:
- name: metrics
port: 9101
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: arangodb-exporter
namespace: monitoring
labels:
team: frontend
prometheus: kube-prometheus
spec:
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app: arangodb-exporter
endpoints:
- port: metrics
scheme: https
tlsConfig:
insecureSkipVerify: trueNote 1: that the typical deployment on the Prometheus operator is done in
a namespace called monitoring. Make sure to match the namespace
of the ServiceMonitor to match that.
Note 2: that the Prometheus custom resource has a field called serviceMonitorSelector.
Make sure that the matchLabels selector in there matches the labels of
your ServiceMonitor.
To build this project, you need Go 1.12 or higher and Docker installed. Then run:
DOCKERNAMESPACE=<your docker hub account name> make