# Release notes

**Topics:** 10.4 General availability (2026-10-23) · 10.3 Open Beta drop 10 (2026-09-16) · 10.2 Open Beta drop 9 (2026-09-01) · 10.1 Early Access build (2026-08-18)

## 10.4 General availability (2026-10-23)

The first generally available release of plug-in `ip.em.xmys`: build `24.1.10.0.0` for Enterprise Manager 24ai and build `13.5.10.0.0` for Enterprise Manager 13.5, built from the same commit. The exact versions are in `build-info.txt` beside the artifacts.

This release is a fresh install. No earlier build upgrades in place to it: install it as in [3.1](/mysql/install-and-upgrade.html#31-import-with-self-update) to 3.3 and create the targets new, or move an existing estate across with the onboarding script ([4.7](/mysql/targets-and-properties.html#47-bulk-onboarding-and-migration)). [upgrade notes](/mysql/upgrade-notes.html) lists every metadata change in detail. The notes below compare this release with the last pre-release build, whose notes follow this section.

#### Functionality Added or Changed
- **One console standard on all three target types.** Every page shares one page frame and a navigation tree down the left. On a MySQL Database target the tree has Overview, then the groups Performance, SQL, Sessions and Waits, and Storage, then Backup, Configuration, Monitoring Readiness and License Info, and the target menu lists the same pages. A MySQL InnoDB Cluster target has Overview, Consensus, Messaging and Certification; a MySQL InnoDB ClusterSet target has Overview and Monitoring Readiness. Values show in readable units, rate charts plot per second with the unit on the axis, each chart page has one time-window control, numbers align right and text left, and table columns are sized to their content ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages) to 5.3).
- **A new Overview page.** Three cards (availability, instance, and monitoring and license), six key indicators that each name the period they cover, and open incidents beside the most expensive statements. The settings, charts and wait regions the old page carried moved to their own pages ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Monitoring Readiness page** on MySQL Database and MySQL InnoDB ClusterSet targets, with a summary on the MySQL Database Overview. It checks live whether the target has what the pages need: the monitoring connection and privileges, `performance_schema`, the `sys` schema, the backup history tables, the license and, on a ClusterSet, MySQL Shell. Where a fix is a SQL statement, the page shows it; the plug-in never runs it ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages), 5.3).
- **A troubleshooting guide for AI assistants**, published with this guide as a Markdown file. It covers the same checks in a form you can load into your own assistant together with the Monitoring Readiness results. The Monitoring Readiness page links to it.
- **License Info page**, and a banner at the top of every MySQL Database page when the license is not Active or expires in 30 days or fewer ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Tables and Indexes pages** in the Storage group. Tables shows how storage is shared between the 500 largest tables; Indexes shows index sizes, tables read without an index, unused indexes and redundant indexes. Both read three new metric groups, `TableStorage`, `IndexStorage` and `IndexSummary`, collected hourly ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- The **Configuration page** shows the server settings the plug-in collects, in one table you can filter by name, value or area, with the instance's own facts as an eighth area ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Query Analyzer and the Overview's Top SQL hide the plug-in's own monitoring statements** by default; a checkbox shows them again. The plug-in's collections now connect with the default schema `performance_schema`, which is how they are recognized ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Units and labels on all three target types.** Columns that carry a quantity have their real Enterprise Manager unit instead of `NA`. Labels say what a flag's 1 means, what a coded column's values are, that -1 means unknown or not assessed, and the window a computed figure covers ([6.3](/mysql/metrics-reference.html#63-naming-conventions)). Columns that used to report a missing value as 0 gain a "not available" flag beside them, and the row lock and metadata lock groups gain the age of the wait. Every metric group except the configuration snapshots is assigned a category in Enterprise Manager's All Metrics page. `innodb_max_purge_lag_delay` is declared in microseconds, the unit the MySQL manual gives it.
- **Last Seen removed** from the three statement groups and from the Query Analyzer grid. `first_seen` stays.
- **A new WARNING on `ClusterSetHealth.fallback_reason`** when MySQL Shell could not be used for a reason an operator can fix, and **DR Promotion Ready fires only on 0**, not on -1 (not assessed). The shipped threshold count goes from 21 to **22** ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **Enterprise Manager 13.5** is supported in GA and in GA Update 1 (expected later in 2026), with the same three target types and features as on 24ai, and it is not built for releases after that, because Oracle's Extended Support for Enterprise Manager 13.5 ends on 2026-12-31 ([1.3](/mysql/#13-supported-mysql-versions-and-platforms)).

#### Bugs Fixed
- **Query Analytics Trends counts a statement run under two or more schemas.** The server keeps one digest row per schema, and such a statement used to be left out of the rows and totals; its rows are now added together.
- **Waits on an idle server.** An idle interval now records an explicit idle row instead of nothing, so a top wait event from hours earlier is no longer shown as current.
- **The target menu reaches every MySQL Database page** and mirrors the navigation tree on the page.
- **No false DR alarm on a ClusterSet without MySQL Shell.** On the last pre-release build, a ClusterSet target monitored without MySQL Shell fell back to the repository rollup, which reported `dr_promotion_ready` as 0, so the DR Promotion Ready alert raised CRITICAL on a healthy ClusterSet. A target without MySQL Shell now reports -1 (not assessed) and `health_status` `UNKNOWN`, and DR Promotion Ready alerts only on a real 0, from a readiness check that ran and failed ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets), 7.1).
- **The Fallback Reason WARNING clears.** On the last pre-release build, a successful MySQL Shell check left `fallback_reason` empty, which Enterprise Manager stores as no value, so a WARNING that had fired never cleared. A successful check now reports `NONE`, and the WARNING clears on that collection ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **No false DR alarm when the primary cluster is out of reach.** When the agent host could reach no member of the primary cluster, MySQL Shell still answered through a replica-cluster member and reported the primary's state as `UNKNOWN`. The last pre-release build counted that as an unhealthy primary and raised the DR Promotion Ready CRITICAL on a ClusterSet that could be healthy. It is now reported as `MEMBER_UNREACHABLE`, with `dr_promotion_ready` at -1 (not assessed) and `health_status` `UNKNOWN`, and the Fallback Reason WARNING names the cause. A replica cluster that MySQL Shell cannot reach still reads not ready (0) ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **Collections no longer lose their credentials on a busy agent host.** Under heavy load a collection could stop waiting for the credentials Enterprise Manager passes it before they arrived, and then connect without them: the MySQL server refused `Access denied for user '<agent OS user>'@'<agent host>'`, and the collection failed or the target went briefly, falsely, Down. A collection now waits up to 10 seconds for each credential line.
- **Run EXPLAIN explains the whole of a multi-line query.** A query typed on several lines was explained from its first line only, and the console's workaround of joining the lines broke any query with a `--` or `#` comment, which then swallowed the rest of the statement. The query now reaches MySQL as typed. A job whose input is incomplete or altered on arrival explains nothing and says so ([8.1](/mysql/jobs.html#81-run-explain)).
- **Run EXPLAIN never runs the statement.** A query that started with `ANALYZE` became `EXPLAIN ANALYZE`, which executes the statement, and a JDBC escape such as `{fn ANALYZE }` could produce the same. The job now accepts only a statement that `EXPLAIN` plans without running it and sends the query to MySQL exactly as typed ([8.1](/mysql/jobs.html#81-run-explain)).
- **Run EXPLAIN reports a comma in a connection property.** A Host or Port holding a list ran the job against the first entry without a word; the job now fails with a message instead. MySQL errors that quote a multi-line query keep their words apart.

#### Upgrade notes
- **Install fresh.** No earlier build upgrades in place to this release ([3.4](/mysql/install-and-upgrade.html#34-upgrading)). Targets created on this release get every metric group, label and threshold below from creation, with nothing to configure.
- **Place MySQL Connector/J on every agent host** before you deploy the plug-in to that agent, as before ([2.9](/mysql/prerequisites.html#29-mysql-connectorj-on-agent-hosts)).
- **All three target types move to new metadata.** Anything that matches a metric by its display label, rather than by its internal name, needs the new label text; internal metric and column names are unchanged.
- **Notification rules keyed on `fallback_reason`** may want the new WARNING ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)). A rule or script that tested for an empty `fallback_reason` should test for `NONE`.
- **No grant changes.** The new metric groups and the `performance_schema` default schema are covered by the documented grant ([2.4](/mysql/prerequisites.html#24-the-monitoring-user)).

#### Known limitations and boundaries
- **TLS verify modes are not supported in this release.** The TLS Mode property's label lists `verify_ca` and `verify_identity`, and the property is free text, but the client truststore properties those modes depend on are deferred: they are not certified, the onboarding script refuses them, and a ClusterSet health check configured with either reports `TLS_TRUSTSTORE_REQUIRED`. `required` and `disabled` are the modes to use; `required` fails closed rather than downgrade ([2.5](/mysql/prerequisites.html#25-tls)).
- **MySQL InnoDB ClusterSet targets need MySQL Shell on the agent host.** Without `mysqlsh` the target degrades to a repository rollup that reports `fallback_reason` `MYSQLSH_NOT_FOUND`: `dr_promotion_ready` reads -1 (not assessed) and `health_status` reads `UNKNOWN`. Neither the DR Promotion Ready alert nor the `fallback_reason` WARNING fires for it, so install MySQL Shell to get an assessment ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets)).
- **A move from 0 to -1 clears a real DR CRITICAL.** If DR readiness was failing (0) and MySQL Shell then becomes unusable, `dr_promotion_ready` reads -1 and the incident clears although nothing was fixed. The clear message says only that no failure is being reported: check `health_status`, and rely on the `fallback_reason` WARNING to tell you MySQL Shell has broken ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **InnoDB ClusterSet is validated on MySQL 9.5 commercial; an 8.4 ClusterSet is not yet certified.** InnoDB Cluster (Group Replication) is certified on 8.4. DR readiness requires every ClusterSet replication channel to be `OK`; a channel that is reconnecting (`CONNECTING`) closes the gate on its own, because the Shell hides the connection error while a channel is connecting, and the replication-channel column reads not assessed (-1) rather than failed ([1.3](/mysql/#13-supported-mysql-versions-and-platforms), 5.3).
- **Query Analytics freshness on idle servers.** The query-digest groups keep their last collected rows when a collection window sees no new activity; read the `active_digest_count` column as the freshness signal.
- **The Last week and Last month windows on Waits and Query Analytics Trends are estimates.** They are served from Enterprise Manager's hourly and daily rollups and scaled by the sample span; the Last day window is exact. They also trail the repository's daily rollup job, so they can be empty for the first day after a target is added ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **`top_wait_class = lock` means table and metadata locks.** InnoDB charges a row-lock wait to class `io`, so use the InnoDB Row Lock Waits page for row-lock contention ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **Backup failure detection differs between tools.** MySQL Enterprise Backup writes a history row when a run fails; Percona XtraBackup writes nothing, so on XtraBackup-only estates backup age is the failure signal. A tool whose history table the monitoring account cannot read is reported as not detected, with no alert ([2.7](/mysql/prerequisites.html#27-backup-tool-visibility)).
- **The replication metric group reports two boolean vocabularies.** `replica_io_running` returns `Yes` or `No` while `replica_sql_running` returns `true` or `false` ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **The default thresholds are starting points.** Review all 22 against your own service levels before you rely on them ([7.2](/mysql/alerts-and-thresholds.html#72-changing-thresholds)).
- **A target with both Host and Unix Socket Path set connects over TCP** ([2.6](/mysql/prerequisites.html#26-unix-socket-connections)).
- **Aurora MySQL, Cloud SQL and Azure Database for MySQL are supported by manual target add, not certified.** Amazon RDS for MySQL 8.4 is certified ([1.3](/mysql/#13-supported-mysql-versions-and-platforms), 4.4).
- **Tables and Indexes show the last hourly collection** and carry no size-history chart. Index sizes are reported for InnoDB only ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Enterprise Manager 13.5 console pages.** All 28 pages of the three target types were walked on 13.5 with no error dialog. Some tables there keep the column widths Enterprise Manager gives them rather than being sized to their content; 24ai is the reference platform ([1.3](/mysql/#13-supported-mysql-versions-and-platforms)).
- **MySQL versions outside the matrix are not blocked, only uncertified.** If an uncertified version misbehaves, the affected metric group degrades to a collection error rather than taking the target down ([1.3](/mysql/#13-supported-mysql-versions-and-platforms)).
- **Enterprise Manager MCP Server.** The three target types, their metric groups, units and incidents are validated to project to an AI client through the Enterprise Manager 24ai Release Update 12 MCP server (validated 2026-09-30 on 24.1.0.12). [Chapter 11](/mysql/mcp-server.html#the-plug-in-and-the-enterprise-manager-mcp-server) says what an assistant sees, how to connect one and where the boundary is.

## 10.3 Open Beta drop 10 (2026-09-16)

The second Open Beta drop, plug-in `ip.em.xmyb`, builds `24.1.9.N.0` (EM 24ai) and `13.5.9.N.0` (EM 13.5) with N = 10. No customer received drop 9, so this is the first drop anyone installs, and it installs fresh ([3.1](/mysql/install-and-upgrade.html#31-import-with-self-update) to 3.3); [upgrade notes](/mysql/upgrade-notes.html) lists the operator actions in this drop, and the biggest of them comes first here. Both editions are built from the same commit; the exact versions are in `build-info.txt` beside the artifacts.

#### Functionality Added or Changed
- **MySQL Connector/J is no longer bundled with the plug-in.** From this drop the MySQL JDBC driver is customer-supplied: you download MySQL Connector/J and place one `mysql-connector-j-*.jar` in `<agentStateDir>/ip_plugin/<plug-in id>/lib` on every agent host that monitors MySQL targets (`ip_plugin/xmyb/lib` for the beta plug-in `ip.em.xmyb`, `ip_plugin/xmys/lib` for the GA plug-in). Every collection and the Run EXPLAIN job load the driver from there through a launcher on the agent, there is no bundled fallback, and a collection on an agent without the driver fails with an error that names the directory the launcher looked in. The requirement, the supported versions and the install steps are in the prerequisite section *MySQL Connector/J on agent hosts* in [chapter 2](/mysql/prerequisites.html#prerequisites). Place the driver before this drop is deployed to the agent.
- **Run EXPLAIN uses the customer-supplied driver.** The **MySQL - Run Explain Plan** job type (version 1.4) starts the plug-in through the same launcher the collections use, so it needs the driver readable by the job's host credential; a missing driver ends the step with one error line naming the directory ([8.1](/mysql/jobs.html#81-run-explain)).
- **Endpoint lists for MySQL Cluster and MySQL ClusterSet targets.** `(Router) Host` and `(Router) Port` accept comma-separated lists; the JDBC connection and the MySQL Shell session try the list in order, so a container target no longer goes Down because its one configured member is unreachable ([4.1](/mysql/targets-and-properties.html#41-target-properties), 2.3).
- **MySQL Router endpoints proven for both container types.** A Router port works for a MySQL Cluster target and, with password authentication, for a MySQL ClusterSet target on both the JDBC and the MySQL Shell path (`health_source` reads `ADMINAPI` behind a Router); list two Routers to survive losing one. MySQL Shell cannot log in with Kerberos through a Router, so a Kerberos ClusterSet target lists its members; the JDBC collections do authenticate with Kerberos through a Router ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets), 4.1, 4.3).
- **Kerberos on the ClusterSet Shell path.** With a Kerberos Configuration File on the target, MySQL Shell authenticates with the agent user's ticket and no password; `KERBEROS_TICKET`, `KERBEROS_NOT_SUPPORTED`, `KERBEROS_CLIENT_UNAVAILABLE` and `KERBEROS_CONFIG_UNREADABLE` name what is missing ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets)).
- **Top Waits page** on the MySQL Database target: wait time by class and by event over a 24 Hours, Week or Month window, built from `WaitProfile` history, with socket waits excluded from the rankings and totaled separately ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)).
- **Two default thresholds on the wait metrics**: `WaitProfile.avg_wait_us` (WARNING 1 s, CRITICAL 5 s, three consecutive collections) and `WaitProfileSummary.top_wait_class` (WARNING when `lock` leads for five collections), taking the shipped count from 19 to **21** ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)). The MySQL Database target metadata moves with them (see Upgrade notes below).
- **Effective privileges in the security snapshot.** `SecurityAccounts` now counts privileges an account holds through granted roles (at any depth, and `mandatory_roles`) and honors partial revokes on the `mysql` schema, so the seven account-privilege rules in the MySQL Security Standard evaluate what an account can actually do; their advice now includes the role path ([chapter 9](/mysql/compliance-rules.html#compliance-standards)). MySQL 5.7 keeps a direct-only result.
- **Bulk onboarding and migration**: `mysql-onboard.sh` exports an estate to CSV, creates the targets with EM CLI, verifies Up and license, associates the five standards and retires the sources on request, for greenfield estates and for moving off the Oracle MySQL plug-in or the beta ([4.7](/mysql/targets-and-properties.html#47-bulk-onboarding-and-migration) and the [migration chapter](/mysql/migration-from-omys.html)).
- **Amazon RDS for MySQL 8.4 is certified** (RDS MySQL 8.4.11): every metric group collects with the standard monitoring user; the managed-service differences are documented as expected behavior ([1.3](/mysql/#13-supported-mysql-versions-and-platforms), 4.4).
- **Sizing and capacity guidance**: the measured per-target cost, the agent-host rule, which collection schedules to lower in a large estate, and the overload symptoms and their relief ([2.8](/mysql/prerequisites.html#28-sizing-and-capacity)).
- **Query Analytics Trends Week and Month totals** are now scaled from the hourly and daily rollups they are served from, as Top Waits is, instead of summing averaged samples; the page and 5.1 say what is exact and what is an estimate.

#### Bugs Fixed
- **Socket targets no longer need a human login after a `mysqld` restart.** A `caching_sha2_password` account over a Unix socket authenticates on its own; a socket target used to go Down after every restart (or `FLUSH PRIVILEGES`) until someone logged in by another path ([2.6](/mysql/prerequisites.html#26-unix-socket-connections)).
- **ClusterSet health names an unreachable member.** When the agent host reaches one listed endpoint but not another online member, `fallback_reason` now reads `MEMBER_UNREACHABLE` with its remedy, instead of `PARSE_FAILED`; a listed endpoint that is not part of a ClusterSet no longer stops the endpoint loop; and the MySQL Shell budget reserves time for the AdminAPI's member fan-out, so a single-endpoint health check may take up to 60 seconds before reporting ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets), 4.1).
- **Console regions no longer pushed off the page.** A layout rule stretched page content on Query Analyzer, Query Analytics Trends, Top Waits and Database File I/O, on both editions; and Week and Month rows on Top Waits read the wait class from the event name, since the rollups carry no class column.
- **Week and Month windows on Top Waits and Query Analytics Trends** are scaled by the window's own cadence when only one rolled-up sample exists (a newly added target), show nothing rather than a fabricated zero on an empty window, and clear stale rows when a fetch fails.
- **`mysql-onboard.sh` no longer passes the monitoring password on the `emcli` command line**, where any local account on the OMS host could read it from the process list for the duration of each call; it goes through an owner-only file instead. The license key stays on the command line because EM CLI offers no file form for properties.

#### Security
- Every `Host` entry must be a hostname, an IPv4 address or a bracketed IPv6 literal and every `Port` a number from 1 to 65535, so a crafted target property can no longer rewrite the JDBC URL (drop the TLS mode, switch on driver options). See [upgrade notes](/mysql/upgrade-notes.html).
- The onboarding script's password handling above (CWE-214).
- MySQL Connector/J is no longer distributed inside the plug-in; you supply and patch it on your own schedule.

#### Upgrade notes
- **Place MySQL Connector/J on every agent host before deploying this drop to its agents** (prerequisite section *MySQL Connector/J on agent hosts* in [chapter 2](/mysql/prerequisites.html#prerequisites)). Once the agent is on this drop, nothing collects until the driver is in place.
- The MySQL Database target type carries new metadata in this drop (the two wait thresholds), so upgrading needs the full deploy cycle in [3.4](/mysql/install-and-upgrade.html#34-upgrading): OMS first, let it restart, then the agents. Verify with `emcli get_threshold -target_name=<target> -target_type=ip_mysql_database -metric_name=WaitProfileSummary`. The MySQL Cluster and MySQL ClusterSet target types are unchanged.
- Run EXPLAIN needs the agent side on this drop as well as the OMS side; between the two, the job fails on that agent ([8.1](/mysql/jobs.html#81-run-explain)).
- Security Standard results can change after the first configuration snapshot on this drop, because the privilege rules now see role-granted privileges (see [upgrade notes](/mysql/upgrade-notes.html)).
- A notification rule or script keyed on `fallback_reason` should add `MEMBER_UNREACHABLE` (see [upgrade notes](/mysql/upgrade-notes.html)).

#### Known limitations and boundaries
- **`top_wait_class = lock` means table and metadata locks.** InnoDB charges a row-lock wait to `wait/io/table/sql/handler`, class `io`, so row-lock contention does not show as `lock` on this signal; use the InnoDB Row Lock Waits page for it. The `wait/synch/*` instruments are disabled by default, so `synch` does not lead until you enable them ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **Week and Month windows on Top Waits and Query Analytics Trends are estimates.** They are served from Enterprise Manager's hourly and daily rollups and scaled by the sample span; the 24 Hours window is exact ([5.1](/mysql/monitoring-pages.html#51-mysql-database-pages)). Windows also trail the repository's daily rollup job, so they can be empty for the first day after a target is added.
- **Every boundary listed under 10.1 still applies** unless a bullet above says otherwise; in particular the TLS verify modes remain unavailable, and InnoDB ClusterSet remains validated on MySQL 9.5 commercial.

## 10.2 Open Beta drop 9 (2026-09-01)

The Open Beta drop. It is a **separate plug-in** from the Early Access build below and from the GA release to come (`ip.em.xmyb`, target types `ip_mysql_database_beta`, `ip_mysql_cluster_beta`, `ip_mysql_clusterset_beta`); see the Open Beta notice for the terms of use and the install path, and [upgrade notes](/mysql/upgrade-notes.html) for operator actions. Both editions are built from the same commit; the exact versions are in `build-info.txt` beside the artifacts.

#### Functionality Added or Changed
- **Licensing.** Every MySQL Database target carries a **License Key** property ([4.1](/mysql/targets-and-properties.html#41-target-properties)) and a `License` metric group (status, licensed, days remaining, expiration, type, instances, customer), collected on the agent every 15 minutes and again whenever the key changes. Two default thresholds ship with it — CRITICAL when the license is not active, WARNING/CRITICAL at 30/7 days before expiry — taking the shipped threshold count from 17 to **19** ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)). 

  While the status is anything but `Active`, every other metric group on that target reports `Collection stopped by license status: …` until a valid key is entered; availability keeps reporting so the target stays Up. Keys are issued per plug-in: a GA key on the beta (or a beta key on GA) reports `Wrong Plug-in`. Cluster and ClusterSet targets are not licensed targets.
- **Beta identity.** Auto-discovered beta targets are named with a " (Beta)" suffix so beta and GA deployments never collide in All Targets or notifications; the procedure for moving between beta drops ships with each drop, beta-to-GA is a clean install.
- **Enterprise Manager 13.5 edition** (`13.5.9.N.0`) is built from the same source and available with the beta ([1.3](/mysql/#13-supported-mysql-versions-and-platforms)).
- **Numeric grid columns sort numerically** in the console (previously sorted as text, so 9 followed 10).
- **Config side-panel labels wrap at underscores** (`interactive_ | timeout`) instead of mid-word on the Performance chart pages, on both editions.

#### Security
- Process arguments are sanitized before they are logged: every ISO control character in a target-property value is replaced with `_`, width-preserving, so a value containing a line break can no longer forge log lines. Credentials never traveled in process arguments.
- Bundled third-party libraries updated to their current patch levels.

#### Upgrade notes
- The MySQL Database target type carries new metadata in this drop — the `License` metric group, and the license check on every instance metric. Upgrading therefore needs the full deploy cycle in [3.4](/mysql/install-and-upgrade.html#34-upgrading). Deploy the agent side in the same window as the OMS side; an agent left on the previous drop shows no `License` data and raises no license incident.

## 10.1 Early Access build (2026-08-18)
The Early Access build: the first build of the plug-in put in front of customers, and the release this guide's feature scope describes.

#### Functionality Added or Changed
- Three target types: MySQL Database (`ip_mysql_database`), MySQL Cluster (`ip_mysql_cluster`) and MySQL ClusterSet (`ip_mysql_clusterset`) — see [1.2](/mysql/#12-target-types).
- 104 metric groups on MySQL Database, 8 on MySQL Cluster and 3 on MySQL ClusterSet, including daily configuration snapshots that populate Enterprise Manager's configuration history and comparison ([chapter 6](/mysql/metrics-reference.html#metrics-reference)).
- 21 console pages across the three target types, among them Query Analyzer, Query Analytics Trends, Backup, InnoDB Buffer Pool, the cluster Consensus, Messaging and Certification pages, and ClusterSet DR Health ([chapter 5](/mysql/monitoring-pages.html#overview-page-and-pages-tour)).
- 17 default metric thresholds ship set, plus an availability condition on each of the three target types, so a target alarms from the moment you add it ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- DR Promotion Ready alert on the MySQL ClusterSet target: CRITICAL when `dr_promotion_ready` stays below 1 for two consecutive 5-minute collections ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- Backup-source coverage alert on the MySQL Cluster target: a warning when the member the most recent successful backup was taken from is no longer online in the group (`BackupSource : source_offline`).
- MySQL Framework compliance content: 5 standards and 65 rules, ready to associate with no rule authoring ([chapter 9](/mysql/compliance-rules.html#compliance-standards)).
- Run EXPLAIN job: capture an execution plan for a statement against a monitored MySQL Database target from the console ([8.1](/mysql/jobs.html#81-run-explain)).
- TLS Mode `required` fails closed — a session that cannot be encrypted fails with an explicit error and the target goes Down rather than falling back to plaintext ([2.5](/mysql/prerequisites.html#25-tls)).
- Unix-socket connections for a local agent, and a Kerberos configuration-file property on all three target types ([2.6](/mysql/prerequisites.html#26-unix-socket-connections), 4.1).
- Autodiscovery of MySQL server instances on any host whose agent has the plug-in deployed ([4.4](/mysql/targets-and-properties.html#44-autodiscovery)).
- Import through Self Update, then deploy to the OMS and to agents with the standard Enterprise Manager flow ([chapter 3](/mysql/install-and-upgrade.html#installing-the-plug-in)).
- An Enterprise Manager 13.5 edition of this build, built from the same source as the EM 24ai edition, is certified in this beta ([1.3](/mysql/#13-supported-mysql-versions-and-platforms)).

#### Bugs Fixed
- Unix-socket authentication: the junixsocket native libraries are now packaged, so socket connections no longer fail with UnsatisfiedLinkError. Socket targets connect.
- Metric cache files and their lock files are now created with owner-only (0600) permissions, and cached objects are restored through a deserialization allow-list.
- ClusterSet health no longer reports an error when a replication channel is in the `CONNECTING` state during a normal reconnect.
- Configuration side panels display column names in their intended case, and long values wrap instead of being clipped.
- All three target types moved to new metadata in this build. Upgrading therefore needs the full deploy cycle in [3.4](/mysql/install-and-upgrade.html#34-upgrading) — deploy to the OMS, restart the OMS, then deploy to agents — or the new content is stored without being activated.

#### Known limitations and boundaries
- **TLS verify modes are not available in this release.** The client truststore properties that `verify_ca` and `verify_identity` depend on are deferred, so those two modes are absent from the target pages and from EM CLI. `required` and `disabled` are the modes to use; `required` is proven to fail closed rather than downgrade, and certificate or identity checking is not part of this release ([2.5](/mysql/prerequisites.html#25-tls)).
- **MySQL ClusterSet targets need MySQL Shell on the agent host.** Without `mysqlsh` the target degrades to a repository rollup that reports `fallback_reason MYSQLSH_NOT_FOUND`. A rollup cannot assess ClusterSet-wide promotion readiness, so `dr_promotion_ready` reads -1 (not assessed) and `health_status` reads `UNKNOWN`; the DR Promotion Ready alert does not fire on -1, but the `fallback_reason` WARNING does not fire either for `MYSQLSH_NOT_FOUND`, so install MySQL Shell to get an assessment ([2.2](/mysql/prerequisites.html#22-mysql-shell-for-clusterset-targets)).
- **Query Analytics freshness on idle servers.** Like all Enterprise Manager keyed metrics, the query-digest groups retain their last collected rows when a collection window sees no new activity; read the `active_digest_count` column as the freshness signal. The statement-digest overflow row (`DIGEST IS NULL`), which the server uses once its digest table is full, is handled and does not appear as a statement.
- **Backup failure detection is asymmetric between tools.** MySQL Enterprise Backup writes a history row when a run fails; Percona XtraBackup writes nothing, so on XtraBackup-only estates backup age is the failure signal ([2.7](/mysql/prerequisites.html#27-backup-tool-visibility)).
- **Backup detection depends on the history tables being readable.** A server with no history table for a tool is reported as that tool not detected, with no alert raised. Give the monitoring account read access to the history tables of every backup tool you actually run, or that tool reads as absent rather than as a problem ([2.7](/mysql/prerequisites.html#27-backup-tool-visibility)).
- **ClusterSet health was exercised against MySQL 9.5 commercial.** DR readiness requires every ClusterSet replication channel to be `OK`; a channel that is reconnecting (`CONNECTING`) closes the gate on its own.
- **InnoDB ClusterSet is validated on MySQL 9.5 commercial; an 8.4 ClusterSet is not yet certified.** InnoDB Cluster (Group Replication) is certified on 8.4. See the matrix in [1.3](/mysql/#13-supported-mysql-versions-and-platforms).
- **The replication metric group reports two different boolean vocabularies:** `replica_io_running` returns `Yes` or `No` while `replica_sql_running` returns `true` or `false`, so a custom threshold, compliance rule or script that reads both columns must not assume a single format ([7.1](/mysql/alerts-and-thresholds.html#71-default-thresholds)).
- **The default thresholds are starting points, not tuning.** All 17 were verified as present on freshly created targets in our lab, sized for lab workloads; review them against your own service levels before you rely on them ([7.2](/mysql/alerts-and-thresholds.html#72-changing-thresholds)).
- **Unix-socket connections are new in this build.** A target that has both **Host** and **Unix Socket Path** set connects over TCP ([2.6](/mysql/prerequisites.html#26-unix-socket-connections)).
- **RDS, Aurora and Cloud SQL are supported by manual target add, not certified.** Managed services expose a subset of the underlying server, so individual metric groups may report collection errors.
- **Enterprise Manager 13.5 is certified in this beta.** Collection and compliance are certified on 13.5 in our lab, and the console's home and chart pages were verified on an internal 13.5 build (2026-08-25); the remaining console pages have not been individually walked on 13.5, so treat 24ai as the reference platform and report any 13.5 rendering difference you see.
- **An in-place upgrade keeps your targets.** Upgrading from one build to the next carries every target, its monitoring properties and any threshold you customized forward, and collection resumes. Where a build moves target metadata, the OMS restart in the middle of the cycle is what activates it — follow the procedure in [3.4](/mysql/install-and-upgrade.html#34-upgrading) in full, and report anything that does not behave as it describes ([1.4](/mysql/#14-release-status)).
- **MySQL versions outside the matrix are not blocked, only uncertified.** A newer server than 1.3 lists is expected to work; if an uncertified version misbehaves, the affected metric group degrades to a collection error on that group rather than taking the target down.
