From f4491e3f25e6300128881cb7b1fc9997975f361c Mon Sep 17 00:00:00 2001 From: Ardit Marku Date: Tue, 9 Dec 2025 17:23:29 +0200 Subject: [PATCH] Emit ApiErrorOccurred metric for request timed out error --- api/server.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/server.go b/api/server.go index b4b8d97d5..752b8ce06 100644 --- a/api/server.go +++ b/api/server.go @@ -435,7 +435,10 @@ type responseHandler struct { metrics metrics.Collector } -const errCodePanic = -32603 +const ( + errCodePanic = -32603 + errCodeTimeout = -32002 +) type jsonError struct { Code int `json:"code"` @@ -470,6 +473,11 @@ func (w *responseHandler) Write(data []byte) (int, error) { w.metrics.ServerPanicked(message.Error.Message) } + // handle possible request timeouts + if message.Error != nil && message.Error.Code == errCodeTimeout { + w.metrics.ApiErrorOccurred() + } + // It's an error response and requires special treatment. if message.Error != nil { // The logic below is taken from: