Quick links:
Overview
Every job is triggered by posting a REST request defining the job and its configuration as the body. For every successful request, a response with the taskId will be returned to the client.
Example response for delete empty indices task:
delete-empty-index-6d377563-4243-4b6f-b26f-222222
Index management API
Delete index
Delete index job deletes existing indices that match the index prefix. When the job finds candidate indices that are older then the retention, it deletes them. The job can be triggered for several clusters on a single REST request.
Path: POST operator/delete-index Query params: scheduled (Optional. Default is false), interval (Optional. Default is 10 sec)
Example request body:
{ "indexPrefix": "acc-*", "retention": "14d", "timeField": "timestamp", "backends": [1, 2] }
Parameter | Type | Required? | Description |
---|---|---|---|
indexPrefix | string | required | Pattern for matching index names: With a trailing `*`, all indices with names matching the prefix will be targeted for the operation. Without a trailing `*`, the index with the exact name will be targeted for the operation. |
retention | string | required | The minimum required age for an index to be targeted for deletion Index age is determined by the most recent value in the `timeField` field of any document in the index. Allowed values are any number + `s` - SECONDS, `h` - HOURS, `m` - MINUTES, `d` - DAYS. |
timeField | string | optional | The field representing the relevance time of a document in an index, the default is timestamp. |
backends | array | optional | On which backend clusters (configured Elasticsearch clusters) the task should operate. The default is all configured backend clusters. |
interval | int | optional | Task interval in seconds, the default is 10 |
excludeIndices | map | optional | Map of cluster id to indices list. For example: {â1â: [âacc-1â, âindex-2â]} |
Delete empty index
The delete empty index job deletes indices (using the alias) that are empty, meaning that the number of documents on these indices is zero.
The job currently supports 2 different strategies:
- Delete indices matching the index pattern with creation date older than today, meaning created 24H ago and older.
- Delete indices matching the index pattern that are not the current write index for the alias defined for them.
Path: POST operator/delete-empty-index Query params: scheduled (Optional. Default is false), interval (Optional. Default is 10)
Example for by date delete request body:
{ "indexPatterns": ["*some_string*"], "indexPatternStrategy" : "BY_DATE", "datePatternGroup": 1, "backends": [1], "deletionStrategy": "BY_CREATION_DATE", "datePattern": ".*(\\d{4}.\\d{2}.\\d{2})", "dateFormat": "yyyy.MM.dd" }
Example for by attribute delete request body:
{ "indexPatterns": ["*index-example*", "*000001*"], "backends": [ 1 ], "deletionStrategy": "BY_WRITE_ATTRIBUTE" }
Parameter | Type | Required? | Description |
---|---|---|---|
indexPatterns | array | required | List of strings that should appear in the index name or used as separated patterns (if usePatternsAsSeparate is true): - If start and ends with * we check that the index name contains someindex. - If ends with * we check that index start with someindex - No * check for perfect match List of index name matching patterns: - `*example*`: Matches any index name containing `example`. - `example*`: Matches any index name starting with `example`. - `example`: Matches an index named exactly `example`. |
usePatternsAsSeparate | boolean | optional | Specifies how the patterns in `indexPatterns` should be applied. - `true`: an index name matching any entry in the list will be a target for deletion. - `false`: an index name matching every entry in the list will be a target for deletion. |
indexPatternStrategy | string | optional | Can be one of: - BY_DATE - Any index with a name that matches the `datePattern` parameter is a candidate for deletion |
datePatternGroup | string | optional | Used by the internal date pattern parsing to extract the date - default is 1 |
backends | array | optional | On which backends (configured Elasticsearch clusters) the task should operate. The default is all. |
interval | int | optional | Task interval in seconds, the default is 10 |
deletionStrategy | string | required | Can be one of: - BY_CREATION_DATE - The index will be deleted if the index creation date is older than today - BY_WRITE_ATTRIBUTE - The index will be deleted if there is no alias with is_write_index set as true. |
retention | string | optional | Used only when deletionStrategy is BY_CREATION_DATE. When retention is set, the operation will only be applied to indices older than the configured retention. Index age is based on index creation date. Values can be in days, hours, minutes, or seconds. Default:1d (not deleting today index) Examples: 1d, 5h, 300s. |
datePattern | string | optional | The date pattern to match against the index name when `indexPatternStrategy` is `BY_DATE` |
dateFormat | string | optional | A list of indices we should not delete |
deleteTodayIndex | boolean | optional | FOR TESTING ONLY - `false` (default): indices with creation date of today are excluded from deletion - `true`: indices with creation date of today are not excluded from deletion |
Rollover index
The rollover job performs rollovers for existing indices that match certain conditions. The conditions are size, max documents and index age. This job can be triggered to rollover 1 index (by alias) or as a scan job for all the indices on the cluster.
Rollover single index
Path: POST operator/rollover Query params: scheduled (Optional. Default is false) interval (Optional. Default is 10)
Example request body:
{ "indexAlias": ["alias-example333"], "sizeThreshold": 10240, "maxDocsThreshold":10000, "indexRetentionInHours":24, "indexCreationStrategies": "TAKE_FROM_CONFIG", "shardsConfig": { "primaryShards": 2, "replicaShards": 1, "refreshInterval":1 }, "shardCreateExpressions": { "primary": "data_node / 2", "replica": "1", "refreshInterval": "3" }, "desireDigitsCount": 4, "postRolloverActions": { "force-merge": { "maxSegments": 4 }, "time-range-filter": {} }, "timeField": "timestamp", "clusterDestinationId": 1, "shouldCopyMapping": "true" }
Â
Parameter | Type | Required? | Description |
---|---|---|---|
indexAlias | array | required | An alias of the desired index to roll. Must match only one writing index |
sizeThreshold | int | optional | Size in bytes onced reached index should be rollover |
indexRetentionInHours | int | optional | Time in hours past from index creation time |
maxDocsThreshold | int | optional | Number of documents in index |
indexCreationStrategies | enum | optional | Valid values TAKE_FROM_CONFIG - if this parameter configure shardsConfig object is mandatory BY_EXPRESSION - if this parameter configure shardCreateExpressions object is mandatory COPY_FROM_EXISTING (default) |
shardsConfig primaryShards | int | optional | Default is supplied by Elasticsearch |
shardsConfig replicaShards | int | optional | Default is supplied by Elasticsearch |
shardsConfigref reshInterval | int | optional | Value is in Seconds, Default is supplied by Elasticsearch |
shardCreateExpressions primary | int | optional | Allowed param is âdata_nodeâ, Default is supplied by Elasticsearch |
shardCreateExpressions replica | int | optional | Allowed param is âdata_nodeâ, Default is supplied by Elasticsearch |
shardCreateExpressions refreshInterval | int | optional | Value is in Seconds, Default is supplied by Elasticsearch |
desireDigitsCount | int | optional | How many digits to add after the name |
postRolloverActions | enum | optional | Action to apply after completion of rollover. Valid values:
|
timeField | string | optional | The field representing the relevance time of a document in an index, the default is timestamp |
clusterDestinationId | int | optional | On which backend should the task operate on, the default is all |
shouldCopyMapping | bool | optional | If the cluster version is before 5.0.0 this will occur on the creation of the index. otherwise it will occur as a post action, the default is false |
intervalInSeconds | int | optional | Task interval in seconds, the default is 10 |
Rollover index scan
The job will scan the cluster/s and create a list of all indices to rollover, then generate and execute jobs for every index.
Path: POST operator/rollover/scan
QueryParams: scheduled (Optional. Default is false), interval (Optional. Default is 10)
Example request body:
{ "ignoreAliasPatterns": { "1": [ "sample-index" ], "100": [ ".kibana", ".kibana_task_manager", ".slm-history-1", ".opster-operator" ], "200": [ ".kibana", ".kibana_task_manager", ".slm-history-1", ".opster-operator" ] }, "rolloverRequest": { "shouldCopyMapping": false, "sizeThreshold": 10474825485, "indexCreationStrategies": "BY_EXPRESSION", "shardCreateExpressions": { "primary": "(data_node / 2)", "replica": "1" }, "postRolloverActions": { "time-range-filter": {} }, "timeField": "timestamp" }, "rolloverIndexScheduled": false, "rolloverIndexIntervalInSeconds": 10 }
Parameter | Type | Required? | Description |
---|---|---|---|
ignoreAliasPatterns | map | optional | A map of backend ID to aliases to ignore (ignores exact match only), the default is none |
rolloverRequest | map | required | Same as a rollover request. This will apply on each new task that will be created |
rolloverIndexScheduled | bool | optional | Should the rollover task that will be created should be a scheduled task, the default is false |
rolloverIndexIntervalInSeconds | int | optional | Rollover task that will be created interval in seconds, the default is 10 |
Reindex
Reindex is a process that reads data from a certain index and writes it to a new index. There are various reasons why a reindex would be required/recommended, but a few possible reasons would be: changes in templates, a move to a new index with more primary shards, and more.
The job uses multiple sub processes to parallelize the work as much as possible in order to speed up the process.
Path: POST operator/reindex Example request body:
{ "indexNamesList": [ "acc-44-00001", "acc-42-00001" ], "targetIndexName": "acct-1", "numberOfConcurrentProcessedIndices": 2, "threadsPerIndex": 10, "continueOnFailure": true, "retriesOnFailedTasks": 10, "timeFrameInMinutes": 10, "dateField": "timestamp", "clusterDestinationId": 1, "useNewIndexOnly": false, "indexCreationStrategy": âTAKE_FROM_CONFIGâ, "shardsConfig": { "primaryShards": 2, "replicaShards": 1, "refreshInterval":1 }, "shardCreateExpressions": { "primary": "data_node / 2", "replica": "1", "refreshInterval": "3" } }
Parameter | Type | Required? | Description | Default |
---|---|---|---|---|
indexNamesList | array | required | Names of source indices which need to be reindexed | - |
targetIndexName | string | required | Name for target index | - |
useNewIndexOnly | bool | optional | Reindex to a new index only. Do not update if the index exists. | false |
numberOfConcurrentProcessedIndices | int | optional | Desired number of source indices to be processed concurrently. | 1 |
threadsPerIndex | int | optional | Desired number of threads for single index processing | 1 |
continueOnFailure | bool | optional | Stop reindexing process on failed task or continue anyway | true |
retriesOnFailedTasks | int | optional | Number of attempts to retry failed tasks | 5 |
timeFrameInMinutes | int | optional | Time interval which is used to split indexes for processing tasks. Example: If in index there are 10000 docs, it will be split for tasks to reindex by creation timestamp within a 60 min time period. | 60 |
dateField | string | optional | Time field which indicates doc creation time. | timestamp |
clusterDestinationId | int | optional | Cluster ID | 1 |
indexCreationStrategy | enum | optional | Index settings strategy: TAKE_FROM_CONFIG, BY_EXPRESSION | TAKE_FROM_CONFIG |
shardsConfig primaryShards Relevant only when âTAKE_FROM_CONFIGâ is set | int | optional | Default is supplied by Elasticsearch | Primary : 1, Replica : 1, RefreshIntervalInSeconds: 10 |
shardsConfig replicaShards Relevant only when âTAKE_FROM_CONFIGâ is set | int | optional | Default is supplied by Elasticsearch | Primary : 1, Replica : 1, RefreshIntervalInSeconds: 10 |
shardsConfig refreshInterval Relevant only when âTAKE_FROM_CONFIGâ is set | int | optional | Value is in seconds, default is supplied by Elasticsearch | - |
shardCreateExpressions primary Relevant only when âBY_EXPRESSIONâ is set | int | optional | Allowed param is âdata_nodeâ, Default is supplied by Elasticsearch | - |
shardCreateExpressions replica Relevant only when âBY_EXPRESSIONâ is set | int | optional | Allowed param is âdata_nodeâ, Default is supplied by Elasticsearch | - |
shardCreateExpressions refreshInterval Relevant only when âBY_EXPRESSIONâ is set | int | optional | Value is in seconds, default is supplied by Elasticsearch | - |
Shrink index
The shrink job allows you to shrink an existing index into a new index with fewer primary shards. This is usually a good solution when the shards of such an index are small in size (for example, an index with 8 primary shards with 1GB of size per shard). The shrink job can shrink this index to 1 primary shard with 8GB. This operation will reduce the management overhead on the cluster.
Note: This operation can add load on the cluster so itâs recommended to run it when the cluster is less loaded. Also, make sure you have enough disk space before running the Operation (At least the side of the source index)
Single run
Path: POST operator/shrink Example request body:
{ "indexPattern": "acc-13-00002", "maxShardSizeInGbBeforeShrink": 1, "maxShardSizeInGbAfterShrink": 20, "desiredNumberOfShardsAfterShrink": 1, "clusterDestinationId" : 1, "sleepBetweenShrinksInSec": 0, "datePattern": ".*(\\d{4}.\\d{2}.\\d{2})", "dateFormat": "yyyy.MM.dd", "datePatternGroup": 1, "timeField": "timestamp", "noWritesToIndexThresholdInMinutes": 5, "indexDesiredDigitsCount": 5, "shrinkTodayIndex": false }
Parameter | Type | Required? | Description |
---|---|---|---|
indexPattern | string | required | The index pattern to use with searching for matching indices to shrink. The pattern support â*â, in case the â*â is used the job will search all indices starting with prefix, for example: acc-1* return all indices starting with acc-1. |
maxShardSizeInGbBeforeShrink | int | required | Maximum shard size to consider as shrink candidate The default is 1gb |
maxShardSizeInGbAfterShrink | int | required | Max shard size of the index after the shrink The default to 20gb |
desiredNumberOfShardsAfterShrink | int | required | Desired number of shards The default to 1 |
sleepBetweenShrinksInSec | int | required | If set to 0 the Operator will execute the task every 10 seconds |
datePattern | string | required | Date pattern used on the alias and index name |
datePatternGroup | int | required | The matching group number of the pattern |
dateFormat | string | required | Format to parse extracted date by |
timeField | string | optional | Time field on the index documents for example, we are using it for taking the last doc time on the index |
noWritesToIndexThresholdInMinutes | int | Optional | The last document time should be no later than `now` minus this. Expected to be in millis. By default this will not be tested |
indexDesiredDigitsCount | int | required | The number of zeros to use for the new index for example on âacc-13-00002â the indexDesiredDigitsCount is 4 |
shrinkTodayIndex | bool | optional | Indicate if to shrink an index created today. Default is false |
Shrink index scan
The job will scan the cluster/s and create a list of all indices to rollover, then generate and execute jobs for every index.
Path: POST operator/shrink/scan QueryParams: scheduled (Optional. Default is false) , interval (Optional. Default is 10 second) Example request body:
{ "indexPattern": {"1": ["acc-1-*"]}, "excludeIndices": {"1": ["acc-1001"]}, "maxTaskIsParallel": {"1": 1}, "shrinkRequest": { "maxShardSizeInGbBeforeShrink": 1, "maxShardSizeInGbAfterShrink": 20, "desiredNumberOfShardsAfterShrink": 1, "sleepBetweenShrinksInSec": 0, "datePattern": ".*(\\d{4}.\\d{2}.\\d{2})", "dateFormat": "yyyy.MM.dd", "datePatternGroup": 1, "timeField": "timestamp", "noWritesToIndexThresholdInMinutes": 5, "indexDesiredDigitsCount": 5 } }
Parameter | Type | Required? | Description |
---|---|---|---|
indexPattern | map | required | Map of cluster ID to index patterns to run (if ends with * prefix will be matched) |
excludeIndices | map | required | Map of cluster ID to indices to be ignored ( * is not allowed) |
maxTaskIsParallel | map | required | Map of cluster ID to number of allowed concurrent running tasks |
Optimize indices
One important task for an Elasticsearch master is to manage the cluster state which holds all the information about the indices, including their mapping, size, data location and more. As the number of indices increases, the cluster state becomes bigger and the overhead on the cluster can harm the cluster integrity and performance. When there are a lot of small indices, the job will reindex them to one index according to their size and reduce the overhead on the cluster.
Path: POST operator/shards/optimizer
Example request body:
{ "indexPattern": "*acc*", "indexReplicas": 0, "reindexMaxSize": 30720, "maxWritesPerIndex": 5, "maxWritesPerIndexIntervalInSec": 10, "reindexWaitForCompletion": false, "retainExistingAliases": false, "sleepBetweenMergesInSec": 15, "noOptimizePattern": true, "indexDesiredDigitsCount" : 6, "clusterDestinationId": 1, "optimizeTodayIndex": true, "preTaskFilters": [{"type": "EXISTS", "modal": "must_exists", "fields": ["tenant"]}], "postReIndexActions": [{"type": "create_alias", "filters": [{"FilterType": "field", "field":"tenant"}]}] }
Parameter | Type | Required? | Description |
---|---|---|---|
indexPattern | string | required | List of strings that should appear on the index name or used as separated patterns (if usePatternsAsSeparate is true) and it works like this for the example above: - If start and ends with * we check that the index name contains acc. - If ends with * we check that index start with acc - No * check for perfect match |
indexReplicas | int | optional | Number of replica shards for created target index |
reindexMaxSize | int | required | Max size in megabytes for indices to optimize |
maxWritesPerIndex | int | optional | The maximum number of writes per interval at which optimization is allowed. Default value - 10 |
maxWritesPerIndexIntervalInSec | int | optional | Interval in seconds to calculate the maximum number of writes. Default value - 15 |
reindexWaitForCompletion | boolean | optional | If true, the task is waiting for completion of reindexing If false, the task isnât waiting for completion of reindexing. Default value - false |
retainExistingAliases | string | optional | If true, aliases from indices for optimizing will be copied to the target index If false, aliases from indices for optimizing wonât be copied to the target index. Default value - true |
sleepBetweenMergesInSec | int | optional | Interval is seconds between merges. Default value - 0 |
noOptimizePattern | boolean | required | If true, the task skips already optimized indices If false, the task optimizes already optimized indices. |
indexDesiredDigitsCount | int | optional | The number of digits to use for the numeric suffix on the new index name. For example on âacc-1-00001â the indexDesiredDigitsCount is 5. |
clusterDestinationId | int | required | On which backend the task should operate. |
optimizeTodayIndex | boolean | optional | To optimize today's index or not. Default value - false |
preTaskFilters | List < Map < String, Object >> | optional | Filters to select desired indices. Default value - no filters |
postReIndexActions | List < Map < String, Object >> | optional | Actions to execute after reindexing. Possible actions: - Ńreate_alias: create new alias for optimized index. Possible filter types for created alias: * field - add field filter to alias * timestamp - add timestamp filter to alias |
retryIntervalOnFailedIndexOptimizationAttemptInMinutes | int | optional | Interval in minutes to restart optimization on a failed index. Default value - 60 |
reindexRequestPerSecond | int | optional | The number of requests per seconds. Default value - -1 |
reindexTimeout | String | optional | Timeout for reindex. Default value - 5m |
Split index
Splits an existing index into a new index with more primary shards. This job is used when an index has a number of primaries that are big in size (more than 50GB). The management for such an index in Elasticsearch can cause overhead on the cluster state and can be problematic when the shard needs to move to another node as part of the regular Elasticsearch operations. The split process improves indexing performance by creating a new index with more primary shards.
Note: This operation can add load on the cluster so itâs recommended to run it when the cluster is less loaded. Also, make sure you have enough disk space before running the Operation (At least the side of the source index)
Path: POST operator/split QueryParams: scheduled (Optional. Default is false)
Example request body:
{ "sourceIndex" : "src-index-00001", "targetIndex": "src-index-split-00001", "sourceIndexIsReadOnly": true, "clusterDestinationId" : 1, "sleepBetweenSplitsInSec": 10, "splitTodayIndex": false, "desiredNumberOfShardsAfterSplit": 4, "shouldDeleteSourceIndex": false, "retryIntervalOnSplitFailedAttemptString": "15s" }
Parameter | Type | Required? | Description |
---|---|---|---|
sourceIndex | string | required | The index to split |
targetIndex | string | optional | The name of the new index after split, if not provided, will be the next incremental value. For example: if src-index-00001 -> src-index-00002, if src-index -> src-index-00001 |
sourceIndexIsReadOnly | boolean | required | When settings this value as true you are confirming that the source index in read-only (hance eo writes to the index) |
splitTodayIndex | boolean | optional | For splitting today's index.(USE FOR TESTING) |
desiredNumberOfShardsAfterSplit | int | optional | Sets the number of primary shard to set on the target index |
desiredShardSizeAfterSplitInGB | int | optional | The average primary shard size target, this value will determine how many primary shards the target index will have. For example on 200G of index with 1 primary: Setting desiredShardSizeAfterSplitInGB as 25, the target index will be created with 8 primary shards |
shouldDeleteSourceIndex | boolean | optional | When set as true, the source index will be deleted after a successful split |
retryIntervalOnSplitFailedAttemptString | string | optional | When postponing a split task during its execution, it will be invoked again after this interval. Default: 10h (possible values, amount + type of unit: 1d, 8h, 300s, 60m) |
forceMergeMaxNumSegments | int | optional | Sets the segments to merge during force marge operation . Default to 0 |
performForceMerge | boolean | optional | Whether to execute force merge API call after successful split |
datePattern | string | required | Date pattern used on the alias and index name |
datePatternGroup | int | required | The matching group number of the pattern |
dateFormat | string | required | Format to parse extracted date by |
Job management API
Get list of jobs
Gets the list of jobs currently configured for the Operator to execute.
Path: GET /operator/jobs Query params (all are optional): status – can be one of: (SCHEDULED,IN_PROGRESS,RUNNING,CANCELED,DONE,ERROR,NOT_FOUND) strategy – can be one of: (EXECUTE_ONCE,SCHEDULED) IncludeCancelled – boolean. Default is false. Example request body: None Response:
[ { "jobId": "<job type>-<UUID>", "status": status, "createdOn": datetime, "lastExecutionTime": datetime, "interval": 0, "strategy": strategy, "jobConfig": escaped JSON string }, ... ]
Get a single job
Gets a particular job (by its ID) currently configured for the Operator to execute. Path: GET /operator/jobs/<job ID> Example request body: None Response:
{ "jobId": "<job type>-<UUID>", "status": status, "createdOn": datetime, "lastExecutionTime": datetime, "interval": 0, "strategy": strategy, "jobConfig": escaped JSON string }
Delete job
Deletes a particular job (by its job ID)
Path: DELETE /operator/jobs/{jobId} Example request body: None Response:
{ "jobId": jobId, "status": "CANCELED", "interval": 0 }
Operator Management API
Get configuration
Path: GET /operator/config Example request body: NoneResponse: JSON representation of full configuration, example:
{ "restServer": { "port": 5530 }, "shardOptimization": { "sleepBetweenMergesInSec": 0, "retryIntervalOnFailedIndexOptimizationAttemptInMinutes": 60, "retryIntervalOnFailedIndexOptimizationAttemptAfterThreeTriesInHours": 11, "indexPattern": null, "maxWritesPerIndex": 10, "targetIndexShardsCount": 2, "reindexMaxSize": 0, "reindexRequestPerSecond": -1.0, "reindexWaitForCompletion": false, "retainExistingAliases": true, "reindexTimeout": "5m", "indexReplicas": 2, "noOptimizePattern": true, "optimizeTodayIndex": false, "maxWritesPerIndexIntervalInSec": 15, "numOfConcurrentIndicesToOptimize": 1, "indexDesiredDigitsCount": 4, "retryTimesForOperation": 3 }, "jobScheduler": { "jobExecutionIntervalInSec": 10, "poolSize": 1, "timeFromLastSchedulerExecutionTimeThresholdInSec": 60, "jobToConcurrentExecutions": { "com.opster.operator.optimizers.shrink.SplitIndexTask": 1, "com.opster.operator.optimizers.shard.jobs.ShardOptimizerTask": 1, "com.opster.operator.optimizers.shrink.ShrinkIndexTask": 1, "com.opster.operator.reindex.SplitIndexTask": 1 } }, "jobStore": { "url": "$ES_URL", "indexName": ".opster-operator", "logsTemplateName": "operator-template-logs", "templateName": "operator", "cancelableJobsIndex": ".cancelable-tasks", "connectRetries": 5, "connectRetriesIntervalInMilli": 1000, "authInfo": { "type": "NONE", "credentials": {} } }, "jobExecutor": { "poolSize": 5 }, "esClusters": [ { "url": "$ES_URL", "id": 1, "authInfo": { "type": "NONE", "credentials": {} } }, { "url": "http://localhost:9200", "id": 2, "authInfo": { "type": "BASIC", "credentials": { "user": "user1", "password": "userPass1" } } }, { "url": "http://localhost:9201", "id": 3, "authInfo": { "type": "BASIC", "credentials": { "user": "user2", "password": "userPass2" } } } ], "esClient": { "readTimeout": 12000, "connTimeout": 30000, "maxConnections": 30 }, "rollover": { "indexAliases": null, "searchAliases": null, "desireDigitsCount": 4, "indexCreationStrategies": null, "shardCreateExpressions": null, "shardsConfig": { "primaryShards": 1, "replicaShards": 1, "refreshInterval": null, "indexName": null }, "sizeThreshold": -1, "postRolloverActions": null, "timeField": null, "retryTimesAllowed": 0, "forceMergeMaxNumSegments": 30, "clusterDestinationId": -1, "shouldCopyMapping": false, "maxDocsThreshold": -1, "indexRetentionInHours": -1 }, "shrink": { "indexPattern": null, "operatorIndexPattern": null, "maxShardSizeInGbBeforeShrink": 0, "maxShardSizeInGbAfterShrink": 0, "desiredNumberOfShardsAfterShrink": 0, "desiredNumberOfReplicasAfterShrink": 0, "minimumIndexAgeInMinutesBeforeShrink": 5, "dryRun": false, "clusterDestinationId": 0, "retryTimesForOperation": 3, "datePattern": null, "timeField": null, "noWritesToIndexThresholdInMinutes": 5, "indexDesiredDigitsCount": 3, "maxRetries": 0, "waitForPrerequisites": [], "dateFormat": null, "datePatternGroup": 0, "shrinkTodayIndex": false, "scanTask": false }, "split": { "datePattern": null, "dateFormat": null, "datePatternGroup": 0, "sourceIndex": null, "targetIndex": null, "targetIndexSuffix": null, "dryRun": false, "clusterDestinationId": 0, "splitTodayIndex": false, "desiredNumberOfShardsAfterSplit": 0, "desiredShardSizeAfterSplitInGB": 10, "shouldDeleteSourceIndex": false, "retryIntervalOnSplitFailedAttemptString": "10h", "forceMergeMaxNumSegments": 0, "performForceMerge": false, "scanTask": false }, "clusterIdIndexStoreConfiguration": { "expireAfterWriteInSeconds": 600 } }
Get health
Path: GET /health, /operator/health Example request body: None Response: OK <!– /wp:paragraph â