// SaveDataIntoES save metrics and events to ES by using ES client func SaveDataIntoES(esClient *elastic.Client, indexName string, typeName string, sinkData interface{}) error { if indexName == "" || typeName == "" || sinkData == nil { return nil } // Use the IndexExists service to check if a specified index exists. exists, err := esClient.IndexExists(indexName).Do() if err != nil { return err } if !exists { // Create a new index. createIndex, err := esClient.CreateIndex(indexName).Do() if err != nil { return err } if !createIndex.Acknowledged { return fmt.Errorf("failed to create Index in ES cluster: %s", err) } } indexID := uuid.NewUUID() _, err = esClient.Index(). Index(indexName). Type(typeName). Id(string(indexID)). BodyJson(sinkData). Do() if err != nil { return err } return nil }
func create_index(client *elastic.Client, index string) error { _, err := client.CreateIndex(index).Do() return err }