diff --git a/search/time_series.go b/search/time_series.go index 0e6d95ef35f2439c51d6d9de980dcbe888d0a387..152e81fab3fa8502356eb4e893cd937ffaafbc6b 100644 --- a/search/time_series.go +++ b/search/time_series.go @@ -258,7 +258,7 @@ func (ts *timeSeries) Write(startTime, endTime time.Time, data interface{}) erro x.Elem().Field(0).Set(reflect.ValueOf(TimeSeriesHeader{ StartTime: startTime, EndTime: endTime, - DurationMs: int64(endTime.Sub(startTime) / time.Millisecond), + DurationMs: endTime.Sub(startTime).Milliseconds(), })) return ts.w.Write(indexName, x.Elem().Interface()) } diff --git a/search/writer.go b/search/writer.go index 8b492beb3d37445ef5c12010aad75e9c54471484..5347c2b2f4b4df136988c7896a697d8b883023d3 100644 --- a/search/writer.go +++ b/search/writer.go @@ -10,6 +10,7 @@ import ( opensearch "github.com/opensearch-project/opensearch-go" opensearchapi "github.com/opensearch-project/opensearch-go/opensearchapi" "gitlab.com/uafrica/go-utils/errors" + "gitlab.com/uafrica/go-utils/logger" ) type Writer interface { @@ -26,21 +27,22 @@ func New(config Config) (Writer, error) { timeSeriesByName: map[string]TimeSeries{}, } - // Initialize the client with SSL/TLS enabled. - var err error - w.client, err = opensearch.NewClient(opensearch.Config{ + searchConfig := opensearch.Config{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }, Addresses: config.Addresses, Username: config.Username, Password: config.Password, - }) + } + // Initialize the client with SSL/TLS enabled. + var err error + w.client, err = opensearch.NewClient(searchConfig) if err != nil { return nil, errors.Wrapf(err, "cannot initialize opensearch connection") } // Print OpenSearch version information on console. - //fmt.Println(client.Info()) + logger.Debugf("Search client created with config: %+v", searchConfig) w.api = opensearchapi.New(w.client) return w, nil @@ -58,13 +60,17 @@ func (writer writer) Write(indexName string, doc interface{}) error { if writer.client == nil { return errors.Errorf("writer closed") } - jsonDoc, err := json.Marshal(doc) - if err != nil { - return errors.Wrapf(err, "failed to JSON encode document") + jsonDocStr, ok := doc.(string) + if !ok { + jsonDoc, err := json.Marshal(doc) + if err != nil { + return errors.Wrapf(err, "failed to JSON encode document") + } + jsonDocStr = string(jsonDoc) } indexResponse, err := writer.api.Index( indexName, - strings.NewReader(string(jsonDoc)), + strings.NewReader(jsonDocStr), ) if err != nil { return errors.Wrapf(err, "failed to index document")