> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/integrations/sources/aerospike.md).

# Aerospike

The Aerospike source collects metrics and logs from Aerospike. Metrics are scraped directly from an Aerospike node over its service port (optionally discovering peer nodes in the cluster), with optional TLS and Aerospike Enterprise authentication. Logs are read from Aerospike's Journald output, which the collector auto-detects.

### Supported Telemetry

| Platform | Metrics | Logs | Traces |
| -------- | ------- | ---- | ------ |
| Linux    | ✓       | ✓    |        |
| Windows  | ✓       | ✓    |        |
| macOS    | ✓       | ✓    |        |

### Prerequisites

* A reachable Aerospike node. By default the source connects to `localhost:3000`. The collector must have network access to the Aerospike service port.
* For metrics from an Aerospike Enterprise cluster with authentication enabled, a user account with permission to read statistics. Use a least-privilege account intended for monitoring rather than an administrative user.
* If connecting over TLS, the TLS server name and, where required, the certificate authority file and client certificate/key material.
* For logs, Aerospike must be writing to Journald on the collector host, and the collector must have read access to the Journald directory. The Journald receiver auto-detects this directory, so no path configuration is required.

See [Key metrics to monitor](https://aerospike.com/docs/database/observe/key-metrics/) in the Aerospike documentation for guidance on the statistics the receiver scrapes.

### Configuration

<figure><img src="/files/9afgJLtQm0sQXPZ3aRzh" alt="Bindplane docs - Aerospike - image 1"><figcaption></figcaption></figure>

**Telemetry Type**

| Parameter             | Type                | Required | Default               | Description                                                                                                             |
| --------------------- | ------------------- | -------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Choose Telemetry Type | Enum: Logs, Metrics | No       | `["Logs", "Metrics"]` | Which signals to collect. Selecting Logs enables the Journald log fields; selecting Metrics enables the metrics fields. |

**Metrics**

| Parameter | Type    | Required | Default     | Description                                                                            |
| --------- | ------- | -------- | ----------- | -------------------------------------------------------------------------------------- |
| Hostname  | String  | Yes      | `localhost` | The hostname or IP address of the Aerospike system. Relevant when Metrics is selected. |
| Port      | Integer | No       | `3000`      | The TCP port of the Aerospike system. Relevant when Metrics is selected.               |

**Logs**

| Parameter              | Type | Required | Default | Description                                                |
| ---------------------- | ---- | -------- | ------- | ---------------------------------------------------------- |
| *(none in basic view)* |      |          |         | All log fields are advanced. See the Advanced group below. |

**Advanced**

| Parameter                           | Type                 | Required | Default   | Description                                                                                                                                                  |
| ----------------------------------- | -------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Start At                            | Enum: beginning, end | No       | `end`     | Start reading logs from the beginning or end of the Journald stream. Relevant when Logs is selected.                                                         |
| Parse                               | Boolean              | No       | `true`    | Parse the log fields into structured data. Relevant when Logs is selected.                                                                                   |
| Collection Interval                 | Integer              | No       | `60`      | How often (seconds) to scrape for metrics. Relevant when Metrics is selected.                                                                                |
| Collect Cluster Metrics             | Boolean              | No       | `false`   | Whether discovered peer nodes should be collected. Relevant when Metrics is selected.                                                                        |
| Aerospike Enterprise Authentication | Boolean              | No       | `false`   | Enable Aerospike Enterprise authentication. Relevant when Metrics is selected.                                                                               |
| Username                            | String               | Yes      | *(empty)* | The username to use when connecting to Aerospike. Relevant when Metrics is selected and Aerospike Enterprise Authentication is enabled.                      |
| Password                            | String               | Yes      | *(empty)* | The password to use when connecting to Aerospike. Sensitive value. Relevant when Metrics is selected and Aerospike Enterprise Authentication is enabled.     |
| Enable TLS                          | Boolean              | Yes      | `false`   | Enable TLS when connecting to Aerospike. Relevant when Metrics is selected.                                                                                  |
| Skip TLS Certificate Verification   | Boolean              | No       | `false`   | Skip TLS certificate verification. Relevant when Enable TLS is true.                                                                                         |
| TLS Server Name                     | String               | Yes      | *(empty)* | ServerName requested by the client for virtual hosting. Relevant when Enable TLS is true.                                                                    |
| TLS Certificate Authority File      | String               | No       | *(empty)* | Certificate authority used to validate TLS certificates. Relevant when Enable TLS is true.                                                                   |
| TLS Client Certificate File         | String               | No       | *(empty)* | A TLS certificate used for client authentication. Relevant when Enable TLS is true.                                                                          |
| TLS Client Private Key File         | String               | No       | *(empty)* | A TLS private key used for client authentication. Relevant when Enable TLS is true.                                                                          |
| Metrics                             | Metrics              | No       | *(empty)* | Toggle individual metrics on and off (for example `aerospike.namespace.memory.usage`, `aerospike.node.connection.count`). Relevant when Metrics is selected. |

### Examples

#### Collect metrics from a single Aerospike node

Scrape metrics from a local Aerospike node every 30 seconds without collecting peer-node metrics.

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: aerospike
spec:
  type: aerospike
  parameters:
    - name: telemetry_types
      value: ["Metrics"]
    - name: hostname
      value: 10.0.0.5
    - name: port
      value: 3000
    - name: collection_interval
      value: 30
    - name: collect_cluster_metrics
      value: false
```

#### Collect metrics from an Enterprise cluster over TLS

Connect to an Aerospike Enterprise cluster with authentication and TLS, and discover peer nodes.

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: aerospike
spec:
  type: aerospike
  parameters:
    - name: telemetry_types
      value: ["Metrics"]
    - name: hostname
      value: aerospike.example.com
    - name: port
      value: 4333
    - name: collect_cluster_metrics
      value: true
    - name: aerospike_enterprise
      value: true
    - name: username
      value: monitoring
    - name: password
      value: REDACTED
    - name: enable_tls
      value: true
    - name: server_name
      value: aerospike.example.com
    - name: ca_file
      value: /opt/tls/ca.crt
```

### Configuration Tips

* Leave Collect Cluster Metrics disabled when scraping a single node; enable it to gather metrics from peer nodes the receiver discovers in the cluster.
* Username and Password are only used when Aerospike Enterprise Authentication is enabled. They have no effect on a Community-edition node.
* TLS Server Name is required whenever TLS is enabled; it must match the name presented by the Aerospike node's certificate.

### Troubleshooting

#### Connection refused

Symptoms: the receiver cannot reach the Aerospike node.

Solutions:

1. Confirm the Hostname and Port match the Aerospike service port (default `3000`) and that Aerospike is running.
2. Verify firewall and network rules allow the collector host to reach the port.

#### Authentication failed

Symptoms: metrics scraping fails with an authentication error on an Enterprise cluster.

Solutions:

1. Confirm Aerospike Enterprise Authentication is enabled and the Username and Password are correct.
2. Use an account with permission to read statistics.

#### TLS handshake error

Symptoms: the connection fails during the TLS handshake.

Solutions:

1. Confirm TLS Server Name matches the node certificate, and that the CA file (and client certificate/key when required) are correct and readable by the collector.
2. As a temporary diagnostic only, enable Skip TLS Certificate Verification to isolate a certificate-validation problem.

#### No logs collected

Symptoms: no log records arrive.

Solutions:

1. Confirm Aerospike is writing to Journald on the collector host and the collector has read access to the Journald directory.
2. Set Start At to `beginning` to read existing entries rather than only new ones.

### Standalone Source

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: aerospike
spec:
  type: aerospike
  parameters:
    - name: telemetry_types
      value: ["Logs", "Metrics"]
    - name: hostname
      value: localhost
    - name: port
      value: 3000
    - name: collection_interval
      value: 60
    - name: collect_cluster_metrics
      value: false
    - name: aerospike_enterprise
      value: false
    - name: enable_tls
      value: false
    - name: start_at
      value: end
    - name: parse
      value: true
```

### Related Resources

* [Aerospike: Key metrics to monitor](https://aerospike.com/docs/database/observe/key-metrics/)
* [Aerospike Metrics Reference](https://aerospike.com/docs/database/reference/metrics/)
* [OpenTelemetry `aerospikereceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/aerospikereceiver)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bindplane.com/integrations/sources/aerospike.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
