elastic / elastic/logstash

Logstash health_report API status not effected by pipeline errors

Open
#17,703 1 comment 1 reaction 1 assignee Claimed by @yaauie View on GitHub
bug status:needs-triage
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
1d 4h
Merged PRs (30d)
88

Description

**Logstash information**:

1. Logstash version (e.g. `bin/logstash --version`)
9.0.2

2. Logstash installation source (e.g. built from source, with a package manager: DEB/RPM, expanded from tar or zip archive, docker)
zip archive

3. How is Logstash being run (e.g. as a service/service manager: systemd, upstart, etc. Via command line, docker/kubernetes)
command line

**Plugins installed**: (`bin/logstash-plugin list --verbose`)
None

**JVM** (e.g. `java -version`):
Bundled jdk

**OS version** (`uname -a` if on a Unix-like system):
Mac Darwin

**Description of the problem including expected versus actual behavior**:

actual behavior: health_report API shows status of GREED, while a input plugin is reporting errors.

expected behavior: health_report API would capture errors related to plugin failures.

Senario:

Logstash is started with a tcp input listening to port 1025, but another process is currently bound to that process preventing logstash from binding to it.

```
input {
tcp {
port => 1025
}
}
```

Logs excerpt of the error
```
[2025-06-10T12:07:54,025][ERROR][logstash.javapipeline ][main][9664765ab09fa8ef6961b8cdbbe1ee6106bd5ae1f2b0190868c50d378e9a4760] A plugin had an unrecoverable error. Will restart this plugin.
Pipeline_id:main
Plugin: 50000, id=>"9664765ab09fa8ef6961b8cdbbe1ee6106bd5ae1f2b0190868c50d378e9a4760", enable_metric=>true, codec=>"line_ad5dfa8c-e495-45a3-aed6-c361a26fd407", enable_metric=>true, charset=>"UTF-8", delimiter=>"\n">, host=>"0.0.0.0", mode=>"server", proxy_protocol=>false, ssl_enabled=>false, ssl_client_authentication=>"required", ssl_verification_mode=>"full", ssl_key_passphrase=>, tcp_keep_alive=>false, dns_reverse_lookup_enabled=>true>
Error: event executor terminated
Exception: Java::JavaUtilConcurrent::RejectedExecutionException
Stack: io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:934)
io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:353)
io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:346)
io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:836)
io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:827)
io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:817)
io.netty.channel.AbstractChannel$AbstractUnsafe.register(AbstractChannel.java:482)
io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:89)
io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:83)
io.netty.channel.MultithreadEventLoopGroup.register(MultithreadEventLoopGroup.java:86)
```

health_report API response
```
{
"host": "Daniels-MacBook-Pro.local",
"version": "9.0.2",
"http_address": "127.0.0.1:9601",
"id": "ed127875-ea31-4646-8668-57d2f1040f2e",
"name": "Daniels-MacBook-Pro.local",
"ephemeral_id": "ec2922f8-fcbe-4993-9317-f4ad0a3bdcdc",
"snapshot": false,
"status": "green",
"symptom": "1 indicator is healthy (`pipelines`)",
"indicators": {
"pipelines": {
"status": "green",
"symptom": "1 indicator is healthy (`main`)",
"indicators": {
"main": {
"status": "green",
"symptom": "The pipeline is healthy",
"details": {
"status": {
"state": "RUNNING"
},
"flow": {
"worker_utilization": {
"last_1_minute": 0.0005793,
"lifetime": 0.0008709,
"last_15_minutes": 0.0006902,
"last_1_hour": 0.0008608,
"current": 0.0008516,
"last_5_minutes": 0.0006855
}
}
}
}
}
}
}
}
```

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.