Project: Grafana (Observability and Analysis / Observability)
File: release-notes-9-0-0-beta2.md

aliases: [] hide_menu: true labels: products: cloud enterprise oss title: Release notes for Grafana 9.0.0-beta2 <!-- Auto generated by update changelog github action --> Alerting: Add legacy indicator to navbar. , Alerting: Add templated subject config to email notifier. , Alerting: Enable Unified Alerting for open source and enterprise. , Alerting: Make alertmanager datasource stable. , Angular: Remove deprecated angular modal support and libs. , AuthProxy: Remove deprecated ldapsyncttl setting. , Build: Enable long term caching for frontend assets. , Chore: Remove deprecated TextDisplayOptions export. , Chore: Remove deprecated `surface` prop from IconButton. , Chore: Remove usage of deprecated getColorForTheme function. , DatePicker: Add minDate prop. , Notification history: Enable by default. , Prometheus: Add pluginVersion to query. , Prometheus: Enable prometheusStreamingJSONParser by default. , Prometheus: Predefined scopes for Azure authentication. , Prometheus: Streaming JSON parser performance improvements. , ValueMapping: Add support for regex replacement over multiple lines. , Accessibility: Pressing escape in a Modal or DashboardSettings correctly closes the overlay. , Alerting: Validate alert notification UID length. , BackendSrv: Throw an error when fetching an invalid JSON. , Fix: Timeseries migration regex override. , Loki: Fix unwrap parsing in query builder. , Navigation: Position hamburger menu correctly in mobile view. , PanelEditor: Fixes issue with Table view and multi data frames. , Preferences: Fix updating of preferences for Navbar and Query History. , TimeRange: Fixes issue when zooming out on a timerange with timespan 0. , Variables: Fixes DS variables not being correctly used in panel queries. , Drop support for deprecated setting ldapsyncttl under [auth.proxy] Only sync_ttl will work from now on Issue Removes support for deprecated `heading` and `description` props. Moving forward, the `Card.Heading` and `Card.Description` components should be used. Issue Removes the deprecated `link` variant from the `Button` component. To migrate, replace any usage of `variant="link"` with `fill="text"`. Issue Removes the deprecated `surface` prop from the `IconButton` component. This prop hasn't actually done anything for a while, so it should be safe to just remove any instances of its usage. Issue Removes the deprecated `TextDisplayOptions` export from `@grafana/data` in favor of `VizTextDisplayOptions` from `@grafana/schema`. To migrate, just replace usage of `TextDisplayOptions` with `VizTextDisplayOptions`. Issue Removed support for the deprecated `getColorForTheme(color: string, theme: GrafanaTheme)` function in favor of the `theme.visualization.getColorByName(color: string)`

The output of this method is identical to the removed function, so migration should just be a matter of rewriting calls of `getColorForTheme(myColor, myTheme)` to `myTheme.visualization.getColorByName(myColor)`. Issue In the Prometheus data source, for consistency and performance reasons, we changed how we represent `NaN` (not a number) values received from Prometheus. In the past versions, we converted these to `null` in the frontend (for dashboard and explore), and kept as `NaN` in the alerting path. Starting with this version, we will always keep it as `NaN`. This change should be mostly invisible for the users. Issue Plugins using custom Webpack configs could potentially break due to the changes between webpack@4 and webpack@5. Please refer to the for assistance. Webpack 5 does not include polyfills for node.js core modules by default (e.g. `buffer`, `stream`, `os`). This can result in failed builds for plugins. If polyfills are required it is recommended to create a custom webpack config in the root of the plugin repo and add the required fallbacks: ```js // webpack.config.js module.exports.getWebpackConfig = (config, options) => ({ ...config, resolve: { ...config.resolve, fallback: { os: require.resolve('os-browserify/browser'), stream: require.resolve('stream-browserify'), timers: require.resolve('timers-browserify'), }, }, }); ``` Please refer to the webpack build error messages or the for assistance with fallbacks. Issue We have changed the internals of `backendSrv.fetch()` to throw an error when the response is an incorrect JSON. ```javascript // PREVIOUSLY: this was returning with an empty object {} - in case the response is an invalid JSON return await getBackendSrv().post(`${API_ROOT}/${id}/install`); // AFTER THIS CHANGE: the following will throw an error - in case the response is an invalid JSON return await getBackendSrv().post(`${API_ROOT}/${id}/install`); ``` When is the response handled as JSON? If the response has the `"Content-Type: application/json"` header, OR If the backendSrv options () specify the response as JSON: `{ responseType: 'json' }` How does it work after this change? In case it is recognised as a JSON response and the response is empty, it returns an empty object `{}` In case it is recognised as a JSON response and it has formatting errors, it throws an error How to migrate? Make sure to handle possible errors on the callsite where using `backendSrv.fetch()` (or any other `backendSrv` methods). Issue UI/Card: Remove deprecated props. , UI/Button: Remove deprecated "link" variant. , Toolkit: Bump dependencies. ,