PeterDK
(Peter De Keukelaere)
October 13, 2026, 10:41am
1
Hello,
I discovered that in Kibana 9.5.4 in the Synthetics Monitors UI the Frequency dropdown filter shows "Every 10 minutes" but it filters the monitors with frequency 10 seconds.
So, the monitors frequency is set to 10s and the monitor details show the correct value but the filter replaces seconds with minutes
It's something small but can be confusing if you have a lot of monitors.
michail
(Michail Liarmakopoulos)
October 13, 2026, 4:51pm
2
Hi Peter,
Thanks for reporting this. It looks indeed like a Kibana v9.5.4 issue.
Until it's fixed you can:
Use tags: add a tag such as frequency:10s to seconds-based monitors, then filter by Tags. Update the tag if you change the monitor's schedule.
Use Dev Tools: run GET kbn:/api/synthetics/monitors?perPage=1000, click Filter response in the output panel, and enter the JQ expression [.monitors[] | select(.schedule.unit == "s") | {name: .name, schedule: .schedule}] to filter out the monitors with s frequency (replace with m for minutes).
michail
(Michail Liarmakopoulos)
October 21, 2026, 7:20am
3
Hi there. Just to let you know that this issue is being tracked here:
opened 08:08AM - 14 Oct 26 UTC
bug
Synthetics
Team:obs-signals-logs
Feature:Synthetics
Team:actionable-obs
**Kibana version:** 9.5.4 and 9.5.5
**Elasticsearch version:** 9.5.4 and 9.5.5
…
**Server OS version:** Docker images from `docker.elastic.co` (Elasticsearch, Kibana, Elastic Agent)
**Browser version:** Not recorded (repro done with Playwright)
**Browser OS version:** Not recorded
**Original install method (e.g. download page, yum, from source, etc.):** Docker
**Describe the bug:**
In **Synthetics > Monitors**, every **Frequency** filter option says "Every N minutes", even for monitors that run every 10 or 30 seconds. The filter also ignores the unit, so 10s and 10m monitors share one option, and selecting it returns both. Scheduling, the list column and the details page are correct.
**Steps to reproduce:**
1. Create a private location and these monitors: `http-every-10s` (`{"number":"10","unit":"s"}`), `http-every-10m` (`10m`), `tcp-every-30s` (`30s`), `http-every-30m` (`30m`), `http-every-5m` (`5m`).
2. Open **Observability > Synthetics > Monitors > Management** and open the **Frequency** filter.
3. Select **Every 10 minutes** and click **Apply**.
**Expected behavior:**
Separate options for "Every 10 seconds" and "Every 10 minutes". Selecting "Every 10 minutes" returns only `http-every-10m`.
**Actual behavior:**
A single option, "Every 10 minutes (2)", which returns `http-every-10m` and `http-every-10s`.
**Screenshots (if relevant):**
Frequency filter options, filtered results, and the monitor details page showing "Every 10 seconds" (attached).
<img width="1600" height="1000" alt="Image" src="https://github.com/user-attachments/assets/46819856-28e3-4e8f-b65e-ad34a5d026a3" />
<img width="1600" height="1000" alt="Image" src="https://github.com/user-attachments/assets/5e609a17-9f17-4e10-8783-28a891c05d51" />
**Errors in browser console (if relevant):** Not checked
**Provide logs and/or server output (if relevant):**
The API behind the Frequency dropdown groups by number only:
```bash
curl -s -u elastic:changeme http://localhost:5607/internal/synthetics/monitor/filters \
-H 'kbn-xsrf: true' -H 'x-elastic-internal-origin: kibana' | jq -c '.schedules[]'
```
```text
{"label":"10","count":2}
{"label":"30","count":2}
{"label":"5","count":1}
```
Filtering by `schedules=10` returns both the 10-second and the 10-minute monitor:
```bash
curl -s -u elastic:changeme "http://localhost:5607/api/synthetics/monitors?schedules=10&perPage=100" \
-H 'elastic-api-version: 2023-10-31' |
jq -r '.monitors[] | "\(.name)\tschedule=\(.schedule.number)\(.schedule.unit)"'
```
```text
http-every-10s schedule=10s
http-every-10m schedule=10m
```
**Any additional context:**
Root cause likely is under `x-pack/solutions/observability/plugins/synthetics/`:
- `public/apps/synthetics/utils/filters/filter_fields.ts`: the label is hardcoded as `Every {count} minutes`.
- `server/routes/filters/filters.ts`: the terms aggregation uses only `schedule.number`.
- `server/routes/common.ts`: the KQL filter uses only `schedule.number`.
Sorting the Management list by **Frequency** has the same problem: 5 minutes sorts before 10 seconds (5 is smaller than 10).
Workaround: tag seconds-based monitors and filter by **Tags**, or filter the API response on `schedule.unit`.
Related: [elastic/kibana#292302](https://github.com/elastic/kibana/pull/292302) changes this filter's ping query but doesn't seem to fix this.