From 29be10ca2f6ce0c72d90309eb00dbd02224c8e08 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Wed, 2 Aug 2017 14:50:09 +0100 Subject: PLT-7275: Configure replica/shard count for Elasticsearch indexes. (#7093) --- app/diagnostics.go | 2 ++ config/config.json | 4 +++- model/config.go | 32 +++++++++++++++++++++++--------- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/app/diagnostics.go b/app/diagnostics.go index a22e87587..f12681d01 100644 --- a/app/diagnostics.go +++ b/app/diagnostics.go @@ -411,6 +411,8 @@ func trackConfig() { "enable_indexing": *utils.Cfg.ElasticsearchSettings.EnableIndexing, "enable_searching": *utils.Cfg.ElasticsearchSettings.EnableSearching, "sniff": *utils.Cfg.ElasticsearchSettings.Sniff, + "post_index_replicas": *utils.Cfg.ElasticsearchSettings.PostIndexReplicas, + "post_index_shards": *utils.Cfg.ElasticsearchSettings.PostIndexShards, }) SendDiagnostic(TRACK_CONFIG_PLUGIN, map[string]interface{}{ diff --git a/config/config.json b/config/config.json index 6db6c772d..9e5562843 100644 --- a/config/config.json +++ b/config/config.json @@ -292,7 +292,9 @@ "Password": "changeme", "EnableIndexing": false, "EnableSearching": false, - "Sniff": true + "Sniff": true, + "PostIndexReplicas": 2, + "PostIndexShards": 1 }, "DataRetentionSettings": { "Enable": false diff --git a/model/config.go b/model/config.go index 8c7cd0d68..0bcc092f7 100644 --- a/model/config.go +++ b/model/config.go @@ -119,9 +119,11 @@ const ( ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_COLOR = "#f2a93b" ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_TEXT_COLOR = "#333333" - ELASTICSEARCH_SETTINGS_DEFAULT_CONNECTION_URL = "" - ELASTICSEARCH_SETTINGS_DEFAULT_USERNAME = "" - ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD = "" + ELASTICSEARCH_SETTINGS_DEFAULT_CONNECTION_URL = "" + ELASTICSEARCH_SETTINGS_DEFAULT_USERNAME = "" + ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD = "" + ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_REPLICAS = 2 + ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_SHARDS = 1 ) type ServiceSettings struct { @@ -432,12 +434,14 @@ type WebrtcSettings struct { } type ElasticsearchSettings struct { - ConnectionUrl *string - Username *string - Password *string - EnableIndexing *bool - EnableSearching *bool - Sniff *bool + ConnectionUrl *string + Username *string + Password *string + EnableIndexing *bool + EnableSearching *bool + Sniff *bool + PostIndexReplicas *int + PostIndexShards *int } type DataRetentionSettings struct { @@ -1417,6 +1421,16 @@ func (o *Config) SetDefaults() { *o.ElasticsearchSettings.Sniff = true } + if o.ElasticsearchSettings.PostIndexReplicas == nil { + o.ElasticsearchSettings.PostIndexReplicas = new(int) + *o.ElasticsearchSettings.PostIndexReplicas = ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_REPLICAS + } + + if o.ElasticsearchSettings.PostIndexShards == nil { + o.ElasticsearchSettings.PostIndexShards = new(int) + *o.ElasticsearchSettings.PostIndexShards = ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_SHARDS + } + if o.DataRetentionSettings.Enable == nil { o.DataRetentionSettings.Enable = new(bool) *o.DataRetentionSettings.Enable = false -- cgit v1.2.3-1-g7c22