Skip to content

Revamp/server input pagination#24057

Merged
kodjo-anipah merged 79 commits intomasterfrom
revamp/server_input_pagination
Dec 1, 2025
Merged

Revamp/server input pagination#24057
kodjo-anipah merged 79 commits intomasterfrom
revamp/server_input_pagination

Conversation

@kodjo-anipah
Copy link
Member

@kodjo-anipah kodjo-anipah commented Oct 30, 2025

Description

/jpd https://github.com/Graylog2/graylog-plugin-enterprise/pull/12538

  • Refactored Input and InputService to remove usage of the deprecated PersistedServiceImpl and Persisted interface.
  • Added a pagination endpoint for inputs.

Related E2E fix https://github.com/Graylog2/e2e-tests/pull/1394

Motivation and Context

Relates to Graylog2/graylog-plugin-enterprise#12248
The current input page lacks sufficient overview, so we are adding pagination to improve the usability of the screen.

How Has This Been Tested?

Locally

  • Input creation, update & deletion
  • Input import via content pack
  • Adding & removing static fields
  • Adding & removing extractors

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (non-breaking change)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have requested a documentation update.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.

kodjo-anipah and others added 30 commits October 28, 2025 19:58
* Implement entity data table for Inputs

* Update InputsDotBadge with cluster endpoint

* Delete graylog2-web-interface/src/components/inputs/InputsOveriew/cells/.#ThroughputCell.tsx

* add Expanded Title section to show config and static fields

* remove InputList and InputListItem 

- format files

* make row clickable and have a single expanded section

- remove unnecessary components

* fix linter

* fix lint

* fix lint

* refactor imports

* fix review

---------

Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>
Co-authored-by: Gary Bot <garybot2@graylog.com>
Bumps `auto-value.version` from 1.11.0 to 1.11.1.

Updates `com.google.auto.value:auto-value-annotations` from 1.11.0 to 1.11.1
- [Release notes](https://github.com/google/auto/releases)
- [Commits](google/auto@auto-value-1.11.0...auto-value-1.11.1)

Updates `com.google.auto.value:auto-value` from 1.11.0 to 1.11.1
- [Release notes](https://github.com/google/auto/releases)
- [Commits](google/auto@auto-value-1.11.0...auto-value-1.11.1)

---
updated-dependencies:
- dependency-name: com.google.auto.value:auto-value-annotations
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.auto.value:auto-value
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.modelcontextprotocol.sdk:mcp-bom](https://github.com/modelcontextprotocol/java-sdk) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/modelcontextprotocol/java-sdk/releases)
- [Commits](modelcontextprotocol/java-sdk@v0.15.0...v0.16.0)

---
updated-dependencies:
- dependency-name: io.modelcontextprotocol.sdk:mcp-bom
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.hibernate.validator:hibernate-validator](https://github.com/hibernate/hibernate-validator) from 9.0.1.Final to 9.1.0.Final.
- [Release notes](https://github.com/hibernate/hibernate-validator/releases)
- [Changelog](https://github.com/hibernate/hibernate-validator/blob/main/changelog.txt)
- [Commits](hibernate/hibernate-validator@9.0.1.Final...9.1.0.Final)

---
updated-dependencies:
- dependency-name: org.hibernate.validator:hibernate-validator
  dependency-version: 9.1.0.Final
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [software.amazon.msk:aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/aws/aws-msk-iam-auth/releases)
- [Commits](aws/aws-msk-iam-auth@v2.3.4...v2.3.5)

---
updated-dependencies:
- dependency-name: software.amazon.msk:aws-msk-iam-auth
  dependency-version: 2.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Refactor ClusterStateApi to use os3 client

* fix empty properties indices

* fix conflict

* better index deletion handling for unavailable indices

* fix deletion of indices

* code cleanup

* better record name and javadoc
…_pagination

# Conflicts:
#	graylog-storage-opensearch3/src/test/java/org/graylog/storage/opensearch3/cluster/ClusterStateApiIT.java
#	graylog2-web-interface/src/components/inputs/InputsOveriew/cells/StateCell.tsx
#	graylog2-web-interface/src/components/inputs/InputsOveriew/cells/TypeCell.tsx
@kodjo-anipah
Copy link
Member Author

Things I noticed during testing:

  • The per node input overview page now displays inputs from all nodes. Need to filter or query for the specific node.
  • Inputs installed from content pack do not set field desired_state. This doesn't cause any issues in master. Running the PR branch, it leads to exceptions during startup. E.g.:
2025-11-21 16:32:37,869 WARN : org.graylog2.inputs.PersistedInputsImpl - Cannot instantiate persisted input. Exception caught: 
java.lang.NullPointerException: Cannot invoke "org.graylog2.plugin.IOState$Type.equals(Object)" because "newDesiredState" is null
	at org.graylog2.plugin.inputs.MessageInput.setDesiredState(MessageInput.java:287)
	at org.graylog2.inputs.InputServiceImpl.getMessageInput(InputServiceImpl.java:571)
	at org.graylog2.inputs.PersistedInputsImpl.iterator(PersistedInputsImpl.java:50)
	at org.graylog2.shared.inputs.InputLauncher.launchAllPersisted(InputLauncher.java:137)

On master, these inputs end up running. In the PR branch they end up stopped.

Thanks for catching that, weird enough if desired state is null, we send back the running state. I kept the same behaviour

@ousmaneo ousmaneo added e2e-tests Run PR build with e2e tests. and removed e2e-tests Run PR build with e2e tests. labels Nov 26, 2025
Copy link
Contributor

@patrickmann patrickmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BE looks good.

kodjo-anipah and others added 8 commits November 27, 2025 10:05
…ove input creation (#24283)

* add Inputs notifications for failed, setup and stopped state

* fix lint

* improve input creation

- open wizard after saving input

* remove navigation

* remove filter copy

* adjust to upstream changes

* Update InputsPage.tsx

* Update graylog2-web-interface/src/util/DocsHelper.ts

Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>

* reset field after opening wizard

* fix typo

* add column width

---------

Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>
@kodjo-anipah kodjo-anipah merged commit bd3719c into master Dec 1, 2025
24 checks passed
@kodjo-anipah kodjo-anipah deleted the revamp/server_input_pagination branch December 1, 2025 06:47
ref={spanRef}
title={`${throughputSectionIsOpen ? 'Hide' : 'Show'} metrics`}
onClick={toggleTrafficSection}>
{!isNaN(incomingMessages) ? formatCount(incomingMessages) : 0} msg/s Last Minute
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ousmaneo One small thing I noticed while working on the tables. We also have a throughput cell for the streams overview, but it displays the information slightly different. We do not format the number via numeral(count).format('0,0'). We also don't display "Last Minute" or something similar.

It would be nice to unify how these cells display the throughput, maybe even via a shared component.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants