MCPcopy
hub / github.com/prometheus/prometheus / samples

Method samples

storage/buffer.go:804–854  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

802}
803
804func (r *sampleRing) samples() []chunks.Sample {
805 res := make([]chunks.Sample, r.l)
806
807 k := r.f + r.l
808 var j int
809
810 switch r.bufInUse {
811 case iBuf:
812 if k > len(r.iBuf) {
813 k = len(r.iBuf)
814 j = r.l - k + r.f
815 }
816 n := copy(res, r.iBuf[r.f:k])
817 copy(res[n:], r.iBuf[:j])
818 case fBuf:
819 if k > len(r.fBuf) {
820 k = len(r.fBuf)
821 j = r.l - k + r.f
822 }
823 resF := make([]fSample, r.l)
824 n := copy(resF, r.fBuf[r.f:k])
825 copy(resF[n:], r.fBuf[:j])
826 for i, s := range resF {
827 res[i] = s
828 }
829 case hBuf:
830 if k > len(r.hBuf) {
831 k = len(r.hBuf)
832 j = r.l - k + r.f
833 }
834 resH := make([]hSample, r.l)
835 n := copy(resH, r.hBuf[r.f:k])
836 copy(resH[n:], r.hBuf[:j])
837 for i, s := range resH {
838 res[i] = s
839 }
840 case fhBuf:
841 if k > len(r.fhBuf) {
842 k = len(r.fhBuf)
843 j = r.l - k + r.f
844 }
845 resFH := make([]fhSample, r.l)
846 n := copy(resFH, r.fhBuf[r.f:k])
847 copy(resFH[n:], r.fhBuf[:j])
848 for i, s := range resFH {
849 res[i] = s
850 }
851 }
852
853 return res
854}

Callers 1

TestSampleRingFunction · 0.80

Calls

no outgoing calls

Tested by 1

TestSampleRingFunction · 0.64