{"version":3,"file":"PromCheatSheet.cjs","sources":["../../../src/components/PromCheatSheet.tsx"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/components/PromCheatSheet.tsx\nimport { css } from '@emotion/css';\n\nimport { type GrafanaTheme2, type QueryEditorHelpProps } from '@grafana/data';\nimport { Trans } from '@grafana/i18n';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { type PromQuery } from '../types';\n\nconst CHEAT_SHEET_ITEMS = [\n  {\n    title: 'Request Rate',\n    expression: 'rate(http_request_total[5m])',\n    label:\n      'Given an HTTP request counter, this query calculates the per-second average request rate over the last 5 minutes.',\n  },\n  {\n    title: '95th Percentile of Request Latencies',\n    expression: 'histogram_quantile(0.95, sum(rate(prometheus_http_request_duration_seconds_bucket[5m])) by (le))',\n    label: 'Calculates the 95th percentile of HTTP request rate over 5 minute windows.',\n  },\n  {\n    title: 'Alerts Firing',\n    expression: 'sort_desc(sum(sum_over_time(ALERTS{alertstate=\"firing\"}[24h])) by (alertname))',\n    label: 'Sums up the alerts that have been firing over the last 24 hours.',\n  },\n  {\n    title: 'Step',\n    label:\n      'Defines the graph resolution using a duration format (15s, 1m, 3h, ...). Small steps create high-resolution graphs but can be slow over larger time ranges. Using a longer step lowers the resolution and smooths the graph by producing fewer datapoints. If no step is given the resolution is calculated automatically.',\n  },\n];\n\nexport const PromCheatSheet = (props: QueryEditorHelpProps<PromQuery>) => {\n  const styles = useStyles2(getStyles);\n\n  return (\n    <div>\n      <h2>\n        <Trans i18nKey=\"grafana-prometheus.components.prom-cheat-sheet.prom-ql-cheat-sheet\">PromQL Cheat Sheet</Trans>\n      </h2>\n      {CHEAT_SHEET_ITEMS.map((item, index) => (\n        <div className={styles.cheatSheetItem} key={index}>\n          <div className={styles.cheatSheetItemTitle}>{item.title}</div>\n          {item.expression ? (\n            <button\n              type=\"button\"\n              className={styles.cheatSheetExample}\n              onClick={(e) => props.onClickExample({ refId: 'A', expr: item.expression })}\n            >\n              <code>{item.expression}</code>\n            </button>\n          ) : null}\n          {item.label}\n        </div>\n      ))}\n    </div>\n  );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  cheatSheetItem: css({\n    margin: theme.spacing(3, 0),\n  }),\n  cheatSheetItemTitle: css({\n    fontSize: theme.typography.h3.fontSize,\n  }),\n  cheatSheetExample: css({\n    margin: theme.spacing(0.5, 0),\n    // element is interactive, clear button styles\n    textAlign: 'left',\n    border: 'none',\n    background: 'transparent',\n    display: 'block',\n  }),\n});\n"],"names":["useStyles2","jsx","Trans","jsxs","css"],"mappings":";;;;;;;;;;AASA,MAAM,iBAAA,GAAoB;AAAA,EACxB;AAAA,IACE,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,8BAAA;AAAA,IACZ,KAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,sCAAA;AAAA,IACP,UAAA,EAAY,kGAAA;AAAA,IACZ,KAAA,EAAO;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAA,EAAO,eAAA;AAAA,IACP,UAAA,EAAY,gFAAA;AAAA,IACZ,KAAA,EAAO;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAA,EAAO,MAAA;AAAA,IACP,KAAA,EACE;AAAA;AAEN,CAAA;AAEO,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA2C;AACxE,EAAA,MAAM,MAAA,GAASA,cAAW,SAAS,CAAA;AAEnC,EAAA,uCACG,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,QACC,QAAA,kBAAAA,cAAA,CAACC,UAAA,EAAA,EAAM,OAAA,EAAQ,oEAAA,EAAqE,gCAAkB,CAAA,EACxG,CAAA;AAAA,IACC,iBAAA,CAAkB,IAAI,CAAC,IAAA,EAAM,0BAC5BC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,cAAA,EACrB,QAAA,EAAA;AAAA,sBAAAF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,mBAAA,EAAsB,eAAK,KAAA,EAAM,CAAA;AAAA,MACvD,KAAK,UAAA,mBACJA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,WAAW,MAAA,CAAO,iBAAA;AAAA,UAClB,OAAA,EAAS,CAAC,CAAA,KAAM,KAAA,CAAM,cAAA,CAAe,EAAE,KAAA,EAAO,GAAA,EAAK,IAAA,EAAM,IAAA,CAAK,UAAA,EAAY,CAAA;AAAA,UAE1E,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,CAAK,UAAA,EAAW;AAAA;AAAA,OACzB,GACE,IAAA;AAAA,MACH,IAAA,CAAK;AAAA,KAAA,EAAA,EAXoC,KAY5C,CACD;AAAA,GAAA,EACH,CAAA;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAAA,MAA0B;AAAA,EAC3C,gBAAgBG,OAAA,CAAI;AAAA,IAClB,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC;AAAA,GAC3B,CAAA;AAAA,EACD,qBAAqBA,OAAA,CAAI;AAAA,IACvB,QAAA,EAAU,KAAA,CAAM,UAAA,CAAW,EAAA,CAAG;AAAA,GAC/B,CAAA;AAAA,EACD,mBAAmBA,OAAA,CAAI;AAAA,IACrB,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,CAAC,CAAA;AAAA;AAAA,IAE5B,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,MAAA;AAAA,IACR,UAAA,EAAY,aAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACV;AACH,CAAA,CAAA;;;;"}