Closed afharo closed 4 months ago
We're not planning to do this at this time.
Reopening and putting on Stack Monitoring board.
Some kibana metricsets were calling http apis in constructor instead of the metricset lifecycle methods which could cause process termination when target is not available. This was fixed by https://github.com/elastic/beats/pull/35396 available in 8.7.0.
I've tried to reproduce by targeting a non-existing host which triggers the same code path, and the process stays up and running despite the http error. @afharo any chance you still have your setup handy to verify the behavior is fixed in >=8.7.0 ?
It looks like this was fixed in the PR referenced in the comment above. Please reopen if this is still happening.
Metricbeat's Kibana module uses the
GET /api/status
in some places:status
metricset: https://github.com/elastic/beats/blob/a1a6bd8cd569182aeb0082e252ecbabad338a797/metricbeat/module/kibana/status/status.go#L41stats
metricset: https://github.com/elastic/beats/blob/a1a6bd8cd569182aeb0082e252ecbabad338a797/metricbeat/module/kibana/stats/stats.go#L90-L93When any of the core services in Kibana is not available, the
GET /api/status
returns503
while the body keeps the expected 200 body structure.Running ECK locally, I noticed that the Kibana k8s service takes longer to start when the
monitoring.metrics
options set up because themetricbeat
container bootloop-crashes (with backoff retries) while Kibana fully starts up andGET /api/status
returns200
.For details about how to set up a monitoring architecture in k8s, follow the steps explained in https://github.com/elastic/kibana/issues/145558#issuecomment-1323509356
IMO, metricbeat should not crash on 503 and, on top of that, still process the response body for the Kibana metricsets.