query.editor.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <query-editor-row query-ctrl="ctrl" can-collapse="false">
  2. <div class="gf-form-inline">
  3. <div class="gf-form gf-form--grow">
  4. <code-editor content="ctrl.target.rawSql" datasource="ctrl.datasource" on-change="ctrl.panelCtrl.refresh()" data-mode="sqlserver" textarea-label="Query Editor">
  5. </code-editor>
  6. </div>
  7. </div>
  8. <div class="gf-form-inline">
  9. <div class="gf-form">
  10. <label class="gf-form-label query-keyword" for="format-select-{{ ctrl.target.refId }}">Format as</label>
  11. <div class="gf-form-select-wrapper">
  12. <select id="format-select-{{ ctrl.target.refId }}" class="gf-form-input gf-size-auto" ng-model="ctrl.target.format" ng-options="f.value as f.text for f in ctrl.formats" ng-change="ctrl.refresh()"></select>
  13. </div>
  14. </div>
  15. <div class="gf-form">
  16. <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">
  17. Show Help
  18. <icon name="'angle-down'" ng-show="ctrl.showHelp" style="margin-top: 3px;"></icon>
  19. <icon name="'angle-right'" ng-hide="ctrl.showHelp" style="margin-top: 3px;"></icon>
  20. </label>
  21. </div>
  22. <div class="gf-form" ng-show="ctrl.lastQueryMeta">
  23. <label class="gf-form-label query-keyword pointer" ng-click="ctrl.showLastQuerySQL = !ctrl.showLastQuerySQL">
  24. Generated SQL
  25. <icon name="'angle-down'" ng-show="ctrl.showLastQuerySQL" style="margin-top: 3px;"></icon>
  26. <icon name="'angle-right'" ng-hide="ctrl.showLastQuerySQL" style="margin-top: 3px;"></icon>
  27. </label>
  28. </div>
  29. <div class="gf-form gf-form--grow">
  30. <div class="gf-form-label gf-form-label--grow"></div>
  31. </div>
  32. </div>
  33. <div class="gf-form" ng-show="ctrl.showHelp">
  34. <pre class="gf-form-pre alert alert-info">Time series:
  35. - return column named time (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below.
  36. - any other columns returned will be the time point values.
  37. Optional:
  38. - return column named <i>metric</i> to represent the series name.
  39. - If multiple value columns are returned the metric column is used as prefix.
  40. - If no column named metric is found the column name of the value column is used as series name
  41. Resultsets of time series queries need to be sorted by time.
  42. Table:
  43. - return any set of columns
  44. Macros:
  45. - $__time(column) -&gt; column AS time
  46. - $__timeEpoch(column) -&gt; DATEDIFF(second, '1970-01-01', column) AS time
  47. - $__timeFilter(column) -&gt; column BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:01:17Z'
  48. - $__unixEpochFilter(column) -&gt; column &gt;= 1492750877 AND column &lt;= 1492750877
  49. - $__unixEpochNanoFilter(column) -&gt; column &gt;= 1494410783152415214 AND column &lt;= 1494497183142514872
  50. - $__timeGroup(column, '5m'[, fillvalue]) -&gt; CAST(ROUND(DATEDIFF(second, '1970-01-01', column)/300.0, 0) as bigint)*300.
  51. by setting fillvalue grafana will fill in missing values according to the interval
  52. fillvalue can be either a literal value, NULL or previous; previous will fill in the previous seen value or NULL if none has been seen yet
  53. - $__timeGroupAlias(column, '5m'[, fillvalue]) -&gt; CAST(ROUND(DATEDIFF(second, '1970-01-01', column)/300.0, 0) as bigint)*300 AS [time]
  54. - $__unixEpochGroup(column,'5m') -&gt; FLOOR(column/300)*300
  55. - $__unixEpochGroupAlias(column,'5m') -&gt; FLOOR(column/300)*300 AS [time]
  56. Example of group by and order by with $__timeGroup:
  57. SELECT
  58. $__timeGroup(date_time_col, '1h') AS time,
  59. sum(value) as value
  60. FROM yourtable
  61. GROUP BY $__timeGroup(date_time_col, '1h')
  62. ORDER BY 1
  63. Or build your own conditionals using these macros which just return the values:
  64. - $__timeFrom() -&gt; '2017-04-21T05:01:17Z'
  65. - $__timeTo() -&gt; '2017-04-21T05:01:17Z'
  66. - $__unixEpochFrom() -&gt; 1492750877
  67. - $__unixEpochTo() -&gt; 1492750877
  68. - $__unixEpochNanoFrom() -&gt; 1494410783152415214
  69. - $__unixEpochNanoTo() -&gt; 1494497183142514872
  70. </pre>
  71. </div>
  72. </div>
  73. <div class="gf-form" ng-show="ctrl.showLastQuerySQL">
  74. <pre class="gf-form-pre">{{ctrl.lastQueryMeta.executedQueryString}}</pre>
  75. </div>
  76. <div class="gf-form" ng-show="ctrl.lastQueryError">
  77. <pre class="gf-form-pre alert alert-error">{{ctrl.lastQueryError}}</pre>
  78. </div>
  79. </query-editor-row>