Info
License: Free — part of the universal collection tier.
OpenSearch¶
The opensearch probe monitors an OpenSearch cluster via the REST JSON API,
collecting cluster health, JVM memory, indexing and search throughput, and
thread pool queue depths. The probe shares the same REST surface as
Elasticsearch; metric names use the opensearch.* namespace.
Quick start¶
# probes.d/20-opensearch.yaml — each file under probes.d/ is a YAML array of probes
- name: opensearch
type: opensearch
params:
endpoint: http://localhost:9200
Parameters¶
| Parameter | Must set | Default | Description |
|---|---|---|---|
endpoint |
In practice | http://localhost:9200 |
Base URL of the node; https:// for a cluster with the security plugin. Example: https://os01:9200 |
username |
In practice | - | Basic-auth user; empty when the security plugin is disabled |
password |
In practice | - | Basic-auth password. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file |
timeout |
No | 10 |
HTTP request timeout in seconds |
interval |
No | 60 |
Seconds between collections |
instance_name |
No | - | Stable identity override for this node |
Metrics¶
| Metric | Unit | Description |
|---|---|---|
senhub.opensearch.up |
1 | 1 when the cluster health endpoint is reachable |
opensearch.cluster.health |
1 | Cluster health: 2 = green, 1 = yellow, 0 = red |
opensearch.cluster.nodes |
{node} | Total nodes in the cluster |
opensearch.cluster.data_nodes |
{node} | Data nodes |
opensearch.cluster.shards.active |
{shard} | Active shards |
opensearch.cluster.shards.unassigned |
{shard} | Unassigned shards |
opensearch.jvm.memory.heap.used |
By | JVM heap in use on the local node |
opensearch.indexing.operations.completed |
# | Indexing operations completed, tagged with operation |
opensearch.search.operations.completed |
# | Search operations completed, tagged with operation (query, fetch) |
opensearch.thread_pool.tasks.queued |
{task} | Queued tasks per thread pool, tagged with thread_pool |
Operational notes¶
- The probe queries
/_cluster/healthand/_nodes/_local/stats. - For TLS-secured clusters (including OpenSearch Serverless), prefix the endpoint with
https://and provide credentials. - The OpenSearch security plugin is disabled in the Docker
opensearchproject/opensearchimage by default; for production clusters, security is typically enabled.
Metric reference¶
Every metric this probe can emit. Metric is the OpenTelemetry name the
OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a
Nagios check and the API metrics= filter match.
PRTG channel is the label PRTG shows, placeholders filled from the
series' tags.
| Metric | Name | PRTG channel | Unit | Description |
|---|---|---|---|---|
senhub.opensearch.up |
senhub.opensearch.up |
OpenSearch Up | # | 1 when the cluster health endpoint is reachable, 0 otherwise |
opensearch.cluster.health |
opensearch.cluster.health |
OpenSearch Cluster Health | # | Cluster health status encoded as integer: green=2, yellow=1, red=0 |
opensearch.cluster.nodes |
opensearch.cluster.nodes |
OpenSearch Cluster Nodes | # | Total number of nodes in the cluster |
opensearch.cluster.data_nodes |
opensearch.cluster.data_nodes |
OpenSearch Cluster Data Nodes | # | Number of data nodes in the cluster |
opensearch.cluster.shards.active |
opensearch.cluster.shards.active |
OpenSearch Active Shards | # | Number of active primary and replica shards |
opensearch.cluster.shards.unassigned |
opensearch.cluster.shards.unassigned |
OpenSearch Unassigned Shards | # | Number of shards not assigned to any node |
opensearch.cluster.shards.relocating |
opensearch.cluster.shards.relocating |
OpenSearch Relocating Shards | # | Number of shards being relocated between nodes |
opensearch.cluster.pending_tasks |
opensearch.cluster.pending_tasks |
OpenSearch Pending Tasks | # | Number of cluster-level changes not yet executed |
opensearch.jvm.memory.heap.used |
opensearch.jvm.memory.heap.used |
OpenSearch JVM Heap Used | B | JVM heap memory currently used by the node |
opensearch.jvm.memory.heap.max |
opensearch.jvm.memory.heap.max |
OpenSearch JVM Heap Max | B | Maximum JVM heap memory available to the node |
opensearch.jvm.gc.collections.count |
opensearch.jvm.gc.collections.count |
OpenSearch GC {collector} Collections | # | Number of GC collections for the given collector (young|old) |
opensearch.jvm.gc.collections.elapsed |
opensearch.jvm.gc.collections.elapsed |
OpenSearch GC {collector} Time | ms | Cumulative wall-clock time spent in GC for the given collector |
opensearch.indexing.operations.completed |
opensearch.indexing.operations.completed |
OpenSearch Indexing {operation} Completed | # | Cumulative number of indexing operations completed (operation=index) |
opensearch.indexing.operations.time |
opensearch.indexing.operations.time |
OpenSearch Indexing {operation} Time | ms | Cumulative time spent in indexing operations |
opensearch.search.operations.completed |
opensearch.search.operations.completed |
OpenSearch Search {operation} Completed | # | Cumulative search operations (operation=query|fetch) |
opensearch.search.operations.time |
opensearch.search.operations.time |
OpenSearch Search {operation} Time | ms | Cumulative time spent in search operations |
opensearch.process.cpu.usage |
opensearch.process.cpu.usage |
OpenSearch Process CPU Usage | % | CPU utilisation of the OpenSearch process as a percentage (0-100) |
opensearch.os.memory.used |
opensearch.os.memory.used |
OpenSearch OS Memory Used | B | Physical memory used by the OS on the node |
opensearch.thread_pool.tasks.queued |
opensearch.thread_pool.tasks.queued |
OpenSearch Thread Pool {thread_pool} Queued | # | Number of tasks currently queued in the thread pool |
opensearch.thread_pool.tasks.completed |
opensearch.thread_pool.tasks.completed |
OpenSearch Thread Pool {thread_pool} Completed | # | Cumulative tasks completed by the thread pool |
opensearch.thread_pool.tasks.rejected |
opensearch.thread_pool.tasks.rejected |
OpenSearch Thread Pool {thread_pool} Rejected | # | Cumulative tasks rejected by the thread pool (queue full) |