Graylog2 / Graylog2/graylog2-server

Collectors: Add semantic version comparison filters to instances table

Open
#25,948 0 comments 0 reactions 0 assignees View on GitHub
collector feature
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

## Context

Split from Graylog2/graylog-plugin-enterprise#13652 (sub-issue 1).

## Problem

The instances overview table supports basic text/exact-match filtering on the `version` column, but users cannot use comparison operators like `<`, `>`, `=` to filter by semantic version. This makes it difficult to identify outdated instances (e.g., "show all instances running a version older than 7.1").

## Current State

- `CollectorInstancesResource.java` marks `version` as `filterable(true)` and `searchable(true)`
- The `bsonFilterCreator` uses `AttributeFieldFilters.attributeArray("service.version")`, which only supports string matching
- The frontend `PaginatedEntityTable` filter UI has no concept of version comparison operators

## Suggested Approach

- Backend: implement a custom `bsonFilterCreator` for the `version` attribute that parses semver strings and supports `<`, `>`, `<=`, `>=`, `=` comparisons
- Frontend: extend the filter UI to offer comparison operators for version-type attributes
- Example use case: `version < 7.1` → show all instances running older versions

## Relevant Files

- `graylog2-server/src/main/java/org/graylog/collectors/rest/CollectorInstancesResource.java`
- `graylog2-web-interface/src/components/collectors/instances/CollectorsInstances.tsx`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.