D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
app
/
plugins
/
datasource
/
mysql
/
Filename :
CheatSheet.tsx
back
Copy
import { css } from '@emotion/css'; import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; export function CheatSheet() { const styles = useStyles2(getStyles); return ( <div> <h2>MySQL cheat sheet</h2> Time series: <ul className={styles.ulPadding}> <li> return column named time or time_sec (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below. </li> <li>return column(s) with numeric datatype as values</li> </ul> Optional: <ul className={styles.ulPadding}> <li> return column named <i>metric</i> to represent the series name. </li> <li>If multiple value columns are returned the metric column is used as prefix.</li> <li>If no column named metric is found the column name of the value column is used as series name</li> </ul> <p>Resultsets of time series queries need to be sorted by time.</p> Table: <ul className={styles.ulPadding}> <li>return any set of columns</li> </ul> Macros: <ul className={styles.ulPadding}> <li>$__time(column) -> UNIX_TIMESTAMP(column) as time_sec</li> <li>$__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time_sec</li> <li>$__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877)</li> <li>$__unixEpochFilter(column) -> time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877</li> <li> $__unixEpochNanoFilter(column) -> column >= 1494410783152415214 AND column <= 1494497183142514872 </li> <li> $__timeGroup(column,'5m'[, fillvalue]) -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed) by setting fillvalue grafana will fill in missing values according to the interval 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 </li> <li> $__timeGroupAlias(column,'5m') -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed) AS "time" </li> <li>$__unixEpochGroup(column,'5m') -> column DIV 300 * 300</li> <li>$__unixEpochGroupAlias(column,'5m') -> column DIV 300 * 300 AS "time"</li> </ul> <p>Example of group by and order by with $__timeGroup:</p> <pre> <code> $__timeGroupAlias(timestamp_col, '1h'), sum(value_double) as value <br /> FROM yourtable <br /> GROUP BY 1<br /> ORDER BY 1 <br /> </code> </pre> Or build your own conditionals using these macros which just return the values: <ul className={styles.ulPadding}> <li>$__timeFrom() -> FROM_UNIXTIME(1492750877)</li> <li>$__timeTo() -> FROM_UNIXTIME(1492750877)</li> <li>$__unixEpochFrom() -> 1492750877</li> <li>$__unixEpochTo() -> 1492750877</li> <li>$__unixEpochNanoFrom() -> 1494410783152415214</li> <li>$__unixEpochNanoTo() -> 1494497183142514872</li> </ul> </div> ); } function getStyles(theme: GrafanaTheme2) { return { ulPadding: css({ margin: theme.spacing(1, 0), paddingLeft: theme.spacing(5), }), }; }