Index patterns are not supported in doc level monitors

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser)

Opensearch 3.3.0

Describe the issue:

When creating a “per document monitor”, it’s not possible to specify a data stream or index that contains a dot in its name.

Failed to run the query
[alerting_exception] Index patterns are not supported in doc level monitors.

When I select an index without a dot, it works fine.

Relevant Logs or Screenshots:

When entering an index containing a dot

[2025-11-19T13:57:18,230][ERROR][o.o.b.OpenSearchUncaughtExceptionHandler] [tb-opensearch004] uncaught exception in thread [DefaultDispatcher-worker-1]
org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
at org.opensearch.commons.alerting.util.AlertingException$Companion.wrap(AlertingException.kt:70) ~[common-utils-3.3.0.0.jar:?]
at org.opensearch.alerting.MonitorMetadataService.getOrCreateMetadata(MonitorMetadataService.kt:162) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at org.opensearch.alerting.MonitorMetadataService$getOrCreateMetadata$1.invokeSuspend(MonitorMetadataService.kt) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-1.9.25.jar:1.9.25-release-852]
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:285) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742) [kotlinx-coroutines-core-1.1.1.jar:?]
Suppressed: org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
at org.opensearch.commons.alerting.util.AlertingException$Companion.wrap(AlertingException.kt:70) ~[common-utils-3.3.0.0.jar:?]
at org.opensearch.alerting.MonitorMetadataService.getOrCreateMetadata(MonitorMetadataService.kt:162) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at org.opensearch.alerting.MonitorMetadataService$getOrCreateMetadata$1.invokeSuspend(MonitorMetadataService.kt) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-1.9.25.jar:1.9.25-release-852]
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:285) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742) [kotlinx-coroutines-core-1.1.1.jar:?]
Suppressed: org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
at org.opensearch.commons.alerting.util.AlertingException$Companion.wrap(AlertingException.kt:70) ~[common-utils-3.3.0.0.jar:?]
at org.opensearch.alerting.MonitorMetadataService.getOrCreateMetadata(MonitorMetadataService.kt:162) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at org.opensearch.alerting.MonitorMetadataService$getOrCreateMetadata$1.invokeSuspend(MonitorMetadataService.kt) ~[opensearch-alerting-3.3.0.0.jar:3.3.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-1.9.25.jar:1.9.25-release-852]
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:285) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742) [kotlinx-coroutines-core-1.1.1.jar:?]
Caused by: java.lang.Exception: org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
… 8 more
Caused by: java.lang.Exception: org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
… 8 more
Caused by: java.lang.Exception: org.opensearch.commons.alerting.util.AlertingException: Failed fetching index stats
… 8 more

@gstorme Why would you use a dot in the index name? Very often, this is treated as a special character and requires escaping.

We will switch from dots to underscores in our index names.

But if dots are a problem for certain plugins, maybe it should be added to the naming restriction for indexes on Managing indexes - OpenSearch Documentation

@gstorme OpenSearch allows creating and using index names with a dot.
The issue refers to the Alerting plugin that doesn’t handle them well.

My suggestion is more of a good practice advice.

You can create an issue in the OpenSearch Alerting plugin GitHub.

If you do so, please share the link here.