RecordCompaction classifies and records a compaction attempt. It is a no-op when m is nil.
(provider, model string, compacted bool, err error)
| 121 | // RecordCompaction classifies and records a compaction attempt. |
| 122 | // It is a no-op when m is nil. |
| 123 | func (m *Metrics) RecordCompaction(provider, model string, compacted bool, err error) { |
| 124 | if m == nil { |
| 125 | return |
| 126 | } |
| 127 | switch { |
| 128 | case err != nil && errors.Is(err, context.DeadlineExceeded): |
| 129 | m.CompactionTotal.WithLabelValues(provider, model, CompactionResultTimeout).Inc() |
| 130 | case err != nil && errors.Is(err, context.Canceled): |
| 131 | // User interruption, not a compaction failure. |
| 132 | return |
| 133 | case err != nil: |
| 134 | m.CompactionTotal.WithLabelValues(provider, model, CompactionResultError).Inc() |
| 135 | case compacted: |
| 136 | m.CompactionTotal.WithLabelValues(provider, model, CompactionResultSuccess).Inc() |
| 137 | // !compacted && err == nil means threshold not reached -- not |
| 138 | // recorded. |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | // RecordStreamRetry increments stream_retries_total. The caller |
| 143 | // must obtain classified via chaterror.Classify (non-empty Kind). |