Project: Grafana (Observability and Analysis / Observability)
File: CHANGELOG.4.md

See for details. Gzip: Fixes bug gravatar images when gzip was enabled Alert list: Now shows alert state changes even after adding manual annotations on dashboard Alerting: Fixes bug where rules evaluated as firing when all conditions was false and using OR operator. Cloudwatch: CloudWatch no longer display metrics' default alias , thx Prometheus: Fixes bug with new prometheus alerts in Grafana. Make sure to download this version if you're using Prometheus for alerting. More details in the issue. Color picker: Bug after using textbox input field to change/paste color string Cloudwatch: Fix for cloudwatch templating query `ec2instanceattribute` , thanks Heatmap: Fixed tooltip for "time series buckets" mode InfluxDB: Fixed query editor issue when using `>` or `<` operators in WHERE clause Singlestat: Lost thresholds when using save dashboard as Graph: Fix for series override color picker Go: build using golang 1.9.2 Plugins: Fixed problem with loading plugin js files behind auth proxy Graphite: Annotation tooltip should render empty string when undefined Alerting: Viewer can no longer pause alert rules Playlist: Bug where playlist controls was missing Firefox: Creating region annotations now work in firefox Prometheus: Fix for browser crash for short time ranges. Heatmap: Fix for y-axis not showing. Save to file: Fix for save to file in export modal. Postgres: modify group by time macro so it can be used in select clause , thanks ColorPicker: Fix for color picker not showing Alerting: Fix for broken test rule button in alert tab Cloudwatch: Provide error message when failing to add cloudwatch data source , thx Cloudwatch: Fix unused period parameter , thx CSV Export: Fix for broken CSV export Text panel: Fix for issue with break lines in Firefox Annotations: Fix for issue saving annotation event in MySQL DB , thanks Annotations: Add support for creating annotations from graph panel GCS: Adds support for Google Cloud Storage thx Prometheus: Adds /metrics endpoint for exposing Grafana metrics. Graph: Add support for local formatting in axis. , thx Jaeger: Add support for open tracing using jaeger in Grafana. Unit types: New date & time unit types added, useful in singlestat to show dates & times. , , CLI: Make it possible to install plugins from any url Prometheus: Add support for instant queries , thx Cloudwatch: Add support for alerting using the cloudwatch data source , thx Pagerduty: Include triggering series in pagerduty notification , thx Timezone: Time ranges like Today & Yesterday now work correctly when timezone setting is set to UTC , thx Prometheus: Align \$\\interval with the step parameters. , thx Prometheus: Autocomplete for label name and label value , thx Postgres: New Postgres data source , thx Data sources: Make data source HTTP requests verify TLS by default. closes , , , thx OAuth: Verify TLS during OAuth callback , thx SMTP: Make it possible to set specific HELO for smtp client. Dataproxy: Allow grafana to renegotiate tls connection HTTP: set

to true for all http clients Alerting: Add diff and percent diff as series reducers , thx Slack: Allow images to be uploaded to slack when Token is present , thx Opsgenie: Use their latest API instead of old version , thx Table: Add support for displaying the timestamp with milliseconds , thx Hipchat: Add metrics, message and image to hipchat notifications , thx Kafka: Add support for sending alert notifications to kafka , thx Alerting: add countnonnull as series reducer Go: Grafana is now built using golang 1.9 Webpack: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See for more details on how this can effect some plugins. Graphite: Fix for issues with jsonData & graphiteVersion null errors Graphite: Fix for Grafana internal metrics to Graphite sending NaN values HTTP API: Fix for HEAD method requests Templating: Fix for duplicate template variable queries when refresh is set to time range change Metrics: don't write NaN values to graphite MySQL: Fixed issue with query editor not showing Metrics: The metric structure for internal metrics about Grafana published to graphite has changed. This might break dashboards for internal metrics. Security: Security fix for api vulnerability (in multiple org setups). Shortcuts: Adds shortcut for creating new dashboard thx Graph: Right Y-Axis label position fixed General: Improve rounding of time intervals , thx Table panel: Render cell values as links that can have an url template that uses variables from current table row. Elasticsearch: Add ad hoc filters directly by clicking values in table panel . MySQL: New rich query editor with syntax highlighting Prometheus: New rich query editor with syntax highlighting, metric & range auto complete and integrated function docs. GitHub OAuth: Support for GitHub organizations with 100+ teams. , thx Graphite: Calls to Graphite api /metrics/find now include panel or dashboard time range (from & until) in most cases, Graphite: Added new graphite 1.0 functions, available if you set version to 1.0.x in data source settings. New Functions: mapSeries, reduceSeries, isNonNull, groupByNodes, offsetToZero, grep, weightedAverage, removeEmptySeries, aggregateLine, averageOutsidePercentile, delay, exponentialMovingAverage, fallbackSeries, integralByInterval, interpolate, invert, linearRegression, movingMin, movingMax, movingSum, multiplySeriesWithWildcards, pow, powSeries, removeBetweenPercentile, squareRoot, timeSlice, closes Elasticsearch: Ad-hoc filters now use query phrase match filters instead of term filters, works on non keyword/raw fields . InfluxDB/Elasticsearch: The panel & data source option named "Group by time interval" is now named "Min time interval" and does now always define a lower limit for the auto group by time. Without having to use `>` prefix (that prefix still works). This should in theory have close to zero actual impact on existing dashboards. It does mean that if you used this setting to define a hard group by time interval of, say "1d", if you zoomed to a time range wide enough the time range could increase above the "1d" range as the setting is now always considered a lower limit. Elasticsearch: Elasticsearch metric queries without date histogram now return table formatted data making table panel much easier to use for this use case. Should not break/change existing dashboards with stock panels but external panel plugins can be

InfluxDB: Change time range filter for absolute time ranges to be inclusive instead of exclusive , thx InfluxDB: Added parenthesis around tag filters in queries Modals: Maintain scroll position after opening/leaving modal Templating: You cannot select data source variables as data source for other template variables MySQL/Postgres: Fix for maxidleconn option default which was wrongly set to zero which does not mean unlimited but means zero, which in practice kind of disables connection pooling, which is not good. Fixes Search: Fix for issue that caused search view to hide when you clicked starred or tags filters, fixes Modals: ESC key now closes modal again, fixes , thx GrafanaDB(mysql): Fix for dashboard_version.data column type, now changed to MEDIUMTEXT, fixes Dashboard(settings): Closing setting views using ESC key did not update url correctly, fixes InfluxDB: Wrong username/password parameter name when using direct access, fixes Forms(TextArea): Bug fix for no scroll in text areas Png Render API: Bug fix for timeout url parameter. It now works as it should. Default value was also increased from 30 to 60 seconds Search: Fix for not being able to close search by clicking on right side of search result container, Cloudwatch: Fix for using variables in templating metrics() query, Settings(defaults): allowsignup default changed from true to false Settings(defaults): alloworgcreate default changed from true to false Migrations: migration fails where dashboard.created_by is null Dashboard History: View dashboard version history, compare any two versions (summary & json diffs), restore to old version. This big feature was contributed by Walmart Labs. Big thanks to them for this massive contribution! Initial feature request: Pull Request: Elasticsearch: Added filter aggregation label , thx Sensu: Added option for source and handler , thx CSV: Configurable csv export datetime format , thx Table Panel: Column style that preserves formatting/indentation (like pre tag) DingDing: Add DingDing Alert Notifier thx Elasticsearch: Add option for result set size in raw_document , thx Graph: Bug fix for negative values in histogram mode InfluxDB: Fixed issue with query editor not showing ALIAS BY input field when in text editor mode Graph Log Scale: Fixed issue with log scale going below x-axis Playlist: Fixed dashboard play order issue Elasticsearch: Fixed table query issue with ES 2.x , thx Lazy Loading Of Panels: Panels are no longer loaded as they are scrolled into view, this was reverted due to Chrome bug, might be reintroduced when Chrome fixes it's JS blocking behavior on scroll. S3 image upload: Fixed image url issue for us-east-1 (us standard) region. If you were missing slack images for alert notifications this should fix it. Gzip: Fixed crash when gzip was enabled Graphite: Fixed issue with Toggle edit mode did in query editor Alerting: Fixed issue with state history not showing query execution errors Alerting: Fixed issue with missing state history events/annotations when using sqlite3 database Sqlite: Fixed with database table locked and using sqlite3 database Alerting: Fixed issue with annotations showing up in unsaved dashboards, new graph & alert

webdav: Fixed http proxy env variable support for webdav image upload , thx Prometheus: Fixed issue with hiding query VictorOps: Now supports panel image & auto resolve , thx Alerting: Alert annotations now provide more info InfluxDB: influxdb query builder support for ORDER BY and LIMIT (allows TOPN queries) Support influxdb's SLIMIT Feature thx Panels: Delay loading & Lazy load panels as they become visible (scrolled into view) thx Graph: Support auto grid min/max when using log scale , thx Graph: Support for histograms Prometheus: Support table response formats (column per label) , thx Single Stat Panel: support for non time series data Server: Monitoring Grafana (health check endpoint) Heatmap: Heatmap Panel Elasticsearch: histogram aggregation InfluxDB: Small fix for the "glow" when focus the field for LIMIT and SLIMIT thx Prometheus: Make Prometheus query field a textarea , thx Prometheus: Step parameter changed semantics to min step to reduce the load on Prometheus and rendering in browser , thx Templating: Should not be possible to create self-referencing (recursive) template variable definitions thx Cloudwatch: Correctly obtain IAM roles within ECS container tasks thx Units: New number format: Scientific notation thx Oauth: Add common type for oauth authorization errors thx Templating: Data source variable now supports multi value and panel repeats thx Telegram: Telegram alert is not sending metric and legend. , thx Graph: Support dashed lines , thx Table: Support to change column header text Alerting: Better error when SMTP is not configured Pushover: Add an option to attach graph image link in Pushover notification thx WebDAV: Allow to set different ImageBaseUrl for WebDAV upload and image link Panels: type-ahead mixed data source selection thx Security:User enumeration problem InfluxDB: Register new queries available in InfluxDB - Holt Winters thx Server: Support listening on a UNIX socket , thx Graph: Support log scaling for values smaller 1 InfluxDB: Slow 'select measurement' rendering for InfluxDB , thx Config: Configurable signout menu activation , thx Table Panel: Fixed annotation display in table panel, Dashboard: If refresh is blocked due to tab not visible, then refresh when it becomes visible thanks Snapshots: Fixed problem with annotations & snapshots Graph: MetricSegment loses type when value is an asterisk , thx Alerting: Alert notifications do not show charts when using a non public S3 bucket thx Graph: 100% client CPU usage on red alert glow animation InfluxDB: Templating: "All" query does match too much Dashboard: Description tooltip is not fully displayed Proxy: Redirect after switching Org does not obey sub path in root_url (using reverse proxy) Templating: Restoration of ad-hoc variable from URL does not work correctly thx InfluxDB: timeFilter cannot be used twice in alerts MySQL: 4-byte UTF8 not supported when using MySQL database (allows Emojis) Alerting: api/alerts and api/alert/:id hold previous data for "message" and "Message" field when field value is changed from "some string" to empty

Graph: Cannot add fill below to series override InfluxDB: Influxb Data source test passes even if the Database doesn't exist Prometheus: Displaying Prometheus annotations is incredibly slow , thx Graphite: grafana generates empty find query to graphite -> 422 Unprocessable Entity Admin: make organization filter case insensitive , thx Elasticsearch: Changed elasticsearch Terms aggregation to default to Min Doc Count to 1, and sort order to Top Library Upgrade: inconshreveable/log15 outdated - no support for solaris Library Upgrade: Upgrade Macaron Templates: Prevent use of the prefix `` for templates in web UI Threema: Add emoji to Threema alert notifications thx Panels: Support dm3 unit thx Docs: Added some details about Sessions in Postgres thx Influxdb: Allow commas in template variables thx Cloudwatch: stop using deprecated session.New() thx \TSDB: Fix always take dashboard timezone into consideration when handle custom time ranges*: Pass dropcounter rate option if no max counter and no reset value or reset value as 0 is specified thx Templating: support full resolution for \$interval variable thx Elasticsearch: Unique Count on string fields in ElasticSearch , thx Templating: Data source template variable that refers to other variable in regex filter thx Admin: Global User List: add search and pagination User Management: Invite UI is now disabled when login form is disabled Webhook: Use proxy settings from environment variables Panels: Deleting a dashboard with unsaved changes raises an error message thx Influxdb: Query builder detects regex to easily for measurement thx Docs: router_logging not documented Alerting: Spelling mistake thx Alerting: Graph legend scrolls to top when an alias is toggled/clicked thx Panels: Fixed panel tooltip description after scrolling down thx Telegram: Added Telegram alert notifier , thx Templating: Make $\\interval and $\\interval_ms global built in variables that can be used in by any data source (in panel queries), closes , closes S3 Image Store: External s3 image store (used in alert notifications) now support AWS IAM Roles, closes , thx SingleStat: Implements diff aggregation method for singlestat , thx Dataproxy: Added setting to enable more verbose logging in dataproxy , thx Alerting: Better information about why an alert triggered LINE: Add LINE as alerting notification channel , thx LINE: Adds image to notification message , thx Hipchat: Adds support for sending alert notifications to hipchat , thx Alerting: Uploading images for alert notifications is now optional Dashboard: Adds shortcut for collapsing/expanding all rows , thx Alerting: Adds de duping of alert notifications Orgs: Sharing dashboards using Grafana share feature will now redirect to correct org. Pushover: Add Pushover alert notifications thx Threema: Add Threema Gateway alert notification integration thx Optimization: Never issue refresh event when Grafana tab is not visible , thx Browser History: Browser back/forward now works time ranges / zoom, Elasticsearch: Support for Min Doc Count options in Terms aggregation , thx Elasticsearch: Term aggregation limit can now be changed in template queries , thx Elasticsearch: Ad-hoc filters now support all operators , thx Graph: Add full series name as title for legends. , thx Table: Add a message when queries returns no data. , thx Graph: Set max width for series names in legend tables. , thx Database: Allow max db connection pool configuration , thx Data Sources Delete datsource by name , thx Dataproxy: Only allow get that begins with api/ to access Prometheus , thx Snapshot: Make timeout for snapshot creation configurable thx Panels: Add more physics units thx Email: Add sender's name on email thx HTTPS: Set tls 1.2 as lowest tls version. thx Table: Added suppressing of empty results to table plugin. thx Library Upgrade: Upgraded angularjs from 1.5.8 to 1.6.1 Backend: Grafana is now built using golang

Alerting: Fixes missing support for no_data and execution error when testing alerts Dashboard: Avoid duplicate data in dashboard json for panels with alerts Alertlist: Only show scrollbar when required SMTP: Set LocalName to hostname Sidemenu: Disable sign out in sidemenu for AuthProxyEnabled , thx Prometheus: Add support for basic auth in Prometheus tsdb package , thx OAuth: Redirect to original page when logging in with OAuth Annotations: Wrap text in annotations tooltip , thx Templating: Fixes error when using numeric sort on empty strings Templating: Fixed issue detecting template variable dependency Table: Fixes broken annotation rendering mode in the table panel Data Sources: Sorting for lists of data sources in UI is now case insensitive Admin: Support more then 1000 users in global users list Graph Panel: Fixed issue with legend height in table mode Server side PNG rendering: Fixed issue with y-axis label rotation in phantomjs rendered images Graph: Fixed centering of y-axis label Graph: Fixed graph legend table mode and always visible scrollbar Templating: Fixed template variable value groups/tags feature Webhook: Fixed webhook username mismatch , thx Influxdb: Handles time(auto) the same way as time(\$interval) Elasticsearch: Added support for all moving average options , thx Postgres: Add support for Certs for Postgres database Victorops: Add VictorOps notification integration , thx Opsgenie: Add OpsGenie notification integration , thx Singlestat: New aggregation on singlestat panel , thx Cloudwatch: Make it possible to specify access and secret key on the data source config page Table: Added Hidden Column Style for Table Panel , thx Graph: Shared crosshair option renamed to shared tooltip, shows tooltip on all graphs as you hover over one graph. , Elasticsearch: Added support for Missing option (bucket) for terms aggregation , thx Elasticsearch: Added support for Elasticsearch 5.x , thx CLI: Make it possible to reset the admin password using the grafana-cli. Influxdb: Support multiple tags in InfluxDB annotations. , thx LDAP: Basic Auth now supports LDAP username and password, , thx LDAP: Now works with Auth Proxy, role and organization mapping & sync will regularly be performed. , thx Alerting: Adds OK as no data option. Alert list: Order alerts based on state. Alerting: Add api endpoint for pausing all alerts. Panel: Added help text for panels. , thx API: HTTP API for deleting org returning incorrect message for a non-existing org Dashboard: Posting empty dashboard result in corrupted dashboard Logging: Fixed logging level config issue Notifications: Remove html escaping the email subject. Influxdb: Fixes broken field dropdown when using template vars as measurement. Playlist: Add support for kiosk mode Alerting: Add alert message to webhook notifications Alerting: Fixes a bug where avg() reducer treated null as zero. PNG Rendering: Fix for server side rendering when using non default http addr bind and domain setting PNG Rendering: Fix for server side rendering when setting enforce_domain to true Webhooks: Add content type json to outgoing webhooks Keyboard shortcut: Fixed zoom out shortcut Webdav: Adds basic auth headers to webdav uploader Notice 4.0.0 had serious connection pooling issue when using a data source in proxy access. This bug caused lots of resource issues due to too many connections/file handles on the data source backend. This problem is fixed in this

Metrics: Fixes nil pointer dereference on my arm build Data proxy: Fixes a tcp pooling issue in the data source reverse proxy Server-side rendering: Fixed address used when rendering panel via phantomjs and using non default http_addr config Graph panel: Fixed graph panel tooltip sort order issue Unsaved changes: You now navigate to the intended page after saving in the unsaved changes dialog TLS Client Auth: Support for TLS client authentication for data source proxies Alerts out of sync: Saving dashboards with broken alerts causes sync problem Alerting: Saving an alert with condition "HAS NO DATA" throws an error Config: Improve error message when parsing broken config file Table: Render empty dates as - instead of current date Graph Panel: Log base scale on right Y-axis had no effect, max value calc was not applied, Graph Panel: Bar width if bars was only used in series override, UI/Browser: Fixed issue with page/view header gradient border not showing in Safari, Cloudwatch: Fixed cloudwatch data source requesting to many datapoints, UX: Panel Drop zone visible after duplicating panel, and when entering fullscreen/edit view, Templating: Newly added variable was not visible directly only after dashboard reload, Singlestat: Support repeated template variables in prefix/postfix Templating: Don't persist variable options with refresh option Alerting: Add ability to have OR conditions (and mixing AND & OR) InfluxDB: Fix for Ad-Hoc Filters variable & changing dashboards Login: Adds option to disable username/password logins, closes SingleStat: Add seriesName as option in singlestat panel, closes Localization: Week start day now dependent on browser locale setting, closes Templating: Update panel repeats for variables that change on time refresh, closes Templating: Add support for numeric and alphabetical sorting of variable values, closes Elasticsearch: Support to set Precision Threshold for Unique Count metric, closes Navigation: Add search to org switcher, closes Database: Allow database config using one property, closes Graphite: Add support for groupByNodes, closes Influxdb: Add support for elapsed(), closes OpenTSDB: Add support for explicitTags for OpenTSDB>=2.3, closes OAuth: Add support for generic oauth, closes Cloudwatch: Add support to expand multi select template variable, closes Background Tasks: Now support automatic purging of old snapshots, closes Background Tasks: Now support automatic purging of old rendered images, closes Dashboard: After inactivity hide nav/row actions, fade to nice clean view, can be toggled with `d v`, also added kiosk mode, toggled via `d k` Dashboard: Improved dashboard row menu & add panel UX Graph Panel: Support for stacking null values , , thanks @benrubson! SystemD: Change systemd description, closes lodash upgrade: Upgraded lodash from 2.4.2 to 4.15.0, this contains a number of breaking changes that could effect plugins. closes Table Panel: Fixed problem when switching to Mixed data source in metrics tab, fixes Playlist: Fixed problem with play order not matching order defined in playlist, fixes Graph panel: Fixed problem with auto decimals on y axis when datamin=datamax, fixes Snapshot: Can view embedded panels/png rendered panels in snapshots without login, fixes Elasticsearch: Fix for query template variable when looking up terms without query, no longer relies on elasticsearch default field, fixes Elasticsearch: Fix for displaying IP address used in terms aggregations, fixes PNG Rendering: Fix for server side rendering when using auth proxy, fixes OpenTSDB: Fixed multi-value nested templating for opentsdb, fixes Playlist: Remove playlist items when dashboard is removed, fixes