parseWriteResponseStats returns WriteResponseStats parsed from the response headers. As per 2.0 spec, missing header means 0. However, abrupt HTTP errors, 1.0 Receivers or buggy 2.0 Receivers might result in no response headers specified and that might NOT necessarily mean nothing was written. To r
(r *http.Response)
| 198 | // |
| 199 | // Error is returned when any of the header fails to parse as int64. |
| 200 | func parseWriteResponseStats(r *http.Response) (s WriteResponseStats, err error) { |
| 201 | var ( |
| 202 | errs []error |
| 203 | h = r.Header |
| 204 | ) |
| 205 | if v := h.Get(writtenSamplesHeader); v != "" { // Empty means zero. |
| 206 | s.confirmed = true |
| 207 | if s.Samples, err = strconv.Atoi(v); err != nil { |
| 208 | s.Samples = 0 |
| 209 | errs = append(errs, err) |
| 210 | } |
| 211 | } |
| 212 | if v := h.Get(writtenHistogramsHeader); v != "" { // Empty means zero. |
| 213 | s.confirmed = true |
| 214 | if s.Histograms, err = strconv.Atoi(v); err != nil { |
| 215 | s.Histograms = 0 |
| 216 | errs = append(errs, err) |
| 217 | } |
| 218 | } |
| 219 | if v := h.Get(writtenExemplarsHeader); v != "" { // Empty means zero. |
| 220 | s.confirmed = true |
| 221 | if s.Exemplars, err = strconv.Atoi(v); err != nil { |
| 222 | s.Exemplars = 0 |
| 223 | errs = append(errs, err) |
| 224 | } |
| 225 | } |
| 226 | return s, errors.Join(errs...) |
| 227 | } |