Describe the bug
When a detector is created via the create detector API (for example, using curl
), the .opendistro-anomaly-detection-stat
index isn't immediately created. At the point, when opening the Anomaly Detection dashboards plugin, errors are thrown and the detectors are not shown.
See the forum for where I initially reported this.
To Reproduce
Steps to reproduce the behavior:
- Create a detector using the create detector API, not via the plugin UI
- Validate that the detector was created correctly from the API output and with the search detector API
- Open Dashboards and navigate to the anomaly detection dashboards plugin UI
- Errors are shown (complaining about
.opendistro-anomaly-detection-stat
missing) and the detectors are not listed:
org.opensearch.index.IndexNotFoundException: no such index [.opendistro-anomaly-detection-state]
at org.opensearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.indexNotFoundException(IndexNameExpressionResolver.java:959) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.innerResolve(IndexNameExpressionResolver.java:896) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:852) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:231) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:207) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.resolveLocalIndices(TransportSearchAction.java:634) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.executeSearch(TransportSearchAction.java:662) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.executeLocalSearch(TransportSearchAction.java:541) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.lambda$executeRequest$3(TransportSearchAction.java:333) ~[opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.ActionListener$1.onResponse(ActionListener.java:76) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.index.query.Rewriteable.rewriteAndFetch(Rewriteable.java:127) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.index.query.Rewriteable.rewriteAndFetch(Rewriteable.java:100) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.executeRequest(TransportSearchAction.java:376) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:259) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:120) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:192) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.indexmanagement.rollup.actionfilter.FieldCapsFilter.apply(FieldCapsFilter.kt:141) [opensearch-index-management-1.1.0.0.jar:1.1.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:190) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.performanceanalyzer.action.PerformanceAnalyzerActionFilter.apply(PerformanceAnalyzerActionFilter.java:99) [opensearch-performance-analyzer-1.1.0.0.jar:1.1.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:190) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:168) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:96) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.node.NodeClient.executeLocally(NodeClient.java:99) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.node.NodeClient.doExecute(NodeClient.java:88) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.support.AbstractClient.execute(AbstractClient.java:428) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.support.AbstractClient.search(AbstractClient.java:561) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.ad.transport.handler.ADSearchHandler.validateRole(ADSearchHandler.java:84) [opensearch-anomaly-detection-1.1.0.0.jar:1.1.0.0]
at org.opensearch.ad.transport.handler.ADSearchHandler.search(ADSearchHandler.java:72) [opensearch-anomaly-detection-1.1.0.0.jar:1.1.0.0]
at org.opensearch.ad.transport.SearchADTasksTransportAction.doExecute(SearchADTasksTransportAction.java:50) [opensearch-anomaly-detection-1.1.0.0.jar:1.1.0.0]
at org.opensearch.ad.transport.SearchADTasksTransportAction.doExecute(SearchADTasksTransportAction.java:39) [opensearch-anomaly-detection-1.1.0.0.jar:1.1.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:192) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.indexmanagement.rollup.actionfilter.FieldCapsFilter.apply(FieldCapsFilter.kt:141) [opensearch-index-management-1.1.0.0.jar:1.1.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:190) [opensearch-1.1.0.jar:1.1.0]
Anomaly detector - Unable to search detectors { Error: [index_not_found_exception] no such index [.opendistro-anomaly-detection-state], with { index=".opendistro-anomaly-detection-state" & resource.id=".opendistro-anomaly-detection-state" & resource.type="index_or_alias" & index_uuid="_na_" }
at respond (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:349:15)
at checkRespForFailure (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:306:7)
at HttpConnector.<anonymous> (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/connectors/http.js:173:7)
at IncomingMessage.wrapper (/usr/share/opensearch-dashboards/node_modules/lodash/lodash.js:4991:19)
at IncomingMessage.emit (events.js:203:15)
at endReadableNT (_stream_readable.js:1145:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
status: 404,
displayName: 'NotFound',
message:
'[index_not_found_exception] no such index [.opendistro-anomaly-detection-state], with { index=".opendistro-anomaly-detection-state" & resource.id=".opendistro-anomaly-detection-state" & resource.type="index_or_alias" & index_uuid="_na_" }',
path: '/_plugins/_anomaly_detection/detectors/tasks/_search',
query: {},
body:
{ error:
{ root_cause: [Array],
type: 'index_not_found_exception',
reason: 'no such index [.opendistro-anomaly-detection-state]',
index: '.opendistro-anomaly-detection-state',
at org.opensearch.performanceanalyzer.action.PerformanceAnalyzerActionFilter.apply(PerformanceAnalyzerActionFilter.java:99) [opensearch-performance-analyzer-1.1.0.0.jar:1.1.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:190) [opensearch-1.1.0.jar:1.1.0]
'resource.id': '.opendistro-anomaly-detection-state',
'resource.type': 'index_or_alias',
index_uuid: '_na_' },
status: 404 },
statusCode: 404,
response:
'{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [.opendistro-anomaly-detection-state]","index":".opendistro-anomaly-detection-state","resource.id":".opendistro-anomaly-detection-state","resource.type":"index_or_alias","index_uuid":"_na_"}],"type":"index_not_found_exception","reason":"no such index [.opendistro-anomaly-detection-state]","index":".opendistro-anomaly-detection-state","resource.id":".opendistro-anomaly-detection-state","resource.type":"index_or_alias","index_uuid":"_na_"},"status":404}',
toString: [Function],
toJSON: [Function] }
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:168) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:96) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.node.NodeClient.executeLocally(NodeClient.java:99) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.node.NodeClient.doExecute(NodeClient.java:88) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.client.support.AbstractClient.execute(AbstractClient.java:428) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.ad.rest.AbstractSearchAction.lambda$prepareRequest$0(AbstractSearchAction.java:101) [opensearch-anomaly-detection-1.1.0.0.jar:1.1.0.0]
at org.opensearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:123) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.rest.RestController.dispatchRequest(RestController.java:271) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.rest.RestController.tryAllHandlers(RestController.java:353) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.rest.RestController.dispatchRequest(RestController.java:204) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:332) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:397) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:322) [opensearch-1.1.0.jar:1.1.0]
at org.opensearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:55) [transport-netty4-client-1.1.0.jar:1.1.0]
at org.opensearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:41) [transport-netty4-client-1.1.0.jar:1.1.0]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at org.opensearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:71) [transport-netty4-client-1.1.0.jar:1.1.0]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
172.22.8.1 - tlacuache [22/Nov/2021:21:25:51 +0000] "GET /dashboards/api/anomaly_detectors/_indices?index=*sample-* HTTP/1.1" 200 37 "https://localhost/dashboards/app/anomaly-detection-dashboards" "Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0"
172.22.8.1 - tlacuache [22/Nov/2021:21:25:51 +0000] "GET /dashboards/api/anomaly_detectors/detectors?from=0&search=sample&indices=&size=1000&sortDirection=asc&sortField=name HTTP/1.1" 200 61 "https://localhost/dashboards/app/anomaly-detection-dashboards" "Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0"
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:620) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:583) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [netty-transport-4.1.59.Final.jar:4.1.59.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.59.Final.jar:4.1.59.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.59.Final.jar:4.1.59.Final]
at java.lang.Thread.run(Thread.java:832) [?:?]
Expected behavior
Either the create detector API should create the necessary indices (in which case this bug should be moved to that repo) or the anomaly detection dashboards plugin should handle it gracefully.
Plugins
Security plugin has been removed in the docker images for both my opensearch and dashboards container. One custom visualization plugin installed in dashboards.
Dashboards:
OpenSearch:
$ /usr/share/opensearch/bin/opensearch-plugin list
opensearch-alerting
opensearch-anomaly-detection
opensearch-asynchronous-search
opensearch-cross-cluster-replication
opensearch-index-management
opensearch-job-scheduler
opensearch-knn
opensearch-notebooks
opensearch-performance-analyzer
opensearch-reports-scheduler
opensearch-sql
Host/Environment (please complete the following information):
- OS: Docker based on official
opensearchproject/opensearch:1.1.0
and opensearchproject/opensearch-dashboards:1.1.0
images, running on top of Debian 11 x86_64.
- Version 1.1.0
Additional context
A workaround is to issue a start detector job it causes the appropriate indices to be created:
[2021-11-23T17:45:32,188][INFO ][o.o.j.JobSchedulerPlugin ] [opensearch] JobSweeper started listening to operations on index .opendistro-anomaly-detector-jobs
[2021-11-23T17:45:32,194][INFO ][o.o.c.m.MetadataCreateIndexService] [opensearch] [.opendistro-anomaly-detector-jobs] creating index, cause [api], templates [], shards [1]/[1]
[2021-11-23T17:45:32,228][INFO ][o.o.j.JobSchedulerPlugin ] [opensearch] JobSweeper started listening to operations on index .opendistro-anomaly-detector-jobs
[2021-11-23T17:45:32,317][INFO ][o.o.a.r.h.IndexAnomalyDetectorJobActionHandler] [opensearch] Created .opendistro-anomaly-detectors with mappings.
[2021-11-23T17:45:32,334][INFO ][o.o.c.m.MetadataCreateIndexService] [opensearch] [.opendistro-anomaly-detection-state] creating index, cause [api], templates [], shards [1]/[1]
[2021-11-23T17:45:32,434][INFO ][o.o.a.t.ADTaskManager ] [opensearch] Created .opendistro-anomaly-detection-state with mappings.
[2021-11-23T17:45:32,484][INFO ][o.o.j.s.JobScheduler ] [opensearch] Scheduling job id x-PkTX0Bj6KasTa5qLAc for index .opendistro-anomaly-detector-jobs .
[2021-11-23T17:45:49,106][INFO ][o.o.j.s.JobScheduler ] [opensearch] Descheduling jobId: x-PkTX0Bj6KasTa5qLAc
[2021-11-23T17:45:49,130][INFO ][o.o.a.t.DeleteModelTransportAction] [opensearch] Delete model for x-PkTX0Bj6KasTa5qLAc
[2021-11-23T17:45:49,131][INFO ][o.o.a.t.DeleteModelTransportAction] [opensearch] Deleted model for [x-PkTX0Bj6KasTa5qLAc] with response [null]
[2021-11-23T17:45:49,131][INFO ][o.o.a.m.CheckpointDao ] [opensearch] Delete checkpoints of detector x-PkTX0Bj6KasTa5qLAc
[2021-11-23T17:45:49,133][INFO ][o.o.a.t.DeleteModelTransportAction] [opensearch] Finished deleting x-PkTX0Bj6KasTa5qLAc
[2021-11-23T17:45:49,134][INFO ][o.o.a.t.StopDetectorTransportAction] [opensearch] models of detector x-PkTX0Bj6KasTa5qLAc get deleted
[2021-11-23T17:45:49,134][INFO ][o.o.a.r.h.IndexAnomalyDetectorJobActionHandler] [opensearch] AD model deleted successfully for detector x-PkTX0Bj6KasTa5qLAc
[2021-11-23T17:45:49,133][INFO ][o.o.a.m.CheckpointDao ] [opensearch] 0 checkpoints docs get deleted
[2021-11-23T17:46:18,603][ERROR][o.o.a.u.AlertingException] [opensearch] Alerting error: [.opendistro-alerting-config] IndexNotFoundException[no such index [.opendistro-alerting-config]]
[2021-11-23T17:46:44,629][DEPRECATION][o.o.d.c.m.MetadataCreateIndexService] [opensearch] index name [.opendistro-job-scheduler-lock] starts with a dot '.', in the next major version, index names starting with a dot are reserved for hidden indices and system indices
[2021-11-23T17:46:44,633][INFO ][o.o.c.m.MetadataCreateIndexService] [opensearch] [.opendistro-job-scheduler-lock] creating index, cause [api], templates [], shards [1]/[1]
[2021-11-23T17:46:45,398][INFO ][o.o.c.m.MetadataCreateIndexService] [opensearch] [.opendistro-ism-managed-index-history-2021.11.23-1] creating index, cause [api], templates [], shards [1]/[1]
But then (if I don't want the detector immediately started) I have to turn back around and do a stop detector job. This seems hacky and inelegant.