Release notesRelease notes for Grafana 9.0.0-beta3

Release notes for Grafana 9.0.0-beta3

Features and enhancements

  • Alerting: Add provenance guard to config api. #50147, @JohnnyQQQQ
  • Alerting: Make folder filter clearable in Alert list panel. #50093, @peterholmberg
  • Alerting: Provisioning API - Alert rules. #47930, @JohnnyQQQQ
  • Alerting: Remove Image Upload code from Slack notifier. #50062, @joeblubaugh
  • Alerting: Remove double quotes from matchers. #50038, @gotjosh
  • Cloudwatch: Dynamic labels autocomplete. #49794, @sunker
  • Datasource: Remove deprecated max_idle_connections_per_host setting. #49948, @marefr
  • Datasource: Remove support for unencrypted passwords. #49987, @marefr
  • Dependencies: Update to Golang version 1.17.11. #50253, @dsotirakis
  • Loki: Run query when pressing Enter on line-filters. #49913, @svennergr
  • Metrics: Remove support for using summaries instead of histogram for HTTP instrumentation. #49985, @bergquist
  • Plugins: Remove deprecated /api/tsdb/query metrics endpoint. #49916, @wbrowne
  • Plugins: Support headers field for check health. #49930, @marefr
  • Prometheus/Loki: Add raw query and syntax highlight in explain mode. #50070, @aocenas
  • Prometheus: Migrate metadata queries to use resource calls. #49921, @srclosson
  • RBAC: Make RBAC action names more consistent. #49730, @IevaVasiljeva
  • RBAC: Make RBAC action names more consistent. (Enterprise)
  • Settings: Sunset non-duration based login lifetime config. #49944, @sakjur
  • [9.0.x] Alerting: Update alert rule diff to not see difference between nil and empty map. #50198, @yuri-tceretian

Bug fixes

  • Alerting: Fix alert list panel showing firing alerts with no instances. #50069, @gillesdemey
  • Alerting: Fix notification policy “Override grouping” form save. #50031, @JacobsonMT
  • Alerting: Remove double quotes from matchers. #50046, @alexweav
  • Alerting: Use correct permission scope for external AM updates. #50159, @gillesdemey
  • Datasource: Fix allowed cookies to be forwarded as header to backend datasources. #49541, @marefr
  • Licensing: Fix trial expiration warning. (Enterprise)
  • Loki: Fix uncaught errors if labelKey contains special characters. #49887, @svennergr
  • Prometheus: Fix aligning of labels of exemplars after backend migration. #49924, @aocenas
  • SharePDF: Fix repeated datasource variables in PDF. (Enterprise)
  • State Timeline: Fix Null Value Filling and Value Transformation. #50054, @codeincarnate
  • Usage stats: Divide collection into multiple functions to isolate failures. #49928, @sakjur

Breaking changes

Removes support for storing/using datasource password and basicAuthPassword unencrypted which was deprecated in Grafana v8.1.0. Please use secureJsonData.password and secureJsonData.basicAuthPassword. Issue #49987

Removes the option to instrument HTTP request in Grafana using summaries instead of histograms. Issue #49985

Removes support for deprecated dataproxy.max_idle_connections_per_host setting. Please use max_idle_connections instead. Issue #49948

Removes the deprecated getFormStyles function from grafana-ui. Prefer using GrafanaTheme2 and the useStyles2 hook. Issue #49945

The configuration options auth.login_maximum_inactive_lifetime_days and auth.login_maximum_lifetime_days were deprecated in Grafana v7.2.0 and have now been removed. Use login_maximum_inactive_lifetime_duration and login_maximum_lifetime_duration to customize the maximum lifetime of a login session. Issue #49944

Removed the deprecated isFocused and isInvalid props from the InlineLabel component. These props haven’t done anything for a while, so migration is just a matter of removing the props. Issue #49929

Removed the deprecated onColorChange prop from ColorPicker. Moving forward the onChange prop should be used. Issue #49923

/api/tsdb/query API has been removed. Use /api/ds/query instead. Issue #49916

onClipboardCopy and onClipboardError APIs have been changed such that the callback’s argument is just the text that’s been copied rather than the old ClipboardEvent interface. Migration should just be a matter of going from

<ClipboardButton
  {/*other props... */}
  onClipboardCopy={(e) => {
    console.log(`Text "${e.text}" was copied!`);
  }}
/>

to

<ClipboardButton
  {/* other props... */}
  onClipboardCopy={(copiedText) => {
    console.log(`Text "${copiedText}" was copied!`);
  }}
/>

Related Issue #49847

The following RBAC action renames have been carried out:

  • users.authtoken:update -> users.authtoken:write;
  • users.password:update -> users.password:write;
  • users.permissions:update -> users.permissions:write;
  • users.quotas:update -> users.quotas:write;
  • org.users.role:update -> org.users:write;
  • alert.instances:update -> alert.instances:write;
  • alert.rules:update -> alert.rules:write;
  • users.authtoken:list -> users.authtoken:read;
  • users.quotas:list -> users.quotas:read;
  • users.teams:read -> replaced by users.read + teams:read

We’ve added a migration from the old action names to the new names and have updated our documentation. But you will have to update any scripts and provisioning files that are using the old action names. Issue #49730

The following RBAC action renames have been carried out:

  • reports.admin:write -> reports:write;
  • reports.admin:create -> reports:create;
  • licensing:update -> licensing:write;
  • roles:list -> roles:read;
  • teams.roles:list -> teams.roles:read;
  • users.roles:list -> users.roles:read;
  • users.permissions:list -> users.permissions:read

We’ve added a migration from the old action names to the new names and have updated our documentation. But you will have to update any scripts and provisioning files that are using the old action names. Issue #3372

Plugin development fixes & changes