Skip to main content
Loading

Configuring Aerospike Prometheus Exporter

You configure Aerospike Prometheus Exporter by setting values for parameters in the configuration file /etc/aerospike-prometheus-exporter/ape.toml. The file has two sections, [Agent] and [Aerospike].

Procedure

In the [Agent] section, configure access between Prometheus and the Aerospike Prometheus Exporter agent.

Optional: Provide TLS certificate information to enable HTTPS communication between Prometheus and the exporter agent.

Corresponding parameters in the ape.toml file

# TLS certificates.
# Supports the following formats:
# 1. Certificate file path - "file:<file-path>"
# 2. Environment variable containing base64 encoded certificate - "env-b64:<environment-variable-that-contains-base64-encoded-certificate>"
# 3. Base64 encoded certificate - "b64:<base64-encoded-certificate>"
# Applicable to 'root_ca', 'cert_file' and 'key_file' configurations.
#
# Server certificate
cert_file = ""
#
# Private key associated with server certificate
key_file = ""
#
# Root CA to validate client certificates (for mutual TLS)
root_ca = ""
#
# Passphrase for encrypted key_file. Supports the following formats:
# 1. Passphrase directly - "<passphrase>"
# 2. Passphrase via file - "file:<file-that-contains-passphrase>"
# 3. Passphrase via environment variable - "env:<environment-variable-that-holds-passphrase>"
# 4. Passphrase via environment variable containing base64 encoded passphrase - "env-b64:<environment-variable-that-contains-base64-encoded-passphrase>"
# 5. Passphrase in base64 encoded form - "b64:<base64-encoded-passphrase>"
key_file_passphrase = ""

Optional: Add additional labels to metrics.

Corresponding parameter in the ape.toml file

# labels to add to the prometheus metrics for e.g. labels={zone="asia-south1-a", platform="google compute engine"}
labels = {type='development',source='aerospike'}

Optional: Specify a non-default listen_address and port for Prometheus.

By default, the address and port are 0.0.0.0:9145.

Corresponding parameter in the ape.toml file

bind = ":9145"

Optional: Specify a non-default timeout for connections.

Corresponding parameter in the ape.toml file

# metrics server timeout in seconds
timeout = 10

Optional: Specify a path for the log file and a non-default logging level.

Corresponding parameters in the ape.toml file

# Exporter logging configuration
# Log file path (optional, logs to console by default)
# Level can be info|warning,warn|error,err|debug|trace ('info' by default)
log_file = ""
log_level = ""

Optional: Specify a username and password for access to the exporter agent.

Corresponding parameters in the ape.toml file

# Basic HTTP authentication for '/metrics'.
# Supports the following formats:
# 1. Credential directly - "<credential>"
# 2. Credential via file - "file:<file-that-contains-credential>"
# 3. Credential via environment variable - "env:<environment-variable-that-contains-credential>"
# 4. Credential via environment variable containing base64 encoded credential - "env-b64:<environment-variable-that-contains-base64-encoded-credential>"
# 5. Credential in base64 encoded form - "b64:<base64-encoded-credential>"
basic_auth_username=""
basic_auth_password=""

In the [Aerospike] section, configure connections between Aerospike Prometheus Exporter and your Aerospike cluster.

Optional: Set a non-default IP address and port for the seed node of your Aerospike cluster.

Corresponding parameters in the ape.toml file

db_host="aerospike"
db_port=3000

Optional: Provide TLS certificate information to enable HTTPS communication between the exporter agent and the Aerospike cluster.

Corresponding parameters in the ape.toml file

# TLS certificates.
# Supports the following formats:
# 1. Certificate file path - "file:<file-path>"
# 2. Environment variable containing base64 encoded certificate - "env-b64:<environment-variable-that-contains-base64-encoded-certificate>"
# 3. Base64 encoded certificate - "b64:<base64-encoded-certificate>"
# Applicable to 'root_ca', 'cert_file' and 'key_file' configurations.
#
# root certificate file
root_ca=""
#
# certificate file
cert_file=""
#
# key file
key_file=""
#
# Passphrase for encrypted key_file. Supports the following formats:
# 1. Passphrase directly - "<passphrase>"
# 2. Passphrase via file - "file:<file-that-contains-passphrase>"
# 3. Passphrase via environment variable - "env:<environment-variable-that-holds-passphrase>"
# 4. Passphrase via environment variable containing base64 encoded passphrase - "env-b64:<environment-variable-that-contains-base64-encoded-passphrase>"
# 5. Passphrase in base64 encoded form - "b64:<base64-encoded-passphrase>"
key_file_passphrase=""
#
# node_tls_name is the TLS Name to verify against the certificate (Common Name or SAN (Subject Alternative Name)) presented by the Aerospike node during TLS authentication.
node_tls_name=""

Optional: The exporter agent supports password-based authentication. If access control is enabled in the cluster, you must provide a username and password.

Corresponding parameters in the ape.toml file

# Aerospike cluster security credentials.
# Supports the following formats:
# 1. Credential directly - "<credential>"
# 2. Credential via file - "file:<file-that-contains-credential>"
# 3. Credential via environment variable - "env:<environment-variable-that-contains-credential>"
# 4. Credential via environment variable containing base64 encoded credential - "env-b64:<environment-variable-that-contains-base64-encoded-credential>"
# 5. Credential in base64 encoded form - "b64:<base64-encoded-credential>"
# Applicable to 'user' and 'password' configurations.
#
# database user
user=""
#
# database password
password=""
#
# authentication mode: internal (for credentials stored in Aerospike), external (for credentials stored LDAP or other external systems)
auth_mode=""

Optional: Specify a non-default timeout for connections.

Corresponding parameter in the ape.toml file

# timeout for sending commands to the server node in seconds
timeout=5

Optional: Apply filters to metrics.

Aerospike includes many metrics, some of which you might not need or want to monitor. For instance, you might want to monitor only the Aerospike-recommended Key Metrics.

You can optionally use allowlist and blocklist configurations to filter the metrics you want to monitor. The allowlist and blocklist configuration options support standard Linux regular expressions.

Here is an example configuration of allowlist and blocklist.

# Allowlist:
# If specified, only these metrics will be scraped.
# An empty list excludes all metrics.
# Commenting out the below allowlist configs will disable metrics filtering (i.e. all metrics will be scraped).
#
# Namespace metrics allowlist
namespace_metrics_allowlist=[
"client_read_[a-z]*",
"stop_writes",
"storage-engine.file.defrag_q",
"client_write_success",
"memory_*_bytes",
"objects",
"*_available_pct"
]
#
# Set metrics allowlist
set_metrics_allowlist=[
"objects",
"tombstones"
]
#
# Node metrics allowlist
node_metrics_allowlist=[
"uptime",
"cluster_size",
"batch_index_*",
"xdr_ship_*"
]
#
# XDR metrics allowlist (only for Aerospike versions 5.0 and above)
xdr_metrics_allowlist=[
"success",
"latency_ms",
"throughput",
"lap_us"
]
#
# Job (scans/queries) metrics allowlist
job_metrics_allowlist = [
"rps",
"active-threads",
"job-progress",
"run-time",
"recs-throttled",
"recs-succeeded",
"recs-failed",
"net-io-bytes"
]
#
# Secondary index metrics allowlist
sindex_metrics_allowlist = [
"entries",
"ibtr_memory_used",
"nbtr_memory_used",
"query_basic_complete",
"query_basic_error",
"query_basic_abort",
"query_basic_avg_rec_count"
]
#
# Blocklist: If specified, these metrics will be NOT be scraped.
#
# Namespace metrics blocklist
namespace_metrics_blocklist=[
"memory_used_sindex_bytes",
"client_read_success"
]
#
# Set metrics blocklist
# set_metrics_blocklist=[]
#
# Node metrics blocklist
node_metrics_blocklist=[
"batch_index_*_buffers"
]
#
# XDR metrics blocklist (only for Aerospike versions 5.0 and above)
# xdr_metrics_blocklist=[]
#
# Job (scans/queries) metrics blocklist
# job_metrics_blocklist = []
#
# Secondary index metrics blocklist
# sindex_metrics_blocklist = []

Optional: Allow or block the fetching of metrics about the usage of Aerospike by individual users.

Add usernames of Aerospike users to user_metrics_users_allowlist to allow Prometheus to fetch metrics about those users. Add usernames of Aerospike users to user_metrics_users_blocklist to prevent Prometheus from fetching metrics about those users.

Metrics about Aerospike usage by individual users are available in verion 5.6 and later. To fetch these metrics, the user defined in the [Aerospike] section must have a user-admin privilege in the Aerospike cluster.

Here is an example configuration of user_metrics_users_allowlist and user_metrics_users_blocklist:

# Users Statistics (user statistics are available in 5.6 and later)
# Allowlist and blocklist control which users statistics are collected.
# Note globbing patterns are not supported for this configuration.

user_metrics_users_allowlist=[
"admin",
"superuser",
"aerospikeUser1",
"aerospikeUser2"
]

user_metrics_users_blocklist=[
"admin",
"superuser"
]
info

Different users can be added to both the allowlist and the blocklist. Since the blocklist takes precedence over the allowlist, if a user is in both lists, the statistics for that user cannot be fetched.