├── tools └── .gitkeep ├── .gitattributes ├── docs ├── .gitignore ├── sources │ ├── test.md │ ├── shared │ │ ├── index.md │ │ └── example.md │ ├── sharing │ │ └── _index │ ├── developers │ │ └── _index.md │ └── whatsnew │ │ └── _index.md └── logo-horizontal.png ├── public ├── app │ ├── features │ │ ├── profile │ │ │ ├── all.ts │ │ │ └── state │ │ │ │ └── selectors.ts │ │ ├── datasources │ │ │ ├── partials │ │ │ │ ├── http_settings.html │ │ │ │ └── http_settings_next.html │ │ │ └── settings │ │ │ │ └── TlsAuthSettingsCtrl.ts │ │ ├── dashboard │ │ │ ├── components │ │ │ │ ├── ShareModal │ │ │ │ │ ├── ShareSnapshotCtrl.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── DashboardRow │ │ │ │ │ └── index.ts │ │ │ │ ├── PanelEditor │ │ │ │ │ └── index.ts │ │ │ │ ├── DashNav │ │ │ │ │ └── index.ts │ │ │ │ ├── AddPanelWidget │ │ │ │ │ └── index.ts │ │ │ │ ├── DashExportModal │ │ │ │ │ └── index.ts │ │ │ │ ├── DashLinks │ │ │ │ │ └── index.ts │ │ │ │ ├── VersionHistory │ │ │ │ │ └── index.ts │ │ │ │ ├── DashboardSettings │ │ │ │ │ └── index.ts │ │ │ │ ├── Inspector │ │ │ │ │ └── types.ts │ │ │ │ └── TransformationsEditor │ │ │ │ │ └── types.ts │ │ │ └── state │ │ │ │ ├── index.ts │ │ │ │ └── selectors.ts │ │ ├── variables │ │ │ └── pickers │ │ │ │ └── index.ts │ │ ├── panel │ │ │ ├── partials │ │ │ │ └── query_editor_row.html │ │ │ └── all.ts │ │ ├── manage-dashboards │ │ │ ├── components │ │ │ │ └── UploadDashboard │ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── plugins │ │ │ ├── all.ts │ │ │ └── partials │ │ │ │ └── plugin_page.html │ │ ├── playlist │ │ │ └── all.ts │ │ ├── templating │ │ │ └── all.ts │ │ ├── alerting │ │ │ └── __snapshots__ │ │ │ │ └── TestRuleResult.test.tsx.snap │ │ ├── explore │ │ │ └── JSONViewer.tsx │ │ ├── search │ │ │ └── constants.ts │ │ ├── annotations │ │ │ └── all.ts │ │ └── org │ │ │ └── __snapshots__ │ │ │ └── OrgProfile.test.tsx.snap │ ├── core │ │ ├── components │ │ │ ├── search │ │ │ │ └── search_results.ts │ │ │ ├── code_editor │ │ │ │ └── brace.d.ts │ │ │ ├── LocalStorageValueProvider │ │ │ │ └── index.tsx │ │ │ └── sidemenu │ │ │ │ └── utils.ts │ │ ├── app_events.ts │ │ ├── controllers │ │ │ └── all.ts │ │ ├── partials.ts │ │ ├── utils │ │ │ ├── promiseToDigest.ts │ │ │ ├── colors.ts │ │ │ ├── factors.ts │ │ │ ├── applyStateChanges.ts │ │ │ └── model_utils.ts │ │ ├── lodash_extended.ts │ │ ├── specs │ │ │ └── factors.test.ts │ │ ├── services │ │ │ └── all.ts │ │ ├── mod_defs.d.ts │ │ └── hooks │ │ │ └── useRefMounted.ts │ ├── plugins │ │ ├── panel │ │ │ ├── welcome │ │ │ │ ├── README.md │ │ │ │ └── module.ts │ │ │ ├── gettingstarted │ │ │ │ ├── README.md │ │ │ │ └── module.ts │ │ │ ├── singlestat │ │ │ │ └── module.html │ │ │ ├── graph │ │ │ │ ├── graph_tooltip.d.ts │ │ │ │ ├── tab_thresholds.html │ │ │ │ ├── tab_time_regions.html │ │ │ │ ├── types.ts │ │ │ │ └── README.md │ │ │ ├── heatmap │ │ │ │ ├── module.ts │ │ │ │ └── README.md │ │ │ ├── text │ │ │ │ └── types.ts │ │ │ ├── news │ │ │ │ └── constants.ts │ │ │ ├── graph3 │ │ │ │ └── README.md │ │ │ ├── logs │ │ │ │ └── types.ts │ │ │ ├── pluginlist │ │ │ │ └── README.md │ │ │ ├── piechart │ │ │ │ └── types.ts │ │ │ └── annolist │ │ │ │ └── README.md │ │ └── datasource │ │ │ ├── zipkin │ │ │ ├── constants.ts │ │ │ └── utils │ │ │ │ └── transforms.test.ts │ │ │ ├── opentsdb │ │ │ ├── datasource.d.ts │ │ │ ├── img │ │ │ │ └── opentsdb_logo.png │ │ │ ├── README.md │ │ │ └── types.ts │ │ │ ├── cloudwatch │ │ │ ├── datasource.d.ts │ │ │ ├── img │ │ │ │ └── amazon-web-services.png │ │ │ ├── components │ │ │ │ └── __snapshots__ │ │ │ │ │ └── MetricsQueryEditor.test.tsx.snap │ │ │ └── partials │ │ │ │ └── annotations.editor.html │ │ │ ├── grafana-azure-monitor-datasource │ │ │ ├── __mocks__ │ │ │ │ └── sdk.ts │ │ │ └── img │ │ │ │ ├── logo.jpg │ │ │ │ ├── azure_monitor_cpu.png │ │ │ │ ├── azure_monitor_network.png │ │ │ │ ├── config_1_select_type.png │ │ │ │ ├── grafana_cloud_install.png │ │ │ │ ├── grafana_cloud_login.png │ │ │ │ ├── config_4_save_and_test.png │ │ │ │ ├── contoso_loans_grafana_dashboard.png │ │ │ │ ├── config_3_app_insights_api_details.png │ │ │ │ └── config_2_azure_monitor_api_details.png │ │ │ ├── mixed │ │ │ ├── module.ts │ │ │ └── plugin.json │ │ │ ├── graphite │ │ │ └── img │ │ │ │ └── graphite_logo.png │ │ │ ├── loki │ │ │ ├── README.md │ │ │ └── partials │ │ │ │ └── annotations.editor.html │ │ │ ├── mssql │ │ │ └── types.ts │ │ │ ├── dashboard │ │ │ ├── plugin.json │ │ │ ├── README.md │ │ │ ├── module.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ │ ├── grafana │ │ │ ├── plugin.json │ │ │ └── README.md │ │ │ ├── testdata │ │ │ └── components │ │ │ │ └── index.ts │ │ │ ├── cloud-monitoring │ │ │ └── partials │ │ │ │ └── annotations.editor.html │ │ │ ├── mysql │ │ │ └── types.ts │ │ │ └── prometheus │ │ │ └── README.md │ ├── index.ts │ └── types │ │ ├── application.ts │ │ ├── svg.d.ts │ │ ├── templates.ts │ │ ├── sanitize-url.d.ts │ │ ├── angular.ts │ │ ├── organization.ts │ │ └── location.ts ├── sass │ ├── components │ │ ├── _panel_text.scss │ │ ├── _typeahead.scss │ │ ├── _panel_alertlist.scss │ │ └── _page_loader.scss │ ├── fonts.scss │ ├── utils │ │ ├── _angular.scss │ │ └── _validation.scss │ ├── grafana.dark.scss │ ├── grafana.light.scss │ ├── pages │ │ └── _login.scss │ ├── base │ │ └── font-awesome │ │ │ ├── _fixed-width.scss │ │ │ └── _screen-reader.scss │ └── layout │ │ └── _lists.scss ├── robots.txt ├── test │ ├── mocks │ │ ├── svg.ts │ │ ├── monaco.ts │ │ ├── style.ts │ │ └── backend_srv.ts │ ├── setupTests.ts │ └── helpers │ │ └── getDashboardModel.ts ├── img │ ├── load.gif │ ├── cubes.png │ ├── fav32.png │ ├── light.png │ ├── checkbox.png │ ├── envelope.png │ ├── load_big.gif │ ├── mixed_styles.png │ ├── transparent.png │ ├── user_profile.png │ ├── checkbox_white.png │ ├── grafanaconline.png │ ├── mstile-150x150.png │ ├── plugins │ │ ├── oracle.png │ │ ├── datadog.png │ │ ├── dynatrace.png │ │ └── splunk_logo_128.png │ ├── alert_howto_new.png │ ├── apple-touch-icon.png │ ├── background_tease.jpg │ ├── check_radio_sheet.png │ ├── okta_logo_white.png │ ├── page_header_line.png │ ├── rendering_error.png │ ├── rendering_limit.png │ ├── rendering_timeout.png │ ├── angle_gradient_rev.png │ ├── glyphicons-halflings.png │ ├── logo_transparent_200x.png │ ├── logo_transparent_400x.png │ ├── angle_gradient_light_rev.png │ ├── logo_transparent_200x75.png │ ├── glyphicons-halflings-white.png │ ├── rendering_plugin_not_installed.png │ ├── browserconfig.xml │ ├── icons_dark_theme │ │ ├── icon_remove.svg │ │ └── icon_arrow_left.svg │ └── icons_light_theme │ │ ├── icon_arrow_left.svg │ │ └── icon_remove.svg ├── fonts │ ├── FontAwesome.otf │ ├── grafana-icons.eot │ ├── grafana-icons.ttf │ ├── grafana-icons.woff │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── roboto │ │ ├── CWB0XYA8bzo0kSThX0UTuA.woff2 │ │ ├── -2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2 │ │ ├── 1hZf02POANh32k2VkgEoUBTbgVql8nDJpwnrE27mub0.woff2 │ │ ├── Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2 │ │ ├── K23cxWVTrIFD6DJsEVi07RTbgVql8nDJpwnrE27mub0.woff2 │ │ ├── NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0SYE0-AqJ3nfInTTiDXDjU4.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0TTOQ_MqJVwkKsUn0wKzc2I.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0TUj_cnvWIuuBMVgbX098Mw.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0UbcKLIaa1LC45dFaAfauRA.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0Wo_sUJ8uO4YLWRInS22T3Y.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0Y4P5ICox8Kq3LLUNMylGO4.woff2 │ │ ├── OLffGBTaF0XFOW1gnuHF0b6up8jxqWt8HVA3mDhkV_0.woff2 │ │ ├── OpXUqTo0UgQQhGj_SFdLWBTbgVql8nDJpwnrE27mub0.woff2 │ │ ├── RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2 │ │ ├── WxrXJa0C3KdtC7lMafG4dRTbgVql8nDJpwnrE27mub0.woff2 │ │ ├── ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── cDKhRaXnQTOVbaoxwdOr9xTbgVql8nDJpwnrE27mub0.woff2 │ │ ├── ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2 │ │ ├── mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2 │ │ ├── mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── vPcynSL0qHq_6dX7lKVByfesZW2xOQ-xsNqO47m55DA.woff2 │ │ └── vSzulfKSK0LLjjfeaxcREhTbgVql8nDJpwnrE27mub0.woff2 │ └── opensans │ │ ├── 59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2 │ │ ├── DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2 │ │ ├── K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2 │ │ ├── MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2 │ │ ├── RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2 │ │ ├── k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2 │ │ ├── u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2 │ │ ├── xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2 │ │ └── xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2 └── emails │ └── README.md ├── packages ├── grafana-e2e │ ├── CHANGELOG.md │ ├── src │ │ ├── components │ │ │ └── index.ts │ │ ├── typings │ │ │ └── index.ts │ │ ├── support │ │ │ ├── index.ts │ │ │ └── selector.ts │ │ └── flows │ │ │ ├── assertSuccessNotification.ts │ │ │ ├── editPanel.ts │ │ │ ├── saveDashboard.ts │ │ │ └── setDashboardTimeRange.ts │ ├── bin │ │ └── grafana-e2e.js │ ├── api-extractor.json │ ├── .gitignore │ ├── cypress.json │ ├── test │ │ └── cypress │ │ │ ├── integration │ │ │ ├── 0.cli.ts │ │ │ └── 1.api.ts │ │ │ └── tsconfig.json │ ├── tsconfig.build.json │ ├── cypress │ │ ├── fixtures │ │ │ └── example.json │ │ ├── tsconfig.json │ │ └── support │ │ │ └── index.d.ts │ └── index.js ├── grafana-e2e-selectors │ ├── CHANGELOG.md │ ├── src │ │ ├── types │ │ │ └── index.ts │ │ ├── index.ts │ │ └── selectors │ │ │ └── index.ts │ ├── api-extractor.json │ ├── tsconfig.build.json │ ├── README.md │ ├── index.js │ └── tsconfig.json ├── grafana-ui │ ├── src │ │ ├── index.scss │ │ ├── components │ │ │ ├── Button │ │ │ │ └── index.ts │ │ │ ├── Forms │ │ │ │ ├── types.ts │ │ │ │ └── Legacy │ │ │ │ │ ├── Switch │ │ │ │ │ └── Switch.mdx │ │ │ │ │ └── Input │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── Input.test.tsx.snap │ │ │ ├── Slider │ │ │ │ └── _Slider.scss │ │ │ ├── Chart │ │ │ │ └── index.tsx │ │ │ ├── Drawer │ │ │ │ └── _Drawer.scss │ │ │ ├── uPlot │ │ │ │ └── Plot.scss │ │ │ ├── UnitPicker │ │ │ │ └── UnitPicker.mdx │ │ │ ├── Icon │ │ │ │ └── assets │ │ │ │ │ └── types.ts │ │ │ ├── Segment │ │ │ │ ├── types.ts │ │ │ │ └── index.ts │ │ │ ├── SingleStatShared │ │ │ │ └── index.ts │ │ │ ├── Table │ │ │ │ └── Table.mdx │ │ │ ├── FormField │ │ │ │ └── _FormField.scss │ │ │ ├── InputControl.tsx │ │ │ ├── List │ │ │ │ ├── List.tsx │ │ │ │ └── InlineList.tsx │ │ │ ├── Badge │ │ │ │ └── Badge.mdx │ │ │ ├── Monaco │ │ │ │ └── CodeEditor.mdx │ │ │ ├── EmptySearchResult │ │ │ │ └── _EmptySearchResult.scss │ │ │ ├── PanelOptionsGrid │ │ │ │ ├── _PanelOptionsGrid.scss │ │ │ │ └── PanelOptionsGrid.tsx │ │ │ └── Tooltip │ │ │ │ └── __snapshots__ │ │ │ │ └── Tooltip.test.tsx.snap │ │ ├── types │ │ │ ├── size.ts │ │ │ ├── orientation.ts │ │ │ ├── mdx.d.ts │ │ │ ├── theme.ts │ │ │ ├── storybook.ts │ │ │ ├── index.ts │ │ │ └── input.ts │ │ ├── slate-plugins │ │ │ └── slate-prism │ │ │ │ └── TOKEN_MARK.ts │ │ └── utils │ │ │ └── storybook │ │ │ └── useSize.ts │ ├── .storybook │ │ ├── manager-head.html │ │ └── static │ │ │ └── fav32.png │ ├── api-extractor.json │ ├── tsconfig.build.json │ ├── index.js │ └── .eslintrc ├── grafana-runtime │ ├── src │ │ ├── types │ │ │ └── index.ts │ │ ├── measurement │ │ │ └── index.ts │ │ └── services │ │ │ └── index.ts │ ├── CHANGELOG.md │ ├── api-extractor.json │ ├── .eslintrc │ ├── tsconfig.build.json │ ├── index.js │ └── README.md ├── grafana-data │ ├── CHANGELOG.md │ ├── src │ │ ├── valueFormats │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── testdata │ │ │ │ ├── simple.csv │ │ │ │ ├── withHeaders.csv │ │ │ │ └── roundtrip.csv │ │ │ ├── docs.ts │ │ │ └── object.ts │ │ ├── dataframe │ │ │ ├── __snapshots__ │ │ │ │ └── all_types.golden.arrow │ │ │ └── index.ts │ │ ├── types │ │ │ ├── flot.ts │ │ │ ├── ScopedVars.ts │ │ │ ├── orgs.ts │ │ │ ├── select.ts │ │ │ └── templateVars.ts │ │ ├── field │ │ │ └── FieldConfigOptionsRegistry.tsx │ │ ├── text │ │ │ ├── markdown.test.ts │ │ │ └── index.ts │ │ └── vector │ │ │ └── vectorToArray.ts │ ├── api-extractor.json │ ├── tsconfig.build.json │ ├── README.md │ ├── index.js │ └── .eslintrc ├── grafana-toolkit │ ├── src │ │ ├── config │ │ │ ├── mocks │ │ │ │ ├── jestSetup │ │ │ │ │ ├── noOverrides │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── unsupportedOverrides │ │ │ │ │ │ └── package.json │ │ │ │ │ └── overrides │ │ │ │ │ │ └── package.json │ │ │ │ ├── stylesheetsSupport │ │ │ │ │ ├── ok │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── styles │ │ │ │ │ │ │ ├── dark.css │ │ │ │ │ │ │ └── light.css │ │ │ │ │ ├── duplicates │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── styles │ │ │ │ │ │ │ ├── dark.css │ │ │ │ │ │ │ ├── dark.scss │ │ │ │ │ │ │ └── light.css │ │ │ │ │ ├── missing-theme-file │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── styles │ │ │ │ │ │ │ └── light.css │ │ │ │ │ └── no-theme-files │ │ │ │ │ │ └── src │ │ │ │ │ │ └── styles │ │ │ │ │ │ └── whatever.css │ │ │ │ └── webpack │ │ │ │ │ ├── noOverride │ │ │ │ │ └── package.json │ │ │ │ │ ├── overrides │ │ │ │ │ └── package.json │ │ │ │ │ ├── overridesNamedExport │ │ │ │ │ ├── package.json │ │ │ │ │ └── webpack.config.js │ │ │ │ │ └── unsupportedOverride │ │ │ │ │ ├── package.json │ │ │ │ │ └── webpack.config.js │ │ │ ├── eslint.plugin.json │ │ │ ├── index.ts │ │ │ ├── prettier.plugin.config.json │ │ │ ├── prettier.plugin.rc.js │ │ │ ├── tsconfig.plugin.json │ │ │ ├── styles.mock.js │ │ │ ├── tsconfig.plugin.local.json │ │ │ └── utils │ │ │ │ └── getPluginId.ts │ │ ├── cli │ │ │ ├── index.d.ts │ │ │ ├── tasks │ │ │ │ ├── plugin │ │ │ │ │ └── test_exclude_image_suffix_in_manifest.png │ │ │ │ └── template.ts │ │ │ ├── utils │ │ │ │ └── pascalCase.ts │ │ │ ├── tsconfig.json │ │ │ └── templates │ │ │ │ ├── index.ts │ │ │ │ ├── component.tsx.template.ts │ │ │ │ └── component.test.tsx.template.ts │ │ └── plugins │ │ │ └── index.ts │ └── docker │ │ ├── grafana-plugin-ci │ │ ├── scripts │ │ │ └── deploy-user.sh │ │ ├── common.sh │ │ ├── build.sh │ │ ├── Dockerfile │ │ └── test │ │ │ └── start.sh │ │ ├── grafana-plugin-ci-alpine │ │ ├── scripts │ │ │ └── deploy-user.sh │ │ ├── common.sh │ │ ├── install │ │ │ └── bin │ │ │ │ └── cp │ │ └── Dockerfile │ │ └── grafana-plugin-ci-e2e │ │ ├── scripts │ │ └── deploy-user.sh │ │ ├── Dockerfile │ │ └── common.sh └── jaeger-ui-components │ └── src │ ├── demo │ └── .eslintrc │ ├── utils │ └── DraggableManager │ │ └── demo │ │ └── demo-ux.gif │ └── common │ └── __snapshots__ │ ├── NewWindowIcon.test.js.snap │ └── UiFindInput.test.js.snap ├── devenv ├── docker │ ├── blocks │ │ ├── mysql │ │ │ ├── .env │ │ │ └── config │ │ ├── apache_proxy │ │ │ ├── ports.conf │ │ │ ├── Dockerfile │ │ │ └── proxy.conf │ │ ├── apache_proxy_mac │ │ │ ├── ports.conf │ │ │ ├── Dockerfile │ │ │ └── proxy.conf │ │ ├── grafana │ │ │ └── .env │ │ ├── postgres │ │ │ └── .env │ │ ├── influxdb │ │ │ └── .env │ │ ├── elastic │ │ │ └── elasticsearch.yml │ │ ├── elastic1 │ │ │ ├── elasticsearch.yml │ │ │ └── docker-compose.yaml │ │ ├── elastic5 │ │ │ └── elasticsearch.yml │ │ ├── elastic6 │ │ │ └── elasticsearch.yml │ │ ├── elastic7 │ │ │ └── elasticsearch.yml │ │ ├── graphite │ │ │ └── files │ │ │ │ ├── my_htpasswd │ │ │ │ ├── statsd_config.js │ │ │ │ └── storage-schemas.conf │ │ ├── prometheus_basic_auth_proxy │ │ │ ├── htpasswd │ │ │ ├── Dockerfile │ │ │ └── docker-compose.yaml │ │ ├── collectd │ │ │ ├── etc_mtab │ │ │ ├── start_container │ │ │ └── docker-compose.yaml │ │ ├── smtp │ │ │ ├── docker-compose.yaml │ │ │ └── Dockerfile │ │ ├── mysql_tests │ │ │ ├── Dockerfile │ │ │ └── setup.sql │ │ ├── redis │ │ │ └── docker-compose.yaml │ │ ├── mssql │ │ │ └── build │ │ │ │ ├── entrypoint.sh │ │ │ │ └── Dockerfile │ │ ├── postgres_tests │ │ │ ├── Dockerfile │ │ │ ├── setup.sql │ │ │ └── docker-compose.yaml │ │ ├── memcached │ │ │ └── docker-compose.yaml │ │ ├── prometheus │ │ │ ├── Dockerfile │ │ │ └── alert.rules │ │ ├── graphite1 │ │ │ └── conf │ │ │ │ ├── etc │ │ │ │ ├── service │ │ │ │ │ ├── nginx │ │ │ │ │ │ └── run │ │ │ │ │ ├── statsd │ │ │ │ │ │ └── run │ │ │ │ │ ├── carbon │ │ │ │ │ │ └── run │ │ │ │ │ ├── carbon-aggregator │ │ │ │ │ │ └── run │ │ │ │ │ └── graphite │ │ │ │ │ │ └── run │ │ │ │ └── logrotate.d │ │ │ │ │ └── graphite-statsd │ │ │ │ ├── opt │ │ │ │ ├── statsd │ │ │ │ │ └── config.js │ │ │ │ └── graphite │ │ │ │ │ └── conf │ │ │ │ │ └── blacklist.conf │ │ │ │ └── usr │ │ │ │ └── local │ │ │ │ └── bin │ │ │ │ └── manage.sh │ │ ├── nginx_proxy │ │ │ ├── Dockerfile │ │ │ └── htpasswd │ │ ├── nginx_proxy_mac │ │ │ ├── Dockerfile │ │ │ └── htpasswd │ │ ├── slow_proxy │ │ │ ├── Dockerfile │ │ │ └── docker-compose.yaml │ │ ├── slow_proxy_mac │ │ │ ├── Dockerfile │ │ │ └── docker-compose.yaml │ │ ├── alert_webhook_listener │ │ │ ├── Dockerfile │ │ │ └── docker-compose.yaml │ │ ├── prometheus2 │ │ │ ├── Dockerfile │ │ │ └── alert.yml │ │ ├── openldap │ │ │ ├── prepopulate │ │ │ │ └── 1_units.ldif │ │ │ └── docker-compose.yaml │ │ ├── multiple-openldap │ │ │ ├── admins-ldap-server │ │ │ │ └── prepopulate │ │ │ │ │ ├── 3_groups.ldif │ │ │ │ │ └── 1_units.ldif │ │ │ └── ldap-server │ │ │ │ └── prepopulate │ │ │ │ └── 1_units.ldif │ │ ├── zipkin │ │ │ └── docker-compose.yaml │ │ ├── opentsdb │ │ │ └── docker-compose.yaml │ │ ├── mysql_opendata │ │ │ └── docker-compose.yaml │ │ └── traefik │ │ │ └── traefik.yml │ ├── compose_header.yml │ ├── ha_test │ │ └── .gitignore │ ├── debtest │ │ ├── Dockerfile │ │ └── build.sh │ ├── buildcontainer │ │ ├── run_circle.sh │ │ └── build.sh │ └── rpmtest │ │ └── build.sh ├── local-npm │ └── conf │ │ └── nginx │ │ └── Dockerfile ├── e2e-api-tests │ └── clearState.test.ts ├── benchmarks │ └── ab │ │ └── ab_test.sh ├── bulk-dashboards │ └── bulk-dashboards.yaml ├── bulk_alerting_dashboards │ └── bulk_alerting_dashboards.yaml └── dashboards.yaml ├── pkg ├── services │ ├── alerting │ │ └── testdata │ │ │ └── settings │ │ │ └── empty.json │ ├── sqlstore │ │ ├── sqlstore.goconvey │ │ └── tables.go │ ├── provisioning │ │ ├── datasources │ │ │ └── testdata │ │ │ │ ├── all-properties │ │ │ │ ├── not.yaml.txt │ │ │ │ └── second.yaml │ │ │ │ ├── zero-datasources │ │ │ │ └── placeholder-for-git │ │ │ │ ├── broken-yaml │ │ │ │ └── broken.yaml │ │ │ │ ├── appliedDefaults │ │ │ │ └── without-defaults.yaml │ │ │ │ ├── invalid-access │ │ │ │ └── invalid-access.yaml │ │ │ │ ├── double-default │ │ │ │ ├── default-1.yaml │ │ │ │ └── default-2.yaml │ │ │ │ ├── insert-two-delete-two │ │ │ │ ├── two-datasources.yml │ │ │ │ └── one-datasources.yaml │ │ │ │ └── two-datasources │ │ │ │ └── two-datasources.yaml │ │ ├── notifiers │ │ │ └── testdata │ │ │ │ └── test-configs │ │ │ │ ├── empty │ │ │ │ └── empty.yaml │ │ │ │ ├── broken-yaml │ │ │ │ ├── not.yaml.text │ │ │ │ └── broken.yaml │ │ │ │ ├── empty_folder │ │ │ │ └── .gitignore │ │ │ │ ├── unknown-notifier │ │ │ │ └── notification.yaml │ │ │ │ ├── double-default │ │ │ │ ├── default-1.yml │ │ │ │ └── default-2.yaml │ │ │ │ └── incorrect-settings │ │ │ │ └── incorrect-settings.yaml │ │ ├── dashboards │ │ │ └── testdata │ │ │ │ ├── test-dashboards │ │ │ │ ├── symlink │ │ │ │ └── broken-dashboards │ │ │ │ │ ├── empty-json.json │ │ │ │ │ └── invalid.json │ │ │ │ └── test-configs │ │ │ │ ├── applied-defaults │ │ │ │ └── dev-dashboards.yaml │ │ │ │ ├── broken-configs │ │ │ │ └── commented.yaml │ │ │ │ └── dashboards-from-disk │ │ │ │ └── sample.yaml │ │ └── plugins │ │ │ └── testdata │ │ │ └── test-configs │ │ │ ├── unknown-app │ │ │ └── unknown-app.yaml │ │ │ ├── broken-yaml │ │ │ ├── not.yaml.text │ │ │ └── broken.yaml │ │ │ ├── incorrect-settings │ │ │ └── incorrect-settings.yaml │ │ │ ├── empty_folder │ │ │ └── .gitignore │ │ │ └── correct-properties │ │ │ └── correct-properties.yaml │ ├── datasources │ │ └── log.go │ └── login │ │ └── errors.go ├── setting │ └── testdata │ │ ├── session.ini │ │ ├── override.ini │ │ ├── override_windows.ini │ │ └── invalid.ini ├── models │ ├── health.go │ ├── saml.go │ ├── models.go │ ├── home_dashboard.go │ ├── address.go │ └── search.go ├── plugins │ └── testdata │ │ ├── invalid-signature │ │ └── plugin │ │ │ ├── MANIFEST.txt │ │ │ └── plugin.json │ │ ├── test-app │ │ └── dashboards │ │ │ └── memory.json │ │ ├── unsigned │ │ └── plugin │ │ │ └── plugin.json │ │ ├── behind-feature-flag │ │ └── gel │ │ │ └── plugin.json │ │ └── lacking-files │ │ └── plugin │ │ └── plugin.json ├── util │ ├── json.go │ ├── math.go │ ├── shortid_generator_test.go │ └── split_email.go ├── cmd │ └── grafana-cli │ │ └── commands │ │ └── testdata │ │ ├── plugin-with-symlink.zip │ │ └── grafana-simple-json-datasource-ec18fa4da8096a952608a7e4c7782b4260b41bcf.zip ├── api │ └── dtos │ │ ├── apikey.go │ │ ├── short_url.go │ │ ├── ngalert.go │ │ └── stream.go ├── infra │ ├── log │ │ └── handlers.go │ └── serverlock │ │ └── model.go ├── tsdb │ ├── influxdb │ │ └── flux │ │ │ └── testdata │ │ │ ├── single.csv │ │ │ └── non_standard_time_column.csv │ ├── azuremonitor │ │ └── testdata │ │ │ └── applicationinsights │ │ │ └── 5-application-insights-empty-response.json │ ├── graphite │ │ └── types.go │ └── prometheus │ │ └── types.go └── middleware │ └── perf.go ├── scripts ├── build │ ├── ci-build │ │ ├── .gitignore │ │ ├── bootstrap.sh │ │ └── build-deploy.sh │ ├── release_publisher │ │ └── testdata │ │ │ ├── grafana-enterprise_5.4.0-123pre1_amd64.deb │ │ │ ├── grafana-enterprise-5.4.0-123pre1.x86_64.rpm │ │ │ ├── grafana-enterprise-5.4.0-123pre1.linux-amd64.tar.gz │ │ │ ├── grafana-enterprise-5.4.0-123pre1.windows-amd64.msi │ │ │ ├── grafana-enterprise-5.4.0-123pre1.windows-amd64.zip │ │ │ ├── grafana-enterprise-5.4.0-123pre1.x86_64.rpm.sha256 │ │ │ ├── grafana-enterprise_5.4.0-123pre1_amd64.deb.sha256 │ │ │ ├── grafana-enterprise-5.4.0-123pre1.linux-amd64.tar.gz.sha256 │ │ │ ├── grafana-enterprise-5.4.0-123pre1.windows-amd64.msi.sha256 │ │ │ └── grafana-enterprise-5.4.0-123pre1.windows-amd64.zip.sha256 │ ├── ci-msi-build │ │ ├── msigenerator │ │ │ ├── wrapper.sh │ │ │ ├── requirements.txt │ │ │ ├── Makefile │ │ │ ├── cache │ │ │ │ └── nssm-2.24.zip │ │ │ └── resources │ │ │ │ └── images │ │ │ │ ├── grafana_icon.ico │ │ │ │ ├── grafana_top_banner.bmp │ │ │ │ ├── grafana_top_banner.png │ │ │ │ ├── grafana_dialog_background.bmp │ │ │ │ ├── grafana_dialog_background.png │ │ │ │ └── grafana_top_banner_white.bmp │ │ └── testbuild.sh │ ├── prepare_signing_key.sh │ ├── update_repo │ │ ├── test-publish-rpm-repo.sh │ │ ├── test-publish-deb-repo.sh │ │ ├── load-signing-key.sh │ │ ├── test-update-rpm-repo.sh │ │ ├── test-update-deb-repo.sh │ │ ├── unlock-gpg-key.sh │ │ └── sign-rpm-repo.sh │ ├── ci-deploy │ │ └── build-deploy.sh │ ├── rpmmacros │ ├── ci-build-windows │ │ └── README.md │ └── ci-wix │ │ └── README.md ├── verify-repo-update │ ├── deb-oss-beta.list │ ├── deb-oss-stable.list │ ├── deb-ee-beta.list │ ├── deb-ee-stable.list │ ├── Dockerfile.rpm │ ├── rpm-oss-stable.list │ ├── rpm-ee-stable.list │ ├── rpm-oss-beta.list │ └── rpm-ee-beta.list ├── cli │ └── tsconfig.json ├── ci-job-started.sh ├── go │ └── tools.go ├── mixin-check.sh ├── grunt │ ├── build_task.js │ └── options │ │ ├── clean.js │ │ ├── sasslint.js │ │ └── webpack.js ├── webpack │ ├── postcss.config.js │ └── loaders │ │ └── blobUrl.js ├── version.star ├── circle-test-mysql.sh ├── circle-test-postgres.sh ├── helpers │ └── exit-if-fail.sh └── trigger_grafana_packer.sh ├── grafana-mixin ├── .gitignore ├── scripts │ ├── common.sh │ ├── build.sh │ ├── format.sh │ └── lint.sh ├── Makefile └── rules │ └── rules.yaml ├── latest.json ├── .browserslistrc ├── .eslintignore ├── e2e ├── verify-release ├── suite1 │ ├── screenshots │ │ ├── expected │ │ │ └── bar-gauge-gradient.png │ │ └── bar-gauge.spec.ts │ │ │ ├── bar-gauge-gradient.png │ │ │ └── bar-gauge-gradient (1).png │ ├── specs │ │ └── 1-smoketests.spec.ts │ └── tsconfig.json ├── verify │ ├── specs │ │ └── smoketests.spec.ts │ └── tsconfig.json ├── kill-server ├── variables ├── wait-for-grafana └── start-and-run-suite ├── emails ├── grunt │ ├── clean.js │ ├── aliases.yaml │ ├── uncss.js │ ├── replace.js │ └── watch.js └── gruntfile.js ├── .prettierrc.js ├── .prettierignore ├── NOTICE.md ├── lerna.json ├── plugins-bundled ├── .gitignore ├── external.json ├── internal │ └── input-datasource │ │ ├── README.md │ │ ├── src │ │ └── utils.ts │ │ └── tsconfig.json └── README.md ├── .github └── ISSUE_TEMPLATE │ ├── config.yml │ └── 2-feature_request.md ├── MAINTAINERS.md ├── .dockerignore ├── conf └── provisioning │ ├── dashboards │ └── sample.yaml │ └── plugins │ └── sample.yaml ├── .babelrc ├── ROADMAP.md └── .eslintrc /tools/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | data/menu.yaml -------------------------------------------------------------------------------- /public/app/features/profile/all.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-e2e/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/sass/components/_panel_text.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-e2e/src/components/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/sass/fonts.scss: -------------------------------------------------------------------------------- 1 | @import 'base/fonts'; 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mysql/.env: -------------------------------------------------------------------------------- 1 | mysql_version=5.6 2 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /pkg/services/alerting/testdata/settings/empty.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /public/app/core/components/search/search_results.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /scripts/build/ci-build/.gitignore: -------------------------------------------------------------------------------- 1 | MacOSX*.tar.xz 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy/ports.conf: -------------------------------------------------------------------------------- 1 | Listen 10081 -------------------------------------------------------------------------------- /docs/sources/test.md: -------------------------------------------------------------------------------- 1 | 2 | # Test 3 | 4 | ## Google 5 | -------------------------------------------------------------------------------- /pkg/services/sqlstore/sqlstore.goconvey: -------------------------------------------------------------------------------- 1 | -timeout=20s 2 | -------------------------------------------------------------------------------- /public/test/mocks/svg.ts: -------------------------------------------------------------------------------- 1 | export const svg = 'svg'; 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy_mac/ports.conf: -------------------------------------------------------------------------------- 1 | Listen 10081 -------------------------------------------------------------------------------- /devenv/docker/blocks/grafana/.env: -------------------------------------------------------------------------------- 1 | grafana_version=6.6.2 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/postgres/.env: -------------------------------------------------------------------------------- 1 | postgres_version=9.3 2 | -------------------------------------------------------------------------------- /public/app/features/datasources/partials/http_settings.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/test/mocks/monaco.ts: -------------------------------------------------------------------------------- 1 | export const monaco = 'monaco'; 2 | -------------------------------------------------------------------------------- /public/test/mocks/style.ts: -------------------------------------------------------------------------------- 1 | export const style = 'style'; 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/influxdb/.env: -------------------------------------------------------------------------------- 1 | influxdb_version=1.8.1-alpine 2 | -------------------------------------------------------------------------------- /devenv/docker/compose_header.yml: -------------------------------------------------------------------------------- 1 | version: "2.1" 2 | services: 3 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/index.scss: -------------------------------------------------------------------------------- 1 | @import 'components/index'; 2 | -------------------------------------------------------------------------------- /pkg/setting/testdata/session.ini: -------------------------------------------------------------------------------- 1 | [session] 2 | provider = file 3 | -------------------------------------------------------------------------------- /public/test/setupTests.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /grafana-mixin/.gitignore: -------------------------------------------------------------------------------- 1 | /alerts.yaml 2 | /rules.yaml 3 | dashboards_out -------------------------------------------------------------------------------- /latest.json: -------------------------------------------------------------------------------- 1 | { 2 | "stable": "7.3.1", 3 | "testing": "7.3.1" 4 | } 5 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/ShareModal/ShareSnapshotCtrl.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | >1%, 2 | Chrome > 20 3 | last 4 versions, 4 | Firefox ESR 5 | -------------------------------------------------------------------------------- /devenv/docker/ha_test/.gitignore: -------------------------------------------------------------------------------- 1 | grafana/provisioning/dashboards/alerts/alert-* -------------------------------------------------------------------------------- /packages/grafana-e2e/src/typings/index.ts: -------------------------------------------------------------------------------- 1 | export { undo } from './undo'; 2 | -------------------------------------------------------------------------------- /packages/grafana-runtime/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './analytics'; 2 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/all-properties/not.yaml.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/empty/empty.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pkg/setting/testdata/override.ini: -------------------------------------------------------------------------------- 1 | [paths] 2 | data = /tmp/override 3 | 4 | -------------------------------------------------------------------------------- /docs/sources/shared/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | headless: true 3 | --- 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/grafana-data/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # (2019-07-08) 2 | First public release 3 | 4 | -------------------------------------------------------------------------------- /packages/grafana-data/src/valueFormats/index.ts: -------------------------------------------------------------------------------- 1 | export * from './valueFormats'; 2 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './selectors'; 2 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/jestSetup/noOverrides/package.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/ok/src/styles/dark.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Button/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Button'; 2 | -------------------------------------------------------------------------------- /pkg/models/health.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | type GetDBHealthQuery struct{} 4 | -------------------------------------------------------------------------------- /pkg/plugins/testdata/invalid-signature/plugin/MANIFEST.txt: -------------------------------------------------------------------------------- 1 | Invalid manifest 2 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-dashboards/symlink: -------------------------------------------------------------------------------- 1 | containing-id/ -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/zero-datasources/placeholder-for-git: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise_5.4.0-123pre1_amd64.deb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-data/src/utils/testdata/simple.csv: -------------------------------------------------------------------------------- 1 | a,b,c 2 | 10,20,30 3 | 40,50,60 4 | -------------------------------------------------------------------------------- /packages/grafana-runtime/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # (2019-07-08) 2 | First public release 3 | 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/ok/src/styles/light.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pkg/setting/testdata/override_windows.ini: -------------------------------------------------------------------------------- 1 | [paths] 2 | data = c:\tmp\override 3 | 4 | -------------------------------------------------------------------------------- /public/app/plugins/panel/welcome/README.md: -------------------------------------------------------------------------------- 1 | # Plugin List Panel - Native Plugin 2 | 3 | -------------------------------------------------------------------------------- /public/img/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/load.gif -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.x86_64.rpm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | compiled 3 | build 4 | vendor 5 | devenv 6 | data 7 | dist 8 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.inline: on 2 | script.indexed: on 3 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic1/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.inline: on 2 | script.indexed: on 3 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic5/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.inline: on 2 | script.indexed: on 3 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic6/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.inline: on 2 | script.indexed: on 3 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic7/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.inline: on 2 | script.indexed: on 3 | -------------------------------------------------------------------------------- /packages/grafana-e2e/bin/grafana-e2e.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../cli')(); 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/duplicates/src/styles/dark.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/duplicates/src/styles/dark.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/duplicates/src/styles/light.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-ui/.storybook/manager-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/app/index.ts: -------------------------------------------------------------------------------- 1 | import app from './app'; 2 | 3 | app.initEchoSrv(); 4 | app.init(); 5 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/zipkin/constants.ts: -------------------------------------------------------------------------------- 1 | export const apiPrefix = '/api/v2'; 2 | -------------------------------------------------------------------------------- /public/img/cubes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/cubes.png -------------------------------------------------------------------------------- /public/img/fav32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/fav32.png -------------------------------------------------------------------------------- /public/img/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/light.png -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.linux-amd64.tar.gz: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.windows-amd64.msi: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.windows-amd64.zip: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite/files/my_htpasswd: -------------------------------------------------------------------------------- 1 | grafana:$apr1$4R/20xhC$8t37jPP5dbcLr48btdkU// 2 | -------------------------------------------------------------------------------- /docs/logo-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/docs/logo-horizontal.png -------------------------------------------------------------------------------- /e2e/verify-release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . e2e/variables 4 | 5 | SUITE=verify ./e2e/run-suite 6 | -------------------------------------------------------------------------------- /packages/grafana-data/api-extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../api-extractor.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-e2e/api-extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../api-extractor.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-ui/api-extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../api-extractor.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/size.ts: -------------------------------------------------------------------------------- 1 | export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg'; 2 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-dashboards/broken-dashboards/empty-json.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/app/plugins/panel/gettingstarted/README.md: -------------------------------------------------------------------------------- 1 | # Plugin List Panel - Native Plugin 2 | 3 | -------------------------------------------------------------------------------- /public/app/plugins/panel/singlestat/module.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /public/img/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/checkbox.png -------------------------------------------------------------------------------- /public/img/envelope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/envelope.png -------------------------------------------------------------------------------- /public/img/load_big.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/load_big.gif -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/wrapper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd /oss || exit 1 3 | make 4 | -------------------------------------------------------------------------------- /packages/grafana-runtime/api-extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../api-extractor.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/index.d.ts: -------------------------------------------------------------------------------- 1 | export type Task = (options: T) => Promise; 2 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/missing-theme-file/src/styles/light.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/stylesheetsSupport/no-theme-files/src/styles/whatever.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/orientation.ts: -------------------------------------------------------------------------------- 1 | export type Orientation = 'horizontal' | 'vertical'; 2 | -------------------------------------------------------------------------------- /public/img/mixed_styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/mixed_styles.png -------------------------------------------------------------------------------- /public/img/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/transparent.png -------------------------------------------------------------------------------- /public/img/user_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/user_profile.png -------------------------------------------------------------------------------- /scripts/verify-repo-update/deb-oss-beta.list: -------------------------------------------------------------------------------- 1 | deb https://packages.grafana.com/oss/deb beta main 2 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/deb-oss-stable.list: -------------------------------------------------------------------------------- 1 | deb https://packages.grafana.com/oss/deb stable main 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus_basic_auth_proxy/htpasswd: -------------------------------------------------------------------------------- 1 | prom:$apr1$bfu32njz$HHDDTjaeWHDzQs2UMXP.C1 2 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/api-extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../api-extractor.json" 3 | } 4 | -------------------------------------------------------------------------------- /pkg/models/saml.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | type IsSAMLEnabledCommand struct { 4 | Result bool 5 | } 6 | -------------------------------------------------------------------------------- /public/app/types/application.ts: -------------------------------------------------------------------------------- 1 | export interface ApplicationState { 2 | logActions: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /public/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/img/checkbox_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/checkbox_white.png -------------------------------------------------------------------------------- /public/img/grafanaconline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/grafanaconline.png -------------------------------------------------------------------------------- /public/img/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/mstile-150x150.png -------------------------------------------------------------------------------- /public/img/plugins/oracle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/plugins/oracle.png -------------------------------------------------------------------------------- /scripts/verify-repo-update/deb-ee-beta.list: -------------------------------------------------------------------------------- 1 | deb https://packages.grafana.com/enterprise/deb beta main 2 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/eslint.plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@grafana/eslint-config"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Forms/types.ts: -------------------------------------------------------------------------------- 1 | export type FormInputSize = 'sm' | 'md' | 'lg' | 'auto'; 2 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/DashboardRow/index.ts: -------------------------------------------------------------------------------- 1 | export { DashboardRow } from './DashboardRow'; 2 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/PanelEditor/index.ts: -------------------------------------------------------------------------------- 1 | export { PanelEditor } from './PanelEditor'; 2 | -------------------------------------------------------------------------------- /public/app/features/variables/pickers/index.ts: -------------------------------------------------------------------------------- 1 | export { OptionsPicker } from './OptionsPicker/OptionsPicker'; 2 | -------------------------------------------------------------------------------- /public/fonts/grafana-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/grafana-icons.eot -------------------------------------------------------------------------------- /public/fonts/grafana-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/grafana-icons.ttf -------------------------------------------------------------------------------- /public/fonts/grafana-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/grafana-icons.woff -------------------------------------------------------------------------------- /public/img/alert_howto_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/alert_howto_new.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/apple-touch-icon.png -------------------------------------------------------------------------------- /public/img/background_tease.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/background_tease.jpg -------------------------------------------------------------------------------- /public/img/check_radio_sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/check_radio_sheet.png -------------------------------------------------------------------------------- /public/img/okta_logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/okta_logo_white.png -------------------------------------------------------------------------------- /public/img/page_header_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/page_header_line.png -------------------------------------------------------------------------------- /public/img/plugins/datadog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/plugins/datadog.png -------------------------------------------------------------------------------- /public/img/plugins/dynatrace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/plugins/dynatrace.png -------------------------------------------------------------------------------- /public/img/rendering_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/rendering_error.png -------------------------------------------------------------------------------- /public/img/rendering_limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/rendering_limit.png -------------------------------------------------------------------------------- /public/img/rendering_timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/rendering_timeout.png -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/requirements.txt: -------------------------------------------------------------------------------- 1 | Jinja2>=2.10 2 | MarkupSafe>=1.1.0 3 | wget>=3.2 4 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/deb-ee-stable.list: -------------------------------------------------------------------------------- 1 | deb https://packages.grafana.com/enterprise/deb stable main 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/collectd/etc_mtab: -------------------------------------------------------------------------------- 1 | hostfs /.dockerinit ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0 2 | -------------------------------------------------------------------------------- /emails/grunt/clean.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | dist: ['dist'], 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/noOverride/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "Testversion" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/overrides/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "Testversion" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Slider/_Slider.scss: -------------------------------------------------------------------------------- 1 | @import '../../node_modules/rc-slider/assets/index.css'; 2 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/DashNav/index.ts: -------------------------------------------------------------------------------- 1 | import DashNav from './DashNav'; 2 | export { DashNav }; 3 | -------------------------------------------------------------------------------- /public/app/plugins/panel/graph/graph_tooltip.d.ts: -------------------------------------------------------------------------------- 1 | declare var GraphTooltip: any; 2 | export default GraphTooltip; 3 | -------------------------------------------------------------------------------- /public/app/plugins/panel/graph/tab_thresholds.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/img/angle_gradient_rev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/angle_gradient_rev.png -------------------------------------------------------------------------------- /public/sass/utils/_angular.scss: -------------------------------------------------------------------------------- 1 | [ng\:cloak], 2 | [ng-cloak], 3 | .ng-cloak { 4 | display: none !important; 5 | } 6 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('@grafana/toolkit/src/config/prettier.plugin.config.json'), 3 | }; 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/smtp/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | snmpd: 2 | image: namshi/smtp 3 | ports: 4 | - "25:25" 5 | -------------------------------------------------------------------------------- /grafana-mixin/scripts/common.sh: -------------------------------------------------------------------------------- 1 | JSONNET_FMT="jsonnetfmt -n 2 --max-blank-lines 2 --string-style s --comment-style s" 2 | -------------------------------------------------------------------------------- /packages/grafana-e2e/.gitignore: -------------------------------------------------------------------------------- 1 | test/cypress/report.json 2 | test/cypress/screenshots/actual 3 | test/cypress/videos/ 4 | -------------------------------------------------------------------------------- /packages/grafana-e2e/cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "zb7k1c", 3 | "supportFile": "cypress/support/index.ts" 4 | } 5 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Forms/Legacy/Switch/Switch.mdx: -------------------------------------------------------------------------------- 1 | # Switch 2 | 3 | A basic docs for Switch component 4 | -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/unknown-app/unknown-app.yaml: -------------------------------------------------------------------------------- 1 | apps: 2 | - type: nonexisting 3 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/AddPanelWidget/index.ts: -------------------------------------------------------------------------------- 1 | export { AddPanelWidget } from './AddPanelWidget'; 2 | -------------------------------------------------------------------------------- /public/app/features/panel/partials/query_editor_row.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | -------------------------------------------------------------------------------- /public/app/types/svg.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | const content: string; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /public/img/logo_transparent_200x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/logo_transparent_200x.png -------------------------------------------------------------------------------- /public/img/logo_transparent_400x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/logo_transparent_400x.png -------------------------------------------------------------------------------- /public/test/mocks/backend_srv.ts: -------------------------------------------------------------------------------- 1 | export class BackendSrvMock { 2 | search: any; 3 | 4 | constructor() {} 5 | } 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mysql_tests/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mysql:5.6 2 | ADD setup.sql /docker-entrypoint-initdb.d 3 | CMD ["mysqld"] 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci/scripts/deploy-user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "./deploy-common.sh" 3 | 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/overridesNamedExport/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "Testversion" 3 | } 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/unsupportedOverride/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "Testversion" 3 | } 4 | -------------------------------------------------------------------------------- /pkg/util/json.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | // DynMap defines a dynamic map interface. 4 | type DynMap map[string]interface{} 5 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/DashExportModal/index.ts: -------------------------------------------------------------------------------- 1 | export { DashboardExporter } from './DashboardExporter'; 2 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/DashLinks/index.ts: -------------------------------------------------------------------------------- 1 | export { DashLinksEditorCtrl } from './DashLinksEditorCtrl'; 2 | -------------------------------------------------------------------------------- /public/app/plugins/panel/graph/tab_time_regions.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/app/types/templates.ts: -------------------------------------------------------------------------------- 1 | export interface Variable { 2 | name: string; 3 | type: string; 4 | current: any; 5 | } 6 | -------------------------------------------------------------------------------- /public/emails/README.md: -------------------------------------------------------------------------------- 1 | 2 | html files in this folder are generated from templates and build system in repo_root/emails 3 | -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/img/angle_gradient_light_rev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/angle_gradient_light_rev.png -------------------------------------------------------------------------------- /public/img/logo_transparent_200x75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/logo_transparent_200x75.png -------------------------------------------------------------------------------- /public/img/plugins/splunk_logo_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/plugins/splunk_logo_128.png -------------------------------------------------------------------------------- /public/sass/grafana.dark.scss: -------------------------------------------------------------------------------- 1 | @import 'variables.generated'; 2 | @import 'variables.dark.generated'; 3 | @import 'grafana'; 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/collectd/start_container: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | envtpl /etc/collectd/collectd.conf.tpl 4 | 5 | collectd -f 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/redis/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | redis: 2 | image: redis:latest 3 | ports: 4 | - "6379:6379" 5 | 6 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-alpine/scripts/deploy-user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | source "./deploy-common.sh" 3 | 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-e2e/scripts/deploy-user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "./deploy-common.sh" 3 | 4 | -------------------------------------------------------------------------------- /packages/jaeger-ui-components/src/demo/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "import/no-extraneous-dependencies": 0 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/broken-yaml/broken.yaml: -------------------------------------------------------------------------------- 1 | #sfxzgnsxzcvnbzcvn 2 | cvbn 3 | cvbn 4 | c 5 | vbn 6 | cvbncvbn -------------------------------------------------------------------------------- /public/app/plugins/datasource/opentsdb/datasource.d.ts: -------------------------------------------------------------------------------- 1 | declare var OpenTsDatasource: any; 2 | export default OpenTsDatasource; 3 | -------------------------------------------------------------------------------- /public/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /public/sass/grafana.light.scss: -------------------------------------------------------------------------------- 1 | @import 'variables.generated'; 2 | @import 'variables.light.generated'; 3 | @import 'grafana'; 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .git 2 | .github 3 | dist/ 4 | pkg/ 5 | node_modules 6 | public/vendor/ 7 | vendor/ 8 | data/ 9 | e2e/tmp 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mssql/build/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #start SQL Server and run setup script 2 | /usr/setup/setup.sh & /opt/mssql/bin/sqlservr -------------------------------------------------------------------------------- /devenv/docker/blocks/postgres_tests/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:9.3 2 | ADD setup.sql /docker-entrypoint-initdb.d 3 | CMD ["postgres"] 4 | -------------------------------------------------------------------------------- /emails/gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | // load grunt config 3 | require('load-grunt-config')(grunt); 4 | }; 5 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/slate-plugins/slate-prism/TOKEN_MARK.ts: -------------------------------------------------------------------------------- 1 | const TOKEN_MARK = 'prism-token'; 2 | 3 | export default TOKEN_MARK; 4 | -------------------------------------------------------------------------------- /public/app/core/components/code_editor/brace.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'brace/*' { 2 | let brace: any; 3 | export default brace; 4 | } 5 | -------------------------------------------------------------------------------- /public/app/types/sanitize-url.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@braintree/sanitize-url' { 2 | function sanitizeUrl(url: string): string; 3 | } 4 | -------------------------------------------------------------------------------- /NOTICE.md: -------------------------------------------------------------------------------- 1 | 2 | Copyright 2014-2018 Grafana Labs 3 | 4 | This software is based on Kibana: 5 | Copyright 2012-2013 Elasticsearch BV 6 | 7 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mysql_tests/setup.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE grafana_ds_tests; 2 | GRANT ALL PRIVILEGES ON grafana_ds_tests.* TO 'grafana'; 3 | -------------------------------------------------------------------------------- /devenv/docker/debtest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | RUN apt-get update && apt-get install -y vim 4 | 5 | ADD *.deb /tmp/ 6 | 7 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "npmClient": "yarn", 3 | "useWorkspaces": true, 4 | "packages": ["packages/*"], 5 | "version": "7.4.0-pre.0" 6 | } 7 | -------------------------------------------------------------------------------- /packages/grafana-runtime/src/measurement/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export * from './collector'; 3 | export * from './query'; 4 | -------------------------------------------------------------------------------- /packages/grafana-ui/.storybook/static/fav32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/packages/grafana-ui/.storybook/static/fav32.png -------------------------------------------------------------------------------- /pkg/plugins/testdata/test-app/dashboards/memory.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Nginx Memory", 3 | "revision": 2, 4 | "schemaVersion": 11 5 | } 6 | -------------------------------------------------------------------------------- /pkg/setting/testdata/invalid.ini: -------------------------------------------------------------------------------- 1 | [server] 2 | root_url = %(protocol)s://%(domain)s:%(port)s/grafana/ 3 | alt_url = https://grafana.com/ 4 | -------------------------------------------------------------------------------- /public/app/core/components/LocalStorageValueProvider/index.tsx: -------------------------------------------------------------------------------- 1 | export { LocalStorageValueProvider } from './LocalStorageValueProvider'; 2 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/cloudwatch/datasource.d.ts: -------------------------------------------------------------------------------- 1 | declare var CloudWatchDatasource: any; 2 | export default CloudWatchDatasource; 3 | -------------------------------------------------------------------------------- /public/img/rendering_plugin_not_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/img/rendering_plugin_not_installed.png -------------------------------------------------------------------------------- /scripts/cli/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs" 4 | }, 5 | "extends": "../../tsconfig.json" 6 | } 7 | -------------------------------------------------------------------------------- /devenv/docker/blocks/memcached/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | memcached: 2 | image: memcached:latest 3 | ports: 4 | - "11211:11211" 5 | 6 | -------------------------------------------------------------------------------- /grafana-mixin/scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | cd "$(dirname "$0")"/.. 5 | 6 | mixtool generate all mixin.libsonnet 7 | -------------------------------------------------------------------------------- /packages/grafana-data/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["dist", "node_modules", "**/*.test.ts*"], 3 | "extends": "./tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /packages/grafana-e2e/test/cypress/integration/0.cli.ts: -------------------------------------------------------------------------------- 1 | describe('CLI', () => { 2 | it('compiles this file and runs it', () => {}); 3 | }); 4 | -------------------------------------------------------------------------------- /packages/grafana-e2e/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["dist", "node_modules", "**/*.test.ts*"], 3 | "extends": "./tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/broken-yaml/not.yaml.text: -------------------------------------------------------------------------------- 1 | #sfxzgnsxzcvnbzcvn 2 | cvbn 3 | cvbn 4 | c 5 | vbn 6 | cvbncvbn -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/broken-yaml/not.yaml.text: -------------------------------------------------------------------------------- 1 | #sfxzgnsxzcvnbzcvn 2 | cvbn 3 | cvbn 4 | c 5 | vbn 6 | cvbncvbn -------------------------------------------------------------------------------- /public/app/features/dashboard/state/index.ts: -------------------------------------------------------------------------------- 1 | export { DashboardModel } from './DashboardModel'; 2 | export { PanelModel } from './PanelModel'; 3 | -------------------------------------------------------------------------------- /public/app/features/manage-dashboards/components/UploadDashboard/index.ts: -------------------------------------------------------------------------------- 1 | export { uploadDashboardDirective } from './uploadDashboardDirective'; 2 | -------------------------------------------------------------------------------- /public/app/types/angular.ts: -------------------------------------------------------------------------------- 1 | import { IScope } from 'angular'; 2 | 3 | export interface Scope extends IScope { 4 | [key: string]: any; 5 | } 6 | -------------------------------------------------------------------------------- /public/fonts/roboto/CWB0XYA8bzo0kSThX0UTuA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/CWB0XYA8bzo0kSThX0UTuA.woff2 -------------------------------------------------------------------------------- /scripts/build/prepare_signing_key.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | git clone --depth 1 git@github.com:torkelo/private.git ~/private-repo 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM prom/prometheus:v1.8.2 2 | ADD prometheus.yml /etc/prometheus/ 3 | ADD alert.rules /etc/prometheus/ 4 | -------------------------------------------------------------------------------- /devenv/local-npm/conf/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tutum/nginx 2 | RUN rm /etc/nginx/sites-enabled/default 3 | ADD sites-enabled /etc/nginx/sites-enabled 4 | -------------------------------------------------------------------------------- /packages/grafana-runtime/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-restricted-imports": ["error", { "patterns": ["@grafana/runtime"] }] 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/grafana-runtime/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["dist", "node_modules", "**/*.test.ts*"], 3 | "extends": "./tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/tasks/plugin/test_exclude_image_suffix_in_manifest.png: -------------------------------------------------------------------------------- 1 | NOTE: not a real image, but should be excluded from hashed files -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/utils/pascalCase.ts: -------------------------------------------------------------------------------- 1 | import _ from 'lodash'; 2 | 3 | export const pascalCase = _.flow(_.camelCase, _.upperFirst); 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export { CustomWebpackConfigurationGetter, WebpackConfigurationOptions } from './webpack.plugin.config'; 2 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/jestSetup/unsupportedOverrides/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "jest": { 3 | "runner": "some-runner" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-dashboards/broken-dashboards/invalid.json: -------------------------------------------------------------------------------- 1 | [] 2 | { 3 | "title": "Grafana", 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/incorrect-settings/incorrect-settings.yaml: -------------------------------------------------------------------------------- 1 | apps: 2 | - org_id: 2 3 | disabled: false 4 | -------------------------------------------------------------------------------- /public/sass/pages/_login.scss: -------------------------------------------------------------------------------- 1 | /* Is still used in some angular templates*/ 2 | .login-form { 3 | margin-bottom: $space-md; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /scripts/build/ci-build/bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /tmp || exit 1 4 | tar xfJ x86_64-centos6-linux-gnu.tar.xz 5 | tar xfJ osxcross.tar.xz 6 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/Makefile: -------------------------------------------------------------------------------- 1 | all: build 2 | 3 | build: 4 | pip3 install -r requirements.txt 5 | python3 generator/build.py 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/service/nginx/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p /var/log/nginx 4 | exec /usr/sbin/nginx -c /etc/nginx/nginx.conf 5 | -------------------------------------------------------------------------------- /devenv/docker/blocks/nginx_proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.19.3-alpine 2 | 3 | COPY nginx.conf /etc/nginx/nginx.conf 4 | COPY htpasswd /etc/nginx/htpasswd 5 | -------------------------------------------------------------------------------- /e2e/suite1/screenshots/expected/bar-gauge-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/e2e/suite1/screenshots/expected/bar-gauge-gradient.png -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["dist", "node_modules", "**/*.test.ts*"], 3 | "extends": "./tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/prettier.plugin.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "singleQuote": true, 4 | "printWidth": 120 5 | } 6 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/sdk.ts: -------------------------------------------------------------------------------- 1 | import { QueryCtrl } from './query_ctrl'; 2 | 3 | export { QueryCtrl }; 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/nginx_proxy_mac/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.19.3-alpine 2 | 3 | COPY nginx.conf /etc/nginx/nginx.conf 4 | COPY htpasswd /etc/nginx/htpasswd 5 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs" 4 | }, 5 | "extends": "@grafana/tsconfig" 6 | } 7 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/plugins/index.ts: -------------------------------------------------------------------------------- 1 | export * from './env'; 2 | export * from './utils'; 3 | export * from './workflow'; 4 | export * from './types'; 5 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/mdx.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.mdx' { 2 | let MDXComponent: (props: any) => JSX.Element; 3 | export default MDXComponent; 4 | } 5 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/theme.ts: -------------------------------------------------------------------------------- 1 | import { GrafanaTheme } from '@grafana/data'; 2 | 3 | export interface Themeable { 4 | theme: GrafanaTheme; 5 | } 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/empty_folder/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/broken-yaml/broken.yaml: -------------------------------------------------------------------------------- 1 | apps: 2 | - type: something 3 | org_id: 2 4 | disabled: false 5 | -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/empty_folder/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /public/app/core/app_events.ts: -------------------------------------------------------------------------------- 1 | import { Emitter } from './utils/emitter'; 2 | 3 | export const appEvents = new Emitter(); 4 | 5 | export default appEvents; 6 | -------------------------------------------------------------------------------- /public/app/core/controllers/all.ts: -------------------------------------------------------------------------------- 1 | import './invited_ctrl'; 2 | import './signup_ctrl'; 3 | import './reset_password_ctrl'; 4 | import './json_editor_ctrl'; 5 | -------------------------------------------------------------------------------- /public/app/features/profile/state/selectors.ts: -------------------------------------------------------------------------------- 1 | import { UserState } from 'app/types'; 2 | 3 | export const getTimeZone = (state: UserState) => state.timeZone; 4 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.x86_64.rpm.sha256: -------------------------------------------------------------------------------- 1 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 2 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise_5.4.0-123pre1_amd64.deb.sha256: -------------------------------------------------------------------------------- 1 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 2 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus_basic_auth_proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:alpine 2 | 3 | COPY nginx.conf /etc/nginx/nginx.conf 4 | COPY htpasswd /etc/nginx/htpasswd 5 | -------------------------------------------------------------------------------- /emails/grunt/aliases.yaml: -------------------------------------------------------------------------------- 1 | 2 | default: 3 | - 'clean' 4 | - 'assemble' 5 | - 'replace' 6 | - 'uncss' 7 | - 'processhtml' 8 | - 'premailer' 9 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/prettier.plugin.rc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('@grafana/toolkit/src/config/prettier.plugin.config.json'), 3 | }; 4 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/appliedDefaults/without-defaults.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | - name: $TEST_VAR 5 | type: type 6 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/VersionHistory/index.ts: -------------------------------------------------------------------------------- 1 | export { HistoryListCtrl } from './HistoryListCtrl'; 2 | export { HistorySrv } from './HistorySrv'; 3 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/mixed/module.ts: -------------------------------------------------------------------------------- 1 | import { MixedDatasource } from './MixedDataSource'; 2 | export { MixedDatasource, MixedDatasource as Datasource }; 3 | -------------------------------------------------------------------------------- /public/app/plugins/panel/heatmap/module.ts: -------------------------------------------------------------------------------- 1 | import './color_legend'; 2 | import { HeatmapCtrl } from './heatmap_ctrl'; 3 | 4 | export { HeatmapCtrl as PanelCtrl }; 5 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/cache/nssm-2.24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/cache/nssm-2.24.zip -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.linux-amd64.tar.gz.sha256: -------------------------------------------------------------------------------- 1 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 2 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.windows-amd64.msi.sha256: -------------------------------------------------------------------------------- 1 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 2 | -------------------------------------------------------------------------------- /scripts/build/release_publisher/testdata/grafana-enterprise-5.4.0-123pre1.windows-amd64.zip.sha256: -------------------------------------------------------------------------------- 1 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 2 | -------------------------------------------------------------------------------- /scripts/build/update_repo/test-publish-rpm-repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./scripts/build/update_repo/publish-rpm.sh "oss" "v5.4.3" "grafana-testing-repo" 4 | -------------------------------------------------------------------------------- /scripts/ci-job-started.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo -e "Collecting job start date" 4 | 5 | start=$(date +%s%N) 6 | echo "export GF_JOB_START=$start" >> "$BASH_ENV" 7 | -------------------------------------------------------------------------------- /devenv/docker/blocks/slow_proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | FROM golang:latest 3 | ADD main.go / 4 | WORKDIR / 5 | RUN go build -o main . 6 | EXPOSE 3011 7 | ENTRYPOINT ["/main"] 8 | -------------------------------------------------------------------------------- /devenv/docker/buildcontainer/run_circle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run -i -t \ 4 | -v /home/ubuntu/.go_workspace:/go \ 5 | --name gfbuild grafana/buildcontainer 6 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Chart/index.tsx: -------------------------------------------------------------------------------- 1 | import { Tooltip } from './Tooltip'; 2 | 3 | const Chart = { 4 | Tooltip, 5 | }; 6 | 7 | export default Chart; 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/storybook.ts: -------------------------------------------------------------------------------- 1 | export type Renderable = React.ComponentType | JSX.Element; 2 | export type RenderFunction = () => Renderable | Renderable[]; 3 | -------------------------------------------------------------------------------- /pkg/cmd/grafana-cli/commands/testdata/plugin-with-symlink.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/pkg/cmd/grafana-cli/commands/testdata/plugin-with-symlink.zip -------------------------------------------------------------------------------- /public/app/features/plugins/all.ts: -------------------------------------------------------------------------------- 1 | import './plugin_page_ctrl'; 2 | import './datasource_srv'; 3 | import './plugin_component'; 4 | import './variableQueryEditorLoader'; 5 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/graphite/img/graphite_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/graphite/img/graphite_logo.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png -------------------------------------------------------------------------------- /public/app/plugins/panel/text/types.ts: -------------------------------------------------------------------------------- 1 | export type TextMode = 'html' | 'markdown'; 2 | export interface TextOptions { 3 | mode: TextMode; 4 | content: string; 5 | } 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/slow_proxy_mac/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | FROM golang:latest 3 | ADD main.go / 4 | WORKDIR / 5 | RUN go build -o main . 6 | EXPOSE 3011 7 | ENTRYPOINT ["/main"] 8 | -------------------------------------------------------------------------------- /e2e/suite1/screenshots/bar-gauge.spec.ts/bar-gauge-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/e2e/suite1/screenshots/bar-gauge.spec.ts/bar-gauge-gradient.png -------------------------------------------------------------------------------- /packages/grafana-e2e/src/support/index.ts: -------------------------------------------------------------------------------- 1 | export * from './localStorage'; 2 | export * from './scenarioContext'; 3 | export * from './selector'; 4 | export * from './types'; 5 | -------------------------------------------------------------------------------- /pkg/api/dtos/apikey.go: -------------------------------------------------------------------------------- 1 | package dtos 2 | 3 | type NewApiKeyResult struct { 4 | ID int64 `json:"id"` 5 | Name string `json:"name"` 6 | Key string `json:"key"` 7 | } 8 | -------------------------------------------------------------------------------- /pkg/infra/log/handlers.go: -------------------------------------------------------------------------------- 1 | package log 2 | 3 | type DisposableHandler interface { 4 | Close() 5 | } 6 | 7 | type ReloadableHandler interface { 8 | Reload() 9 | } 10 | -------------------------------------------------------------------------------- /public/app/core/partials.ts: -------------------------------------------------------------------------------- 1 | let templates = (require as any).context('../', true, /\.html$/); 2 | templates.keys().forEach((key: string) => { 3 | templates(key); 4 | }); 5 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/ShareModal/index.ts: -------------------------------------------------------------------------------- 1 | export { ShareModal, addDashboardShareTab, addPanelShareTab } from './ShareModal'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/service/statsd/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec /usr/bin/nodejs /opt/statsd/stats.js /opt/statsd/config.js >> /var/log/statsd.log 2>&1 4 | 5 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/opt/statsd/config.js: -------------------------------------------------------------------------------- 1 | { 2 | "graphiteHost": "127.0.0.1", 3 | "graphitePort": 2003, 4 | "port": 8125, 5 | "flushInterval": 10000 6 | } 7 | -------------------------------------------------------------------------------- /e2e/suite1/screenshots/bar-gauge.spec.ts/bar-gauge-gradient (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/e2e/suite1/screenshots/bar-gauge.spec.ts/bar-gauge-gradient (1).png -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Drawer/_Drawer.scss: -------------------------------------------------------------------------------- 1 | // Need to import this to get default styles from rc-drawer 2 | @import '../../node_modules/rc-drawer/assets/index.css'; 3 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/unknown-notifier/notification.yaml: -------------------------------------------------------------------------------- 1 | notifiers: 2 | - name: unknown-notifier 3 | type: nonexisting 4 | uid: notifier1 -------------------------------------------------------------------------------- /scripts/build/update_repo/test-publish-deb-repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./scripts/build/update_repo/publish-deb.sh "oss" "grafana-testing-aptly-db" "grafana-testing-repo" 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/alert_webhook_listener/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | FROM golang:latest 3 | ADD main.go / 4 | WORKDIR / 5 | RUN go build -o main . 6 | EXPOSE 3010 7 | ENTRYPOINT ["/main"] 8 | -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jmferrer/apache2-reverse-proxy:latest 2 | 3 | COPY ports.conf /etc/apache2/sites-enabled 4 | COPY proxy.conf /etc/apache2/sites-enabled -------------------------------------------------------------------------------- /devenv/docker/blocks/nginx_proxy/htpasswd: -------------------------------------------------------------------------------- 1 | user1:$apr1$1odeeQb.$kwV8D/VAAGUDU7pnHuKoV0 2 | user2:$apr1$A2kf25r.$6S0kp3C7vIuixS5CL0XA9. 3 | admin:$apr1$IWn4DoRR$E2ol7fS/dkI18eU4bXnBO1 4 | -------------------------------------------------------------------------------- /packages/grafana-data/src/utils/testdata/withHeaders.csv: -------------------------------------------------------------------------------- 1 | #name#a,b,c 2 | #unit#ms,lengthm,s 3 | #type#number,string,boolean 4 | 10,20,True 5 | 40,50,FALSE 6 | "40","500",0 7 | 40,50,1 8 | -------------------------------------------------------------------------------- /plugins-bundled/.gitignore: -------------------------------------------------------------------------------- 1 | # packaged by toolkit 2 | dist 3 | coverage 4 | 5 | # Ignore external git configs 6 | external 7 | 8 | # this file is added automatically 9 | .prettierrc.js -------------------------------------------------------------------------------- /public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/loki/README.md: -------------------------------------------------------------------------------- 1 | # Loki Data Source - Native Plugin 2 | 3 | This is a **built in** data source that allows you to connect to the Loki logging service. 4 | -------------------------------------------------------------------------------- /public/app/plugins/panel/news/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_FEED_URL = 'https://grafana.com/blog/news.xml'; 2 | export const PROXY_PREFIX = 'https://cors-anywhere.herokuapp.com/'; 3 | -------------------------------------------------------------------------------- /public/fonts/roboto/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/1hZf02POANh32k2VkgEoUBTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/1hZf02POANh32k2VkgEoUBTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/K23cxWVTrIFD6DJsEVi07RTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/K23cxWVTrIFD6DJsEVi07RTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0SYE0-AqJ3nfInTTiDXDjU4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0SYE0-AqJ3nfInTTiDXDjU4.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TTOQ_MqJVwkKsUn0wKzc2I.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TTOQ_MqJVwkKsUn0wKzc2I.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TUj_cnvWIuuBMVgbX098Mw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TUj_cnvWIuuBMVgbX098Mw.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0UbcKLIaa1LC45dFaAfauRA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0UbcKLIaa1LC45dFaAfauRA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Wo_sUJ8uO4YLWRInS22T3Y.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Wo_sUJ8uO4YLWRInS22T3Y.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Y4P5ICox8Kq3LLUNMylGO4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Y4P5ICox8Kq3LLUNMylGO4.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0b6up8jxqWt8HVA3mDhkV_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0b6up8jxqWt8HVA3mDhkV_0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/OpXUqTo0UgQQhGj_SFdLWBTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/OpXUqTo0UgQQhGj_SFdLWBTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/WxrXJa0C3KdtC7lMafG4dRTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/WxrXJa0C3KdtC7lMafG4dRTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/cDKhRaXnQTOVbaoxwdOr9xTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/cDKhRaXnQTOVbaoxwdOr9xTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/vPcynSL0qHq_6dX7lKVByfesZW2xOQ-xsNqO47m55DA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/vPcynSL0qHq_6dX7lKVByfesZW2xOQ-xsNqO47m55DA.woff2 -------------------------------------------------------------------------------- /public/fonts/roboto/vSzulfKSK0LLjjfeaxcREhTbgVql8nDJpwnrE27mub0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/roboto/vSzulfKSK0LLjjfeaxcREhTbgVql8nDJpwnrE27mub0.woff2 -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy/proxy.conf: -------------------------------------------------------------------------------- 1 | 2 | ProxyPass /grafana/ http://localhost:3000/ 3 | ProxyPassReverse /grafana/ http://localhost:3000/ 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy_mac/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jmferrer/apache2-reverse-proxy:latest 2 | 3 | COPY ports.conf /etc/apache2/sites-enabled 4 | COPY proxy.conf /etc/apache2/sites-enabled -------------------------------------------------------------------------------- /devenv/docker/blocks/nginx_proxy_mac/htpasswd: -------------------------------------------------------------------------------- 1 | user1:$apr1$1odeeQb.$kwV8D/VAAGUDU7pnHuKoV0 2 | user2:$apr1$A2kf25r.$6S0kp3C7vIuixS5CL0XA9. 3 | admin:$apr1$IWn4DoRR$E2ol7fS/dkI18eU4bXnBO1 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM prom/prometheus:v2.7.2 2 | ADD prometheus.yml /etc/prometheus/ 3 | ADD recording.yml /etc/prometheus/ 4 | ADD alert.yml /etc/prometheus/ 5 | -------------------------------------------------------------------------------- /e2e/suite1/specs/1-smoketests.spec.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '@grafana/e2e'; 2 | import { smokeTestScenario } from '../../shared/smokeTestScenario'; 3 | 4 | e2e.scenario(smokeTestScenario); 5 | -------------------------------------------------------------------------------- /e2e/verify/specs/smoketests.spec.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '@grafana/e2e'; 2 | import { smokeTestScenario } from '../../shared/smokeTestScenario'; 3 | 4 | e2e.scenario(smokeTestScenario); 5 | -------------------------------------------------------------------------------- /packages/grafana-data/README.md: -------------------------------------------------------------------------------- 1 | # Grafana Data Library 2 | 3 | > **@grafana/data is currently in BETA**. 4 | 5 | This package holds the root data types and functions used within Grafana. 6 | -------------------------------------------------------------------------------- /packages/grafana-data/src/dataframe/__snapshots__/all_types.golden.arrow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/packages/grafana-data/src/dataframe/__snapshots__/all_types.golden.arrow -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci/common.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## 4 | ## Common variable declarations 5 | ## 6 | 7 | DOCKER_IMAGE_NAME="grafana/grafana-plugin-ci:1.0.0" 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/uPlot/Plot.scss: -------------------------------------------------------------------------------- 1 | // importing the uPlot css so it will be bundled with the rest of the styling. 2 | @import '../../node_modules/uplot/dist/uPlot.min.css'; 3 | -------------------------------------------------------------------------------- /pkg/infra/serverlock/model.go: -------------------------------------------------------------------------------- 1 | package serverlock 2 | 3 | type serverLock struct { 4 | Id int64 5 | OperationUid string 6 | LastExecution int64 7 | Version int64 8 | } 9 | -------------------------------------------------------------------------------- /pkg/services/datasources/log.go: -------------------------------------------------------------------------------- 1 | package datasources 2 | 3 | import ( 4 | "github.com/grafana/grafana/pkg/infra/log" 5 | ) 6 | 7 | var ( 8 | plog = log.New("datasources") 9 | ) 10 | -------------------------------------------------------------------------------- /public/app/features/panel/all.ts: -------------------------------------------------------------------------------- 1 | import './panel_directive'; 2 | import './query_ctrl'; 3 | import './panel_editor_tab'; 4 | import './query_editor_row'; 5 | import './panellinks/module'; 6 | -------------------------------------------------------------------------------- /public/app/plugins/panel/graph3/README.md: -------------------------------------------------------------------------------- 1 | # Graph3 Panel - Native Plugin 2 | 3 | This is a graph panel exprimenting with the charting library: 4 | https://github.com/leeoniya/uPlot 5 | 6 | -------------------------------------------------------------------------------- /public/fonts/opensans/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2 -------------------------------------------------------------------------------- /public/fonts/opensans/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/fonts/opensans/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2 -------------------------------------------------------------------------------- /public/sass/base/font-awesome/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /devenv/docker/blocks/postgres_tests/setup.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE grafanadstest; 2 | REVOKE CONNECT ON DATABASE grafanadstest FROM PUBLIC; 3 | GRANT CONNECT ON DATABASE grafanadstest TO grafanatest; 4 | -------------------------------------------------------------------------------- /packages/jaeger-ui-components/src/utils/DraggableManager/demo/demo-ux.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/packages/jaeger-ui-components/src/utils/DraggableManager/demo/demo-ux.gif -------------------------------------------------------------------------------- /public/app/features/manage-dashboards/index.ts: -------------------------------------------------------------------------------- 1 | // Services 2 | export { ValidationSrv } from './services/ValidationSrv'; 3 | 4 | // Components 5 | export * from './components/UploadDashboard'; 6 | -------------------------------------------------------------------------------- /public/app/features/playlist/all.ts: -------------------------------------------------------------------------------- 1 | import './playlists_ctrl'; 2 | import './playlist_search'; 3 | import './playlist_srv'; 4 | import './playlist_edit_ctrl'; 5 | import './playlist_routes'; 6 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/mssql/types.ts: -------------------------------------------------------------------------------- 1 | export interface MssqlQueryForInterpolation { 2 | alias?: any; 3 | format?: any; 4 | rawSql?: any; 5 | refId?: any; 6 | hide?: any; 7 | } 8 | -------------------------------------------------------------------------------- /public/app/types/organization.ts: -------------------------------------------------------------------------------- 1 | export interface Organization { 2 | name: string; 3 | id: number; 4 | } 5 | 6 | export interface OrganizationState { 7 | organization: Organization; 8 | } 9 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_icon.ico -------------------------------------------------------------------------------- /scripts/build/update_repo/load-signing-key.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | gpg --batch --allow-secret-key-import --import ~/private-repo/signing/private.key 6 | pkill gpg-agent 7 | -------------------------------------------------------------------------------- /docs/sources/sharing/_index: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Sharing" 3 | weight = 4 4 | draft = "true" 5 | +++ 6 | 7 | # Sharing 8 | 9 | This section contains pages that will help you share Grafana visualizations. -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/unsupportedOverride/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* WRONG CONFIG ON PURPOSE - DO NOT COPY THIS */ 2 | 3 | module.exports.config = { 4 | name: 'test', 5 | }; 6 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/tsconfig.plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "alwaysStrict": true, 4 | "declaration": false 5 | }, 6 | "extends": "@grafana/tsconfig" 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["**/*.story.tsx", "**/*.test.ts*", "**/*.tmpl.ts", "dist", "node_modules", "src/utils/storybook"], 3 | "extends": "./tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /pkg/tsdb/influxdb/flux/testdata/single.csv: -------------------------------------------------------------------------------- 1 | #group,false,false,true,false 2 | #datatype,string,long,string,long 3 | #default,_result,,, 4 | ,result,table,_field,_value 5 | ,,0,summary_serial_number,6 6 | -------------------------------------------------------------------------------- /public/app/core/utils/promiseToDigest.ts: -------------------------------------------------------------------------------- 1 | import { IScope } from 'angular'; 2 | 3 | export const promiseToDigest = ($scope: IScope) => (promise: Promise) => promise.finally($scope.$evalAsync); 4 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/dashboard/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "-- Dashboard --", 4 | "id": "dashboard", 5 | 6 | "builtIn": true, 7 | "metrics": true 8 | } 9 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-alpine/common.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## 4 | ## Common variable declarations 5 | ## 6 | 7 | DOCKER_IMAGE_NAME="grafana/grafana-plugin-ci:1.0.1-alpine" 8 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/styles.mock.js: -------------------------------------------------------------------------------- 1 | // Mock for handling stylesheet file imports in tests 2 | // https://jestjs.io/docs/en/webpack.html#handling-static-assets 3 | 4 | module.exports = {}; 5 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/invalid-access/invalid-access.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | - name: invalid-access 5 | type: prometheus 6 | access: INVALID_ACCESS 7 | -------------------------------------------------------------------------------- /pkg/tsdb/azuremonitor/testdata/applicationinsights/5-application-insights-empty-response.json: -------------------------------------------------------------------------------- 1 | {"value":{"start":"2020-07-21T11:55:15.000Z","end":"2020-07-21T11:56:15.000Z","interval":"PT1M","segments":[]}} -------------------------------------------------------------------------------- /public/app/plugins/datasource/dashboard/README.md: -------------------------------------------------------------------------------- 1 | # Dashboard Datasource - Native Plugin 2 | 3 | This is a **built in** datasource that lets you reuse the query from other panels in the 4 | same dashboard. -------------------------------------------------------------------------------- /public/sass/components/_typeahead.scss: -------------------------------------------------------------------------------- 1 | // typeahead max height 2 | .typeahead { 3 | max-height: 300px; 4 | overflow-y: auto; 5 | } 6 | 7 | .typeahead strong { 8 | color: $yellow; 9 | } 10 | -------------------------------------------------------------------------------- /scripts/build/ci-deploy/build-deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | _version="1.2.6" 5 | _tag="grafana/grafana-ci-deploy:${_version}" 6 | 7 | docker build -t $_tag . 8 | docker push $_tag 9 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner.bmp -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner.png -------------------------------------------------------------------------------- /scripts/build/update_repo/test-update-rpm-repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | GPG_PASS=${1:-} 4 | 5 | ./scripts/build/update_repo/update-rpm.sh "oss" "$GPG_PASS" "v5.4.3" "dist" "grafana-testing-repo" 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Questions & Help 4 | url: https://community.grafana.com 5 | about: Please ask and answer questions here. 6 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | @torkelo is the main/default maintainer, some parts of the codebase have other maintainers: 2 | 3 | - Backend: 4 | - @bergquist 5 | - Plugins: 6 | - @ryantxu 7 | - UX/UI: 8 | - @davkal 9 | -------------------------------------------------------------------------------- /devenv/docker/blocks/alert_webhook_listener/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | alert_webhook_listener: 2 | build: docker/blocks/alert_webhook_listener 3 | network_mode: host 4 | ports: 5 | - "3010:3010" 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mssql/build/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/mssql/server:2017-CU4-ubuntu 2 | WORKDIR /usr/setup 3 | COPY . /usr/setup 4 | RUN chmod +x /usr/setup/setup.sh 5 | CMD /bin/bash ./entrypoint.sh -------------------------------------------------------------------------------- /devenv/e2e-api-tests/clearState.test.ts: -------------------------------------------------------------------------------- 1 | import * as setup from './setup'; 2 | 3 | describe.skip('clear state', () => { 4 | it('will clear state', () => { 5 | return setup.clearState(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/README.md: -------------------------------------------------------------------------------- 1 | # Grafana End-to-End Test Selectors library 2 | 3 | > **@grafana/e2e-selectors is currently in ALPHA**. Core API is unstable and can be a subject of breaking changes! 4 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-alpine/install/bin/cp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "$1" == "-rn" ]; then 4 | false | busybox cp -i -r "$2" "$3" 2>/dev/null 5 | else 6 | busybox cp $* 7 | fi 8 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | source ./common.sh 5 | 6 | docker build -t ${DOCKER_IMAGE_NAME} . 7 | docker push $DOCKER_IMAGE_NAME 8 | 9 | -------------------------------------------------------------------------------- /public/app/features/datasources/partials/http_settings_next.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/app/features/templating/all.ts: -------------------------------------------------------------------------------- 1 | import coreModule from 'app/core/core_module'; 2 | import { getTemplateSrv } from './template_srv'; 3 | 4 | coreModule.factory('templateSrv', () => getTemplateSrv()); 5 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/cloudwatch/components/__snapshots__/MetricsQueryEditor.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`QueryEditor should render component 1`] = `null`; 4 | -------------------------------------------------------------------------------- /public/sass/utils/_validation.scss: -------------------------------------------------------------------------------- 1 | input.validation-error, 2 | input.ng-dirty.ng-invalid { 3 | box-shadow: inset 0 0px 5px $red; 4 | } 5 | 6 | input.invalid { 7 | box-shadow: inset 0 0px 5px $red; 8 | } 9 | -------------------------------------------------------------------------------- /scripts/build/update_repo/test-update-deb-repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | GPG_PASS=${1:-} 4 | 5 | ./scripts/build/update_repo/update-deb.sh "oss" "$GPG_PASS" "v5.4.3" "dist" "grafana-testing-aptly-db" 6 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM circleci/node:12-browsers 2 | USER root 3 | COPY scripts scripts 4 | WORKDIR scripts 5 | RUN ./deploy.sh 6 | COPY install/gget /usr/local/bin/gget 7 | -------------------------------------------------------------------------------- /public/app/core/utils/colors.ts: -------------------------------------------------------------------------------- 1 | import config from 'app/core/config'; 2 | 3 | export function getThemeColor(dark: string, light: string): string { 4 | return config.bootData.user.lightTheme ? light : dark; 5 | } 6 | -------------------------------------------------------------------------------- /public/app/plugins/panel/welcome/module.ts: -------------------------------------------------------------------------------- 1 | import { PanelPlugin } from '@grafana/data'; 2 | import { WelcomeBanner } from './Welcome'; 3 | 4 | export const plugin = new PanelPlugin(WelcomeBanner).setNoPadding(); 5 | -------------------------------------------------------------------------------- /devenv/benchmarks/ab/ab_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ab -n 20000 -c 100 -H "Authorization: Bearer vEustw23NSOZ27y3zlj28ZL3B7BpBk5kqR85DOfT5AwiS3nCi33dnsk6nhvXhZdn" \ 4 | http://localhost:3000/api/dashboards/db/dash1 5 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite/files/statsd_config.js: -------------------------------------------------------------------------------- 1 | { 2 | graphitePort: 2003, 3 | graphiteHost: "127.0.0.1", 4 | port: 8125, 5 | mgmt_port: 8126, 6 | backends: ['./backends/graphite'], 7 | debug: true 8 | } 9 | -------------------------------------------------------------------------------- /packages/grafana-data/src/types/flot.ts: -------------------------------------------------------------------------------- 1 | export interface FlotDataPoint { 2 | dataIndex: number; 3 | datapoint: number[]; 4 | pageX: number; 5 | pageY: number; 6 | series: any; 7 | seriesIndex: number; 8 | } 9 | -------------------------------------------------------------------------------- /packages/grafana-e2e/test/cypress/integration/1.api.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '../../../dist'; 2 | 3 | describe('API', () => { 4 | it('can be imported', () => { 5 | expect(e2e).to.be.a('function'); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './theme'; 2 | export * from './input'; 3 | export * from './completion'; 4 | export * from './storybook'; 5 | export * from './forms'; 6 | export * from './icon'; 7 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-configs/applied-defaults/dev-dashboards.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'applied-defaults' 5 | options: 6 | path: /var/lib/grafana/dashboards 7 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/all-properties/second.yaml: -------------------------------------------------------------------------------- 1 | purge_other_datasources: true 2 | datasources: 3 | - name: name2 4 | type: type2 5 | access: proxy 6 | orgId: 2 7 | url: url2 8 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/loki/partials/annotations.editor.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_dialog_background.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_dialog_background.bmp -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_dialog_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_dialog_background.png -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner_white.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/scripts/build/ci-msi-build/msigenerator/resources/images/grafana_top_banner_white.bmp -------------------------------------------------------------------------------- /scripts/build/rpmmacros: -------------------------------------------------------------------------------- 1 | %_signature gpg 2 | %_gpg_path /root/.gnupg 3 | %_gpg_name Grafana 4 | %_gpgbin /usr/bin/gpg 5 | %_gpg_sign_cmd_extra_args --batch --pinentry-mode loopback --passphrase-file /tmp/gpg-passphrase 6 | -------------------------------------------------------------------------------- /scripts/go/tools.go: -------------------------------------------------------------------------------- 1 | // +build tools 2 | 3 | package main 4 | 5 | import ( 6 | _ "github.com/golangci/golangci-lint/cmd/golangci-lint" 7 | _ "github.com/mgechev/revive" 8 | _ "github.com/unknwon/bra" 9 | ) 10 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/Dockerfile.rpm: -------------------------------------------------------------------------------- 1 | FROM centos:8 2 | 3 | ARG REPO_CONFIG=grafana.repo.oss 4 | ARG PACKAGE=grafana 5 | 6 | COPY "./$REPO_CONFIG" /etc/yum.repos.d/grafana.repo 7 | 8 | RUN yum install -y $PACKAGE 9 | -------------------------------------------------------------------------------- /devenv/docker/blocks/apache_proxy_mac/proxy.conf: -------------------------------------------------------------------------------- 1 | 2 | ProxyPass /grafana/ http://host.docker.internal:3000/ 3 | ProxyPassReverse /grafana/ http://host.docker.internal:3000/ 4 | 5 | -------------------------------------------------------------------------------- /e2e/suite1/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["cypress"] 4 | }, 5 | "extends": "../../tsconfig.json", 6 | "include": ["**/*.ts", "../../packages/grafana-e2e/cypress/support/index.d.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /e2e/verify/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["cypress"] 4 | }, 5 | "extends": "../../tsconfig.json", 6 | "include": ["**/*.ts", "../../packages/grafana-e2e/cypress/support/index.d.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-data/src/utils/docs.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Enumeration of documentation topics 3 | * @internal 4 | */ 5 | export enum DocsId { 6 | Transformations, 7 | FieldConfig, 8 | FieldConfigOverrides, 9 | } 10 | -------------------------------------------------------------------------------- /packages/grafana-e2e/cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.12 2 | 3 | USER root 4 | 5 | COPY scripts scripts 6 | COPY install /usr/local 7 | 8 | WORKDIR scripts 9 | 10 | RUN ./deploy.sh 11 | -------------------------------------------------------------------------------- /pkg/api/dtos/short_url.go: -------------------------------------------------------------------------------- 1 | package dtos 2 | 3 | type ShortURL struct { 4 | UID string `json:"uid"` 5 | URL string `json:"url"` 6 | } 7 | 8 | type CreateShortURLCmd struct { 9 | Path string `json:"path"` 10 | } 11 | -------------------------------------------------------------------------------- /pkg/models/models.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | type OAuthType int 4 | 5 | const ( 6 | GITHUB OAuthType = iota + 1 7 | GOOGLE 8 | TWITTER 9 | GENERIC 10 | GRAFANA_COM 11 | GITLAB 12 | AZUREAD 13 | OKTA 14 | ) 15 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/double-default/default-1.yaml: -------------------------------------------------------------------------------- 1 | datasources: 2 | - name: Graphite 3 | type: graphite 4 | access: proxy 5 | url: http://localhost:8080 6 | is_default: true 7 | 8 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/double-default/default-2.yaml: -------------------------------------------------------------------------------- 1 | datasources: 2 | - name: Graphite 3 | type: graphite 4 | access: proxy 5 | url: http://localhost:8080 6 | is_default: true 7 | 8 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png -------------------------------------------------------------------------------- /scripts/mixin-check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | cd grafana-mixin 5 | go install github.com/monitoring-mixins/mixtool/cmd/mixtool 6 | go install github.com/google/go-jsonnet/cmd/jsonnetfmt 7 | make lint build 8 | -------------------------------------------------------------------------------- /devenv/bulk-dashboards/bulk-dashboards.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'Bulk dashboards' 5 | folder: 'Bulk dashboards' 6 | type: file 7 | options: 8 | path: devenv/bulk-dashboards 9 | 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/service/carbon/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -f /opt/graphite/storage/carbon-cache-a.pid 4 | exec /usr/bin/python /opt/graphite/bin/carbon-cache.py start --debug 2>&1 >> /var/log/carbon.log 5 | -------------------------------------------------------------------------------- /devenv/docker/debtest/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cp Dockerfile ../../dist 4 | cd ../../dist 5 | 6 | docker build --tag "grafana/debtest" . 7 | 8 | rm Dockerfile 9 | 10 | docker run -i -t grafana/debtest /bin/bash 11 | -------------------------------------------------------------------------------- /devenv/docker/rpmtest/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cp Dockerfile ../../dist 4 | cd ../../dist 5 | 6 | docker build --tag "grafana/rpmtest" . 7 | 8 | rm Dockerfile 9 | 10 | docker run -i -t grafana/rpmtest /bin/bash 11 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-configs/broken-configs/commented.yaml: -------------------------------------------------------------------------------- 1 | # - name: 'default' 2 | # org_id: 1 3 | # folder: '' 4 | # type: file 5 | # options: 6 | # path: /var/lib/grafana/dashboards 7 | -------------------------------------------------------------------------------- /public/app/features/alerting/__snapshots__/TestRuleResult.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Render should render component 1`] = ` 4 | 7 | `; 8 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/dashboard/module.ts: -------------------------------------------------------------------------------- 1 | import { DashboardDatasource } from './datasource'; 2 | import { DataSourcePlugin } from '@grafana/data'; 3 | 4 | export const plugin = new DataSourcePlugin(DashboardDatasource); 5 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_1_select_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_1_select_type.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_install.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_login.png -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "-- Grafana --", 4 | "id": "grafana", 5 | 6 | "builtIn": true, 7 | "annotations": true, 8 | "metrics": true 9 | } 10 | -------------------------------------------------------------------------------- /public/sass/base/font-awesome/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { 5 | @include sr-only(); 6 | } 7 | .sr-only-focusable { 8 | @include sr-only-focusable(); 9 | } 10 | -------------------------------------------------------------------------------- /scripts/build/update_repo/unlock-gpg-key.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env expect 2 | 3 | set password [lindex $argv 0] 4 | spawn gpg --detach-sign --armor /tmp/sign-this 5 | expect "Enter passphrase: " 6 | send -- "$password\r" 7 | expect eof 8 | -------------------------------------------------------------------------------- /packages/grafana-data/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./index.production.js'); 5 | } else { 6 | module.exports = require('./index.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-e2e/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./index.production.js'); 5 | } else { 6 | module.exports = require('./index.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./index.production.js'); 5 | } else { 6 | module.exports = require('./index.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /pkg/services/sqlstore/tables.go: -------------------------------------------------------------------------------- 1 | package sqlstore 2 | 3 | // extra tables not required by the core/outside model 4 | 5 | type DashboardTag struct { 6 | Id int64 7 | DashboardId int64 8 | Term string 9 | } 10 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_4_save_and_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_4_save_and_test.png -------------------------------------------------------------------------------- /scripts/grunt/build_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 'use strict'; 3 | 4 | // Concat and Minify the src directory into dist 5 | grunt.registerTask('build', ['clean:release', 'clean:build', 'exec:webpack']); 6 | }; 7 | -------------------------------------------------------------------------------- /scripts/webpack/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = () => { 2 | return { 3 | plugins: { 4 | autoprefixer: {}, 5 | 'postcss-reporter': {}, 6 | 'postcss-browser-reporter': {}, 7 | }, 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .awcache 2 | .dockerignore 3 | .git 4 | .gitignore 5 | .github 6 | .vscode 7 | bin 8 | data* 9 | dist 10 | docker 11 | Dockerfile 12 | docs 13 | dump.rdb 14 | node_modules 15 | /local 16 | /tmp 17 | *.yml 18 | *.md 19 | -------------------------------------------------------------------------------- /devenv/docker/blocks/slow_proxy/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | slow_proxy: 2 | build: docker/blocks/slow_proxy 3 | network_mode: host 4 | ports: 5 | - "3011:3011" 6 | environment: 7 | ORIGIN_SERVER: "http://localhost:9090/" -------------------------------------------------------------------------------- /devenv/docker/blocks/slow_proxy_mac/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | slow_proxy_mac: 2 | build: docker/blocks/slow_proxy_mac 3 | ports: 4 | - '3011:3011' 5 | environment: 6 | ORIGIN_SERVER: 'http://host.docker.internal:9090/' 7 | -------------------------------------------------------------------------------- /emails/grunt/uncss.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | dist: { 3 | src: ['dist/*.html'], 4 | dest: 'dist/css/tidy.css', 5 | options: { 6 | report: 'min', // optional: include to report savings 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/grafana-data/src/types/ScopedVars.ts: -------------------------------------------------------------------------------- 1 | export interface ScopedVar { 2 | text: any; 3 | value: T; 4 | [key: string]: any; 5 | } 6 | 7 | export interface ScopedVars { 8 | [key: string]: ScopedVar; 9 | } 10 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A library containing the different design components of the Grafana ecosystem. 3 | * 4 | * @packageDocumentation 5 | */ 6 | export * from './selectors'; 7 | export * from './types'; 8 | -------------------------------------------------------------------------------- /packages/grafana-runtime/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./index.production.js'); 5 | } else { 6 | module.exports = require('./index.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/UnitPicker/UnitPicker.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Preview, Props } from '@storybook/addon-docs/blocks'; 2 | import { UnitPicker } from './UnitPicker'; 3 | 4 | # UnitPicker 5 | 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/double-default/default-1.yml: -------------------------------------------------------------------------------- 1 | notifiers: 2 | - name: first-default 3 | type: slack 4 | uid: notifier1 5 | is_default: true 6 | settings: 7 | url: https://slack.com -------------------------------------------------------------------------------- /plugins-bundled/external.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | { 4 | "name": "gel", 5 | "version": "0.6.0", 6 | "checksum": "eeab73565b0f167d3d576dc6da86d53419bff5bbb2ea927fae1cc2fe4b52f55f" 7 | } 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/DashboardSettings/index.ts: -------------------------------------------------------------------------------- 1 | export { SettingsCtrl } from './SettingsCtrl'; 2 | export { DashboardSettings } from './DashboardSettings'; 3 | export { TimePickerSettings } from './TimePickerSettings'; 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mysql/config: -------------------------------------------------------------------------------- 1 | [database] 2 | DB_TYPE = mysql 3 | HOST = ${DB_1_PORT_3306_TCP_ADDR}:${DB_1_PORT_3306_TCP_PORT} 4 | NAME = ${DB_1_ENV_MYSQL_DATABASE} 5 | USER = ${DB_1_ENV_MYSQL_USER} 6 | PASSWD = ${DB_1_ENV_MYSQL_PASSWORD} 7 | -------------------------------------------------------------------------------- /docs/sources/shared/example.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shared Content 3 | --- 4 | 5 | ``` 6 | npm i 7 | ``` 8 | 9 | Syntax to invoke this file would be the following, minus the backslash: 10 | 11 | ``` 12 | \{{< docs/shared "example" >}} 13 | ``` -------------------------------------------------------------------------------- /e2e/kill-server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . e2e/variables 4 | 5 | if [ -f "$PIDFILE" ]; then 6 | echo -e "Found pidfile, killing running grafana-server" 7 | kill -9 `cat $PIDFILE` 8 | rm $PIDFILE 9 | fi 10 | 11 | rm -rf e2e/tmp 12 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./index.production.js'); 5 | } else { 6 | module.exports = require('./index.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-e2e/src/flows/assertSuccessNotification.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '../index'; 2 | 3 | export const assertSuccessNotification = () => { 4 | e2e() 5 | .get('[aria-label^="Alert success"]') 6 | .should('exist'); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Icon/assets/types.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface SvgProps extends React.HTMLAttributes { 4 | size: number; 5 | secondaryColor?: string; 6 | className?: string; 7 | } 8 | -------------------------------------------------------------------------------- /plugins-bundled/internal/input-datasource/README.md: -------------------------------------------------------------------------------- 1 | # Direct Input Data Source - Bundled Plugin 2 | 3 | This data source lets you define results directly in CSV. The values are stored either in a shared data source, or directly in panels. 4 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/testdata/components/index.ts: -------------------------------------------------------------------------------- 1 | export { StreamingClientEditor } from './StreamingClientEditor'; 2 | export { ManualEntryEditor } from './ManualEntryEditor'; 3 | export { RandomWalkEditor } from './RandomWalkEditor'; 4 | -------------------------------------------------------------------------------- /public/app/plugins/panel/logs/types.ts: -------------------------------------------------------------------------------- 1 | import { LogsSortOrder } from '@grafana/data'; 2 | 3 | export interface Options { 4 | showLabels: boolean; 5 | showTime: boolean; 6 | wrapLogMessage: boolean; 7 | sortOrder: LogsSortOrder; 8 | } 9 | -------------------------------------------------------------------------------- /public/app/plugins/panel/pluginlist/README.md: -------------------------------------------------------------------------------- 1 | # Plugin List Panel - Native Plugin 2 | 3 | The Plugin List plans shows the installed plugins for your Grafana instance and is **included** with Grafana. It is used on the default Home dashboard. 4 | -------------------------------------------------------------------------------- /scripts/build/update_repo/sign-rpm-repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env expect 2 | 3 | set password [lindex $argv 0] 4 | spawn gpg --detach-sign --armor /rpm-repo/repodata/repomd.xml 5 | expect "Enter passphrase: " 6 | send -- "$password\r" 7 | expect eof 8 | -------------------------------------------------------------------------------- /docs/sources/developers/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Developers" 3 | type = "docs" 4 | aliases = ["/docs/plugins/developing/"] 5 | +++ 6 | 7 | # Developers 8 | 9 | This section of the documentation contains pages with resources for Grafana developers. -------------------------------------------------------------------------------- /e2e/variables: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RUNDIR=e2e/tmp 4 | PIDFILE=$RUNDIR/pid 5 | PACKAGE_FILE=dist/grafana-*linux-amd64.tar.gz 6 | PROV_DIR=$RUNDIR/conf/provisioning 7 | DEFAULT_HOST=localhost 8 | DEFAULT_PORT=3001 9 | DEFAULT_SUITE=suite1 10 | -------------------------------------------------------------------------------- /grafana-mixin/Makefile: -------------------------------------------------------------------------------- 1 | all: fmt lint build clean 2 | 3 | fmt: 4 | ./scripts/format.sh 5 | 6 | lint: 7 | ./scripts/lint.sh 8 | 9 | build: 10 | ./scripts/build.sh 11 | 12 | clean: 13 | rm -rf dashboards_out alerts.yaml rules.yaml 14 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/double-default/default-2.yaml: -------------------------------------------------------------------------------- 1 | notifiers: 2 | - name: second-default 3 | type: email 4 | uid: notifier2 5 | is_default: true 6 | settings: 7 | addresses: example@example.com -------------------------------------------------------------------------------- /plugins-bundled/README.md: -------------------------------------------------------------------------------- 1 | Bundled Plugins 2 | =============== 3 | 4 | Bundled plugins are built as true plugins, and managed by the grafana install. 5 | 6 | TODO: the packaging system should move all `dist` items to the root and remove sources. 7 | -------------------------------------------------------------------------------- /public/app/features/explore/JSONViewer.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function({ value }: any) { 4 | return ( 5 |
6 |
{JSON.stringify(value, undefined, 2)}
7 |
8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/cloudwatch/partials/annotations.editor.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/dashboard/index.ts: -------------------------------------------------------------------------------- 1 | export { isSharedDashboardQuery, runSharedRequest } from './runSharedRequest'; 2 | export { DashboardQueryEditor } from './DashboardQueryEditor'; 3 | export { SHARED_DASHBODARD_QUERY } from './types'; 4 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/dashboard/types.ts: -------------------------------------------------------------------------------- 1 | import { DataQuery } from '@grafana/data'; 2 | 3 | export const SHARED_DASHBODARD_QUERY = '-- Dashboard --'; 4 | 5 | export interface DashboardQuery extends DataQuery { 6 | panelId?: number; 7 | } 8 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png -------------------------------------------------------------------------------- /public/app/plugins/panel/piechart/types.ts: -------------------------------------------------------------------------------- 1 | import { PieChartType, SingleStatBaseOptions } from '@grafana/ui'; 2 | 3 | export interface PieChartOptions extends SingleStatBaseOptions { 4 | pieType: PieChartType; 5 | strokeWidth: number; 6 | } 7 | -------------------------------------------------------------------------------- /public/sass/layout/_lists.scss: -------------------------------------------------------------------------------- 1 | .ui-list { 2 | margin: 0; 3 | padding: 0; 4 | list-style: none; 5 | 6 | > li { 7 | margin-bottom: $space-xs; 8 | 9 | &:last-child { 10 | margin-bottom: 0; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/usr/local/bin/manage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PYTHONPATH=/opt/graphite/webapp django-admin.py syncdb --settings=graphite.settings 3 | # PYTHONPATH=/opt/graphite/webapp django-admin.py update_users --settings=graphite.settings -------------------------------------------------------------------------------- /public/app/features/dashboard/components/Inspector/types.ts: -------------------------------------------------------------------------------- 1 | export enum InspectTab { 2 | Data = 'data', 3 | Meta = 'meta', // When result metadata exists 4 | Error = 'error', 5 | Stats = 'stats', 6 | JSON = 'json', 7 | Query = 'query', 8 | } 9 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_3_app_insights_api_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_3_app_insights_api_details.png -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/service/carbon-aggregator/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -f /opt/graphite/storage/carbon-aggregator-a.pid 4 | exec /usr/bin/python /opt/graphite/bin/carbon-aggregator.py start --debug 2>&1 >> /var/log/carbon-aggregator.log 5 | -------------------------------------------------------------------------------- /packages/grafana-data/src/types/orgs.ts: -------------------------------------------------------------------------------- 1 | export interface UserOrgDTO { 2 | orgId: number; 3 | name: string; 4 | role: OrgRole; 5 | } 6 | 7 | export enum OrgRole { 8 | Admin = 'Admin', 9 | Editor = 'Editor', 10 | Viewer = 'Viewer', 11 | } 12 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Segment/types.ts: -------------------------------------------------------------------------------- 1 | import { ReactElement } from 'react'; 2 | 3 | export interface SegmentProps { 4 | Component?: ReactElement; 5 | className?: string; 6 | allowCustomValue?: boolean; 7 | placeholder?: string; 8 | } 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/SingleStatShared/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | SingleStatBaseOptions, 3 | sharedSingleStatMigrationHandler, 4 | convertOldAngularValueMapping, 5 | sharedSingleStatPanelChangedHandler, 6 | } from './SingleStatBaseOptions'; 7 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/insert-two-delete-two/two-datasources.yml: -------------------------------------------------------------------------------- 1 | datasources: 2 | - name: Graphite 3 | type: graphite 4 | access: proxy 5 | url: http://localhost:8080 6 | delete_datasources: 7 | - name: old-graphite3 8 | -------------------------------------------------------------------------------- /pkg/tsdb/graphite/types.go: -------------------------------------------------------------------------------- 1 | package graphite 2 | 3 | import "github.com/grafana/grafana/pkg/tsdb" 4 | 5 | type TargetResponseDTO struct { 6 | Target string `json:"target"` 7 | DataPoints tsdb.TimeSeriesPoints `json:"datapoints"` 8 | } 9 | -------------------------------------------------------------------------------- /public/app/features/dashboard/components/TransformationsEditor/types.ts: -------------------------------------------------------------------------------- 1 | import { DataTransformerConfig } from '@grafana/data'; 2 | 3 | export interface TransformationsEditorTransformation { 4 | transformation: DataTransformerConfig; 5 | id: string; 6 | } 7 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_2_azure_monitor_api_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_2_azure_monitor_api_details.png -------------------------------------------------------------------------------- /packages/grafana-runtime/README.md: -------------------------------------------------------------------------------- 1 | # Grafana Runtime library 2 | 3 | > **@grafana/runtime is currently in BETA**. 4 | 5 | This package allows access to grafana services. It requires Grafana to be running already and the functions to be imported as externals. 6 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/insert-two-delete-two/one-datasources.yaml: -------------------------------------------------------------------------------- 1 | datasources: 2 | - name: Prometheus 3 | type: prometheus 4 | access: proxy 5 | url: http://localhost:9090 6 | delete_datasources: 7 | - name: old-graphite 8 | -------------------------------------------------------------------------------- /packages/grafana-data/src/types/select.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Used in select elements 3 | */ 4 | export interface SelectableValue { 5 | label?: string; 6 | value?: T; 7 | imgUrl?: string; 8 | description?: string; 9 | [key: string]: any; 10 | } 11 | -------------------------------------------------------------------------------- /packages/grafana-data/src/utils/object.ts: -------------------------------------------------------------------------------- 1 | export const objRemoveUndefined = (obj: any) => { 2 | return Object.keys(obj).reduce((acc: any, key) => { 3 | if (obj[key] !== undefined) { 4 | acc[key] = obj[key]; 5 | } 6 | return acc; 7 | }, {}); 8 | }; 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Table/Table.mdx: -------------------------------------------------------------------------------- 1 | import { Props, Preview } from "@storybook/addon-docs/blocks"; 2 | import { Table } from "./Table"; 3 | 4 | # Table 5 | 6 | Used for displaying tabular data 7 | 8 | ## Usage 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/jaeger-ui-components/src/common/__snapshots__/NewWindowIcon.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`NewWindowIcon renders as expected 1`] = ` 4 | 8 | `; 9 | -------------------------------------------------------------------------------- /public/app/core/lodash_extended.ts: -------------------------------------------------------------------------------- 1 | import _ from 'lodash'; 2 | 3 | /* 4 | Mixins :) 5 | */ 6 | _.mixin({ 7 | move: (array, fromIndex, toIndex) => { 8 | array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]); 9 | return array; 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /public/app/plugins/panel/gettingstarted/module.ts: -------------------------------------------------------------------------------- 1 | import { PanelPlugin } from '@grafana/data'; 2 | import { GettingStarted } from './GettingStarted'; 3 | 4 | // Simplest possible panel plugin 5 | export const plugin = new PanelPlugin(GettingStarted).setNoPadding(); 6 | -------------------------------------------------------------------------------- /devenv/bulk_alerting_dashboards/bulk_alerting_dashboards.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'Bulk alerting dashboards' 5 | folder: 'Bulk alerting dashboards' 6 | type: file 7 | options: 8 | path: devenv/bulk_alerting_dashboards 9 | 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/logrotate.d/graphite-statsd: -------------------------------------------------------------------------------- 1 | /var/log/*.log /var/log/*/*.log { 2 | weekly 3 | size 50M 4 | missingok 5 | rotate 10 6 | compress 7 | delaycompress 8 | notifempty 9 | copytruncate 10 | su root syslog 11 | } 12 | -------------------------------------------------------------------------------- /grafana-mixin/scripts/format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | cd "$(dirname "$0")"/.. 5 | 6 | . scripts/common.sh 7 | 8 | find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \ 9 | xargs -n 1 -- ${JSONNET_FMT} -i 10 | -------------------------------------------------------------------------------- /packages/grafana-data/src/field/FieldConfigOptionsRegistry.tsx: -------------------------------------------------------------------------------- 1 | import { Registry } from '../utils/Registry'; 2 | import { FieldConfigPropertyItem } from '../types/fieldOverrides'; 3 | 4 | export class FieldConfigOptionsRegistry extends Registry {} 5 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/templates/index.ts: -------------------------------------------------------------------------------- 1 | export { componentTpl } from './component.tsx.template'; 2 | export { storyTpl } from './story.tsx.template'; 3 | export { docsTpl } from './docs.mdx.template'; 4 | export { testTpl } from './component.test.tsx.template'; 5 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/FormField/_FormField.scss: -------------------------------------------------------------------------------- 1 | .form-field { 2 | display: flex; 3 | flex-direction: row; 4 | align-items: flex-start; 5 | text-align: left; 6 | position: relative; 7 | 8 | &--grow { 9 | flex-grow: 1; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/InputControl.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Rollup does not support renamed exports so do not change this to export { Controller as InputControl } ... 3 | */ 4 | import { Controller } from 'react-hook-form'; 5 | export const InputControl = Controller; 6 | -------------------------------------------------------------------------------- /pkg/cmd/grafana-cli/commands/testdata/grafana-simple-json-datasource-ec18fa4da8096a952608a7e4c7782b4260b41bcf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zen/grafana/master/pkg/cmd/grafana-cli/commands/testdata/grafana-simple-json-datasource-ec18fa4da8096a952608a7e4c7782b4260b41bcf.zip -------------------------------------------------------------------------------- /conf/provisioning/dashboards/sample.yaml: -------------------------------------------------------------------------------- 1 | # # config file version 2 | apiVersion: 1 3 | 4 | #providers: 5 | # - name: 'default' 6 | # orgId: 1 7 | # folder: '' 8 | # folderUid: '' 9 | # type: file 10 | # options: 11 | # path: /var/lib/grafana/dashboards 12 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/etc/service/graphite/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export PYTHONPATH=/opt/graphite/webapp && exec /usr/local/bin/gunicorn wsgi --workers=4 --bind=127.0.0.1:8080 --log-file=/var/log/gunicorn.log --preload --pythonpath=/opt/graphite/webapp/graphite 4 | -------------------------------------------------------------------------------- /devenv/docker/blocks/openldap/prepopulate/1_units.ldif: -------------------------------------------------------------------------------- 1 | dn: ou=groups,dc=grafana,dc=org 2 | ou: Groups 3 | objectclass: top 4 | objectclass: organizationalUnit 5 | 6 | dn: ou=users,dc=grafana,dc=org 7 | ou: Users 8 | objectclass: top 9 | objectclass: organizationalUnit 10 | -------------------------------------------------------------------------------- /packages/grafana-data/src/utils/testdata/roundtrip.csv: -------------------------------------------------------------------------------- 1 | #name#a,b,c 2 | #type#number,string,boolean 3 | #unit#ms,,s 4 | 10,"this ""has quotes"" inside",true 5 | 20,XX,false 6 | 30,YY,false 7 | 40,ZZ,true 8 | 50,"X,Y",true 9 | 60,"X 10 | Y",true 11 | 70,BB,false 12 | 13 | -------------------------------------------------------------------------------- /packages/grafana-e2e/cypress/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": false, 4 | "module": "commonjs", 5 | "types": ["cypress", "cypress-file-upload"] 6 | }, 7 | "extends": "@grafana/tsconfig", 8 | "include": ["**/*.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/grafana-e2e/test/cypress/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@grafana/toolkit/src/config/tsconfig.plugin.json", 3 | "include": ["**/*.ts"], 4 | "compilerOptions": { 5 | "baseUrl": "../node_modules", 6 | "types": ["cypress", "cypress-file-upload"] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pkg/models/home_dashboard.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import "time" 4 | 5 | type HomeDashboard struct { 6 | Id int64 7 | UserId int64 8 | AccountId int64 9 | 10 | Created time.Time 11 | Updated time.Time 12 | 13 | Data map[string]interface{} 14 | } 15 | -------------------------------------------------------------------------------- /public/app/core/utils/factors.ts: -------------------------------------------------------------------------------- 1 | // Returns the factors of a number 2 | // Example getFactors(12) -> [1, 2, 3, 4, 6, 12] 3 | export default function getFactors(num: number): number[] { 4 | return Array.from(new Array(num + 1), (_, i) => i).filter(i => num % i === 0); 5 | } 6 | -------------------------------------------------------------------------------- /scripts/build/ci-build/build-deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | _version="1.2.28" 5 | _tag="grafana/build-container:${_version}" 6 | 7 | _dpath=$(dirname "${BASH_SOURCE[0]}") 8 | cd "$_dpath" 9 | 10 | docker build -t $_tag . 11 | docker push $_tag 12 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus/alert.rules: -------------------------------------------------------------------------------- 1 | # Alert Rules 2 | 3 | ALERT AppCrash 4 | IF process_open_fds > 0 5 | FOR 15s 6 | LABELS { severity="critical" } 7 | ANNOTATIONS { 8 | summary = "Number of open fds > 0", 9 | description = "Just testing" 10 | } 11 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-e2e/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:buster-slim 2 | 3 | USER root 4 | ENV DEBIAN_FRONTEND=noninteractive 5 | 6 | COPY scripts scripts 7 | COPY install /usr/local 8 | 9 | RUN cd scripts && ./deploy.sh 10 | ENV DEBIAN_FRONTEND=newt 11 | -------------------------------------------------------------------------------- /public/app/core/specs/factors.test.ts: -------------------------------------------------------------------------------- 1 | import getFactors from 'app/core/utils/factors'; 2 | 3 | describe('factors', () => { 4 | it('should return factors for 12', () => { 5 | const factors = getFactors(12); 6 | expect(factors).toEqual([1, 2, 3, 4, 6, 12]); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /public/app/core/utils/applyStateChanges.ts: -------------------------------------------------------------------------------- 1 | export type MutateStateFunc = (state: S) => S; 2 | 3 | export const applyStateChanges = (state: S, ...args: Array>): S => { 4 | return args.reduce((all, cur) => { 5 | return cur(all); 6 | }, state); 7 | }; 8 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/mixed/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "-- Mixed --", 4 | "id": "mixed", 5 | 6 | "builtIn": true, 7 | "mixed": true, 8 | "metrics": true, 9 | 10 | "queryOptions": { 11 | "minInterval": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /public/app/types/location.ts: -------------------------------------------------------------------------------- 1 | import { UrlQueryMap } from '@grafana/data'; 2 | 3 | export interface LocationState { 4 | url: string; 5 | path: string; 6 | query: UrlQueryMap; 7 | routeParams: UrlQueryMap; 8 | replace: boolean; 9 | lastUpdated: number; 10 | } 11 | -------------------------------------------------------------------------------- /public/sass/components/_panel_alertlist.scss: -------------------------------------------------------------------------------- 1 | .panel-alert-list { 2 | overflow-y: auto; 3 | } 4 | 5 | .panel-alert-list__no-alerts { 6 | display: flex; 7 | align-items: center; 8 | justify-content: center; 9 | width: 100%; 10 | height: calc(100% - 30px); 11 | } 12 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "targets": { 7 | "browsers": "last 3 versions" 8 | }, 9 | "useBuiltIns": "entry", 10 | "modules": "false", 11 | } 12 | ] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /devenv/dashboards.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'gdev dashboards' 5 | folder: 'gdev dashboards' 6 | folderUid: '' 7 | type: file 8 | allowUiUpdates: false 9 | updateIntervalSeconds: 60 10 | options: 11 | path: devenv/dev-dashboards 12 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus_basic_auth_proxy/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | # This will proxy all requests for http://localhost:10090 to 2 | # http://prometheus:9090 (Prometheus inside the docker compose) 3 | 4 | nginxproxy: 5 | build: docker/blocks/nginx_proxy 6 | network_mode: host 7 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/broken-yaml/broken.yaml: -------------------------------------------------------------------------------- 1 | notifiers: 2 | - name: notification-channel-1 3 | type: slack 4 | org_id: 2 5 | is_default: true 6 | settings: 7 | recipient: "XXX" 8 | token: "xoxb" 9 | uploadImage: true -------------------------------------------------------------------------------- /devenv/docker/buildcontainer/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker kill gfbuild 4 | docker rm gfbuild 5 | 6 | docker build --tag "grafana/buildcontainer" docker/buildcontainer 7 | 8 | docker run -i -t \ 9 | -v /home/torkel/dev/go:/go \ 10 | --name gfbuild grafana/buildcontainer 11 | -------------------------------------------------------------------------------- /packages/grafana-data/src/text/markdown.test.ts: -------------------------------------------------------------------------------- 1 | import { renderMarkdown } from './markdown'; 2 | 3 | describe('Markdown wrapper', () => { 4 | it('should be able to handle undefined value', () => { 5 | const str = renderMarkdown(undefined); 6 | expect(str).toBe(''); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/grafana-data/src/types/templateVars.ts: -------------------------------------------------------------------------------- 1 | export type VariableType = 'query' | 'adhoc' | 'constant' | 'datasource' | 'interval' | 'textbox' | 'custom' | 'system'; 2 | 3 | export interface VariableModel { 4 | type: VariableType; 5 | name: string; 6 | label: string | null; 7 | } 8 | -------------------------------------------------------------------------------- /packages/grafana-data/src/vector/vectorToArray.ts: -------------------------------------------------------------------------------- 1 | import { Vector } from '../types/vector'; 2 | 3 | export function vectorToArray(v: Vector): T[] { 4 | const arr: T[] = []; 5 | for (let i = 0; i < v.length; i++) { 6 | arr[i] = v.get(i); 7 | } 8 | return arr; 9 | } 10 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/List/List.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ListProps, AbstractList } from './AbstractList'; 3 | 4 | export class List extends React.PureComponent> { 5 | render() { 6 | return ; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pkg/tsdb/prometheus/types.go: -------------------------------------------------------------------------------- 1 | package prometheus 2 | 3 | import "time" 4 | 5 | type PrometheusQuery struct { 6 | Expr string 7 | Step time.Duration 8 | LegendFormat string 9 | Start time.Time 10 | End time.Time 11 | RefId string 12 | } 13 | -------------------------------------------------------------------------------- /scripts/build/ci-msi-build/testbuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | _image="ee-msi-build" 4 | _container="ee-build" 5 | 6 | docker build -t $_image . 7 | 8 | docker run --rm -d --name $_container $_image sleep 100 9 | docker cp $_container:/tmp/scratch . 10 | docker stop $_container 11 | 12 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/rpm-oss-stable.list: -------------------------------------------------------------------------------- 1 | [grafana] 2 | name=grafana 3 | baseurl=https://packages.grafana.com/oss/rpm 4 | repo_gpgcheck=1 5 | enabled=1 6 | gpgcheck=1 7 | gpgkey=https://packages.grafana.com/gpg.key 8 | sslverify=1 9 | sslcacert=/etc/pki/tls/certs/ca-bundle.crt 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/multiple-openldap/admins-ldap-server/prepopulate/3_groups.ldif: -------------------------------------------------------------------------------- 1 | dn: cn=admins,ou=groups,dc=grafana,dc=org 2 | cn: admins 3 | objectClass: groupOfNames 4 | objectClass: top 5 | member: cn=ldap-admin,ou=users,dc=grafana,dc=org 6 | member: cn=ldap-torkel,ou=users,dc=grafana,dc=org 7 | -------------------------------------------------------------------------------- /packages/grafana-e2e/src/flows/editPanel.ts: -------------------------------------------------------------------------------- 1 | import { configurePanel, PartialEditPanelConfig } from './configurePanel'; 2 | 3 | export const editPanel = (config: Partial) => 4 | configurePanel({ 5 | ...config, 6 | isEdit: true, 7 | isExplore: false, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Badge/Badge.mdx: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Badge 4 | 5 | The badge component adds meta information to other content, for example about release status or new elements. You can add any `Icon` component or use the badge without an icon. 6 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Monaco/CodeEditor.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Preview, Props } from '@storybook/addon-docs/blocks'; 2 | import { CodeEditor } from './CodeEditorLazy'; 3 | 4 | 5 | 6 | # CodeEditor 7 | 8 | Monaco Code editor 9 | -------------------------------------------------------------------------------- /pkg/api/dtos/ngalert.go: -------------------------------------------------------------------------------- 1 | package dtos 2 | 3 | import ( 4 | "time" 5 | 6 | eval "github.com/grafana/grafana/pkg/services/ngalert" 7 | ) 8 | 9 | type EvalAlertConditionCommand struct { 10 | Condition eval.Condition `json:"condition"` 11 | Now time.Time `json:"now"` 12 | } 13 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/rpm-ee-stable.list: -------------------------------------------------------------------------------- 1 | [grafana] 2 | name=grafana 3 | baseurl=https://packages.grafana.com/enterprise/rpm 4 | repo_gpgcheck=1 5 | enabled=1 6 | gpgcheck=1 7 | gpgkey=https://packages.grafana.com/gpg.key 8 | sslverify=1 9 | sslcacert=/etc/pki/tls/certs/ca-bundle.crt 10 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/rpm-oss-beta.list: -------------------------------------------------------------------------------- 1 | [grafana] 2 | name=grafana 3 | baseurl=https://packages.grafana.com/oss/rpm-beta 4 | repo_gpgcheck=1 5 | enabled=1 6 | gpgcheck=1 7 | gpgkey=https://packages.grafana.com/gpg.key 8 | sslverify=1 9 | sslcacert=/etc/pki/tls/certs/ca-bundle.crt 10 | -------------------------------------------------------------------------------- /scripts/version.star: -------------------------------------------------------------------------------- 1 | load( 2 | 'scripts/release.star', 3 | 'release_pipelines', 4 | ) 5 | 6 | ver_mode = 'version-branch' 7 | 8 | def version_branch_pipelines(): 9 | return release_pipelines(ver_mode=ver_mode, trigger={ 10 | 'ref': ['refs/heads/v*',], 11 | }) 12 | -------------------------------------------------------------------------------- /devenv/docker/blocks/multiple-openldap/ldap-server/prepopulate/1_units.ldif: -------------------------------------------------------------------------------- 1 | dn: ou=groups,dc=grafana,dc=org 2 | ou: Groups 3 | objectclass: top 4 | objectclass: organizationalUnit 5 | 6 | dn: ou=users,dc=grafana,dc=org 7 | ou: Users 8 | objectclass: top 9 | objectclass: organizationalUnit 10 | -------------------------------------------------------------------------------- /pkg/services/login/errors.go: -------------------------------------------------------------------------------- 1 | package login 2 | 3 | import "errors" 4 | 5 | var ( 6 | ErrInvalidCredentials = errors.New("Invalid Username or Password") 7 | ErrUsersQuotaReached = errors.New("Users quota reached") 8 | ErrGettingUserQuota = errors.New("Error getting user quota") 9 | ) 10 | -------------------------------------------------------------------------------- /pkg/services/provisioning/dashboards/testdata/test-configs/dashboards-from-disk/sample.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | #providers: 4 | #- name: 'gasdf' 5 | # orgId: 2 6 | # folder: 'developers' 7 | # editable: true 8 | # type: file 9 | # options: 10 | # path: /var/lib/grafana/dashboards 11 | -------------------------------------------------------------------------------- /plugins-bundled/internal/input-datasource/src/utils.ts: -------------------------------------------------------------------------------- 1 | import { toDataFrame, DataFrameDTO, toCSV } from '@grafana/data'; 2 | 3 | export function dataFrameToCSV(dto?: DataFrameDTO[]) { 4 | if (!dto || !dto.length) { 5 | return ''; 6 | } 7 | return toCSV(dto.map(v => toDataFrame(v))); 8 | } 9 | -------------------------------------------------------------------------------- /scripts/grunt/options/clean.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | 'use strict'; 3 | 4 | return { 5 | release: ['<%= destDir %>', '<%= tempDir %>', '<%= genDir %>'], 6 | build: ['<%= srcDir %>/build'], 7 | temp: ['<%= tempDir %>'], 8 | packaging: [], 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /scripts/grunt/options/sasslint.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | 'use strict'; 3 | return { 4 | options: { 5 | configFile: 'public/sass/.sass-lint.yml', 6 | }, 7 | src: ['public/sass/**/*.scss', 'packages/**/*.scss', '!**/node_modules/**/*.scss'], 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /scripts/verify-repo-update/rpm-ee-beta.list: -------------------------------------------------------------------------------- 1 | [grafana] 2 | name=grafana 3 | baseurl=https://packages.grafana.com/enterprise/rpm-beta 4 | repo_gpgcheck=1 5 | enabled=1 6 | gpgcheck=1 7 | gpgkey=https://packages.grafana.com/gpg.key 8 | sslverify=1 9 | sslcacert=/etc/pki/tls/certs/ca-bundle.crt 10 | -------------------------------------------------------------------------------- /conf/provisioning/plugins/sample.yaml: -------------------------------------------------------------------------------- 1 | # # config file version 2 | apiVersion: 1 3 | 4 | # apps: 5 | # - type: grafana-example-app 6 | # org_name: Main Org. 7 | # disabled: true 8 | # - type: raintank-worldping-app 9 | # org_id: 1 10 | # jsonData: 11 | # apiKey: "API KEY" 12 | -------------------------------------------------------------------------------- /devenv/docker/blocks/multiple-openldap/admins-ldap-server/prepopulate/1_units.ldif: -------------------------------------------------------------------------------- 1 | dn: ou=groups,dc=grafana,dc=org 2 | ou: Groups 3 | objectclass: top 4 | objectclass: organizationalUnit 5 | 6 | dn: ou=users,dc=grafana,dc=org 7 | ou: Users 8 | objectclass: top 9 | objectclass: organizationalUnit 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/zipkin/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | # There is no data generator for this so easiest way to get some data here is run this example app 2 | # https://github.com/openzipkin/zipkin-js-example/tree/master/web 3 | zipkin: 4 | image: openzipkin/zipkin:latest 5 | ports: 6 | - "9411:9411" 7 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/templates/component.tsx.template.ts: -------------------------------------------------------------------------------- 1 | export const componentTpl = `import React, { FC } from 'react'; 2 | 3 | export interface Props {}; 4 | 5 | export const <%= name %>: FC = (props) => { 6 | return ( 7 |
Hello world!
8 | ) 9 | }; 10 | `; 11 | -------------------------------------------------------------------------------- /pkg/models/address.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | type Address struct { 4 | Address1 string `json:"address1"` 5 | Address2 string `json:"address2"` 6 | City string `json:"city"` 7 | ZipCode string `json:"zipCode"` 8 | State string `json:"state"` 9 | Country string `json:"country"` 10 | } 11 | -------------------------------------------------------------------------------- /devenv/docker/blocks/postgres_tests/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | postgrestest: 2 | build: 3 | context: docker/blocks/postgres_tests 4 | environment: 5 | POSTGRES_USER: grafanatest 6 | POSTGRES_PASSWORD: grafanatest 7 | ports: 8 | - "5432:5432" 9 | tmpfs: /var/lib/postgresql/data:rw -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci-e2e/common.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## 4 | ## Common variable declarations 5 | ## 6 | 7 | DOCKER_IMAGE_BASE_NAME="grafana/grafana-plugin-ci-e2e" 8 | DOCKER_IMAGE_VERSION="1.0.1" 9 | DOCKER_IMAGE_NAME="${DOCKER_IMAGE_BASE_NAME}:${DOCKER_IMAGE_VERSION}" 10 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/List/InlineList.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ListProps, AbstractList } from './AbstractList'; 3 | 4 | export class InlineList extends React.PureComponent> { 5 | render() { 6 | return ; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/utils/storybook/useSize.ts: -------------------------------------------------------------------------------- 1 | import { select } from '@storybook/addon-knobs'; 2 | import { ComponentSize } from '../../types/size'; 3 | 4 | export function useSize(size: ComponentSize = 'md') { 5 | const sizes = ['xs', 'sm', 'md', 'lg']; 6 | return select('Size', sizes, size); 7 | } 8 | -------------------------------------------------------------------------------- /public/app/core/services/all.ts: -------------------------------------------------------------------------------- 1 | import './alert_srv'; 2 | import './util_srv'; 3 | import './context_srv'; 4 | import './timer'; 5 | import './analytics'; 6 | import './popover_srv'; 7 | import './segment_srv'; 8 | import './backend_srv'; 9 | import './dynamic_directive_srv'; 10 | import './bridge_srv'; 11 | -------------------------------------------------------------------------------- /scripts/circle-test-mysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # shellcheck source=./scripts/helpers/exit-if-fail.sh 4 | source "$(dirname "$0")/helpers/exit-if-fail.sh" 5 | 6 | export GRAFANA_TEST_DB=mysql 7 | 8 | time for d in $(go list ./pkg/...); do 9 | exit_if_fail go test -tags=integration "$d" 10 | done 11 | -------------------------------------------------------------------------------- /devenv/docker/blocks/opentsdb/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | opentsdb: 2 | image: petergrace/opentsdb-docker:latest 3 | ports: 4 | - "4242:4242" 5 | 6 | fake-opentsdb-data: 7 | image: grafana/fake-data-gen 8 | network_mode: bridge 9 | environment: 10 | FD_DATASOURCE: opentsdb 11 | 12 | -------------------------------------------------------------------------------- /pkg/models/search.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | type SearchHit struct { 4 | Id int64 `json:"id"` 5 | Title string `json:"title"` 6 | Uri string `json:"uri"` 7 | Type string `json:"type"` 8 | Tags []string `json:"tags"` 9 | IsStarred bool `json:"isStarred"` 10 | } 11 | -------------------------------------------------------------------------------- /pkg/services/provisioning/datasources/testdata/two-datasources/two-datasources.yaml: -------------------------------------------------------------------------------- 1 | datasources: 2 | - name: Graphite 3 | type: graphite 4 | access: proxy 5 | url: http://localhost:8080 6 | - name: Prometheus 7 | type: prometheus 8 | access: proxy 9 | url: http://localhost:9090 10 | -------------------------------------------------------------------------------- /scripts/circle-test-postgres.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # shellcheck source=./scripts/helpers/exit-if-fail.sh 4 | source "$(dirname "$0")/helpers/exit-if-fail.sh" 5 | 6 | export GRAFANA_TEST_DB=postgres 7 | 8 | time for d in $(go list ./pkg/...); do 9 | exit_if_fail go test -tags=integration "$d" 10 | done 11 | -------------------------------------------------------------------------------- /devenv/docker/blocks/openldap/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | openldap: 2 | container_name: ldap 3 | build: docker/blocks/openldap 4 | environment: 5 | SLAPD_PASSWORD: grafana 6 | SLAPD_DOMAIN: grafana.org 7 | SLAPD_ADDITIONAL_MODULES: memberof 8 | ports: 9 | - "389:389" 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/sources/whatsnew/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "What's new in Grafana" 3 | aliases = ["/docs/grafana/latest/guides/"] 4 | [menu.docs] 5 | name = "What's New In Grafana" 6 | identifier = "whatsnew" 7 | weight = 140 8 | +++ 9 | 10 | # What's new 11 | 12 | This section contains pages with Grafana release notes. 13 | -------------------------------------------------------------------------------- /emails/grunt/replace.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | dist: { 3 | overwrite: true, 4 | src: ['dist/*.html'], 5 | replacements: [ 6 | { 7 | from: '[[', 8 | to: '{{', 9 | }, 10 | { 11 | from: ']]', 12 | to: '}}', 13 | }, 14 | ], 15 | }, 16 | }; 17 | -------------------------------------------------------------------------------- /packages/grafana-e2e/src/flows/saveDashboard.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '../index'; 2 | 3 | export const saveDashboard = () => { 4 | e2e.pages.Dashboard.Toolbar.toolbarItems('Save dashboard').click(); 5 | 6 | e2e.pages.SaveDashboardModal.save().click(); 7 | 8 | e2e.flows.assertSuccessNotification(); 9 | }; 10 | -------------------------------------------------------------------------------- /packages/grafana-runtime/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './backendSrv'; 2 | export * from './AngularLoader'; 3 | export * from './dataSourceSrv'; 4 | export * from './LocationSrv'; 5 | export * from './EchoSrv'; 6 | export * from './templateSrv'; 7 | export * from './legacyAngularInjector'; 8 | export * from './live'; 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/EmptySearchResult/_EmptySearchResult.scss: -------------------------------------------------------------------------------- 1 | .empty-search-result { 2 | border-left: 3px solid $info-box-border-color; 3 | background-color: $empty-list-cta-bg; 4 | padding: $spacer; 5 | min-width: 350px; 6 | border-radius: $border-radius; 7 | margin-bottom: $spacer * 2; 8 | } 9 | -------------------------------------------------------------------------------- /pkg/middleware/perf.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import ( 4 | "net/http" 5 | 6 | "github.com/grafana/grafana/pkg/models" 7 | "gopkg.in/macaron.v1" 8 | ) 9 | 10 | func MeasureRequestTime() macaron.Handler { 11 | return func(res http.ResponseWriter, req *http.Request, c *models.ReqContext) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/grafana/README.md: -------------------------------------------------------------------------------- 1 | # Grafana Fake Data Datasource - Native Plugin 2 | 3 | This is the built in Fake Data Datasource that is used before any datasources are set up in your Grafana installation. It means you can create a graph without any data and still get an idea of what it would look like. 4 | -------------------------------------------------------------------------------- /public/app/plugins/panel/heatmap/README.md: -------------------------------------------------------------------------------- 1 | # Heatmap Panel - Native Plugin 2 | 3 | The Heatmap panel allows you to view histograms over time and is **included** with Grafana. 4 | 5 | Read more about it here: 6 | 7 | [http://docs.grafana.org/features/panels/heatmap/](http://docs.grafana.org/features/panels/heatmap/) 8 | -------------------------------------------------------------------------------- /public/test/helpers/getDashboardModel.ts: -------------------------------------------------------------------------------- 1 | import { DashboardModel } from '../../app/features/dashboard/state'; 2 | 3 | export const getDashboardModel = (json: any, meta: any = {}) => { 4 | const getVariablesFromState = () => json.templating.list; 5 | return new DashboardModel(json, meta, getVariablesFromState); 6 | }; 7 | -------------------------------------------------------------------------------- /devenv/docker/blocks/mysql_opendata/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | mysql_opendata: 2 | build: docker/blocks/mysql_opendata 3 | environment: 4 | MYSQL_ROOT_PASSWORD: rootpass 5 | MYSQL_DATABASE: testdata 6 | MYSQL_USER: grafana 7 | MYSQL_PASSWORD: password 8 | ports: 9 | - "3307:3306" 10 | -------------------------------------------------------------------------------- /e2e/wait-for-grafana: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | . e2e/variables 5 | 6 | HOST=${HOST:-$DEFAULT_HOST} 7 | PORT=${PORT:-$DEFAULT_PORT} 8 | 9 | echo -e "Waiting for grafana-server to finish starting, host=$HOST, port=$PORT" 10 | 11 | timeout 60 bash -c 'until nc -z $0 $1; do sleep 1; done' $HOST $PORT 12 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/types/input.ts: -------------------------------------------------------------------------------- 1 | export interface ValidationRule { 2 | rule: (valueToValidate: string) => boolean; 3 | errorMessage: string; 4 | } 5 | 6 | export interface ValidationEvents { 7 | // Event name should be one of EventsWithValidation enum 8 | [eventName: string]: ValidationRule[]; 9 | } 10 | -------------------------------------------------------------------------------- /pkg/util/math.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | // MaxInt returns the larger of x or y. 4 | func MaxInt(x, y int) int { 5 | if x < y { 6 | return y 7 | } 8 | return x 9 | } 10 | 11 | // MinInt returns the smaller of x or y. 12 | func MinInt(x, y int) int { 13 | if x > y { 14 | return y 15 | } 16 | return x 17 | } 18 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/cloud-monitoring/partials/annotations.editor.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /public/img/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #2b5797 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /devenv/docker/blocks/prometheus2/alert.yml: -------------------------------------------------------------------------------- 1 | groups: 2 | - name: ALERT 3 | rules: 4 | - alert: AppCrash 5 | expr: process_open_fds > 0 6 | for: 15s 7 | labels: 8 | severity: critical 9 | annotations: 10 | summary: Number of open fds > 0 11 | description: Just testing 12 | -------------------------------------------------------------------------------- /e2e/start-and-run-suite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . e2e/variables 4 | 5 | if [ "$BASE_URL" != "" ]; then 6 | echo -e "BASE_URL set, skipping starting server" 7 | else 8 | # Start it in the background 9 | ./e2e/start-server 2>&1 > e2e/server.log & 10 | ./e2e/wait-for-grafana 11 | fi 12 | 13 | ./e2e/run-suite "$@" 14 | -------------------------------------------------------------------------------- /packages/grafana-data/src/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './string'; 2 | export * from './markdown'; 3 | export * from './text'; 4 | import { escapeHtml, hasAnsiCodes, sanitize, sanitizeUrl } from './sanitize'; 5 | 6 | export const textUtil = { 7 | escapeHtml, 8 | hasAnsiCodes, 9 | sanitize, 10 | sanitizeUrl, 11 | }; 12 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/docker/grafana-plugin-ci/test/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function finish { 4 | echo "Exiting and cleaning up docker image" 5 | docker-compose down 6 | } 7 | trap finish EXIT 8 | 9 | # Enter the docker container 10 | docker-compose run citest bash -c "cd /home/circleci; exec bash --login -i" 11 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/webpack/overridesNamedExport/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const { cloneDeep } = require('lodash'); 3 | 4 | module.exports.getWebpackConfig = (originalConfig, options) => { 5 | const config = cloneDeep(originalConfig); 6 | config.name = 'customConfig'; 7 | return config; 8 | }; 9 | -------------------------------------------------------------------------------- /pkg/tsdb/influxdb/flux/testdata/non_standard_time_column.csv: -------------------------------------------------------------------------------- 1 | #group,false,false,true,true,false,true 2 | #datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,double,string 3 | #default,_result,,,,, 4 | ,result,table,_start_water,_stop_water,_value,st 5 | ,,0,2020-06-28T17:50:13.012584046Z,2020-06-29T17:50:13.012584046Z,156.304,1 6 | -------------------------------------------------------------------------------- /scripts/helpers/exit-if-fail.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function exit_if_fail { 4 | # shellcheck disable=SC2124 5 | command=$@ 6 | echo "Executing '$command'" 7 | eval "$command" 8 | rc=$? 9 | if [ $rc -ne 0 ]; then 10 | echo "'$command' returned $rc." 11 | exit $rc 12 | fi 13 | } 14 | -------------------------------------------------------------------------------- /devenv/docker/blocks/elastic1/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | elasticsearch1: 2 | image: elasticsearch:1.7.6 3 | command: elasticsearch -Des.network.host=0.0.0.0 4 | ports: 5 | - "11200:9200" 6 | - "11300:9300" 7 | volumes: 8 | - ./blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 9 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/PanelOptionsGrid/_PanelOptionsGrid.scss: -------------------------------------------------------------------------------- 1 | .panel-options-grid { 2 | display: grid; 3 | grid-template-columns: repeat(1, 1fr); 4 | grid-row-gap: 10px; 5 | grid-column-gap: 10px; 6 | 7 | @include media-breakpoint-up(lg) { 8 | grid-template-columns: repeat(3, 1fr); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /pkg/services/provisioning/plugins/testdata/test-configs/correct-properties/correct-properties.yaml: -------------------------------------------------------------------------------- 1 | apps: 2 | - type: $ENABLE_PLUGIN_VAR 3 | org_id: 2 4 | disabled: false 5 | - type: test-plugin-2 6 | org_id: 3 7 | disabled: true 8 | - type: test-plugin 9 | org_name: Org 3 10 | - type: test-plugin-2 11 | -------------------------------------------------------------------------------- /public/app/features/manage-dashboards/types.ts: -------------------------------------------------------------------------------- 1 | export interface Snapshot { 2 | created: string; 3 | expires: string; 4 | external: boolean; 5 | externalUrl: string; 6 | id: number; 7 | key: string; 8 | name: string; 9 | orgId: number; 10 | updated: string; 11 | url?: string; 12 | userId: number; 13 | } 14 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/opentsdb/README.md: -------------------------------------------------------------------------------- 1 | # OpenTSDB Data Source - Native Plugin 2 | 3 | Grafana ships with **built in** support for OpenTSDB, a scalable, distributed time series database. 4 | 5 | Read more about it here: 6 | 7 | [http://docs.grafana.org/datasources/opentsdb/](http://docs.grafana.org/datasources/opentsdb/) 8 | -------------------------------------------------------------------------------- /packages/grafana-data/src/dataframe/index.ts: -------------------------------------------------------------------------------- 1 | export * from './DataFrameView'; 2 | export * from './FieldCache'; 3 | export * from './CircularDataFrame'; 4 | export * from './MutableDataFrame'; 5 | export * from './processDataFrame'; 6 | export * from './dimensions'; 7 | export * from './ArrowDataFrame'; 8 | export * from './ArrayDataFrame'; 9 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/templates/component.test.tsx.template.ts: -------------------------------------------------------------------------------- 1 | export const testTpl = ` 2 | import React from 'react'; 3 | import { shallow } from 'enzyme'; 4 | import { <%= name %> } from './<%= name %>'; 5 | 6 | 7 | describe('<%= name %>', () => { 8 | it.skip('should render', () => { 9 | 10 | }); 11 | }); 12 | `; 13 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/mocks/jestSetup/overrides/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "jest": { 3 | "moduleNameMapper": { 4 | "someOverride": "somePath" 5 | }, 6 | "snapshotSerializers": "serializers", 7 | "globalSetup": "path", 8 | "globalTeardown": "path", 9 | "testEnvironment": "node" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/jaeger-ui-components/src/common/__snapshots__/UiFindInput.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`UiFindInput rendering renders as expected 1`] = ` 4 | } 9 | /> 10 | `; 11 | -------------------------------------------------------------------------------- /pkg/util/shortid_generator_test.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "testing" 4 | 5 | func TestAllowedCharMatchesUidPattern(t *testing.T) { 6 | for _, c := range allowedChars { 7 | if !IsValidShortUID(string(c)) { 8 | t.Fatalf("charset for creating new shortids contains chars not present in uid pattern") 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /public/app/core/mod_defs.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'app/core/controllers/all' { 2 | let json: any; 3 | export { json }; 4 | } 5 | 6 | declare module 'app/core/routes/all' { 7 | let json: any; 8 | export { json }; 9 | } 10 | 11 | declare module 'app/core/services/all' { 12 | let json: any; 13 | export default json; 14 | } 15 | -------------------------------------------------------------------------------- /public/app/features/dashboard/state/selectors.ts: -------------------------------------------------------------------------------- 1 | import { DashboardState, PanelState } from 'app/types'; 2 | 3 | export function getPanelStateById(state: DashboardState, panelId: number): PanelState { 4 | if (!panelId) { 5 | return {} as PanelState; 6 | } 7 | 8 | return state.panels[panelId] ?? ({} as PanelState); 9 | } 10 | -------------------------------------------------------------------------------- /public/app/features/search/constants.ts: -------------------------------------------------------------------------------- 1 | export const NO_ID_SECTIONS = ['Recent', 'Starred']; 2 | // Height of the search result item 3 | export const SEARCH_ITEM_HEIGHT = 48; 4 | export const SEARCH_ITEM_MARGIN = 4; 5 | export const DEFAULT_SORT = { label: 'A-Z', value: 'alpha-asc' }; 6 | export const SECTION_STORAGE_KEY = 'search.sections'; 7 | -------------------------------------------------------------------------------- /public/img/icons_dark_theme/icon_remove.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /scripts/build/ci-build-windows/README.md: -------------------------------------------------------------------------------- 1 | # Windows Build Docker Image 2 | This directory contains a Dockerfile for building a Windows based image containing 3 | our CI build environment. 4 | 5 | To build the Docker image: 6 | 7 | ``` 8 | mage 9 | ``` 10 | 11 | To publish the Docker image: 12 | 13 | ``` 14 | mage publish 15 | ``` 16 | -------------------------------------------------------------------------------- /scripts/grunt/options/webpack.js: -------------------------------------------------------------------------------- 1 | const dev = require('../../webpack/webpack.dev.js'); 2 | const prod = require('../../webpack/webpack.prod.js'); 3 | 4 | module.exports = function() { 5 | 'use strict'; 6 | return { 7 | options: { 8 | stats: false, 9 | }, 10 | dev: dev, 11 | prod: prod, 12 | }; 13 | }; 14 | -------------------------------------------------------------------------------- /packages/grafana-e2e/src/flows/setDashboardTimeRange.ts: -------------------------------------------------------------------------------- 1 | import { e2e } from '../index'; 2 | import { setTimeRange, TimeRangeConfig } from './setTimeRange'; 3 | 4 | export { TimeRangeConfig }; 5 | 6 | export const setDashboardTimeRange = (config: TimeRangeConfig) => 7 | e2e.pages.Dashboard.Toolbar.navBar().within(() => setTimeRange(config)); 8 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/tsconfig.plugin.local.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDir": "./src", 4 | "baseUrl": "./src", 5 | "typeRoots": ["./node_modules/@types"], 6 | "jsx": "react" 7 | }, 8 | "extends": "@grafana/toolkit/src/config/tsconfig.plugin.json", 9 | "include": ["src", "types"] 10 | } 11 | -------------------------------------------------------------------------------- /pkg/plugins/testdata/unsigned/plugin/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "Test", 4 | "id": "test", 5 | "backend": true, 6 | "state": "alpha", 7 | "info": { 8 | "description": "Test", 9 | "author": { 10 | "name": "Grafana Labs", 11 | "url": "https://grafana.com" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /public/app/features/annotations/all.ts: -------------------------------------------------------------------------------- 1 | import { AnnotationsSrv } from './annotations_srv'; 2 | import { eventEditor } from './event_editor'; 3 | import { EventManager } from './event_manager'; 4 | import { annotationTooltipDirective } from './annotation_tooltip'; 5 | export { AnnotationsSrv, eventEditor, EventManager, annotationTooltipDirective }; 6 | -------------------------------------------------------------------------------- /ROADMAP.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | 3 | The roadmap is a tentative plan for the core development team. Things change constantly as pull requests come in and priorities change, but it will give you an idea of our current vision and plan. 4 | 5 | To view the Roadmap, go to the Issues tab on GitHub. There you will find three roadmap issues pinned at the top. 6 | -------------------------------------------------------------------------------- /devenv/docker/blocks/smtp/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:centos7 2 | LABEL maintainer="Przemyslaw Ozgo " 3 | 4 | RUN \ 5 | yum update -y && \ 6 | yum install -y net-snmp net-snmp-utils && \ 7 | yum clean all 8 | 9 | COPY bootstrap.sh /tmp/bootstrap.sh 10 | 11 | EXPOSE 161 12 | 13 | ENTRYPOINT ["/tmp/bootstrap.sh"] 14 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declarationDir": "dist", 4 | "outDir": "compiled", 5 | "rootDirs": ["."], 6 | "typeRoots": ["node_modules/@types"] 7 | }, 8 | "exclude": ["dist", "node_modules"], 9 | "extends": "@grafana/tsconfig", 10 | "include": ["src/**/*.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/config/utils/getPluginId.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | 3 | let PLUGIN_ID: string; 4 | 5 | export const getPluginId = () => { 6 | if (!PLUGIN_ID) { 7 | const pluginJson = require(path.resolve(process.cwd(), 'src/plugin.json')); 8 | PLUGIN_ID = pluginJson.id; 9 | } 10 | return PLUGIN_ID; 11 | }; 12 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Segment/index.ts: -------------------------------------------------------------------------------- 1 | export { Segment } from './Segment'; 2 | export { SegmentAsync } from './SegmentAsync'; 3 | export { SegmentSelect } from './SegmentSelect'; 4 | export { SegmentInput } from './SegmentInput'; 5 | export { SegmentProps } from './types'; 6 | export { useExpandableLabel } from './useExpandableLabel'; 7 | -------------------------------------------------------------------------------- /pkg/util/split_email.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "strings" 4 | 5 | // SplitEmails splits addresses with a few different ways 6 | func SplitEmails(emails string) []string { 7 | return strings.FieldsFunc(emails, func(r rune) bool { 8 | switch r { 9 | case ',', ';', '\n': 10 | return true 11 | } 12 | return false 13 | }) 14 | } 15 | -------------------------------------------------------------------------------- /public/app/core/hooks/useRefMounted.ts: -------------------------------------------------------------------------------- 1 | import { useRef, useEffect } from 'react'; 2 | 3 | export const useRefMounted = () => { 4 | const refMounted = useRef(false); 5 | useEffect(() => { 6 | refMounted.current = true; 7 | return () => { 8 | refMounted.current = false; 9 | }; 10 | }); 11 | return refMounted; 12 | }; 13 | -------------------------------------------------------------------------------- /public/app/features/org/__snapshots__/OrgProfile.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Render should render component 1`] = ` 4 |
12 | 13 | 14 | `; 15 | -------------------------------------------------------------------------------- /public/app/plugins/datasource/zipkin/utils/transforms.test.ts: -------------------------------------------------------------------------------- 1 | import { transformResponse } from './transforms'; 2 | import { jaegerTrace, zipkinResponse } from './testData'; 3 | 4 | describe('transformResponse', () => { 5 | it('transforms response', () => { 6 | expect(transformResponse(zipkinResponse)).toEqual(jaegerTrace); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /public/app/plugins/panel/graph/types.ts: -------------------------------------------------------------------------------- 1 | export interface GraphPanelOptions { 2 | // Panel level options 3 | } 4 | 5 | export interface GraphFieldConfig { 6 | // Custom field properties 7 | } 8 | 9 | export interface DataWarning { 10 | title: string; 11 | tip: string; 12 | action?: () => void; 13 | actionText?: string; 14 | } 15 | -------------------------------------------------------------------------------- /devenv/docker/blocks/graphite1/conf/opt/graphite/conf/blacklist.conf: -------------------------------------------------------------------------------- 1 | # This file takes a single regular expression per line 2 | # If USE_WHITELIST is set to True in carbon.conf, any metrics received which 3 | # match one of these expressions will be dropped 4 | # This file is reloaded automatically when changes are made 5 | ^some\.noisy\.metric\.prefix\..* 6 | -------------------------------------------------------------------------------- /packages/grafana-e2e-selectors/src/selectors/index.ts: -------------------------------------------------------------------------------- 1 | import { Pages } from './pages'; 2 | import { Components } from './components'; 3 | import { E2ESelectors } from '../types'; 4 | 5 | export const selectors: { pages: E2ESelectors; components: E2ESelectors } = { 6 | pages: Pages, 7 | components: Components, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/grafana-toolkit/src/cli/tasks/template.ts: -------------------------------------------------------------------------------- 1 | import { Task, TaskRunner } from './task'; 2 | 3 | interface TemplateOptions {} 4 | 5 | const templateRunner: TaskRunner = async () => { 6 | console.log('Template task'); 7 | }; 8 | 9 | export const templateTask = new Task('Template task', templateRunner); 10 | -------------------------------------------------------------------------------- /packages/grafana-ui/src/components/Forms/Legacy/Input/__snapshots__/Input.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Input renders correctly 1`] = ` 4 |
11 | 14 |
15 | `; 16 | -------------------------------------------------------------------------------- /pkg/plugins/testdata/behind-feature-flag/gel/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "transform", 3 | "name": "GEL", 4 | "id": "gel", 5 | "backend": true, 6 | "info": { 7 | "description": "Test", 8 | "version": "1.0.0", 9 | "author": { 10 | "name": "Grafana Labs", 11 | "url": "https://grafana.com" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pkg/plugins/testdata/invalid-signature/plugin/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "Test", 4 | "id": "test", 5 | "backend": true, 6 | "state": "alpha", 7 | "info": { 8 | "description": "Test", 9 | "author": { 10 | "name": "Grafana Labs", 11 | "url": "https://grafana.com" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pkg/plugins/testdata/lacking-files/plugin/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "datasource", 3 | "name": "Test", 4 | "id": "test", 5 | "backend": true, 6 | "info": { 7 | "description": "Test", 8 | "version": "1.0.0", 9 | "author": { 10 | "name": "Grafana Labs", 11 | "url": "https://grafana.com" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pkg/services/provisioning/notifiers/testdata/test-configs/incorrect-settings/incorrect-settings.yaml: -------------------------------------------------------------------------------- 1 | notifiers: 2 | - name: slack-notification-without-url-in-settings 3 | type: slack 4 | org_id: 2 5 | uid: notifier1 6 | is_default: true 7 | settings: 8 | recipient: "XXX" 9 | token: "xoxb" 10 | uploadImage: true -------------------------------------------------------------------------------- /public/app/features/datasources/settings/TlsAuthSettingsCtrl.ts: -------------------------------------------------------------------------------- 1 | import { coreModule } from 'app/core/core'; 2 | 3 | coreModule.directive('datasourceTlsAuthSettings', () => { 4 | return { 5 | scope: { 6 | current: '=', 7 | }, 8 | templateUrl: 'public/app/features/datasources/partials/tls_auth_settings.html', 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /public/app/features/plugins/partials/plugin_page.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 |
6 | 7 | 8 |
9 |
10 |
11 | 12 |