Skip to content

Add GPU vector indexing monitoring to _xpack/usage (#141932)#142660

Merged
elasticsearchmachine merged 2 commits intoelastic:9.3from
mayya-sharipova:gpu-monitoring-9.3
Feb 18, 2026
Merged

Add GPU vector indexing monitoring to _xpack/usage (#141932)#142660
elasticsearchmachine merged 2 commits intoelastic:9.3from
mayya-sharipova:gpu-monitoring-9.3

Conversation

@mayya-sharipova
Copy link
Copy Markdown
Contributor

Expose GPU vector indexing usage via the _xpack/usage and _xpack APIs

GET _xpack response (features section):

{
  "gpu_vector_indexing": {
    "available": true,
    "enabled": true
  }
}

_xpack field semantics (local node only): - available: License permits GPU indexing - enabled: the node handling this request has GPU hardware and hasn't disabled it via vectors.indexing.use_gpu=false

GET _xpack/usage response:

{
  "gpu_vector_indexing": {
    "available": true,
    "enabled": true,
    "index_build_count": 30,
    "nodes_with_gpu": 3,
    "nodes": [
      { "type": "NVIDIA L4", "memory_in_bytes": 24000000000,
        "enabled": true, "index_build_count": 10 },
      { "type": "NVIDIA L4", "memory_in_bytes": 24000000000,
        "enabled": true, "index_build_count": 10 },
      { "type": "NVIDIA A100", "memory_in_bytes": 80000000000,
        "enabled": true, "index_build_count": 10 }
    ]
  }
}

_xpack/usage field semantics (cluster-wide): - available: License permits GPU indexing - enabled: at least one node has configured GPU hardware and hasn't disabled it via vectors.indexing.use_gpu=false - index_build_count: total GPU index builds across cluster - nodes_with_gpu: count of data nodes with GPU support - nodes[]: per-node GPU details (type, memory, enabled, build count)

Backport for #141932

Expose GPU vector indexing usage via the _xpack/usage and _xpack APIs

GET _xpack response (features section):

```json
{
  "gpu_vector_indexing": {
    "available": true,
    "enabled": true
  }
}
```

_xpack field semantics (local node only): - available: License permits
GPU indexing - enabled: the node handling this request has GPU hardware
and hasn't disabled it via vectors.indexing.use_gpu=false

GET _xpack/usage response:

```json
{
  "gpu_vector_indexing": {
    "available": true,
    "enabled": true,
    "index_build_count": 30,
    "nodes_with_gpu": 3,
    "nodes": [
      { "type": "NVIDIA L4", "memory_in_bytes": 24000000000,
        "enabled": true, "index_build_count": 10 },
      { "type": "NVIDIA L4", "memory_in_bytes": 24000000000,
        "enabled": true, "index_build_count": 10 },
      { "type": "NVIDIA A100", "memory_in_bytes": 80000000000,
        "enabled": true, "index_build_count": 10 }
    ]
  }
}
```

_xpack/usage field semantics (cluster-wide): - available: License
permits GPU indexing - enabled: at least one node has configured GPU
hardware and hasn't disabled it via vectors.indexing.use_gpu=false -
index_build_count: total GPU index builds across cluster -
nodes_with_gpu: count of data nodes with GPU support - nodes[]: per-node
GPU details (type, memory, enabled, build count)

Backport for elastic#141932
@mayya-sharipova mayya-sharipova added backport auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) :Search Relevance/Vectors Vector search test-gpu Run tests using a GPU v9.3.1 labels Feb 18, 2026
@elasticsearchmachine elasticsearchmachine merged commit 7567092 into elastic:9.3 Feb 18, 2026
36 checks passed
@mayya-sharipova mayya-sharipova deleted the gpu-monitoring-9.3 branch February 18, 2026 20:15
mayya-sharipova added a commit to mayya-sharipova/elasticsearch-specification that referenced this pull request Feb 24, 2026
Adds specification for the gpu_vector_indexing feature introduced in
elastic/elasticsearch#142660.
pquentin added a commit to elastic/elasticsearch-specification that referenced this pull request Feb 25, 2026
* Add GPU vector indexing to xpack info and usage

Adds specification for the gpu_vector_indexing feature introduced in
elastic/elasticsearch#142660.

* Update specification/xpack/usage/types.ts

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>

* Update specification/xpack/usage/types.ts

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>

---------

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>
github-actions bot pushed a commit to elastic/elasticsearch-specification that referenced this pull request Feb 25, 2026
* Add GPU vector indexing to xpack info and usage

Adds specification for the gpu_vector_indexing feature introduced in
elastic/elasticsearch#142660.

* Update specification/xpack/usage/types.ts

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>

* Update specification/xpack/usage/types.ts

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>

---------

Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>
(cherry picked from commit cfd9082)
mayya-sharipova added a commit to elastic/elasticsearch-specification that referenced this pull request Feb 25, 2026
Adds specification for the gpu_vector_indexing feature introduced in
elastic/elasticsearch#142660.
Co-authored-by: Mayya Sharipova <mayya.sharipova@elastic.co>
Co-authored-by: Quentin Pradet <quentin.pradet@gmail.com>
mayya-sharipova added a commit to mayya-sharipova/elasticsearch that referenced this pull request Mar 3, 2026
PR elastic#142660 introduced a bug where NodeGpuStatsResponse
uses writeVLong to serialize totalGpuMemoryInBytes,
which is -1 when no GPU is present. This causes
repeated WARN log flooding from OutboundHandler on
multi-node clusters with non-GPU nodes.

The bug was resolved in elastic#142991 for 9.3.2.

Adds known issue docs with a mitigation (raising
OutboundHandler log level to ERROR).
mayya-sharipova added a commit that referenced this pull request Mar 3, 2026
PR #142660 introduced a bug where NodeGpuStatsResponse
uses writeVLong to serialize totalGpuMemoryInBytes,
which is -1 when no GPU is present. This causes
repeated WARN log flooding from OutboundHandler on
multi-node clusters with non-GPU nodes.

The bug was resolved in #142991 for 9.3.2.

Adds known issue docs with a mitigation (raising
OutboundHandler log level to ERROR).
shmuelhanoch pushed a commit to shmuelhanoch/elasticsearch that referenced this pull request Mar 4, 2026
PR elastic#142660 introduced a bug where NodeGpuStatsResponse
uses writeVLong to serialize totalGpuMemoryInBytes,
which is -1 when no GPU is present. This causes
repeated WARN log flooding from OutboundHandler on
multi-node clusters with non-GPU nodes.

The bug was resolved in elastic#142991 for 9.3.2.

Adds known issue docs with a mitigation (raising
OutboundHandler log level to ERROR).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) backport :Search Relevance/Vectors Vector search test-gpu Run tests using a GPU v9.3.2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants