@@ -2,6 +2,7 @@ package sumoCFFirehose
22
33import (
44 "bytes"
5+ "compress/gzip"
56 "net/http"
67 "runtime"
78 "time"
@@ -61,7 +62,7 @@ func (s *SumoLogicAppender) Start() {
6162
6263 if time .Since (Buffer .timerIdlebuffer ).Seconds () >= 10 && Buffer .logEventsInCurrentBuffer > 0 {
6364 logging .Info .Println ("Sending current batch of logs after timer exceeded limit" )
64- go s .SendToSumo (& Buffer )
65+ go s .SendToSumo (Buffer . logStringToSend . String () )
6566 Buffer = newBuffer ()
6667 Buffer .timerIdlebuffer = time .Now ()
6768 continue
@@ -77,7 +78,7 @@ func (s *SumoLogicAppender) Start() {
7778 s .AppendLogs (& Buffer )
7879 Buffer .timerIdlebuffer = time .Now ()
7980 }
80- go s .SendToSumo (& Buffer )
81+ go s .SendToSumo (Buffer . logStringToSend . String () )
8182 Buffer = newBuffer ()
8283 } else {
8384 logging .Trace .Println ("Pushing Logs to Buffer: " )
@@ -112,20 +113,27 @@ func (s *SumoLogicAppender) AppendLogs(buffer *SumoBuffer) {
112113
113114}
114115
115- func (s * SumoLogicAppender ) SendToSumo (buffer * SumoBuffer ) {
116+ func (s * SumoLogicAppender ) SendToSumo (logStringToSend string ) {
117+
118+ var buf bytes.Buffer
119+ g := gzip .NewWriter (& buf )
120+ g .Write ([]byte (logStringToSend ))
121+ g .Close ()
122+
116123 for time .Since (s .timerBetweenPost ) < s .sumoPostMinimumDelay {
117124 logging .Trace .Println ("Delaying post to honor minimum post delay" )
118125 time .Sleep (100 * time .Millisecond )
119126 }
120127
121- logging .Info .Println ("Sending logs to Sumologic ..." )
122- request , err := http .NewRequest ("POST" , s .url , buffer . logStringToSend )
128+ logging .Info .Println ("Sending logs to Sumo Logic ..." )
129+ request , err := http .NewRequest ("POST" , s .url , & buf )
123130 if err != nil {
124131 logging .Error .Printf ("http.NewRequest() error: %v\n " , err )
125132 return
126133 }
127- // request.Header.Add("content-type ", "application/json ")
134+ request .Header .Add ("Content-Encoding " , "gzip " )
128135 //request.SetBasicAuth("admin", "admin")
136+
129137 response , err := s .httpClient .Do (request )
130138 if err != nil {
131139 logging .Error .Printf ("http.Do() error: %v\n " , err )
0 commit comments