You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have encountered probably undesirable behaviour of node_exporter when running HTTP/2. node_exporter complained about HTTP/2 write errors when HEAD request method was used. Steps to reproduce:
curl will display 200 OK and exit cleanly, though node_exporter will write 299 lines like this:
ts=2024-03-23T18:08:58.844Z caller=stdlib.go:105 level=error msg="error encoding and sending metric family: http2: request body closed due to handler exiting"
The error will show up in promhttp_metric_handler_errors_total metric:
I have tracked errors down to prometheus/[email protected]/expfmt/text_create.go:96, http2 connection complained about invalid writes len(metric_families) times. HTTP/1.1 deals OK with such requests.
Not sure whether it is a problem related to HTTP/2 implementation in Go or error handling issue in promhttp, but I feel like some sort of error handling can be added to the library.
Thank you for any comments!
Some info about environment:
Host operating system: output of uname -a
Linux host 6.2.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 6 10:23:26 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
node_exporter version: output of node_exporter --version
# repeated 299 times
ts=2024-03-23T18:08:58.844Z caller=stdlib.go:105 level=error msg="error encoding and sending metric family: http2: request body closed due to handler exiting"
Hi!
I have encountered probably undesirable behaviour of
node_exporter
when running HTTP/2.node_exporter
complained about HTTP/2 write errors when HEAD request method was used. Steps to reproduce:node_exporter
with TLS:curl
:curl
will display 200 OK and exit cleanly, thoughnode_exporter
will write 299 lines like this:promhttp_metric_handler_errors_total
metric:I have tracked errors down to
prometheus/[email protected]/expfmt/text_create.go:96
, http2 connection complained about invalid writeslen(metric_families)
times. HTTP/1.1 deals OK with such requests.Not sure whether it is a problem related to HTTP/2 implementation in Go or error handling issue in
promhttp
, but I feel like some sort of error handling can be added to the library.Thank you for any comments!
Some info about environment:
Host operating system: output of
uname -a
node_exporter version: output of
node_exporter --version
node_exporter command line flags
node_exporter log output
Are you running node_exporter in Docker?
No.
What did you do that produced an error?
curl --version
The text was updated successfully, but these errors were encountered: