diff --git a/metrics/events.go b/metrics/events.go index 8e88e57..658797c 100644 --- a/metrics/events.go +++ b/metrics/events.go @@ -267,6 +267,7 @@ func (m *Metrics) getMatchingErrorMetric(ctx context.Context, msg string) (instr {"graphsync request failed to complete: request failed - unknown reason", m.retrievalErrorGraphsyncCount}, {"failed to dial", m.retrievalErrorFailedToDialCount}, {"HTTP request failed, remote response code: 404", m.retrievalErrorHTTPRemoteRequestNotFound}, + {"HTTP request failed, remote response code: 410", m.retrievalErrorHTTPRemoteRequestGone}, {"HTTP request failed, remote response code:", m.retrievalErrorHTTPRemoteRequestFailed}, {"extraneous block in CAR", m.retrievalErrorHTTPExtraneousBlock}, {"unexpected block in CAR", m.retrievalErrorHTTPUnexpectedBlock}, diff --git a/metrics/metrics.go b/metrics/metrics.go index 6f34064..6b19a74 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -307,6 +307,11 @@ func (m *Metrics) Start() error { ); err != nil { return err } + if m.retrievalErrorHTTPRemoteRequestGone, err = meter.Int64Counter(meterName+"/retrieval_error_http_remote_request_gone_total", + instrument.WithDescription("The number of retrieval errors because an HTTP remote peer returned status 410 gone"), + ); err != nil { + return err + } if m.retrievalErrorHTTPRemoteRequestFailed, err = meter.Int64Counter(meterName+"/retrieval_error_http_remote_request_failed_total", instrument.WithDescription("The number of retrieval errors because an HTTP remote peer returned a failed status other than 404"), ); err != nil { @@ -401,6 +406,7 @@ type stats struct { retrievalErrorGraphsyncCount instrument.Int64Counter retrievalErrorFailedToDialCount instrument.Int64Counter retrievalErrorHTTPRemoteRequestNotFound instrument.Int64Counter + retrievalErrorHTTPRemoteRequestGone instrument.Int64Counter retrievalErrorHTTPRemoteRequestFailed instrument.Int64Counter retrievalErrorHTTPExtraneousBlock instrument.Int64Counter retrievalErrorHTTPUnexpectedBlock instrument.Int64Counter