From d25f8523fde5e74b888a932d1185c254cf7c527f Mon Sep 17 00:00:00 2001 From: Jan Semmelink <jan@uafrica.com> Date: Thu, 11 Nov 2021 10:52:31 +0200 Subject: [PATCH] Cleanup in search --- search/time_series.go | 2 +- search/writer.go | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/search/time_series.go b/search/time_series.go index 0e6d95e..152e81f 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 8b492be..5347c2b 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") -- GitLab