getErrType maps known Prometheus write errors to coarse categories
(err error)
| 9 | |
| 10 | // getErrType maps known Prometheus write errors to coarse categories |
| 11 | func getErrType(err error) string { |
| 12 | if err == nil { |
| 13 | return "none" |
| 14 | } |
| 15 | |
| 16 | switch { |
| 17 | case errors.Is(err, storage.ErrNotFound): |
| 18 | return "not_found" |
| 19 | case errors.Is(err, tsdb.ErrInvalidSample), |
| 20 | errors.Is(err, tsdb.ErrInvalidExemplar): |
| 21 | return "invalid" |
| 22 | case errors.Is(err, storage.ErrOutOfOrderSample), |
| 23 | errors.Is(err, storage.ErrOutOfBounds), |
| 24 | errors.Is(err, storage.ErrTooOldSample): |
| 25 | return "out_of_order" |
| 26 | case errors.Is(err, storage.ErrDuplicateSampleForTimestamp), |
| 27 | errors.Is(err, storage.ErrDuplicateExemplar): |
| 28 | return "duplicate" |
| 29 | default: |
| 30 | return "other" |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | func isOutOfOrderError(err error) bool { |
| 35 | return errors.Is(err, storage.ErrOutOfOrderSample) |