@@ -336,9 +336,13 @@ func (r *runner) collectAndSummarizeMetrics() (*metricsSummary, error) {
336
336
337
337
func (r * runner ) deleteDataStreamDocs (dataStream string ) error {
338
338
body := strings .NewReader (`{ "query": { "match_all": {} } }` )
339
- _ , err := r .options .ESAPI .DeleteByQuery ([]string {dataStream }, body )
339
+ resp , err := r .options .ESAPI .DeleteByQuery ([]string {dataStream }, body )
340
340
if err != nil {
341
- return err
341
+ return fmt .Errorf ("failed to delete data stream docs for data stream %s: %w" , dataStream , err )
342
+ }
343
+ defer resp .Body .Close ()
344
+ if resp .IsError () {
345
+ return fmt .Errorf ("failed to delete data stream docs for data stream %s: %s" , dataStream , resp .String ())
342
346
}
343
347
return nil
344
348
}
@@ -665,6 +669,9 @@ func (r *runner) reindexData() error {
665
669
return fmt .Errorf ("error getting mapping: %w" , err )
666
670
}
667
671
defer mappingRes .Body .Close ()
672
+ if mappingRes .IsError () {
673
+ return fmt .Errorf ("error getting mapping: %s" , mappingRes )
674
+ }
668
675
669
676
body , err := io .ReadAll (mappingRes .Body )
670
677
if err != nil {
@@ -709,7 +716,7 @@ func (r *runner) reindexData() error {
709
716
defer createRes .Body .Close ()
710
717
711
718
if createRes .IsError () {
712
- return errors . New ("got a response error while creating index" )
719
+ return fmt . Errorf ("got a response error while creating index: %s" , createRes )
713
720
}
714
721
715
722
bodyReader := strings .NewReader (`{"query":{"match_all":{}}}` )
@@ -725,21 +732,13 @@ func (r *runner) reindexData() error {
725
732
return fmt .Errorf ("error executing search: %w" , err )
726
733
}
727
734
defer res .Body .Close ()
728
-
729
- type searchRes struct {
730
- Error * struct {
731
- Reason string `json:"reson"`
732
- } `json:"error"`
733
- ScrollID string `json:"_scroll_id"`
734
- Hits []struct {
735
- ID string `json:"_id"`
736
- Source map [string ]interface {} `json:"_source"`
737
- } `json:"hits"`
735
+ if res .IsError () {
736
+ return fmt .Errorf ("error executing search: %s" , res )
738
737
}
739
738
740
739
// Iterate through the search results using the Scroll API
741
740
for {
742
- var sr searchRes
741
+ var sr searchResponse
743
742
if err := json .NewDecoder (res .Body ).Decode (& sr ); err != nil {
744
743
return fmt .Errorf ("error decoding search response: %w" , err )
745
744
}
@@ -752,40 +751,66 @@ func (r *runner) reindexData() error {
752
751
break
753
752
}
754
753
755
- var bulkBodyBuilder strings.Builder
756
- for _ , hit := range sr .Hits {
757
- bulkBodyBuilder .WriteString (fmt .Sprintf ("{\" index\" :{\" _index\" :\" %s\" ,\" _id\" :\" %s\" }}\n " , indexName , hit .ID ))
758
- enriched := r .enrichEventWithBenchmarkMetadata (hit .Source )
759
- src , err := json .Marshal (enriched )
760
- if err != nil {
761
- return fmt .Errorf ("error decoding _source: %w" , err )
762
- }
763
- bulkBodyBuilder .WriteString (fmt .Sprintf ("%s\n " , string (src )))
754
+ err := r .bulkMetrics (indexName , sr )
755
+ if err != nil {
756
+ return err
764
757
}
758
+ }
759
+
760
+ logger .Debug ("reindexing operation finished" )
761
+ return nil
762
+ }
765
763
766
- logger .Debugf ("bulk request of %d events..." , len (sr .Hits ))
764
+ type searchResponse struct {
765
+ Error * struct {
766
+ Reason string `json:"reson"`
767
+ } `json:"error"`
768
+ ScrollID string `json:"_scroll_id"`
769
+ Hits []struct {
770
+ ID string `json:"_id"`
771
+ Source map [string ]interface {} `json:"_source"`
772
+ } `json:"hits"`
773
+ }
767
774
768
- bulkRes , err := r .options .ESMetricsAPI .Bulk (strings .NewReader (bulkBodyBuilder .String ()))
775
+ func (r * runner ) bulkMetrics (indexName string , sr searchResponse ) error {
776
+ var bulkBodyBuilder strings.Builder
777
+ for _ , hit := range sr .Hits {
778
+ bulkBodyBuilder .WriteString (fmt .Sprintf ("{\" index\" :{\" _index\" :\" %s\" ,\" _id\" :\" %s\" }}\n " , indexName , hit .ID ))
779
+ enriched := r .enrichEventWithBenchmarkMetadata (hit .Source )
780
+ src , err := json .Marshal (enriched )
769
781
if err != nil {
770
- return fmt .Errorf ("error performing the bulk index request : %w" , err )
782
+ return fmt .Errorf ("error decoding _source : %w" , err )
771
783
}
772
- bulkRes .Body .Close ()
784
+ bulkBodyBuilder .WriteString (fmt .Sprintf ("%s\n " , string (src )))
785
+ }
773
786
774
- if sr .ScrollID == "" {
775
- return errors .New ("error getting scroll ID" )
776
- }
787
+ logger .Debugf ("bulk request of %d events..." , len (sr .Hits ))
777
788
778
- res , err = r .options .ESAPI .Scroll (
779
- r .options .ESAPI .Scroll .WithScrollID (sr .ScrollID ),
780
- r .options .ESAPI .Scroll .WithScroll (time .Minute ),
781
- )
782
- if err != nil {
783
- return fmt .Errorf ("error executing scroll: %s" , err )
784
- }
785
- res .Body .Close ()
789
+ resp , err := r .options .ESMetricsAPI .Bulk (strings .NewReader (bulkBodyBuilder .String ()))
790
+ if err != nil {
791
+ return fmt .Errorf ("error performing the bulk index request: %w" , err )
792
+ }
793
+ defer resp .Body .Close ()
794
+ if resp .IsError () {
795
+ return fmt .Errorf ("error performing the bulk index request: %s" , resp )
786
796
}
787
797
788
- logger .Debug ("reindexing operation finished" )
798
+ if sr .ScrollID == "" {
799
+ return errors .New ("error getting scroll ID" )
800
+ }
801
+
802
+ resp , err = r .options .ESAPI .Scroll (
803
+ r .options .ESAPI .Scroll .WithScrollID (sr .ScrollID ),
804
+ r .options .ESAPI .Scroll .WithScroll (time .Minute ),
805
+ )
806
+ if err != nil {
807
+ return fmt .Errorf ("error executing scroll: %s" , err )
808
+ }
809
+ if resp .IsError () {
810
+ return fmt .Errorf ("error executing scroll: %s" , resp )
811
+ }
812
+ resp .Body .Close ()
813
+
789
814
return nil
790
815
}
791
816
@@ -815,6 +840,10 @@ func getTotalHits(esapi *elasticsearch.API, dataStream string) (int, error) {
815
840
}
816
841
defer resp .Body .Close ()
817
842
843
+ if resp .IsError () {
844
+ return 0 , fmt .Errorf ("failed to get hits count: %s" , resp .String ())
845
+ }
846
+
818
847
var results struct {
819
848
Count int
820
849
Error * struct {
0 commit comments