{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./packages/grafana-ui/src/index.ts","webpack:///./public/app/core/core_module.ts","webpack:///./public/app/core/config.ts","webpack:///./public/app/core/app_events.ts","webpack:///./public/app/core/services/backend_srv.ts","webpack:///./public/app/core/directives/dropdown_typeahead.ts","webpack:///./public/app/core/directives/autofill_event_fix.ts","webpack:///./public/app/core/directives/metric_segment.ts","webpack:///./public/app/core/directives/misc.ts","webpack:///./public/app/core/directives/ng_model_on_blur.ts","webpack:///./public/app/core/directives/tags.ts","webpack:///./public/app/core/directives/value_select_dropdown.ts","webpack:///./public/app/core/directives/rebuild_on_change.ts","webpack:///./public/app/core/directives/give_focus.ts","webpack:///./public/app/core/directives/diff-view.ts","webpack:///./public/app/core/jquery_extended.ts","webpack:///./public/app/core/components/json_explorer/helpers.ts","webpack:///./public/app/core/components/json_explorer/json_explorer.ts","webpack:///./public/app/core/components/jsontree/jsontree.ts","webpack:///./public/app/core/components/code_editor/code_editor.ts","webpack:///./public/app/core/components/colorpicker/spectrum_picker.ts","webpack:///./public/app/core/services/search_srv.ts","webpack:///./public/app/core/services/ng_react.ts","webpack:///./public/app/core/components/search/search.ts","webpack:///./public/app/core/components/info_popover.ts","webpack:///./public/app/core/components/navbar/navbar.ts","webpack:///./public/app/core/directives/array_join.ts","webpack:///./public/app/core/live/live_srv.ts","webpack:///./public/app/core/components/layout_selector/layout_selector.ts","webpack:///./public/app/core/components/switch.ts","webpack:///./public/app/core/components/dashboard_selector.ts","webpack:///./public/app/core/components/query_part/query_part_editor.ts","webpack:///./public/app/core/components/sql_part/sql_part_editor.ts","webpack:///./public/app/core/components/form_dropdown/form_dropdown.ts","webpack:///./public/app/core/controllers/json_editor_ctrl.ts","webpack:///./public/app/core/controllers/login_ctrl.ts","webpack:///./public/app/core/controllers/invited_ctrl.ts","webpack:///./public/app/core/controllers/signup_ctrl.ts","webpack:///./public/app/core/controllers/reset_password_ctrl.ts","webpack:///./public/app/core/controllers/error_ctrl.ts","webpack:///./public/app/core/controllers/all.ts","webpack:///./public/app/core/services/alert_srv.ts","webpack:///./public/app/core/services/util_srv.ts","webpack:///./public/app/core/services/timer.ts","webpack:///./public/app/core/services/analytics.ts","webpack:///./public/app/core/services/popover_srv.ts","webpack:///./public/app/core/services/segment_srv.ts","webpack:///./public/app/core/services/dynamic_directive_srv.ts","webpack:///./public/app/core/services/bridge_srv.ts","webpack:///./public/app/core/services/all.ts","webpack:///./public/app/core/filters/filters.ts","webpack:///./public/app/core/components/help/help.ts","webpack:///./public/app/core/nav_model_srv.ts","webpack:///./public/app/core/components/scroll/scroll.ts","webpack:///./public/app/core/components/org_switcher.ts","webpack:///./public/app/core/components/Select/MetricSelect.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/Metrics.tsx","webpack:///./public/app/plugins/datasource/stackdriver/filter_segments.ts","webpack:///./public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts","webpack:///./public/app/plugins/datasource/stackdriver/components/Filter.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/Aggregations.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/Alignments.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/AlignmentPeriods.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/AliasBy.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/Project.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/Help.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/AnnotationQueryEditor.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/AnnotationsHelp.tsx","webpack:///./public/app/core/components/PasswordStrength.tsx","webpack:///./public/app/core/components/search/SearchResult.tsx","webpack:///./public/app/core/components/TagFilter/TagOption.tsx","webpack:///./public/app/core/components/TagFilter/TagFilter.tsx","webpack:///./public/app/core/components/sidemenu/DropDownChild.tsx","webpack:///./public/app/core/components/sidemenu/SideMenuDropDown.tsx","webpack:///./public/app/core/components/sidemenu/TopSectionItem.tsx","webpack:///./public/app/core/components/sidemenu/TopSection.tsx","webpack:///./public/app/core/components/sidemenu/SignIn.tsx","webpack:///./public/app/core/components/sidemenu/BottomNavLinks.tsx","webpack:///./public/app/core/components/sidemenu/BottomSection.tsx","webpack:///./public/app/core/components/sidemenu/SideMenu.tsx","webpack:///./public/app/core/components/AppNotifications/AppNotificationItem.tsx","webpack:///./public/app/core/components/AppNotifications/AppNotificationList.tsx","webpack:///./public/app/plugins/datasource/graphite/FunctionEditorControls.tsx","webpack:///./public/app/plugins/datasource/graphite/FunctionEditor.tsx","webpack:///./public/app/core/angular_wrappers.ts","webpack:///./public/app/core/components/search/search_results.ts","webpack:///./public/app/core/components/manage_dashboards/manage_dashboards.ts","webpack:///./public/app/core/core.ts","webpack:///./public/app/core/utils/kbn.ts","webpack:///./public/app/types/index.ts","webpack:///./public/app/core/actions/index.ts","webpack:///./public/app/core/components/Footer/Footer.tsx","webpack:///./public/app/core/components/PageLoader/PageLoader.tsx","webpack:///./public/app/core/components/Page/Page.tsx","webpack:///./public/app/core/components/Page/PageContents.tsx","webpack:///./packages/grafana-ui/src/types/index.ts","webpack:///./public/app/core/constants.ts","webpack:///./public/app/features/templating/variable.ts","webpack:///./public/app/core/utils/datemath.ts","webpack:///./public/app/core/redux/actionCreatorFactory.ts","webpack:///./public/app/core/components/query_part/query_part.ts","webpack:///./packages/grafana-ui/src/utils/valueFormats/dateTimeFormatters.ts","webpack:///./packages/grafana-ui/src/utils/valueFormats/arithmeticFormatters.ts","webpack:///./packages/grafana-ui/src/utils/valueFormats/symbolFormatters.ts","webpack:///./packages/grafana-ui/src/utils/valueFormats/categories.ts","webpack:///./packages/grafana-ui/src/utils/valueFormats/valueFormats.ts","webpack:///./packages/grafana-ui/src/utils/colors.ts","webpack:///./packages/grafana-ui/src/utils/thresholds.ts","webpack:///./packages/grafana-ui/src/utils/string.ts","webpack:///./packages/grafana-ui/src/utils/valueMappings.ts","webpack:///./packages/grafana-ui/src/utils/displayValue.ts","webpack:///./packages/grafana-ui/src/utils/validate.ts","webpack:///./packages/grafana-ui/src/utils/index.ts","webpack:///./public/app/features/explore/state/actionTypes.ts","webpack:///./public/app/core/selectors/navModel.ts","webpack:///./public/app/core/redux/reducerFactory.ts","webpack:///./public/app/core/redux/index.ts","webpack:///./public/app/features/datasources/state/actions.ts","webpack:///./public/app/features/teams/state/actions.ts","webpack:///./public/app/store/store.ts","webpack:///./public/app/core/utils/ticks.ts","webpack:///./public/app/features/alerting/state/alertDef.ts","webpack:///./public/app/features/dashboard/state/actions.ts","webpack:///./public/app/core/utils/explore.ts","webpack:///./public/app/core/utils/location_util.ts","webpack:///./public/app/core/store.ts","webpack:///./public/app/types/acl.ts","webpack:///./public/app/core/services/AngularLoader.ts","webpack:///./public/app/core/services/context_srv.ts","webpack:///./public/app/core/utils/react2angular.ts","webpack:///./packages/grafana-ui/src/utils/namedColorsPalette.ts","webpack:///./public/app/features/dashboard/utils/panel.ts","webpack:///./public/app/core/components/FilterInput/FilterInput.tsx","webpack:///./public/app/core/time_series2.ts","webpack:///./public/app/features/teams/state/selectors.ts","webpack:///./public/app/types/explore.ts","webpack:///./public/app/plugins/datasource/stackdriver/functions.ts","webpack:///./public/app/features/plugins/state/actions.ts","webpack:///./public/app/features/folders/state/actions.ts","webpack:///./packages/grafana-ui/src/types/theme.ts","webpack:///./public/app/core/table_model.ts","webpack:///./public/app/features/templating/template_srv.ts","webpack:///./public/app/features/users/state/actions.ts","webpack:///./public/app/features/plugins/datasource_srv.ts","webpack:///./public/app/features/datasources/state/selectors.ts","webpack:///./public/app/core/utils/colors.ts","webpack:///./public/app/core/logs_model.ts","webpack:///./public/app/core/components/LayoutSelector/LayoutSelector.tsx","webpack:///./public/app/features/panel/panel_ctrl.ts","webpack:///./public/app/features/panel/metrics_panel_ctrl.ts","webpack:///./public/app/plugins/sdk.ts","webpack:///./public/app/core/utils/flatten.ts","webpack:///./public/app/core/utils/version.ts","webpack:///./public/app/plugins/datasource/graphite/gfunc.ts","webpack:///./public/app/plugins/datasource/graphite/datasource.ts","webpack:///./public/app/plugins/datasource/graphite/add_graphite_func.ts","webpack:///./public/app/plugins/datasource/graphite/func_editor.ts","webpack:///./public/app/plugins/datasource/graphite/lexer.ts","webpack:///./public/app/plugins/datasource/graphite/parser.ts","webpack:///./public/app/plugins/datasource/graphite/graphite_query.ts","webpack:///./public/app/plugins/datasource/graphite/query_ctrl.ts","webpack:///./public/app/plugins/datasource/cloudwatch/query_parameter_ctrl.ts","webpack:///./public/app/plugins/datasource/graphite/config_ctrl.ts","webpack:///./public/app/plugins/datasource/graphite/module.ts","webpack:///./public/app/plugins/datasource/cloudwatch/datasource.ts","webpack:///./public/app/plugins/datasource/cloudwatch/config_ctrl.ts","webpack:///./public/app/plugins/datasource/cloudwatch/query_ctrl.ts","webpack:///./public/app/plugins/datasource/cloudwatch/module.ts","webpack:///./public/app/plugins/datasource/elasticsearch/query_def.ts","webpack:///./public/app/plugins/datasource/elasticsearch/elastic_response.ts","webpack:///./public/app/plugins/datasource/elasticsearch/index_pattern.ts","webpack:///./public/app/plugins/datasource/elasticsearch/query_builder.ts","webpack:///./public/app/plugins/datasource/elasticsearch/datasource.ts","webpack:///./public/app/plugins/datasource/elasticsearch/bucket_agg.ts","webpack:///./public/app/plugins/datasource/elasticsearch/metric_agg.ts","webpack:///./public/app/plugins/datasource/elasticsearch/pipeline_variables.ts","webpack:///./public/app/plugins/datasource/elasticsearch/query_ctrl.ts","webpack:///./public/app/plugins/datasource/elasticsearch/config_ctrl.ts","webpack:///./public/app/plugins/datasource/opentsdb/datasource.ts","webpack:///./public/app/plugins/datasource/elasticsearch/module.ts","webpack:///./public/app/plugins/datasource/opentsdb/query_ctrl.ts","webpack:///./public/app/plugins/datasource/opentsdb/config_ctrl.ts","webpack:///./public/app/plugins/datasource/opentsdb/module.ts","webpack:///./public/app/plugins/datasource/grafana/datasource.ts","webpack:///./public/app/plugins/datasource/grafana/module.ts","webpack:///./public/app/plugins/datasource/influxdb/influx_series.ts","webpack:///./public/app/plugins/datasource/influxdb/query_part.ts","webpack:///./public/app/plugins/datasource/influxdb/influx_query.ts","webpack:///./public/app/plugins/datasource/influxdb/query_builder.ts","webpack:///./public/app/plugins/datasource/influxdb/response_parser.ts","webpack:///./public/app/plugins/datasource/influxdb/datasource.ts","webpack:///./public/app/plugins/datasource/influxdb/query_ctrl.ts","webpack:///./public/app/plugins/datasource/prometheus/add_label_to_query.ts","webpack:///./public/app/plugins/datasource/influxdb/module.ts","webpack:///./public/app/plugins/datasource/prometheus/language_utils.ts","webpack:///./public/app/plugins/datasource/loki/syntax.ts","webpack:///./public/app/plugins/datasource/loki/language_provider.ts","webpack:///./public/app/plugins/datasource/loki/result_transformer.ts","webpack:///./public/app/plugins/datasource/loki/query_utils.ts","webpack:///./public/app/plugins/datasource/loki/datasource.ts","webpack:///./public/app/features/explore/slate-plugins/clear.ts","webpack:///./public/app/plugins/datasource/loki/components/LokiCheatSheet.tsx","webpack:///./public/app/plugins/datasource/loki/components/LokiStartPage.tsx","webpack:///./public/app/features/explore/slate-plugins/newline.ts","webpack:///./public/app/features/explore/Typeahead.tsx","webpack:///./public/app/features/explore/Value.ts","webpack:///./public/app/features/explore/PlaceholdersBuffer.ts","webpack:///./public/app/features/explore/QueryField.tsx","webpack:///./public/app/features/explore/utils/dom.ts","webpack:///./public/app/features/explore/slate-plugins/braces.ts","webpack:///./public/app/features/explore/slate-plugins/runner.ts","webpack:///./public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx","webpack:///./public/app/plugins/datasource/loki/components/useLokiLabels.ts","webpack:///./public/app/core/hooks/useRefMounted.ts","webpack:///./public/app/plugins/datasource/loki/components/useLokiSyntax.ts","webpack:///./public/app/plugins/datasource/loki/components/LokiQueryField.tsx","webpack:///./public/app/plugins/datasource/loki/components/LokiQueryEditor.tsx","webpack:///./public/app/plugins/datasource/mixed/datasource.ts","webpack:///./public/app/plugins/datasource/loki/module.ts","webpack:///./public/app/plugins/datasource/mysql/response_parser.ts","webpack:///./public/app/plugins/datasource/mysql/mysql_query.ts","webpack:///./public/app/plugins/datasource/mysql/datasource.ts","webpack:///./public/app/plugins/datasource/mysql/meta_query.ts","webpack:///./public/app/plugins/datasource/mysql/sql_part.ts","webpack:///./public/app/core/components/sql_part/sql_part.ts","webpack:///./public/app/plugins/datasource/mysql/query_ctrl.ts","webpack:///./public/app/plugins/datasource/mysql/module.ts","webpack:///./public/app/plugins/datasource/postgres/response_parser.ts","webpack:///./public/app/plugins/datasource/postgres/postgres_query.ts","webpack:///./public/app/plugins/datasource/postgres/datasource.ts","webpack:///./public/app/plugins/datasource/postgres/meta_query.ts","webpack:///./public/app/plugins/datasource/postgres/sql_part.ts","webpack:///./public/app/plugins/datasource/postgres/query_ctrl.ts","webpack:///./public/app/plugins/datasource/postgres/module.ts","webpack:///./public/app/plugins/datasource/postgres/config_ctrl.ts","webpack:///./public/app/plugins/datasource/prometheus/metric_find_query.ts","webpack:///./public/app/plugins/datasource/prometheus/result_transformer.ts","webpack:///./public/app/plugins/datasource/prometheus/promql.ts","webpack:///./public/app/plugins/datasource/prometheus/language_provider.ts","webpack:///./public/app/plugins/datasource/prometheus/query_hints.ts","webpack:///./public/app/plugins/datasource/prometheus/datasource.ts","webpack:///./public/app/plugins/datasource/prometheus/completer.ts","webpack:///./public/app/plugins/datasource/prometheus/query_ctrl.ts","webpack:///./public/app/plugins/datasource/prometheus/config_ctrl.ts","webpack:///./public/app/plugins/datasource/prometheus/components/PromCheatSheet.tsx","webpack:///./public/app/plugins/datasource/prometheus/components/PromQueryField.tsx","webpack:///./public/app/plugins/datasource/prometheus/components/PromStart.tsx","webpack:///./public/app/core/utils/CancelablePromise.ts","webpack:///./public/app/plugins/datasource/mssql/response_parser.ts","webpack:///./public/app/plugins/datasource/prometheus/module.ts","webpack:///./public/app/plugins/datasource/mssql/datasource.ts","webpack:///./public/app/plugins/datasource/mssql/query_ctrl.ts","webpack:///./public/app/plugins/datasource/mssql/config_ctrl.ts","webpack:///./public/app/plugins/datasource/mssql/module.ts","webpack:///./public/app/plugins/datasource/testdata/datasource.ts","webpack:///./public/app/plugins/datasource/stackdriver/types.ts","webpack:///./public/app/plugins/datasource/testdata/query_ctrl.ts","webpack:///./public/app/plugins/datasource/testdata/module.ts","webpack:///./public/app/plugins/datasource/stackdriver/StackdriverMetricFindQuery.ts","webpack:///./public/app/plugins/datasource/stackdriver/datasource.ts","webpack:///./public/app/plugins/datasource/stackdriver/config_ctrl.ts","webpack:///./public/app/plugins/datasource/stackdriver/query_ctrl.ts","webpack:///./public/app/plugins/datasource/stackdriver/annotations_query_ctrl.ts","webpack:///./public/app/plugins/datasource/stackdriver/components/SimpleSelect.tsx","webpack:///./public/app/plugins/datasource/stackdriver/components/VariableQueryEditor.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.ts","webpack:///./public/app/plugins/datasource/stackdriver/module.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/response_parser.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/supported_namespaces.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/response_parser.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/datasource.ts","webpack:///./public/app/features/explore/slate-plugins/prism/index.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/editor/typeahead.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/editor/query_field.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/editor/kusto/kusto.ts","webpack:///./public/app/features/explore/utils/debounce.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/editor/KustoQueryField.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/editor/editor_component.tsx","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/annotations_query_ctrl.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/config_ctrl.ts","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/module.ts","webpack:///./public/app/plugins/panel/text/module.ts","webpack:///./public/app/plugins/panel/text2/TextPanelEditor.tsx","webpack:///./public/app/plugins/panel/text2/TextPanel.tsx","webpack:///./public/app/plugins/panel/text2/module.tsx","webpack:///./public/app/plugins/panel/graph2/GraphPanelEditor.tsx","webpack:///./public/app/plugins/panel/graph2/GraphPanel.tsx","webpack:///./packages/grafana-ui/src/utils/flotPairs.ts","webpack:///./public/app/plugins/panel/graph2/module.tsx","webpack:///./public/app/plugins/panel/graph2/types.ts","webpack:///./public/app/plugins/panel/graph/jquery.flot.events.ts","webpack:///./public/app/plugins/panel/graph/graph_tooltip.ts","webpack:///./public/app/plugins/panel/graph/threshold_manager.ts","webpack:///./public/app/plugins/panel/graph/time_region_manager.ts","webpack:///./public/app/plugins/panel/graph/histogram.ts","webpack:///./public/app/plugins/panel/graph/align_yaxes.ts","webpack:///./public/app/plugins/panel/graph/Legend/LegendSeriesItem.tsx","webpack:///./public/app/plugins/panel/graph/Legend/Legend.tsx","webpack:///./public/app/plugins/panel/graph/graph.ts","webpack:///./public/app/plugins/panel/graph/series_overrides_ctrl.ts","webpack:///./public/app/plugins/panel/graph/thresholds_form.ts","webpack:///./public/app/plugins/panel/graph/time_regions_form.ts","webpack:///./public/app/plugins/panel/graph/template.ts","webpack:///./public/app/plugins/panel/graph/data_processor.ts","webpack:///./public/app/plugins/panel/graph/axes_editor.ts","webpack:///./public/app/plugins/panel/graph/module.ts","webpack:///./public/app/plugins/panel/dashlist/module.ts","webpack:///./public/app/plugins/panel/pluginlist/module.ts","webpack:///./public/app/plugins/panel/alertlist/module.ts","webpack:///./public/app/plugins/panel/heatmap/color_scale.ts","webpack:///./public/app/plugins/panel/heatmap/color_legend.ts","webpack:///./public/app/plugins/panel/heatmap/heatmap_data_converter.ts","webpack:///./public/app/plugins/panel/heatmap/display_editor.ts","webpack:///./public/app/plugins/panel/heatmap/axes_editor.ts","webpack:///./public/app/plugins/panel/heatmap/heatmap_tooltip.ts","webpack:///./public/app/plugins/panel/heatmap/rendering.ts","webpack:///./public/app/plugins/panel/heatmap/heatmap_ctrl.ts","webpack:///./public/app/plugins/panel/table/transformers.ts","webpack:///./public/app/plugins/panel/heatmap/module.ts","webpack:///./public/app/plugins/panel/table/editor.ts","webpack:///./public/app/plugins/panel/table/column_options.ts","webpack:///./public/app/plugins/panel/table/renderer.ts","webpack:///./public/app/plugins/panel/table/module.ts","webpack:///./public/app/plugins/panel/table2/TablePanelEditor.tsx","webpack:///./packages/grafana-ui/src/components/Table/TableCellBuilder.tsx","webpack:///./packages/grafana-ui/src/components/Table/Table.tsx","webpack:///./public/app/plugins/panel/singlestat/module.ts","webpack:///./public/app/plugins/panel/table2/TablePanel.tsx","webpack:///./public/app/plugins/panel/table2/types.ts","webpack:///./public/app/plugins/panel/table2/module.tsx","webpack:///./public/app/plugins/panel/singlestat2/SingleStatPanel.tsx","webpack:///./public/app/plugins/panel/singlestat2/types.ts","webpack:///./public/app/plugins/panel/singlestat2/ProcessedValuesRepeater.tsx","webpack:///./public/app/features/plugins/plugin_loader.ts","webpack:///./public/app/plugins/panel/singlestat2/SingleStatValueEditor.tsx","webpack:///./public/app/plugins/panel/singlestat2/SingleStatEditor.tsx","webpack:///./public/app/plugins/panel/singlestat2/module.tsx","webpack:///./public/app/plugins/panel/gettingstarted/module.ts","webpack:///./public/app/plugins/panel/gauge/GaugeOptionsBox.tsx","webpack:///./public/app/plugins/panel/gauge/GaugePanel.tsx","webpack:///./public/app/plugins/panel/gauge/GaugePanelEditor.tsx","webpack:///./public/app/plugins/panel/gauge/types.ts","webpack:///./public/app/plugins/panel/gauge/module.tsx","webpack:///./public/app/plugins/panel/piechart/PieChartOptionsBox.tsx","webpack:///./public/app/plugins/panel/piechart/PieChartPanelEditor.tsx","webpack:///./public/app/plugins/panel/piechart/PieChartPanel.tsx","webpack:///./public/app/plugins/panel/piechart/types.ts","webpack:///./public/app/plugins/panel/piechart/module.tsx","webpack:///./public/app/plugins/panel/bargauge/BarGaugePanel.tsx","webpack:///./public/app/plugins/panel/bargauge/types.ts","webpack:///./public/app/plugins/panel/bargauge/BarGaugePanelEditor.tsx","webpack:///./public/app/plugins/panel/bargauge/module.tsx","webpack:///./public/app/features/plugins/built_in_plugins.ts","webpack:///./public/app/core/copy/appNotification.ts","webpack:///./public/app/features/dashboard/state/PanelModel.ts","webpack:///./public/app/plugins/datasource/stackdriver/constants.ts","webpack:///./public/app/core/utils/rangeutil.ts","webpack:///./public/app/core/components/EmptyListCTA/EmptyListCTA.tsx","webpack:///./public/app/core/components/Animations/SlideDown.tsx","webpack:///./public/app/core/utils/sort_by_keys.ts","webpack:///./public/app/features/dashboard/state/DashboardMigrator.ts","webpack:///./public/app/features/dashboard/state/DashboardModel.ts","webpack:///./public/app/features/dashboard/services/TimeSrv.ts","webpack:///./public/app/core/selectors/location.ts","webpack:///./public/app/core/utils/emitter.ts","webpack:///./packages/grafana-ui/src/themes/ThemeContext.tsx","webpack:///./public/app/core/services/impression_srv.ts","webpack:///./public/app/core/components/TagFilter/TagBadge.tsx","webpack:///./public/app/features/alerting/state/actions.ts","webpack:///./public/app/features/api-keys/state/actions.ts","webpack:///./public/app/features/users/state/selectors.ts","webpack:///./public/app/features/org/state/actions.ts","webpack:///./packages/grafana-ui/src/utils/deprecationWarning.ts","webpack:///./public/app/core/actions/appNotification.ts","webpack:///./public/app/core/services/keybindingSrv.ts","webpack:///./public/app/core/utils/text.ts","webpack:///./public/app/core/profiler.ts","webpack:///./public/app/core/utils/url.ts","webpack:///./public/app/core/utils/ConfigProvider.tsx","webpack:///./public/app/core/components/AlertBox/AlertBox.tsx","webpack:///./public/app/core/utils/connectWithReduxStore.tsx","webpack:///./public/app/core/components/SharedPreferences/SharedPreferences.tsx","webpack:///./public/app/features/folders/state/navModel.ts","webpack:///./public/app/core/utils/file_export.ts","webpack:///./public/app/features/dashboard/containers/DashboardPage.tsx","webpack:///./public/vendor/flot/jquery.flot.js","webpack:///./packages/grafana-ui/src/themes/default.ts","webpack:///./public/app/core/actions/navModel.ts","webpack:///./packages/grafana-ui/src/themes/dark.ts","webpack:///./packages/grafana-ui/src/utils/statsCalculator.ts","webpack:///./packages/grafana-ui/src/themes/light.ts","webpack:///./packages/grafana-ui/src/themes/getTheme.ts","webpack:///./public/app/core/utils/query.ts","webpack:///./public/app/core/components/PageHeader/PageHeader.tsx","webpack:///./public/app/core/utils/model_utils.ts","webpack:///./packages/grafana-ui/src/utils/processSeriesData.ts","webpack:///./packages/grafana-ui/src/themes/index.ts","webpack:///./public/app/core/actions/location.ts","webpack:///./public/app/features/panel/panellinks/link_srv.ts","webpack:///./public/app/core/utils/tags.ts","webpack:///./public/app/core/utils/errors.ts","webpack:///./public/app/core/utils/factors.ts","webpack:///./public/app/core/components/Select/UserPicker.tsx","webpack:///./public/app/features/teams/state/navModel.ts","webpack:///./public/app/core/components/OrgActionBar/OrgActionBar.tsx","webpack:///./public/app/core/components/PermissionList/PermissionsInfo.tsx","webpack:///./public/app/features/datasources/state/navModel.ts","webpack:///./public/app/features/dashboard/state/initDashboard.ts","webpack:///./public/app/features/dashboard/dashgrid/DashboardGrid.tsx","webpack:///./public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx","webpack:///./public/app/features/dashboard/dashgrid/PanelPluginNotFound.tsx","webpack:///./public/app/features/dashboard/components/DashboardRow/DashboardRow.tsx","webpack:///./public/app/features/dashboard/components/DashboardRow/index.ts","webpack:///./public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx","webpack:///./public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuItem.tsx","webpack:///./public/app/features/dashboard/utils/getPanelMenu.ts","webpack:///./public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenu.tsx","webpack:///./public/app/features/dashboard/dashgrid/DataPanel.tsx","webpack:///./public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx","webpack:///./public/app/features/dashboard/panel_editor/QueryOptions.tsx","webpack:///./public/app/features/dashboard/dashgrid/PanelChrome.tsx","webpack:///./public/app/core/components/ErrorBoundary/ErrorBoundary.tsx","webpack:///./public/app/features/dashboard/panel_editor/EditorTabBody.tsx","webpack:///./public/app/core/components/Animations/FadeIn.tsx","webpack:///./public/app/core/components/JSONFormatter/JSONFormatter.tsx","webpack:///./public/app/core/components/CopyToClipboard/CopyToClipboard.tsx","webpack:///./public/app/features/dashboard/panel_editor/QueryInspector.tsx","webpack:///./public/app/features/dashboard/panel_editor/DataSourceOption.tsx","webpack:///./public/app/features/dashboard/panel_editor/QueryEditorRow.tsx","webpack:///./public/app/core/components/PluginHelp/PluginHelp.tsx","webpack:///./public/app/features/dashboard/panel_editor/QueriesTab.tsx","webpack:///./public/app/features/dashboard/panel_editor/VizTypePickerPlugin.tsx","webpack:///./public/app/features/dashboard/panel_editor/VizTypePicker.tsx","webpack:///./public/app/features/dashboard/panel_editor/VizPickerSearch.tsx","webpack:///./public/app/features/dashboard/panel_editor/VisualizationTab.tsx","webpack:///./public/app/features/panel/GeneralTabCtrl.ts","webpack:///./public/app/features/dashboard/panel_editor/GeneralTab.tsx","webpack:///./public/app/features/alerting/StateHistory.tsx","webpack:///./public/app/features/alerting/TestRuleResult.tsx","webpack:///./public/app/features/alerting/AlertTab.tsx","webpack:///./public/app/features/dashboard/panel_editor/PanelEditor.tsx","webpack:///./public/app/features/dashboard/dashgrid/PanelResizer.tsx","webpack:///./public/app/features/dashboard/dashgrid/DashboardPanel.tsx","webpack:///./public/app/core/components/PermissionList/DisabledPermissionListItem.tsx","webpack:///./public/app/core/components/PermissionList/PermissionListItem.tsx","webpack:///./public/app/core/components/PermissionList/PermissionList.tsx","webpack:///./public/app/core/components/Select/TeamPicker.tsx","webpack:///./public/app/core/components/PermissionList/AddPermission.tsx","webpack:///./public/app/features/plugins/state/selectors.ts","webpack:///./public/app/features/panel/query_ctrl.ts","webpack:///./public/app/features/alerting/state/ThresholdMapper.ts","webpack:///./public/app/features/alerting/AlertTabCtrl.ts","webpack:///./public/app/core/components/Select/DataSourcePicker.tsx","webpack:///./public/app/features/annotations/editor_ctrl.ts","webpack:///./public/app/features/annotations/events_processing.ts","webpack:///./public/app/features/annotations/annotations_srv.ts","webpack:///./public/app/features/annotations/event_manager.ts","webpack:///./public/app/features/annotations/event_editor.ts","webpack:///./public/app/features/annotations/annotation_tooltip.ts","webpack:///./public/app/features/annotations/all.ts","webpack:///./public/app/features/dashboard/components/DashboardSettings/SettingsCtrl.ts","webpack:///./public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx","webpack:///./public/app/features/dashboard/components/DashboardSettings/index.ts","webpack:///./public/app/features/dashboard/components/DashNav/DashNavButton.tsx","webpack:///./public/app/features/dashboard/components/DashNav/DashNav.tsx","webpack:///./public/app/features/dashboard/components/DashNav/index.ts","webpack:///./public/app/features/dashboard/components/SubMenu/SubMenuCtrl.ts","webpack:///./public/app/features/dashboard/components/SubMenu/SubMenu.tsx","webpack:///./public/app/features/dashboard/components/SubMenu/index.ts","webpack:///./public/app/features/alerting/state/selectors.ts","webpack:///./public/app/features/api-keys/state/selectors.ts","webpack:///./public/app/features/dashboard/containers/SoloPanelPage.tsx","webpack:///./public/vendor/flot/jquery.flot.selection.js","webpack:///./public/vendor/flot/jquery.flot.time.js","webpack:///./public/vendor/flot/jquery.flot.stack.js","webpack:///./packages/grafana-ui/src/types/data.ts","webpack:///./packages/grafana-ui/src/types/panel.ts","webpack:///./public/app/types/dashboard.ts","webpack:///./public/app/types/plugins.ts","webpack:///./public/app/types/appNotifications.ts","webpack:///./public/app/types/search.ts","webpack:///./public/vendor/ansicolor/ansicolor.ts","webpack:///./public/vendor/flot/jquery.flot.stackpercent.js","webpack:///./public/vendor/flot/jquery.flot.fillbelow.js","webpack:///./public/vendor/flot/jquery.flot.crosshair.js","webpack:///./public/vendor/flot/jquery.flot.dashes.js","webpack:///./public/vendor/flot/jquery.flot.gauge.js","webpack:///./public/app/core/components/ClickOutsideWrapper/ClickOutsideWrapper.tsx","webpack:///./packages/grafana-ui/src/components/DeleteButton/DeleteButton.tsx","webpack:///./packages/grafana-ui/src/components/Portal/Portal.tsx","webpack:///./packages/grafana-ui/src/components/Tooltip/Popper.tsx","webpack:///./packages/grafana-ui/src/components/Tooltip/PopperController.tsx","webpack:///./packages/grafana-ui/src/components/Tooltip/Tooltip.tsx","webpack:///./packages/grafana-ui/src/components/CustomScrollbar/CustomScrollbar.tsx","webpack:///./packages/grafana-ui/src/components/Select/SelectOption.tsx","webpack:///./packages/grafana-ui/src/components/Select/SelectOptionGroup.tsx","webpack:///./packages/grafana-ui/src/components/Select/IndicatorsContainer.tsx","webpack:///./packages/grafana-ui/src/components/Select/NoOptionsMessage.tsx","webpack:///./packages/grafana-ui/src/components/Select/resetSelectStyles.ts","webpack:///./packages/grafana-ui/src/components/Select/Select.tsx","webpack:///./packages/grafana-ui/src/components/FormLabel/FormLabel.tsx","webpack:///./packages/grafana-ui/src/components/FormField/FormField.tsx","webpack:///./packages/grafana-ui/src/components/SecretFormFied/SecretFormField.tsx","webpack:///./packages/grafana-ui/src/themes/selectThemeVariant.ts","webpack:///./packages/grafana-ui/src/components/LoadingPlaceholder/LoadingPlaceholder.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/NamedColorsGroup.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.tsx","webpack:///./packages/grafana-ui/src/components/Input/Input.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/ColorInput.tsx","webpack:///./packages/grafana-ui/src/components/UnitPicker/UnitPicker.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/SpectrumPalettePointer.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/SpectrumPalette.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/ColorPickerPopover.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/warnAboutColorPickerPropsDeprecation.ts","webpack:///./packages/grafana-ui/src/components/Switch/Switch.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/ColorPickerTrigger.tsx","webpack:///./packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx","webpack:///./packages/grafana-ui/src/components/ThresholdsEditor/ThresholdsEditor.tsx","webpack:///./packages/grafana-ui/src/components/PanelOptionsGroup/PanelOptionsGroup.tsx","webpack:///./packages/grafana-ui/src/components/PanelOptionsGrid/PanelOptionsGrid.tsx","webpack:///./packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx","webpack:///./packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx","webpack:///./packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.tsx","webpack:///./packages/grafana-ui/src/components/PieChart/PieChart.tsx","webpack:///./packages/grafana-ui/src/components/Gauge/Gauge.tsx","webpack:///./packages/grafana-ui/src/components/StatsPicker/StatsPicker.tsx","webpack:///./packages/grafana-ui/src/components/Graph/Graph.tsx","webpack:///./packages/grafana-ui/src/components/BarGauge/BarGauge.tsx","webpack:///./packages/grafana-ui/src/components/VizRepeater/VizRepeater.tsx","webpack:///./packages/grafana-ui/src/components/index.ts","webpack:///./public/app/features/admin/ServerStats.tsx","webpack:///./public/app/features/admin/state/apis.ts","webpack:///./public/app/features/alerting/AlertRuleList.tsx","webpack:///./public/app/features/alerting/AlertRuleItem.tsx","webpack:///./public/app/features/teams/TeamPages.tsx","webpack:///./public/app/features/teams/TeamSettings.tsx","webpack:///./public/app/features/teams/TeamGroupSync.tsx","webpack:///./public/app/features/teams/TeamList.tsx","webpack:///./public/app/features/api-keys/ApiKeysPage.tsx","webpack:///./public/app/features/api-keys/ApiKeysAddedModal.tsx","webpack:///./public/app/features/plugins/PluginListPage.tsx","webpack:///./public/app/features/folders/FolderSettingsPage.tsx","webpack:///./public/app/features/folders/FolderPermissions.tsx","webpack:///./public/app/features/datasources/DataSourcesListPage.tsx","webpack:///./public/app/features/datasources/NewDataSourcePage.tsx","webpack:///./public/app/features/users/UsersListPage.tsx","webpack:///./public/app/features/users/UsersActionBar.tsx","webpack:///./public/app/features/users/UsersTable.tsx","webpack:///./public/app/features/datasources/DataSourceDashboards.tsx","webpack:///./public/app/features/datasources/DashboardsTable.tsx","webpack:///./public/app/features/datasources/settings/DataSourceSettingsPage.tsx","webpack:///./public/app/features/datasources/settings/PluginSettings.tsx","webpack:///./public/app/features/datasources/settings/BasicSettings.tsx","webpack:///./public/app/features/datasources/settings/ButtonRow.tsx","webpack:///./public/app/features/org/OrgDetailsPage.tsx","webpack:///./public/app/features/org/OrgProfile.tsx","webpack:///./public/app/core/components/WithFeatureToggle.tsx","webpack:///./public/app/features/teams/TeamMemberRow.tsx","webpack:///./public/app/features/teams/TeamMembers.tsx","webpack:///./public/app/features/users/InviteeRow.tsx","webpack:///./public/app/features/users/InviteesTable.tsx","webpack:///./public/app/features/plugins/PluginListItem.tsx","webpack:///./public/app/features/plugins/PluginList.tsx","webpack:///./public/app/features/datasources/DataSourcesListItem.tsx","webpack:///./public/app/features/datasources/DataSourcesList.tsx","webpack:///./public/vendor/bootstrap/bootstrap.js","webpack:///./public/vendor/angular-ui/ui-bootstrap-tpls.js","webpack:///./public/vendor/angular-other/angular-strap.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./public/vendor/tagsinput/bootstrap-tagsinput.js","webpack:///./public/app sync \\.html$","webpack:///./public/app/core/partials.ts","webpack:///./public/app/core/components/help/help.html","webpack:///./public/app/core/components/manage_dashboards/manage_dashboards.html","webpack:///./public/app/core/components/navbar/navbar.html","webpack:///./public/app/core/components/search/search.html","webpack:///./public/app/core/components/search/search_results.html","webpack:///./public/app/features/admin/partials/admin_home.html","webpack:///./public/app/features/admin/partials/edit_org.html","webpack:///./public/app/features/admin/partials/edit_user.html","webpack:///./public/app/features/admin/partials/new_user.html","webpack:///./public/app/features/admin/partials/orgs.html","webpack:///./public/app/features/admin/partials/settings.html","webpack:///./public/app/features/admin/partials/stats.html","webpack:///./public/app/features/admin/partials/styleguide.html","webpack:///./public/app/features/admin/partials/users.html","webpack:///./public/app/features/alerting/partials/alert_howto.html","webpack:///./public/app/features/alerting/partials/alert_tab.html","webpack:///./public/app/features/alerting/partials/notification_edit.html","webpack:///./public/app/features/alerting/partials/notifications_list.html","webpack:///./public/app/features/annotations/partials/editor.html","webpack:///./public/app/features/annotations/partials/event_editor.html","webpack:///./public/app/features/dashboard/components/DashExportModal/template.html","webpack:///./public/app/features/dashboard/components/DashLinks/editor.html","webpack:///./public/app/features/dashboard/components/DashboardSettings/template.html","webpack:///./public/app/features/dashboard/components/ExportDataModal/template.html","webpack:///./public/app/features/dashboard/components/FolderPicker/template.html","webpack:///./public/app/features/dashboard/components/RowOptions/template.html","webpack:///./public/app/features/dashboard/components/ShareModal/template.html","webpack:///./public/app/features/dashboard/components/SubMenu/template.html","webpack:///./public/app/features/dashboard/components/TimePicker/settings.html","webpack:///./public/app/features/dashboard/components/TimePicker/template.html","webpack:///./public/app/features/dashboard/components/VersionHistory/template.html","webpack:///./public/app/features/datasources/partials/http_settings.html","webpack:///./public/app/features/datasources/partials/tls_auth_settings.html","webpack:///./public/app/features/folders/partials/create_folder.html","webpack:///./public/app/features/folders/partials/folder_dashboards.html","webpack:///./public/app/features/manage-dashboards/components/MoveToFolderModal/template.html","webpack:///./public/app/features/manage-dashboards/partials/dashboard_import.html","webpack:///./public/app/features/manage-dashboards/partials/dashboard_list.html","webpack:///./public/app/features/manage-dashboards/partials/snapshot_list.html","webpack:///./public/app/features/org/partials/invite.html","webpack:///./public/app/features/org/partials/newOrg.html","webpack:///./public/app/features/org/partials/select_org.html","webpack:///./public/app/features/panel/panellinks/module.html","webpack:///./public/app/features/panel/partials/general_tab.html","webpack:///./public/app/features/panel/partials/panelTime.html","webpack:///./public/app/features/panel/partials/query_editor_row.html","webpack:///./public/app/features/playlist/partials/playlist.html","webpack:///./public/app/features/playlist/partials/playlist_search.html","webpack:///./public/app/features/playlist/partials/playlists.html","webpack:///./public/app/features/plugins/import_list/import_list.html","webpack:///./public/app/features/plugins/partials/plugin_edit.html","webpack:///./public/app/features/plugins/partials/plugin_page.html","webpack:///./public/app/features/plugins/partials/update_instructions.html","webpack:///./public/app/features/profile/partials/change_password.html","webpack:///./public/app/features/profile/partials/profile.html","webpack:///./public/app/features/teams/partials/create_team.html","webpack:///./public/app/features/templating/partials/editor.html","webpack:///./public/app/partials/confirm_modal.html","webpack:///./public/app/partials/edit_json.html","webpack:///./public/app/partials/error.html","webpack:///./public/app/partials/login.html","webpack:///./public/app/partials/modal.html","webpack:///./public/app/partials/reset_password.html","webpack:///./public/app/partials/signup_invited.html","webpack:///./public/app/partials/signup_step2.html","webpack:///./public/app/partials/valueSelectDropdown.html","webpack:///./public/app/plugins/datasource/cloudwatch/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/cloudwatch/partials/config.html","webpack:///./public/app/plugins/datasource/cloudwatch/partials/query.editor.html","webpack:///./public/app/plugins/datasource/cloudwatch/partials/query.parameter.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/config.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/metric_agg.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/pipeline_variables.html","webpack:///./public/app/plugins/datasource/elasticsearch/partials/query.editor.html","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html","webpack:///./public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/query.editor.html","webpack:///./public/app/plugins/datasource/grafana-live/partials/query.editor.html","webpack:///./public/app/plugins/datasource/grafana/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/grafana/partials/query.editor.html","webpack:///./public/app/plugins/datasource/graphite/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/graphite/partials/config.html","webpack:///./public/app/plugins/datasource/graphite/partials/query.editor.html","webpack:///./public/app/plugins/datasource/influxdb/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/influxdb/partials/config.html","webpack:///./public/app/plugins/datasource/influxdb/partials/query.editor.html","webpack:///./public/app/plugins/datasource/loki/partials/config.html","webpack:///./public/app/plugins/datasource/mssql/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/mssql/partials/config.html","webpack:///./public/app/plugins/datasource/mssql/partials/query.editor.html","webpack:///./public/app/plugins/datasource/mysql/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/mysql/partials/config.html","webpack:///./public/app/plugins/datasource/mysql/partials/query.editor.html","webpack:///./public/app/plugins/datasource/opentsdb/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/opentsdb/partials/config.html","webpack:///./public/app/plugins/datasource/opentsdb/partials/query.editor.html","webpack:///./public/app/plugins/datasource/postgres/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/postgres/partials/config.html","webpack:///./public/app/plugins/datasource/postgres/partials/query.editor.html","webpack:///./public/app/plugins/datasource/prometheus/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/prometheus/partials/config.html","webpack:///./public/app/plugins/datasource/prometheus/partials/query.editor.html","webpack:///./public/app/plugins/datasource/stackdriver/partials/annotations.editor.html","webpack:///./public/app/plugins/datasource/stackdriver/partials/config.html","webpack:///./public/app/plugins/datasource/stackdriver/partials/query.editor.html","webpack:///./public/app/plugins/datasource/stackdriver/partials/query.filter.html","webpack:///./public/app/plugins/datasource/testdata/partials/query.editor.html","webpack:///./public/app/plugins/panel/alertlist/editor.html","webpack:///./public/app/plugins/panel/alertlist/module.html","webpack:///./public/app/plugins/panel/dashlist/editor.html","webpack:///./public/app/plugins/panel/dashlist/module.html","webpack:///./public/app/plugins/panel/gettingstarted/editor.html","webpack:///./public/app/plugins/panel/gettingstarted/module.html","webpack:///./public/app/plugins/panel/graph/axes_editor.html","webpack:///./public/app/plugins/panel/graph/tab_display.html","webpack:///./public/app/plugins/panel/graph/tab_legend.html","webpack:///./public/app/plugins/panel/graph/tab_thresholds_time_regions.html","webpack:///./public/app/plugins/panel/graph/thresholds_form.html","webpack:///./public/app/plugins/panel/graph/time_regions_form.html","webpack:///./public/app/plugins/panel/heatmap/module.html","webpack:///./public/app/plugins/panel/heatmap/partials/axes_editor.html","webpack:///./public/app/plugins/panel/heatmap/partials/display_editor.html","webpack:///./public/app/plugins/panel/pluginlist/editor.html","webpack:///./public/app/plugins/panel/pluginlist/module.html","webpack:///./public/app/plugins/panel/singlestat/editor.html","webpack:///./public/app/plugins/panel/singlestat/mappings.html","webpack:///./public/app/plugins/panel/singlestat/module.html","webpack:///./public/app/plugins/panel/table/column_options.html","webpack:///./public/app/plugins/panel/table/editor.html","webpack:///./public/app/plugins/panel/table/module.html","webpack:///./public/app/plugins/panel/text/editor.html","webpack:///./public/app/plugins/panel/text/module.html","webpack:///./public/app/core/components/code_editor/theme-grafana-dark.js","webpack:///./public/app/core/utils/outline.ts","webpack:///./public/app/plugins/datasource/prometheus/mode-prometheus.js","webpack:///./public/app/plugins/datasource/prometheus/snippets/prometheus.js","webpack:///./public/vendor/flot/jquery.flot.pie.js","webpack:///./public/app/core/utils/scrollbar.ts","webpack:///./public/app sync extensions\\/index.ts","webpack:///./public/app/routes/dashboard_loaders.ts","webpack:///./public/app/routes/ReactContainer.tsx","webpack:///./public/app/routes/registry.ts","webpack:///./public/app/features/folders/CreateFolderCtrl.ts","webpack:///./public/app/features/folders/services/FolderPageLoader.ts","webpack:///./public/app/features/folders/FolderDashboardsCtrl.ts","webpack:///./public/app/features/manage-dashboards/DashboardImportCtrl.ts","webpack:///./public/app/routes/routes.ts","webpack:///./public/app/core/reducers/navModel.ts","webpack:///./public/app/core/reducers/location.ts","webpack:///./public/app/core/reducers/appNotification.ts","webpack:///./public/app/core/reducers/index.ts","webpack:///./public/app/features/alerting/state/reducers.ts","webpack:///./public/app/features/teams/state/reducers.ts","webpack:///./public/app/features/api-keys/state/reducers.ts","webpack:///./public/app/core/utils/acl.ts","webpack:///./public/app/features/folders/state/reducers.ts","webpack:///./public/app/features/dashboard/state/reducers.ts","webpack:///./public/app/features/explore/state/reducers.ts","webpack:///./public/app/features/plugins/state/reducers.ts","webpack:///./public/app/features/datasources/state/reducers.ts","webpack:///./public/app/features/profile/state/reducers.ts","webpack:///./public/app/features/users/state/reducers.ts","webpack:///./public/app/features/org/state/reducers.ts","webpack:///./public/app/store/configureStore.ts","webpack:///./public/app/routes/GrafanaCtrl.ts","webpack:///./public/app/features/templating/editor_ctrl.ts","webpack:///./public/app/core/utils/dag.ts","webpack:///./public/app/features/templating/variable_srv.ts","webpack:///./public/app/features/templating/interval_variable.ts","webpack:///./public/app/features/templating/query_variable.ts","webpack:///./public/app/features/templating/datasource_variable.ts","webpack:///./public/app/features/templating/custom_variable.ts","webpack:///./public/app/features/templating/constant_variable.ts","webpack:///./public/app/features/templating/adhoc_variable.ts","webpack:///./public/app/features/templating/TextBoxVariable.ts","webpack:///./public/app/features/templating/all.ts","webpack:///./public/app/features/plugins/plugin_edit_ctrl.ts","webpack:///./public/app/features/plugins/plugin_page_ctrl.ts","webpack:///./public/app/features/plugins/import_list/import_list.ts","webpack:///./public/app/features/plugins/plugin_component.ts","webpack:///./public/app/features/templating/DefaultVariableQueryEditor.tsx","webpack:///./public/app/features/dashboard/services/ChangeTracker.ts","webpack:///./public/app/features/plugins/variableQueryEditorLoader.tsx","webpack:///./public/app/features/plugins/all.ts","webpack:///./public/app/features/dashboard/dashgrid/DashboardGridDirective.ts","webpack:///./public/app/features/dashboard/services/UnsavedChangesSrv.ts","webpack:///./public/app/features/dashboard/services/DashboardLoaderSrv.ts","webpack:///./public/app/features/dashboard/services/DashboardSrv.ts","webpack:///./public/app/features/dashboard/components/DashLinks/DashLinksEditorCtrl.ts","webpack:///./public/app/features/dashboard/components/DashLinks/DashLinksContainerCtrl.ts","webpack:///./public/app/features/dashboard/components/DashExportModal/DashboardExporter.ts","webpack:///./public/app/features/dashboard/components/DashLinks/index.ts","webpack:///./public/app/features/dashboard/components/DashExportModal/DashExportCtrl.ts","webpack:///./public/app/features/dashboard/components/DashExportModal/index.ts","webpack:///./public/app/features/dashboard/components/ExportDataModal/ExportDataModalCtrl.ts","webpack:///./public/app/features/dashboard/components/ExportDataModal/index.ts","webpack:///./public/app/features/dashboard/components/FolderPicker/FolderPickerCtrl.ts","webpack:///./public/app/features/dashboard/components/FolderPicker/index.ts","webpack:///./public/app/features/dashboard/components/VersionHistory/HistoryListCtrl.ts","webpack:///./public/app/features/dashboard/components/VersionHistory/HistorySrv.ts","webpack:///./public/app/features/dashboard/components/VersionHistory/index.ts","webpack:///./public/app/features/dashboard/components/TimePicker/validation.ts","webpack:///./public/app/features/dashboard/components/TimePicker/TimePickerCtrl.ts","webpack:///./public/app/features/dashboard/components/UnsavedChangesModal/UnsavedChangesModalCtrl.ts","webpack:///./public/app/features/dashboard/components/SaveModals/SaveDashboardAsModalCtrl.ts","webpack:///./public/app/features/dashboard/components/SaveModals/SaveDashboardModalCtrl.ts","webpack:///./public/app/features/dashboard/components/SaveModals/SaveProvisionedDashboardModalCtrl.ts","webpack:///./public/app/features/dashboard/components/TimePicker/index.ts","webpack:///./public/app/features/dashboard/components/ShareModal/ShareModalCtrl.ts","webpack:///./public/app/features/dashboard/components/SaveModals/index.ts","webpack:///./public/app/features/dashboard/components/ShareModal/ShareSnapshotCtrl.ts","webpack:///./public/app/features/dashboard/components/ShareModal/index.ts","webpack:///./public/app/features/dashboard/components/AdHocFilters/AdHocFiltersCtrl.ts","webpack:///./public/app/features/dashboard/components/RowOptions/RowOptionsCtrl.ts","webpack:///./public/app/features/dashboard/components/DashboardPermissions/DashboardPermissions.tsx","webpack:///./public/app/features/dashboard/index.ts","webpack:///./public/app/features/playlist/playlists_ctrl.ts","webpack:///./public/app/features/playlist/playlist_search.ts","webpack:///./public/app/features/playlist/playlist_srv.ts","webpack:///./public/app/features/playlist/playlist_edit_ctrl.ts","webpack:///./public/app/features/playlist/playlist_routes.ts","webpack:///./public/app/features/playlist/all.ts","webpack:///./public/app/features/panel/panel_header.ts","webpack:///./public/app/features/panel/panel_directive.ts","webpack:///./public/app/features/panel/panel_editor_tab.ts","webpack:///./public/app/features/panel/query_editor_row.ts","webpack:///./public/app/features/panel/panellinks/module.ts","webpack:///./public/app/features/panel/repeat_option.ts","webpack:///./public/app/features/panel/all.ts","webpack:///./public/app/features/org/SelectOrgCtrl.ts","webpack:///./public/app/features/org/NewOrgCtrl.ts","webpack:///./public/app/features/org/UserInviteCtrl.ts","webpack:///./public/app/features/org/all.ts","webpack:///./public/app/features/admin/AdminListUsersCtrl.ts","webpack:///./public/app/features/admin/AdminEditUserCtrl.ts","webpack:///./public/app/features/admin/AdminListOrgsCtrl.ts","webpack:///./public/app/features/admin/StyleGuideCtrl.ts","webpack:///./public/app/features/admin/AdminEditOrgCtrl.ts","webpack:///./public/app/features/alerting/NotificationsEditCtrl.ts","webpack:///./public/app/features/admin/index.ts","webpack:///./public/app/features/alerting/NotificationsListCtrl.ts","webpack:///./public/app/features/manage-dashboards/services/ValidationSrv.ts","webpack:///./public/app/features/manage-dashboards/components/MoveToFolderModal/MoveToFolderCtrl.ts","webpack:///./public/app/features/manage-dashboards/components/MoveToFolderModal/index.ts","webpack:///./public/app/features/manage-dashboards/components/UploadDashboard/uploadDashboardDirective.ts","webpack:///./public/app/features/manage-dashboards/DashboardListCtrl.ts","webpack:///./public/app/features/manage-dashboards/SnapshotListCtrl.ts","webpack:///./public/app/features/manage-dashboards/index.ts","webpack:///./public/app/features/teams/CreateTeamCtrl.ts","webpack:///./public/app/features/profile/ProfileCtrl.ts","webpack:///./public/app/features/profile/ChangePasswordCtrl.ts","webpack:///./public/app/features/profile/PrefControlCtrl.ts","webpack:///./public/app/features/profile/all.ts","webpack:///./public/app/features/datasources/settings/HttpSettingsCtrl.ts","webpack:///./public/app/features/datasources/settings/TlsAuthSettingsCtrl.ts","webpack:///./public/app/app.ts","webpack:///./public/app/features/all.ts","webpack:///./public/app/index.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","3","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","__webpack_exports__","_components__WEBPACK_IMPORTED_MODULE_0__","_types__WEBPACK_IMPORTED_MODULE_1__","__WEBPACK_IMPORT_KEY__","indexOf","_utils__WEBPACK_IMPORTED_MODULE_2__","_themes__WEBPACK_IMPORTED_MODULE_3__","angularModules","coreModule","angular__WEBPACK_IMPORTED_MODULE_0__","angular__WEBPACK_IMPORTED_MODULE_0___default","a","config","lodash__WEBPACK_IMPORTED_MODULE_0__","lodash__WEBPACK_IMPORTED_MODULE_0___default","_grafana_ui__WEBPACK_IMPORTED_MODULE_1__","Settings","options","this","theme","bootData","user","lightTheme","Light","Dark","extend","datasources","windowTitlePrefix","panels","newPanelTitle","playlist_timespan","unsaved_changes_warning","appSubUrl","buildInfo","version","commit","env","isEnterprise","viewersCanEdit","editorsCanAdmin","disableSanitizeHtml","grafanaBootData","settings","appEvents","singletonInstance","BackendSrv","$http","$q","$timeout","contextSrv","inFlightRequests","HTTP_REQUEST_CANCELED","$inject","url","params","method","delete","post","patch","put","withNoBackendCache","callback","_this","noBackendCache","finally","requestErrorHandler","isHandled","message","lodash__WEBPACK_IMPORTED_MODULE_1___default","isString","status","app_core_app_events__WEBPACK_IMPORTED_MODULE_3__","emit","severity","description","retry","requestIsLocal","match","firstAttempt","orgId","headers","substring","then","results","showSuccessAlert","isSignedIn","loginPing","catch","location","href","app_core_config__WEBPACK_IMPORTED_MODULE_4__","addCanceler","requestId","canceler","resolveCancelerIfExists","cancelers","isUndefined","datasourceRequest","defer","Authorization","response","silent","cancelled","statusText","search","query","getDashboardBySlug","slug","getDashboardByUid","uid","getFolderByUid","saveDashboard","dash","dashboard","folderId","overwrite","createFolder","payload","deleteFolder","deleteDashboard","e_1","_a","e_2","_b","folderUids_1","tslib__WEBPACK_IMPORTED_MODULE_0__","folderUids","folderUids_1_1","next","done","folderUid","tasks","createTask","dashboardUids_1","dashboardUids","dashboardUids_1_1","dashboardUid","executeInOrder","e_3","dashboardUids_2","dashboardUids_2_1","moveDashboard","toFolder","totalCount","successCount","filter","succeeded","alreadyInFolderCount","alreadyInFolder","deferred","fullDash","model","app_features_dashboard_state_DashboardModel__WEBPACK_IMPORTED_MODULE_5__","meta","id","clone","getSaveModelClone","fn","ignoreRejections","_i","arguments","args","res","Array","concat","initialValue","reduce","when","setBackendSrv","instance","getBackendSrv","app_core_core_module__WEBPACK_IMPORTED_MODULE_2__","service","valueSelectDropdown","rebuildOnChange","layoutMode","queryPartEditorDirective","sqlPartEditorDirective","lodash","jquery_js_exposed","$compile","$scope","elem","attrs","jquery_js_exposed_default","appendTo","linkText","html","ngModel","$watch","newValue","lodash_default","each","menuItems","item","submenu","subItem","$button","text","typeaheadValues","memo","index","subIndex","click","$item","menuItem","$subItem","source","minLength","items","updater","submenuItem","$apply","dropdownTypeaheadOnSelect","$input","trigger","hide","show","focus","keyup","toggleClass","val","blur","removeClass","contents","buttonTemplateClass","timeoutId","closeDropdownMenu","mousedown","evt","preventDefault","input","dispatchChangeEvent","Event","dispatchEvent","onAnimationStart","addEventListener","$on","removeEventListener","$sce","templateSrv","segment","selectMode","debounce","selected","find","altSegments","trustAsHtml","highlightVariablesAsHtml","fake","expandable","custom","onChange","fromClick","cancelBlur","inputBlur","switchToLink","getOptions","$query","map","alt","escape","unshift","unescape","matcher","linkMode","str","toLowerCase","typeahead","lookup","$element","proxy","process","leading","keydown","keyCode","css","Math","max","width","uiSegmentSrv","cssClass","option","newSegment","getOptionsInternal","cachedOptions","onSegmentChange","valueToSegment","directive","dropdownTypeahead","dropdownTypeahead2","autofillEventFix","core_module","metricSegment","metricSegmentModel","angular","clipboard","scope","_t","icon","kbn","addslashes","replace","angular_default","element","restrict","link","$eval","compile","ngchange","change","tip","template","showIf","replaceWith","$interpolate","label","$id","addClass","$parse","placement","divider","ul","li","buildTemplate","join","insertAfter","iElement","attr","misc_tip","getText","clipboard_default","on","app_events","destroy","onchange","inputValue","editorOptBool","editorCheckbox","gfDropdown","elm","ngModelCtrl","off","$setViewValue","ctrl","$parsers","viewValue","rangeutil","invalid","setColor","utils_tags","getTagColorsFromName","color","borderColor","tagColorFromName","getItemProperty","isFunction","$parent","isArray","select","placeholder","typeaheadSource","widthClass","itemValue","itemvalue","itemText","itemtext","tagClass","tagclass","onTagsUpdated","tagElement","children","idx","tagsinput","ValueSelectDropdownCtrl","oldVariableText","variable","current","highlightIndex","tags","tagObj","tag","min","dropdownVisible","updateLinkText","selectedAndNotInTag","values","currentTexts","clearSelections","selectionsChanged","selectTag","getValuesForTag","valuesText","keyDown","moveHighlight","commitChanges","selectValue","direction","commitChange","excludeOthers","multi","setAllExceptCurrentTo","other","ctrlKey","metaKey","shiftKey","selectedValues","selectedTags","onUpdated","queryChanged","init","$window","$rootScope","body","inputEl","bodyOnClick","has","linkEl","bodyEl","vm","$animate","transclude","childScope","previousElements","cleanUp","remove","$destroy","block","nodes","blockNodes","node","endNode","nextSibling","getBlockNodes","leave","oldValue","showNull","newScope","createComment","enter","parent","controller","value_select_dropdown_ValueSelectDropdownCtrl","stopPropagation","giveFocus","domEl","setSelectionRange","pos","DeltaCtrl","observer","MutationObserver","mutations","appEvent","observe","attributes","attributeFilter","characterData","childList","subtree","$onDestroy","disconnect","diff_view_DeltaCtrl","LinkJSONCtrl","$anchorScroll","goToLine","line","unbind","controllerAs","switchView","place_tt","x","y","opts","defaults","height","$tooltip","tmpScope","scopeData","$digest","outerWidth","outerHeight","offset","$win","isObject","getObjectName","constructor","exec","toString","getType","getValuePreview","className","content","el","classList","add","Node","createTextNode","String","JsonExplorer","json","open","_defaultConfig","_isOpen","skipChildren","set","configurable","keys","toggleOpen","isOpen","appendChildren","animateOpen","removeChildren","animateClose","toggle","openAtDepth","depth","renderArray","arrayWrapperSpan","isNumberArray","forEach","render","skipRoot","togglerIcon","togglerLink","hasKey","objectWrapperSpan","constructorName","isUrl","isDate","valuePreview","isEmpty","removeChild","animated","querySelector","index_1","addAChild_1","formatter","requestAnimationFrame","childrenElement","childrenRemoved_1","removeAChild_1","innerHTML","DEFAULT_SNIPPETS","editorTemplate","code_editor_link","langMode","DEFAULT_MODE","maxLines","DEFAULT_MAX_LINES","showGutter","tabSize","DEFAULT_TAB_SIZE","behavioursEnabled","DEFAULT_BEHAVIORS","snippetsEnabled","aceElem","codeEditor","brace_default","edit","editorSession","getSession","editorOptions","setOptions","$blockScrolling","Infinity","renderer","setScrollMargin","setPadding","DEFAULT_THEME_DARK","core_config","DEFAULT_THEME_LIGHT","setThemeMode","lang","acequire","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","getCompleter","anyEditor","completers","aceModeName","setMode","setLangMode","setEditorContent","clearSelection","codeEditorFocus","textarea","getValue","editorValue","$$postDigest","commands","addCommand","bindKey","win","mac","datasource","onColorChange","impression_srv","search_srv_SearchSrv","SearchSrv","backendSrv","recentIsOpen","store","getBool","starredIsOpen","getRecentDashboards","sections","queryForRecentDashboards","title","score","removable","expanded","toggleRecent","dashIds","take","getDashboardOpened","dashboardIds","orderId","hit","isStarred","section","toggleStarred","getStarred","context_srv","starred","limit","hasFilters","folderIds","skipRecent","skipStarred","handleSearchResult","sortBy","results_1_1","toggleFolder","e_1_1","results_1","return","tslib_es6","results_2_1","results_2","e_2_1","getDashboardTags","react","react_default","react_dom_default","react_dom","getReactComponent","$injector","reactComponent","split","namePart","applyFunctions","obj","propsConfig","prev","wrapApply","phase","$root","$$phase","wrappedInApply","wrapped","applied","prop","actualExpr","expr","exprWatchDepth","getPropWatchDepth","watchDepth","supportsWatchCollection","$watchCollection","listener","supportsWatchGroup","watchGroupExpressions","watchExpressions_1_1","watchExpressions_1","renderComponent","component","props","$evalAsync","getPropConfig","findAttribute","propName","defaultWatch","renderMyComponent","watchProps","onScopeDestroy","unmountComponent","unmountComponentAtNode","factory","reactComponentName","conf","injectableProps","scopeProps","getPropName","propExpressions","propTypes","SearchCtrl","$location","searchSrv","getTags","onTagFiltersChanged","openSearch","closeSearch","initialFolderFilterTitle","isEditor","hasEditPermissionInFolders","ignoreClose","giveSearchFocus","selectedIndex","currentSearchId","moveSelection","currentItem","getFlattenedResultForNavigation","dashboardIndex","selectedDash","folderIndex","path","selectedFolder","onFilterboxClick","preventClose","flattenedResult","newIndex","selectedItem","hideHeader","searchDashboards","localSearchId","isLoading","queryHasNoFilters","filterByTag","removeTag","without","clearSearchFilter","showStarred","showImport","folderExpanding","flatMap","search_SearchCtrl","js_drop","position","dropOptions","classes","openOn","constraints","to","attachment","pin","$applyAsync","drop","drop_default","NavbarCtrl","showSearch","navItemClicked","navItem","clickHandler","templateUrl","navbar_NavbarCtrl","bindToController","require","$formatters","observers","getWebSocketUrl","protocol","host","getConnection","initPromise","conn","readyState","log","WebSocket","onclose","reconnect","onmessage","handleMessage","onopen","LiveSrv","JSON","parse","stream","removeObserver","send","action","stringify","addObserver","subscribe","streamName","Observable","LayoutSelectorCtrl","listView","gridView","onAppEvent","newLayout","layout_selector_template","SwitchCtrl","internalOnChange","checked","switchClass","switch_template","labelClass","tooltip","checkboxTemplate","DashboardSelectorCtrl","$onInit","dashboard_selector_template","query_part_editor_template","part","def","clickFuncParam","paramIndex","$link","optional","handleEvent","$event","inputKeyDown","style","addElementsAndCompile","$paramsContainer","paramValue","$paramLink","paramTemplate","partial","keypress","inputKeyPress","param","dynamicLookup","dynamicOptions","op","debounceLookup","addTypeahead","partActions","showActionsMenu","triggerPartAction","empty","sql_part_editor_template","partDef","separator","FormDropdownCtrl","inputElement","first","linkElement","modelChanged","labelMode","cssClasses","typeaheadUpdater","typeaheadMatcher","startOpen","isPromiseLike","updateDisplay","lookupText","optionCache","optionTexts","allowCustom","updateValue","$option","display","form_dropdown_template","form_dropdown_FormDropdownCtrl","JsonEditorCtrl","toJson","canUpdate","updateHandler","canCopy","enableCopy","update","newObject","fromJson","getContentForClipboard","json_editor_ctrl_JsonEditorCtrl","formModel","email","password","command","sidemenu","oauth","ldapEnabled","authProxyEnabled","disableLoginForm","disableUserSignUp","loginHint","passwordHint","loginMode","submitBtnText","loginModeChanged","loginError","submit","login","signUp","changeView","loginView","changePasswordView","getElementById","changePassword","oldPassword","newPassword","confirmNew","toGrafana","loginForm","$valid","loggingIn","redirect","redirectUrl","LoginCtrl","login_ctrl_LoginCtrl","InvitedCtrl","$routeParams","subTitle","breadcrumbs","code","invite","username","inviteCode","greeting","invitedBy","inviteForm","invited_ctrl_InvitedCtrl","signup_ctrl_SignUpCtrl","SignUpCtrl","orgName","autoAssignOrg","navModel","main","verifyEmailEnabled","signUpForm","rsp","sendResetEmail","sendResetForm","submitReset","resetForm","ResetPasswordCtrl","reset_password_ctrl_ResetPasswordCtrl","error_ctrl_ErrorCtrl","navModelSrv","getNotFoundNav","ErrorCtrl","AlertSrv","UtilSrv","$modal","showModal","hideModal","showConfirmModal","modalScope","dismiss","$new","modal","modalClass","templateHtml","persist","keyboard","modalEl","onConfirm","updateConfirmText","confirmTextValid","confirmText","text2","onAltAction","altActionText","yesText","noText","util_srv_UtilSrv","timer_Timer","Timer","timers","register","cancel","cancelAll","analytics_Analytics","Analytics","gaInit","ajax","dataType","cache","ga","q","Date","googleAnalyticsId","track","page","startAnalytics","googleAnalyticsSrv","close","openDrop","contentElement","classNames","hoverCloseDelay","tetherOptions","tether","onClose","segment_srv_uiSegmentSrv","self","MetricSegment","fallbackText","newFake","newKeyValue","newCondition","condition","newOperators","ops","transformToSegments","addTemplateVars","variableTypeFilter","segments","variables","newPlusButton","run","popoverSrv","addDirective","child","append","directiveInfo","DynamicDirectiveSrv","watchPath","childScope_1","dynamic_directive_srv_DynamicDirectiveSrv","$route","fullPageReloadRoutes","angularUrl","store_store","getState","dispatch","actions","routeParams","state","urlWithoutBase","location_util","stripBaseFromUrl","BridgeSrv","bridge_srv_BridgeSrv","moment","panel","row","scopedVars","replaceWithText","$stateful","sort","arr","start","end","isNull","noXml","interpolateTemplateVars","tabIndex","shortcuts","Global","Dashboard","Time Range","help_HelpCtrl","navTree","getCfgNode","navItems","nav","NavModel","args_1","args_1_1","isNumber","_c","_d","active","nav_model_srv_NavModelSrv","scrollBarHTML","scrollRootClass","scrollRoot","scroller","grafanaScrollbar","scrollerClass","scrollParams","root","bar","barOnCls","scrollingCls","scrollbar","core_default","dispose","currentOrgId","getUserOrgs","OrgSwitchCtrl","orgs","setUsingOrg","org","setWindowLocation","endsWith","org_switcher_template","org_switcher_OrgSwitchCtrl","profiler","_super","MetricSelect","componentDidMount","setState","buildOptions","componentWillReceiveProps","nextProps","shouldComponentUpdate","nextOptions","isEqual","getVariablesGroup","v","getSelectedOption","every","flatten","isSearchable","isMulti","isClearable","backspaceRemovesValue","maxMenuHeight","noOptionsMessage","selectedOption","defaultProps","Component","Metrics","metricDescriptors","metrics","some","metricType","getSelectedMetricDescriptor","initializeServiceAndMetrics","getDefaultProject","defaultProject","sent","error_1","loadMetricDescriptors","getMetricTypes","services","metricDescriptor","getServicesList","getMetricsList","md","selectedMetricDescriptor","displayName","Fragment","MetricSelect_MetricSelect","onServiceChange","onMetricTypeChange","filters","getFilterKeysFunc","getFilterValuesFunc","buildSegmentModel","f","filterSegments","newOperator","ensurePlusButton","getFilters","hasNoFilterKeys","filterValues","removeSegment","getValuesForFilterKey","labels","FilterSegments","removeFilterSegment","count","lastSegment","filterSegmentUpdated","addNewFilterSegments","seg","hideGroupBys","groupBySegments","groupBys","groupBy","getSegmentForValue","createLabelKeyElements","loading","labelData","metricLabels","elements","resourceTypeValue","removeText","defaultRemoveGroupByValue","getGroupBys","groupByChanged","groupBysChanged","getFilterValues","filterKey","shortKey","startsWith","resourceLabels","StackdriverFilterCtrl","filtersChanged","query_filter_ctrl_StackdriverFilterCtrl","Filter","loader","getScope","componentWillUnmount","trys","getLabels","refId","ref","functions","onToggleDisplayAdvanced","displayAdvancedOptions","Aggregations","setAggOptions","aggOptions","crossSeriesReducer","onClick","Alignments","perSeriesAligner","alignOptions","constants","AlignmentPeriods","alignmentPeriod","usedAlignmentPeriod","alignment","ap","secondsToHms","AliasBy","Project","projectName","disabled","displayHelp","displaRawQuery","Help","rawQuery","lastQueryError","Project_Project","onHelpClicked","ng-show","DefaultTarget","unit","QueryEditor","valueType","metricKind","onQueryChange","onExecuteQuery","events","onDataReceived","onDataError","dataList","series","decodeURIComponent","lastQuery","queryRes","onPropertyChange","aliasBy","Metrics_Metrics","metric","Aggregations_Aggregations","AnnotationsHelp","padding","marginRight","AnnotationQueryEditor_DefaultTarget","AnnotationQueryEditor","Filter_Filter","PasswordStrength_PasswordStrength","PasswordStrength","strengthText","strengthClass","EmptyListCTA","classnames","SearchResult","toggleSection","SearchResultSection","renderItem","fa-minus","search-section__header__toggle","classnames_default","collapseClassNames","Async","react_select_esm","Option","TagBadge","removeIcon","tagOptions","term","newTags","TagFilter","selectOptions","classNamePrefix","defaultOptions","loadOptions","onLoadOptions","loadingMessage","styles","filterOption","searchQuery","RegExp","FilterInput","test","components","TagOption","IndicatorsContainer","NoOptionsMessage","MultiValueLabel","MultiValueRemove","Async_default","sidemenu_DropDownChild","listItemClassName","sidemenu_SideMenuDropDown","role","sidemenu_TopSectionItem","img","sidemenu_TopSection","cloneDeep","mainLinks","hideFromMenu","sidemenu_SignIn","encodeURIComponent","pathname","loginUrl","BottomNavLinks","showOrgSwitcher","switchOrg","itemClicked","orgCount","profileNode","bottomNav","homeUrl","SideMenu","toggleSideMenuSmallBreakpoint","AlertBox","AppNotifications_AppNotificationItem","AppNotificationItem","appNotification","onClearNotification","connectWithReduxStore","copy_appNotification","AppNotificationList","onClearAppNotification","clearAppNotification","notifyApp","appNotifications","AppNotifications_AppNotificationList","AppNotificationList_AppNotificationList","mapDispatchToProps","rst2html_min","onDescriptionShow","func","onMoveLeft","onMoveRight","onRemove","FunctionHelpButton","createRef","updatePopperPosition","showingDescription","overflow","maxHeight","textAlign","fontWeight","__html","rst2html_min_default","FunctionEditorControls","FunctionEditor","renderContent","hideAfter","showPopper","hidePopper","popperProps","triggerRef","referenceElement","wrapperClassName","onMouseLeave","onMouseEnter","renderArrow","arrowProps","data-placement","cursor","PureComponent","registerAngularDirectives","react2angular","SideMenu_SideMenu","FunctionEditor_FunctionEditor","PageHeader","SearchResult_SearchResult","TagFilter_TagFilter","QueryEditor_QueryEditor","AnnotationQueryEditor_AnnotationQueryEditor","SearchResultsCtrl","toggleFolderExpand","onFolderExpanding","editable","onSelectionChanged","navigateToFolder","toggleSelection","onItemClick","onTagSelected","$tag","search_results_SearchResultsCtrl","ManageDashboardsCtrl","selectAllChecked","canDelete","canMove","starredFilterOptions","canSave","folder","_e","_f","selectedDashboards","e_3_1","e_4","e_4_1","getFolderIds","e_5","ids","sections_1","sections_1_1","folderCount","dashCount","deleteFoldersAndDashboards","refreshList","getDashboardsToMove","e_6","e_6_1","moveTo","dashboards","initTagFilter","tagFilterOptions","onTagFilterChange","selectedTagFilter","removeStarred","onStarredFilterChange","selectedStarredFilter","onSelectAllChanged","e_7_1","e_7","selectionChanged","clearFilters","createDashboardUrl","importDashboardUrl","manage_dashboards_ManageDashboardsCtrl","json_explorer_JsonExplorer","time_series2","_grafana_ui_src_utils_deprecationWarning__WEBPACK_IMPORTED_MODULE_2__","interval","seconds","numyears","floor","numdays","numhours","numminutes","numseconds","nummilliseconds","strings","nr","outof","intervals_in_seconds","M","w","h","calculateInterval","range","resolution","lowLimitInterval","lowLimitMs","interval_to_ms","intervalMs","round_interval","valueOf","from","matches","interval_regex","sec","parseInt","info","describe_interval","query_color_dot","diameter","stringToJsRegex","toFixed","decimals","pow","round","factor","decimalPos","formatted","precision","substr","roundValue","num","parseFloat","getUnitFormats","Proxy","valueFormats","receiver","Reflect","_teams__WEBPACK_IMPORTED_MODULE_0__","_alerting__WEBPACK_IMPORTED_MODULE_1__","_location__WEBPACK_IMPORTED_MODULE_2__","_navModel__WEBPACK_IMPORTED_MODULE_3__","_folders__WEBPACK_IMPORTED_MODULE_4__","_dashboard__WEBPACK_IMPORTED_MODULE_5__","_acl__WEBPACK_IMPORTED_MODULE_6__","_apiKeys__WEBPACK_IMPORTED_MODULE_7__","_datasources__WEBPACK_IMPORTED_MODULE_9__","_organization__WEBPACK_IMPORTED_MODULE_11__","_appNotifications__WEBPACK_IMPORTED_MODULE_12__","_location__WEBPACK_IMPORTED_MODULE_0__","_navModel__WEBPACK_IMPORTED_MODULE_1__","_appNotification__WEBPACK_IMPORTED_MODULE_2__","selectors_navModel","Footer_Footer","appName","buildVersion","buildCommit","newGrafanaVersionExists","newGrafanaVersion","PageLoader_PageLoader","pageName","loadingText","PageContents","Page","updateTitle","componentDidUpdate","prevProps","autoHeightMin","latestVersion","hasUpdate","Header","Contents","Page_PageContents","_time__WEBPACK_IMPORTED_MODULE_1__","_panel__WEBPACK_IMPORTED_MODULE_2__","_plugin__WEBPACK_IMPORTED_MODULE_3__","_datasource__WEBPACK_IMPORTED_MODULE_4__","_theme__WEBPACK_IMPORTED_MODULE_5__","_threshold__WEBPACK_IMPORTED_MODULE_6__","_input__WEBPACK_IMPORTED_MODULE_7__","REPEAT_DIR_VERTICAL","DEFAULT_PANEL_SPAN","DEFAULT_ROW_HEIGHT","MIN_PANEL_HEIGHT","LS_PANEL_COPY_KEY","PANEL_HEADER_HEIGHT","PANEL_BORDER","GRID_CELL_HEIGHT","GRID_CELL_VMARGIN","app_core_utils_model_utils__WEBPACK_IMPORTED_MODULE_1__","variableRegex","variableTypes","containsVariable","varMatch","variableRegexExec","variableName","isValid","parseDateMath","moment__WEBPACK_IMPORTED_MODULE_1__","moment__WEBPACK_IMPORTED_MODULE_1___default","roundUp","timezone","time","mathString","parseString","ISO_8601","isMoment","date","len","charAt","isNaN","numFrom","includes","units","dateTime","endOf","startOf","subtract","noPayloadActionCreatorFactory","allActionCreators","actionCreatorFactory","toLocaleUpperCase","assign","QueryPartDef","QueryPart","functionRenderer","suffixRenderer","defaultParams","category","addStrategy","updateText","innerExpr","hasMultipleParamsInString","strValue","updateParam","partVal","trim","paramType","quote","parameters","dateTimeFormatters_a","Interval","INTERVALS_IN_SECONDS","Year","Month","Week","Day","Hour","Minute","Second","Millisecond","toNanoSeconds","size","scaledDecimals","abs","toFixedScaled","toMicroSeconds","toMilliSeconds","trySubstract","value1","value2","toSeconds","toMinutes","toHours","toDays","toDuration","timeScale","long","decrementDecimals","decimalsCount","toClock","moment_default","utc","format","format_1","format_2","hours","duration","asHours","toDurationInSeconds","toDurationInHoursMinutesSeconds","numHours","numMinutes","numSeconds","toTimeTicks","toClockMilliseconds","toClockSeconds","dateTimeAsIso","isUtc","isSame","dateTimeAsUS","fromNow","toPercentUnit","toHex0x","hexString","toHex","toUpperCase","sci","toExponential","symbol","scaledUnits","scaled","scaler","binarySIPrefix","decimalSIPrefix","prefixes","getCategories","toPercent","toFixedUnit","locale","formats","currency","dateTimeFromNow","simpleCountUnit","categories","additionalDecimals","ext","extArray","toLocaleString","maximumFractionDigits","buildFormats","categories_1","categories_1_1","cat","getValueFormats","hasBuiltIndex","map_default","sortBy_default","flattenDeep","flattenDeep_default","lodash_chunk","chunk_default","zip","zip_default","tinycolor","tinycolor_default","PALETTE_ROWS","colors","hexColors","hslColors","sortedHSLColors","chunkedHSLColors","sortedChunkedHSLColors","hexToHsl","namedColorsPalette","getThresholdForValue","thresholds","atThreshold","threshold","belowThreshold","t1","t2","types","valueMappings","allValueMappings","valueMapping","ValueToText","valueToTextMapping","valueAsNumber","valueToTextMappingAsNumber","addValueToTextMappingText","RangeToText","rangeToTextMapping","fromAsNumber","toAsNumber","addRangeToTextMappingText","formatFunc_1","getValueFormat","prefix","suffix","mappings","numeric","toNumber","shouldFormat","mappedValue","getMappedValue","dateFormat","v_1","toMoment","isBoolean","getDecimalsForValue","getColorFromThreshold","noValue","toStringProcessor","NaN","themeType","decimalOverride","delta","LN10","dec","norm","magn","EventsWithValidation","validate","validationRules","errors","acc","currRule","rule","errorMessage","hasValidationEvent","validationEvents","processSeriesData","sortedColors","statsCalculator","getDisplayProcessor","ActionTypes","changeQueryAction","changeSizeAction","clearQueriesAction","highlightLogsExpressionAction","initializeExploreAction","loadDatasourcePendingAction","loadDatasourceSuccessAction","modifyQueriesAction","queryTransactionSuccessAction","removeQueryRowAction","runQueriesAction","scanRangeAction","scanStopAction","setQueriesAction","splitOpenAction","updateUIStateAction","toggleGraphAction","toggleLogsAction","updateDatasourceInstanceAction","queriesImportedAction","app_core_redux_actionCreatorFactory__WEBPACK_IMPORTED_MODULE_0__","addQueryRowAction","changeTimeAction","loadDatasourceMissingAction","queryTransactionFailureAction","queryTransactionStartAction","getNavModel","navIndex","fallback","node_1","parentItem","getTitleFromNavModel","reducerFactory","dataSourceLoaded","dataSourcesLoaded","dataSourceMetaLoaded","setDataSourcesLayoutMode","setDataSourceName","setIsDefault","loadDataSourceTypes","updateDataSource","deleteDataSource","app_features_plugins_datasource_srv__WEBPACK_IMPORTED_MODULE_3__","_navModel__WEBPACK_IMPORTED_MODULE_5__","app_core_redux__WEBPACK_IMPORTED_MODULE_6__","dataSourceTypesLoad","app_core_redux_actionCreatorFactory__WEBPACK_IMPORTED_MODULE_7__","app_core_services_backend_srv__WEBPACK_IMPORTED_MODULE_2__","dataSource","pluginInfo","app_core_actions__WEBPACK_IMPORTED_MODULE_4__","addDataSource","plugin","getStore","dataSources","newInstance","loadDataSources","nameExits","digit","findNewName","enabled","dataSourceTypesLoaded","_core_config__WEBPACK_IMPORTED_MODULE_1__","defaultDatasource","loadDataSource","nameHasSuffix","getLastDigit","getNewName","setSearchMemberQuery","setSearchQuery","loadTeams","loadTeam","loadTeamMembers","addTeamMember","removeTeamMember","updateTeam","loadTeamGroups","addTeamGroup","removeTeamGroup","deleteTeam","updateTeamMember","team","LoadTeam","LoadTeamMembers","teamMembers","teamGroupsLoaded","teamGroups","LoadTeamGroups","SetSearchQuery","app_core_services_backend_srv__WEBPACK_IMPORTED_MODULE_1__","perpage","userId","member","setStore","newStore","tickStep","stop","sqrt","e5","e2","step0","step1","e10","getScaledDecimals","tickSize","getFlotTickSize","noTicks","tickDecimals","maxDec","getFlotRange","panelMin","panelMax","datamin","datamax","widen","axis","grafanaTimeFormat","ticks","secPerTick","logp","base","getPrecision","getStringPrecision","dotIndex","getFlotTickDecimals","app_core_components_query_part_query_part__WEBPACK_IMPORTED_MODULE_1__","alertQueryDef","getStateDisplayModel","iconClass","stateClass","conditionTypes","evalFunctions","evalOperators","noDataModes","executionErrorModes","reducerTypes","getAlertAnnotationInfo","ah","alertStateSortScore","dashboardInitServices","dashboardInitCompleted","dashboardInitFailed","removeDashboardPermission","addDashboardPermission","importDashboard","removeDashboard","app_core_redux__WEBPACK_IMPORTED_MODULE_2__","app_core_copy_appNotification__WEBPACK_IMPORTED_MODULE_3__","_plugins_state_actions__WEBPACK_IMPORTED_MODULE_4__","app_core_actions__WEBPACK_IMPORTED_MODULE_5__","loadDashboardPermissions","permissions","teamId","permission","inherited","getDashboardPermissions","dashboardId","itemToDelete","itemsToUpdate","newItem","toUpdateItem","DEFAULT_RANGE","DEFAULT_UI_STATE","LAST_USED_DATASOURCE_KEY","getExploreUrl","buildQueryTransaction","clearQueryKeys","parseUrlState","serializeStateToUrlParam","generateEmptyQuery","ensureQueries","hasNonEmptyQuery","calculateResultsFromQueryTransactions","lodash__WEBPACK_IMPORTED_MODULE_1__","app_core_utils_datemath__WEBPACK_IMPORTED_MODULE_2__","_query__WEBPACK_IMPORTED_MODULE_8__","app_core_time_series2__WEBPACK_IMPORTED_MODULE_9__","app_core_logs_model__WEBPACK_IMPORTED_MODULE_10__","panelTargets","panelDatasource","datasourceSrv","timeSrv","targets","explore","mixedExploreDatasource_1","exploreDatasource","exploreTargets","timeRangeForUrl","getExploreState","queries","exploreState","app_core_utils_url__WEBPACK_IMPORTED_MODULE_3__","left","rowIndex","resultType","queryOptions","queryIntervals","scanning","configuredQueries","panelId","raw","rangeRaw","__interval","__interval_ms","generateKey","latency","ParseUrlStateIndex","metricProperties","isUISegment","ParseUiStateIndex","decodeURI","initial","safeParseJson","ui","parsed","errorResult","SegmentsStart","RangeFrom","Datasource","parsedSegments","isMetricSegment","uiState","showingGraph","Graph","showingTable","Table","dedupStrategy","Strategy","urlState","compact","showingLogs","now","random","graphResult","qt","mergeStreams","queryTransactions","graphInterval","getIntervals","lowLimit","absoluteRange","app_core_utils_kbn__WEBPACK_IMPORTED_MODULE_4__","transaction","allTransactions","colorIndexOffset","allTransactions_1","allTransactions_1_1","datapoints","alias","seriesData","history","MAX_HISTORY_ITEMS","historyKey","datasourceId","setObject","datasourceInstance","newQueryKeys","primaryKey","app_core_config__WEBPACK_IMPORTED_MODULE_0__","stripExtraChars","Store","localStorage","exists","ret","removeItem","OrgRole","PermissionLevel","AclTarget","dashboardAclTargets","dashboardPermissionLevels","TeamPermissionLevel","teamsPermissionLevels","DataSourcePermissionLevel","Query","Team","User","Viewer","Editor","View","Edit","Admin","Member","setAngularLoader","getAngularLoader","app_core_core_module__WEBPACK_IMPORTED_MODULE_1__","AngularLoader","load","lodash__WEBPACK_IMPORTED_MODULE_2___default","compiledElem","digest","pl","angularLoaderInstance","ContextSrv","sidemenuSmallBreakpoint","react2AngularDirective","app_core_core_module__WEBPACK_IMPORTED_MODULE_0__","app_core_utils_ConfigProvider__WEBPACK_IMPORTED_MODULE_1__","reactDirective","getColorDefinitionByName","getColorDefinition","getColorName","getColorByName","getColorFromHexRgbOrName","getColorForTheme","getNamedColorPalette","colorsPaletteInstance","lodash_flatten__WEBPACK_IMPORTED_MODULE_1__","lodash_flatten__WEBPACK_IMPORTED_MODULE_1___default","_types_theme__WEBPACK_IMPORTED_MODULE_2__","tinycolor2__WEBPACK_IMPORTED_MODULE_3__","tinycolor2__WEBPACK_IMPORTED_MODULE_3___default","hue","isPrimary","variants","light","dark","definition","hex","isHex","colorName","colorDefinition","toHexString","palette","Map","greens","buildColorDefinition","yellows","reds","blues","oranges","purples","removePanel","duplicatePanel","copyPanel","editPanelJson","sharePanel","applyPanelTimeOverrides","getResolution","app_core_store__WEBPACK_IMPORTED_MODULE_0__","app_features_dashboard_state_PanelModel__WEBPACK_IMPORTED_MODULE_1__","lodash__WEBPACK_IMPORTED_MODULE_2__","app_core_utils_rangeutil__WEBPACK_IMPORTED_MODULE_3__","app_core_utils_datemath__WEBPACK_IMPORTED_MODULE_4__","app_core_app_events__WEBPACK_IMPORTED_MODULE_5__","app_features_templating_template_srv__WEBPACK_IMPORTED_MODULE_6__","app_core_constants__WEBPACK_IMPORTED_MODULE_7__","ask","alert","getSaveModel","newPanel","oldPanel","findIndex","deletedPanel","sortPanelsByGridPos","canEdit","timeRange","newTimeData","timeInfo","timeFrom","timeFromInterpolated","timeFromInfo","timeShift","timeShiftInterpolated","escapeStringForRegex","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","specialChars","escaped","currentChar","labelClassName","inputClassName","updateLegendValues","app_core_utils_ticks__WEBPACK_IMPORTED_MODULE_1__","_grafana_ui__WEBPACK_IMPORTED_MODULE_3__","aliasOrRegex","regex","seriesAlias","yaxes","yaxis","getDataMinMax","tickDecimalsPlusOne","data_1","data_1_1","stats","TimeSeries","bars","fillColor","valueFormater","legend","isMsResolutionNeeded","applySeriesOverrides","overrides","dashes","dashLength","points","nullPointMode","stack","override","matchSeriesOverride","lines","lineWidth","fill","linewidth","spaceLength","pointradius","radius","steppedLine","steps","zindex","fillBelowTo","transform","hideTooltip","getFlotPairs","fillStyle","Number","MAX_VALUE","avg","diff","timeStep","currentTime","previousTime","ignoreNulls","nullAsZero","currentValue","total","allIsNull","nonNulls","previousValue","previousDeltaUp","logmin","allIsZero","isFinite","timestamp","hideZero","ExploreId","LanguageProvider","getSearchQuery","app_types__WEBPACK_IMPORTED_MODULE_0__","getSearchMemberQuery","searchMemberQuery","getTeamGroups","groups","getTeamsCount","teams","getTeam","currentTeamId","getTeamMembers","members","isSignedInUserTeamAdmin","signedInUser","userInMembers","isPermissionTeamAdmin","isAdmin","isGrafanaAdmin","orgRole","userIsTeamAdmin","extractServicesFromMetricDescriptors","getLabelKeys","getAlignmentPickerData","lodash_uniqBy__WEBPACK_IMPORTED_MODULE_1__","lodash_uniqBy__WEBPACK_IMPORTED_MODULE_1___default","_constants__WEBPACK_IMPORTED_MODULE_2__","interpolatedMetricType","selectedService","getMetricTypesByService","metricTypeExistInArray","metricTypes","selectedMetricType","getAlignmentOptionsByMetric","loadPluginDashboards","_core_services_backend_srv__WEBPACK_IMPORTED_MODULE_1__","SetLayoutMode","SetPluginsSearchQuery","dataSourceType","pluginDashboardsLoad","pluginDashboardsLoaded","saveFolder","removeFolderPermission","addFolderPermission","app_core_actions__WEBPACK_IMPORTED_MODULE_2__","LoadFolder","setFolderTitle","newTitle","SetFolderTitle","app_core_app_events__WEBPACK_IMPORTED_MODULE_4__","updated","getFolderPermissions","GrafanaThemeType","mergeTablesIntoModel","TableModel","table","columns","columnMap","rows","col","addColumn","addRow","b","desc","reverse","areRowsMatching","otherRow","foundFieldToMatch","columnIndex","dst","tables","columnIndexMapper","columnNames","flattenedRows","seriesIndex","mapper","columnsUnion","matchedRow","mergedRows","compactedRows","app_core_utils_kbn__WEBPACK_IMPORTED_MODULE_1__","app_features_templating_variable__WEBPACK_IMPORTED_MODULE_3__","luceneEscape","updateIndex","isNone","updateTimeRange","variableInitialized","TemplateSrv","getAdhocFilters","datasourceName","luceneFormat","encodeURIComponentStrict","charCodeAt","formatValue","regexEscape","escapedValues","distributeVariable","setGrafanaVariable","grafanaVariables","getVariableName","expression","lastIndex","variableExists","var1","var2","fmt2","var3","builtIns","getAllValue","allValue","systemValue","fmt","fmt3","isAllValue","skipUrlSync","getValueForUrl","setUsersSearchQuery","removeUser","invitees","LoadInvitees","SetUsersSearchQuery","loadUsers","loadInvitees","revokeInvite","setDatasourceSrv","getDatasourceSrv","singleton","app_core_config__WEBPACK_IMPORTED_MODULE_2__","_plugin_loader__WEBPACK_IMPORTED_MODULE_3__","loadDatasource","dsConfig","pluginDef","instantiate","instanceSettings","pluginExports","getAll","DatasourceSrv","getExternal","ds","builtIn","getAnnotationSources","sources","annotations","getMetricSources","metricSource","fromCharCode","metricSources","skipVariables","addDataSourceVariables","list","srv","dataSourceTypes","logs_model_a","LogLevel","LogsMetaKind","LogsDedupDescription","LogsDedupStrategy","calculateFieldStats","calculateLogsLabelStats","dedupLogRows","getParser","filterLogLevels","makeSeriesForLogs","critical","warning","debug","trace","unknown","LOGFMT_REGEXP","LogsParsers","buildMatcher","fields","fieldMatcher","escapeRegExp","field","getLabelFromField","getValueFromField","extractor","entry","rowsWithField","countBy","chain","countsByValue","proportion","rowCount","rowsWithLabel","isoDateRegexp","logs","strategy","none","dedupedRows","rowCopy","previous","exact","numbers","signature","duplicates","parser","logfmt","hiddenLogLevels","logLevel","seriesByLevel","lastTs","LogLevelColor","seriesList","timeEpochMs","bucketSize","seriesList_1","seriesList_1_1","singlestat_module_namespaceObject","module_SingleStatCtrl","getColorForValue","singlestat2_module_namespaceObject","singleStatBaseOptionsCheck","singleStatMigrationCheck","singlestat2_module_reactPanel","gettingstarted_module_namespaceObject","module_GettingStartedPanelCtrl","gauge_module_namespaceObject","gauge_module_reactPanel","piechart_module_namespaceObject","piechart_module_reactPanel","bargauge_module_namespaceObject","bargauge_module_reactPanel","system","remarkable","remarkable_default","core","factors","utils_panel","editorTabs","timing","pluginId","pluginName","panelDidMount","panelInitialized","renderingCompleted","refresh","publishAppEvent","evtName","fullscreen","viewPanel","editPanel","exitFullscreen","initEditMode","editModeInitiated","maxPanelsPerRowOptions","addEditorTab","directiveFn","editorTab","getMenu","shortcut","menu","getAdditionalMenuItems","extendedMenu","getExtendedMenu","otherPanelInFullscreenMode","containerHeight","PanelCtrl","getInfoContent","markdown","linkSrv","sanitize","interpolatedMarkdown","links","getPanelLinkAnchorInfo","onMetricsPanelRefresh","onPanelTearDown","MetricsPanelCtrl","dataSubscription","unsubscribe","snapshotData","dataStream","issueQueries","handleQueryResult","inspector","intervalOverride","metricsQuery","getTimezone","cacheTimeout","snapshot","handleDataStream","AlertTabCtrl","prism","slate_es","delimiter","maxDepth","currentDepth","output","step","isobject","newKey","isarray","utils_ticks","versionPattern","version_SemVersion","SemVersion","major","minor","isGtOrEq","compared","comparable","isVersionGtOrEq","gfunc_index","addFuncDef","funcDef","shortName","optionalSeriesRefArgs","multiple","isVersionRelatedFunction","graphiteVersion","FuncInstance","withDefaultParams","metricExp","replaceVariables","last","valueInterpolated","pop","_hasMultipleParamsInString","gfunc","getFuncDef","gfunc_FuncInstance","rawDefs","funcName","group","required","rawParam","default","suggestions","GraphiteDatasource","basicAuth","jsonData","supportsTags","withCredentials","render_method","funcDefsPromise","getQueryOptionsInfo","maxDataPoints","graphOptions","translateTime","until","buildGraphiteParams","httpOptions","convertDataPointsToMs","tagString","annotation","graphiteQuery","target_1","datapoint","tags_1","parseTags","what","doGraphiteRequest","datemath","unix","metricFindQuery","optionalOptions","interpolatedQuery","expressions","exprRegex","getTagValuesAutoComplete","getTagsAutoComplete","getTagValues","tagPrefix","valuePrefix","getVersion","createFuncInstance","funcDefs","waitForFuncDefsLoaded","getFuncDefs","parseFuncDefs","inspect","_seriesRefLetters","graphiteOptions","cleanOptions","targetValue","intervalFormatFixRegex","fixIntervalFormat","nestedSeriesRegexReplacer","g1","hasTargets","allFunctions","functionMenu","createFunctionDropDownMenu","addFunction","cleanUpDrop","shortDesc","targetAttachment","$funcLink","scheduledRelink","paramCountAtLink","$comma","paramDef","inputElem","relink","targetChanged","hasClass","defParams","lastParam","hasValue","added","handleRemoveFunction","removeFunction","handleMoveLeft","moveFunction","graphiteAddFunc","graphiteFuncEditor","unicodeLetterTable","lexer_i","identifierStartTable","Lexer","lexer","tokenize","skip","token","char","peek","scanStringLiteral","scanPunctuator","scanNumericLiteral","scanIdentifier","scanTemplateSequence","isUnicodeLetter","isHexDigit","ch1","ch2","ch3","ch4","getIdentifierStart","chr","readUnicodeEscapeSequence","identifierPartTable","getIdentifierPart","ch","isDecimalDigit","isMalformed","isIdentifierStart","isOctalDigit","bad","isPunctuator","isUnclosed","functionCall","metricExpression","curlySegment","consumeToken","errorMark","curly","curlyBraceSegment","parts","tokens","functionParameters","numericLiteral","seriesRefExpression","boolExpression","stringLiteral","currentToken","token1","token2","matchToken","graphite_query","GraphiteQuery","parseTarget","textEditor","Parser","getAst","astNode","parseTargetRecursive","checkOtherSegmentsIndex","checkForSeriesByTag","seriesByTagFunc","seriesByTagUsed","hidden","splitSeriesByTagParams","getSegmentPathUpTo","innerFunc_1","getSeriesByTagFuncIndex","addFunctionParameter","newFunc","moveAliasFuncLast","aliasFunc","move","updateModelTarget","metricPath","updateRenderedTarget","keyBy","targetsByRefId","nestedSeriesRefRegex","targetWithNestedQueries","refCount","countTargetRefs","targetFull","tagPattern","getSeriesByTagFunc","seriesByTagFuncIndex","addTag","newTagParam","renderTagString","updateTag","tagIndex","removeTagValue","renderTagExpressions","excludeIndex","tagExpr","operator","queryModel","buildSegments","GraphiteQueryCtrl","toggleEditorMode","checkOtherSegments","fixTagSegments","addSelectMetricSegment","newSelectMetric","fromIndex","setSegmentFocus","segmentIndex","getAltSegments","panelCtrl","eachRight","removeTaggedEntry","addAltTagSegments","getTagsAsSegments","tagSegments","TAG_PREFIX","segmentValueChanged","updateSegmentValue","pause","addSeriesByTagFunc","spliceSegments","emptySegments","targetTextChanged","oldTarget","paused","smartlyHandleNewAliasByNode","tagParam","getAllTags","altTags","mapToDropdownOptions","tagExpressions","getTagOperators","GRAPHITE_TAG_OPERATORS","getAllTagValues","tagKey","altValues","tagChanged","addNewTag","newTag","addTagSegments","showDelimiter","unpause","getCollapsedText","query_ctrl","GraphiteConfigCtrl","graphiteVersions","autoDetectGraphiteVersion","namespace","metricName","statistics","dimensions","period","region","returnData","highResolution","regionSegment","namespaceSegment","dimSegments","statSegments","stat","removeDimSegment","removeStatSegment","copy","standardStatistics","statSegmentChanged","getDimSegments","$index","getDimensionKeys","dimensionKey","getDimensionValues","syncDimSegmentsWithModel","dims","keySegment","valueSegment","getRegions","getMetrics","regionChanged","namespaceChanged","metricChanged","query_parameter_ctrl_CloudWatchQueryParameterCtrl","cloudwatch_datasource","CloudWatchDatasource","proxyUrl","defaultRegion","expandTemplateVariable","getActualRegion","convertDimensionFormat","getPeriod","performTimeSeriesQuery","convertToCloudWatchTime","interval_to_seconds","periodUnit","daySec","ceil","awsRequest","transformSuggestDataFromTable","suggestData","doMetricQueryRequest","subtype","getNamespaces","filterDimensions","getEbsVolumeIds","instanceId","getEc2InstanceAttribute","attributeName","getResourceARNs","resourceType","filterJson","metricNameQuery","dimensionKeysQuery","dimensionValuesQuery","ebsVolumeIdsQuery","ec2InstanceAttributeQuery","targetAttributeName","resourceARNsQuery","tagsJSON","annotationQuery","defaultPeriod","prefixMatching","actionPrefix","alarmNamePrefix","targetContainsTemplate","k","testDatasource","getDefaultRegion","getExpandedVariables","allSelected","selectedVariables","currentVariables","scopedVar","btoa","findKey","multiVariable","templating_variable","convertedDimensions","CloudWatchQueryCtrl","aliasSyntax","CloudWatchConfigCtrl","accessKeyExist","secretKeyExist","authTypes","indexPatternTypes","example","regions","timeField","authType","secureJsonFields","accessKey","secretKey","resetAccessKey","resetSecretKey","CloudWatchAnnotationsQueryCtrl","requiresField","supportsInlineScript","supportsMissing","isPipelineAgg","minVersion","supportsMultipleBucketPaths","orderByOptions","intervalOptions","query_def_pipelineOptions","bucket_script","movingAvgModelSettings","simple","linear","isCheckbox","getMetricAggTypes","esVersion","query_def_metricAggTypes","po","isPipelineAggWithMultipleBucketPaths","getMovingAvgSettings","filtered","filteredResult","setting","processMetrics","esAgg","newSeries","bucket","buckets","doc_count","percentiles","percentileName","statName","std_deviation_bounds_upper","std_deviation_bounds","upper","std_deviation_bounds_lower","lower","metricId","normalized_value","processAggregationDocs","aggDef","propKey","filterable","propValues","_k","_j","_l","_m","addMetricValue","getMetricName","_h","_g","processBuckets","aggs","aggId","bucketAggs","nameIndex","key_as_string","metricDef","extendedStats","getSeriesName","metricTypeCount","g2","agg","pipelineVariables","pv","appliedAgg","pipelineAgg","describeMetric","e_5_1","nameSeries","uniq","processHits","hits","doc","_id","_type","_index","_source","ElasticResponse","trimDatapoints","aggregations","histogram","trimEdges","getErrorFromElasticResponse","root_cause","reason","$$config","getTimeSeries","responses","tmpSeriesList","amount","pattern","getIndexForToday","getIndexList","intervalInfo","intervalMap","endEpoch","indexList","IndexPattern","ElasticQueryBuilder","getRangeFilter","gte","lte","buildTermsAgg","queryNode","metricRef","terms","orderBy","order","min_doc_count","missing","getDateHistogramAgg","extended_bounds","getHistogramAgg","getFiltersAgg","analyze_wildcard","filterObj","documentQuery","unmapped_type","addAdhocFilters","adhocFilters","queryCondition","bool","must","match_phrase","must_not","lt","gt","regexp","build","queryString","nestedAggs","query_string","metricAgg","buckets_path","findMetricById","aggField","getTermsQuery","queryDef","_term","_key","ElasticDatasource","indexPattern","index_pattern_IndexPattern","timeInterval","maxConcurrentShardRequests","queryBuilder","query_builder_ElasticQueryBuilder","tagsField","textField","header","search_type","ignore_unavailable","fieldName","fieldNames","fieldValue","getFieldFromSource","titleField","getQueryHeader","searchType","timeTo","queryHeader","sentTargets","targets_1","targets_1_1","queryObj","elastic_response_ElasticResponse","getFields","typeMap","float","double","integer","string","scaled_float","nested","shouldAddField","fieldNameParts","getFieldsRecursively","subObj","properties","indexName","typeName","getTerms","esQuery","getTagKeys","isPrimitive","objectContainsTemplate","query_def_bucketAggTypes","validateModel","isFirst","bucketAggCount","settingsLinkText","orderOptions","describeOrderBy","defaultTo","addFiltersQuery","removeFiltersQuery","toggleOptions","showOptions","getOrderByOptions","metricRefs","getFieldsInternal","$fieldType","getIntervalOptions","addBucketAgg","lastBucket","addIndex","bucket_agg_ElasticBucketAggCtrl","metricAggs","pipelineAggOptions","isSingle","variablesLinkText","metricAggTypes","pipelineOptions","opt","precisionThreshold","precision_threshold","percents","movingAvgModelTypes","movingAvgModelOptions","modelSettings","updateMovingAvgModelSettings","inlineScript","inline","updatePipelineAggOptions","toggleVariables","showVariables","onChangeInternal","modelSettingsKeys","onChangeClearInternal","minimize","onTypeChange","addMetricAgg","removeMetricAgg","ElasticMetricAggCtrl","metric_agg_ElasticMetricAggCtrl","ElasticPipelineVariablesCtrl","newVariable","ElasticQueryCtrl","queryUpdated","jsonStr","handleQueryError","newJson","rawQueryOld","bucketAggTypes","bucketAgg","ElasticConfigCtrl","esVersions","indexPatternTypeChanged","database","opentsdb_datasource","OpenTsDatasource","tsdbVersion","tsdbResolution","convertToTSDBTime","qs","convertTargetToQuery","groupByTags","tagk","metricToTargetMapping","mapMetricsToTargets","metricData","_saveTagKeys","transformMetricData","eventList","aggregator","annotationObject","isGlobal","globalAnnotations","startTime","msResolution","reqBody","showQuery","_addCredentialOptions","suggestTagKeys","tagKeys","aggregateTags","_performSuggestQuery","_get","_performMetricKeyValueLookup","keysArray","keysQuery","tagvs","_performMetricKeyLookup","tagks","tagv","relativeUrl","interpolated","responseTransform","tagNamesQuery","tagValuesQuery","tagNamesSuggestQuery","tagValuesSuggestQuery","getAggregators","aggregatorsPromise","getFilterTypes","filterTypesPromise","createMetricLabel","dps","metricLabel","scopedVars_1","tagData","toPairs","shouldComputeRate","rate","rateOptions","counter","isCounter","counterMax","counterResetValue","resetValue","disableDownsampling","downsampleInterval","downsample","downsampleAggregator","downsampleFillPolicy","explicitTags","interpolatedTagValue","arrTagV","tagV","tagK","OpenTsQueryCtrl","validateTarget","aggregators","fillPolicies","filterTypes","suggestMetrics","getTextValues","targetBlur","metricFindResult","addTagMode","currentTagKey","currentTagValue","editTag","closeAddTagMode","addFilter","currentFilterType","currentFilterGroupBy","currentFilterKey","currentFilterValue","currentFilter","addFilterMode","removeFilter","editFilter","fil","closeAddFilterMode","errs","shouldDownsample","tsdbVersions","tsdbResolutions","OpenTsConfigCtrl","AnnotationsQueryCtrl","GrafanaDatasource","matchAny","renderedValues","tt","GrafanaQueryCtrl","GrafanaAnnotationsQueryCtrl","influx_series","InfluxSeries","seriesName","columnName","_getSeriesName","segIndex","getAnnotations","column","titleColumn","tagsColumn","tagsCol","titleCol","timeCol","textCol","getTable","table_model","reordered","query_part","Predictors","Aliasing","Fields","createPart","query_part_index","fieldRenderer","replaceAggregationAddStrategy","selectParts","partModel","query_part_categories","morePartsAvailable","Selectors","addTransformationStrategy","selectModels","Transformations","groupByTimeFunctions","partCount","renderMode","influxdb_query_part","influx_query","InfluxQuery","policy","resultFormat","orderByTime","updateProjection","groupByParts","updatePersistedParts","hasGroupByTime","g","hasFill","addGroupBy","stringParts","typePart","arg","removeGroupByPart","removeSelect","removeSelectPart","modelsIndex","partIndex","addSelectPart","renderTagCondition","interpolate","getMeasurementAndPolicy","measurement","interpolateQueryStr","defaultFormatFn","includeAll","selectText","conditions","groupBySection","tz","renderAdhocFilters","response_parser","ResponseParser","influxResults","normalizedQuery","isValueFirst","serie","addUnique","query_builder_InfluxQueryBuilder","InfluxQueryBuilder","withMeasurementFilter","withKey","whereConditions","influxdb_datasource","responseParser","timeFilter","getTimeFilter","queryTargets","_seriesQuery","allQueries","influxSeries","timeSeries","curry","buildExploreQuery","_influxRequest","epoch","serializeParams","currentUrl","urls","u","db","req","paramSerializer","getInfluxTime","InfluxQueryCtrl","groupBySegment","resultFormats","measurementSegment","newSelectMeasurement","buildSelectMenu","removeOrderByTime","selectMenu","getGroupByOptions","slimit","tags_1_1","groupByAction","plusButton","subitem","handleSelectPartEvent","fieldsQuery","tagsQuery","measurementChanged","getPolicySegments","policiesQuery","policyChanged","policySegment","getMeasurements","measurementFilter","getTagsOrValues","nextValue","removeTagFilterSegment","getFieldSegments","tagSegmentUpdated","rebuildTargetTagConditions","tagOperator","segment2","getTagValueOperator","tagValue","InfluxConfigCtrl","InfluxAnnotationsQueryCtrl","keywords","builtInWords","metricNameRegexp","labelRegexp","addLabelToSelector","selector","labelKey","labelValue","labelOperator","parsedLabels","operatorForLabelKey","uniqWith","add_label_to_query","previousWord","word","openChar","closeChar","nextSelectorStart","nextSelectorEnd","previousWordIsKeyWord","insideSelector","selectorRegexp","selectorWithLabel","cursorOffset","language_utils_selectorRegexp","labelKeys","prefixOpen","prefixClose","suffixClose","suffixOpenIndex","suffixOpen","language_utils_labelRegexp","_","metricMatch","cleanSelector","loki_syntax","lookbehind","context-labels","label-key","label-value","greedy","punctuation","HISTORY_COUNT_CUTOFF","language_provider","LokiLanguageProvider","initialValues","metadataRequest","startTask","fetchLogLabels","labelValues","getSyntax","provideCompletionItems","context","wrapperClasses","getEmptyCompletionItems","cutoffTs","historyForItem","ts","recent","hint","documentation","addHistoryMetadata","prefixMatch","skipSort","getLabelCompletionItems","anchorBlock","anchorOffset","parseSelector","parsedSelector","wrapLabel","fetchLabelValues","DEFAULT_KEYS","difference","existingKeys","selectorMatch","labels_1","labelsToKeep_1","logLabelFetchTs","values_1","exisingValues","nextValues","logLabelOptions","keyOption","result_transformer_labelRegexp","findUniqueLabels","commonLabels","uncommonLabels","processEntry","uniqueLabels","logs_model","level","hasAnsi","utils_text","timeFromNow","timeLocal","ansicolor","strip","searchWords","mergeStreamsToLogs","streams","labelsByKey","sortedRows","entries","hasUniqueLabels","kind","LabelsMap","query_utils_selectorRegexp","loki_datasource","settingsData","LokiDatasource","_request","apiUrl","prepareQueryTarget","getTime","DEFAULT_QUERY_PARAMS","parseQuery","allStreams","importQueries","originMeta","languageProvider","modifyQuery","formatQuery","LokiCheatSheet","onClickExample","components_LokiStartPage","LokiStartPage","dist","TypeaheadItem","getRef","onClickItem","isSelected","offsetParent","container","scrollTop","offsetHeight","offsetTop","scrollIntoView","Typeahead_TypeaheadGroup","TypeaheadGroup","Typeahead_TypeaheadItem","explore_Typeahead","Typeahead","groupedItems","menuRef","paragraph","syntax","makeFragment","fragment","SCHEMA","explore_PlaceholdersBuffer","PlaceholdersBuffer","clearPlaceholders","nextMoveOffset","orders","getNextMoveOffset","hasPlaceholders","setNextPlaceholderValue","currentPlaceholderIndex","nextPlaceholderIndex","backwardMove","indices","getOffsetBetween","startIndex","endIndex","placeholderRegExp","textOffset","o1","o2","flattenedSuggestions","slate_plain_serializer_es","serialize","prevValue","invokeParentOnValueChanged","executeOnQueryChangeAndExecuteQueries","selection","isCollapsed","handleTypeahead","resetTimer","lastExecutedValue","cleanText","onTypeahead","wrapperNode","editorNode","prefix_1","labelValueMatch","refresher_1","filteredSuggestions","getSelection","anchorNode","parentElement","closest","isBlurred","getRangeAt","startOffset","textContent","refresher","skipFilter","filterText","insertText","sortText","typeaheadPrefix","typeaheadContext","typeaheadText","handleEnterAndTabKey","typeaheadIndex","menuEl","suggestion","getSuggestionByIndex","nextChange","applyTypeahead","insertTextOperation","operations","operation","suggestionText","placeholdersBuffer","onKeyDown","resetTypeahead","mounted","handleBlur","handleFocus","onClickMenu","hasSuggestions","rect_1","getBoundingClientRect","scrollX_1","scrollX","scrollY_1","scrollY","opacity","top","removeAttribute","renderMenu","portalOrigin","QueryField_Portal","origin","handlePaste","clipboardData","getData","pastedValue","initialQuery","plugins","anchorText","forward","deleteForward","indent","trimLeft","getIndent","splitBlock","additionalPlugins","makeValue","updateMenu","QueryField","prevState","deleteBackward","onWillApplySuggestion","preserveSuffix","backward","deleteBackwards","suffixLength","insertFragment","slate-query-field__wrapper--disabled","slate_react_es","autoCorrect","readOnly","onBlur","onFocus","onPaste","spellCheck","Portal","createPortal","explore_QueryField","previousSibling","sibling","global","Element","ownerDocument","querySelectorAll","{","BracesPlugin","BRACES","delimiterIndex","NON_SELECTOR_SPACE_REGEXP","previousChar","nextChar","RunnerPlugin","handler","selectedOptions","onChangeLogLabels","onChangeQuery","onClickHintFix","onExecuteHint","fix","labelKeyNode","getPreviousCousin","getNextCharacter","pluginsSearch","LokiQueryFieldForm","syntaxLoaded","onLabelsRefresh","hasSytax","hasLogLabels","getChooserText","chooserText","willApplySuggestion","useRefMounted","refMounted","setLogLabelOptions","shouldTryRefreshLabels","setRefreshLabels","languageProviderInitialised","targetOption_1","activeOption","refreshLogLabels","useLokiSyntax","languageProviderInitialized","setLanguageProviderInitilized","setSyntax","setActiveOption","useLokiLabels","refreshLabels","prism_default","languages","components_LokiQueryField","otherProps","isSyntaxReady","syntaxProps","LokiQueryFieldForm_LokiQueryFieldForm","LokiQueryEditor","LokiConfigCtrl","sets","dsName","MixedDatasource","mysql_response_parser","processQueryResult","parseMetricFindQueryResult","textColIndex","findColIndex","valueColIndex","transformToKeyValueList","transformToSimpleList","containsKey","colName","transformAnnotationResponse","timeColumnIndex","textColumnIndex","tagsColumnIndex","mysql_query","MysqlQuery","timeColumn","metricColumn","where","unquoteIdentifier","quoteIdentifier","quoteLiteral","escapeLiteral","rawSql","buildQuery","hasUnixEpochTimecolumn","timeColumnType","buildTimeColumn","timeGroup","hasTimeGroup","macro","buildMetricColumn","hasMetricColumn","buildValueColumns","buildValueColumn","aggregate","buildWhereClause","buildGroupClause","groupSection","MysqlDatasource","interpolateVariable","MysqlMetaQuery","getOperators","datatype","quoteIdentAsLiteral","findMetricTable","buildTableConstraint","buildTableQuery","buildColumnQuery","buildValueQuery","buildDatatypeQuery","SqlPartDef","wrapOpen","wrapClose","sql_part_SqlPart","SqlPart","sql_part_index","sql_part_register","sql_part","metaBuilder","defaultQuery","tableSegment","timeColumnSegment","metricColumnSegment","whereAdd","groupAdd","MysqlQueryCtrl","whereParts","groupParts","resetPlusButton","button","getTableSegments","tableChanged","task1","segment_1","timeColumnChanged","task2","getTimeColumnSegments","getMetricColumnSegments","addNone","metricColumnChanged","lastQueryMeta","anySeriesFromQuery","templateQuoter","findAggregateIndex","findWindowIndex","partType","addGroup","aggIndex","addAlias","windowIndex","aggIndex_1","handleGroupPartEvent","removeGroup","handleWherePartEvent","getWhereOptions","addWhereAction","addGroupAction","MysqlConfigCtrl","module_defaultQuery","postgres_response_parser","postgres_query","PostgresQuery","windows","overParts","over","curr","PostgresDatasource","getTimescaleDBVersion","PostgresMetaQuery","buildSchemaConstraint","buildAggregateQuery","postgres_sql_part_register","postgres_sql_part_index","postgres_sql_part","query_ctrl_defaultQuery","PostgresQueryCtrl","aggregates","timescaledb","postgresVersion","getGroupOptions","PostgresConfigCtrl","onPasswordReset","secureJsonData","onPasswordChange","currentTarget","sslmode","showTimescaleDBHelp","autoDetectFeatures","trunc","postgresVersions","toggleTimescaleDBHelp","postgres_module_defaultQuery","PostgresAnnotationsQueryCtrl","metric_find_query","PrometheusMetricFindQuery","labelNamesQuery","labelValuesQuery","metricNamesQuery","queryResultQuery","metricNameAndLabelsQuery","getPrometheusTime","_labels","metricFilterPattern","matchedMetricName","getOriginalMetricName","prometheusResult","transformMetricDataToTable","responseListLength","valueWithRefId","prometheusResult_1","prometheusResult_1_1","sortSeriesByLabel","transformToHistogramOverTime","prometheusResult_2","prometheusResult_2_1","transformInstantMetricData","stepMs","baseTimestamp","dpValue","endTimestamp","resultCount","sortedLabels","labelIndex","valueText","ResultTransformer","legendFormat","renderTemplate","aliasPattern","aliasData","__name__","topSeries","bottomSeries","bottomPoint","s1","s2","le1","le2","parseHistogramLabel","le","promql_RATE_RANGES","FUNCTIONS","detail","promql","comment","context-aggregation","inside","range-duration","language_provider_wrapLabel","setFunctionKind","prometheus_language_provider","PromQlLanguageProvider","fetchMetricNames","fetchHistogramMetrics","histogramMetrics","getTextsAtRangeAsArray","currentLine","selectedLines","nextCharacter","tokenRecognized","prefixUnrecognized","noSuffix","safeEmptyPrefix","getRangeCompletionItems","getAggregationCompletionItems","isNextOperand","getTermCompletionItems","historyItems","language_provider_HISTORY_COUNT_CUTOFF","language_provider_addHistoryMetadata","termCompletionItems","queryOffset","queryText","getBlocks","blockText","openParensAggregationIndex","lastIndexOf","closeParensAggregationIndex","selectorString","fetchSeriesLabels","histogramSeries","withName","rest","processLabels","SUM_HINT_THRESHOLD_COUNT","queryTimeout","httpMethod","resultTransformer","result_transformer_ResultTransformer","ruleMappings","loadRules","transformRequest","interpolateQueryExpr","prometheusSpecialRegexEscape","prometheusRegularEscape","activeTargets","createQuery","allQueryPromise","instant","performInstantQuery","responseList","transformerOptions","hinting","minInterval","intervalFactor","adjustedInterval","adjustInterval","getRangeScopedVars","adjusted","alignRange","performSuggestQuery","metricsNameCache","expire","sRange","msRange","regularRange","__range_ms","__range_s","__range","titleFormat","textFormat","dupCheck","useValueForTime","timestampValue","PrometheusDatasource","expandedQueries","getQueryHints","hints","increasing_1","nonNullData_1","dp","monotonic","mapping_1","mappingForQuery","ruleName","mapping","preventSubmit","extractRuleMappingFromGroups","ruleNames","rulesRegex","pre","expandRecordingRules","getTimeRange","PromCompleter","getCompletions","editor","session","wrappedCallback","completions","templateVariableCompletions","getTokenAt","getCompletionsForLabelMatcherName","getCompletionsForLabelMatcherValue","getCompletionsForBinaryOperator","vectors","caption","metricNames","findMetricName","labelNameCache","getLabelNameAndValueForExpression","transformToCompletions","labelNames","findToken","labelNameToken","labelName","labelValueCache","rparenToken","keywordOperatorToken","findExpressionMatchedParen","binaryOperatorToken","metricName_1","labelQueryCache","words","nameLabelNameToken","nameLabelValueToken","getTokens","guard","sum","deep","PrometheusQueryCtrl","getDefaultFormat","resolutions","completer_PromCompleter","refreshMetricData","updateLink","rangeDiff","endTime","g0.expr","g0.range_input","g0.end_input","linkToPrometheus","directUrl","PrometheusConfigCtrl","PromCheatSheet_CHEAT_SHEET_ITEMS","PromCheatSheet","components_PromStart","PromStart","PromQueryField_willApplySuggestion","components_PromQueryField","PromQueryField","onChangeMetrics","HISTOGRAM_GROUP","onUpdateLanguage","PromQueryField_PRISM_SYNTAX","METRIC_MARK","metricsByPrefix","ruleRegex","rulesOption","RECORDING_RULES_GROUP","metricsForPrefix","metricsOptions","groupMetricsByPrefix","histogramOptions","hm","isLeaf","hasCanceled_","isCanceled","warn","es","PrometheusAnnotationsQueryCtrl","mssql_response_parser","MssqlDatasource","MssqlQueryCtrl","mssql_query_ctrl_defaultQuery","encrypt","TestDataDatasource","scenarioId","stringInput","queries_1","queries_1_1","timeWalker","getScenarios","TestDataQueryCtrl","scenarioList","newPointTime","selectedPoint","getPoints","point","pointSelected","deletePoint","addPoint","newPointValue","scenarioChanged","scenario","MetricFindQueryTypes","StackdriverMetricFindQuery","Services","handleServiceQuery","MetricTypes","handleMetricTypesQuery","LabelKeys","LabelValues","handleLabelValuesQuery","ResourceTypes","handleResourceTypeQuery","Aligners","handleAlignersQuery","handleAlignmentPeriodQuery","handleAggregationQuery","stackdriver_functions","handleLabelKeysQuery","toFindQueryResult","interpolatedKey","resourceTypes","stackdriver_datasource","baseUrl","authenticationType","interpolateGroupBys","view","interpolateFilters","gb","interpolatedGroupBys","resolvePanelUnitFromTargets","stackdriver_constants","timeSerie","stackdriver_StackdriverMetricFindQuery","execute","defaultErrorMessage","doRequest","formatStackdriverError","StackdriverDatasource","error_2","ensureDefaultProjectQuery","metricsApiPath","error_3","serviceShortName","maxRetries","query_ctrl_StackdriverQueryCtrl","StackdriverQueryCtrl","defaultAuthenticationType","authenticationTypes","save","jwt","privateKey","private_key","tokenUri","token_uri","clientEmail","client_email","project_id","validateJwt","resetValidationMessages","validationErrors","inputDataValid","onPasteJwt","originalEvent","jsonText","components_SimpleSelect","onValueChange","selectedQueryType","queryTypes","onQueryTypeChange","StackdriverVariableQueryEditor","onLabelKeyChange","insertTemplateVariables","templateVariables","renderQueryTypeSwitch","queryType","time_grain_converter","TimeGrainConverter","timeGrainUnit","timeGrain","createISO8601DurationFromInterval","createISO8601Duration","findClosestTimeGrain","allowedTimeGrains","timeGrains","createTimeGrainFromISO8601Duration","timeUnitToText","createKbnUnitFromISO8601Duration","timeUnitToKbn","azure_monitor_filter_builder","AzureMonitorFilterBuilder","grafanaInterval","setAllowedTimeGrains","tg","setAggregation","setDimensionFilter","dimension","dimensionFilter","generateFilter","createDatetimeAndTimeGrainConditions","aggregation","dateTimeCondition","calculateAutoTimeGrain","roundedInterval","url_builder","UrlBuilder","buildAzureMonitorQueryUrl","resourceGroup","metricDefinition","resourceName","apiVersion","rn","buildAzureMonitorGetMetricNamesUrl","azure_monitor_response_parser","parseQueryResult","timeseries","createTarget","metadatavalues","convertDataToPoints","parseResourceGroupFromId","parseResourceNameFromId","parseNamespaceFromId","timeSeriesData","dateTimeToEpoch","timeStamp","aggKey","getKeyForAggregationField","dataPoints","dataObj","intersection","parseResponseValues","textFieldName","valueFieldName","parseResourceNames","parseMetadata","primaryAggregationType","supportedAggregationTypes","parseTimeGrains","metricAvailabilities","parseDimensions","avail","isDimensionRequired","localizedValue","supported_namespaces","cloudName","supportedMetricNamespaces","azure_monitor_datasource","AzureMonitorDatasource","defaultDropdownValue","subscriptionId","isConfigured","azureMonitor","filterBuilder","doQueries","getResourceGroups","metricDefinitionsQuery","getMetricDefinitions","toVariable","resourceNamesQuery","getResourceNames","getMetricNames","shouldHardcodeBlobStorage","getMetricMetadata","isValidConfigField","tenantId","clientId","app_insights_querystring_builder","AppInsightsQuerystringBuilder","timeGrainType","setGroupBy","setInterval","setFilter","generate","querystring","querystring_builder","rawQueryString","defaultTimeField","macroRegexp","p1","p2","getMultiContains","getFrom","getUntil","uriString","LogAnalyticsQuerystringBuilder","toISOString","timeFieldArg","inputs","firstCommaIndex","templateVar","app_insights_response_parser","xaxis","yaxises","spliton","Tables","Columns","Rows","parseRawQueryResultRow","parseQueryResultRow","columnsForDropdown","ColumnName","xaxisColumn","yaxisesSplit","yaxisColumns","splitonColumn","convertTimestamp","yaxisColumn","yaxisName","findOrCreateBucket","isSingleValue","getMetricFieldKey","hasSegmentsField","getTargetName","dataTarget","segmentName","segmentValue","toTextValueList","defaultAggregation","supportedAggregations","supportedGroupBy","parseGroupBys","parseQuerySchema","columnTable","columnType","OrderedColumns","Name","Type","app_insights_datasource","AppInsightsDatasource","logAnalyticsColumns","applicationId","appInsightsAppId","appInsights","generated","querystringBuilder","encodeURI","flattened","appInsightsGroupByQuery","parseMetricNames","getQuerySchema","azure_log_analytics_response_parser","parseTimeSeriesResult","parseTableResult","timeIndex","metricIndex","valueIndex","parseToVariables","queryResult","transformToAnnotations","textIndex","tagsIndex","Databases","createSchemaDatabaseWithTables","Default","createSchemaTables","Functions","createSchemaFunctions","convertToKustoColumn","Body","DocString","Folder","FunctionKind","InputParameters","OutputColumns","azure_log_analytics_datasource","AzureLogAnalyticsDatasource","azureLogAnalyticsSameAs","defaultOrFirstWorkspace","logAnalyticsDefaultWorkspace","setWorkspaceUrl","logAnalyticsSubscriptionId","azureCloud","azureMonitorUrl","getWorkspaces","workspaceListUrl","customerId","getSchema","workspace","parseSchemaResult","azureLogAnalytics","getDefaultOrFirstWorkspace","innererror","workspaces","validationError","isValidConfig","ws","getErrorMessage","logAnalyticsTenantId","logAnalyticsClientId","grafana_azure_monitor_datasource_datasource","azureMonitorDatasource","appInsightsDatasource","azureLogAnalyticsDatasource","azureMonitorOptions","appInsightsTargets","azureLogAnalyticsTargets","amPromise","aiPromise","alaPromise","aiResult","amResult","upperFirst","getAppInsightsMetricNames","getAppInsightsColumns","getAzureLogAnalyticsWorkspaces","mark","TOKEN_MARK","decorateNode","texts","getTexts","toArray","tstring","grammar","language","decorations","startText","endText","endOffset","processToken","newlines","available","remaining","anchorKey","focusKey","focusOffset","marks","tokens_1","tokens_1_1","typeahead_TypeaheadItem","editor_typeahead","selectedItems","typeahead_TypeaheadGroup","query_field","keybindingSrv","changed","fetch","flattenSuggestions","restoreEscapeKeyBinding","removeEscapeKeyBinding","rect","screenHeight","innerHeight","menuLeft_1","menuTop_1","menuHeight_1","portalPrefix","selectedKeys","query_field_Portal","prismDefinition","prismLanguage","onPressEnter","PrismPlugin","getInitialValue","setupGlobal","operatorTokens","KEYWORDS","functionTokens","number","builtin","kusto","editor_KustoQueryField","wait","force","KustoQueryField_cleanText","modelOffset","modelPrefix","suggestionGroups","contains","getColumnSuggestions","getFunctionSuggestions","getTableSuggestions","getDBFromDatabaseFunction","normalizeQuery","schema","fetchSchema","getInitialSuggestions","getKeywordSuggestions","getLastWord","defaultSchema","TYPEAHEAD_DELAY","KustoQueryField","wrapText","grafanaMacros","getTableFromContext","tableSchema","castSchema","edited","editor_component_Editor","AzureMonitorQueryCtrl","handleQueryCtrlError","getAzureLogAnalyticsSchema","onLogAnalyticsQueryChange","nextQuery","onLogAnalyticsQueryExecute","onAppInsightsQueryChange","onAppInsightsQueryExecute","getAppInsightsQuerySchema","defaultsDeep","migrateTimeGrains","onMetricNameChange","onResourceGroupChange","onMetricDefinitionChange","onResourceNameChange","metadata","supportedAggTypes","primaryAggType","supportedTimeGrains","getAutoInterval","getAppInsightsAutoInterval","onAppInsightsColumnChange","onAppInsightsMetricNameChange","getAppInsightsMetricMetadata","aggData","getAppInsightsGroupBySegments","resetAppInsightsGroupBy","updateTimeGrainType","AzureMonitorAnnotationsQueryCtrl","config_ctrl_AzureMonitorConfigCtrl","AzureMonitorConfigCtrl","hasRequiredGrafanaVersion","hasMinVersion","showMinVersionWarning","logAnalyticsClientSecret","TextPanelCtrl","defaultContent","panelDefaults","onInitEditMode","onRefresh","onRender","throttle","renderMarkdown","updateContent","renderText","scrollable","TextPanelEditor_TextPanelEditor","TextPanelEditor","modes","onModeChange","onOptionsChange","onContentChange","updateHTML","processContent","TextPanel","prepareHTML","prepareText","prepareMarkdown","TextPanel_TextPanel","prevPluginId","prevOptions","GraphPanelEditor","showLines","onToggleLines","showBars","onToggleBars","showPoints","onTogglePoints","pairs","GraphPanel","vmSeries","xIndex","yIndex","nullValueMode","Null","GraphPanel_GraphPanel","setDefaults","setEditor","GraphPanelEditor_GraphPanelEditor","eventManager","plot","manager","onEdit","editEvent","createEditPopover","markerElementToAttachTo","editorOpened","injector","invoke","editorClosed","DrawableEvent","drawFunc","clearFunc","moveFunc","_object","_drawFunc","_clearFunc","_moveFunc","_width","_height","_position","draw","clear","VisualEvent","drawableEvent","_options","_drawableEvent","_hidden","visual","getParent","_parent","isHidden","unhide","EventMarkers","_events","_types","_plot","eventsEnabled","getEvents","setTypes","setupEvents","partition","ve","_buildDiv","vre","_buildRegDiv","ao","bo","drawEvents","_insidePlot","getObject","updateEvents","getPlotOffset","getXAxes","p2c","_clearEvents","markerSize","markerShow","lineStyle","markerTooltip","that","getPlaceholder","eventType","eventTypeId","topOffset","eventSectionHeight","border-left-width","marker_1","font-size","line-height","border-left","border-right","border-top","border-bottom","editModel","hover","createAnnotationToolip","regionWidth","timeEnd","right","border-left-style","border-left-color","background-color","xc","eventMarkers","jquery_flot_events_EventMarkers","hideEvents","showEvents","processOptions","getSeriesFn","posX","pointsize","ps","middle","renderAndShow","absoluteTime","innerHtml","xMode","pageX","pageY","getMultiSeriesPlotHoverInfo","hoverIndex","hoverDistance","pointTime","minTime","lastValue","hideEmpty","findHoverIndexFromData","minDistance","value_type","findHoverIndexFromDataPoints","aliasEscaped","distance","shared","detach","unhighlight","panelRelY","clearCrosshair","hoverInfo","seriesHtml","tooltipFormat","plotData","allSeriesMode","pointOffset","setCrosshair","sharedCrosshairModeOnly","hasMsResolution","formatDate","seriesHoverInfo","highlightClass","highlight","ThresholdManager","getHandleHtml","handleIndex","valueStr","colorMode","initDragging","posTop","handleElem","parents","lastY","dragging","clientY","c2p","graphValue","stopped","renderHandle","defaultHandleTopPos","valueCanvasPos","handleTopPos","shouldDrawHandles","hasSecondYAxis","editingThresholds","prepare","thresholdMargin","needsCleanup","addFlotOptions","gtLimit","ltLimit","lineColor","grid","markings","y2axis","timeRegion","colorModes","themeDependent","lightColor","darkColor","timeRegions","hRange","fromStart","fromEnd","timeRegionColor","tRange","timeRegionsCopy","fromDayOfWeek","toDayOfWeek","parseTimeRange","dayOfWeek","hour","isoWeekday","getColor","TimeRegionManager","convertToHistogramData","hiddenSeries","getSeriesValues","getBucketBound","bound","minBound","maxBound","bound_1","histogamSeries","convertValuesToHistogram","alignYLevel","yAxes","checkCorrectAxes","yLeft","yRight","checkOneSide","oneSide","checkOppositeSides","rateLeft","rateRight","checkTwoCross","absLeftMin","absLeftMax","absRightMax","upLeft","downLeft","upRight","absRightMin","downRight","getRate","axes","LegendItem","onLabelClick","onToggleAxis","forceUpdate","renderLegendValues","asTable","legendValueItems","LEGEND_STATS_1","LEGEND_STATS","LEGEND_STATS_1_1","valueName","valueFormatted","LegendValue","seriesOptionClasses","graph-legend-series-hidden","valueItems","seriesLabel","LegendSeriesItem_LegendSeriesLabel","LegendSeriesLabel","LegendSeriesItem_LegendSeriesIcon","SeriesIcon","LegendSeriesIcon","enableNamedColors","showColorPicker","hideColorPicker","Legend_GraphLegend","GraphLegend","onToggleSeries","sortLegend","sortDesc","toggleSeriesExclusiveMode","optionalClass","rightSide","sideWidth","seriesValuesProps","seriesHideProps","sortProps","hideFromLegend","legendClass","alignAsTable","legendStyle","minWidth","legendProps","onToggleSort","Legend_LegendTable","Legend_LegendSeriesList","LegendSeriesList","LegendSeriesItem_LegendItem","LegendTable","Legend_LegendTableHeaderItem","LegendTableHeaderItem","Legend","renderTrackHorizontal","visibility","ConfigProvider","Legend_Legend","GraphElement","annotations_all","thresholdManager","threshold_manager_ThresholdManager","timeRegionManager","time_region_manager_TimeRegionManager","GraphTooltip","sortedSeries","onPanelTeardown","onGraphHover","onGraphHoverClear","onPlotSelected","onPlotClick","legendElem","renderData","buildFlotPairs","graphHeight","hasChildNodes","renderPanel","legendOptions","valueOptions","legendReactElem","LegendWithThemeProvider","sharedTooltipModeEnabled","ranges","canMakeEditable","updateTime","setTime","x1","shouldAbortRender","panelWidth","drawHook","dataWarning","processOffsetHook","gridMargin","getYAxes","panelOptions","processRangeHook","align","alignLevel","getMinTimeStepOfSeries","buildFlotOptions","addFlotEvents","sortSeries","prepareXAxis","barWidth","addXSeriesAxis","histMin","histMax","addXHistogramAxis","addXTableAxis","addTimeAxis","callPlot","incrementRenderCounter","renderError","gridColor","hooks","processOffset","processRange","stackpercent","percentage","zero","shadowSize","minBorderMargin","backgroundColor","borderWidth","hoverable","clickable","margin","labelMarginX","sortOrder","haveSortBy","haveSortOrder","shouldSortBy","translateFillOption","timeformat","time_format","defaultTicks","tickValues","tickStep_1","ticksNum","configureAxisMode","pointIndex","configureYAxisOptions","logBase","parseNumber","secondY","applyLogScale","minSetToZero","MIN_VALUE","inverseTransform","generateTicksForLogScaleYAxis","nextTick","maxNumTicks","numTicks","tickFormatter","graphDirective","graph_GraphElement","SeriesOverridesCtrl","overrideMenu","currentOverrides","addOverrideOption","propertyName","setOverride","addSeriesOverride","updateCurrentOverrides","openColorSelector","colorSelected","autoClose","fakeSeries","getSeriesNames","ThresholdFormCtrl","unbindDestroy","addThreshold","removeThreshold","onFillColorChange","newColor","onThresholdTypeChange","blueBase","setAlpha","toRgbString","blueShade","thresholds_form_ThresholdFormCtrl","editingTimeRegions","TimeRegionFormCtrl","addTimeRegion","removeTimeRegion","onLineColorChange","time_regions_form_TimeRegionFormCtrl","DataProcessor","getSeriesList","firstItem","autoDetectMode","getAutoDetectXAxisMode","setPanelDefaultsForNewXAxisMode","timeSeriesHandler","customHandler","colorIndex","aliasColors","isOutsideRange","dataItem","validateXAxisSeriesValue","validOptions","getXAxisValueOptions","getDataFieldNames","onlyNumbers","fieldParts","getPropertiesRecursive","pluckDeep","propertyParts","log (base 1024)","Series","Histogram","xAxisStatOptions","setUnitFormat","xAxisModeChanged","processor","xAxisValueChanged","axes_editor_AxesEditorCtrl","GraphCtrl","annotationsSrv","seriesOverrides","data_processor_DataProcessor","subTabIndex","onInitPanelActions","annotationsPromise","datasourcePromises","zoomOut","onDataSnapshotLoad","alertState","removeSeriesOverride","toggleLegend","legendValuesOptionChanged","exportCsv","DashListCtrl","dashboardSrv","headings","getSearch","starDashboard","onFolderChange","PluginListCtrl","pluginList","viewModel","gotoPlugin","updateAvailable","embedded","AlertListPanel","stateFilter","alertHistory","onlyAlertsOnDashboard","dashboardFilter","nameFilter","alerts","alertDef","updateStateFilter","getAlertsPromise","getStateChanges","newState","al","stateModel","noAlertsMessage","getCurrentAlertState","dashboardTags","dashboardTag","currentAlerts","sortResult","newStateDateAgo","newStateDate","d3_scale_chromatic_src","getColorScale","colorScheme","maxValue","minValue","colorInterpolator","colorScaleInverted","invert","d3","domain","getOpacityScale","colorScale","exponent","legendOpacityScale","rangeFrom","rangeTo","legendWidth","valuesRange","childNodes","legendValueScale","tickStepSize","isValueCloseTo","buildLegendTicks","LEGEND_TICK_SIZE","colorRect","posY","svgElem","baseVal","getSvgElemHeight","LEGEND_VALUE_MARGIN","getSvgElemX","LEGEND_PADDING_LEFT","xAxis","clearLegend","valueTo","colorSchemes","legendHeight","rangeStep","legendRects","selectAll","drawSimpleColorLegend","colorOptions","legendOpacityScale_1","drawSimpleOpacityLegend","cards","cardStats","isNil","LEGEND_SEGMENT_WIDTH","widthFactor","drawLegendValues","drawColorLegend","opacityScale","cardColor","drawOpacityLegend","AxesEditorCtrl","unitFormats","logScales","log (base 2)","log (base 10)","log (base 32)","dataFormats","Time series","Time series buckets","yBucketBoundModes","Auto","Upper","Lower","Middle","yAxis","axesEditor","heatmap_axes_editor_AxesEditorCtrl","HeatmapDisplayEditorCtrl","heatmap_data_converter_parseHistogramLabel","xBucket","yBucket","card","convertToHeatMap","yBucketSize","xBucketSize","heatmap","bucketBound","heatmap_data_converter_getBucketBound","TIME_INDEX","bucketNum","VALUE_INDEX","pointExt","pushToXBuckets","_loop_1","yBucketSplitFactor","bounds","getLogScaleBucketBounds","bottom","pushToYBuckets","convertToLogScaleValueBuckets","convertToValueBuckets","getValueBucketBound","getLogScaleBucketBound","getBucketBounds","powTop","additionalBucketSize","additionalLog","valueLog","heatmap_tooltip_HeatmapTooltip","HeatmapTooltip","heatmapPanel","mouseOverBucket","originalFillColor","onMouseMove","getBucketIndexes","xBucketIndex","yBucketIndex","boundBottom","boundTop","countValueFormatter","bucketBoundFormatter","xData","yData","bucketIndex","tooltipDecimals","tickValueFormatter","tsBuckets","valIndex","tsBucketsFormatted","yBucketBound","tooltipHtml","showHistogram","getXBucketIndex","getYBucketIndex","getSharedTooltipPos","xScale","chartHeight","addHistogram","histogramData","histXScale","yScale","barNumberFactor","histogramDomain","histYScale","tooltipWidth","clientWidth","tooltipHeight","clientHeight","innerWidth","pageYOffset","DATA_RANGE_WIDING_FACTOR","HeatmapRenderer","$heatmap","x2","dataRangeWidingFactor","onMouseDown","drawSharedCrosshair","setElementHeight","getYAxisWidth","axisText","getBBox","getXAxisHeight","axisLinePosition","addXAxis","chartWidth","timeFormat","grafanaTimeFormatter","tickFormat","tickPadding","yAxisWidth","addYAxis","heatmapStats","wideYAxisRange","tickInterval","yMin","yMax","decimalsAuto","flotTickSize","tickSizeInner","tickSizeOuter","yWiding","addLogYAxis","adjustLogRange","minLog","adjustLogMin","adjustLogMax","logScaleTickValues","addYAxisFromBuckets","tickShift","domainMin","tickValue","domainMax","fixYAxisTickSize","addAxes","chartTop","chartBottom","dataFormat","xAxisHeight","addHeatmapCanvas","heatmapElem","cardPadding","cardRound","addHeatmap","yBuckets","emptyBucket","nullBucket","minBucket","newBucket","mergeZeroBuckets","cardsData","minValueAuto","maxValueAuto","setCardSize","getCardX","getCardWidth","getCardY","getCardHeight","getCardColor","getCardOpacity","highlightCard","resetCardHighLight","highlightColor","darker","strokeColor","brighter","currentCard","yGridSize","splitFactor","cardWidth","xGridSize","cardHeight","cuttedWidth","getEventOffset","clientX","elemOffset","mouseUpHandler","onMouseUp","one","selectionRange","limitSelection","drawSelection","getEventPos","drawCrosshair","emitGraphHoverEvent","y1","posX1","posX2","selectionX","selectionWidth","graphTooltip","HeatmapCtrl","opacityScales","selectionActivated","heatmap_ctrl_colorModes","onCardColorChange","heatmapDisplayEditor","convertHistogramToHeatmapData","convertTimeSeriesToHeatmapData","bucketsData","xBucketNumber","parseSeries","yBucketNumber","convertToCards","hideZeroBuckets","getPanelDataSourceType","dsSupportHistogramSort","heatmap_data_converter_sortSeriesByLabel","reverseYBuckets","histogramToHeatmap","getDistance","seriesHandler","flotpairs","parseHistogramSeries","rendering_HeatmapRenderer","metrics_panel_ctrl_MetricsPanelCtrl","timeKey","cells","getColumns","noTableIndex","names","maxDocs","z","tableCol","TablePanelEditorCtrl","transformers","fontSizes","addColumnSegment","updateTransformHints","canSetColumns","columnsHelpMessage","getColumnOptions","dataRaw","transformChanged","removeColumn","tablePanelEditor","editor_TablePanelEditorCtrl","column_options_ColumnOptionsCtrl","ColumnOptionsCtrl","activeStyleIndex","columnTypes","dateFormats","mappingTypes","getColumnNames","addColumnStyle","stylesCount","indexToInsert","mappingType","removeColumnStyle","invertColorOrder","addValueMap","valueMaps","removeValueMap","addRangeMap","rangeMaps","removeRangeMap","setTable","initColumns","formatters","colIndex","createColumnFormatter","defaultCellFormatter","setColorState","valueFormatter_1","numericValue","TableRenderer","formatColumnValue","renderCell","addWidthHack","cellStyle","textStyle","cellClasses","cellClass","colorState","cell","preserveFormat","renderRowVariables","cellLink","linkUrl","cellLinkTooltip","linkTooltip","cellTarget","linkTargetBlank","columnHtml","pageSize","startPos","endPos","cellHtml","rowStyle","rowClasses","rowClass","render_values","newRow","TablePanelCtrl","$sanitize","variableSrv","showHeader","scroll","fontSize","pageIndex","columnOptionsTab","transformDataToTable","renderer_TableRenderer","isTimezoneUtc","toggleColumnSort","panelElem","rootElem","tbodyElem","footerElem","pageCount","startPage","endPage","paginationList","activeClass","pageLinkElem","appendPaginationControls","max-height","filterData","setAdhocFilter","TablePanelEditor","onToggleShowHeader","onToggleFixedHeader","fixedHeader","rotate","fixedColumns","onToggleRotate","labelWidth","inputWidth","onFixedColumnsChange","simpleCellBuilder","TableCellBuilder_CellBuilderWithStyle","valueFormatter","data-link-tooltip","data-original-title","data-row","data-column","data-operator","components_Table_Table","scrollToTop","doSort","dir","sortDirection","getCellRef","rowOffset","onCellClick","headerBuilder","sorting","dist_es","builder","cellRenderer","isHeader","rowData","getTableCellBuilder","measurer","defaultHeight","fixedWidth","dataChanged","configsChanged","clearAll","utils","columnWidth","getCellBuilder","columnCount","fixedColumnCount","fixedRowCount","temp","scrollToRow","scrollToColumn","overscanColumnCount","overscanRowCount","getColumnWidth","deferredMeasurementCache","rowHeight","classNameTopLeftGrid","classNameBottomLeftGrid","TablePanel","Consumer","table2_module_reactPanel","TablePanel_TablePanel","TablePanelEditor_TablePanelEditor","SingleStatCtrl","valueNameOptions","nullText","prefixFontSize","valueFontSize","postfixFontSize","colorBackground","colorValue","sparkline","full","gauge","thresholdMarkers","thresholdLabels","tableColumn","onSparklineColorChange","onSparklineFillChange","tableData","tableHandler","setTableValues","setValues","tableColumnOptions","setTableColumnToSensibleDefault","valueRounded","formatFunc","decimalInfo","setValueMapping","canModifyText","setColoring","background","tmp","panelColorIndex","lastPoint","rangeMap","linkInfo","drilldownTooltip","getSpan","applyColoring","valueString","addGauge","invalidGaugeRange","plotCanvas","plotCss","colorMap","bgColor","fontScale","gaugeWidthReduceRatio","gaugeWidth","gauges","border","shadow","frame","layout","thresholdWidth","thresholdMarkersWidth","font","thresholdLabelFontSize","postfix","family","plotSeries","addSparkline","dynamicHeightMargin","strVale","colorPrefix","colorPostfix","getBigValueHtml","$panelContainer","mouseleave","mousemove","plugin_loader_e_1","plugin_loader_a","orientation","ProcessedValuesRepeater_ProcessedValuesRepeater","ProcessedValuesRepeater","getProcessedValues","renderCounter","renderValue","vizHeight","vizWidth","fieldIndex","displayValue","SingleStatPanel_SingleStatPanel","SingleStatPanel","onStatsChange","mean","onDecimalChange","onPrefixChange","onSuffixChange","SingleStatValueEditor","decimalsString","defaultStat","allowMultiple","defaultValue","onUnitChange","SingleStatEditor","onValueMappingsChanged","onValueOptionsChanged","SingleStatValueEditor_SingleStatValueEditor","optionsToKeep_1","optionsToKeep","optionsToKeep_1_1","cloneDeep_default","singlestat2_types_defaults","SingleStatEditor_SingleStatEditor","GettingStartedPanelCtrl","stepIndex","note","check","cta","nextStep","checksDone","currentStep","passed","helpFlags1","GaugeOptionsBox_GaugeOptionsBox","GaugeOptionsBox","onToggleThresholdLabels","showThresholdLabels","onMinValueChange","onMaxValueChange","showThresholdMarkers","onToggleThresholdMarkers","GaugePanelEditor_GaugePanelEditor","GaugePanelEditor","onThresholdsChanged","GaugePanel_GaugePanel","GaugePanel","getSingleStatValues","gauge_types_defaults","setPanelChangeHandler","setMigrationHandler","PIE","DONUT","PieChartOptionsBox","onPieTypeChange","pieType","onStrokeWidthChange","strokeWidth","pieChartOptions","PieChartPanelEditor","PieChartOptionsBox_PieChartOptionsBox","PieChartPanel","PieChartPanelEditor_PieChartPanelEditor","BarGaugePanel_BarGaugePanel","BarGaugePanel","displayMode","displayModes","orientationOptions","Horizontal","Vertical","bargauge_types_defaults","BarGaugePanelEditor_BarGaugePanelEditor","BarGaugePanelEditor","onDisplayModeChange","onOrientationChange","built_in_plugins","app/plugins/datasource/graphite/module","module_namespaceObject","app/plugins/datasource/cloudwatch/module","cloudwatch_module_namespaceObject","app/plugins/datasource/elasticsearch/module","elasticsearch_module_namespaceObject","app/plugins/datasource/opentsdb/module","opentsdb_module_namespaceObject","app/plugins/datasource/grafana/module","grafana_module_namespaceObject","app/plugins/datasource/influxdb/module","influxdb_module_namespaceObject","app/plugins/datasource/loki/module","loki_module_namespaceObject","app/plugins/datasource/mixed/module","mixed_module_namespaceObject","app/plugins/datasource/mysql/module","mysql_module_namespaceObject","app/plugins/datasource/postgres/module","postgres_module_namespaceObject","app/plugins/datasource/mssql/module","mssql_module_namespaceObject","app/plugins/datasource/prometheus/module","prometheus_module_namespaceObject","app/plugins/datasource/testdata/module","testdata_module_namespaceObject","app/plugins/datasource/stackdriver/module","stackdriver_module_namespaceObject","app/plugins/datasource/grafana-azure-monitor-datasource/module","grafana_azure_monitor_datasource_module_namespaceObject","app/plugins/panel/text/module","text_module_namespaceObject","app/plugins/panel/text2/module","text2_module_namespaceObject","app/plugins/panel/graph2/module","graph2_module_namespaceObject","app/plugins/panel/graph/module","graph_module_namespaceObject","app/plugins/panel/dashlist/module","dashlist_module_namespaceObject","app/plugins/panel/pluginlist/module","pluginlist_module_namespaceObject","app/plugins/panel/alertlist/module","alertlist_module_namespaceObject","app/plugins/panel/heatmap/module","heatmap_module_namespaceObject","app/plugins/panel/table/module","table_module_namespaceObject","app/plugins/panel/table2/module","table2_module_namespaceObject","app/plugins/panel/singlestat/module","app/plugins/panel/singlestat2/module","app/plugins/panel/gettingstarted/module","app/plugins/panel/gauge/module","app/plugins/panel/piechart/module","app/plugins/panel/bargauge/module","Subject","importPluginModule","loadPluginCss","exposeToPlugin","system_default","registerDynamic","/*","esModule","authorization","flatten_namespaceObject","flotDeps_1","flotDeps_1_1","fakeDep","import","createSuccessNotification","createErrorNotification","createWarningNotification","app_types__WEBPACK_IMPORTED_MODULE_1__","app_core_utils_errors__WEBPACK_IMPORTED_MODULE_2__","Success","defaultWarningNotification","Warning","defaultSuccessNotification","defaultErrorNotification","PanelModel","app_core_utils_emitter__WEBPACK_IMPORTED_MODULE_2__","app_core_utils_query__WEBPACK_IMPORTED_MODULE_3__","mustKeepProps","minSpan","collapsed","gridPos","cachedPluginOptions","transparent","ensureQueryIds","updateOptions","notPersistedProperties","setViewMode","isEditing","updateGridPos","newPos","sizeChanged","hasRefreshed","initialized","getOptionsToRemember","restorePanelOptions","getPluginVersion","pluginLoaded","reactPanel","onPanelMigration","pluginVersion","changePlugin","newPlugin","oldOptions","oldPluginId","onPanelTypeChanged","old","addQuery","changeQuery","itemIndex","removeAllListeners","MetricKind","alignmentPeriods","stackdriverUnitMappings","ValueTypes","INT64","DOUBLE","MONEY","DISTRIBUTION","CUMULATIVE","DELTA","valueTypes","metricKinds","GAUGE","STRING","VALUE_TYPE_UNSPECIFIED","BOOL","METRIC_KIND_UNSPECIFIED","By","By/s","GBy","getRelativeTimesList","describeTextRange","describeTimeRange","isValidTimeSpan","_datemath__WEBPACK_IMPORTED_MODULE_2__","absoluteFormat","rangeIndex","isLast","buttonIcon","buttonLink","buttonTitle","proTip","proTipLink","proTipLinkTitle","proTipTarget","react__WEBPACK_IMPORTED_MODULE_1___default","SlideDown","react__WEBPACK_IMPORTED_MODULE_1__","react_transition_group_Transition__WEBPACK_IMPORTED_MODULE_2__","react_transition_group_Transition__WEBPACK_IMPORTED_MODULE_2___default","inProp","in","defaultStyle","transitionStyles","sortByKeys","isPlainObject","sortedObject","dashboardModel","updateSchema","schemaVersion","templating","leftMin","leftMax","y_format","y_formats","y2_format","oldVersion","getNextPanelId","maxId_1","panelUpgrades","aliasYAxis","pulldowns","allFormat","timepicker","getNextQueryLetter","mathExpr","asExpr","k_1","k_2","templateVariable","hideVariable","hideLabel","leftLogBase","leftYAxisLabel","rightMin","rightMax","rightLogBase","rightYAxisLabel","threshold1","thresholdLine","threshold1Color","threshold2","threshold2Color","sharedCrosshair","DashboardMigrator","upgradeToGridLayout","yPos","nextRowId","showRows","collapse","showTitle","repeat","rowGridHeight","getGridHeight","rowPanel","rowPanelModel","rowArea","DashboardMigrator_RowArea","span","panelHeight","panelPos","getPanelPosition","addPanel","RowArea","rowYPos","reset","area","callOnce","startPlace","endPlace","DashboardModel_DashboardModel","DashboardModel","emitter","revision","autoUpdate","ensureListExist","addBuiltInAnnotationQuery","found","iconColor","enable","initMeta","canShare","original","originalTemplating","saveTimerange","originalTime","timeRangeUpdated","startRefresh","otherPanelInFullscreen","forEachPanel","getPanelById","panelData","panelA","panelB","cleanUpRepeats","iteration","panelsToRemove","repeatedByRow","repeatPanelId","repeatIteration","pull","processRepeats","repeatPanel","cleanUpRowRepeats","rowPanels","processRowRepeats","rowPanelIndex","getRowPanels","panelIndex","this_1","getPanelRepeatClone","sourcePanel","sourcePanelIndex","getRowRepeatClone","sourceRowPanel","rowPanels_1","insertPos","updateRepeatedPanelIds","getSelectedVariableOptions","maxPerRow","xPos","repeatDirection","yOffset","repeatRow","setScopedVars","variableOption","optionIndex","this_2","getRowHeight","panelBelowIndex","insertPos_1","cloneRowPanel","_loop_2","positions","maxBy","maxPos","removeRow","removePanels","expandRows","collapseRows","toggleRow","setPanelFocus","focusPanelId","updateSubmenuVisibility","submenuEnabled","getPanelInfoById","e_8","e_8_1","e_9","hasRepeat","yDiff","e_9_1","pushDownAmount","eventName","cycleGraphTooltip","DashboardMigrator_DashboardMigrator","resetOriginalTime","hasVariableValuesChanged","autoFitPanels","viewHeight","kioskMode","currentGridHeight","visibleHeight","scaleFactor","templateVariableValueUpdated","expandParentRowFor","e_10","e_11","e_11_1","e_10_1","toggleLegendsForAll","e_12","panelsWithLegends","onCount","panelLegendsOn","panelsWithLegends_1","panelsWithLegends_1_1","e_12_1","nonPersistedProperties","setTimeSrv","getTimeSrv","moment__WEBPACK_IMPORTED_MODULE_0__","moment__WEBPACK_IMPORTED_MODULE_0___default","app_core_utils_kbn__WEBPACK_IMPORTED_MODULE_2__","app_core_core_module__WEBPACK_IMPORTED_MODULE_3__","timer","routeUpdated","autoRefreshBlocked","visibilityState","refreshDashboard","initTimeFromUrl","parseTime","timeAtLoad","setAutoRefresh","TimeSrv","parseUrlParam","refreshTimer","startNextRefreshTimer","intervalMs_1","afterMs","cancelNextRefresh","isGrafanaVisible","urlParams","urlRange","timespan","center","getRouteParamsId","getRouteParamsPage","Emitter","eventemitter3__WEBPACK_IMPORTED_MODULE_0__","unbind_1","_getTheme__WEBPACK_IMPORTED_MODULE_2__","_types_theme__WEBPACK_IMPORTED_MODULE_3__","ThemeContext","createContext","withTheme","WithTheme","impressionSrv","ImpressionSrv","addDashboardImpression","impressionsKey","impressionKey","impressions","imp","tagStyle","countLabel","getAlertRulesAsync","togglePauseAlertRule","apiKeysLoaded","apiKeys","LoadApiKeys","addApiKey","apiKey","openModal","loadApiKeys","getUsers","getInvitees","getInviteesCount","getUsersSearchQuery","organizationLoaded","organization","LoadOrganization","SetOrganizationName","loadOrganization","organizationResponse","updateOrganization","file","oldName","newName","appNotificationId","ClearAppNotification","AddAppNotification","setKeybindingSrv","getKeybindingSrv","jquery__WEBPACK_IMPORTED_MODULE_1__","jquery__WEBPACK_IMPORTED_MODULE_1___default","app_core_utils_explore__WEBPACK_IMPORTED_MODULE_5__","app_store_store__WEBPACK_IMPORTED_MODULE_6__","mousetrap__WEBPACK_IMPORTED_MODULE_7__","mousetrap__WEBPACK_IMPORTED_MODULE_7___default","KeybindingSrv","modalOpen","timepickerOpen","showHelpModal","goToHome","openAlerting","goToProfile","openSearchStarred","openSearchTags","bindGlobal","exit","tagsMode","editview","kiosk","keyArg","returnValue","keyType","showDashEditView","setupDashboardBindings","hasAccessToExplore","url_1","shareScope","panelInfo","panelRef","newUrlParam","autofitpanels","Profiler","panelsRendered","findHighlightChunksInText","hasAnsiCodes","xss__WEBPACK_IMPORTED_MODULE_0__","xss__WEBPACK_IMPORTED_MODULE_0___default","haystack","needle","cleanNeedle","cleaned","textToHighlight","sanitizeXSS","FilterXSS","whiteList","XSSWL","unsanitizedString","toUrlParams","pctEncodeSpaces","rbracket","buildParams","renderUrl","ConfigConsumer","Provider","getCurrentTheme","ThemeProvider","getIconFromSeverity","connectWithStore","_store_store__WEBPACK_IMPORTED_MODULE_3__","WrappedComponent","react_redux__WEBPACK_IMPORTED_MODULE_2__","ConnectedWrappedComponent","themes","SharedPreferences","app_core_services_backend_srv__WEBPACK_IMPORTED_MODULE_3__","homeDashboardId","resourceUri","reload","onThemeChanged","onTimeZoneChanged","onHomeDashboardChanged","defaultDashboardHit","uri","folderTitle","folderUrl","prefs","onSubmit","onSubmitForm","_grafana_ui__WEBPACK_IMPORTED_MODULE_2__","getOptionValue","getOptionLabel","timezones","buildNavModel","getLoadingNav","convertSeriesListToCsv","exportSeriesListToCsv","convertSeriesListToCsvColumns","exportSeriesListToCsvColumns","convertTableDataToCsv","exportTableDataToCsv","saveSaveBlob","file_saver__WEBPACK_IMPORTED_MODULE_2__","util__WEBPACK_IMPORTED_MODULE_3__","DEFAULT_DATETIME_FORMAT","POINT_TIME_INDEX","POINT_VALUE_INDEX","END_COLUMN","END_ROW","QUOTE","EXPORT_FILENAME","csvEscaped","domParser","DOMParser","htmlDecoded","parseFromString","dateTimeFormat","excel","formatSpecialHeader","formatRow","extendedDatapointsList","timestamps","seriesPoints","extendedDatapoints","mergeSeriesByTime","fname","blob","Blob","react__WEBPACK_IMPORTED_MODULE_2__","react__WEBPACK_IMPORTED_MODULE_2___default","react_hot_loader__WEBPACK_IMPORTED_MODULE_3__","react_redux__WEBPACK_IMPORTED_MODULE_4__","classnames__WEBPACK_IMPORTED_MODULE_5__","classnames__WEBPACK_IMPORTED_MODULE_5___default","app_core_copy_appNotification__WEBPACK_IMPORTED_MODULE_6__","app_core_utils_errors__WEBPACK_IMPORTED_MODULE_7__","_dashgrid_DashboardGrid__WEBPACK_IMPORTED_MODULE_8__","_components_DashNav__WEBPACK_IMPORTED_MODULE_9__","_components_SubMenu__WEBPACK_IMPORTED_MODULE_10__","_components_DashboardSettings__WEBPACK_IMPORTED_MODULE_11__","_grafana_ui__WEBPACK_IMPORTED_MODULE_12__","app_core_components_AlertBox_AlertBox__WEBPACK_IMPORTED_MODULE_13__","_state_initDashboard__WEBPACK_IMPORTED_MODULE_14__","_state_actions__WEBPACK_IMPORTED_MODULE_15__","app_core_actions__WEBPACK_IMPORTED_MODULE_16__","app_types__WEBPACK_IMPORTED_MODULE_17__","DashboardPage","isSettingsOpening","isFullscreen","showLoadingState","fullscreenPanel","onAddPanel","initDashboard","urlSlug","urlUid","urlType","urlFolderId","routeInfo","fixUrl","cleanUpDashboard","setPanelFullscreenClass","urlEdit","urlFullscreen","urlPanelId","onEnterFullscreen","handleFullscreenPanelNotFound","onLeaveFullscreen","rememberScrollTop","triggerPanelsRendering","updateLocation","renderSlowInitState","initPhase","renderInitFailedState","initError","isInitSlow","dashboard-page--settings-opening","dashboard-container","dashboard-container--has-submenu","setScrollTop","updateAfterMountMs","gridWrapperClasses","$","make","normalize","scale","clamp","extract","nodeName","lookupColors","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","jQuery","Canvas","cls","getContext","G_vmlCanvasManager","initElement","devicePixelRatio","backingStoreRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","resize","textContainer","_textCache","Plot","data_","options_","noColumns","labelFormatter","labelBoxBorderColor","backgroundOpacity","sorted","tickColor","autoscaleMargin","labelHeight","reserveSpace","tickLength","alignTicksWithAxis","minTickSize","xaxes","horizontal","aboveData","markingsLineWidth","autoHighlight","mouseActiveRadius","redrawOverlayInterval","surface","overlay","eventHolder","ctx","octx","plotOffset","plotWidth","plotHeight","processRawData","processDatapoints","drawSeries","bindEvents","drawOverlay","executeHooks","hook","setData","parseData","neededColors","maxIndex","sc","colorPool","colorPoolSize","variation","colori","getOrCreateAxis","axisNumber","topSentry","POSITIVE_INFINITY","bottomSentry","NEGATIVE_INFINITY","fakeInfinity","updateAxis","allAxes","used","autoscale","insertSteps","nullify","xmin","ymin","xmax","ymax","processData","coord","canvasToAxisCoords","shutdown","redrawTimeout","measureTickLabels","legacyStyles","layer","getTextInfo","maxWidth","lw","lh","isXAxis","axisMargin","labelMargin","eventSectionPadding","outermost","innermost","box","setupGrid","showGrid","axisOpts","setRange","allocatedAxes","grep","snaped","setupTickGeneration","setTicks","snapRangeToTicks","allocateAxisBoxFirstPhase","minMargin","margins","adjustLayoutForThingsStickingOut","allocateAxisBoxSecondPhase","identity","it","setTransformationHelpers","tick","halign","valign","addText","fragments","rowStarted","lf","ascending","div","prependTo","insertLegend","tickGenerator","decimal","otherAxis","niceTicks","extraDec","oticks","drawBackground","translate","fillRect","restore","drawGrid","triggerRedrawOverlay","bw","bc","xrange","extractRange","yrange","xequal","yequal","subPixel","beginPath","strokeStyle","markingsColor","lineTo","stroke","xoff","yoff","strokeRect","prevx","prevy","y2","axisy","axisx","xoffset","yoffset","sw","plotLine","sin","angle","cos","getFillStyle","areaOpen","ypos","segmentStart","segmentEnd","x1old","x2old","plotLineArea","drawSeriesLines","abandonedPoints","beforeX","afterX","emptyPoints","drawSeriesPoints","olddatapoints","drawOrphanedPoints","barLeft","fillStyleCallback","barRight","drawBar","plotBars","drawSeriesBars","arc","PI","closePath","plotPoints","drawLeft","drawRight","drawTop","drawBottom","filloptions","getColorOrGradient","seriesColor","getCanvas","getAxes","removeData","highlights","initPlugins","axisOptions","axisCount","fontSizeDefault","variant","weight","fontDefaults","lineHeight","x2axis","coloredAreas","coloredAreasColor","parseOptions","existing","setupCanvases","triggerClickHoverEvent","isSelecting","eventname","seriesFilter","canvasX","canvasY","mouseX","mouseY","maxDistance","smallestDistance","mx","my","maxx","maxy","dx","dy","dataIndex","findNearbyItem","auto","interaction","hi","drawBarHighlight","drawPointHighlight","indexOfHighlight","spec","defaultColor","gradient","createLinearGradient","co","brightness","addColorStop","parentNode","clearRect","layerKey","layerCache","styleKey","styleCache","rendered","getTextLayer","max-width","_textSizeCache","text-align","updateNavIndex","UpdateNavIndex","themeMock","fontFamily","sansSerif","monospace","xs","sm","lg","heading","h1","h2","h3","h4","h5","h6","regular","semibold","decoration","hoverDecoration","breakpoints","xl","spacing","xxs","panelPadding","vertical","basicColors","dark1","dark2","dark3","dark4","dark5","dark6","dark7","dark8","dark9","dark10","gray1","gray2","gray3","gray4","gray5","gray6","gray7","blueLight","themes_default","types_theme","inputBlack","brandPrimary","brandSuccess","greenBase","brandWarning","brandDanger","redBase","queryRed","queryGreen","queryPurple","queryKeyword","queryOrange","online","bodyBg","pageBg","textStrong","textWeak","textEmphasis","textFaint","linkDisabled","linkHover","linkExternal","headingColor","dropdown","scrollbar2","light_basicColors","grayBlue","redShade","getTheme","mockTheme","mock","StatID","getStatsCalculators","calculateStats","lodash_isNumber__WEBPACK_IMPORTED_MODULE_1__","lodash_isNumber__WEBPACK_IMPORTED_MODULE_1___default","_types_index__WEBPACK_IMPORTED_MODULE_2__","getById","stats_1","queue_1","queue","queue_1_1","emptyInputResult","Ignore","AsZero","calculator","nonNullCount","standardStatsStat","queue_2","queue_2_1","calc","standard","calculateLast","calculateFirst","changeCount","calculateChangeCount","distinctCount","calculateDistinctCount","distinct","getNextRefIdChar","customCss","tab","hideFromTabs","breadcrumbsResult","renderTitle","subType","renderHeaderTitle","Navigation","assignModelProperties","removeDefaults","matchRowSizes","parseCSV","getFirstTimeField","guessFieldTypeFromValue","guessFieldTypes","isTableData","isSeriesData","toSeriesData","sortSeriesData","lodash_isString__WEBPACK_IMPORTED_MODULE_2__","lodash_isString__WEBPACK_IMPORTED_MODULE_2___default","lodash_isBoolean__WEBPACK_IMPORTED_MODULE_3__","lodash_isBoolean__WEBPACK_IMPORTED_MODULE_3___default","moment__WEBPACK_IMPORTED_MODULE_4__","moment__WEBPACK_IMPORTED_MODULE_4___default","papaparse__WEBPACK_IMPORTED_MODULE_5__","papaparse__WEBPACK_IMPORTED_MODULE_5___default","_types_index__WEBPACK_IMPORTED_MODULE_6__","sameSize","fixedRows","dynamicTyping","skipEmptyLines","details","headerIsFirstLine","boolean","guessFieldTypeFromTable","sortIndex","_ThemeContext__WEBPACK_IMPORTED_MODULE_0__","_getTheme__WEBPACK_IMPORTED_MODULE_1__","LinkSrv","getLinkUrl","keepTime","includeVars","fillVariableValuesForUrl","addParamsToUrl","paramsArray","appendToQueryString","stringToAppend","getAnchorInfo","targetBlank","slugifyForUrl","getFactors","getMessageFromError","UserPicker","imgUrl","avatarUrl","onSelected","debouncedSearch","getTeamLoadingNav","_LayoutSelector_LayoutSelector__WEBPACK_IMPORTED_MODULE_2__","_FilterInput_FilterInput__WEBPACK_IMPORTED_MODULE_3__","OrgActionBar","linkProps","linkButton","onLayoutModeChanged","onSetLayoutMode","pluginMeta","logos","large","app_core_copy_appNotification__WEBPACK_IMPORTED_MODULE_1__","app_core_actions__WEBPACK_IMPORTED_MODULE_3__","_actions__WEBPACK_IMPORTED_MODULE_5__","app_types__WEBPACK_IMPORTED_MODULE_6__","_DashboardModel__WEBPACK_IMPORTED_MODULE_7__","Home","Normal","New","redirectUri","newUrl","app_core_utils_location_util__WEBPACK_IMPORTED_MODULE_4__","dashDTO","currentPath","redirectToNewUrl","loadDashboard","dashboardUrl","getNewDashboardModelData","storeState","unsavedChangesSrv","err_2","queryParams","fetchDashboard","setCurrent","canStar","isNew","DashboardGrid","react_hot_loader__WEBPACK_IMPORTED_MODULE_2__","react_grid_layout__WEBPACK_IMPORTED_MODULE_3__","react_grid_layout__WEBPACK_IMPORTED_MODULE_3___default","classnames__WEBPACK_IMPORTED_MODULE_4__","classnames__WEBPACK_IMPORTED_MODULE_4___default","react_sizeme__WEBPACK_IMPORTED_MODULE_5__","react_sizeme__WEBPACK_IMPORTED_MODULE_5___default","app_core_constants__WEBPACK_IMPORTED_MODULE_6__","_DashboardPanel__WEBPACK_IMPORTED_MODULE_7__","monitorWidth","lastGridWidth","onWidthChange","isDraggable","isResizable","containerPadding","useCSSTransforms","cols","draggableHandle","onResize","onResizeStop","onDragStop","onLayoutChange","newLayout_1_1","newLayout_1","triggerForceUpdate","onViewModeChanged","buildLayout","panelMap","stringId","renderPanels","panelClasses","react-grid-item--fullscreen","panelElements","SizedReactLayoutGrid","openVizPicker","onPasteCopiedPanel","panelPluginInfo","onCreateNewRow","renderOptionLink","handleCloseAddPanel","copiedPanelPlugins","getCopiedPanelPlugins","copiedPanelJson","copiedPanel","pluginCopy","copiedPanels","onCreateNewPanel","PanelPluginNotFound","NotFound","PanelPluginNotFound_PanelPluginNotFound","template_srv","onVariableUpdated","onToggle","onUpdate","onDelete","DashboardRow","dashboard-row","dashboard-row--collapsed","chevronClass","fa","fa-chevron-down","fa-chevron-right","onOpenSettings","link_srv","InfoMode","PanelHeader_PanelHeaderCorner","PanelHeaderCorner","getInfoMode","Info","Links","remarkableInterpolatedMarkdown","dangerouslySetInnerHTML","renderCornerType","infoMode","PanelHeaderMenuItem","isSubMenu","iconClassName","PanelHeaderMenu","subMenu","getPanelMenu","renderItems","eventToClickCoordinates","clickCoordinates","panelMenuOpen","panelHeaderClass","onMenuToggle","ClickOutsideWrapper","closeMenu","PanelHeaderMenu_PanelHeaderMenu","QueryOptions_a","DataPanel","dataSourceSrv","datasource_srv","isUnmounted","isVisible","widthPixels","onDataResponse","onError","intervalRes","resp","err_1","Done","Loading","getProcessedSeriesData","isFirstLoad","NotStarted","hasPropsChanged","refreshCounter","renderLoadingState","ErrorBoundary","errorInfo","PanelChrome","timeData","dataQueryResponse","isSnapshot","clearErrorState","renderPanelBody","needsQueryExecution","DataPanel_DataPanel","renderPanelPlugin","getDataForPanel","hasPanelSnapshot","PanelComponent","components_ErrorBoundary_ErrorBoundary","onPanelError","Transition","transition","exited","entering","entered","exiting","Transition_default","unmountOnExit","onExited","openView","onCloseOpenView","fadeIn","getDerivedStateFromProps","activeToolbarItem","toolbarItems","renderButton","onToggleToolBarView","EditorTabBody","renderOpenView","renderToolbar","autoHide","FadeIn","onDidRender","wrapperEl","wrapperRef","replaceChild","lastChild","JSONFormatter","renderJson","CopyToClipboard","elType","myRef","onSuccess","clipboardjs","restProps","getElementType","onPanelRefresh","dsQuery","jsonpCallbackParam","setFormattedJson","formattedJson","getTextForClipboard","onClipboardSuccess","onToggleExpand","allNodesExpanded","isMocking","getNrOfOpenNodes","mockedResponse","QueryInspector","onDataSourceResponse","handleMocking","mockedData","openNodes","CopyToClipboard_CopyToClipboard","JSONFormatter_JSONFormatter","tooltipInfo","emptyToNull","QueryOptions_QueryOptions","QueryOptions","allOptions","panelKey","onRelativeTimeChange","relativeTime","onTimeShiftChange","onOverrideTime","emptyToNullValue","Valid","onTimeShift","onToggleTimeOverride","hideTimeOverride","onDataSourceOptionBlur","onDataSourceOptionChange","renderOptions","DataSourceOption","QueryEditorRow","angularQueryEditor","loadedDataSourceValue","hasTextEditMode","onPanelDataError","onPanelDataReceived","angularScope","onToggleCollapse","onRunQuery","onToggleEditMode","onRemoveQuery","onAddQuery","dataSourceValue","getAngularQueryComponentScope","renderPluginEditor","QueryCtrl","inMixedMode","isDisabled","bodyClasses","query-editor-row__body--collapsed","query-editor-row--disabled","gf-form-disabled","onMoveQuery","onCopyQuery","onDisableQuery","isError","help","loadHelp","backend_srv","helpHtml","constructPlaceholderInfo","PluginHelp","QueriesTab","isLoadingHelp","findCurrentDataSource","isAddingMixed","currentDS","mixed","renderQueryInspector","QueryInspector_QueryInspector","renderHelp","PluginHelp_PluginHelp","onAddQueryClick","DataSourcePicker","onChangeDataSource","renderMixedPicker","onMixedPickerBlur","queryInspector","dsHelp","EditorTabBody_EditorTabBody","QueryEditorRow_QueryEditorRow","panel_editor_VizTypePickerPlugin","isCurrent","viz-picker__item","viz-picker__item--current","small","getPanelPlugins","renderVizPlugin","onTypeChanged","VizTypePicker","getFilteredPluginList","allPanels","filteredPluginList","hasResults","VizPickerSearch","VisualizationTab","getReactPanelOptions","clearQuery","onPanelOptionsChanged","isVizPickerOpen","onCloseVizPicker","hasBeenFocused","onSearchQueryChange","VizPickerSearch_VizPickerSearch","onOpenVizPicker","urlOpenVizPicker","renderPanelOptions","angularPanel","PanelEditor","shouldLoadAngularOptions","loadAngularOptions","cleanUpAngularOptions","angularOptions","$$childHead","pluginHelp","VizTypePicker_VizTypePicker","panel_editor_VisualizationTab","VisualizationTab_VisualizationTab","obj2string","GeneralTabCtrl","GeneralTab_GeneralTab","GeneralTab","alerting_StateHistory","StateHistory","stateHistoryItems","clearHistory","alertName","TestRuleResult","testRuleResponse","testRule","AlertTab_AlertTab","AlertTab","stateHistory","deleteAlert","btnType","TestRuleResult_TestRuleResult","renderTestRuleResult","onAddAlert","_enableAlert","shouldLoadAlertTab","loadAlertTab","PanelEditorTabIds","Visualization","PanelEditor_a","Advanced","Alert","tabId","panelEditorTabTexts","activeTab","QueriesTab_QueriesTab","Queries","tabs","getPanelEditorTab","TabItem","onChangeTab","renderCurrentTab","tabClasses","largestHeight","sh","editorHeight","throttledChangeHeight","newHeight","throttledResizeDone","initialHeight","changeHeight","trailing","resizeDone","PanelResizer","documentElement","scrollHeight","noStyles","react_draggable_default","onDrag","DashboardPanel_DashboardPanel","DashboardPanel","DashboardRow_DashboardRow","renderAddPanel","AddPanelWidget_AddPanelWidget","loadPlugin","isSpecial","getPanelPluginNotFound","cleanUpAngularPanel","plugin_loader","renderReactPanel","renderAngularPanel","specialPanels","panel-editor-container","panel-height-helper","panel-wrapper","panel-wrapper--edit","panel-wrapper--view","containerClass","PanelResizer_PanelResizer","panelWrapperClass","PanelEditor_PanelEditor","onPluginTypeChanged","ItemAvatar","userAvatarUrl","PermissionListItem","PermissionsListItem","folderInfo","inheritedFromRoot","currentPermissionLevel","acl","ItemDescription","onPermissionChanged","onRemoveItem","PermissionList_DisabledPermissionListItem","DisabledPermissionListItem","PermissionList","isFetching","colSpan","TeamPicker","AddPermissions","onCancel","author","getPluginsSearchQuery","ThresholdMapper","alertToGraphThresholds","evaluator","alertTab","AlertTabCtrl_AlertTabCtrl","initModel","for","graphThresholdChanged","thresholdChangedEventHandler","getAlertHistory","getNotifications","notifications","changeTabIndex","newTabIndex","notificationAdded","addNotificationSegment","getNotificationIcon","buildDefaultCondition","noDataState","alertingNoDataOrNullValues","executionErrorState","alertingErrorOrTimeout","frequency","defaultName","buildConditionModel","addedNotification","isDefault","alertNotifications","notification","evaluatorParamsChanged","reducer","firstTarget","foundTarget","alerting","cm","queryPart","reducerPart","createReducerPart","handleQueryPartEvent","conditionModel","addCondition","conditionModels","removeCondition","autoFocus","openMenuOnFocus","editor_ctrl_AnnotationsEditorCtrl","AnnotationsEditorCtrl","annotationDefaults","showIn","datasourceChanged","currentAnnotation","currentDatasource","currentIsNew","setupNew","backToList","removeAnnotation","makeRegions","regionEvents","singleEvents","regionId","regionObj","isRegion","annotations_srv_AnnotationsSrv","AnnotationsSrv","clearPromiseCaches","globalAnnotationsPromise","getGlobalAnnotations","getAlertStates","eventsById","eventGroup","isPanelAlert","dedup","alertStatesPromise","translateQueryResult","datasourcePromise","state_1","dsPromises","saveAnnotationEvent","updateAnnotationEvent","deleteAnnotationEvent","deleteUrl","EventEditorCtrl","tryEpochToMoment","form","saveModel","event_editor_EventEditorCtrl","EventManager","editorOpen","flotOptions","$__alerting","$__ok","$__no_data","$__pending","$__editing","colorString","alpha","addRegionMarking","sanitizeString","getCurrent","titleStateClass","alertId","annotationTooltipDirective","SettingsCtrl","canSaveAs","buildSectionList","onRouteUpdated","animate","onPostSave","canAdmin","viewId","showSaveAsModal","currentSection","sumBy","deleteDashboardConfirmed","hasUnsavedFolderChange","getFolder","SettingsCtrl_SettingsCtrl","DashboardSettings","angularCmp","DashboardSettings_DashboardSettings","DashNavButton","classSuffix","DashNav_DashNav","DashNav","onOpenSearch","onStarDashboard","onPlaylistPrev","playlistSrv","onPlaylistNext","onOpenShare","renderDashboardTitleSearchButton","haveFolder","isInFullscreenOrSettings","renderBackButton","showSettings","onSave","snapshotUrl","onToggleTVMode","timePickerEl","components_DashNav_DashNav","SubMenuCtrl","annotationStateChanged","variableUpdated","openEditView","SubMenuCtrl_SubMenuCtrl","SubMenu","SubMenu_SubMenu","getAlertRuleItems","stateText","getApiKeysCount","getApiKeys","react_redux__WEBPACK_IMPORTED_MODULE_3__","_dashgrid_DashboardPanel__WEBPACK_IMPORTED_MODULE_4__","SoloPanelPage","notFound","second","savedhandlers","updateSelection","which","onselectstart","ondrag","setSelectionPos","selectionIsSane","triggerSelectedEvent","preventEvent","minSize","setSelection","lineJoin","shape","floorInBase","monthNames","dayNames","strftime","hours12","leftPad","pad","getHours","isAM","getMonth","getDate","getMinutes","getSeconds","getFullYear","getDay","makeUtcWrapper","addProxyMethod","sourceObj","sourceMethod","targetObj","targetMethod","dateGenerator","timezoneJS","setTimezone","timeUnitSize","minute","day","month","quarter","year","baseSpec","specMonths","axisName","specQuarters","setSeconds","setMinutes","setHours","setMonth","setFullYear","setMilliseconds","carry","setDate","useQuarters","hourCode","twelveHourClock","allseries","NullValueMode","ReactPanelPlugin","MappingType","VizOrientation","DashboardRouteInfo","DashboardInitPhase","KIOSK_MODE_TV","PanelDataFormat","AppNotificationTimeout","AppNotificationSeverity","O","colorCodes","colorCodesLight","styleCodes","asBright","0","2","9","Color","clean","bright","Code","dim","defaultBrightness","inverted","inverse","Colors","rgb","rgbName","noBrightness","noItalic","noUnderline","noInverse","noBgColor","noColor","camel","wrapBefore","assignStringWrappingAPI","denormalizeBrightness","wrap","codes","BRACKET","TEXT","buffer","codes_1_1","codes_1","spans","Set","underline","italic","bold","foreColor","styledSpan","styles_1","styles_1_1","asChromeConsoleLogArguments","iterator","stringWrappingMethods","darkGray","lightGray","lightRed","lightGreen","lightYellow","lightBlue","lightMagenta","lightCyan","processed","getStackSums","_data","data_len","sums","key_idx","value_idx","stackSums","newPoints","stackBases","otherseries","otherps","otherpoints","openPolygon","assert","end_i","start_i","intersect","equal","intersectionPoint","top_delta_x","top_delta_y","bottom_delta_x","bottom_delta_y","right_i","bottom_right_x","bottom_left_x","top_left_y","bottom_left_y","bottom_right_y","top_left_x","top_right_y","top_right_x","topTraversal","bottomTraversal","findNextStart","findBelowSeries","crosshair","locked","onMouseOut","lockCrosshair","unlockCrosshair","mouseout","adj","drawX","drawY","plotDashes","dashOnLength","dashOffLength","dashRemainder","ax1","ay1","ax2","dashOffset","lineSegmentOffset","dashOn","deltaX","deltaY","remainder","segmentLength","ay2","ysign","Gauge","gaugeOptions","getLogger","calculateAutoValues","gaugeOptionsi","cellWidth","calculateAngle","startAngle","endAngle","drawArcWithShadow","cx","cy","rd1","rd2","lc","fc","drawArc","clip","shadowOffsetY","shadowBlur","shadowColor","drawText","cellLayout","thresholdLabelMargin","toRad","textOptions","calculateLayout","canvasWidth","canvasHeight","hMargin","vMargin","cellHeight","square","cellMargin","labelFontSize","valueMargin","maxRadiusH","dAngle","heightRatioV","outerRadiusV","maxRadiusV","outerRadius","gaugeOuterHeight","calculateCellLayout","blank","offsetY","vAlign","drawCellBackground","drawGauge","c1","a2","drawThreshold","a1","drawLable","drawValue","drawThresholdValues","drawThresholdValue","Logger","debugOptions","hasEventListener","onOutsideClick","domNode","react_dom__WEBPACK_IMPORTED_MODULE_2___default","findDOMNode","DeleteButton","showConfirm","onClickDelete","showConfirmClass","showDeleteButtonClass","disabledClass","onClickCancel","esm","Portal_Portal","portalRoot","defaultTransitionStyles","transitionDelay","Popper_Popper","Popper","mountOnEnter","transitionState","modifiers","preventOverflow","boundariesElement","scheduleUpdate","isValidElement","cloneElement","PopperController","hideTimeout","controllerProps","tooltipTriggerRef","PopperController_PopperController","popperBackgroundClassName","isNil_default","lib","CustomScrollbar","updateScroll","updateAfterMount","autoHeightMax","autoHideTimeout","hideTracksWhenNotNeeded","renderTrackVertical","lib_default","onScroll","autoHeight","renderThumbHorizontal","renderThumbVertical","renderView","autoHideDuration","SelectOption","aria-hidden","SingleValue","Select_SelectOptionGroup","SelectOptionGroup","selectProps","value_1","onToggleChildren","menuIsOpen","Select_IndicatorsContainer","Select_NoOptionsMessage","resetSelectStyles","clearIndicator","control","dropdownIndicator","groupHeading","indicatorsContainer","loadingIndicator","multiValue","multiValueLabel","singleValue","valueContainer","CustomScrollbar_CustomScrollbar","Select_Select","Select","selectClassNames","MenuList","Select_AsyncSelect","AsyncSelect","menuShouldScrollIntoView","isFocused","isInvalid","htmlFor","Tooltip","inputProps","FormLabel","SecretFormField","onReset","FormField","ColorSwatchVariant","Small","isSmall","swatchSize","boxShadow","selectedSwatchBorder","alignItems","swatchStyles","Large","ColorPicker_NamedColorsGroup","selectedColor","onColorSelect","primaryColor","find_default","flexDirection","marginTop","ColorSwatch","gridTemplateColumns","InputStatus","PieChartType","Input","populateEventPropsWithStatus","inputElementProps","validatorAsync","Invalid","flexGrow","hideErrorMessage","ColorPicker_ColorInput","updateColor","debounce_default","ColorInput","previousColor","borderRadius","ColorPicker_SpectrumPalettePointer","selectThemeVariant","pointerStyles","pointerColor","bottomArrowStyles","picker","topArrowStyles","SpectrumPicker","react_color_lib","hsl","common","hsv","toHsv","pointer","renderPointer","marginLeft","deprecationWarning","warnAboutColorPickerPropsDeprecation","componentName","ColorPickerPopover","getTabClassName","tabName","handleChange","changeHandler","onTabChange","activePicker","renderPicker","ColorPicker_SpectrumPalette","NamedColorsPalette","renderCustomPicker","tabKey","customPickers","tabComponent","colorPickerTheme","uniqueId","uniqueId_default","Switch","labelId","switchClassName","Switch_Switch","AxisSelector","leftButtonClass","rightButtonClass","SeriesColorPickerPopover","zIndex","backgroundImage","popover","ColorPicker","pickerTriggerRef","popoverElement","ColorPickerTrigger_ColorPickerTrigger","colorPickerFactory","ColorPickerPopover_ColorPickerPopover","newThresholds","afterThreshold","beforeThresholdValue","beforeThreshold","afterThresholdValue","onChangeThresholdValue","cleanValue","parsedValue","sortThresholds","renderInput","Input_Input","onRemoveThreshold","addDefaultThreshold","ThresholdsEditor","PanelOptionsGroup","onAddThreshold","onAdd","mappingOptions","ValueMappingsEditor_MappingRow","onMappingValueChange","onMappingFromChange","onMappingToChange","onMappingTextChange","onMappingTypeChange","updateMapping","updateValueMapping","MappingRow","renderRow","removeValueMapping","ValueMappingsEditor","addMapping","nextIdToAdd","onRemoveMapping","getMaxIdFromValueMappings","updateGauge","PieChart_PieChart","containerElement","offsetWidth","svgElement","pieChart","customArc","innerRadius","padAngle","svg","tooltipElement","tooltipValueElement","PieChart","UnitPicker_UnitPicker","UnitPicker","groupOptions","difference_default","onSelectionChange","isArray_default","StatsPicker","checkInput","getFormattedThresholds","previousThreshold","lastThreshold","getFontScale","canvasElement","BarGauge","renderRetroBars","renderBasicAndGradientBars","getValueColors","activeThreshold","guess","isVertical","getBarGradient","maxSize","cssDirection","lastpos","valuePercent","getValueStyles","spaceForText","barStyles","containerStyles","justifyContent","barSize","isBasic","valueStyles","getCellColor","positionValue","isLit","backgroundShade","valueRange","cellCount","cellSize","marginBottom","cellColor","cellStyles","cellSpacing","repeaterStyle","itemStyles","SPACE_BETWEEN","DeleteButton_DeleteButton","LoadingPlaceholder","ColorPicker_ColorPicker","SeriesColorPicker","SeriesColorPickerPopoverWithTheme","ThresholdsEditor_ThresholdsEditor","PanelOptionsGrid","ValueMappingsEditor_ValueMappingsEditor","EmptySearchResult","StatsPicker_StatsPicker","Gauge_Gauge","Graph_Graph","BarGauge_BarGauge","VizRepeater_VizRepeater","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_4__","_state_apis__WEBPACK_IMPORTED_MODULE_5__","app_core_components_Page_Page__WEBPACK_IMPORTED_MODULE_6__","ServerStats","getServerStats","StatItem","users","activeUsers","snapshots","stars","app_core_actions__WEBPACK_IMPORTED_MODULE_7__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_8__","_state_actions__WEBPACK_IMPORTED_MODULE_9__","_state_selectors__WEBPACK_IMPORTED_MODULE_10__","app_core_components_FilterInput_FilterInput__WEBPACK_IMPORTED_MODULE_11__","AlertRuleList","getStateFilter","alertRules","app_core_components_Page_Page__WEBPACK_IMPORTED_MODULE_4__","onStateFilterChanged","stateFilters","alertStateFilterOption","onOpenHowTo","_AlertRuleItem__WEBPACK_IMPORTED_MODULE_5__","onTogglePause","classnames__WEBPACK_IMPORTED_MODULE_3__","classnames__WEBPACK_IMPORTED_MODULE_3___default","AlertRuleItem","react_highlight_words__WEBPACK_IMPORTED_MODULE_2___default","highlightClassName","ruleUrl","stateIcon","stateAge","lodash__WEBPACK_IMPORTED_MODULE_3__","lodash__WEBPACK_IMPORTED_MODULE_3___default","react_hot_loader__WEBPACK_IMPORTED_MODULE_4__","app_core_config__WEBPACK_IMPORTED_MODULE_5__","_TeamMembers__WEBPACK_IMPORTED_MODULE_7__","_TeamSettings__WEBPACK_IMPORTED_MODULE_8__","_TeamGroupSync__WEBPACK_IMPORTED_MODULE_9__","_state_actions__WEBPACK_IMPORTED_MODULE_10__","_state_selectors__WEBPACK_IMPORTED_MODULE_11__","_state_navModel__WEBPACK_IMPORTED_MODULE_12__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_13__","_core_selectors_location__WEBPACK_IMPORTED_MODULE_14__","app_core_services_context_srv__WEBPACK_IMPORTED_MODULE_15__","PageTypes","TeamPages","textsAreEqual","text1","toLocaleLowerCase","hideTabsFromNonTeamAdmin","Members","isSyncEnabled","fetchTeam","syncEnabled","GroupSync","isTeamAdmin","renderPage","teamLoadingNav","app_core_components_SharedPreferences_SharedPreferences__WEBPACK_IMPORTED_MODULE_4__","_state_actions__WEBPACK_IMPORTED_MODULE_5__","app_core_selectors_location__WEBPACK_IMPORTED_MODULE_6__","_state_selectors__WEBPACK_IMPORTED_MODULE_7__","TeamSettings","onChangeName","headerTooltip","TeamGroupSync","onToggleAdding","isAdding","onNewGroupIdChanged","newGroupId","onAddGroup","onRemoveGroup","groupId","fetchTeamGroups","isNewGroupValid","renderGroup","_grafana_ui__WEBPACK_IMPORTED_MODULE_4__","app_core_components_Animations_SlideDown__WEBPACK_IMPORTED_MODULE_3__","_state_selectors__WEBPACK_IMPORTED_MODULE_6__","_grafana_ui__WEBPACK_IMPORTED_MODULE_5__","app_core_components_EmptyListCTA_EmptyListCTA__WEBPACK_IMPORTED_MODULE_6__","app_types__WEBPACK_IMPORTED_MODULE_7__","_state_actions__WEBPACK_IMPORTED_MODULE_8__","_state_selectors__WEBPACK_IMPORTED_MODULE_9__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_10__","fetchTeams","TeamList","renderTeam","teamUrl","memberCount","renderEmptyList","renderTeamList","newTeamHref","hasFetched","renderList","app_core_config__WEBPACK_IMPORTED_MODULE_12__","app_core_services_context_srv__WEBPACK_IMPORTED_MODULE_13__","react_dom_server__WEBPACK_IMPORTED_MODULE_2__","app_types__WEBPACK_IMPORTED_MODULE_5__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_6__","app_core_components_Page_Page__WEBPACK_IMPORTED_MODULE_9__","app_core_components_Animations_SlideDown__WEBPACK_IMPORTED_MODULE_10__","_ApiKeysAddedModal__WEBPACK_IMPORTED_MODULE_11__","app_core_app_events__WEBPACK_IMPORTED_MODULE_13__","app_core_components_EmptyListCTA_EmptyListCTA__WEBPACK_IMPORTED_MODULE_14__","_grafana_ui__WEBPACK_IMPORTED_MODULE_15__","app_core_components_FilterInput_FilterInput__WEBPACK_IMPORTED_MODULE_16__","ApiKeyStateProps","initialApiKeyState","ApiKeysPage","onAddApiKey","newApiKey","onApiKeyStateUpdate","Role","renderAddApiKeyForm","onDeleteApiKey","apiKeysCount","renderApiKeyList","ng-click","app_core_components_OrgActionBar_OrgActionBar__WEBPACK_IMPORTED_MODULE_5__","_state_actions__WEBPACK_IMPORTED_MODULE_7__","PluginListPage","fetchPlugins","loadPlugins","setPluginsLayoutMode","setPluginsSearchQuery","app_core_components_Page_Page__WEBPACK_IMPORTED_MODULE_5__","app_core_app_events__WEBPACK_IMPORTED_MODULE_6__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_7__","_state_navModel__WEBPACK_IMPORTED_MODULE_9__","FolderSettingsPage","onTitleChange","app_core_components_Animations_SlideDown__WEBPACK_IMPORTED_MODULE_6__","app_core_components_PermissionList_PermissionList__WEBPACK_IMPORTED_MODULE_10__","app_core_components_PermissionList_PermissionsInfo__WEBPACK_IMPORTED_MODULE_12__","FolderPermissions","onOpenAddPermissions","updateFolderPermission","onCancelAddPermission","_DataSourcesList__WEBPACK_IMPORTED_MODULE_7__","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_9__","emptyListModel","DataSourcesListPage","dataSourcesCount","setDataSourcesSearchQuery","setDataSourceTypeSearchQuery","NewDataSourcePage","dataSourceTypeSearchQuery","app_core_components_FilterInput_FilterInput__WEBPACK_IMPORTED_MODULE_8__","onDataSourceTypeClicked","isLoadingDataSources","app_core_selectors_navModel__WEBPACK_IMPORTED_MODULE_11__","_state_selectors__WEBPACK_IMPORTED_MODULE_12__","UsersListPage","onRoleChange","updatedUser","updateUser","onRemoveUser","externalUserMngInfo","markdownRenderer","remarkable__WEBPACK_IMPORTED_MODULE_4___default","showInvites","fetchUsers","fetchInvitees","renderTable","_InviteesTable__WEBPACK_IMPORTED_MODULE_8__","_UsersTable__WEBPACK_IMPORTED_MODULE_7__","externalUserMngInfoHtml","_UsersActionBar__WEBPACK_IMPORTED_MODULE_6__","onShowInvites","_state_actions__WEBPACK_IMPORTED_MODULE_4__","_state_selectors__WEBPACK_IMPORTED_MODULE_5__","app_core_components_FilterInput_FilterInput__WEBPACK_IMPORTED_MODULE_6__","UsersActionBar","canInvite","externalUserMngLinkName","externalUserMngLinkUrl","pendingInvitesCount","toggle-btn","usersButtonStyle","lastSeenAtAge","DataSourceDashboards","onImport","pageId","_DashboardsTable__WEBPACK_IMPORTED_MODULE_5__","app_core_selectors_location__WEBPACK_IMPORTED_MODULE_7__","isLoadingPluginDashboards","imported","importedUrl","importedRevision","buttonText","_PluginSettings__WEBPACK_IMPORTED_MODULE_5__","_BasicSettings__WEBPACK_IMPORTED_MODULE_6__","app_core_app_events__WEBPACK_IMPORTED_MODULE_8__","app_core_services_backend_srv__WEBPACK_IMPORTED_MODULE_9__","app_features_plugins_datasource_srv__WEBPACK_IMPORTED_MODULE_10__","onTest","testDataSource","confirmDelete","onModelChange","DataSourceSettingsPage","shouldRenderInfoBox","dataSourceMeta","DataSourceStates","Alpha","Beta","getInfoText","renderIsReadOnlyMessage","dsApi","isTesting","testingMessage","testingStatus","hasDataSource","isReadOnly","_state_actions__WEBPACK_IMPORTED_MODULE_12__","PluginSettings","onModelChanged","datasourceMeta","app_core_services_AngularLoader__WEBPACK_IMPORTED_MODULE_3__","dataSourceName","onDefaultChange","onNameChange","_OrgProfile__WEBPACK_IMPORTED_MODULE_5__","app_core_components_SharedPreferences_SharedPreferences__WEBPACK_IMPORTED_MODULE_6__","OrgDetailsPage","onOrgNameChange","onUpdateOrganization","featureToggle","TeamMemberRow_TeamMemberRow","onPermissionChange","updatedTeamMember","renderLabels","renderPermissions","TeamMemberRow","onRemoveMember","signedInUserIsTeamAdmin","teams_TeamMemberRow","TeamMembers_TeamMembers","TeamMembers","onUserSelected","newTeamMember","onAddUserToTeam","WithFeatureToggle","selectors","TeamMembers_mapDispatchToProps","execCommand","InviteeRow","invitee","copyToClipboard","copyUrlRef","InviteesTable_InviteesTable","InviteesTable","users_InviteeRow","transitionEnd","support","transEndEventNames","MozTransition","$el","clearMenus","$this","Dropdown","isActive","is","$items","eq","Constructor","noConflict","Modal","delegate","remote","isShown","backdrop","enforceFocus","isDefaultPrevented","hideWithTransition","removeBackdrop","$backdrop","doAnimate","$target","eventIn","eventOut","triggers","fixTitle","delay","hoverState","actualWidth","actualHeight","tp","$tip","setContent","animation","getPosition","applyPlacement","replaceArrow","arrow","getTitle","$e","hasContent","disable","Tab","$ul","activate","$active","highlighter","shown","listen","$menu","sorter","beginswith","caseSensitive","caseInsensitive","$1","eventSupported","mouseenter","isSupported","suppressKeyPressRepeat","inArray","focused","mousedover","Affix","affix","checkPosition","offsetBottom","affixed","unpin","$spy","$document","cssprop","currentStyle","getComputedStyle","elBCR","offsetParentBCR","offsetParentEl","docDomEl","isStaticPositioned","parentOffsetEl","clientTop","clientLeft","scrollLeft","boundingClientRect","pageXOffset","positionElements","hostEl","targetEl","positionStr","appendToBody","hostElPos","targetElWidth","targetElHeight","targetElPos","positionStrParts","pos0","pos1","shiftWidth","shiftHeight","SPECIAL_CHARACTERS_REGEXP","formatCodeToRegex","yyyy","yy","MMMM","$locale","DATETIME_FORMATS","MONTH","MMM","SHORTMONTH","MM","EEEE","DAY","EEE","SHORTDAY","HH","hh","H","mm","minutes","sss","milliseconds","ss","parsers","orderByFilter","createParser","dt","baseDate","getMilliseconds","constant","formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange","minDate","maxDate","shortcutPropagation","noop","isDefined","$attrs","datepickerConfig","refreshView","datepickerMode","initDate","activeDate","dateObject","compare","activeDateId","ngModelCtrl_","$render","$viewValue","$datepickerSuppressError","$log","_refreshView","$setValidity","createDateObject","dateFilter","customClass","dateDisabled","arrays","fixTimeZone","years","toggleMode","13","32","33","34","35","36","37","38","39","40","focusElement","altKey","handleKeyDown","ctrls","datepickerCtrl","getDaysInMonth","DAYS_IN_MONTH","getISO8601WeekNumber","checkDate","firstDayOfMonth","numDisplayedFromPreviousMonth","firstDate","days","startDate","dates","getDates","secondary","weekNumbers","thursdayIndex","curWeek","numWeeks","date1","date2","months","getStartingYear","datepickerPopupTemplateUrl","datepickerTemplateUrl","html5Types","datetime-local","currentText","clearText","closeText","closeOnDateSelection","showButtonBar","onOpenFocus","$position","dateParser","datepickerPopupConfig","datepickerAppendToBody","watchData","isHtml5DateInput","datepickerPopup","$observe","newDateFormat","$modelValue","popupEl","cameltoDash","ng-model","ng-change","datepickerEl","datepickerOptions","getAttribute","oldvalue","$$parserName","$validators","modelValue","ngRequired","$viewChangeListeners","documentClickBind","inputKeydownBind","$broadcast","today","dateSelection","$popup","after","$templateCache","$strapConfig","ev","$emit","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-SG","./en-SG.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./ga","./ga.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it-ch","./it-ch.js","./it.js","./ja","./ja.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./mr","./mr.js","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt.js","./ro","./ru","./ru.js","./sd","./sd.js","./se","./si","./si.js","./sk.js","./sl.js","./sq","./sr","./sr-cyrl","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./ta","./ta.js","./te.js","./tet","./tet.js","./tg.js","./th","./th.js","./tl-ph.js","./tlh","./tlh.js","./tr.js","./tzl","./tzl.js","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./vi","./vi.js","./x-pseudo","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","webpackContext","webpackContextResolve","freeInput","confirmKeys","onTagExists","itemsArray","isSelect","tagName","hasAttribute","placeholderText","$container","makeOptionItemFunction","TagsInput","dontPushVal","maxTags","pushVal","$existingTag","htmlEncode","findInputWrapper","before","objectItems","removeAll","isEnabled","nodeType","nodeValue","makeOptionFunction","processItems","success","$inputWrapper","doGetCaretPosition","$prevTag","$nextTag","inputSize","elt","arg1","arg2","retVal","htmlEncodeContainer","oField","iCaretPos","oSel","createRange","moveStart","selectionStart","templates","./core/components/help/help.html","./core/components/manage_dashboards/manage_dashboards.html","./core/components/search/search_results.html","./features/admin/partials/admin_home.html","./features/admin/partials/edit_org.html","./features/admin/partials/edit_user.html","./features/admin/partials/new_user.html","./features/admin/partials/orgs.html","./features/admin/partials/settings.html","./features/admin/partials/stats.html","./features/admin/partials/styleguide.html","./features/admin/partials/users.html","./features/alerting/partials/alert_howto.html","./features/alerting/partials/alert_tab.html","./features/alerting/partials/notification_edit.html","./features/alerting/partials/notifications_list.html","./features/annotations/partials/editor.html","./features/annotations/partials/event_editor.html","./features/dashboard/components/DashExportModal/template.html","./features/dashboard/components/DashLinks/editor.html","./features/dashboard/components/SubMenu/template.html","./features/dashboard/components/TimePicker/settings.html","./features/dashboard/components/TimePicker/template.html","./features/dashboard/components/VersionHistory/template.html","./features/manage-dashboards/partials/dashboard_import.html","./features/manage-dashboards/partials/dashboard_list.html","./features/manage-dashboards/partials/snapshot_list.html","./features/org/partials/invite.html","./features/panel/partials/query_editor_row.html","./features/playlist/partials/playlist.html","./features/playlist/partials/playlist_search.html","./features/playlist/partials/playlists.html","./features/profile/partials/profile.html","./features/teams/partials/create_team.html","./features/templating/partials/editor.html","./partials/confirm_modal.html","./partials/signup_invited.html","./partials/signup_step2.html","./partials/valueSelectDropdown.html","./plugins/datasource/cloudwatch/partials/annotations.editor.html","./plugins/datasource/elasticsearch/partials/config.html","./plugins/datasource/elasticsearch/partials/metric_agg.html","./plugins/datasource/elasticsearch/partials/pipeline_variables.html","./plugins/datasource/elasticsearch/partials/query.editor.html","./plugins/datasource/grafana/partials/query.editor.html","./plugins/datasource/graphite/partials/annotations.editor.html","./plugins/datasource/graphite/partials/config.html","./plugins/datasource/graphite/partials/query.editor.html","./plugins/datasource/mssql/partials/config.html","./plugins/datasource/mssql/partials/query.editor.html","./plugins/datasource/mysql/partials/annotations.editor.html","./plugins/datasource/mysql/partials/config.html","./plugins/datasource/postgres/partials/config.html","./plugins/datasource/postgres/partials/query.editor.html","./plugins/datasource/prometheus/partials/annotations.editor.html","./plugins/datasource/prometheus/partials/config.html","./plugins/datasource/testdata/partials/query.editor.html","./plugins/panel/alertlist/editor.html","./plugins/panel/alertlist/module.html","./plugins/panel/dashlist/editor.html","./plugins/panel/graph/tab_legend.html","./plugins/panel/graph/tab_thresholds_time_regions.html","./plugins/panel/graph/thresholds_form.html","./plugins/panel/graph/time_regions_form.html","./plugins/panel/singlestat/editor.html","./plugins/panel/singlestat/mappings.html","./plugins/panel/singlestat/module.html","./plugins/panel/table/column_options.html","cssText","setCss","ace","define","oop","TextHighlightRules","PrometheusHighlightRules","keywordMapper","createKeywordMapper","support.function","keyword","constant.language","$rules","start-label-matcher","start-label-list-matcher","normalizeRules","inherits","keyWordsCompletions","docText","escapeHTML","space_index","next_line_end","line_start","functionsCompletions","PrometheusCompletions","getSelectionRange","getWrapBehavioursEnabled","getWrapped","CstyleBehaviour","isSaneInsertion","getLine","$findOpeningBracket","isAutoInsertedClosing","getTextRange","isMultiLine","PrometheusBehaviour","TextMode","Mode","HighlightRules","$completer","completer","snippets","tabTrigger","REDRAW_ATTEMPTS","REDRAW_SHRINK","percent","centerLeft","centerTop","canvas","combined","pie","combine","newdata","numCombined","newCtx","maxRadius","slices","attempts","drawShadow","drawPie","prepend","setSeries","shadowTop","shadowLeft","tilt","currentAngle","drawSlice","drawDonutHole","drawLabel","plf","halfAngle","labelTop","labelLeft","insertBefore","drawLabels","globalCompositeOperation","poly","pt","isPointInPath","isPointInPoly","findNearbySlice","webpackEmptyContext","FileSaver","scrollbarWidth","div_1","newStyles_1","MsOverflowStyle","getScrollbarWidth","classname","htmlElement","hasNoOverlayScrollbars","homeDash","LoadDashboardCtrl","NewDashboardCtrl","dashboard_loaders_LoadDashboardCtrl","locals","roles","hasRole","$$route","WrapInProvider","reactContainer","folders_CreateFolderCtrl","CreateFolderCtrl","validationSrv","getNav","titleChanged","FolderPageLoader","activeChildId","dashTab","folders_FolderDashboardsCtrl","FolderDashboardsCtrl","manage_dashboards_DashboardImportCtrl","DashboardImportCtrl","nameExists","uidExists","autoGenerateUid","autoGenerateUidValue","initialFolderTitle","gnetId","gnetUrl","checkGnetDashboard","onUpload","__inputs","inputModel","setDatasourceOptions","inputsValid","uidChanged","titleTouched","validateNewDashboardName","hasNameValidationError","nameValidationError","hasUidValidationError","uidValidationError","onEnterFolderCreation","onExitFolderCreation","inputValueChanged","dashUrl","loadJsonText","parseError","gnetError","gnetInfo","back","setupAngularRoutes","$routeProvider","$locationProvider","html5Mode","reloadOnSearch","pageClass","otherwise","handlers_1","handlers","handlers_1_1","redux","redux_thunk_es","initialState","buildNavIndex","children_1","children_1_1","utils_url","locationReducer","core_redux","addMapper","omitBy","lastUpdated","appNotification_initialState","core_reducers","newPages","reducers_initialState","state_reducers","alertRulesViewModel","executionError","evalData","noData","convertToAlertRule","state_actions","teams_state_actions","initialTeamState","initialTeamsState","LoadTeams","SetSearchMemberQuery","api_keys_state_reducers","initialApiKeysState","api_keys_state_actions","SetApiKeysSearchQuery","folders_state_actions","processAclItem","sortRank","localeCompare","dto","userLogin","inititalState","folders_state_reducers","hasChanged","LoadFolderPermissions","processAclItems","dashboard_state_actions","state_reducers_initialState","dashboard_state_reducers","Fetching","Failed","Completed","containerWidth","datasourceError","datasourceLoading","itemReducer","actionTypes","nextQueries","nextQueryTransactions","logsHighlighterExpressions","queryKeys","showingStartPage","Boolean","StartPage","eventBridge","exploreDatasources","datasourceMissing","requestedDatasourceName","supportsGraph","supportsLogs","supportsTable","modification","modifier","remainingTransactions","nextQueryKeys","nq","scanner","scanRange","updateChildRefreshState","exploreId","queryState","explore_state_reducers","initialExploreState","targetSplit","itemId","types_explore","SplitOpen","itemState","ResetExplore","actions_location","leftState","rightState","exploreItemState","LayoutSelector","plugins_state_reducers_initialState","Grid","plugins_state_reducers","plugins_state_actions","LoadPluginDashboards","LoadedPluginDashboards","datasources_state_actions","datasources_state_reducers_initialState","List","datasources_state_reducers","users_state_reducers_initialState","users_state_reducers","users_state_actions","LoadUsers","profile_state_reducers","profile_state_reducers_initialState","org_state_reducers","org_state_reducers_initialState","teams_state_reducers","utilSrv","$controller","bridgeSrv","angularLoader","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","rootReducers","rootReducer","composeEnhancers","localScope","callerScope","GrafanaCtrl_GrafanaCtrl","setViewModeBodyClass","drops","lastActivity","activeUser","inActiveTimeLimit","checkForInActiveUser","userActivityDetected","capture","passive","clickAutoHide","clickAutoHideParent_1","targetIsInTimePickerDropDown","targetIsInTimePickerNav","targetIsDatePickerRowBtn","targetIsDatePickerHeaderBtn","grafanaAppDirective","namePattern","optionsLimit","hideOptions","addVariable","sameName","infoText","runQuery","duplicate","createVariableFromModel","datasourceTypes","uniqBy","typeChanged","oldIndex","removeVariable","showMoreOptions","VariableEditorCtrl","editor_ctrl_VariableEditorCtrl","_linkTo","inputEdges","outputEdges","edges","Edge","inputNode","outputNode","unlink","inode","onode","getEdgeFrom","getOptimizedInputEdges","toBeRemoved","edgeToRemove","getEdgeTo","createNode","outputArr","inputArr","n_1","getNode","inputNodes","n_2","outputNodes","createEdge","onTimeRangeUpdated","updateUrlParamsWithCurrentVariables","initLock","processVariable","previousOptions","dependsOn","otherVariable","dependencies","urlValue","setValueFromUrl","ctor","emitChangeEvents","createGraph","VariableSrv","selectOptionsForCurrentValue","validateVariableSelectionState","setValue","currentOption","setOptionFromUrl","defaultText","setOptionAsCurrent","v1","v2","variable_srv_VariableSrv","IntervalVariable","auto_min","auto_count","updateAutoValue","useTags","QueryVariable","updateOptionsFromMetricFindQuery","updateTags","metricNamesToVariableValues","addAllOption","sortVariableValues","sortType","reverseSort","toLower","query_variable_QueryVariable","supportsMulti","datasource_variable_DatasourceVariable","DatasourceVariable","CustomVariable","custom_variable_CustomVariable","ConstantVariable","constant_variable_ConstantVariable","AdhocVariable","unescapeDelimiter","setFilters","TextBoxVariable","TextBoxVariable_TextBoxVariable","plugin_edit_ctrl_PluginEditCtrl","PluginEditCtrl","preUpdateHook","postUpdateHook","setNavModel","defaultTab","pluginIcon","getPluginIcon","plug","initReadme","linkify","readmeHtml","updateCmd","pinned","importDashboards","setPreUpdateHook","setPostUpdateHook","AppPageCtrl","initPage","pluginInfoCache","loadPluginInfo","app","pluginNav","plugin_page_ctrl_AppPageCtrl","DashImportListCtrl","importAll","importNext","installCmd","importedUri","relativeTemplateUrlToAbs","loadPanelComponentInfo","componentInfo","class","panelCtrlPromise","registered","templatePromise","cached","getTemplate","registerPluginComponent","directiveName","$normalize","bindings","dsModule","dsMeta_1","ConfigCtrl","model_1","appModule","app-model","app-edit-ctrl","pluginDirectiveLoader","templating_DefaultVariableQueryEditor","DefaultVariableQueryEditor","VariableQueryEditor","variableQueryEditorLoader","loadComponent","ChangeTracker","originalCopyDelay","originalPath","onbeforeunload","ignoreChanges","hasChanges","open_modal","fromScript","fromFile","cleanDashboardFromIgnoredChanges","dashData","currentTimepicker","originalTimepicker","saveChanges","gotoNext","baseLen","absUrl","nextUrl","tracker","ChangeTracker_ChangeTracker","DashboardLoaderSrv","_dashboardLoadFailed","dashboardNotFound","_loadScriptedDashboard","isFolder","_executeScript","scriptResult","Function","scriptFunc","deferred_1","DashboardLoaderSrv_DashboardLoaderSrv","DashboardSrv_DashboardSrv","DashboardSrv","onRemovePanel","onPanelChangeView","handleSaveDashboardError","postSave","provisioned","showDashboardProvisionedModal","makeEditable","showSaveModal","saveJSONDashboard","DashLinksEditorCtrl","iconMap","addLink","editLink","saveLink","moveLink","deleteLink","anchor","asDropdown","anchorSanitized","sanitizeAnchor","$last","linkDef","dashLink","DashboardExporter","makeExportable","datasourceVariable","variableLookup","requires","refName","processPanel","templateizeDatasourceUsage","panelDef","_o","_p","_q","annotationDef","newObj","DashExportCtrl","exporter","DashboardExporter_DashboardExporter","saveDashboardAsFile","shareExternally","dashboardJson","openSaveAsDialog","viewJson","openJsonModal","DashExportCtrl_DashExportCtrl","ExportDataModalCtrl","asRows","export","file_export","ExportDataModalCtrl_ExportDataModalCtrl","FolderPickerCtrl","rootName","loadInitialValue","enableCreateNew","enableReset","initialTitle","createNewFolder","enterFolderCreation","$folder","newFolderNameChanged","newFolderNameTouched","newFolderName","hasValidationError","closeCreateFolder","cancelCreateFolder","exitFolderCreation","rootFolder","resetFolder","initialFolderId","FolderPickerCtrl_FolderPickerCtrl","onCreateFolder","HistoryListCtrl","historySrv","canCompare","onDashboardSaved","resetFromSource","switchMode","addToLog","revisionSelectionChanged","getDiff","revisions","newInfo","baseInfo","getLog","appending","getHistoryList","revisions_1","revisions_1_1","rev","createdDateString","created","ageString","formatBasicDate","isLastPage","basic","isNewLatest","restoreConfirm","restoreDashboard","HistoryListCtrl_HistoryListCtrl","HistorySrv_HistorySrv","HistorySrv","calculateDiff","TimePickerCtrl_TimePickerCtrl","TimePickerCtrl","firstDayOfWeek","localeData","timeRaw","local","fromJs","toDate","toJs","isAbsolute","zoom","openDropdown","closeDropdown","editTimeRaw","timeOptions","rangeString","applyCustom","absoluteFromChanged","getAbsoluteMomentForTimezone","absolute","absoluteToChanged","jsDate","setRelativeFilter","nowDelay","$elem","UnsavedChangesModalCtrl","discard","discardChanges","SaveDashboardAsModalCtrl","isValidFolderSelection","hideControls","copyTags","SaveDashboardAsModalCtrl_template","SaveDashboardModalCtrl","saveVariables","originalCurrent","timeChange","variableValueChange","isSaving","saveForm","resetOriginalVariables","SaveDashboardModalCtrl_template","getJsonForClipboard","SaveProvisionedDashboardModalCtrl","modeSharePanel","modalTitle","buildUrl","queryStart","shareUrl","soloUrl","iframeHtml","imageUrl","utcOffset","Intl","DateTimeFormat","resolvedOptions","timeZone","SaveProvisionedDashboardModalCtrl_template","SaveProvisionedDashboardModalCtrl_SaveProvisionedDashboardModalCtrl","ShareModalCtrl","ShareSnapshotCtrl","expires","timeoutSeconds","expireOptions","sharingButtonText","externalEnabled","createSnapshot","external","originalUrl","saveSnapshot","scrubDashboard","cmdData","getSnapshotUrl","singlePanel","ShareSnapshotCtrl_ShareSnapshotCtrl","AdHocFiltersCtrl","segmentChanged","updateVariableModel","filterIndex","hasFakes","AdHocFiltersCtrl_template","AdHocFiltersCtrl_AdHocFiltersCtrl","RowOptionsCtrl","DashboardPermissions_DashboardPermissions","DashboardPermissions","updateDashboardPermission","PermissionsInfo","AddPermission","onAddPermission","components_DashboardPermissions_DashboardPermissions","playlists","startUrl","removePlaylistConfirmed","playlist","PlaylistsCtrl","removePlaylist","playlists_ctrl_PlaylistsCtrl","PlaylistSearchCtrl","prom","dashboardResult","tagResult","searchStarted","playlist_srv_PlaylistSrv","PlaylistSrv","numberOfLoops","cancelPromise","filteredParams","pickBy","queryParamsToPreserve","nextDashboardUrl","validPlaylistUrl","storeUpdated","playlistId","isPlaying","storeUnsub","playlistItems","tagresult","filteredDashboards","dashboardresult","playlistItem","listPlaylistItem","filteredTags","addPlaylistItem","addTagPlaylistItem","removePlaylistItem","listedPlaylistItem","savePlaylist","PlaylistEditCtrl","filterFoundPlaylistItems","movePlaylistItem","currentPosition","newPosition","movePlaylistItemUp","movePlaylistItemDown","playlist_edit_ctrl_PlaylistEditCtrl","grafanaRoutes","listItemClass","renderMenuItem","targetClass","menuScope","menuHtml","createMenuTemplate","menuElem","isDragged","panelHeader","src_core","infoDrop","panelScrollbar","panelContainer","panelContent","cornerInfoElem","transparentLastState","lastHasAlertRule","resizeScrollableContent","updatePanelCornerInfo","cornerMode","hoverOpenDelay","__proto__","calculatePanelHeight","hasAlertRule","lastAlertState","directiveModule","directiveCache","panelEditorTab","dynamicDirectiveSrv","queryCtrl","QueryRowCtrl","canCollapse","repeat_option_template","dashRepeatOptionDirective","optionChanged","PanelLinksEditorCtrl","queryStr","dashboardChanged","dashUri","module_PanelLinksEditorCtrl","SelectOrgCtrl","SelectOrgCtrl_SelectOrgCtrl","NewOrgCtrl","newOrg","createOrg","UserInviteCtrl","sendEmail","sendInvite","admin_AdminListUsersCtrl","pages","perPage","totalPages","showPaging","navigateToPage","AdminListUsersCtrl","deleteUser","admin_AdminEditUserCtrl","AdminEditUserCtrl","getUser","user_id","setPassword","passwordForm","updatePermissions","userForm","updateOrgUser","orgUser","removeOrgUser","orgsSearchCache","searchOrgs","addOrgUser","admin_AdminListOrgsCtrl","AdminListOrgsCtrl","getOrgs","deleteOrg","admin_AdminEditOrgCtrl","getOrg","getOrgUsers","orgUsers","orgDetailsForm","AdminEditOrgCtrl","admin_StyleGuideCtrl","StyleGuideCtrl","buttonNames","buttonVariants","switchTheme","cmd","AdminSettingsCtrl","AdminHomeCtrl","getFrequencySuggestion","notifiers","notifier","getNotifierTemplateId","optionsTemplate","notifierTemplateId","AlertNotificationEditCtrl","theForm","testNotification","NotificationsEditCtrl_AlertNotificationEditCtrl","loadNotifications","deleteNotification","AlertNotificationsListCtrl","ValidationSrv_ValidationSrv","ValidationSrv","validateNewFolderName","existingErrorMessage","nameLowerCased","hitTypes","hits_1","hits_1_1","MoveToFolderCtrl","moveDashboards","msg","afterSave","MoveToFolderCtrl_MoveToFolderCtrl","uploadDashboardDirective","btnText","wnd","File","FileReader","FileList","files","reader","externalUrl","SnapshotListCtrl","removeSnapshot","removeSnapshotConfirmed","DashboardListCtrl","SnapshotListCtrl_SnapshotListCtrl","CreateTeamCtrl","ProfileCtrl","showTeamsList","showOrgsList","readonlyLoginFields","getUserTeams","oldTheme","ProfileCtrl_ProfileCtrl","ChangePasswordCtrl"],"mappings":"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CA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MA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jC,EAAAgkC,sBAAA,eAC5Bx5B,EAAAy5B,gBAAiCjkC,OAGjC+jC,gBAAA,SAAAC,SACA,YACAhlH,QAAA,SAAAklH,GACAA,EAAA7D,WACAK,EAAA3nI,KAAA,CACAgS,KAAAm1H,GAAAS,mCAAiDuD,EAAA7D,WACjD9iI,MAAA2mI,EAAA7D,mBAMA4D,gBAAA,SAA2BjkC,SAC3B,SACA5W,YAA2B,IAA3B4W,EAA2B5W,WAAAvwF,cAC3BuwF,EAED4W,EAAAmkC,qBACD/6C,EAAArwF,KAAe,CAAEgS,KAAA,OAAAxN,MAAA,iBAEf5E,EAAA,EAAAA,EAAAqnG,EAAA5W,WAAiCvwF,OAAAF,MACjCI,KAAA,CACAgS,KAAAi1F,EAAA5W,WAAuBzwF,GAAAyrI,eACvB7mI,MAAAyiG,EAAA5W,WAAAzwF,GAAA4E,oBHiCC,GIUA8mI,GDjCD,sBACAC,kBACAA,iCACA,cACA,CACA,qCACA,kCACA,0CACA,gCACA,wBACA,2CACA,mDACA,uCACA,oCACA,4CACA,8CACA,yCACA,6CACA,kCACA,2CACA,sCACA,kCACA,uCACA,mCACA,iCACA,+BACA,oCACA,4BACA,yCACA,wCACA,6BACA,yCACA,sCACA,gCACA,8BACA,+BACA,uCACA,gCACA,4BACD,2BACD,2CACE,4BACA,iDACA,gDACA,wDACA,sCACA,kCACA,6BACA,sCACA,mCACA,wCACA,2CACA,yCACA,kDACA,gCACA,2CACA,uDACA,+BACA,yDACA,wCACA,6BACA,kCACA,kCACA,kCACA,qCACA,iCACA,oCACA,iDACA,iDACA,kDACA,kDACA,4CACA,uDACA,uEACA,8DACA,0CACA,4BACA,sBACA,4BACA,mDACA,iEAEA,CACA,qCACA,kCACA,gCACA,wBACD,2CACD,mDACE,uCACA,oCACA,4CACA,yCACA,+BACA,oCACA,4BACA,yCACA,6BACA,yCACA,sCACA,gCACA,8BACA,uCACA,4BACA,4BACA,sCACA,kCACA,6BACA,sCACA,mCACA,wCACA,2CACA,yCACA,kDACA,gCACA,2CACA,uDACA,+BACA,yDACA,2CACA,wCACA,6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61P,EAAAxoO,MAAAl6B,GACA6R,EAAAxR,EAAAwR,MAAAxR,EAAAwR,MAAAmH,EAAAihB,OACA3L,EAAAjuB,EAAAuS,SACA,OAAAzQ,EAAAwH,KAAAtJ,EAAA+5B,cAAAqoO,EAAA3kQ,IAAAwwB,IAAApsB,EAAApE,IAAAwwB,EAAA,CAAAuN,OAAA,IAAAv3B,KAAA,SAAAgF,GACA,OAAAA,EAAAtQ,QACAsL,KAAA,SAAAsO,GACA,IAAA9J,EAAe+I,EAAAoB,IACfqb,IACAxlB,GAAAwlB,EAAApc,QAAA,YAAAA,QAAA,mBAGS,IAAAynB,EAAAymK,EAAA,gDAAAxsL,KAAA,KAAA9K,GAAAiC,KAAA6H,UACTvS,EAAA85B,YACAR,EAAAzmB,SAAA7S,EAAA85B,YACAimK,EAAA,QAAAliK,OAAAvE,GACAv3B,EAAA,WACAoI,EAAAmvB,EAAAnvB,CAAAqH,KAEAA,EAAA8nB,OAAA,SAAAl8B,GACAk8B,EAAAO,MAAAz8B,IAEAkU,QAAAgO,QAAA,CACA,OACA,QACA,SAAAliB,GACAoU,EAAApU,GAAA,WACAk8B,EAAAO,MAAAz8B,MAGAoU,EAAAmoB,QAAAnoB,EAAAjF,KACA+E,QAAAgO,QAAA,CACA,OACW,QACX,OACA,UACA,SAAAliB,GACAk8B,EAAA3lB,GAAAvW,EAAA,SAAAklQ,GACA9wP,EAAA+wP,MAAA,SAAAnlQ,EAAAklQ,w9DCrMA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEA,SAAA3nQ,EAAAD,EAAAJ,GAEA,IAAA4U,EAAA,CACAszP,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,U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AD,QAAAixB,GAIG,SAAAhxB,EAAAD,GAEH,IAAAixB,EAAA,6CAEA/sB,OAAA0S,QAAA3W,OAAA,MAAA8iC,IAAA,kBAAmC,SAAAvgC,KAAAwF,IAAAipB,EADhC,8gCAEHhxB,EAAAD,QAAAixB,GAIA,SAAAhxB,EAAAD,2HAGA,44BCnHAA,EAAA8V,SAAA,eACA9V,EAAS28Q,QAAA,+xFCDT1pQ,EAAA,uBACA2pQ,EAAA,+DAEA3pQ,EAAA,8BAQA,EAEA,CACA,CACA,EAEA,CACA,CACA,CACA,CACA,EAEA,CACA,CACA,CACA,CACG,EAEH,CACA,CACA,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACA,CACK,CACL,CACA,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACK,CACL,CACA,CACA,CACK,CACL,EAEA,CACA,EAEA,EAEA,CACC,EAED,CACA,EAEA,EAEA,CACA,CACA,CACA,EAEA,CACA,CACA,CACA,CAEA,SAAAhT,EAAAD,GAIA68Q,IAAAC,OAAA,4HAAAppP,EAAA1zB,EAAAC,GACA,aAEA,IAAA88Q,EAAArpP,EAAA,cACAspP,EAAAtpP,EAAA,0BAAAspP,mBAEAC,EAAA,WACA,IAcAC,EAAA33Q,KAAA43Q,oBAAA,CACAC,mBAPG,ybAQHC,QAhBA,yEAiBAC,oBAbA,gCAcG,iBAEH/3Q,KAAAg4Q,OAAA,CACAx4O,MAAA,EACAkhD,MAAA,SACG1d,MAAA,sBACH,CACA0d,MAAA,SACA1d,MAAA,SACA,CACG0d,MAAA,mBACH1d,MAAA,kDACA,CACA0d,MAAA,oBACA1d,MAAA,gBACG,CACH0d,MAAA,0BACA1d,MAAA,uDACA,CA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","file":"app.d10a9a685fb17efa4c7b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"3\":\"explore\"}[chunkId]||chunkId) + \".\" + \"d10a9a685fb17efa4c7b\" + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"public/build/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1476,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from './components';\nexport * from './types';\nexport * from './utils';\nexport * from './themes';\n","import angular from 'angular';\n\nconst coreModule = angular.module('grafana.core', ['ngRoute']);\n\n// legacy modules\nconst angularModules = [\n coreModule,\n angular.module('grafana.controllers', []),\n angular.module('grafana.directives', []),\n angular.module('grafana.factories', []),\n angular.module('grafana.services', []),\n angular.module('grafana.filters', []),\n angular.module('grafana.routes', []),\n];\n\nexport { angularModules, coreModule };\n\nexport default coreModule;\n","import _ from 'lodash';\nimport { PanelPlugin } from 'app/types/plugins';\nimport { GrafanaTheme, getTheme, GrafanaThemeType } from '@grafana/ui';\n\nexport interface BuildInfo {\n version: string;\n commit: string;\n isEnterprise: boolean;\n env: string;\n latestVersion: string;\n hasUpdate: boolean;\n}\n\nexport class Settings {\n datasources: any;\n panels: { [key: string]: PanelPlugin };\n appSubUrl: string;\n windowTitlePrefix: string;\n buildInfo: BuildInfo;\n newPanelTitle: string;\n bootData: any;\n externalUserMngLinkUrl: string;\n externalUserMngLinkName: string;\n externalUserMngInfo: string;\n allowOrgCreate: boolean;\n disableLoginForm: boolean;\n defaultDatasource: string;\n alertingEnabled: boolean;\n alertingErrorOrTimeout: string;\n alertingNoDataOrNullValues: string;\n authProxyEnabled: boolean;\n exploreEnabled: boolean;\n ldapEnabled: boolean;\n oauth: any;\n disableUserSignUp: boolean;\n loginHint: any;\n passwordHint: any;\n loginError: any;\n viewersCanEdit: boolean;\n editorsCanAdmin: boolean;\n disableSanitizeHtml: boolean;\n theme: GrafanaTheme;\n\n constructor(options: Settings) {\n this.theme = options.bootData.user.lightTheme ? getTheme(GrafanaThemeType.Light) : getTheme(GrafanaThemeType.Dark);\n\n const defaults = {\n datasources: {},\n windowTitlePrefix: 'Grafana - ',\n panels: {},\n newPanelTitle: 'Panel Title',\n playlist_timespan: '1m',\n unsaved_changes_warning: true,\n appSubUrl: '',\n buildInfo: {\n version: 'v1.0',\n commit: '1',\n env: 'production',\n isEnterprise: false,\n },\n viewersCanEdit: false,\n editorsCanAdmin: false,\n disableSanitizeHtml: false,\n };\n\n _.extend(this, defaults, options);\n }\n}\n\nconst bootData = (window as any).grafanaBootData || {\n settings: {},\n user: {},\n};\n\nconst options = bootData.settings;\noptions.bootData = bootData;\n\nexport const config = new Settings(options);\nexport default config;\n","import { Emitter } from './utils/emitter';\n\nexport const appEvents = new Emitter();\n\nexport default appEvents;\n","// @ts-ignore\nimport _ from 'lodash';\nimport angular from 'angular';\nimport coreModule from 'app/core/core_module';\nimport appEvents from 'app/core/app_events';\nimport config from 'app/core/config';\nimport { DashboardModel } from 'app/features/dashboard/state/DashboardModel';\nimport { DashboardSearchHit } from 'app/types/search';\nimport { ContextSrv } from './context_srv';\nimport { FolderInfo, DashboardDTO } from 'app/types';\n\nexport class BackendSrv {\n private inFlightRequests: { [key: string]: Array> } = {};\n private HTTP_REQUEST_CANCELED = -1;\n private noBackendCache: boolean;\n\n /** @ngInject */\n constructor(\n private $http: any,\n private $q: angular.IQService,\n private $timeout: angular.ITimeoutService,\n private contextSrv: ContextSrv\n ) {}\n\n get(url: string, params?: any) {\n return this.request({ method: 'GET', url, params });\n }\n\n delete(url: string) {\n return this.request({ method: 'DELETE', url });\n }\n\n post(url: string, data: any) {\n return this.request({ method: 'POST', url, data });\n }\n\n patch(url: string, data: any) {\n return this.request({ method: 'PATCH', url, data });\n }\n\n put(url: string, data: any) {\n return this.request({ method: 'PUT', url, data });\n }\n\n withNoBackendCache(callback: any) {\n this.noBackendCache = true;\n return callback().finally(() => {\n this.noBackendCache = false;\n });\n }\n\n requestErrorHandler(err: any) {\n if (err.isHandled) {\n return;\n }\n\n let data = err.data || { message: 'Unexpected error' };\n if (_.isString(data)) {\n data = { message: data };\n }\n\n if (err.status === 422) {\n appEvents.emit('alert-warning', ['Validation failed', data.message]);\n throw data;\n }\n\n let severity = 'error';\n\n if (err.status < 500) {\n severity = 'warning';\n }\n\n if (data.message) {\n let description = '';\n let message = data.message;\n if (message.length > 80) {\n description = message;\n message = 'Error';\n }\n\n appEvents.emit('alert-' + severity, [message, description]);\n }\n\n throw data;\n }\n\n request(options: any) {\n options.retry = options.retry || 0;\n const requestIsLocal = !options.url.match(/^http/);\n const firstAttempt = options.retry === 0;\n\n if (requestIsLocal) {\n if (this.contextSrv.user && this.contextSrv.user.orgId) {\n options.headers = options.headers || {};\n options.headers['X-Grafana-Org-Id'] = this.contextSrv.user.orgId;\n }\n\n if (options.url.indexOf('/') === 0) {\n options.url = options.url.substring(1);\n }\n }\n\n return this.$http(options).then(\n (results: any) => {\n if (options.method !== 'GET') {\n if (results && results.data.message) {\n if (options.showSuccessAlert !== false) {\n appEvents.emit('alert-success', [results.data.message]);\n }\n }\n }\n return results.data;\n },\n (err: any) => {\n // handle unauthorized\n if (err.status === 401 && this.contextSrv.user.isSignedIn && firstAttempt) {\n return this.loginPing()\n .then(() => {\n options.retry = 1;\n return this.request(options);\n })\n .catch((err: any) => {\n if (err.status === 401) {\n window.location.href = config.appSubUrl + '/logout';\n throw err;\n }\n });\n }\n\n this.$timeout(this.requestErrorHandler.bind(this, err), 50);\n throw err;\n }\n );\n }\n\n addCanceler(requestId: string, canceler: angular.IDeferred) {\n if (requestId in this.inFlightRequests) {\n this.inFlightRequests[requestId].push(canceler);\n } else {\n this.inFlightRequests[requestId] = [canceler];\n }\n }\n\n resolveCancelerIfExists(requestId: string) {\n const cancelers = this.inFlightRequests[requestId];\n if (!_.isUndefined(cancelers) && cancelers.length) {\n cancelers[0].resolve();\n }\n }\n\n datasourceRequest(options: any) {\n let canceler: angular.IDeferred = null;\n options.retry = options.retry || 0;\n\n // A requestID is provided by the datasource as a unique identifier for a\n // particular query. If the requestID exists, the promise it is keyed to\n // is canceled, canceling the previous datasource request if it is still\n // in-flight.\n const requestId = options.requestId;\n if (requestId) {\n this.resolveCancelerIfExists(requestId);\n // create new canceler\n canceler = this.$q.defer();\n options.timeout = canceler.promise;\n this.addCanceler(requestId, canceler);\n }\n\n const requestIsLocal = !options.url.match(/^http/);\n const firstAttempt = options.retry === 0;\n\n if (requestIsLocal) {\n if (this.contextSrv.user && this.contextSrv.user.orgId) {\n options.headers = options.headers || {};\n options.headers['X-Grafana-Org-Id'] = this.contextSrv.user.orgId;\n }\n\n if (options.url.indexOf('/') === 0) {\n options.url = options.url.substring(1);\n }\n\n if (options.headers && options.headers.Authorization) {\n options.headers['X-DS-Authorization'] = options.headers.Authorization;\n delete options.headers.Authorization;\n }\n\n if (this.noBackendCache) {\n options.headers['X-Grafana-NoCache'] = 'true';\n }\n }\n\n return this.$http(options)\n .then((response: any) => {\n if (!options.silent) {\n appEvents.emit('ds-request-response', response);\n }\n return response;\n })\n .catch((err: any) => {\n if (err.status === this.HTTP_REQUEST_CANCELED) {\n throw { err, cancelled: true };\n }\n\n // handle unauthorized for backend requests\n if (requestIsLocal && firstAttempt && err.status === 401) {\n return this.loginPing()\n .then(() => {\n options.retry = 1;\n if (canceler) {\n canceler.resolve();\n }\n return this.datasourceRequest(options);\n })\n .catch((err: any) => {\n if (err.status === 401) {\n window.location.href = config.appSubUrl + '/logout';\n throw err;\n }\n });\n }\n\n // populate error obj on Internal Error\n if (_.isString(err.data) && err.status === 500) {\n err.data = {\n error: err.statusText,\n response: err.data,\n };\n }\n\n // for Prometheus\n if (err.data && !err.data.message && _.isString(err.data.error)) {\n err.data.message = err.data.error;\n }\n if (!options.silent) {\n appEvents.emit('ds-request-error', err);\n }\n throw err;\n })\n .finally(() => {\n // clean up\n if (options.requestId) {\n this.inFlightRequests[options.requestId].shift();\n }\n });\n }\n\n loginPing() {\n return this.request({ url: '/api/login/ping', method: 'GET', retry: 1 });\n }\n\n search(query: any): Promise {\n return this.get('/api/search', query);\n }\n\n getDashboardBySlug(slug: string) {\n return this.get(`/api/dashboards/db/${slug}`);\n }\n\n getDashboardByUid(uid: string) {\n return this.get(`/api/dashboards/uid/${uid}`);\n }\n\n getFolderByUid(uid: string) {\n return this.get(`/api/folders/${uid}`);\n }\n\n saveDashboard(dash: DashboardModel, options: any) {\n options = options || {};\n\n return this.post('/api/dashboards/db/', {\n dashboard: dash,\n folderId: options.folderId,\n overwrite: options.overwrite === true,\n message: options.message || '',\n });\n }\n\n createFolder(payload: any) {\n return this.post('/api/folders', payload);\n }\n\n deleteFolder(uid: string, showSuccessAlert: boolean) {\n return this.request({ method: 'DELETE', url: `/api/folders/${uid}`, showSuccessAlert: showSuccessAlert === true });\n }\n\n deleteDashboard(uid: string, showSuccessAlert: boolean) {\n return this.request({\n method: 'DELETE',\n url: `/api/dashboards/uid/${uid}`,\n showSuccessAlert: showSuccessAlert === true,\n });\n }\n\n deleteFoldersAndDashboards(folderUids: string[], dashboardUids: string[]) {\n const tasks = [];\n\n for (const folderUid of folderUids) {\n tasks.push(this.createTask(this.deleteFolder.bind(this), true, folderUid, true));\n }\n\n for (const dashboardUid of dashboardUids) {\n tasks.push(this.createTask(this.deleteDashboard.bind(this), true, dashboardUid, true));\n }\n\n return this.executeInOrder(tasks, []);\n }\n\n moveDashboards(dashboardUids: string[], toFolder: FolderInfo) {\n const tasks = [];\n\n for (const uid of dashboardUids) {\n tasks.push(this.createTask(this.moveDashboard.bind(this), true, uid, toFolder));\n }\n\n return this.executeInOrder(tasks, []).then((result: any) => {\n return {\n totalCount: result.length,\n successCount: _.filter(result, { succeeded: true }).length,\n alreadyInFolderCount: _.filter(result, { alreadyInFolder: true }).length,\n };\n });\n }\n\n private moveDashboard(uid: string, toFolder: FolderInfo) {\n const deferred = this.$q.defer();\n\n this.getDashboardByUid(uid).then((fullDash: DashboardDTO) => {\n const model = new DashboardModel(fullDash.dashboard, fullDash.meta);\n\n if ((!fullDash.meta.folderId && toFolder.id === 0) || fullDash.meta.folderId === toFolder.id) {\n deferred.resolve({ alreadyInFolder: true });\n return;\n }\n\n const clone = model.getSaveModelClone();\n const options = {\n folderId: toFolder.id,\n overwrite: false,\n };\n\n this.saveDashboard(clone, options)\n .then(() => {\n deferred.resolve({ succeeded: true });\n })\n .catch((err: any) => {\n if (err.data && err.data.status === 'plugin-dashboard') {\n err.isHandled = true;\n options.overwrite = true;\n\n this.saveDashboard(clone, options)\n .then(() => {\n deferred.resolve({ succeeded: true });\n })\n .catch((err: any) => {\n deferred.resolve({ succeeded: false });\n });\n } else {\n deferred.resolve({ succeeded: false });\n }\n });\n });\n\n return deferred.promise;\n }\n\n private createTask(fn: Function, ignoreRejections: boolean, ...args: any[]) {\n return (result: any) => {\n return fn\n .apply(null, args)\n .then((res: any) => {\n return Array.prototype.concat(result, [res]);\n })\n .catch((err: any) => {\n if (ignoreRejections) {\n return result;\n }\n\n throw err;\n });\n };\n }\n\n private executeInOrder(tasks: any[], initialValue: any[]) {\n return tasks.reduce(this.$q.when, initialValue);\n }\n}\n\ncoreModule.service('backendSrv', BackendSrv);\n\n//\n// Code below is to expore the service to react components\n//\n\nlet singletonInstance: BackendSrv;\n\nexport function setBackendSrv(instance: BackendSrv) {\n singletonInstance = instance;\n}\n\nexport function getBackendSrv(): BackendSrv {\n return singletonInstance;\n}\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport coreModule from '../core_module';\n\n/** @ngInject */\nexport function dropdownTypeahead($compile) {\n const inputTemplate =\n '';\n\n const buttonTemplate =\n '';\n\n return {\n scope: {\n menuItems: '=dropdownTypeahead',\n dropdownTypeaheadOnSelect: '&dropdownTypeaheadOnSelect',\n model: '=ngModel',\n },\n link: ($scope, elem, attrs) => {\n const $input = $(inputTemplate);\n const $button = $(buttonTemplate);\n $input.appendTo(elem);\n $button.appendTo(elem);\n\n if (attrs.linkText) {\n $button.html(attrs.linkText);\n }\n\n if (attrs.ngModel) {\n $scope.$watch('model', newValue => {\n _.each($scope.menuItems, item => {\n _.each(item.submenu, subItem => {\n if (subItem.value === newValue) {\n $button.html(subItem.text);\n }\n });\n });\n });\n }\n\n const typeaheadValues = _.reduce(\n $scope.menuItems,\n (memo, value, index) => {\n if (!value.submenu) {\n value.click = 'menuItemSelected(' + index + ')';\n memo.push(value.text);\n } else {\n _.each(value.submenu, (item, subIndex) => {\n item.click = 'menuItemSelected(' + index + ',' + subIndex + ')';\n memo.push(value.text + ' ' + item.text);\n });\n }\n return memo;\n },\n []\n );\n\n $scope.menuItemSelected = (index, subIndex) => {\n const menuItem = $scope.menuItems[index];\n const payload: any = { $item: menuItem };\n if (menuItem.submenu && subIndex !== void 0) {\n payload.$subItem = menuItem.submenu[subIndex];\n }\n $scope.dropdownTypeaheadOnSelect(payload);\n };\n\n $input.attr('data-provide', 'typeahead');\n $input.typeahead({\n source: typeaheadValues,\n minLength: 1,\n items: 10,\n updater: value => {\n const result: any = {};\n _.each($scope.menuItems, menuItem => {\n _.each(menuItem.submenu, submenuItem => {\n if (value === menuItem.text + ' ' + submenuItem.text) {\n result.$subItem = submenuItem;\n result.$item = menuItem;\n }\n });\n });\n\n if (result.$item) {\n $scope.$apply(() => {\n $scope.dropdownTypeaheadOnSelect(result);\n });\n }\n\n $input.trigger('blur');\n return '';\n },\n });\n\n $button.click(() => {\n $button.hide();\n $input.show();\n $input.focus();\n });\n\n $input.keyup(() => {\n elem.toggleClass('open', $input.val() === '');\n });\n\n $input.blur(() => {\n $input.hide();\n $input.val('');\n $button.show();\n $button.focus();\n // clicking the function dropdown menu won't\n // work if you remove class at once\n setTimeout(() => {\n elem.removeClass('open');\n }, 200);\n });\n\n $compile(elem.contents())($scope);\n },\n };\n}\n\n/** @ngInject */\nexport function dropdownTypeahead2($compile) {\n const inputTemplate =\n '';\n\n const buttonTemplate =\n '';\n\n return {\n scope: {\n menuItems: '=dropdownTypeahead2',\n dropdownTypeaheadOnSelect: '&dropdownTypeaheadOnSelect',\n model: '=ngModel',\n buttonTemplateClass: '@',\n },\n link: ($scope, elem, attrs) => {\n const $input = $(inputTemplate);\n\n if (!$scope.buttonTemplateClass) {\n $scope.buttonTemplateClass = 'gf-form-input';\n }\n\n const $button = $(buttonTemplate);\n const timeoutId = {\n blur: null,\n };\n $input.appendTo(elem);\n $button.appendTo(elem);\n\n if (attrs.linkText) {\n $button.html(attrs.linkText);\n }\n\n if (attrs.ngModel) {\n $scope.$watch('model', newValue => {\n _.each($scope.menuItems, item => {\n _.each(item.submenu, subItem => {\n if (subItem.value === newValue) {\n $button.html(subItem.text);\n }\n });\n });\n });\n }\n\n const typeaheadValues = _.reduce(\n $scope.menuItems,\n (memo, value, index) => {\n if (!value.submenu) {\n value.click = 'menuItemSelected(' + index + ')';\n memo.push(value.text);\n } else {\n _.each(value.submenu, (item, subIndex) => {\n item.click = 'menuItemSelected(' + index + ',' + subIndex + ')';\n memo.push(value.text + ' ' + item.text);\n });\n }\n return memo;\n },\n []\n );\n\n const closeDropdownMenu = () => {\n $input.hide();\n $input.val('');\n $button.show();\n $button.focus();\n elem.removeClass('open');\n };\n\n $scope.menuItemSelected = (index, subIndex) => {\n const menuItem = $scope.menuItems[index];\n const payload: any = { $item: menuItem };\n if (menuItem.submenu && subIndex !== void 0) {\n payload.$subItem = menuItem.submenu[subIndex];\n }\n $scope.dropdownTypeaheadOnSelect(payload);\n closeDropdownMenu();\n };\n\n $input.attr('data-provide', 'typeahead');\n $input.typeahead({\n source: typeaheadValues,\n minLength: 1,\n items: 10,\n updater: value => {\n const result: any = {};\n _.each($scope.menuItems, menuItem => {\n _.each(menuItem.submenu, submenuItem => {\n if (value === menuItem.text + ' ' + submenuItem.text) {\n result.$subItem = submenuItem;\n result.$item = menuItem;\n }\n });\n });\n\n if (result.$item) {\n $scope.$apply(() => {\n $scope.dropdownTypeaheadOnSelect(result);\n });\n }\n\n $input.trigger('blur');\n return '';\n },\n });\n\n $button.click(() => {\n $button.hide();\n $input.show();\n $input.focus();\n });\n\n $input.keyup(() => {\n elem.toggleClass('open', $input.val() === '');\n });\n\n elem.mousedown((evt: Event) => {\n evt.preventDefault();\n timeoutId.blur = null;\n });\n\n $input.blur(() => {\n timeoutId.blur = setTimeout(() => {\n closeDropdownMenu();\n }, 1);\n });\n\n $compile(elem.contents())($scope);\n },\n };\n}\n\ncoreModule.directive('dropdownTypeahead', dropdownTypeahead);\ncoreModule.directive('dropdownTypeahead2', dropdownTypeahead2);\n","import coreModule from '../core_module';\n\n/** @ngInject */\nexport function autofillEventFix($compile) {\n return {\n link: ($scope: any, elem: any) => {\n const input = elem[0];\n const dispatchChangeEvent = () => {\n const event = new Event('change');\n return input.dispatchEvent(event);\n };\n const onAnimationStart = ({ animationName }: AnimationEvent) => {\n switch (animationName) {\n case 'onAutoFillStart':\n return dispatchChangeEvent();\n case 'onAutoFillCancel':\n return dispatchChangeEvent();\n }\n return null;\n };\n\n // const onChange = (evt: Event) => console.log(evt);\n\n input.addEventListener('animationstart', onAnimationStart);\n // input.addEventListener('change', onChange);\n\n $scope.$on('$destroy', () => {\n input.removeEventListener('animationstart', onAnimationStart);\n // input.removeEventListener('change', onChange);\n });\n },\n };\n}\n\ncoreModule.directive('autofillEventFix', autofillEventFix);\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport coreModule from '../core_module';\n\n/** @ngInject */\nexport function metricSegment($compile, $sce, templateSrv) {\n const inputTemplate =\n '';\n\n const linkTemplate =\n '';\n\n const selectTemplate =\n '';\n\n return {\n scope: {\n segment: '=',\n getOptions: '&',\n onChange: '&',\n debounce: '@',\n },\n link: ($scope, elem) => {\n const $input = $(inputTemplate);\n const segment = $scope.segment;\n const $button = $(segment.selectMode ? selectTemplate : linkTemplate);\n let options = null;\n let cancelBlur = null;\n let linkMode = true;\n const debounceLookup = $scope.debounce;\n\n $input.appendTo(elem);\n $button.appendTo(elem);\n\n $scope.updateVariableValue = value => {\n if (value === '' || segment.value === value) {\n return;\n }\n\n $scope.$apply(() => {\n const selected = _.find($scope.altSegments, { value: value });\n if (selected) {\n segment.value = selected.value;\n segment.html = selected.html || $sce.trustAsHtml(templateSrv.highlightVariablesAsHtml(selected.value));\n segment.fake = false;\n segment.expandable = selected.expandable;\n\n if (selected.type) {\n segment.type = selected.type;\n }\n } else if (segment.custom !== 'false') {\n segment.value = value;\n segment.html = $sce.trustAsHtml(templateSrv.highlightVariablesAsHtml(value));\n segment.expandable = true;\n segment.fake = false;\n }\n\n $scope.onChange();\n });\n };\n\n $scope.switchToLink = fromClick => {\n if (linkMode && !fromClick) {\n return;\n }\n\n clearTimeout(cancelBlur);\n cancelBlur = null;\n linkMode = true;\n $input.hide();\n $button.show();\n $scope.updateVariableValue($input.val());\n };\n\n $scope.inputBlur = () => {\n // happens long before the click event on the typeahead options\n // need to have long delay because the blur\n cancelBlur = setTimeout($scope.switchToLink, 200);\n };\n\n $scope.source = (query, callback) => {\n $scope.$apply(() => {\n $scope.getOptions({ $query: query }).then(altSegments => {\n $scope.altSegments = altSegments;\n options = _.map($scope.altSegments, alt => {\n return _.escape(alt.value);\n });\n\n // add custom values\n if (segment.custom !== 'false') {\n if (!segment.fake && _.indexOf(options, segment.value) === -1) {\n options.unshift(_.escape(segment.value));\n }\n }\n\n callback(options);\n });\n });\n };\n\n $scope.updater = value => {\n value = _.unescape(value);\n if (value === segment.value) {\n clearTimeout(cancelBlur);\n $input.focus();\n return value;\n }\n\n $input.val(value);\n $scope.switchToLink(true);\n\n return value;\n };\n\n $scope.matcher = function(item) {\n if (linkMode) {\n return false;\n }\n let str = this.query;\n if (str[0] === '/') {\n str = str.substring(1);\n }\n if (str[str.length - 1] === '/') {\n str = str.substring(0, str.length - 1);\n }\n try {\n return item.toLowerCase().match(str.toLowerCase());\n } catch (e) {\n return false;\n }\n };\n\n $input.attr('data-provide', 'typeahead');\n $input.typeahead({\n source: $scope.source,\n minLength: 0,\n items: 10000,\n updater: $scope.updater,\n matcher: $scope.matcher,\n });\n\n const typeahead = $input.data('typeahead');\n typeahead.lookup = function() {\n this.query = this.$element.val() || '';\n const items = this.source(this.query, $.proxy(this.process, this));\n return items ? this.process(items) : items;\n };\n\n if (debounceLookup) {\n typeahead.lookup = _.debounce(typeahead.lookup, 500, { leading: true });\n }\n\n $button.keydown(evt => {\n // trigger typeahead on down arrow or enter key\n if (evt.keyCode === 40 || evt.keyCode === 13) {\n $button.click();\n }\n });\n\n $button.click(() => {\n options = null;\n $input.css('width', Math.max($button.width(), 80) + 16 + 'px');\n\n $button.hide();\n $input.show();\n $input.focus();\n\n linkMode = false;\n\n const typeahead = $input.data('typeahead');\n if (typeahead) {\n $input.val('');\n typeahead.lookup();\n }\n });\n\n $input.blur($scope.inputBlur);\n\n $compile(elem.contents())($scope);\n },\n };\n}\n\n/** @ngInject */\nexport function metricSegmentModel(uiSegmentSrv, $q) {\n return {\n template:\n '',\n restrict: 'E',\n scope: {\n property: '=',\n options: '=',\n getOptions: '&',\n onChange: '&',\n },\n link: {\n pre: function postLink($scope, elem, attrs) {\n let cachedOptions;\n\n $scope.valueToSegment = value => {\n const option = _.find($scope.options, { value: value });\n const segment = {\n cssClass: attrs.cssClass,\n custom: attrs.custom,\n value: option ? option.text : value,\n selectMode: attrs.selectMode,\n };\n\n return uiSegmentSrv.newSegment(segment);\n };\n\n $scope.getOptionsInternal = () => {\n if ($scope.options) {\n cachedOptions = $scope.options;\n return $q.when(\n _.map($scope.options, option => {\n return { value: option.text };\n })\n );\n } else {\n return $scope.getOptions().then(options => {\n cachedOptions = options;\n return _.map(options, option => {\n if (option.html) {\n return option;\n }\n return { value: option.text };\n });\n });\n }\n };\n\n $scope.onSegmentChange = () => {\n if (cachedOptions) {\n const option = _.find(cachedOptions, { text: $scope.segment.value });\n if (option && option.value !== $scope.property) {\n $scope.property = option.value;\n } else if (attrs.custom !== 'false') {\n $scope.property = $scope.segment.value;\n }\n } else {\n $scope.property = $scope.segment.value;\n }\n\n // needs to call this after digest so\n // property is synced with outerscope\n $scope.$$postDigest(() => {\n $scope.$apply(() => {\n $scope.onChange();\n });\n });\n };\n\n $scope.segment = $scope.valueToSegment($scope.property);\n },\n },\n };\n}\n\ncoreModule.directive('metricSegment', metricSegment);\ncoreModule.directive('metricSegmentModel', metricSegmentModel);\n","import angular from 'angular';\nimport Clipboard from 'clipboard';\nimport coreModule from '../core_module';\nimport kbn from 'app/core/utils/kbn';\nimport { appEvents } from 'app/core/core';\n\n/** @ngInject */\nfunction tip($compile) {\n return {\n restrict: 'E',\n link: (scope, elem, attrs) => {\n let _t =\n '';\n _t = _t.replace(/{/g, '\\\\{').replace(/}/g, '\\\\}');\n elem.replaceWith($compile(angular.element(_t))(scope));\n },\n };\n}\n\nfunction clipboardButton() {\n return {\n scope: {\n getText: '&clipboardButton',\n },\n link: (scope, elem) => {\n scope.clipboard = new Clipboard(elem[0], {\n text: () => {\n return scope.getText();\n },\n });\n\n scope.clipboard.on('success', () => {\n appEvents.emit('alert-success', ['Content copied to clipboard']);\n });\n\n scope.$on('$destroy', () => {\n if (scope.clipboard) {\n scope.clipboard.destroy();\n }\n });\n },\n };\n}\n\n/** @ngInject */\nfunction compile($compile) {\n return {\n restrict: 'A',\n link: (scope, element, attrs) => {\n scope.$watch(\n scope => {\n return scope.$eval(attrs.compile);\n },\n value => {\n element.html(value);\n $compile(element.contents())(scope);\n }\n );\n },\n };\n}\n\nfunction watchChange() {\n return {\n scope: { onchange: '&watchChange' },\n link: (scope, element) => {\n element.on('input', () => {\n scope.$apply(() => {\n scope.onchange({ inputValue: element.val() });\n });\n });\n },\n };\n}\n\n/** @ngInject */\nfunction editorOptBool($compile) {\n return {\n restrict: 'E',\n link: (scope, elem, attrs) => {\n const ngchange = attrs.change ? ' ng-change=\"' + attrs.change + '\"' : '';\n const tip = attrs.tip ? ' ' + attrs.tip + '' : '';\n const showIf = attrs.showIf ? ' ng-show=\"' + attrs.showIf + '\" ' : '';\n\n const template =\n '
' +\n ' ' +\n '' +\n ' ';\n elem.replaceWith($compile(angular.element(template))(scope));\n },\n };\n}\n\n/** @ngInject */\nfunction editorCheckbox($compile, $interpolate) {\n return {\n restrict: 'E',\n link: (scope, elem, attrs) => {\n const text = $interpolate(attrs.text)(scope);\n const model = $interpolate(attrs.model)(scope);\n const ngchange = attrs.change ? ' ng-change=\"' + attrs.change + '\"' : '';\n const tip = attrs.tip ? ' ' + attrs.tip + '' : '';\n const label = '';\n\n let template =\n '' +\n ' ';\n\n template = template + label;\n elem.addClass('gf-form-checkbox');\n elem.html($compile(angular.element(template))(scope));\n },\n };\n}\n\n/** @ngInject */\nfunction gfDropdown($parse, $compile, $timeout) {\n function buildTemplate(items, placement?) {\n const upclass = placement === 'top' ? 'dropup' : '';\n const ul = ['
    ', '
'];\n\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n\n if (item.divider) {\n ul.splice(index + 1, 0, '
  • ');\n continue;\n }\n\n let li =\n '' +\n '' +\n (item.text || '') +\n '';\n\n if (item.submenu && item.submenu.length) {\n li += buildTemplate(item.submenu).join('\\n');\n }\n\n li += '';\n ul.splice(index + 1, 0, li);\n }\n\n return ul;\n }\n\n return {\n restrict: 'EA',\n scope: true,\n link: function postLink(scope, iElement, iAttrs) {\n const getter = $parse(iAttrs.gfDropdown),\n items = getter(scope);\n $timeout(() => {\n const placement = iElement.data('placement');\n const dropdown = angular.element(buildTemplate(items, placement).join(''));\n dropdown.insertAfter(iElement);\n $compile(iElement.next('ul.dropdown-menu'))(scope);\n });\n\n iElement.addClass('dropdown-toggle').attr('data-toggle', 'dropdown');\n },\n };\n}\n\ncoreModule.directive('tip', tip);\ncoreModule.directive('clipboardButton', clipboardButton);\ncoreModule.directive('compile', compile);\ncoreModule.directive('watchChange', watchChange);\ncoreModule.directive('editorOptBool', editorOptBool);\ncoreModule.directive('editorCheckbox', editorCheckbox);\ncoreModule.directive('gfDropdown', gfDropdown);\n","import coreModule from '../core_module';\nimport * as rangeUtil from 'app/core/utils/rangeutil';\n\nfunction ngModelOnBlur() {\n return {\n restrict: 'A',\n priority: 1,\n require: 'ngModel',\n link: (scope, elm, attr, ngModelCtrl) => {\n if (attr.type === 'radio' || attr.type === 'checkbox') {\n return;\n }\n\n elm.off('input keydown change');\n elm.bind('blur', () => {\n scope.$apply(() => {\n ngModelCtrl.$setViewValue(elm.val());\n });\n });\n },\n };\n}\n\nfunction emptyToNull() {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: (scope, elm, attrs, ctrl) => {\n ctrl.$parsers.push(viewValue => {\n if (viewValue === '') {\n return null;\n }\n return viewValue;\n });\n },\n };\n}\n\nfunction validTimeSpan() {\n return {\n require: 'ngModel',\n link: (scope, elm, attrs, ctrl) => {\n ctrl.$validators.integer = (modelValue, viewValue) => {\n if (ctrl.$isEmpty(modelValue)) {\n return true;\n }\n if (viewValue.indexOf('$') === 0 || viewValue.indexOf('+$') === 0) {\n return true; // allow template variable\n }\n const info = rangeUtil.describeTextRange(viewValue);\n return info.invalid !== true;\n };\n },\n };\n}\n\ncoreModule.directive('ngModelOnblur', ngModelOnBlur);\ncoreModule.directive('emptyToNull', emptyToNull);\ncoreModule.directive('validTimeSpan', validTimeSpan);\n","import angular from 'angular';\nimport $ from 'jquery';\nimport coreModule from '../core_module';\nimport tags from 'app/core/utils/tags';\nimport 'vendor/tagsinput/bootstrap-tagsinput.js';\n\nfunction setColor(name, element) {\n const { color, borderColor } = tags.getTagColorsFromName(name);\n element.css('background-color', color);\n element.css('border-color', borderColor);\n}\n\nfunction tagColorFromName() {\n return {\n scope: { tagColorFromName: '=' },\n link: (scope, element) => {\n setColor(scope.tagColorFromName, element);\n },\n };\n}\n\nfunction bootstrapTagsinput() {\n function getItemProperty(scope, property) {\n if (!property) {\n return undefined;\n }\n\n if (angular.isFunction(scope.$parent[property])) {\n return scope.$parent[property];\n }\n\n return item => {\n return item[property];\n };\n }\n\n return {\n restrict: 'EA',\n scope: {\n model: '=ngModel',\n onTagsUpdated: '&',\n },\n template: '',\n replace: false,\n link: function(scope, element, attrs) {\n if (!angular.isArray(scope.model)) {\n scope.model = [];\n }\n\n const select = $('select', element);\n\n if (attrs.placeholder) {\n select.attr('placeholder', attrs.placeholder);\n }\n\n select.tagsinput({\n typeahead: {\n source: angular.isFunction(scope.$parent[attrs.typeaheadSource])\n ? scope.$parent[attrs.typeaheadSource]\n : null,\n },\n widthClass: attrs.widthClass,\n itemValue: getItemProperty(scope, attrs.itemvalue),\n itemText: getItemProperty(scope, attrs.itemtext),\n tagClass: angular.isFunction(scope.$parent[attrs.tagclass])\n ? scope.$parent[attrs.tagclass]\n : () => {\n return attrs.tagclass;\n },\n });\n\n select.on('itemAdded', (event: any) => {\n if (scope.model.indexOf(event.item) === -1) {\n scope.model.push(event.item);\n if (scope.onTagsUpdated) {\n scope.onTagsUpdated();\n }\n }\n const tagElement = select\n .next()\n .children('span')\n .filter(() => {\n return $(this).text() === event.item;\n });\n setColor(event.item, tagElement);\n });\n\n select.on('itemRemoved', (event: any) => {\n const idx = scope.model.indexOf(event.item);\n if (idx !== -1) {\n scope.model.splice(idx, 1);\n if (scope.onTagsUpdated) {\n scope.onTagsUpdated();\n }\n }\n });\n\n scope.$watch(\n 'model',\n () => {\n if (!angular.isArray(scope.model)) {\n scope.model = [];\n }\n\n select.tagsinput('removeAll');\n\n for (let i = 0; i < scope.model.length; i++) {\n select.tagsinput('add', scope.model[i]);\n }\n },\n true\n );\n },\n };\n}\n\ncoreModule.directive('tagColorFromName', tagColorFromName);\ncoreModule.directive('bootstrapTagsinput', bootstrapTagsinput);\n","import angular from 'angular';\nimport _ from 'lodash';\nimport coreModule from '../core_module';\n\nexport class ValueSelectDropdownCtrl {\n dropdownVisible: any;\n highlightIndex: any;\n linkText: any;\n oldVariableText: any;\n options: any;\n search: any;\n selectedTags: any;\n selectedValues: any;\n tags: any;\n variable: any;\n\n hide: any;\n onUpdated: any;\n\n /** @ngInject */\n constructor(private $q) {}\n\n show() {\n this.oldVariableText = this.variable.current.text;\n this.highlightIndex = -1;\n\n this.options = this.variable.options;\n this.selectedValues = _.filter(this.options, { selected: true });\n\n this.tags = _.map(this.variable.tags, value => {\n let tag = { text: value, selected: false };\n _.each(this.variable.current.tags, tagObj => {\n if (tagObj.text === value) {\n tag = tagObj;\n }\n });\n return tag;\n });\n\n this.search = {\n query: '',\n options: this.options.slice(0, Math.min(this.options.length, 1000)),\n };\n\n this.dropdownVisible = true;\n }\n\n updateLinkText() {\n const current = this.variable.current;\n\n if (current.tags && current.tags.length) {\n // filer out values that are in selected tags\n const selectedAndNotInTag = _.filter(this.variable.options, option => {\n if (!option.selected) {\n return false;\n }\n for (let i = 0; i < current.tags.length; i++) {\n const tag = current.tags[i];\n if (_.indexOf(tag.values, option.value) !== -1) {\n return false;\n }\n }\n return true;\n });\n\n // convert values to text\n const currentTexts = _.map(selectedAndNotInTag, 'text');\n\n // join texts\n this.linkText = currentTexts.join(' + ');\n if (this.linkText.length > 0) {\n this.linkText += ' + ';\n }\n } else {\n this.linkText = this.variable.current.text;\n }\n }\n\n clearSelections() {\n _.each(this.options, option => {\n option.selected = false;\n });\n\n this.selectionsChanged(false);\n }\n\n selectTag(tag) {\n tag.selected = !tag.selected;\n let tagValuesPromise;\n if (!tag.values) {\n tagValuesPromise = this.variable.getValuesForTag(tag.text);\n } else {\n tagValuesPromise = this.$q.when(tag.values);\n }\n\n return tagValuesPromise.then(values => {\n tag.values = values;\n tag.valuesText = values.join(' + ');\n _.each(this.options, option => {\n if (_.indexOf(tag.values, option.value) !== -1) {\n option.selected = tag.selected;\n }\n });\n\n this.selectionsChanged(false);\n });\n }\n\n keyDown(evt) {\n if (evt.keyCode === 27) {\n this.hide();\n }\n if (evt.keyCode === 40) {\n this.moveHighlight(1);\n }\n if (evt.keyCode === 38) {\n this.moveHighlight(-1);\n }\n if (evt.keyCode === 13) {\n if (this.search.options.length === 0) {\n this.commitChanges();\n } else {\n this.selectValue(this.search.options[this.highlightIndex], {}, true, false);\n }\n }\n if (evt.keyCode === 32) {\n this.selectValue(this.search.options[this.highlightIndex], {}, false, false);\n }\n }\n\n moveHighlight(direction) {\n this.highlightIndex = (this.highlightIndex + direction) % this.search.options.length;\n }\n\n selectValue(option, event, commitChange?, excludeOthers?) {\n if (!option) {\n return;\n }\n\n option.selected = this.variable.multi ? !option.selected : true;\n\n commitChange = commitChange || false;\n excludeOthers = excludeOthers || false;\n\n const setAllExceptCurrentTo = newValue => {\n _.each(this.options, other => {\n if (option !== other) {\n other.selected = newValue;\n }\n });\n };\n\n // commit action (enter key), should not deselect it\n if (commitChange) {\n option.selected = true;\n }\n\n if (option.text === 'All' || excludeOthers) {\n setAllExceptCurrentTo(false);\n commitChange = true;\n } else if (!this.variable.multi) {\n setAllExceptCurrentTo(false);\n commitChange = true;\n } else if (event.ctrlKey || event.metaKey || event.shiftKey) {\n commitChange = true;\n setAllExceptCurrentTo(false);\n }\n\n this.selectionsChanged(commitChange);\n }\n\n selectionsChanged(commitChange) {\n this.selectedValues = _.filter(this.options, { selected: true });\n\n if (this.selectedValues.length > 1) {\n if (this.selectedValues[0].text === 'All') {\n this.selectedValues[0].selected = false;\n this.selectedValues = this.selectedValues.slice(1, this.selectedValues.length);\n }\n }\n\n // validate selected tags\n _.each(this.tags, tag => {\n if (tag.selected) {\n _.each(tag.values, value => {\n if (!_.find(this.selectedValues, { value: value })) {\n tag.selected = false;\n }\n });\n }\n });\n\n this.selectedTags = _.filter(this.tags, { selected: true });\n this.variable.current.value = _.map(this.selectedValues, 'value');\n this.variable.current.text = _.map(this.selectedValues, 'text').join(' + ');\n this.variable.current.tags = this.selectedTags;\n\n if (!this.variable.multi) {\n this.variable.current.value = this.selectedValues[0].value;\n }\n\n if (commitChange) {\n this.commitChanges();\n }\n }\n\n commitChanges() {\n // if we have a search query and no options use that\n if (this.search.options.length === 0 && this.search.query.length > 0) {\n this.variable.current = { text: this.search.query, value: this.search.query };\n } else if (this.selectedValues.length === 0) {\n // make sure one option is selected\n this.options[0].selected = true;\n this.selectionsChanged(false);\n }\n\n this.dropdownVisible = false;\n this.updateLinkText();\n\n if (this.variable.current.text !== this.oldVariableText) {\n this.onUpdated();\n }\n }\n\n queryChanged() {\n this.highlightIndex = -1;\n this.search.options = _.filter(this.options, option => {\n return option.text.toLowerCase().indexOf(this.search.query.toLowerCase()) !== -1;\n });\n\n this.search.options = this.search.options.slice(0, Math.min(this.search.options.length, 1000));\n }\n\n init() {\n this.selectedTags = this.variable.current.tags || [];\n this.updateLinkText();\n }\n}\n\n/** @ngInject */\nexport function valueSelectDropdown($compile, $window, $timeout, $rootScope) {\n return {\n scope: { dashboard: '=', variable: '=', onUpdated: '&' },\n templateUrl: 'public/app/partials/valueSelectDropdown.html',\n controller: 'ValueSelectDropdownCtrl',\n controllerAs: 'vm',\n bindToController: true,\n link: (scope, elem) => {\n const bodyEl = angular.element($window.document.body);\n const linkEl = elem.find('.variable-value-link');\n const inputEl = elem.find('input');\n\n function openDropdown() {\n inputEl.css('width', Math.max(linkEl.width(), 80) + 'px');\n\n inputEl.show();\n linkEl.hide();\n\n inputEl.focus();\n $timeout(\n () => {\n bodyEl.on('click', bodyOnClick);\n },\n 0,\n false\n );\n }\n\n function switchToLink() {\n inputEl.hide();\n linkEl.show();\n bodyEl.off('click', bodyOnClick);\n }\n\n function bodyOnClick(e) {\n if (elem.has(e.target).length === 0) {\n scope.$apply(() => {\n scope.vm.commitChanges();\n });\n }\n }\n\n scope.$watch('vm.dropdownVisible', newValue => {\n if (newValue) {\n openDropdown();\n } else {\n switchToLink();\n }\n });\n\n scope.vm.dashboard.on(\n 'template-variable-value-updated',\n () => {\n scope.vm.updateLinkText();\n },\n scope\n );\n\n scope.vm.init();\n },\n };\n}\n\ncoreModule.controller('ValueSelectDropdownCtrl', ValueSelectDropdownCtrl);\ncoreModule.directive('valueSelectDropdown', valueSelectDropdown);\n","import $ from 'jquery';\nimport coreModule from '../core_module';\n\nfunction getBlockNodes(nodes) {\n let node = nodes[0];\n const endNode = nodes[nodes.length - 1];\n let blockNodes;\n node = node.nextSibling;\n\n for (let i = 1; node !== endNode && node; i++) {\n if (blockNodes || nodes[i] !== node) {\n if (!blockNodes) {\n blockNodes = $([].slice.call(nodes, 0, i));\n }\n blockNodes.push(node);\n }\n node = node.nextSibling;\n }\n\n return blockNodes || nodes;\n}\n\n/** @ngInject */\nfunction rebuildOnChange($animate) {\n return {\n multiElement: true,\n terminal: true,\n transclude: true,\n priority: 600,\n restrict: 'E',\n link: (scope, elem, attrs, ctrl, transclude) => {\n let block, childScope, previousElements;\n\n function cleanUp() {\n if (previousElements) {\n previousElements.remove();\n previousElements = null;\n }\n if (childScope) {\n childScope.$destroy();\n childScope = null;\n }\n if (block) {\n previousElements = getBlockNodes(block.clone);\n $animate.leave(previousElements).then(() => {\n previousElements = null;\n });\n block = null;\n }\n }\n\n scope.$watch(attrs.property, function rebuildOnChangeAction(value, oldValue) {\n if (childScope && value !== oldValue) {\n cleanUp();\n }\n\n if (!childScope && (value || attrs.showNull)) {\n transclude((clone, newScope) => {\n childScope = newScope;\n clone[clone.length++] = document.createComment(' end rebuild on change ');\n block = { clone: clone };\n $animate.enter(clone, elem.parent(), elem);\n });\n } else {\n cleanUp();\n }\n });\n },\n };\n}\n\ncoreModule.directive('rebuildOnChange', rebuildOnChange);\n","import coreModule from '../core_module';\n\ncoreModule.directive('giveFocus', () => {\n return (scope, element, attrs) => {\n element.click(e => {\n e.stopPropagation();\n });\n\n scope.$watch(\n attrs.giveFocus,\n newValue => {\n if (!newValue) {\n return;\n }\n setTimeout(() => {\n element.focus();\n const domEl: any = element[0];\n if (domEl.setSelectionRange) {\n const pos = element.val().length * 2;\n domEl.setSelectionRange(pos, pos);\n }\n }, 200);\n },\n true\n );\n };\n});\n\nexport default {};\n","import angular from 'angular';\nimport coreModule from '../core_module';\n\nexport class DeltaCtrl {\n observer: any;\n\n /** @ngInject */\n constructor(private $rootScope) {\n const waitForCompile = mutations => {\n if (mutations.length === 1) {\n this.$rootScope.appEvent('json-diff-ready');\n }\n };\n\n this.observer = new MutationObserver(waitForCompile);\n\n const observerConfig = {\n attributes: true,\n attributeFilter: ['class'],\n characterData: false,\n childList: true,\n subtree: false,\n };\n\n this.observer.observe(angular.element('.delta-html')[0], observerConfig);\n }\n\n $onDestroy() {\n this.observer.disconnect();\n }\n}\n\nexport function delta() {\n return {\n controller: DeltaCtrl,\n replace: false,\n restrict: 'A',\n };\n}\ncoreModule.directive('diffDelta', delta);\n\n// Link to JSON line number\nexport class LinkJSONCtrl {\n /** @ngInject */\n constructor(private $scope, private $rootScope, private $anchorScroll) {}\n\n goToLine(line: number) {\n let unbind;\n\n const scroll = () => {\n this.$anchorScroll(`l${line}`);\n unbind();\n };\n\n this.$scope.switchView().then(() => {\n unbind = this.$rootScope.$on('json-diff-ready', scroll.bind(this));\n });\n }\n}\n\nexport function linkJson() {\n return {\n controller: LinkJSONCtrl,\n controllerAs: 'ctrl',\n replace: true,\n restrict: 'E',\n scope: {\n line: '@lineDisplay',\n link: '@lineLink',\n switchView: '&',\n },\n template: `Line {{ line }}`,\n };\n}\ncoreModule.directive('diffLinkJson', linkJson);\n","import $ from 'jquery';\nimport angular from 'angular';\nimport _ from 'lodash';\n\nconst $win = $(window);\n\n$.fn.place_tt = (() => {\n const defaults = {\n offset: 5,\n };\n\n return function(this: any, x, y, opts) {\n opts = $.extend(true, {}, defaults, opts);\n\n return this.each(() => {\n const $tooltip = $(this);\n let width, height;\n\n $tooltip.addClass('grafana-tooltip');\n\n $('#tooltip').remove();\n $tooltip.appendTo(document.body);\n\n if (opts.compile) {\n angular\n .element(document)\n .injector()\n .invoke([\n '$compile',\n '$rootScope',\n ($compile, $rootScope) => {\n const tmpScope = $rootScope.$new(true);\n _.extend(tmpScope, opts.scopeData);\n\n $compile($tooltip)(tmpScope);\n tmpScope.$digest();\n tmpScope.$destroy();\n },\n ]);\n }\n\n width = $tooltip.outerWidth(true);\n height = $tooltip.outerHeight(true);\n\n $tooltip.css('left', x + opts.offset + width > $win.width() ? x - opts.offset - width : x + opts.offset);\n $tooltip.css('top', y + opts.offset + height > $win.height() ? y - opts.offset - height : y + opts.offset);\n });\n };\n})();\n","// Based on work https://github.com/mohsen1/json-formatter-js\n// License MIT, Copyright (c) 2015 Mohsen Azimi\n\n/*\n * Escapes `\"` characters from string\n */\nfunction escapeString(str: string): string {\n return str.replace('\"', '\"');\n}\n\n/*\n * Determines if a value is an object\n */\nexport function isObject(value: any): boolean {\n const type = typeof value;\n return !!value && type === 'object';\n}\n\n/*\n * Gets constructor name of an object.\n * From http://stackoverflow.com/a/332429\n *\n */\nexport function getObjectName(object: object): string {\n if (object === undefined) {\n return '';\n }\n if (object === null) {\n return 'Object';\n }\n if (typeof object === 'object' && !object.constructor) {\n return 'Object';\n }\n\n const funcNameRegex = /function ([^(]*)/;\n const results = funcNameRegex.exec(object.constructor.toString());\n if (results && results.length > 1) {\n return results[1];\n } else {\n return '';\n }\n}\n\n/*\n * Gets type of an object. Returns \"null\" for null objects\n */\nexport function getType(object: object): string {\n if (object === null) {\n return 'null';\n }\n return typeof object;\n}\n\n/*\n * Generates inline preview for a JavaScript object based on a value\n */\nexport function getValuePreview(object: object, value: string): string {\n const type = getType(object);\n\n if (type === 'null' || type === 'undefined') {\n return type;\n }\n\n if (type === 'string') {\n value = '\"' + escapeString(value) + '\"';\n }\n if (type === 'function') {\n // Remove content of the function\n return (\n object\n .toString()\n .replace(/[\\r\\n]/g, '')\n .replace(/\\{.*\\}/, '') + '{…}'\n );\n }\n return value;\n}\n\n/*\n * Generates inline preview for a JavaScript object\n */\nlet value = '';\nexport function getPreview(obj: object): string {\n if (isObject(obj)) {\n value = getObjectName(obj);\n if (Array.isArray(obj)) {\n value += '[' + obj.length + ']';\n }\n } else {\n value = getValuePreview(obj, obj.toString());\n }\n return value;\n}\n\n/*\n * Generates a prefixed CSS class name\n */\nexport function cssClass(className: string): string {\n return `json-formatter-${className}`;\n}\n\n/*\n * Creates a new DOM element with given type and class\n * TODO: move me to helpers\n */\nexport function createElement(type: string, className?: string, content?: Element | string): Element {\n const el = document.createElement(type);\n if (className) {\n el.classList.add(cssClass(className));\n }\n if (content !== undefined) {\n if (content instanceof Node) {\n el.appendChild(content);\n } else {\n el.appendChild(document.createTextNode(String(content)));\n }\n }\n return el;\n}\n","// Based on work https://github.com/mohsen1/json-formatter-js\n// License MIT, Copyright (c) 2015 Mohsen Azimi\n\nimport { isObject, getObjectName, getType, getValuePreview, cssClass, createElement } from './helpers';\n\nimport _ from 'lodash';\n\nconst DATE_STRING_REGEX = /(^\\d{1,4}[\\.|\\\\/|-]\\d{1,2}[\\.|\\\\/|-]\\d{1,4})(\\s*(?:0?[1-9]:[0-5]|1(?=[012])\\d:[0-5])\\d\\s*[ap]m)?$/;\nconst PARTIAL_DATE_REGEX = /\\d{2}:\\d{2}:\\d{2} GMT-\\d{4}/;\nconst JSON_DATE_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n// When toggleing, don't animated removal or addition of more than a few items\nconst MAX_ANIMATED_TOGGLE_ITEMS = 10;\n\nconst requestAnimationFrame =\n window.requestAnimationFrame ||\n ((cb: () => void) => {\n cb();\n return 0;\n });\n\nexport interface JsonExplorerConfig {\n animateOpen?: boolean;\n animateClose?: boolean;\n theme?: string;\n}\n\nconst _defaultConfig: JsonExplorerConfig = {\n animateOpen: true,\n animateClose: true,\n theme: null,\n};\n\n/**\n * @class JsonExplorer\n *\n * JsonExplorer allows you to render JSON objects in HTML with a\n * **collapsible** navigation.\n */\nexport class JsonExplorer {\n // Hold the open state after the toggler is used\n private _isOpen: boolean = null;\n\n // A reference to the element that we render to\n private element: Element;\n\n private skipChildren = false;\n\n /**\n * @param {object} json The JSON object you want to render. It has to be an\n * object or array. Do NOT pass raw JSON string.\n *\n * @param {number} [open=1] his number indicates up to how many levels the\n * rendered tree should expand. Set it to `0` to make the whole tree collapsed\n * or set it to `Infinity` to expand the tree deeply\n *\n * @param {object} [config=defaultConfig] -\n * defaultConfig = {\n * hoverPreviewEnabled: false,\n * hoverPreviewArrayCount: 100,\n * hoverPreviewFieldCount: 5\n * }\n *\n * Available configurations:\n * #####Hover Preview\n * * `hoverPreviewEnabled`: enable preview on hover\n * * `hoverPreviewArrayCount`: number of array items to show in preview Any\n * array larger than this number will be shown as `Array[XXX]` where `XXX`\n * is length of the array.\n * * `hoverPreviewFieldCount`: number of object properties to show for object\n * preview. Any object with more properties that thin number will be\n * truncated.\n *\n * @param {string} [key=undefined] The key that this object in it's parent\n * context\n */\n constructor(\n public json: any,\n private open = 1,\n private config: JsonExplorerConfig = _defaultConfig,\n private key?: string\n ) {}\n\n /*\n * is formatter open?\n */\n private get isOpen(): boolean {\n if (this._isOpen !== null) {\n return this._isOpen;\n } else {\n return this.open > 0;\n }\n }\n\n /*\n * set open state (from toggler)\n */\n private set isOpen(value: boolean) {\n this._isOpen = value;\n }\n\n /*\n * is this a date string?\n */\n private get isDate(): boolean {\n return (\n this.type === 'string' &&\n (DATE_STRING_REGEX.test(this.json) || JSON_DATE_REGEX.test(this.json) || PARTIAL_DATE_REGEX.test(this.json))\n );\n }\n\n /*\n * is this a URL string?\n */\n private get isUrl(): boolean {\n return this.type === 'string' && this.json.indexOf('http') === 0;\n }\n\n /*\n * is this an array?\n */\n private get isArray(): boolean {\n return Array.isArray(this.json);\n }\n\n /*\n * is this an object?\n * Note: In this context arrays are object as well\n */\n private get isObject(): boolean {\n return isObject(this.json);\n }\n\n /*\n * is this an empty object with no properties?\n */\n private get isEmptyObject(): boolean {\n return !this.keys.length && !this.isArray;\n }\n\n /*\n * is this an empty object or array?\n */\n private get isEmpty(): boolean {\n return this.isEmptyObject || (this.keys && !this.keys.length && this.isArray);\n }\n\n /*\n * did we receive a key argument?\n * This means that the formatter was called as a sub formatter of a parent formatter\n */\n private get hasKey(): boolean {\n return typeof this.key !== 'undefined';\n }\n\n /*\n * if this is an object, get constructor function name\n */\n private get constructorName(): string {\n return getObjectName(this.json);\n }\n\n /*\n * get type of this value\n * Possible values: all JavaScript primitive types plus \"array\" and \"null\"\n */\n private get type(): string {\n return getType(this.json);\n }\n\n /*\n * get object keys\n * If there is an empty key we pad it wit quotes to make it visible\n */\n private get keys(): string[] {\n if (this.isObject) {\n return Object.keys(this.json).map(key => (key ? key : '\"\"'));\n } else {\n return [];\n }\n }\n\n /**\n * Toggles `isOpen` state\n *\n */\n toggleOpen() {\n this.isOpen = !this.isOpen;\n\n if (this.element) {\n if (this.isOpen) {\n this.appendChildren(this.config.animateOpen);\n } else {\n this.removeChildren(this.config.animateClose);\n }\n this.element.classList.toggle(cssClass('open'));\n }\n }\n\n /**\n * Open all children up to a certain depth.\n * Allows actions such as expand all/collapse all\n *\n */\n openAtDepth(depth = 1) {\n if (depth < 0) {\n return;\n }\n\n this.open = depth;\n this.isOpen = depth !== 0;\n\n if (this.element) {\n this.removeChildren(false);\n\n if (depth === 0) {\n this.element.classList.remove(cssClass('open'));\n } else {\n this.appendChildren(this.config.animateOpen);\n this.element.classList.add(cssClass('open'));\n }\n }\n }\n\n isNumberArray() {\n return this.json.length > 0 && this.json.length < 4 && (_.isNumber(this.json[0]) || _.isNumber(this.json[1]));\n }\n\n renderArray() {\n const arrayWrapperSpan = createElement('span');\n arrayWrapperSpan.appendChild(createElement('span', 'bracket', '['));\n\n // some pretty handling of number arrays\n if (this.isNumberArray()) {\n this.json.forEach((val: any, index: number) => {\n if (index > 0) {\n arrayWrapperSpan.appendChild(createElement('span', 'array-comma', ','));\n }\n arrayWrapperSpan.appendChild(createElement('span', 'number', val));\n });\n this.skipChildren = true;\n } else {\n arrayWrapperSpan.appendChild(createElement('span', 'number', this.json.length));\n }\n\n arrayWrapperSpan.appendChild(createElement('span', 'bracket', ']'));\n return arrayWrapperSpan;\n }\n\n /**\n * Renders an HTML element and installs event listeners\n *\n * @returns {HTMLDivElement}\n */\n render(skipRoot = false): HTMLDivElement {\n // construct the root element and assign it to this.element\n this.element = createElement('div', 'row');\n\n // construct the toggler link\n const togglerLink = createElement('a', 'toggler-link');\n const togglerIcon = createElement('span', 'toggler');\n\n // if this is an object we need a wrapper span (toggler)\n if (this.isObject) {\n togglerLink.appendChild(togglerIcon);\n }\n\n // if this is child of a parent formatter we need to append the key\n if (this.hasKey) {\n togglerLink.appendChild(createElement('span', 'key', `${this.key}:`));\n }\n\n // Value for objects and arrays\n if (this.isObject) {\n // construct the value holder element\n const value = createElement('span', 'value');\n\n // we need a wrapper span for objects\n const objectWrapperSpan = createElement('span');\n\n // get constructor name and append it to wrapper span\n const constructorName = createElement('span', 'constructor-name', this.constructorName);\n objectWrapperSpan.appendChild(constructorName);\n\n // if it's an array append the array specific elements like brackets and length\n if (this.isArray) {\n const arrayWrapperSpan = this.renderArray();\n objectWrapperSpan.appendChild(arrayWrapperSpan);\n }\n\n // append object wrapper span to toggler link\n value.appendChild(objectWrapperSpan);\n togglerLink.appendChild(value);\n // Primitive values\n } else {\n // make a value holder element\n const value = this.isUrl ? createElement('a') : createElement('span');\n\n // add type and other type related CSS classes\n value.classList.add(cssClass(this.type));\n if (this.isDate) {\n value.classList.add(cssClass('date'));\n }\n if (this.isUrl) {\n value.classList.add(cssClass('url'));\n value.setAttribute('href', this.json);\n }\n\n // Append value content to value element\n const valuePreview = getValuePreview(this.json, this.json);\n value.appendChild(document.createTextNode(valuePreview));\n\n // append the value element to toggler link\n togglerLink.appendChild(value);\n }\n\n // construct a children element\n const children = createElement('div', 'children');\n\n // set CSS classes for children\n if (this.isObject) {\n children.classList.add(cssClass('object'));\n }\n if (this.isArray) {\n children.classList.add(cssClass('array'));\n }\n if (this.isEmpty) {\n children.classList.add(cssClass('empty'));\n }\n\n // set CSS classes for root element\n if (this.config && this.config.theme) {\n this.element.classList.add(cssClass(this.config.theme));\n }\n if (this.isOpen) {\n this.element.classList.add(cssClass('open'));\n }\n\n // append toggler and children elements to root element\n if (!skipRoot) {\n this.element.appendChild(togglerLink);\n }\n\n if (!this.skipChildren) {\n this.element.appendChild(children);\n } else {\n // remove togglerIcon\n togglerLink.removeChild(togglerIcon);\n }\n\n // if formatter is set to be open call appendChildren\n if (this.isObject && this.isOpen) {\n this.appendChildren();\n }\n\n // add event listener for toggling\n if (this.isObject) {\n togglerLink.addEventListener('click', this.toggleOpen.bind(this));\n }\n\n return this.element as HTMLDivElement;\n }\n\n /**\n * Appends all the children to children element\n * Animated option is used when user triggers this via a click\n */\n appendChildren(animated = false) {\n const children = this.element.querySelector(`div.${cssClass('children')}`);\n\n if (!children || this.isEmpty) {\n return;\n }\n\n if (animated) {\n let index = 0;\n const addAChild = () => {\n const key = this.keys[index];\n const formatter = new JsonExplorer(this.json[key], this.open - 1, this.config, key);\n children.appendChild(formatter.render());\n\n index += 1;\n\n if (index < this.keys.length) {\n if (index > MAX_ANIMATED_TOGGLE_ITEMS) {\n addAChild();\n } else {\n requestAnimationFrame(addAChild);\n }\n }\n };\n\n requestAnimationFrame(addAChild);\n } else {\n this.keys.forEach(key => {\n const formatter = new JsonExplorer(this.json[key], this.open - 1, this.config, key);\n children.appendChild(formatter.render());\n });\n }\n }\n\n /**\n * Removes all the children from children element\n * Animated option is used when user triggers this via a click\n */\n removeChildren(animated = false) {\n const childrenElement = this.element.querySelector(`div.${cssClass('children')}`) as HTMLDivElement;\n\n if (animated) {\n let childrenRemoved = 0;\n const removeAChild = () => {\n if (childrenElement && childrenElement.children.length) {\n childrenElement.removeChild(childrenElement.children[0]);\n childrenRemoved += 1;\n if (childrenRemoved > MAX_ANIMATED_TOGGLE_ITEMS) {\n removeAChild();\n } else {\n requestAnimationFrame(removeAChild);\n }\n }\n };\n requestAnimationFrame(removeAChild);\n } else {\n if (childrenElement) {\n childrenElement.innerHTML = '';\n }\n }\n }\n}\n","import coreModule from 'app/core/core_module';\nimport { JsonExplorer } from '../json_explorer/json_explorer';\n\ncoreModule.directive('jsonTree', [\n function jsonTreeDirective() {\n return {\n restrict: 'E',\n scope: {\n object: '=',\n startExpanded: '@',\n rootName: '@',\n },\n link: (scope: any, elem) => {\n const jsonExp = new JsonExplorer(scope.object, 3, {\n animateOpen: true,\n });\n\n const html = jsonExp.render(true);\n elem.replaceAll(html);\n },\n };\n },\n]);\n","/**\n * codeEditor directive based on Ace code editor\n * https://github.com/ajaxorg/ace\n *\n * Basic usage:\n * \n * \n *\n * Params:\n * content: Editor content.\n * onChange: Function called on content change (invoked on editor blur, ctrl+enter, not on every change).\n * getCompleter: Function returned external completer. Completer is an object implemented getCompletions() method,\n * see Prometheus Data Source implementation for details.\n *\n * Some Ace editor options available via data-* attributes:\n * data-mode - Language mode (text, sql, javascript, etc.). Default is 'text'.\n * data-theme - Editor theme (eg 'solarized_dark').\n * data-max-lines - Max editor height in lines. Editor grows automatically from 1 to maxLines.\n * data-show-gutter - Show gutter (contains line numbers and additional info).\n * data-tab-size - Tab size, default is 2.\n * data-behaviours-enabled - Specifies whether to use behaviors or not. \"Behaviors\" in this case is the auto-pairing of\n * special characters, like quotation marks, parenthesis, or brackets.\n * data-snippets-enabled - Specifies whether to use snippets or not. \"Snippets\" are small pieces of code that can be\n * inserted via the completion box.\n *\n * Keybindings:\n * Ctrl-Enter (Command-Enter): run onChange() function\n */\n\nimport coreModule from 'app/core/core_module';\nimport config from 'app/core/config';\nimport ace from 'brace';\nimport './theme-grafana-dark';\nimport 'brace/ext/language_tools';\nimport 'brace/theme/textmate';\nimport 'brace/mode/text';\nimport 'brace/snippets/text';\nimport 'brace/mode/sql';\nimport 'brace/snippets/sql';\nimport 'brace/mode/sqlserver';\nimport 'brace/snippets/sqlserver';\nimport 'brace/mode/markdown';\nimport 'brace/snippets/markdown';\nimport 'brace/mode/json';\nimport 'brace/snippets/json';\n\nconst DEFAULT_THEME_DARK = 'ace/theme/grafana-dark';\nconst DEFAULT_THEME_LIGHT = 'ace/theme/textmate';\nconst DEFAULT_MODE = 'text';\nconst DEFAULT_MAX_LINES = 10;\nconst DEFAULT_TAB_SIZE = 2;\nconst DEFAULT_BEHAVIORS = true;\nconst DEFAULT_SNIPPETS = true;\n\nconst editorTemplate = `
    `;\n\nfunction link(scope, elem, attrs) {\n // Options\n const langMode = attrs.mode || DEFAULT_MODE;\n const maxLines = attrs.maxLines || DEFAULT_MAX_LINES;\n const showGutter = attrs.showGutter !== undefined;\n const tabSize = attrs.tabSize || DEFAULT_TAB_SIZE;\n const behavioursEnabled = attrs.behavioursEnabled ? attrs.behavioursEnabled === 'true' : DEFAULT_BEHAVIORS;\n const snippetsEnabled = attrs.snippetsEnabled ? attrs.snippetsEnabled === 'true' : DEFAULT_SNIPPETS;\n\n // Initialize editor\n const aceElem = elem.get(0);\n const codeEditor = ace.edit(aceElem);\n const editorSession = codeEditor.getSession();\n\n const editorOptions = {\n maxLines: maxLines,\n showGutter: showGutter,\n tabSize: tabSize,\n behavioursEnabled: behavioursEnabled,\n highlightActiveLine: false,\n showPrintMargin: false,\n autoScrollEditorIntoView: true, // this is needed if editor is inside scrollable page\n };\n\n // Set options\n codeEditor.setOptions(editorOptions);\n // disable depreacation warning\n codeEditor.$blockScrolling = Infinity;\n // Padding hacks\n (codeEditor.renderer as any).setScrollMargin(10, 10);\n codeEditor.renderer.setPadding(10);\n\n setThemeMode();\n setLangMode(langMode);\n setEditorContent(scope.content);\n\n // Add classes\n elem.addClass('gf-code-editor');\n const textarea = elem.find('textarea');\n textarea.addClass('gf-form-input');\n\n if (scope.codeEditorFocus) {\n setTimeout(() => {\n textarea.focus();\n const domEl = textarea[0];\n if (domEl.setSelectionRange) {\n const pos = textarea.val().length * 2;\n domEl.setSelectionRange(pos, pos);\n }\n }, 100);\n }\n\n // Event handlers\n editorSession.on('change', e => {\n scope.$apply(() => {\n const newValue = codeEditor.getValue();\n scope.content = newValue;\n });\n });\n\n // Sync with outer scope - update editor content if model has been changed from outside of directive.\n scope.$watch('content', (newValue, oldValue) => {\n const editorValue = codeEditor.getValue();\n if (newValue !== editorValue && newValue !== oldValue) {\n scope.$$postDigest(() => {\n setEditorContent(newValue);\n });\n }\n });\n\n codeEditor.on('blur', () => {\n scope.onChange();\n });\n\n scope.$on('$destroy', () => {\n codeEditor.destroy();\n });\n\n // Keybindings\n codeEditor.commands.addCommand({\n name: 'executeQuery',\n bindKey: { win: 'Ctrl-Enter', mac: 'Command-Enter' },\n exec: () => {\n scope.onChange();\n },\n });\n\n function setLangMode(lang) {\n ace.acequire('ace/ext/language_tools');\n codeEditor.setOptions({\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: snippetsEnabled,\n });\n\n if (scope.getCompleter()) {\n // make copy of array as ace seems to share completers array between instances\n const anyEditor = codeEditor as any;\n anyEditor.completers = anyEditor.completers.slice();\n anyEditor.completers.push(scope.getCompleter());\n }\n\n const aceModeName = `ace/mode/${lang}`;\n editorSession.setMode(aceModeName);\n }\n\n function setThemeMode() {\n let theme = DEFAULT_THEME_DARK;\n if (config.bootData.user.lightTheme) {\n theme = DEFAULT_THEME_LIGHT;\n }\n\n codeEditor.setTheme(theme);\n }\n\n function setEditorContent(value) {\n codeEditor.setValue(value);\n codeEditor.clearSelection();\n }\n}\n\nexport function codeEditorDirective() {\n return {\n restrict: 'E',\n template: editorTemplate,\n scope: {\n content: '=',\n datasource: '=',\n codeEditorFocus: '<',\n onChange: '&',\n getCompleter: '&',\n },\n link: link,\n };\n}\n\ncoreModule.directive('codeEditor', codeEditorDirective);\n","/**\n * Wrapper for the new ngReact directive for backward compatibility.\n * Allows remaining untouched in outdated plugins.\n * Technically, it's just a wrapper for react component with two-way data binding support.\n */\nimport coreModule from '../../core_module';\n\n/** @ngInject */\nexport function spectrumPicker() {\n return {\n restrict: 'E',\n require: 'ngModel',\n scope: true,\n replace: true,\n template: '',\n link: (scope, element, attrs, ngModel) => {\n scope.ngModel = ngModel;\n scope.onColorChange = color => {\n ngModel.$setViewValue(color);\n };\n },\n };\n}\ncoreModule.directive('spectrumPicker', spectrumPicker);\n","// @ts-ignore\nimport _ from 'lodash';\n// @ts-ignore\nimport { IQService } from 'angular';\n\nimport coreModule from 'app/core/core_module';\nimport impressionSrv from 'app/core/services/impression_srv';\nimport store from 'app/core/store';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { BackendSrv } from './backend_srv';\nimport { Section } from '../components/manage_dashboards/manage_dashboards';\nimport { DashboardSearchHit } from 'app/types/search';\n\ninterface Sections {\n [key: string]: Partial
    ;\n}\n\nexport class SearchSrv {\n recentIsOpen: boolean;\n starredIsOpen: boolean;\n\n /** @ngInject */\n constructor(private backendSrv: BackendSrv, private $q: IQService) {\n this.recentIsOpen = store.getBool('search.sections.recent', true);\n this.starredIsOpen = store.getBool('search.sections.starred', true);\n }\n\n private getRecentDashboards(sections: Sections) {\n return this.queryForRecentDashboards().then((result: any[]) => {\n if (result.length > 0) {\n sections['recent'] = {\n title: 'Recent',\n icon: 'fa fa-clock-o',\n score: -1,\n removable: true,\n expanded: this.recentIsOpen,\n toggle: this.toggleRecent.bind(this),\n items: result,\n };\n }\n });\n }\n\n private queryForRecentDashboards(): Promise {\n const dashIds: number[] = _.take(impressionSrv.getDashboardOpened(), 30);\n if (dashIds.length === 0) {\n return Promise.resolve([]);\n }\n\n return this.backendSrv.search({ dashboardIds: dashIds }).then(result => {\n return dashIds\n .map(orderId => {\n return _.find(result, { id: orderId });\n })\n .filter(hit => hit && !hit.isStarred);\n });\n }\n\n private toggleRecent(section: Section) {\n this.recentIsOpen = section.expanded = !section.expanded;\n store.set('search.sections.recent', this.recentIsOpen);\n\n if (!section.expanded || section.items.length) {\n return Promise.resolve(section);\n }\n\n return this.queryForRecentDashboards().then(result => {\n section.items = result;\n return Promise.resolve(section);\n });\n }\n\n private toggleStarred(section: Section) {\n this.starredIsOpen = section.expanded = !section.expanded;\n store.set('search.sections.starred', this.starredIsOpen);\n return Promise.resolve(section);\n }\n\n private getStarred(sections: Sections) {\n if (!contextSrv.isSignedIn) {\n return Promise.resolve();\n }\n\n return this.backendSrv.search({ starred: true, limit: 30 }).then(result => {\n if (result.length > 0) {\n sections['starred'] = {\n title: 'Starred',\n icon: 'fa fa-star-o',\n score: -2,\n expanded: this.starredIsOpen,\n toggle: this.toggleStarred.bind(this),\n items: result,\n };\n }\n });\n }\n\n search(options: any) {\n const sections: any = {};\n const promises = [];\n const query = _.clone(options);\n const hasFilters =\n options.query ||\n (options.tag && options.tag.length > 0) ||\n options.starred ||\n (options.folderIds && options.folderIds.length > 0);\n\n if (!options.skipRecent && !hasFilters) {\n promises.push(this.getRecentDashboards(sections));\n }\n\n if (!options.skipStarred && !hasFilters) {\n promises.push(this.getStarred(sections));\n }\n\n query.folderIds = query.folderIds || [];\n if (!hasFilters) {\n query.folderIds = [0];\n }\n\n promises.push(\n this.backendSrv.search(query).then(results => {\n return this.handleSearchResult(sections, results);\n })\n );\n\n return this.$q.all(promises).then(() => {\n return _.sortBy(_.values(sections), 'score');\n });\n }\n\n private handleSearchResult(sections: Sections, results: DashboardSearchHit[]): any {\n if (results.length === 0) {\n return sections;\n }\n\n // create folder index\n for (const hit of results) {\n if (hit.type === 'dash-folder') {\n sections[hit.id] = {\n id: hit.id,\n uid: hit.uid,\n title: hit.title,\n expanded: false,\n items: [],\n toggle: this.toggleFolder.bind(this),\n url: hit.url,\n icon: 'fa fa-folder',\n score: _.keys(sections).length,\n };\n }\n }\n\n for (const hit of results) {\n if (hit.type === 'dash-folder') {\n continue;\n }\n\n let section = sections[hit.folderId || 0];\n if (!section) {\n if (hit.folderId) {\n section = {\n id: hit.folderId,\n uid: hit.folderUid,\n title: hit.folderTitle,\n url: hit.folderUrl,\n items: [],\n icon: 'fa fa-folder-open',\n toggle: this.toggleFolder.bind(this),\n score: _.keys(sections).length,\n };\n } else {\n section = {\n id: 0,\n title: 'General',\n items: [],\n icon: 'fa fa-folder-open',\n toggle: this.toggleFolder.bind(this),\n score: _.keys(sections).length,\n };\n }\n // add section\n sections[hit.folderId || 0] = section;\n }\n\n section.expanded = true;\n section.items.push(hit);\n }\n }\n\n private toggleFolder(section: Section) {\n section.expanded = !section.expanded;\n section.icon = section.expanded ? 'fa fa-folder-open' : 'fa fa-folder';\n\n if (section.items.length) {\n return Promise.resolve(section);\n }\n\n const query = {\n folderIds: [section.id],\n };\n\n return this.backendSrv.search(query).then(results => {\n section.items = results;\n return Promise.resolve(section);\n });\n }\n\n getDashboardTags() {\n return this.backendSrv.get('/api/dashboards/tags');\n }\n}\n\ncoreModule.service('searchSrv', SearchSrv);\n","//\n// This is using ng-react with this PR applied https://github.com/ngReact/ngReact/pull/199\n//\n\n// # ngReact\n// ### Use React Components inside of your Angular applications\n//\n// Composed of\n// - reactComponent (generic directive for delegating off to React Components)\n// - reactDirective (factory for creating specific directives that correspond to reactComponent directives)\n\nimport { kebabCase } from 'lodash';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport angular from 'angular';\n\n// get a react component from name (components can be an angular injectable e.g. value, factory or\n// available on window\nfunction getReactComponent(name, $injector) {\n // if name is a function assume it is component and return it\n if (angular.isFunction(name)) {\n return name;\n }\n\n // a React component name must be specified\n if (!name) {\n throw new Error('ReactComponent name attribute must be specified');\n }\n\n // ensure the specified React component is accessible, and fail fast if it's not\n let reactComponent;\n try {\n reactComponent = $injector.get(name);\n } catch (e) {}\n\n if (!reactComponent) {\n try {\n reactComponent = name.split('.').reduce((current, namePart) => {\n return current[namePart];\n }, window);\n } catch (e) {}\n }\n\n if (!reactComponent) {\n throw Error('Cannot find react component ' + name);\n }\n\n return reactComponent;\n}\n\n// wraps a function with scope.$apply, if already applied just return\nfunction applied(fn, scope) {\n if (fn.wrappedInApply) {\n return fn;\n }\n //tslint:disable-next-line:only-arrow-functions\n const wrapped: any = function() {\n const args = arguments;\n const phase = scope.$root.$$phase;\n if (phase === '$apply' || phase === '$digest') {\n return fn.apply(null, args);\n } else {\n return scope.$apply(() => {\n return fn.apply(null, args);\n });\n }\n };\n wrapped.wrappedInApply = true;\n return wrapped;\n}\n\n/**\n * wraps functions on obj in scope.$apply\n *\n * keeps backwards compatibility, as if propsConfig is not passed, it will\n * work as before, wrapping all functions and won't wrap only when specified.\n *\n * @version 0.4.1\n * @param obj react component props\n * @param scope current scope\n * @param propsConfig configuration object for all properties\n * @returns {Object} props with the functions wrapped in scope.$apply\n */\nfunction applyFunctions(obj, scope, propsConfig?) {\n return Object.keys(obj || {}).reduce((prev, key) => {\n const value = obj[key];\n const config = (propsConfig || {})[key] || {};\n /**\n * wrap functions in a function that ensures they are scope.$applied\n * ensures that when function is called from a React component\n * the Angular digest cycle is run\n */\n prev[key] = angular.isFunction(value) && config.wrapApply !== false ? applied(value, scope) : value;\n\n return prev;\n }, {});\n}\n\n/**\n *\n * @param watchDepth (value of HTML watch-depth attribute)\n * @param scope (angular scope)\n *\n * Uses the watchDepth attribute to determine how to watch props on scope.\n * If watchDepth attribute is NOT reference or collection, watchDepth defaults to deep watching by value\n */\nfunction watchProps(watchDepth, scope, watchExpressions, listener) {\n const supportsWatchCollection = angular.isFunction(scope.$watchCollection);\n const supportsWatchGroup = angular.isFunction(scope.$watchGroup);\n\n const watchGroupExpressions = [];\n\n for (const expr of watchExpressions) {\n const actualExpr = getPropExpression(expr);\n const exprWatchDepth = getPropWatchDepth(watchDepth, expr);\n\n // ignore empty expressions & expressions with functions\n if (!actualExpr || actualExpr.match(/\\(.*\\)/) || exprWatchDepth === 'one-time') {\n continue;\n }\n\n if (exprWatchDepth === 'collection' && supportsWatchCollection) {\n scope.$watchCollection(actualExpr, listener);\n } else if (exprWatchDepth === 'reference' && supportsWatchGroup) {\n watchGroupExpressions.push(actualExpr);\n } else {\n scope.$watch(actualExpr, listener, exprWatchDepth !== 'reference');\n }\n }\n\n if (watchDepth === 'one-time') {\n listener();\n }\n\n if (watchGroupExpressions.length) {\n scope.$watchGroup(watchGroupExpressions, listener);\n }\n}\n\n// render React component, with scope[attrs.props] being passed in as the component props\nfunction renderComponent(component, props, scope, elem) {\n scope.$evalAsync(() => {\n ReactDOM.render(React.createElement(component, props), elem[0]);\n });\n}\n\n// get prop name from prop (string or array)\nfunction getPropName(prop) {\n return Array.isArray(prop) ? prop[0] : prop;\n}\n\n// get prop name from prop (string or array)\nfunction getPropConfig(prop) {\n return Array.isArray(prop) ? prop[1] : {};\n}\n\n// get prop expression from prop (string or array)\nfunction getPropExpression(prop) {\n return Array.isArray(prop) ? prop[0] : prop;\n}\n\n/**\n * Finds the normalized attribute knowing that React props accept any type of capitalization and it also handles\n * kabab case attributes which can be used in case the attribute would also be a standard html attribute and would be\n * evaluated by the browser as such.\n * @param attrs All attributes of the component.\n * @param propName Name of the prop that react component expects.\n */\nfunction findAttribute(attrs: string, propName: string): string {\n const index = Object.keys(attrs).find(attr => {\n return attr.toLowerCase() === propName.toLowerCase() || attr.toLowerCase() === kebabCase(propName);\n });\n return attrs[index];\n}\n\n// get watch depth of prop (string or array)\nfunction getPropWatchDepth(defaultWatch, prop) {\n const customWatchDepth = Array.isArray(prop) && angular.isObject(prop[1]) && prop[1].watchDepth;\n return customWatchDepth || defaultWatch;\n}\n\n// # reactComponent\n// Directive that allows React components to be used in Angular templates.\n//\n// Usage:\n// \n//\n// This requires that there exists an injectable or globally available 'Hello' React component.\n// The 'props' attribute is optional and is passed to the component.\n//\n// The following would would create and register the component:\n//\n// var module = angular.module('ace.react.components');\n// module.value('Hello', React.createClass({\n// render: function() {\n// return
    Hello {this.props.name}
    ;\n// }\n// }));\n//\nconst reactComponent = $injector => {\n return {\n restrict: 'E',\n replace: true,\n link: function(scope, elem, attrs) {\n const reactComponent = getReactComponent(attrs.name, $injector);\n\n const renderMyComponent = () => {\n const scopeProps = scope.$eval(attrs.props);\n const props = applyFunctions(scopeProps, scope);\n\n renderComponent(reactComponent, props, scope, elem);\n };\n\n // If there are props, re-render when they change\n attrs.props ? watchProps(attrs.watchDepth, scope, [attrs.props], renderMyComponent) : renderMyComponent();\n\n // cleanup when scope is destroyed\n scope.$on('$destroy', () => {\n if (!attrs.onScopeDestroy) {\n ReactDOM.unmountComponentAtNode(elem[0]);\n } else {\n scope.$eval(attrs.onScopeDestroy, {\n unmountComponent: ReactDOM.unmountComponentAtNode.bind(this, elem[0]),\n });\n }\n });\n },\n };\n};\n\n// # reactDirective\n// Factory function to create directives for React components.\n//\n// With a component like this:\n//\n// var module = angular.module('ace.react.components');\n// module.value('Hello', React.createClass({\n// render: function() {\n// return
    Hello {this.props.name}
    ;\n// }\n// }));\n//\n// A directive can be created and registered with:\n//\n// module.directive('hello', function(reactDirective) {\n// return reactDirective('Hello', ['name']);\n// });\n//\n// Where the first argument is the injectable or globally accessible name of the React component\n// and the second argument is an array of property names to be watched and passed to the React component\n// as props.\n//\n// This directive can then be used like this:\n//\n// \n//\nconst reactDirective = $injector => {\n return (reactComponentName, props, conf, injectableProps) => {\n const directive = {\n restrict: 'E',\n replace: true,\n link: function(scope, elem, attrs) {\n const reactComponent = getReactComponent(reactComponentName, $injector);\n\n // if props is not defined, fall back to use the React component's propTypes if present\n props = props || Object.keys(reactComponent.propTypes || {});\n\n // for each of the properties, get their scope value and set it to scope.props\n const renderMyComponent = () => {\n let scopeProps = {};\n const config = {};\n\n props.forEach(prop => {\n const propName = getPropName(prop);\n scopeProps[propName] = scope.$eval(findAttribute(attrs, propName));\n config[propName] = getPropConfig(prop);\n });\n\n scopeProps = applyFunctions(scopeProps, scope, config);\n scopeProps = angular.extend({}, scopeProps, injectableProps);\n renderComponent(reactComponent, scopeProps, scope, elem);\n };\n\n // watch each property name and trigger an update whenever something changes,\n // to update scope.props with new values\n const propExpressions = props.map(prop => {\n return Array.isArray(prop)\n ? [findAttribute(attrs, prop[0]), getPropConfig(prop)]\n : findAttribute(attrs, prop);\n });\n\n // If we don't have any props, then our watch statement won't fire.\n props.length ? watchProps(attrs.watchDepth, scope, propExpressions, renderMyComponent) : renderMyComponent();\n\n // cleanup when scope is destroyed\n scope.$on('$destroy', () => {\n if (!attrs.onScopeDestroy) {\n ReactDOM.unmountComponentAtNode(elem[0]);\n } else {\n scope.$eval(attrs.onScopeDestroy, {\n unmountComponent: ReactDOM.unmountComponentAtNode.bind(this, elem[0]),\n });\n }\n });\n },\n };\n return angular.extend(directive, conf);\n };\n};\n\nconst ngModule = angular.module('react', []);\nngModule.directive('reactComponent', ['$injector', reactComponent]);\nngModule.factory('reactDirective', ['$injector', reactDirective]);\n","import _ from 'lodash';\nimport coreModule from '../../core_module';\nimport { SearchSrv } from 'app/core/services/search_srv';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport appEvents from 'app/core/app_events';\n\nexport class SearchCtrl {\n isOpen: boolean;\n query: any;\n giveSearchFocus: number;\n selectedIndex: number;\n results: any;\n currentSearchId: number;\n showImport: boolean;\n dismiss: any;\n ignoreClose: any;\n isLoading: boolean;\n initialFolderFilterTitle: string;\n isEditor: string;\n hasEditPermissionInFolders: boolean;\n\n /** @ngInject */\n constructor($scope, private $location, private $timeout, private searchSrv: SearchSrv) {\n appEvents.on('show-dash-search', this.openSearch.bind(this), $scope);\n appEvents.on('hide-dash-search', this.closeSearch.bind(this), $scope);\n\n this.initialFolderFilterTitle = 'All';\n this.isEditor = contextSrv.isEditor;\n this.hasEditPermissionInFolders = contextSrv.hasEditPermissionInFolders;\n }\n\n closeSearch() {\n this.isOpen = this.ignoreClose;\n }\n\n openSearch(evt, payload) {\n if (this.isOpen) {\n this.closeSearch();\n return;\n }\n\n this.isOpen = true;\n this.giveSearchFocus = 0;\n this.selectedIndex = -1;\n this.results = [];\n this.query = { query: '', tag: [], starred: false };\n this.currentSearchId = 0;\n this.ignoreClose = true;\n this.isLoading = true;\n\n if (payload && payload.starred) {\n this.query.starred = true;\n }\n\n this.$timeout(() => {\n this.ignoreClose = false;\n this.giveSearchFocus = this.giveSearchFocus + 1;\n this.search();\n }, 100);\n }\n\n keyDown(evt) {\n if (evt.keyCode === 27) {\n this.closeSearch();\n }\n if (evt.keyCode === 40) {\n this.moveSelection(1);\n }\n if (evt.keyCode === 38) {\n this.moveSelection(-1);\n }\n if (evt.keyCode === 13) {\n const flattenedResult = this.getFlattenedResultForNavigation();\n const currentItem = flattenedResult[this.selectedIndex];\n\n if (currentItem) {\n if (currentItem.dashboardIndex !== undefined) {\n const selectedDash = this.results[currentItem.folderIndex].items[currentItem.dashboardIndex];\n\n if (selectedDash) {\n this.$location.search({});\n this.$location.path(selectedDash.url);\n this.closeSearch();\n }\n } else {\n const selectedFolder = this.results[currentItem.folderIndex];\n\n if (selectedFolder) {\n selectedFolder.toggle(selectedFolder);\n }\n }\n }\n }\n }\n\n onFilterboxClick() {\n this.giveSearchFocus = 0;\n this.preventClose();\n }\n\n preventClose() {\n this.ignoreClose = true;\n\n this.$timeout(() => {\n this.ignoreClose = false;\n }, 100);\n }\n\n moveSelection(direction) {\n if (this.results.length === 0) {\n return;\n }\n\n const flattenedResult = this.getFlattenedResultForNavigation();\n const currentItem = flattenedResult[this.selectedIndex];\n\n if (currentItem) {\n if (currentItem.dashboardIndex !== undefined) {\n this.results[currentItem.folderIndex].items[currentItem.dashboardIndex].selected = false;\n } else {\n this.results[currentItem.folderIndex].selected = false;\n }\n }\n\n if (direction === 0) {\n this.selectedIndex = -1;\n return;\n }\n\n const max = flattenedResult.length;\n const newIndex = (this.selectedIndex + direction) % max;\n this.selectedIndex = newIndex < 0 ? newIndex + max : newIndex;\n const selectedItem = flattenedResult[this.selectedIndex];\n\n if (selectedItem.dashboardIndex === undefined && this.results[selectedItem.folderIndex].id === 0) {\n this.moveSelection(direction);\n return;\n }\n\n if (selectedItem.dashboardIndex !== undefined) {\n if (!this.results[selectedItem.folderIndex].expanded) {\n this.moveSelection(direction);\n return;\n }\n\n this.results[selectedItem.folderIndex].items[selectedItem.dashboardIndex].selected = true;\n return;\n }\n\n if (this.results[selectedItem.folderIndex].hideHeader) {\n this.moveSelection(direction);\n return;\n }\n\n this.results[selectedItem.folderIndex].selected = true;\n }\n\n searchDashboards() {\n this.currentSearchId = this.currentSearchId + 1;\n const localSearchId = this.currentSearchId;\n const query = {\n ...this.query,\n tag: this.query.tag,\n };\n\n return this.searchSrv.search(query).then(results => {\n if (localSearchId < this.currentSearchId) {\n return;\n }\n this.results = results || [];\n this.isLoading = false;\n this.moveSelection(1);\n });\n }\n\n queryHasNoFilters() {\n const query = this.query;\n return query.query === '' && query.starred === false && query.tag.length === 0;\n }\n\n filterByTag(tag) {\n if (_.indexOf(this.query.tag, tag) === -1) {\n this.query.tag.push(tag);\n this.search();\n }\n }\n\n removeTag(tag, evt) {\n this.query.tag = _.without(this.query.tag, tag);\n this.search();\n this.giveSearchFocus = this.giveSearchFocus + 1;\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n getTags = () => {\n return this.searchSrv.getDashboardTags();\n };\n\n onTagFiltersChanged = (tags: string[]) => {\n this.query.tag = tags;\n this.search();\n };\n\n clearSearchFilter() {\n this.query.tag = [];\n this.search();\n }\n\n showStarred() {\n this.query.starred = !this.query.starred;\n this.giveSearchFocus = this.giveSearchFocus + 1;\n this.search();\n }\n\n search() {\n this.showImport = false;\n this.selectedIndex = -1;\n this.searchDashboards();\n }\n\n folderExpanding() {\n this.moveSelection(0);\n }\n\n private getFlattenedResultForNavigation() {\n let folderIndex = 0;\n\n return _.flatMap(this.results, s => {\n let result = [];\n\n result.push({\n folderIndex: folderIndex,\n });\n\n let dashboardIndex = 0;\n\n result = result.concat(\n _.map(s.items || [], i => {\n return {\n folderIndex: folderIndex,\n dashboardIndex: dashboardIndex++,\n };\n })\n );\n\n folderIndex++;\n return result;\n });\n }\n}\n\nexport function searchDirective() {\n return {\n restrict: 'E',\n templateUrl: 'public/app/core/components/search/search.html',\n controller: SearchCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {},\n };\n}\n\ncoreModule.directive('dashboardSearch', searchDirective);\n","import _ from 'lodash';\nimport coreModule from 'app/core/core_module';\nimport Drop from 'tether-drop';\n\nexport function infoPopover() {\n return {\n restrict: 'E',\n template: '',\n transclude: true,\n link: (scope, elem, attrs, ctrl, transclude) => {\n const offset = attrs.offset || '0 -10px';\n const position = attrs.position || 'right middle';\n let classes = 'drop-help drop-hide-out-of-bounds';\n const openOn = 'hover';\n\n elem.addClass('gf-form-help-icon');\n\n if (attrs.wide) {\n classes += ' drop-wide';\n }\n\n if (attrs.mode) {\n elem.addClass('gf-form-help-icon--' + attrs.mode);\n }\n\n transclude((clone, newScope) => {\n const content = document.createElement('div');\n content.className = 'markdown-html';\n\n _.each(clone, node => {\n content.appendChild(node);\n });\n\n const dropOptions = {\n target: elem[0],\n content: content,\n position: position,\n classes: classes,\n openOn: openOn,\n hoverOpenDelay: 400,\n tetherOptions: {\n offset: offset,\n constraints: [\n {\n to: 'window',\n attachment: 'together',\n pin: true,\n },\n ],\n },\n };\n\n // Create drop in next digest after directive content is rendered.\n scope.$applyAsync(() => {\n const drop = new Drop(dropOptions);\n\n const unbind = scope.$on('$destroy', () => {\n drop.destroy();\n unbind();\n });\n });\n });\n },\n };\n}\n\ncoreModule.directive('infoPopover', infoPopover);\n","import coreModule from '../../core_module';\nimport { NavModel } from '../../nav_model_srv';\nimport appEvents from 'app/core/app_events';\n\nexport class NavbarCtrl {\n model: NavModel;\n\n /** @ngInject */\n constructor() {}\n\n showSearch() {\n appEvents.emit('show-dash-search');\n }\n\n navItemClicked(navItem, evt) {\n if (navItem.clickHandler) {\n navItem.clickHandler();\n evt.preventDefault();\n }\n }\n}\n\nexport function navbarDirective() {\n return {\n restrict: 'E',\n templateUrl: 'public/app/core/components/navbar/navbar.html',\n controller: NavbarCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {\n model: '=',\n },\n link: (scope, elem) => {},\n };\n}\n\nexport function pageH1() {\n return {\n restrict: 'E',\n template: `\n

    \n \n \n {{model.header.text}}\n

    \n `,\n scope: {\n model: '=',\n },\n };\n}\n\ncoreModule.directive('pageH1', pageH1);\ncoreModule.directive('navbar', navbarDirective);\n","import _ from 'lodash';\nimport coreModule from '../core_module';\n\nexport function arrayJoin() {\n 'use strict';\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: (scope, element, attr, ngModel) => {\n function split_array(text) {\n return (text || '').split(',');\n }\n\n function join_array(text) {\n if (_.isArray(text)) {\n return (text || '').join(',');\n } else {\n return text;\n }\n }\n\n ngModel.$parsers.push(split_array);\n ngModel.$formatters.push(join_array);\n },\n };\n}\n\ncoreModule.directive('arrayJoin', arrayJoin);\n","import _ from 'lodash';\nimport config from 'app/core/config';\n\nimport { Observable } from 'rxjs';\n\nexport class LiveSrv {\n conn: any;\n observers: any;\n initPromise: any;\n\n constructor() {\n this.observers = {};\n }\n\n getWebSocketUrl() {\n const l = window.location;\n return (l.protocol === 'https:' ? 'wss://' : 'ws://') + l.host + config.appSubUrl + '/ws';\n }\n\n getConnection() {\n if (this.initPromise) {\n return this.initPromise;\n }\n\n if (this.conn && this.conn.readyState === 1) {\n return Promise.resolve(this.conn);\n }\n\n this.initPromise = new Promise((resolve, reject) => {\n console.log('Live: connecting...');\n this.conn = new WebSocket(this.getWebSocketUrl());\n\n this.conn.onclose = evt => {\n console.log('Live: websocket onclose', evt);\n reject({ message: 'Connection closed' });\n\n this.initPromise = null;\n setTimeout(this.reconnect.bind(this), 2000);\n };\n\n this.conn.onmessage = evt => {\n this.handleMessage(evt.data);\n };\n\n this.conn.onerror = evt => {\n this.initPromise = null;\n reject({ message: 'Connection error' });\n console.log('Live: websocket error', evt);\n };\n\n this.conn.onopen = evt => {\n console.log('opened');\n this.initPromise = null;\n resolve(this.conn);\n };\n });\n\n return this.initPromise;\n }\n\n handleMessage(message) {\n message = JSON.parse(message);\n\n if (!message.stream) {\n console.log('Error: stream message without stream!', message);\n return;\n }\n\n const observer = this.observers[message.stream];\n if (!observer) {\n this.removeObserver(message.stream, null);\n return;\n }\n\n observer.next(message);\n }\n\n reconnect() {\n // no need to reconnect if no one cares\n if (_.keys(this.observers).length === 0) {\n return;\n }\n\n console.log('LiveSrv: Reconnecting');\n\n this.getConnection().then(conn => {\n _.each(this.observers, (value, key) => {\n this.send({ action: 'subscribe', stream: key });\n });\n });\n }\n\n send(data) {\n this.conn.send(JSON.stringify(data));\n }\n\n addObserver(stream, observer) {\n this.observers[stream] = observer;\n\n this.getConnection().then(conn => {\n this.send({ action: 'subscribe', stream: stream });\n });\n }\n\n removeObserver(stream, observer) {\n console.log('unsubscribe', stream);\n delete this.observers[stream];\n\n this.getConnection().then(conn => {\n this.send({ action: 'unsubscribe', stream: stream });\n });\n }\n\n subscribe(streamName) {\n console.log('LiveSrv.subscribe: ' + streamName);\n\n return Observable.create(observer => {\n this.addObserver(streamName, observer);\n\n return () => {\n this.removeObserver(streamName, observer);\n };\n });\n\n // return this.init().then(() => {\n // this.send({action: 'subscribe', stream: name});\n // });\n }\n}\n\nconst instance = new LiveSrv();\nexport { instance as liveSrv };\n","import store from 'app/core/store';\nimport coreModule from 'app/core/core_module';\n\nconst template = `\n
    \n \n \n
    \n`;\n\nexport class LayoutSelectorCtrl {\n mode: string;\n\n /** @ngInject */\n constructor(private $rootScope: any) {\n this.mode = store.get('grafana.list.layout.mode') || 'grid';\n }\n\n listView() {\n this.mode = 'list';\n store.set('grafana.list.layout.mode', 'list');\n this.$rootScope.appEvent('layout-mode-changed', 'list');\n }\n\n gridView() {\n this.mode = 'grid';\n store.set('grafana.list.layout.mode', 'grid');\n this.$rootScope.appEvent('layout-mode-changed', 'grid');\n }\n}\n\n/** @ngInject */\nexport function layoutSelector() {\n return {\n restrict: 'E',\n controller: LayoutSelectorCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {},\n template: template,\n };\n}\n\n/** @ngInject */\nexport function layoutMode($rootScope: any) {\n return {\n restrict: 'A',\n scope: {},\n link: (scope: any, elem: any) => {\n const layout = store.get('grafana.list.layout.mode') || 'grid';\n let className = 'card-list-layout-' + layout;\n elem.addClass(className);\n\n $rootScope.onAppEvent(\n 'layout-mode-changed',\n (evt: any, newLayout: any) => {\n elem.removeClass(className);\n className = 'card-list-layout-' + newLayout;\n elem.addClass(className);\n },\n scope\n );\n },\n };\n}\n\ncoreModule.directive('layoutSelector', layoutSelector);\ncoreModule.directive('layoutMode', layoutMode);\n","import coreModule from 'app/core/core_module';\n\nconst template = `\n\n`;\n\nconst checkboxTemplate = `\n\n`;\n\nexport class SwitchCtrl {\n onChange: any;\n checked: any;\n show: any;\n id: any;\n label: string;\n\n /** @ngInject */\n constructor($scope, private $timeout) {\n this.show = true;\n this.id = $scope.$id;\n }\n\n internalOnChange() {\n return this.$timeout(() => {\n return this.onChange();\n });\n }\n}\n\nexport function switchDirective() {\n return {\n restrict: 'E',\n controller: SwitchCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n scope: {\n checked: '=',\n label: '@',\n labelClass: '@',\n tooltip: '@',\n switchClass: '@',\n onChange: '&',\n },\n template: template,\n };\n}\n\nexport function checkboxDirective() {\n return {\n restrict: 'E',\n controller: SwitchCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n scope: {\n checked: '=',\n label: '@',\n labelClass: '@',\n tooltip: '@',\n switchClass: '@',\n onChange: '&',\n },\n template: checkboxTemplate,\n };\n}\n\ncoreModule.directive('gfFormSwitch', switchDirective);\ncoreModule.directive('gfFormCheckbox', checkboxDirective);\n","import coreModule from 'app/core/core_module';\n\nconst template = `\n\n`;\n\nexport class DashboardSelectorCtrl {\n model: any;\n options: any;\n\n /** @ngInject */\n constructor(private backendSrv) {}\n\n $onInit() {\n this.options = [{ value: 0, text: 'Default' }];\n\n return this.backendSrv.search({ starred: true }).then(res => {\n res.forEach(dash => {\n this.options.push({ value: dash.id, text: dash.title });\n });\n });\n }\n}\n\nexport function dashboardSelector() {\n return {\n restrict: 'E',\n controller: DashboardSelectorCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n template: template,\n scope: {\n model: '=',\n },\n };\n}\n\ncoreModule.directive('dashboardSelector', dashboardSelector);\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport coreModule from 'app/core/core_module';\n\nconst template = `\n
    \n{{part.def.type}}\n()\n\n`;\n\n/** @ngInject */\nexport function queryPartEditorDirective($compile, templateSrv) {\n const paramTemplate = '';\n\n return {\n restrict: 'E',\n template: template,\n scope: {\n part: '=',\n handleEvent: '&',\n debounce: '@',\n },\n link: function postLink($scope, elem) {\n const part = $scope.part;\n const partDef = part.def;\n const $paramsContainer = elem.find('.query-part-parameters');\n const debounceLookup = $scope.debounce;\n\n $scope.partActions = [];\n\n function clickFuncParam(this: any, paramIndex) {\n /*jshint validthis:true */\n const $link = $(this);\n const $input = $link.next();\n\n $input.val(part.params[paramIndex]);\n $input.css('width', $link.width() + 16 + 'px');\n\n $link.hide();\n $input.show();\n $input.focus();\n $input.select();\n\n const typeahead = $input.data('typeahead');\n if (typeahead) {\n $input.val('');\n typeahead.lookup();\n }\n }\n\n function inputBlur(this: any, paramIndex) {\n /*jshint validthis:true */\n const $input = $(this);\n const $link = $input.prev();\n const newValue = $input.val();\n\n if (newValue !== '' || part.def.params[paramIndex].optional) {\n $link.html(templateSrv.highlightVariablesAsHtml(newValue));\n\n part.updateParam($input.val(), paramIndex);\n $scope.$apply(() => {\n $scope.handleEvent({ $event: { name: 'part-param-changed' } });\n });\n }\n\n $input.hide();\n $link.show();\n }\n\n function inputKeyPress(this: any, paramIndex, e) {\n /*jshint validthis:true */\n if (e.which === 13) {\n inputBlur.call(this, paramIndex);\n }\n }\n\n function inputKeyDown(this: any) {\n /*jshint validthis:true */\n this.style.width = (3 + this.value.length) * 8 + 'px';\n }\n\n function addTypeahead($input, param, paramIndex) {\n if (!param.options && !param.dynamicLookup) {\n return;\n }\n\n const typeaheadSource = (query, callback) => {\n if (param.options) {\n let options = param.options;\n if (param.type === 'int') {\n options = _.map(options, val => {\n return val.toString();\n });\n }\n return options;\n }\n\n $scope.$apply(() => {\n $scope.handleEvent({ $event: { name: 'get-param-options' } }).then(result => {\n const dynamicOptions = _.map(result, op => {\n return _.escape(op.value);\n });\n callback(dynamicOptions);\n });\n });\n };\n\n $input.attr('data-provide', 'typeahead');\n\n $input.typeahead({\n source: typeaheadSource,\n minLength: 0,\n items: 1000,\n updater: value => {\n value = _.unescape(value);\n setTimeout(() => {\n inputBlur.call($input[0], paramIndex);\n }, 0);\n return value;\n },\n });\n\n const typeahead = $input.data('typeahead');\n typeahead.lookup = function() {\n this.query = this.$element.val() || '';\n const items = this.source(this.query, $.proxy(this.process, this));\n return items ? this.process(items) : items;\n };\n\n if (debounceLookup) {\n typeahead.lookup = _.debounce(typeahead.lookup, 500, { leading: true });\n }\n }\n\n $scope.showActionsMenu = () => {\n $scope.handleEvent({ $event: { name: 'get-part-actions' } }).then(res => {\n $scope.partActions = res;\n });\n };\n\n $scope.triggerPartAction = action => {\n $scope.handleEvent({ $event: { name: 'action', action: action } });\n };\n\n function addElementsAndCompile() {\n _.each(partDef.params, (param, index) => {\n if (param.optional && part.params.length <= index) {\n return;\n }\n\n if (index > 0) {\n $(', ').appendTo($paramsContainer);\n }\n\n const paramValue = templateSrv.highlightVariablesAsHtml(part.params[index]);\n const $paramLink = $('' + paramValue + '');\n const $input = $(paramTemplate);\n\n $paramLink.appendTo($paramsContainer);\n $input.appendTo($paramsContainer);\n\n $input.blur(_.partial(inputBlur, index));\n $input.keyup(inputKeyDown);\n $input.keypress(_.partial(inputKeyPress, index));\n $paramLink.click(_.partial(clickFuncParam, index));\n\n addTypeahead($input, param, index);\n });\n }\n\n function relink() {\n $paramsContainer.empty();\n addElementsAndCompile();\n }\n\n relink();\n },\n };\n}\n\ncoreModule.directive('queryPartEditor', queryPartEditorDirective);\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport coreModule from 'app/core/core_module';\n\nconst template = `\n
    \n{{part.label}}\n{{part.def.wrapOpen}}{{part.def.wrapClose}}\n\n`;\n\n/** @ngInject */\nexport function sqlPartEditorDirective($compile, templateSrv) {\n const paramTemplate = '';\n\n return {\n restrict: 'E',\n template: template,\n scope: {\n part: '=',\n handleEvent: '&',\n debounce: '@',\n },\n link: function postLink($scope, elem) {\n const part = $scope.part;\n const partDef = part.def;\n const $paramsContainer = elem.find('.query-part-parameters');\n const debounceLookup = $scope.debounce;\n let cancelBlur = null;\n\n $scope.partActions = [];\n\n function clickFuncParam(this: any, paramIndex) {\n /*jshint validthis:true */\n const $link = $(this);\n const $input = $link.next();\n\n $input.val(part.params[paramIndex]);\n $input.css('width', $link.width() + 16 + 'px');\n\n $link.hide();\n $input.show();\n $input.focus();\n $input.select();\n\n const typeahead = $input.data('typeahead');\n if (typeahead) {\n $input.val('');\n typeahead.lookup();\n }\n }\n\n function inputBlur($input, paramIndex) {\n cancelBlur = setTimeout(() => {\n switchToLink($input, paramIndex);\n }, 200);\n }\n\n function switchToLink($input, paramIndex) {\n /*jshint validthis:true */\n const $link = $input.prev();\n const newValue = $input.val();\n\n if (newValue !== '' || part.def.params[paramIndex].optional) {\n $link.html(templateSrv.highlightVariablesAsHtml(newValue));\n\n part.updateParam($input.val(), paramIndex);\n $scope.$apply(() => {\n $scope.handleEvent({ $event: { name: 'part-param-changed' } });\n });\n }\n\n $input.hide();\n $link.show();\n }\n\n function inputKeyPress(this: any, paramIndex, e) {\n /*jshint validthis:true */\n if (e.which === 13) {\n switchToLink($(this), paramIndex);\n }\n }\n\n function inputKeyDown(this: any) {\n /*jshint validthis:true */\n this.style.width = (3 + this.value.length) * 8 + 'px';\n }\n\n function addTypeahead($input, param, paramIndex) {\n if (!param.options && !param.dynamicLookup) {\n return;\n }\n\n const typeaheadSource = (query, callback) => {\n if (param.options) {\n let options = param.options;\n if (param.type === 'int') {\n options = _.map(options, val => {\n return val.toString();\n });\n }\n return options;\n }\n\n $scope.$apply(() => {\n $scope.handleEvent({ $event: { name: 'get-param-options', param: param } }).then(result => {\n const dynamicOptions = _.map(result, op => {\n return _.escape(op.value);\n });\n\n // add current value to dropdown if it's not in dynamicOptions\n if (_.indexOf(dynamicOptions, part.params[paramIndex]) === -1) {\n dynamicOptions.unshift(_.escape(part.params[paramIndex]));\n }\n\n callback(dynamicOptions);\n });\n });\n };\n\n $input.attr('data-provide', 'typeahead');\n\n $input.typeahead({\n source: typeaheadSource,\n minLength: 0,\n items: 1000,\n updater: value => {\n value = _.unescape(value);\n if (value === part.params[paramIndex]) {\n clearTimeout(cancelBlur);\n $input.focus();\n return value;\n }\n return value;\n },\n });\n\n const typeahead = $input.data('typeahead');\n typeahead.lookup = function() {\n this.query = this.$element.val() || '';\n const items = this.source(this.query, $.proxy(this.process, this));\n return items ? this.process(items) : items;\n };\n\n if (debounceLookup) {\n typeahead.lookup = _.debounce(typeahead.lookup, 500, { leading: true });\n }\n }\n\n $scope.showActionsMenu = () => {\n $scope.handleEvent({ $event: { name: 'get-part-actions' } }).then(res => {\n $scope.partActions = res;\n });\n };\n\n $scope.triggerPartAction = action => {\n $scope.handleEvent({ $event: { name: 'action', action: action } });\n };\n\n function addElementsAndCompile() {\n _.each(partDef.params, (param, index) => {\n if (param.optional && part.params.length <= index) {\n return;\n }\n\n if (index > 0) {\n $('' + partDef.separator + '').appendTo($paramsContainer);\n }\n\n const paramValue = templateSrv.highlightVariablesAsHtml(part.params[index]);\n const $paramLink = $('' + paramValue + '');\n const $input = $(paramTemplate);\n\n $paramLink.appendTo($paramsContainer);\n $input.appendTo($paramsContainer);\n\n $input.blur(_.partial(inputBlur, $input, index));\n $input.keyup(inputKeyDown);\n $input.keypress(_.partial(inputKeyPress, index));\n $paramLink.click(_.partial(clickFuncParam, index));\n\n addTypeahead($input, param, index);\n });\n }\n\n function relink() {\n $paramsContainer.empty();\n addElementsAndCompile();\n }\n\n relink();\n },\n };\n}\n\ncoreModule.directive('sqlPartEditor', sqlPartEditorDirective);\n","import _ from 'lodash';\nimport coreModule from '../../core_module';\nimport { ISCEService, IQService } from 'angular';\n\nfunction typeaheadMatcher(this: any, item: string) {\n let str = this.query;\n if (str === '') {\n return true;\n }\n if (str[0] === '/') {\n str = str.substring(1);\n }\n if (str[str.length - 1] === '/') {\n str = str.substring(0, str.length - 1);\n }\n return item.toLowerCase().match(str.toLowerCase());\n}\n\nexport class FormDropdownCtrl {\n inputElement: JQLite;\n linkElement: JQLite;\n model: any;\n display: any;\n text: any;\n options: any;\n cssClass: any;\n cssClasses: any;\n allowCustom: any;\n labelMode: boolean;\n linkMode: boolean;\n cancelBlur: any;\n onChange: any;\n getOptions: any;\n optionCache: any;\n lookupText: boolean;\n placeholder: any;\n startOpen: any;\n debounce: number;\n\n /** @ngInject */\n constructor(\n private $scope: any,\n $element: JQLite,\n private $sce: ISCEService,\n private templateSrv: any,\n private $q: IQService\n ) {\n this.inputElement = $element.find('input').first();\n this.linkElement = $element.find('a').first();\n this.linkMode = true;\n this.cancelBlur = null;\n\n // listen to model changes\n $scope.$watch('ctrl.model', this.modelChanged.bind(this));\n\n if (this.labelMode) {\n this.cssClasses = 'gf-form-label ' + this.cssClass;\n } else {\n this.cssClasses = 'gf-form-input gf-form-input--dropdown ' + this.cssClass;\n }\n\n if (this.placeholder) {\n this.inputElement.attr('placeholder', this.placeholder);\n }\n\n this.inputElement.attr('data-provide', 'typeahead');\n this.inputElement.typeahead({\n source: this.typeaheadSource.bind(this),\n minLength: 0,\n items: 10000,\n updater: this.typeaheadUpdater.bind(this),\n matcher: typeaheadMatcher,\n });\n\n // modify typeahead lookup\n // this = typeahead\n const typeahead = this.inputElement.data('typeahead');\n typeahead.lookup = function() {\n this.query = this.$element.val() || '';\n this.source(this.query, this.process.bind(this));\n };\n\n if (this.debounce) {\n typeahead.lookup = _.debounce(typeahead.lookup, 500, { leading: true });\n }\n\n this.linkElement.keydown(evt => {\n // trigger typeahead on down arrow or enter key\n if (evt.keyCode === 40 || evt.keyCode === 13) {\n this.linkElement.click();\n }\n });\n\n this.inputElement.keydown(evt => {\n if (evt.keyCode === 13) {\n setTimeout(() => {\n this.inputElement.blur();\n }, 300);\n }\n });\n\n this.inputElement.blur(this.inputBlur.bind(this));\n\n if (this.startOpen) {\n setTimeout(this.open.bind(this), 0);\n }\n }\n\n getOptionsInternal(query: string) {\n const result = this.getOptions({ $query: query });\n if (this.isPromiseLike(result)) {\n return result;\n }\n return this.$q.when(result);\n }\n\n isPromiseLike(obj: any) {\n return obj && typeof obj.then === 'function';\n }\n\n modelChanged() {\n if (_.isObject(this.model)) {\n this.updateDisplay(this.model.text);\n } else {\n // if we have text use it\n if (this.lookupText) {\n this.getOptionsInternal('').then((options: any) => {\n const item = _.find(options, { value: this.model });\n this.updateDisplay(item ? item.text : this.model);\n });\n } else {\n this.updateDisplay(this.model);\n }\n }\n }\n\n typeaheadSource(query: string, callback: (res: any) => void) {\n this.getOptionsInternal(query).then((options: any) => {\n this.optionCache = options;\n\n // extract texts\n const optionTexts = _.map(options, (op: any) => {\n return _.escape(op.text);\n });\n\n // add custom values\n if (this.allowCustom && this.text !== '') {\n if (_.indexOf(optionTexts, this.text) === -1) {\n optionTexts.unshift(this.text);\n }\n }\n\n callback(optionTexts);\n });\n }\n\n typeaheadUpdater(text: string) {\n if (text === this.text) {\n clearTimeout(this.cancelBlur);\n this.inputElement.focus();\n return text;\n }\n\n this.inputElement.val(text);\n this.switchToLink(true);\n return text;\n }\n\n switchToLink(fromClick: boolean) {\n if (this.linkMode && !fromClick) {\n return;\n }\n\n clearTimeout(this.cancelBlur);\n this.cancelBlur = null;\n this.linkMode = true;\n this.inputElement.hide();\n this.linkElement.show();\n this.updateValue(this.inputElement.val());\n }\n\n inputBlur() {\n // happens long before the click event on the typeahead options\n // need to have long delay because the blur\n this.cancelBlur = setTimeout(this.switchToLink.bind(this), 200);\n }\n\n updateValue(text: string) {\n text = _.unescape(text);\n\n if (text === '' || this.text === text) {\n return;\n }\n\n this.$scope.$apply(() => {\n const option = _.find(this.optionCache, { text: text });\n\n if (option) {\n if (_.isObject(this.model)) {\n this.model = option;\n } else {\n this.model = option.value;\n }\n this.text = option.text;\n } else if (this.allowCustom) {\n if (_.isObject(this.model)) {\n this.model.text = this.model.value = text;\n } else {\n this.model = text;\n }\n this.text = text;\n }\n\n // needs to call this after digest so\n // property is synced with outerscope\n this.$scope.$$postDigest(() => {\n this.$scope.$apply(() => {\n this.onChange({ $option: option });\n });\n });\n });\n }\n\n updateDisplay(text: string) {\n this.text = text;\n this.display = this.$sce.trustAsHtml(this.templateSrv.highlightVariablesAsHtml(text));\n }\n\n open() {\n this.inputElement.css('width', Math.max(this.linkElement.width(), 80) + 16 + 'px');\n\n this.inputElement.show();\n this.inputElement.focus();\n\n this.linkElement.hide();\n this.linkMode = false;\n\n const typeahead = this.inputElement.data('typeahead');\n if (typeahead) {\n this.inputElement.val('');\n typeahead.lookup();\n }\n }\n}\n\nconst template = `\n\n\n\n\n`;\n\nexport function formDropdownDirective() {\n return {\n restrict: 'E',\n template: template,\n controller: FormDropdownCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {\n model: '=',\n getOptions: '&',\n onChange: '&',\n cssClass: '@',\n allowCustom: '@',\n labelMode: '@',\n lookupText: '@',\n placeholder: '@',\n startOpen: '@',\n debounce: '@',\n },\n };\n}\n\ncoreModule.directive('gfFormDropdown', formDropdownDirective);\n","import angular from 'angular';\nimport coreModule from '../core_module';\n\nexport class JsonEditorCtrl {\n /** @ngInject */\n constructor($scope) {\n $scope.json = angular.toJson($scope.model.object, true);\n $scope.canUpdate = $scope.model.updateHandler !== void 0 && $scope.model.canUpdate;\n $scope.canCopy = $scope.model.enableCopy;\n\n $scope.update = () => {\n const newObject = angular.fromJson($scope.json);\n $scope.model.updateHandler(newObject, $scope.model.object);\n };\n\n $scope.getContentForClipboard = () => $scope.json;\n }\n}\n\ncoreModule.controller('JsonEditorCtrl', JsonEditorCtrl);\n","import _ from 'lodash';\nimport coreModule from '../core_module';\nimport config from 'app/core/config';\n\nexport class LoginCtrl {\n /** @ngInject */\n constructor($scope, backendSrv, contextSrv, $location) {\n $scope.formModel = {\n user: '',\n email: '',\n password: '',\n };\n\n $scope.command = {};\n $scope.result = '';\n $scope.loggingIn = false;\n\n contextSrv.sidemenu = false;\n\n $scope.oauth = config.oauth;\n $scope.oauthEnabled = _.keys(config.oauth).length > 0;\n $scope.ldapEnabled = config.ldapEnabled;\n $scope.authProxyEnabled = config.authProxyEnabled;\n\n $scope.disableLoginForm = config.disableLoginForm;\n $scope.disableUserSignUp = config.disableUserSignUp;\n $scope.loginHint = config.loginHint;\n $scope.passwordHint = config.passwordHint;\n\n $scope.loginMode = true;\n $scope.submitBtnText = 'Log in';\n\n $scope.init = () => {\n $scope.$watch('loginMode', $scope.loginModeChanged);\n\n if (config.loginError) {\n $scope.appEvent('alert-warning', ['Login Failed', config.loginError]);\n }\n };\n\n $scope.submit = () => {\n if ($scope.loginMode) {\n $scope.login();\n } else {\n $scope.signUp();\n }\n };\n\n $scope.changeView = () => {\n const loginView = document.querySelector('#login-view');\n const changePasswordView = document.querySelector('#change-password-view');\n\n loginView.className += ' add';\n setTimeout(() => {\n loginView.className += ' hidden';\n }, 250);\n setTimeout(() => {\n changePasswordView.classList.remove('hidden');\n }, 251);\n setTimeout(() => {\n changePasswordView.classList.remove('remove');\n }, 301);\n\n setTimeout(() => {\n document.getElementById('newPassword').focus();\n }, 400);\n };\n\n $scope.changePassword = () => {\n $scope.command.oldPassword = 'admin';\n\n if ($scope.command.newPassword !== $scope.command.confirmNew) {\n $scope.appEvent('alert-warning', ['New passwords do not match', '']);\n return;\n }\n\n backendSrv.put('/api/user/password', $scope.command).then(() => {\n $scope.toGrafana();\n });\n };\n\n $scope.skip = () => {\n $scope.toGrafana();\n };\n\n $scope.loginModeChanged = newValue => {\n $scope.submitBtnText = newValue ? 'Log in' : 'Sign up';\n };\n\n $scope.signUp = () => {\n if (!$scope.loginForm.$valid) {\n return;\n }\n\n backendSrv.post('/api/user/signup', $scope.formModel).then(result => {\n if (result.status === 'SignUpCreated') {\n $location.path('/signup').search({ email: $scope.formModel.email });\n } else {\n window.location.href = config.appSubUrl + '/';\n }\n });\n };\n\n $scope.login = () => {\n delete $scope.loginError;\n\n if (!$scope.loginForm.$valid) {\n return;\n }\n $scope.loggingIn = true;\n\n backendSrv\n .post('/login', $scope.formModel)\n .then(result => {\n $scope.result = result;\n\n if ($scope.formModel.password !== 'admin' || $scope.ldapEnabled || $scope.authProxyEnabled) {\n $scope.toGrafana();\n return;\n } else {\n $scope.changeView();\n }\n })\n .catch(() => {\n $scope.loggingIn = false;\n });\n };\n\n $scope.toGrafana = () => {\n const params = $location.search();\n\n if (params.redirect && params.redirect[0] === '/') {\n window.location.href = config.appSubUrl + params.redirect;\n } else if ($scope.result.redirectUrl) {\n window.location.href = $scope.result.redirectUrl;\n } else {\n window.location.href = config.appSubUrl + '/';\n }\n };\n\n $scope.init();\n }\n}\n\ncoreModule.controller('LoginCtrl', LoginCtrl);\n","import coreModule from '../core_module';\nimport config from 'app/core/config';\n\nexport class InvitedCtrl {\n /** @ngInject */\n constructor($scope, $routeParams, contextSrv, backendSrv) {\n contextSrv.sidemenu = false;\n $scope.formModel = {};\n\n $scope.navModel = {\n main: {\n icon: 'gicon gicon-branding',\n text: 'Invite',\n subTitle: 'Register your Grafana account',\n breadcrumbs: [{ title: 'Login', url: 'login' }],\n },\n };\n\n $scope.init = () => {\n backendSrv.get('/api/user/invite/' + $routeParams.code).then(invite => {\n $scope.formModel.name = invite.name;\n $scope.formModel.email = invite.email;\n $scope.formModel.username = invite.email;\n $scope.formModel.inviteCode = $routeParams.code;\n\n $scope.greeting = invite.name || invite.email || invite.username;\n $scope.invitedBy = invite.invitedBy;\n });\n };\n\n $scope.submit = () => {\n if (!$scope.inviteForm.$valid) {\n return;\n }\n\n backendSrv.post('/api/user/invite/complete', $scope.formModel).then(() => {\n window.location.href = config.appSubUrl + '/';\n });\n };\n\n $scope.init();\n }\n}\n\ncoreModule.controller('InvitedCtrl', InvitedCtrl);\n","import config from 'app/core/config';\nimport coreModule from '../core_module';\n\nexport class SignUpCtrl {\n /** @ngInject */\n constructor(private $scope: any, private backendSrv: any, $location: any, contextSrv: any) {\n contextSrv.sidemenu = false;\n $scope.ctrl = this;\n\n $scope.formModel = {};\n\n const params = $location.search();\n\n // validate email is semi ok\n if (params.email && !params.email.match(/^\\S+@\\S+$/)) {\n console.log('invalid email');\n return;\n }\n\n $scope.formModel.orgName = params.email;\n $scope.formModel.email = params.email;\n $scope.formModel.username = params.email;\n $scope.formModel.code = params.code;\n\n $scope.verifyEmailEnabled = false;\n $scope.autoAssignOrg = false;\n\n $scope.navModel = {\n main: {\n icon: 'gicon gicon-branding',\n text: 'Sign Up',\n subTitle: 'Register your Grafana account',\n breadcrumbs: [{ title: 'Login', url: 'login' }],\n },\n };\n\n backendSrv.get('/api/user/signup/options').then(options => {\n $scope.verifyEmailEnabled = options.verifyEmailEnabled;\n $scope.autoAssignOrg = options.autoAssignOrg;\n });\n }\n\n submit() {\n if (!this.$scope.signUpForm.$valid) {\n return;\n }\n\n this.backendSrv.post('/api/user/signup/step2', this.$scope.formModel).then(rsp => {\n if (rsp.code === 'redirect-to-select-org') {\n window.location.href = config.appSubUrl + '/profile/select-org?signup=1';\n } else {\n window.location.href = config.appSubUrl + '/';\n }\n });\n }\n}\n\ncoreModule.controller('SignUpCtrl', SignUpCtrl);\n","import coreModule from '../core_module';\nimport config from 'app/core/config';\n\nexport class ResetPasswordCtrl {\n /** @ngInject */\n constructor($scope, contextSrv, backendSrv, $location) {\n contextSrv.sidemenu = false;\n $scope.formModel = {};\n $scope.mode = 'send';\n $scope.ldapEnabled = config.ldapEnabled;\n $scope.authProxyEnabled = config.authProxyEnabled;\n $scope.disableLoginForm = config.disableLoginForm;\n\n const params = $location.search();\n if (params.code) {\n $scope.mode = 'reset';\n $scope.formModel.code = params.code;\n }\n\n $scope.navModel = {\n main: {\n icon: 'gicon gicon-branding',\n text: 'Reset Password',\n subTitle: 'Reset your Grafana password',\n breadcrumbs: [{ title: 'Login', url: 'login' }],\n },\n };\n\n $scope.sendResetEmail = () => {\n if (!$scope.sendResetForm.$valid) {\n return;\n }\n backendSrv.post('/api/user/password/send-reset-email', $scope.formModel).then(() => {\n $scope.mode = 'email-sent';\n });\n };\n\n $scope.submitReset = () => {\n if (!$scope.resetForm.$valid) {\n return;\n }\n\n if ($scope.formModel.newPassword !== $scope.formModel.confirmPassword) {\n $scope.appEvent('alert-warning', ['New passwords do not match', '']);\n return;\n }\n\n backendSrv.post('/api/user/password/reset', $scope.formModel).then(() => {\n $location.path('login');\n });\n };\n }\n}\n\ncoreModule.controller('ResetPasswordCtrl', ResetPasswordCtrl);\n","import config from 'app/core/config';\nimport coreModule from '../core_module';\nimport appEvents from 'app/core/app_events';\n\nexport class ErrorCtrl {\n /** @ngInject */\n constructor($scope, contextSrv, navModelSrv) {\n $scope.navModel = navModelSrv.getNotFoundNav();\n $scope.appSubUrl = config.appSubUrl;\n\n if (!contextSrv.isSignedIn) {\n appEvents.emit('toggle-sidemenu-hidden');\n }\n\n $scope.$on('destroy', () => {\n if (!contextSrv.isSignedIn) {\n appEvents.emit('toggle-sidemenu-hidden');\n }\n });\n }\n}\n\ncoreModule.controller('ErrorCtrl', ErrorCtrl);\n","import './json_editor_ctrl';\nimport './login_ctrl';\nimport './invited_ctrl';\nimport './signup_ctrl';\nimport './reset_password_ctrl';\nimport './error_ctrl';\n","import coreModule from 'app/core/core_module';\n\nexport class AlertSrv {\n constructor() {}\n\n set() {\n console.log('old depricated alert srv being used');\n }\n}\n\n// this is just added to not break old plugins that might be using it\ncoreModule.service('alertSrv', AlertSrv);\n","import coreModule from 'app/core/core_module';\nimport appEvents from 'app/core/app_events';\n\nexport class UtilSrv {\n modalScope: any;\n\n /** @ngInject */\n constructor(private $rootScope, private $modal) {}\n\n init() {\n appEvents.on('show-modal', this.showModal.bind(this), this.$rootScope);\n appEvents.on('hide-modal', this.hideModal.bind(this), this.$rootScope);\n appEvents.on('confirm-modal', this.showConfirmModal.bind(this), this.$rootScope);\n }\n\n hideModal() {\n if (this.modalScope && this.modalScope.dismiss) {\n this.modalScope.dismiss();\n }\n }\n\n showModal(options) {\n if (this.modalScope && this.modalScope.dismiss) {\n this.modalScope.dismiss();\n }\n\n this.modalScope = options.scope;\n\n if (options.model) {\n this.modalScope = this.$rootScope.$new();\n this.modalScope.model = options.model;\n } else if (!this.modalScope) {\n this.modalScope = this.$rootScope.$new();\n }\n\n const modal = this.$modal({\n modalClass: options.modalClass,\n template: options.src,\n templateHtml: options.templateHtml,\n persist: false,\n show: false,\n scope: this.modalScope,\n keyboard: false,\n backdrop: options.backdrop,\n });\n\n Promise.resolve(modal).then(modalEl => {\n modalEl.modal('show');\n });\n }\n\n showConfirmModal(payload) {\n const scope = this.$rootScope.$new();\n\n scope.onConfirm = () => {\n payload.onConfirm();\n scope.dismiss();\n };\n\n scope.updateConfirmText = value => {\n scope.confirmTextValid = payload.confirmText.toLowerCase() === value.toLowerCase();\n };\n\n scope.title = payload.title;\n scope.text = payload.text;\n scope.text2 = payload.text2;\n scope.confirmText = payload.confirmText;\n\n scope.onConfirm = payload.onConfirm;\n scope.onAltAction = payload.onAltAction;\n scope.altActionText = payload.altActionText;\n scope.icon = payload.icon || 'fa-check';\n scope.yesText = payload.yesText || 'Yes';\n scope.noText = payload.noText || 'Cancel';\n scope.confirmTextValid = scope.confirmText ? false : true;\n\n appEvents.emit('show-modal', {\n src: 'public/app/partials/confirm_modal.html',\n scope: scope,\n modalClass: 'confirm-modal',\n });\n }\n}\n\ncoreModule.service('utilSrv', UtilSrv);\n","import _ from 'lodash';\nimport coreModule from 'app/core/core_module';\n\n// This service really just tracks a list of $timeout promises to give us a\n// method for canceling them all when we need to\nexport class Timer {\n timers = [];\n\n /** @ngInject */\n constructor(private $timeout) {}\n\n register(promise) {\n this.timers.push(promise);\n return promise;\n }\n\n cancel(promise) {\n this.timers = _.without(this.timers, promise);\n this.$timeout.cancel(promise);\n }\n\n cancelAll() {\n _.each(this.timers, t => {\n this.$timeout.cancel(t);\n });\n this.timers = [];\n }\n}\n\ncoreModule.service('timer', Timer);\n","import $ from 'jquery';\nimport coreModule from 'app/core/core_module';\nimport config from 'app/core/config';\n\nexport class Analytics {\n /** @ngInject */\n constructor(private $rootScope, private $location) {}\n\n gaInit() {\n $.ajax({\n url: 'https://www.google-analytics.com/analytics.js',\n dataType: 'script',\n cache: true,\n });\n const ga = ((window as any).ga =\n (window as any).ga ||\n //tslint:disable-next-line:only-arrow-functions\n function() {\n (ga.q = ga.q || []).push(arguments);\n });\n ga.l = +new Date();\n ga('create', (config as any).googleAnalyticsId, 'auto');\n ga('set', 'anonymizeIp', true);\n return ga;\n }\n\n init() {\n this.$rootScope.$on('$viewContentLoaded', () => {\n const track = { page: this.$location.url() };\n const ga = (window as any).ga || this.gaInit();\n ga('set', track);\n ga('send', 'pageview');\n });\n }\n}\n\n/** @ngInject */\nfunction startAnalytics(googleAnalyticsSrv) {\n if ((config as any).googleAnalyticsId) {\n googleAnalyticsSrv.init();\n }\n}\n\ncoreModule.service('googleAnalyticsSrv', Analytics).run(startAnalytics);\n","import _ from 'lodash';\nimport coreModule from 'app/core/core_module';\nimport Drop from 'tether-drop';\n\n/** @ngInject */\nfunction popoverSrv(this: any, $compile, $rootScope, $timeout) {\n let openDrop = null;\n\n this.close = () => {\n if (openDrop) {\n openDrop.close();\n }\n };\n\n this.show = options => {\n if (openDrop) {\n openDrop.close();\n openDrop = null;\n }\n\n const scope = _.extend($rootScope.$new(true), options.model);\n let drop;\n\n const cleanUp = () => {\n setTimeout(() => {\n scope.$destroy();\n\n if (drop.tether) {\n drop.destroy();\n }\n\n if (options.onClose) {\n options.onClose();\n }\n });\n\n openDrop = null;\n };\n\n scope.dismiss = () => {\n drop.close();\n };\n\n const contentElement = document.createElement('div');\n contentElement.innerHTML = options.template;\n\n $compile(contentElement)(scope);\n\n $timeout(() => {\n drop = new Drop({\n target: options.element,\n content: contentElement,\n position: options.position,\n classes: options.classNames || 'drop-popover',\n openOn: options.openOn,\n hoverCloseDelay: 200,\n tetherOptions: {\n constraints: [{ to: 'scrollParent', attachment: 'together' }],\n },\n });\n\n drop.on('close', () => {\n cleanUp();\n });\n\n openDrop = drop;\n openDrop.open();\n }, 100);\n\n // return close function\n return () => {\n if (drop) {\n drop.close();\n }\n };\n };\n}\n\ncoreModule.service('popoverSrv', popoverSrv);\n","import _ from 'lodash';\nimport coreModule from '../core_module';\n\n/** @ngInject */\nexport function uiSegmentSrv(this: any, $sce, templateSrv) {\n const self = this;\n\n function MetricSegment(this: any, options) {\n if (options === '*' || options.value === '*') {\n this.value = '*';\n this.html = $sce.trustAsHtml('');\n this.type = options.type;\n this.expandable = true;\n return;\n }\n\n if (_.isString(options)) {\n this.value = options;\n this.html = $sce.trustAsHtml(templateSrv.highlightVariablesAsHtml(this.value));\n return;\n }\n\n // temp hack to work around legacy inconsistency in segment model\n this.text = options.value;\n\n this.cssClass = options.cssClass;\n this.custom = options.custom;\n this.type = options.type;\n this.fake = options.fake;\n this.value = options.value;\n this.selectMode = options.selectMode;\n this.type = options.type;\n this.expandable = options.expandable;\n this.html = options.html || $sce.trustAsHtml(templateSrv.highlightVariablesAsHtml(this.value));\n }\n\n this.getSegmentForValue = function(value, fallbackText) {\n if (value) {\n return this.newSegment(value);\n } else {\n return this.newSegment({ value: fallbackText, fake: true });\n }\n };\n\n this.newSelectMeasurement = () => {\n return new MetricSegment({ value: 'select measurement', fake: true });\n };\n\n this.newFake = (text, type, cssClass) => {\n return new MetricSegment({ value: text, fake: true, type: type, cssClass: cssClass });\n };\n\n this.newSegment = options => {\n return new MetricSegment(options);\n };\n\n this.newKey = key => {\n return new MetricSegment({ value: key, type: 'key', cssClass: 'query-segment-key' });\n };\n\n this.newKeyValue = value => {\n return new MetricSegment({ value: value, type: 'value', cssClass: 'query-segment-value' });\n };\n\n this.newCondition = condition => {\n return new MetricSegment({ value: condition, type: 'condition', cssClass: 'query-keyword' });\n };\n\n this.newOperator = op => {\n return new MetricSegment({ value: op, type: 'operator', cssClass: 'query-segment-operator' });\n };\n\n this.newOperators = ops => {\n return _.map(ops, op => {\n return new MetricSegment({ value: op, type: 'operator', cssClass: 'query-segment-operator' });\n });\n };\n\n this.transformToSegments = (addTemplateVars, variableTypeFilter) => {\n return results => {\n const segments = _.map(results, segment => {\n return self.newSegment({ value: segment.text, expandable: segment.expandable });\n });\n\n if (addTemplateVars) {\n _.each(templateSrv.variables, variable => {\n if (variableTypeFilter === void 0 || variableTypeFilter === variable.type) {\n segments.unshift(self.newSegment({ type: 'value', value: '$' + variable.name, expandable: true }));\n }\n });\n }\n\n return segments;\n };\n };\n\n this.newSelectMetric = () => {\n return new MetricSegment({ value: 'select metric', fake: true });\n };\n\n this.newPlusButton = () => {\n return new MetricSegment({\n fake: true,\n html: '',\n type: 'plus-button',\n cssClass: 'query-part',\n });\n };\n}\n\ncoreModule.service('uiSegmentSrv', uiSegmentSrv);\n","import angular from 'angular';\nimport coreModule from '../core_module';\n\nclass DynamicDirectiveSrv {\n /** @ngInject */\n constructor(private $compile) {}\n\n addDirective(element, name, scope) {\n const child = angular.element(document.createElement(name));\n this.$compile(child)(scope);\n\n element.empty();\n element.append(child);\n }\n\n link(scope, elem, attrs, options) {\n const directiveInfo = options.directive(scope);\n if (!directiveInfo || !directiveInfo.fn) {\n elem.empty();\n return;\n }\n\n if (!directiveInfo.fn.registered) {\n coreModule.directive(attrs.$normalize(directiveInfo.name), directiveInfo.fn);\n directiveInfo.fn.registered = true;\n }\n\n this.addDirective(elem, directiveInfo.name, scope);\n }\n\n create(options) {\n const directiveDef = {\n restrict: 'E',\n scope: options.scope,\n link: (scope, elem, attrs) => {\n if (options.watchPath) {\n let childScope = null;\n scope.$watch(options.watchPath, () => {\n if (childScope) {\n childScope.$destroy();\n }\n childScope = scope.$new();\n this.link(childScope, elem, attrs, options);\n });\n } else {\n this.link(scope, elem, attrs, options);\n }\n },\n };\n\n return directiveDef;\n }\n}\n\ncoreModule.service('dynamicDirectiveSrv', DynamicDirectiveSrv);\n","import coreModule from 'app/core/core_module';\nimport appEvents from 'app/core/app_events';\nimport { store } from 'app/store/store';\nimport locationUtil from 'app/core/utils/location_util';\nimport { updateLocation } from 'app/core/actions';\n\n// Services that handles angular -> redux store sync & other react <-> angular sync\nexport class BridgeSrv {\n private fullPageReloadRoutes;\n\n /** @ngInject */\n constructor(private $location, private $timeout, private $window, private $rootScope, private $route) {\n this.fullPageReloadRoutes = ['/logout'];\n }\n\n init() {\n this.$rootScope.$on('$routeUpdate', (evt, data) => {\n const angularUrl = this.$location.url();\n const state = store.getState();\n if (state.location.url !== angularUrl) {\n store.dispatch(\n updateLocation({\n path: this.$location.path(),\n query: this.$location.search(),\n routeParams: this.$route.current.params,\n })\n );\n }\n });\n\n this.$rootScope.$on('$routeChangeSuccess', (evt, data) => {\n store.dispatch(\n updateLocation({\n path: this.$location.path(),\n query: this.$location.search(),\n routeParams: this.$route.current.params,\n })\n );\n });\n\n // Listen for changes in redux location -> update angular location\n store.subscribe(() => {\n const state = store.getState();\n const angularUrl = this.$location.url();\n const url = locationUtil.stripBaseFromUrl(state.location.url);\n if (angularUrl !== url) {\n this.$timeout(() => {\n this.$location.url(url);\n // some state changes should not trigger new browser history\n if (state.location.replace) {\n this.$location.replace();\n }\n });\n console.log('store updating angular $location.url', url);\n }\n });\n\n appEvents.on('location-change', payload => {\n const urlWithoutBase = locationUtil.stripBaseFromUrl(payload.href);\n if (this.fullPageReloadRoutes.indexOf(urlWithoutBase) > -1) {\n this.$window.location.href = payload.href;\n return;\n }\n\n this.$timeout(() => {\n // A hack to use timeout when we're changing things (in this case the url) from outside of Angular.\n this.$location.url(urlWithoutBase);\n });\n });\n }\n}\n\ncoreModule.service('bridgeSrv', BridgeSrv);\n","import './alert_srv';\nimport './util_srv';\nimport './context_srv';\nimport './timer';\nimport './analytics';\nimport './popover_srv';\nimport './segment_srv';\nimport './backend_srv';\nimport './dynamic_directive_srv';\nimport './bridge_srv';\n","import _ from 'lodash';\nimport angular from 'angular';\nimport moment from 'moment';\nimport coreModule from '../core_module';\n\ncoreModule.filter('stringSort', () => {\n return input => {\n return input.sort();\n };\n});\n\ncoreModule.filter('slice', () => {\n return (arr, start, end) => {\n if (!_.isUndefined(arr)) {\n return arr.slice(start, end);\n }\n };\n});\n\ncoreModule.filter('stringify', () => {\n return arr => {\n if (_.isObject(arr) && !_.isArray(arr)) {\n return angular.toJson(arr);\n } else {\n return _.isNull(arr) ? null : arr.toString();\n }\n };\n});\n\ncoreModule.filter('moment', () => {\n return (date, mode) => {\n switch (mode) {\n case 'ago':\n return moment(date).fromNow();\n }\n return moment(date).fromNow();\n };\n});\n\ncoreModule.filter('noXml', () => {\n const noXml = text => {\n return _.isString(text)\n ? text\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/'/g, ''')\n .replace(/\"/g, '"')\n : text;\n };\n return text => {\n return _.isArray(text) ? _.map(text, noXml) : noXml(text);\n };\n});\n\n/** @ngInject */\nfunction interpolateTemplateVars(templateSrv) {\n const filterFunc: any = (text, scope) => {\n let scopedVars;\n if (scope.ctrl) {\n scopedVars = (scope.ctrl.panel || scope.ctrl.row).scopedVars;\n } else {\n scopedVars = scope.row.scopedVars;\n }\n\n return templateSrv.replaceWithText(text, scopedVars);\n };\n\n filterFunc.$stateful = true;\n return filterFunc;\n}\n\ncoreModule.filter('interpolateTemplateVars', interpolateTemplateVars);\nexport default {};\n","import coreModule from '../../core_module';\nimport appEvents from 'app/core/app_events';\n\nexport class HelpCtrl {\n tabIndex: any;\n shortcuts: any;\n\n /** @ngInject */\n constructor() {\n this.tabIndex = 0;\n this.shortcuts = {\n Global: [\n { keys: ['g', 'h'], description: 'Go to Home Dashboard' },\n { keys: ['g', 'p'], description: 'Go to Profile' },\n { keys: ['s', 'o'], description: 'Open search' },\n { keys: ['s', 's'], description: 'Open search with starred filter' },\n { keys: ['s', 't'], description: 'Open search in tags view' },\n { keys: ['esc'], description: 'Exit edit/setting views' },\n ],\n Dashboard: [\n { keys: ['mod+s'], description: 'Save dashboard' },\n { keys: ['d', 'r'], description: 'Refresh all panels' },\n { keys: ['d', 's'], description: 'Dashboard settings' },\n { keys: ['d', 'v'], description: 'Toggle in-active / view mode' },\n { keys: ['d', 'k'], description: 'Toggle kiosk mode (hides top nav)' },\n { keys: ['d', 'E'], description: 'Expand all rows' },\n { keys: ['d', 'C'], description: 'Collapse all rows' },\n { keys: ['d', 'a'], description: 'Toggle auto fit panels (experimental feature)' },\n { keys: ['mod+o'], description: 'Toggle shared graph crosshair' },\n { keys: ['d', 'l'], description: 'Toggle all panel legends' },\n ],\n 'Focused Panel': [\n { keys: ['e'], description: 'Toggle panel edit view' },\n { keys: ['v'], description: 'Toggle panel fullscreen view' },\n { keys: ['p', 's'], description: 'Open Panel Share Modal' },\n { keys: ['p', 'd'], description: 'Duplicate Panel' },\n { keys: ['p', 'r'], description: 'Remove Panel' },\n { keys: ['p', 'l'], description: 'Toggle panel legend' },\n ],\n 'Time Range': [\n { keys: ['t', 'z'], description: 'Zoom out time range' },\n {\n keys: ['t', ''],\n description: 'Move time range back',\n },\n {\n keys: ['t', ''],\n description: 'Move time range forward',\n },\n ],\n };\n }\n\n dismiss() {\n appEvents.emit('hide-modal');\n }\n}\n\nexport function helpModal() {\n return {\n restrict: 'E',\n templateUrl: 'public/app/core/components/help/help.html',\n controller: HelpCtrl,\n bindToController: true,\n transclude: true,\n controllerAs: 'ctrl',\n scope: {},\n };\n}\n\ncoreModule.directive('helpModal', helpModal);\n","import coreModule from 'app/core/core_module';\nimport config from 'app/core/config';\nimport _ from 'lodash';\n\nexport interface NavModelItem {\n text: string;\n url: string;\n icon?: string;\n img?: string;\n id: string;\n active?: boolean;\n hideFromTabs?: boolean;\n divider?: boolean;\n children: NavModelItem[];\n target?: string;\n}\n\nexport class NavModel {\n breadcrumbs: NavModelItem[];\n main: NavModelItem;\n node: NavModelItem;\n\n constructor() {\n this.breadcrumbs = [];\n }\n}\n\nexport class NavModelSrv {\n navItems: any;\n\n /** @ngInject */\n constructor() {\n this.navItems = config.bootData.navTree;\n }\n\n getCfgNode() {\n return _.find(this.navItems, { id: 'cfg' });\n }\n\n getNav(...args) {\n let children = this.navItems;\n const nav = new NavModel();\n\n for (const id of args) {\n // if its a number then it's the index to use for main\n if (_.isNumber(id)) {\n nav.main = nav.breadcrumbs[id];\n break;\n }\n\n const node = _.find(children, { id: id });\n nav.breadcrumbs.push(node);\n nav.node = node;\n nav.main = node;\n children = node.children;\n }\n\n if (nav.main.children) {\n for (const item of nav.main.children) {\n item.active = false;\n\n if (item.url === nav.node.url) {\n item.active = true;\n }\n }\n }\n\n return nav;\n }\n\n getNotFoundNav() {\n const node = {\n text: 'Page not found',\n icon: 'fa fa-fw fa-warning',\n subTitle: '404 Error',\n };\n\n return {\n breadcrumbs: [node],\n node: node,\n main: node,\n };\n }\n}\n\ncoreModule.service('navModelSrv', NavModelSrv);\n","import $ from 'jquery';\nimport baron from 'baron';\nimport coreModule from 'app/core/core_module';\n\nconst scrollBarHTML = `\n
    \n
    \n
    \n`;\n\nconst scrollRootClass = 'baron baron__root';\nconst scrollerClass = 'baron__scroller';\n\nexport function geminiScrollbar() {\n return {\n restrict: 'A',\n link: (scope, elem, attrs) => {\n let scrollRoot = elem.parent();\n const scroller = elem;\n\n console.log('scroll');\n if (attrs.grafanaScrollbar && attrs.grafanaScrollbar === 'scrollonroot') {\n scrollRoot = scroller;\n }\n\n scrollRoot.addClass(scrollRootClass);\n $(scrollBarHTML).appendTo(scrollRoot);\n elem.addClass(scrollerClass);\n\n const scrollParams = {\n root: scrollRoot[0],\n scroller: scroller[0],\n bar: '.baron__bar',\n barOnCls: '_scrollbar',\n scrollingCls: '_scrolling',\n track: '.baron__track',\n direction: 'v',\n };\n\n const scrollbar = baron(scrollParams);\n\n scope.$on('$destroy', () => {\n scrollbar.dispose();\n });\n },\n };\n}\n\ncoreModule.directive('grafanaScrollbar', geminiScrollbar);\n","import coreModule from 'app/core/core_module';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport config from 'app/core/config';\n\nconst template = `\n
    \n\t
    \n\t\t

    \n\t\t\t\n\t\t\tSwitch Organization\n\t\t

    \n\n\t\t\n\t\t\t\n\t\t\n\t
    \n\n
    \n \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    NameRole
    {{org.name}}{{org.role}}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCurrent\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSwitch to\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t
    \n
    `;\n\nexport class OrgSwitchCtrl {\n orgs: any[];\n currentOrgId: any;\n\n /** @ngInject */\n constructor(private backendSrv) {\n this.currentOrgId = contextSrv.user.orgId;\n this.getUserOrgs();\n }\n\n getUserOrgs() {\n this.backendSrv.get('/api/user/orgs').then(orgs => {\n this.orgs = orgs;\n });\n }\n\n setUsingOrg(org) {\n return this.backendSrv.post('/api/user/using/' + org.orgId).then(() => {\n this.setWindowLocation(config.appSubUrl + (config.appSubUrl.endsWith('/') ? '' : '/') + '?orgId=' + org.orgId);\n });\n }\n\n setWindowLocation(href: string) {\n window.location.href = href;\n }\n}\n\nexport function orgSwitcher() {\n return {\n restrict: 'E',\n template: template,\n controller: OrgSwitchCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: { dismiss: '&' },\n };\n}\n\ncoreModule.directive('orgSwitcher', orgSwitcher);\n","import React from 'react';\nimport _ from 'lodash';\n\nimport { Select, SelectOptionItem } from '@grafana/ui';\nimport { Variable } from 'app/types/templates';\n\nexport interface Props {\n onChange: (value: string) => void;\n options: SelectOptionItem[];\n isSearchable: boolean;\n value: string;\n placeholder?: string;\n className?: string;\n variables?: Variable[];\n}\n\ninterface State {\n options: any[];\n}\n\nexport class MetricSelect extends React.Component {\n static defaultProps = {\n variables: [],\n options: [],\n isSearchable: true,\n };\n\n constructor(props) {\n super(props);\n this.state = { options: [] };\n }\n\n componentDidMount() {\n this.setState({ options: this.buildOptions(this.props) });\n }\n\n componentWillReceiveProps(nextProps: Props) {\n if (nextProps.options.length > 0 || nextProps.variables.length) {\n this.setState({ options: this.buildOptions(nextProps) });\n }\n }\n\n shouldComponentUpdate(nextProps: Props) {\n const nextOptions = this.buildOptions(nextProps);\n return nextProps.value !== this.props.value || !_.isEqual(nextOptions, this.state.options);\n }\n\n buildOptions({ variables = [], options }) {\n return variables.length > 0 ? [this.getVariablesGroup(), ...options] : options;\n }\n\n getVariablesGroup() {\n return {\n label: 'Template Variables',\n options: this.props.variables.map(v => ({\n label: `$${v.name}`,\n value: `$${v.name}`,\n })),\n };\n }\n\n getSelectedOption() {\n const { options } = this.state;\n const allOptions = options.every(o => o.options) ? _.flatten(options.map(o => o.options)) : options;\n return allOptions.find(option => option.value === this.props.value);\n }\n\n render() {\n const { placeholder, className, isSearchable, onChange } = this.props;\n const { options } = this.state;\n const selectedOption = this.getSelectedOption();\n\n return (\n onChange(item.value)}\n options={options}\n isSearchable={isSearchable}\n maxMenuHeight={500}\n placeholder={placeholder}\n noOptionsMessage={() => 'No options found'}\n value={selectedOption}\n />\n );\n }\n}\n","import React from 'react';\nimport _ from 'lodash';\n\nimport StackdriverDatasource from '../datasource';\nimport appEvents from 'app/core/app_events';\nimport { MetricDescriptor } from '../types';\nimport { MetricSelect } from 'app/core/components/Select/MetricSelect';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nexport interface Props {\n onChange: (metricDescriptor: MetricDescriptor) => void;\n templateSrv: TemplateSrv;\n datasource: StackdriverDatasource;\n defaultProject: string;\n metricType: string;\n children?: (renderProps: any) => JSX.Element;\n}\n\ninterface State {\n metricDescriptors: MetricDescriptor[];\n metrics: any[];\n services: any[];\n service: string;\n metric: string;\n metricDescriptor: MetricDescriptor;\n defaultProject: string;\n}\n\nexport class Metrics extends React.Component {\n state: State = {\n metricDescriptors: [],\n metrics: [],\n services: [],\n service: '',\n metric: '',\n metricDescriptor: null,\n defaultProject: '',\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.setState({ defaultProject: this.props.defaultProject }, () => {\n this.getCurrentProject()\n .then(this.loadMetricDescriptors.bind(this))\n .then(this.initializeServiceAndMetrics.bind(this));\n });\n }\n\n async getCurrentProject() {\n return new Promise(async (resolve, reject) => {\n try {\n if (!this.state.defaultProject || this.state.defaultProject === 'loading project...') {\n const defaultProject = await this.props.datasource.getDefaultProject();\n this.setState({ defaultProject });\n }\n resolve(this.state.defaultProject);\n } catch (error) {\n appEvents.emit('ds-request-error', error);\n reject();\n }\n });\n }\n\n async loadMetricDescriptors() {\n if (this.state.defaultProject !== 'loading project...') {\n const metricDescriptors = await this.props.datasource.getMetricTypes(this.state.defaultProject);\n this.setState({ metricDescriptors });\n return metricDescriptors;\n } else {\n return [];\n }\n }\n\n async initializeServiceAndMetrics() {\n const { metricDescriptors } = this.state;\n const services = this.getServicesList(metricDescriptors);\n const metrics = this.getMetricsList(metricDescriptors);\n const service = metrics.length > 0 ? metrics[0].service : '';\n const metricDescriptor = this.getSelectedMetricDescriptor(this.props.metricType);\n this.setState({ metricDescriptors, services, metrics, service: service, metricDescriptor });\n }\n\n getSelectedMetricDescriptor(metricType) {\n return this.state.metricDescriptors.find(md => md.type === this.props.templateSrv.replace(metricType));\n }\n\n getMetricsList(metricDescriptors: MetricDescriptor[]) {\n const selectedMetricDescriptor = this.getSelectedMetricDescriptor(this.props.metricType);\n if (!selectedMetricDescriptor) {\n return [];\n }\n const metricsByService = metricDescriptors\n .filter(m => m.service === selectedMetricDescriptor.service)\n .map(m => ({\n service: m.service,\n value: m.type,\n label: m.displayName,\n description: m.description,\n }));\n return metricsByService;\n }\n\n onServiceChange = service => {\n const { metricDescriptors } = this.state;\n const { templateSrv, metricType } = this.props;\n\n const metrics = metricDescriptors\n .filter(m => m.service === templateSrv.replace(service))\n .map(m => ({\n service: m.service,\n value: m.type,\n label: m.displayName,\n description: m.description,\n }));\n\n this.setState({ service, metrics });\n\n if (metrics.length > 0 && !metrics.some(m => m.value === templateSrv.replace(metricType))) {\n this.onMetricTypeChange(metrics[0].value);\n }\n };\n\n onMetricTypeChange = value => {\n const metricDescriptor = this.getSelectedMetricDescriptor(value);\n this.setState({ metricDescriptor });\n this.props.onChange({ ...metricDescriptor, type: value });\n };\n\n getServicesList(metricDescriptors: MetricDescriptor[]) {\n const services = metricDescriptors.map(m => ({\n value: m.service,\n label: _.startCase(m.serviceShortName),\n }));\n\n return services.length > 0 ? _.uniqBy(services, s => s.value) : [];\n }\n\n getTemplateVariablesGroup() {\n return {\n label: 'Template Variables',\n options: this.props.templateSrv.variables.map(v => ({\n label: `$${v.name}`,\n value: `$${v.name}`,\n })),\n };\n }\n\n render() {\n const { services, service, metrics } = this.state;\n const { metricType, templateSrv } = this.props;\n\n return (\n <>\n
    \n
    \n Service\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Metric\n \n
    \n
    \n
    \n
    \n
    \n {this.props.children(this.state.metricDescriptor)}\n \n );\n }\n}\n","export const DefaultRemoveFilterValue = '-- remove filter --';\nexport const DefaultFilterValue = 'select value';\n\nexport class FilterSegments {\n filterSegments: any[];\n removeSegment: any;\n\n constructor(private uiSegmentSrv, private filters, private getFilterKeysFunc, private getFilterValuesFunc) {}\n\n buildSegmentModel() {\n this.removeSegment = this.uiSegmentSrv.newSegment({ fake: true, value: DefaultRemoveFilterValue });\n\n this.filterSegments = [];\n this.filters.forEach((f, index) => {\n switch (index % 4) {\n case 0:\n this.filterSegments.push(this.uiSegmentSrv.newKey(f));\n break;\n case 1:\n this.filterSegments.push(this.uiSegmentSrv.newOperator(f));\n break;\n case 2:\n this.filterSegments.push(this.uiSegmentSrv.newKeyValue(f));\n break;\n case 3:\n this.filterSegments.push(this.uiSegmentSrv.newCondition(f));\n break;\n }\n });\n this.ensurePlusButton(this.filterSegments);\n }\n\n async getFilters(segment, index, hasNoFilterKeys) {\n if (segment.type === 'condition') {\n return [this.uiSegmentSrv.newSegment('AND')];\n }\n\n if (segment.type === 'operator') {\n return this.uiSegmentSrv.newOperators(['=', '!=', '=~', '!=~']);\n }\n\n if (segment.type === 'key' || segment.type === 'plus-button') {\n if (hasNoFilterKeys && segment.value && segment.value !== DefaultRemoveFilterValue) {\n this.removeSegment.value = DefaultRemoveFilterValue;\n return Promise.resolve([this.removeSegment]);\n } else {\n return this.getFilterKeysFunc(segment, DefaultRemoveFilterValue);\n }\n }\n\n if (segment.type === 'value') {\n const filterValues = this.getFilterValuesFunc(index);\n\n if (filterValues.length > 0) {\n return this.getValuesForFilterKey(filterValues);\n }\n }\n\n return [];\n }\n\n getValuesForFilterKey(labels: any[]) {\n const filterValues = labels.map(l => {\n return this.uiSegmentSrv.newSegment({\n value: `${l}`,\n expandable: false,\n });\n });\n\n return filterValues;\n }\n\n addNewFilterSegments(segment, index) {\n if (index > 2) {\n this.filterSegments.splice(index, 0, this.uiSegmentSrv.newCondition('AND'));\n }\n segment.type = 'key';\n this.filterSegments.push(this.uiSegmentSrv.newOperator('='));\n this.filterSegments.push(this.uiSegmentSrv.newFake(DefaultFilterValue, 'value', 'query-segment-value'));\n }\n\n removeFilterSegment(index) {\n this.filterSegments.splice(index, 3);\n // remove trailing condition\n if (index > 2 && this.filterSegments[index - 1].type === 'condition') {\n this.filterSegments.splice(index - 1, 1);\n }\n\n // remove condition if it is first segment\n if (index === 0 && this.filterSegments.length > 0 && this.filterSegments[0].type === 'condition') {\n this.filterSegments.splice(0, 1);\n }\n }\n\n ensurePlusButton(segments) {\n const count = segments.length;\n const lastSegment = segments[Math.max(count - 1, 0)];\n\n if (!lastSegment || lastSegment.type !== 'plus-button') {\n segments.push(this.uiSegmentSrv.newPlusButton());\n }\n }\n\n filterSegmentUpdated(segment, index) {\n if (segment.type === 'plus-button') {\n this.addNewFilterSegments(segment, index);\n } else if (segment.type === 'key' && segment.value === DefaultRemoveFilterValue) {\n this.removeFilterSegment(index);\n this.ensurePlusButton(this.filterSegments);\n } else if (segment.type === 'value' && segment.value !== DefaultFilterValue) {\n this.ensurePlusButton(this.filterSegments);\n }\n\n return this.filterSegments.filter(s => s.type !== 'plus-button').map(seg => seg.value);\n }\n}\n","import coreModule from 'app/core/core_module';\nimport _ from 'lodash';\nimport { FilterSegments, DefaultFilterValue } from './filter_segments';\n\nexport class StackdriverFilterCtrl {\n defaultRemoveGroupByValue = '-- remove group by --';\n resourceTypeValue = 'resource.type';\n groupBySegments: any[];\n filterSegments: FilterSegments;\n removeSegment: any;\n filters: string[];\n groupBys: string[];\n hideGroupBys: boolean;\n labelData: any;\n loading: Promise;\n filtersChanged: (filters) => void;\n groupBysChanged: (groupBys) => void;\n\n /** @ngInject */\n constructor(private $scope, private uiSegmentSrv, private templateSrv) {\n this.$scope.ctrl = this;\n this.initSegments(this.hideGroupBys);\n }\n\n initSegments(hideGroupBys: boolean) {\n if (!hideGroupBys) {\n this.groupBySegments = this.groupBys.map(groupBy => {\n return this.uiSegmentSrv.getSegmentForValue(groupBy);\n });\n this.ensurePlusButton(this.groupBySegments);\n }\n\n this.removeSegment = this.uiSegmentSrv.newSegment({ fake: true, value: '-- remove group by --' });\n\n this.filterSegments = new FilterSegments(\n this.uiSegmentSrv,\n this.filters,\n this.getFilterKeys.bind(this),\n this.getFilterValues.bind(this)\n );\n this.filterSegments.buildSegmentModel();\n }\n\n async createLabelKeyElements() {\n await this.loading;\n\n let elements = Object.keys(this.labelData.metricLabels || {}).map(l => {\n return this.uiSegmentSrv.newSegment({\n value: `metric.label.${l}`,\n expandable: false,\n });\n });\n\n elements = [\n ...elements,\n ...Object.keys(this.labelData.resourceLabels || {}).map(l => {\n return this.uiSegmentSrv.newSegment({\n value: `resource.label.${l}`,\n expandable: false,\n });\n }),\n ];\n\n if (this.labelData.resourceTypes && this.labelData.resourceTypes.length > 0) {\n elements = [\n ...elements,\n this.uiSegmentSrv.newSegment({\n value: this.resourceTypeValue,\n expandable: false,\n }),\n ];\n }\n\n return elements;\n }\n\n async getFilterKeys(segment, removeText: string) {\n let elements = await this.createLabelKeyElements();\n\n if (this.filters.indexOf(this.resourceTypeValue) !== -1) {\n elements = elements.filter(e => e.value !== this.resourceTypeValue);\n }\n\n const noValueOrPlusButton = !segment || segment.type === 'plus-button';\n if (noValueOrPlusButton && elements.length === 0) {\n return [];\n }\n\n return segment.type === 'plus-button'\n ? elements\n : [\n ...elements,\n this.uiSegmentSrv.newSegment({ fake: true, value: removeText || this.defaultRemoveGroupByValue }),\n ];\n }\n\n async getGroupBys(segment) {\n let elements = await this.createLabelKeyElements();\n elements = elements.filter(e => this.groupBys.indexOf(e.value) === -1);\n const noValueOrPlusButton = !segment || segment.type === 'plus-button';\n if (noValueOrPlusButton && elements.length === 0) {\n return [];\n }\n\n this.removeSegment.value = this.defaultRemoveGroupByValue;\n return segment.type === 'plus-button' ? elements : [...elements, this.removeSegment];\n }\n\n groupByChanged(segment, index) {\n if (segment.value === this.removeSegment.value) {\n this.groupBySegments.splice(index, 1);\n } else {\n segment.type = 'value';\n }\n\n const reducer = (memo, seg) => {\n if (!seg.fake) {\n memo.push(seg.value);\n }\n return memo;\n };\n\n const groupBys = this.groupBySegments.reduce(reducer, []);\n this.groupBysChanged({ groupBys });\n this.ensurePlusButton(this.groupBySegments);\n }\n\n async getFilters(segment, index) {\n await this.loading;\n const hasNoFilterKeys = this.labelData.metricLabels && Object.keys(this.labelData.metricLabels).length === 0;\n return this.filterSegments.getFilters(segment, index, hasNoFilterKeys);\n }\n\n getFilterValues(index) {\n const filterKey = this.templateSrv.replace(this.filterSegments.filterSegments[index - 2].value);\n if (!filterKey || !this.labelData.metricLabels || Object.keys(this.labelData.metricLabels).length === 0) {\n return [];\n }\n\n const shortKey = filterKey.substring(filterKey.indexOf('.label.') + 7);\n\n if (filterKey.startsWith('metric.label.') && this.labelData.metricLabels.hasOwnProperty(shortKey)) {\n return this.labelData.metricLabels[shortKey];\n }\n\n if (filterKey.startsWith('resource.label.') && this.labelData.resourceLabels.hasOwnProperty(shortKey)) {\n return this.labelData.resourceLabels[shortKey];\n }\n\n if (filterKey === this.resourceTypeValue) {\n return this.labelData.resourceTypes;\n }\n\n return [];\n }\n\n filterSegmentUpdated(segment, index) {\n const filters = this.filterSegments.filterSegmentUpdated(segment, index);\n if (!filters.some(f => f === DefaultFilterValue)) {\n this.filtersChanged({ filters });\n }\n }\n\n ensurePlusButton(segments) {\n const count = segments.length;\n const lastSegment = segments[Math.max(count - 1, 0)];\n\n if (!lastSegment || lastSegment.type !== 'plus-button') {\n segments.push(this.uiSegmentSrv.newPlusButton());\n }\n }\n}\n\n/** @ngInject */\nfunction stackdriverFilter() {\n return {\n templateUrl: 'public/app/plugins/datasource/stackdriver/partials/query.filter.html',\n controller: StackdriverFilterCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n restrict: 'E',\n scope: {\n labelData: '<',\n loading: '<',\n groupBys: '<',\n filters: '<',\n filtersChanged: '&',\n groupBysChanged: '&',\n hideGroupBys: '<',\n },\n };\n}\n\ncoreModule.directive('stackdriverFilter', stackdriverFilter);\n","import React from 'react';\nimport _ from 'lodash';\nimport appEvents from 'app/core/app_events';\n\nimport { QueryMeta } from '../types';\nimport { getAngularLoader, AngularComponent } from 'app/core/services/AngularLoader';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\nimport StackdriverDatasource from '../datasource';\nimport '../query_filter_ctrl';\n\nexport interface Props {\n filtersChanged: (filters: string[]) => void;\n groupBysChanged?: (groupBys: string[]) => void;\n metricType: string;\n templateSrv: TemplateSrv;\n groupBys?: string[];\n filters: string[];\n datasource: StackdriverDatasource;\n refId: string;\n hideGroupBys: boolean;\n}\n\ninterface State {\n labelData: QueryMeta;\n loading: Promise;\n}\n\nconst labelData = {\n metricLabels: {},\n resourceLabels: {},\n resourceTypes: [],\n};\n\nexport class Filter extends React.Component {\n element: any;\n component: AngularComponent;\n\n async componentDidMount() {\n if (!this.element) {\n return;\n }\n\n const { groupBys, filters, hideGroupBys } = this.props;\n const loader = getAngularLoader();\n\n const filtersChanged = filters => {\n this.props.filtersChanged(filters);\n };\n\n const groupBysChanged = groupBys => {\n this.props.groupBysChanged(groupBys);\n };\n\n const scopeProps = {\n loading: null,\n labelData,\n groupBys,\n filters,\n filtersChanged,\n groupBysChanged,\n hideGroupBys,\n };\n const loading = this.loadLabels(scopeProps);\n scopeProps.loading = loading;\n const template = ``;\n this.component = loader.load(this.element, scopeProps, template);\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.element) {\n return;\n }\n const scope = this.component.getScope();\n if (prevProps.metricType !== this.props.metricType) {\n scope.loading = this.loadLabels(scope);\n }\n scope.filters = this.props.filters;\n scope.groupBys = this.props.groupBys;\n }\n\n componentWillUnmount() {\n if (this.component) {\n this.component.destroy();\n }\n }\n\n async loadLabels(scope) {\n return new Promise(async resolve => {\n try {\n if (!this.props.metricType) {\n scope.labelData = labelData;\n } else {\n const { meta } = await this.props.datasource.getLabels(this.props.metricType, this.props.refId);\n scope.labelData = meta;\n }\n resolve();\n } catch (error) {\n appEvents.emit('alert-error', ['Error', 'Error loading metric labels for ' + this.props.metricType]);\n scope.labelData = labelData;\n resolve();\n }\n });\n }\n\n render() {\n return
    (this.element = element)} style={{ width: '100%' }} />;\n }\n}\n","import React from 'react';\nimport _ from 'lodash';\n\nimport { MetricSelect } from 'app/core/components/Select/MetricSelect';\nimport { getAggregationOptionsByMetric } from '../functions';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nexport interface Props {\n onChange: (metricDescriptor) => void;\n templateSrv: TemplateSrv;\n metricDescriptor: {\n valueType: string;\n metricKind: string;\n };\n crossSeriesReducer: string;\n groupBys: string[];\n children?: (renderProps: any) => JSX.Element;\n}\n\nexport interface State {\n aggOptions: any[];\n displayAdvancedOptions: boolean;\n}\n\nexport class Aggregations extends React.Component {\n state: State = {\n aggOptions: [],\n displayAdvancedOptions: false,\n };\n\n componentDidMount() {\n this.setAggOptions(this.props);\n }\n\n componentWillReceiveProps(nextProps: Props) {\n this.setAggOptions(nextProps);\n }\n\n setAggOptions({ metricDescriptor }: Props) {\n let aggOptions = [];\n if (metricDescriptor) {\n aggOptions = [\n {\n label: 'Aggregations',\n expanded: true,\n options: getAggregationOptionsByMetric(metricDescriptor.valueType, metricDescriptor.metricKind).map(a => ({\n ...a,\n label: a.text,\n })),\n },\n ];\n }\n this.setState({ aggOptions });\n }\n\n onToggleDisplayAdvanced = () => {\n this.setState(state => ({\n displayAdvancedOptions: !state.displayAdvancedOptions,\n }));\n };\n\n render() {\n const { displayAdvancedOptions, aggOptions } = this.state;\n const { templateSrv, onChange, crossSeriesReducer } = this.props;\n\n return (\n <>\n
    \n
    \n \n \n
    \n \n
    \n {this.props.children(this.state.displayAdvancedOptions)}\n \n );\n }\n}\n","import React, { FC } from 'react';\nimport _ from 'lodash';\n\nimport { MetricSelect } from 'app/core/components/Select/MetricSelect';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\nimport { SelectOptionItem } from '@grafana/ui';\n\nexport interface Props {\n onChange: (perSeriesAligner) => void;\n templateSrv: TemplateSrv;\n alignOptions: SelectOptionItem[];\n perSeriesAligner: string;\n}\n\nexport const Alignments: FC = ({ perSeriesAligner, templateSrv, onChange, alignOptions }) => {\n return (\n <>\n
    \n
    \n \n \n
    \n
    \n \n );\n};\n","import React, { FC } from 'react';\nimport _ from 'lodash';\n\nimport kbn from 'app/core/utils/kbn';\nimport { MetricSelect } from 'app/core/components/Select/MetricSelect';\nimport { alignmentPeriods, alignOptions } from '../constants';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nexport interface Props {\n onChange: (alignmentPeriod) => void;\n templateSrv: TemplateSrv;\n alignmentPeriod: string;\n perSeriesAligner: string;\n usedAlignmentPeriod: string;\n}\n\nexport const AlignmentPeriods: FC = ({\n alignmentPeriod,\n templateSrv,\n onChange,\n perSeriesAligner,\n usedAlignmentPeriod,\n}) => {\n const alignment = alignOptions.find(ap => ap.value === templateSrv.replace(perSeriesAligner));\n const formatAlignmentText = `${kbn.secondsToHms(usedAlignmentPeriod)} interval (${alignment ? alignment.text : ''})`;\n\n return (\n <>\n
    \n
    \n \n ({\n ...ap,\n label: ap.text,\n })),\n },\n ]}\n placeholder=\"Select Alignment\"\n className=\"width-15\"\n />\n
    \n
    \n {usedAlignmentPeriod && }\n
    \n
    \n \n );\n};\n","import React, { Component } from 'react';\nimport { debounce } from 'lodash';\nimport { Input } from '@grafana/ui';\n\nexport interface Props {\n onChange: (alignmentPeriod) => void;\n value: string;\n}\n\nexport interface State {\n value: string;\n}\n\nexport class AliasBy extends Component {\n propagateOnChange: (value) => void;\n\n constructor(props) {\n super(props);\n this.propagateOnChange = debounce(this.props.onChange, 500);\n this.state = { value: '' };\n }\n\n componentDidMount() {\n this.setState({ value: this.props.value });\n }\n\n componentWillReceiveProps(nextProps: Props) {\n if (nextProps.value !== this.props.value) {\n this.setState({ value: nextProps.value });\n }\n }\n\n onChange = e => {\n this.setState({ value: e.target.value });\n this.propagateOnChange(e.target.value);\n };\n\n render() {\n return (\n <>\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n","import React from 'react';\nimport { Input } from '@grafana/ui';\nimport StackdriverDatasource from '../datasource';\n\nexport interface Props {\n datasource: StackdriverDatasource;\n}\n\ninterface State {\n projectName: string;\n}\n\nexport class Project extends React.Component {\n state: State = {\n projectName: 'Loading project...',\n };\n\n async componentDidMount() {\n const projectName = await this.props.datasource.getDefaultProject();\n this.setState({ projectName });\n }\n\n render() {\n const { projectName } = this.state;\n return (\n
    \n Project\n \n
    \n );\n }\n}\n","import React from 'react';\nimport { Project } from './Project';\nimport StackdriverDatasource from '../datasource';\n\nexport interface Props {\n datasource: StackdriverDatasource;\n rawQuery: string;\n lastQueryError: string;\n}\n\ninterface State {\n displayHelp: boolean;\n displaRawQuery: boolean;\n}\n\nexport class Help extends React.Component {\n state: State = {\n displayHelp: false,\n displaRawQuery: false,\n };\n\n onHelpClicked = () => {\n this.setState({ displayHelp: !this.state.displayHelp });\n };\n\n onRawQueryClicked = () => {\n this.setState({ displaRawQuery: !this.state.displaRawQuery });\n };\n\n shouldComponentUpdate(nextProps) {\n return nextProps.metricDescriptor !== null;\n }\n\n render() {\n const { displayHelp, displaRawQuery } = this.state;\n const { datasource, rawQuery, lastQueryError } = this.props;\n\n return (\n <>\n
    \n \n
    \n \n
    \n\n {rawQuery && (\n
    \n \n
    \n )}\n\n
    \n
    \n
    \n
    \n {rawQuery && displaRawQuery && (\n
    \n
    {rawQuery}
    \n
    \n )}\n\n {displayHelp && (\n
    \n
    \n              
    Alias Patterns
    Format the legend keys any way you want by using alias patterns. Format the legend\n keys any way you want by using alias patterns.\n

    \n Example:\n {`${'{{metricDescriptor.name}} - {{metricDescriptor.label.instance_name}}'}`}\n
    \n Result:   cpu/usage_time - server1-europe-west-1\n
    \n
    \n Patterns\n
    \n
      \n
    • \n {`${'{{metricDescriptor.type}}'}`} = metric type e.g.\n compute.googleapis.com/instance/cpu/usage_time\n
    • \n
    • \n {`${'{{metricDescriptor.name}}'}`} = name part of metric e.g. instance/cpu/usage_time\n
    • \n
    • \n {`${'{{metricDescriptor.service}}'}`} = service part of metric e.g. compute\n
    • \n
    • \n {`${'{{metricDescriptor.label.label_name}}'}`} = Metric label metadata e.g.\n metricDescriptor.label.instance_name\n
    • \n
    • \n {`${'{{resource.label.label_name}}'}`} = Resource label metadata e.g. resource.label.zone\n
    • \n
    • \n {`${'{{bucket}}'}`} = bucket boundary for distribution metrics when using a heatmap in\n Grafana\n
    • \n
    \n
    \n
    \n )}\n\n {lastQueryError && (\n
    \n
    {lastQueryError}
    \n
    \n )}\n \n );\n }\n}\n","import React from 'react';\nimport _ from 'lodash';\n\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nimport { Metrics } from './Metrics';\nimport { Filter } from './Filter';\nimport { Aggregations } from './Aggregations';\nimport { Alignments } from './Alignments';\nimport { AlignmentPeriods } from './AlignmentPeriods';\nimport { AliasBy } from './AliasBy';\nimport { Help } from './Help';\nimport { StackdriverQuery, MetricDescriptor } from '../types';\nimport { getAlignmentPickerData } from '../functions';\nimport StackdriverDatasource from '../datasource';\nimport { SelectOptionItem } from '@grafana/ui';\n\nexport interface Props {\n onQueryChange: (target: StackdriverQuery) => void;\n onExecuteQuery: () => void;\n target: StackdriverQuery;\n events: any;\n datasource: StackdriverDatasource;\n templateSrv: TemplateSrv;\n}\n\ninterface State extends StackdriverQuery {\n alignOptions: SelectOptionItem[];\n lastQuery: string;\n lastQueryError: string;\n [key: string]: any;\n}\n\nexport const DefaultTarget: State = {\n defaultProject: 'loading project...',\n metricType: '',\n metricKind: '',\n valueType: '',\n refId: '',\n service: '',\n unit: '',\n crossSeriesReducer: 'REDUCE_MEAN',\n alignmentPeriod: 'stackdriver-auto',\n perSeriesAligner: 'ALIGN_MEAN',\n groupBys: [],\n filters: [],\n aliasBy: '',\n alignOptions: [],\n lastQuery: '',\n lastQueryError: '',\n usedAlignmentPeriod: '',\n};\n\nexport class QueryEditor extends React.Component {\n state: State = DefaultTarget;\n\n componentDidMount() {\n const { events, target, templateSrv } = this.props;\n events.on('data-received', this.onDataReceived.bind(this));\n events.on('data-error', this.onDataError.bind(this));\n const { perSeriesAligner, alignOptions } = getAlignmentPickerData(target, templateSrv);\n this.setState({\n ...this.props.target,\n alignOptions,\n perSeriesAligner,\n });\n }\n\n componentWillUnmount() {\n this.props.events.off('data-received', this.onDataReceived);\n this.props.events.off('data-error', this.onDataError);\n }\n\n onDataReceived(dataList) {\n const series = dataList.find(item => item.refId === this.props.target.refId);\n if (series) {\n this.setState({\n lastQuery: decodeURIComponent(series.meta.rawQuery),\n lastQueryError: '',\n usedAlignmentPeriod: series.meta.alignmentPeriod,\n });\n }\n }\n\n onDataError(err) {\n let lastQuery;\n let lastQueryError;\n if (err.data && err.data.error) {\n lastQueryError = this.props.datasource.formatStackdriverError(err);\n } else if (err.data && err.data.results) {\n const queryRes = err.data.results[this.props.target.refId];\n lastQuery = decodeURIComponent(queryRes.meta.rawQuery);\n if (queryRes && queryRes.error) {\n try {\n lastQueryError = JSON.parse(queryRes.error).error.message;\n } catch {\n lastQueryError = queryRes.error;\n }\n }\n }\n this.setState({ lastQuery, lastQueryError });\n }\n\n onMetricTypeChange = ({ valueType, metricKind, type, unit }: MetricDescriptor) => {\n const { templateSrv, onQueryChange, onExecuteQuery } = this.props;\n const { perSeriesAligner, alignOptions } = getAlignmentPickerData(\n { valueType, metricKind, perSeriesAligner: this.state.perSeriesAligner },\n templateSrv\n );\n this.setState(\n {\n alignOptions,\n perSeriesAligner,\n metricType: type,\n unit,\n valueType,\n metricKind,\n },\n () => {\n onQueryChange(this.state);\n onExecuteQuery();\n }\n );\n };\n\n onPropertyChange(prop, value) {\n this.setState({ [prop]: value }, () => {\n this.props.onQueryChange(this.state);\n this.props.onExecuteQuery();\n });\n }\n\n render() {\n const {\n usedAlignmentPeriod,\n defaultProject,\n metricType,\n crossSeriesReducer,\n groupBys,\n filters,\n perSeriesAligner,\n alignOptions,\n alignmentPeriod,\n aliasBy,\n lastQuery,\n lastQueryError,\n refId,\n } = this.state;\n const { datasource, templateSrv } = this.props;\n\n return (\n <>\n \n {metric => (\n <>\n this.onPropertyChange('filters', value)}\n groupBysChanged={value => this.onPropertyChange('groupBys', value)}\n filters={filters}\n groupBys={groupBys}\n refId={refId}\n hideGroupBys={false}\n templateSrv={templateSrv}\n datasource={datasource}\n metricType={metric ? metric.type : ''}\n />\n this.onPropertyChange('crossSeriesReducer', value)}\n >\n {displayAdvancedOptions =>\n displayAdvancedOptions && (\n this.onPropertyChange('perSeriesAligner', value)}\n />\n )\n }\n \n this.onPropertyChange('alignmentPeriod', value)}\n />\n this.onPropertyChange('aliasBy', value)} />\n \n \n )}\n \n \n );\n }\n}\n","import React from 'react';\nimport { Input } from '@grafana/ui';\n\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nimport StackdriverDatasource from '../datasource';\nimport { Metrics } from './Metrics';\nimport { Filter } from './Filter';\nimport { AnnotationTarget } from '../types';\nimport { AnnotationsHelp } from './AnnotationsHelp';\n\nexport interface Props {\n onQueryChange: (target: AnnotationTarget) => void;\n target: AnnotationTarget;\n datasource: StackdriverDatasource;\n templateSrv: TemplateSrv;\n}\n\ninterface State extends AnnotationTarget {\n [key: string]: any;\n}\n\nconst DefaultTarget: State = {\n defaultProject: 'loading project...',\n metricType: '',\n filters: [],\n metricKind: '',\n valueType: '',\n refId: 'annotationQuery',\n title: '',\n text: '',\n};\n\nexport class AnnotationQueryEditor extends React.Component {\n state: State = DefaultTarget;\n\n componentDidMount() {\n this.setState({\n ...this.props.target,\n });\n }\n\n onMetricTypeChange = ({ valueType, metricKind, type, unit }) => {\n const { onQueryChange } = this.props;\n this.setState(\n {\n metricType: type,\n unit,\n valueType,\n metricKind,\n },\n () => {\n onQueryChange(this.state);\n }\n );\n };\n\n onChange(prop, value) {\n this.setState({ [prop]: value }, () => {\n this.props.onQueryChange(this.state);\n });\n }\n\n render() {\n const { defaultProject, metricType, filters, refId, title, text } = this.state;\n const { datasource, templateSrv } = this.props;\n\n return (\n <>\n \n {metric => (\n <>\n this.onChange('filters', value)}\n filters={filters}\n refId={refId}\n hideGroupBys={true}\n templateSrv={templateSrv}\n datasource={datasource}\n metricType={metric ? metric.type : ''}\n />\n \n )}\n \n
    \n
    \n Title\n this.onChange('title', e.target.value)}\n />\n
    \n
    \n Text\n this.onChange('text', e.target.value)}\n />\n
    \n
    \n
    \n
    \n
    \n\n \n \n );\n }\n}\n","import React, { FC } from 'react';\n\nexport const AnnotationsHelp: FC = () => {\n return (\n
    \n
    \n        
    Annotation Query Format
    \n

    \n An annotation is an event that is overlaid on top of graphs. Annotation rendering is expensive so it is\n important to limit the number of rows returned.{' '}\n

    \n

    \n The Title and Text fields support templating and can use data returned from the query. For example, the Title\n field could have the following text:\n

    \n \n {`${'{{metric.type}}'}`} has value: {`${'{{metric.value}}'}`}\n \n

    \n Example Result: monitoring.googleapis.com/uptime_check/http_status has this value: 502\n

    \n \n

    \n {`${'{{metric.value}}'}`} = value of the metric/point\n

    \n

    \n {`${'{{metric.type}}'}`} = metric type e.g. compute.googleapis.com/instance/cpu/usage_time\n

    \n

    \n {`${'{{metric.name}}'}`} = name part of metric e.g. instance/cpu/usage_time\n

    \n

    \n {`${'{{metric.service}}'}`} = service part of metric e.g. compute\n

    \n

    \n {`${'{{metric.label.label_name}}'}`} = Metric label metadata e.g. metric.label.instance_name\n

    \n

    \n {`${'{{resource.label.label_name}}'}`} = Resource label metadata e.g. resource.label.zone\n

    \n
    \n
    \n );\n};\n","import React from 'react';\n\nexport interface Props {\n password: string;\n}\n\nexport class PasswordStrength extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const { password } = this.props;\n let strengthText = 'strength: strong like a bull.';\n let strengthClass = 'password-strength-good';\n\n if (!password) {\n return null;\n }\n\n if (password.length <= 8) {\n strengthText = 'strength: you can do better.';\n strengthClass = 'password-strength-ok';\n }\n\n if (password.length < 4) {\n strengthText = 'strength: weak sauce.';\n strengthClass = 'password-strength-bad';\n }\n\n return (\n
    \n {strengthText}\n
    \n );\n }\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport class SearchResult extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n search: '',\n };\n }\n\n render() {\n return this.state.search.sections.map(section => {\n return ;\n });\n }\n}\n\nexport interface SectionProps {\n section: any;\n}\n\nexport class SearchResultSection extends React.Component {\n constructor(props) {\n super(props);\n }\n\n renderItem(item) {\n return (\n \n \n \n \n \n
    {item.title}
    \n
    \n
    \n );\n }\n\n toggleSection = () => {\n this.props.section.toggle();\n };\n\n render() {\n const collapseClassNames = classNames({\n fa: true,\n 'fa-plus': !this.props.section.expanded,\n 'fa-minus': this.props.section.expanded,\n 'search-section__header__toggle': true,\n });\n\n return (\n
    \n
    \n \n {this.props.section.title}\n \n
    \n {this.props.section.expanded && (\n
    {this.props.section.items.map(this.renderItem)}
    \n )}\n
    \n );\n }\n}\n","import React from 'react';\nimport { components } from '@torkelo/react-select';\nimport { OptionProps } from 'react-select/lib/components/Option';\nimport { TagBadge } from './TagBadge';\n\n// https://github.com/JedWatson/react-select/issues/3038\ninterface ExtendedOptionProps extends OptionProps {\n data: any;\n}\n\nexport const TagOption = (props: ExtendedOptionProps) => {\n const { data, className, label } = props;\n return (\n \n
    \n \n
    \n
    \n );\n};\n\nexport default TagOption;\n","import React from 'react';\nimport { NoOptionsMessage, IndicatorsContainer, resetSelectStyles } from '@grafana/ui';\nimport AsyncSelect from '@torkelo/react-select/lib/Async';\n\nimport { TagOption } from './TagOption';\nimport { TagBadge } from './TagBadge';\nimport { components } from '@torkelo/react-select';\nimport { escapeStringForRegex } from '../FilterInput/FilterInput';\n\nexport interface Props {\n tags: string[];\n tagOptions: () => any;\n onChange: (tags: string[]) => void;\n}\n\nexport class TagFilter extends React.Component {\n inlineTags: boolean;\n\n constructor(props) {\n super(props);\n }\n\n onLoadOptions = query => {\n return this.props.tagOptions().then(options => {\n return options.map(option => ({\n value: option.term,\n label: option.term,\n count: option.count,\n }));\n });\n };\n\n onChange = (newTags: any[]) => {\n this.props.onChange(newTags.map(tag => tag.value));\n };\n\n render() {\n const tags = this.props.tags.map(tag => ({ value: tag, label: tag, count: 0 }));\n\n const selectOptions = {\n classNamePrefix: 'gf-form-select-box',\n isMulti: true,\n defaultOptions: true,\n loadOptions: this.onLoadOptions,\n onChange: this.onChange,\n className: 'gf-form-input gf-form-input--form-dropdown',\n placeholder: 'Tags',\n loadingMessage: () => 'Loading...',\n noOptionsMessage: () => 'No tags found',\n getOptionValue: i => i.value,\n getOptionLabel: i => i.label,\n value: tags,\n styles: resetSelectStyles(),\n filterOption: (option, searchQuery) => {\n const regex = RegExp(escapeStringForRegex(searchQuery), 'i');\n return regex.test(option.value);\n },\n components: {\n Option: TagOption,\n IndicatorsContainer,\n NoOptionsMessage,\n MultiValueLabel: () => {\n return null; // We want the whole tag to be clickable so we use MultiValueRemove instead\n },\n MultiValueRemove: props => {\n const { data } = props;\n\n return (\n \n \n \n );\n },\n },\n };\n\n return (\n
    \n
    \n \n
    \n \n
    \n );\n }\n}\n","import React, { FC } from 'react';\n\nexport interface Props {\n child: any;\n}\n\nconst DropDownChild: FC = props => {\n const { child } = props;\n const listItemClassName = child.divider ? 'divider' : '';\n\n return (\n
  • \n \n {child.icon && }\n {child.text}\n \n
  • \n );\n};\n\nexport default DropDownChild;\n","import React, { FC } from 'react';\nimport DropDownChild from './DropDownChild';\n\ninterface Props {\n link: any;\n}\n\nconst SideMenuDropDown: FC = props => {\n const { link } = props;\n return (\n
      \n
    • \n \n {link.text}\n \n
    • \n {link.children &&\n link.children.map((child, index) => {\n return ;\n })}\n
    \n );\n};\n\nexport default SideMenuDropDown;\n","import React, { FC } from 'react';\nimport SideMenuDropDown from './SideMenuDropDown';\n\nexport interface Props {\n link: any;\n}\n\nconst TopSectionItem: FC = props => {\n const { link } = props;\n return (\n \n );\n};\n\nexport default TopSectionItem;\n","import React, { FC } from 'react';\nimport _ from 'lodash';\nimport TopSectionItem from './TopSectionItem';\nimport config from '../../config';\n\nconst TopSection: FC = () => {\n const navTree = _.cloneDeep(config.bootData.navTree);\n const mainLinks = _.filter(navTree, item => !item.hideFromMenu);\n\n return (\n
    \n {mainLinks.map((link, index) => {\n return ;\n })}\n
    \n );\n};\n\nexport default TopSection;\n","import React, { FC } from 'react';\n\nconst SignIn: FC = () => {\n const loginUrl = `login?redirect=${encodeURIComponent(window.location.pathname)}`;\n return (\n \n );\n};\n\nexport default SignIn;\n","import React, { PureComponent } from 'react';\nimport appEvents from '../../app_events';\nimport { User } from '../../services/context_srv';\n\nexport interface Props {\n link: any;\n user: User;\n}\n\nclass BottomNavLinks extends PureComponent {\n itemClicked = (event, child) => {\n if (child.url === '/shortcuts') {\n event.preventDefault();\n appEvents.emit('show-modal', {\n templateHtml: '',\n });\n }\n };\n\n switchOrg = () => {\n appEvents.emit('show-modal', {\n templateHtml: '',\n });\n };\n\n render() {\n const { link, user } = this.props;\n return (\n
    \n \n \n {link.icon && }\n {link.img && }\n \n \n \n
    \n );\n }\n}\n\nexport default BottomNavLinks;\n","import React from 'react';\nimport _ from 'lodash';\nimport SignIn from './SignIn';\nimport BottomNavLinks from './BottomNavLinks';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport config from '../../config';\n\nexport default function BottomSection() {\n const navTree = _.cloneDeep(config.bootData.navTree);\n const bottomNav = _.filter(navTree, item => item.hideFromMenu);\n const isSignedIn = contextSrv.isSignedIn;\n const user = contextSrv.user;\n\n if (user && user.orgCount > 1) {\n const profileNode = _.find(bottomNav, { id: 'profile' });\n if (profileNode) {\n profileNode.showOrgSwitcher = true;\n }\n }\n\n return (\n
    \n {!isSignedIn && }\n {bottomNav.map((link, index) => {\n return ;\n })}\n
    \n );\n}\n","import React, { PureComponent } from 'react';\nimport appEvents from '../../app_events';\nimport TopSection from './TopSection';\nimport BottomSection from './BottomSection';\nimport config from 'app/core/config';\n\nconst homeUrl = config.appSubUrl || '/';\n\nexport class SideMenu extends PureComponent {\n toggleSideMenuSmallBreakpoint = () => {\n appEvents.emit('toggle-sidemenu-mobile');\n };\n\n render() {\n return [\n \n \"Grafana\"\n ,\n
    \n \n \n \n  Close\n \n
    ,\n ,\n ,\n ];\n }\n}\n","import React, { Component } from 'react';\nimport { AppNotification } from 'app/types';\nimport { AlertBox } from '../AlertBox/AlertBox';\n\ninterface Props {\n appNotification: AppNotification;\n onClearNotification: (id) => void;\n}\n\nexport default class AppNotificationItem extends Component {\n shouldComponentUpdate(nextProps) {\n return this.props.appNotification.id !== nextProps.appNotification.id;\n }\n\n componentDidMount() {\n const { appNotification, onClearNotification } = this.props;\n setTimeout(() => {\n onClearNotification(appNotification.id);\n }, appNotification.timeout);\n }\n\n render() {\n const { appNotification, onClearNotification } = this.props;\n\n return (\n onClearNotification(appNotification.id)}\n />\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport appEvents from 'app/core/app_events';\nimport AppNotificationItem from './AppNotificationItem';\nimport { notifyApp, clearAppNotification } from 'app/core/actions';\nimport { connectWithStore } from 'app/core/utils/connectWithReduxStore';\nimport { AppNotification, StoreState } from 'app/types';\nimport {\n createErrorNotification,\n createSuccessNotification,\n createWarningNotification,\n} from '../../copy/appNotification';\n\nexport interface Props {\n appNotifications: AppNotification[];\n notifyApp: typeof notifyApp;\n clearAppNotification: typeof clearAppNotification;\n}\n\nexport class AppNotificationList extends PureComponent {\n componentDidMount() {\n const { notifyApp } = this.props;\n\n appEvents.on('alert-warning', options => notifyApp(createWarningNotification(options[0], options[1])));\n appEvents.on('alert-success', options => notifyApp(createSuccessNotification(options[0], options[1])));\n appEvents.on('alert-error', options => notifyApp(createErrorNotification(options[0], options[1])));\n }\n\n onClearAppNotification = id => {\n this.props.clearAppNotification(id);\n };\n\n render() {\n const { appNotifications } = this.props;\n\n return (\n
    \n {appNotifications.map((appNotification, index) => {\n return (\n this.onClearAppNotification(id)}\n />\n );\n })}\n
    \n );\n }\n}\n\nconst mapStateToProps = (state: StoreState) => ({\n appNotifications: state.appNotifications.appNotifications,\n});\n\nconst mapDispatchToProps = {\n notifyApp,\n clearAppNotification,\n};\n\nexport default connectWithStore(AppNotificationList, mapStateToProps, mapDispatchToProps);\n","import React from 'react';\n\nexport interface FunctionDescriptor {\n text: string;\n params: string[];\n def: {\n category: string;\n defaultParams: string[];\n description?: string;\n fake: boolean;\n name: string;\n params: string[];\n };\n}\n\nexport interface FunctionEditorControlsProps {\n onMoveLeft: (func: FunctionDescriptor) => void;\n onMoveRight: (func: FunctionDescriptor) => void;\n onRemove: (func: FunctionDescriptor) => void;\n}\n\nconst FunctionHelpButton = (props: { description: string; name: string; onDescriptionShow: () => void }) => {\n if (props.description) {\n return ;\n }\n\n return (\n {\n window.open(\n 'http://graphite.readthedocs.org/en/latest/functions.html#graphite.render.functions.' + props.name,\n '_blank'\n );\n }}\n />\n );\n};\n\nexport const FunctionEditorControls = (\n props: FunctionEditorControlsProps & {\n func: FunctionDescriptor;\n onDescriptionShow: () => void;\n }\n) => {\n const { func, onMoveLeft, onMoveRight, onRemove, onDescriptionShow } = props;\n return (\n \n onMoveLeft(func)} />\n \n onRemove(func)} />\n onMoveRight(func)} />\n
    \n );\n};\n","import React from 'react';\nimport { PopperController, Popper } from '@grafana/ui';\nimport rst2html from 'rst2html';\nimport { FunctionDescriptor, FunctionEditorControlsProps, FunctionEditorControls } from './FunctionEditorControls';\n\ninterface FunctionEditorProps extends FunctionEditorControlsProps {\n func: FunctionDescriptor;\n}\n\ninterface FunctionEditorState {\n showingDescription: boolean;\n}\n\nclass FunctionEditor extends React.PureComponent {\n private triggerRef = React.createRef();\n\n constructor(props: FunctionEditorProps) {\n super(props);\n\n this.state = {\n showingDescription: false,\n };\n }\n\n renderContent = ({ updatePopperPosition }) => {\n const {\n onMoveLeft,\n onMoveRight,\n func: {\n def: { name, description },\n },\n } = this.props;\n const { showingDescription } = this.state;\n\n if (showingDescription) {\n return (\n
    \n

    {name}

    \n \n
    \n );\n }\n\n return (\n {\n onMoveLeft(this.props.func);\n updatePopperPosition();\n }}\n onMoveRight={() => {\n onMoveRight(this.props.func);\n updatePopperPosition();\n }}\n onDescriptionShow={() => {\n this.setState({ showingDescription: true }, () => {\n updatePopperPosition();\n });\n }}\n />\n );\n };\n\n render() {\n return (\n \n {(showPopper, hidePopper, popperProps) => {\n return (\n <>\n {this.triggerRef && (\n {\n this.setState({ showingDescription: false });\n hidePopper();\n }}\n onMouseEnter={showPopper}\n renderArrow={({ arrowProps, placement }) => (\n
    \n )}\n />\n )}\n\n {\n hidePopper();\n this.setState({ showingDescription: false });\n }}\n style={{ cursor: 'pointer' }}\n >\n {this.props.func.def.name}\n \n \n );\n }}\n \n );\n }\n}\n\nexport { FunctionEditor };\n","import { react2AngularDirective } from 'app/core/utils/react2angular';\nimport { QueryEditor as StackdriverQueryEditor } from 'app/plugins/datasource/stackdriver/components/QueryEditor';\nimport { AnnotationQueryEditor as StackdriverAnnotationQueryEditor } from 'app/plugins/datasource/stackdriver/components/AnnotationQueryEditor';\nimport { PasswordStrength } from './components/PasswordStrength';\nimport PageHeader from './components/PageHeader/PageHeader';\nimport EmptyListCTA from './components/EmptyListCTA/EmptyListCTA';\nimport { SearchResult } from './components/search/SearchResult';\nimport { TagFilter } from './components/TagFilter/TagFilter';\nimport { SideMenu } from './components/sidemenu/SideMenu';\nimport { MetricSelect } from './components/Select/MetricSelect';\nimport AppNotificationList from './components/AppNotifications/AppNotificationList';\nimport { ColorPicker, SeriesColorPickerPopoverWithTheme, SecretFormField } from '@grafana/ui';\nimport { FunctionEditor } from 'app/plugins/datasource/graphite/FunctionEditor';\n\nexport function registerAngularDirectives() {\n react2AngularDirective('passwordStrength', PasswordStrength, ['password']);\n react2AngularDirective('sidemenu', SideMenu, []);\n react2AngularDirective('functionEditor', FunctionEditor, ['func', 'onRemove', 'onMoveLeft', 'onMoveRight']);\n react2AngularDirective('appNotificationsList', AppNotificationList, []);\n react2AngularDirective('pageHeader', PageHeader, ['model', 'noTabs']);\n react2AngularDirective('emptyListCta', EmptyListCTA, ['model']);\n react2AngularDirective('searchResult', SearchResult, []);\n react2AngularDirective('tagFilter', TagFilter, [\n 'tags',\n ['onChange', { watchDepth: 'reference' }],\n ['tagOptions', { watchDepth: 'reference' }],\n ]);\n react2AngularDirective('colorPicker', ColorPicker, [\n 'color',\n ['onChange', { watchDepth: 'reference', wrapApply: true }],\n ]);\n react2AngularDirective('seriesColorPickerPopover', SeriesColorPickerPopoverWithTheme, [\n 'color',\n 'series',\n 'onColorChange',\n 'onToggleAxis',\n ]);\n react2AngularDirective('metricSelect', MetricSelect, [\n 'options',\n 'onChange',\n 'value',\n 'isSearchable',\n 'className',\n 'placeholder',\n ['variables', { watchDepth: 'reference' }],\n ]);\n react2AngularDirective('stackdriverQueryEditor', StackdriverQueryEditor, [\n 'target',\n 'onQueryChange',\n 'onExecuteQuery',\n ['events', { watchDepth: 'reference' }],\n ['datasource', { watchDepth: 'reference' }],\n ['templateSrv', { watchDepth: 'reference' }],\n ]);\n react2AngularDirective('stackdriverAnnotationQueryEditor', StackdriverAnnotationQueryEditor, [\n 'target',\n 'onQueryChange',\n 'onExecuteQuery',\n ['datasource', { watchDepth: 'reference' }],\n ['templateSrv', { watchDepth: 'reference' }],\n ]);\n react2AngularDirective('secretFormField', SecretFormField, [\n 'value',\n 'isConfigured',\n 'inputWidth',\n ['onReset', { watchDepth: 'reference', wrapApply: true }],\n ['onChange', { watchDepth: 'reference', wrapApply: true }],\n ]);\n}\n","import _ from 'lodash';\nimport coreModule from '../../core_module';\nimport appEvents from 'app/core/app_events';\n\nexport class SearchResultsCtrl {\n results: any;\n onSelectionChanged: any;\n onTagSelected: any;\n onFolderExpanding: any;\n editable: boolean;\n\n /** @ngInject */\n constructor(private $location) {}\n\n toggleFolderExpand(section) {\n if (section.toggle) {\n if (!section.expanded && this.onFolderExpanding) {\n this.onFolderExpanding();\n }\n\n section.toggle(section).then(f => {\n if (this.editable && f.expanded) {\n if (f.items) {\n _.each(f.items, i => {\n i.checked = f.checked;\n });\n\n if (this.onSelectionChanged) {\n this.onSelectionChanged();\n }\n }\n }\n });\n }\n }\n\n navigateToFolder(section, evt) {\n this.$location.path(section.url);\n\n if (evt) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n }\n\n toggleSelection(item, evt) {\n item.checked = !item.checked;\n\n if (item.items) {\n _.each(item.items, i => {\n i.checked = item.checked;\n });\n }\n\n if (this.onSelectionChanged) {\n this.onSelectionChanged();\n }\n\n if (evt) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n }\n\n onItemClick(item) {\n //Check if one string can be found in the other\n if (this.$location.path().indexOf(item.url) > -1 || item.url.indexOf(this.$location.path()) > -1) {\n appEvents.emit('hide-dash-search');\n }\n }\n\n selectTag(tag, evt) {\n if (this.onTagSelected) {\n this.onTagSelected({ $tag: tag });\n }\n\n if (evt) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n }\n}\n\nexport function searchResultsDirective() {\n return {\n restrict: 'E',\n templateUrl: 'public/app/core/components/search/search_results.html',\n controller: SearchResultsCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {\n editable: '@',\n results: '=',\n onSelectionChanged: '&',\n onTagSelected: '&',\n onFolderExpanding: '&',\n },\n };\n}\n\ncoreModule.directive('dashboardSearchResults', searchResultsDirective);\n","// @ts-ignore\nimport _ from 'lodash';\nimport coreModule from 'app/core/core_module';\nimport appEvents from 'app/core/app_events';\nimport { SearchSrv } from 'app/core/services/search_srv';\nimport { BackendSrv } from 'app/core/services/backend_srv';\nimport { NavModelSrv } from 'app/core/nav_model_srv';\nimport { ContextSrv } from 'app/core/services/context_srv';\n\nexport interface Section {\n id: number;\n uid: string;\n title: string;\n expanded: boolean;\n removable: boolean;\n items: any[];\n url: string;\n icon: string;\n score: number;\n checked: boolean;\n hideHeader: boolean;\n toggle: Function;\n}\n\nexport interface FoldersAndDashboardUids {\n folderUids: string[];\n dashboardUids: string[];\n}\n\nclass Query {\n query: string;\n mode: string;\n tag: any[];\n starred: boolean;\n skipRecent: boolean;\n skipStarred: boolean;\n folderIds: number[];\n}\n\nexport class ManageDashboardsCtrl {\n sections: Section[];\n\n query: Query;\n navModel: any;\n\n selectAllChecked = false;\n\n // enable/disable actions depending on the folders or dashboards selected\n canDelete = false;\n canMove = false;\n\n // filter variables\n hasFilters = false;\n tagFilterOptions: any[];\n selectedTagFilter: any;\n starredFilterOptions = [{ text: 'Filter by Starred', disabled: true }, { text: 'Yes' }, { text: 'No' }];\n selectedStarredFilter: any;\n\n // used when managing dashboards for a specific folder\n folderId?: number;\n folderUid?: string;\n\n // if user can add new folders and/or add new dashboards\n canSave = false;\n\n // if user has editor role or higher\n isEditor: boolean;\n\n hasEditPermissionInFolders: boolean;\n\n /** @ngInject */\n constructor(\n private backendSrv: BackendSrv,\n navModelSrv: NavModelSrv,\n private searchSrv: SearchSrv,\n private contextSrv: ContextSrv\n ) {\n this.isEditor = this.contextSrv.isEditor;\n this.hasEditPermissionInFolders = this.contextSrv.hasEditPermissionInFolders;\n\n this.query = {\n query: '',\n mode: 'tree',\n tag: [],\n starred: false,\n skipRecent: true,\n skipStarred: true,\n folderIds: [],\n };\n\n if (this.folderId) {\n this.query.folderIds = [this.folderId];\n }\n\n this.selectedStarredFilter = this.starredFilterOptions[0];\n\n this.refreshList().then(() => {\n this.initTagFilter();\n });\n }\n\n refreshList() {\n return this.searchSrv\n .search(this.query)\n .then((result: Section[]) => {\n return this.initDashboardList(result);\n })\n .then(() => {\n if (!this.folderUid) {\n return;\n }\n\n return this.backendSrv.getFolderByUid(this.folderUid).then((folder: any) => {\n this.canSave = folder.canSave;\n if (!this.canSave) {\n this.hasEditPermissionInFolders = false;\n }\n });\n });\n }\n\n initDashboardList(result: Section[]) {\n this.canMove = false;\n this.canDelete = false;\n this.selectAllChecked = false;\n this.hasFilters = this.query.query.length > 0 || this.query.tag.length > 0 || this.query.starred;\n\n if (!result) {\n this.sections = [];\n return;\n }\n\n this.sections = result;\n\n for (const section of this.sections) {\n section.checked = false;\n\n for (const dashboard of section.items) {\n dashboard.checked = false;\n }\n }\n\n if (this.folderId && this.sections.length > 0) {\n this.sections[0].hideHeader = true;\n }\n }\n\n selectionChanged() {\n let selectedDashboards = 0;\n\n for (const section of this.sections) {\n selectedDashboards += _.filter(section.items, { checked: true }).length;\n }\n\n const selectedFolders = _.filter(this.sections, { checked: true }).length;\n this.canMove = selectedDashboards > 0;\n this.canDelete = selectedDashboards > 0 || selectedFolders > 0;\n }\n\n getFoldersAndDashboardsToDelete(): FoldersAndDashboardUids {\n const selectedDashboards: FoldersAndDashboardUids = {\n folderUids: [],\n dashboardUids: [],\n };\n\n for (const section of this.sections) {\n if (section.checked && section.id !== 0) {\n selectedDashboards.folderUids.push(section.uid);\n } else {\n const selected = _.filter(section.items, { checked: true });\n selectedDashboards.dashboardUids.push(..._.map(selected, 'uid'));\n }\n }\n\n return selectedDashboards;\n }\n\n getFolderIds(sections: Section[]) {\n const ids = [];\n for (const s of sections) {\n if (s.checked) {\n ids.push(s.id);\n }\n }\n return ids;\n }\n\n delete() {\n const data = this.getFoldersAndDashboardsToDelete();\n const folderCount = data.folderUids.length;\n const dashCount = data.dashboardUids.length;\n let text = 'Do you want to delete the ';\n let text2;\n\n if (folderCount > 0 && dashCount > 0) {\n text += `selected folder${folderCount === 1 ? '' : 's'} and dashboard${dashCount === 1 ? '' : 's'}?`;\n text2 = `All dashboards of the selected folder${folderCount === 1 ? '' : 's'} will also be deleted`;\n } else if (folderCount > 0) {\n text += `selected folder${folderCount === 1 ? '' : 's'} and all its dashboards?`;\n } else {\n text += `selected dashboard${dashCount === 1 ? '' : 's'}?`;\n }\n\n appEvents.emit('confirm-modal', {\n title: 'Delete',\n text: text,\n text2: text2,\n icon: 'fa-trash',\n yesText: 'Delete',\n onConfirm: () => {\n this.deleteFoldersAndDashboards(data.folderUids, data.dashboardUids);\n },\n });\n }\n\n private deleteFoldersAndDashboards(folderUids: string[], dashboardUids: string[]) {\n this.backendSrv.deleteFoldersAndDashboards(folderUids, dashboardUids).then(() => {\n this.refreshList();\n });\n }\n\n getDashboardsToMove() {\n const selectedDashboards = [];\n\n for (const section of this.sections) {\n const selected = _.filter(section.items, { checked: true });\n selectedDashboards.push(..._.map(selected, 'uid'));\n }\n\n return selectedDashboards;\n }\n\n moveTo() {\n const selectedDashboards = this.getDashboardsToMove();\n\n const template =\n '' +\n '';\n appEvents.emit('show-modal', {\n templateHtml: template,\n modalClass: 'modal--narrow',\n model: {\n dashboards: selectedDashboards,\n afterSave: this.refreshList.bind(this),\n },\n });\n }\n\n initTagFilter() {\n return this.searchSrv.getDashboardTags().then((results: any) => {\n this.tagFilterOptions = [{ term: 'Filter By Tag', disabled: true }].concat(results);\n this.selectedTagFilter = this.tagFilterOptions[0];\n });\n }\n\n filterByTag(tag: any) {\n if (_.indexOf(this.query.tag, tag) === -1) {\n this.query.tag.push(tag);\n }\n\n return this.refreshList();\n }\n\n onQueryChange() {\n return this.refreshList();\n }\n\n onTagFilterChange() {\n const res = this.filterByTag(this.selectedTagFilter.term);\n this.selectedTagFilter = this.tagFilterOptions[0];\n return res;\n }\n\n removeTag(tag: any, evt: Event) {\n this.query.tag = _.without(this.query.tag, tag);\n this.refreshList();\n if (evt) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n }\n\n removeStarred() {\n this.query.starred = false;\n return this.refreshList();\n }\n\n onStarredFilterChange() {\n this.query.starred = this.selectedStarredFilter.text === 'Yes';\n this.selectedStarredFilter = this.starredFilterOptions[0];\n return this.refreshList();\n }\n\n onSelectAllChanged() {\n for (const section of this.sections) {\n if (!section.hideHeader) {\n section.checked = this.selectAllChecked;\n }\n\n section.items = _.map(section.items, (item: any) => {\n item.checked = this.selectAllChecked;\n return item;\n });\n }\n\n this.selectionChanged();\n }\n\n clearFilters() {\n this.query.query = '';\n this.query.tag = [];\n this.query.starred = false;\n this.refreshList();\n }\n\n createDashboardUrl() {\n let url = 'dashboard/new';\n\n if (this.folderId) {\n url += `?folderId=${this.folderId}`;\n }\n\n return url;\n }\n\n importDashboardUrl() {\n let url = 'dashboard/import';\n\n if (this.folderId) {\n url += `?folderId=${this.folderId}`;\n }\n\n return url;\n }\n}\n\nexport function manageDashboardsDirective() {\n return {\n restrict: 'E',\n templateUrl: 'public/app/core/components/manage_dashboards/manage_dashboards.html',\n controller: ManageDashboardsCtrl,\n bindToController: true,\n controllerAs: 'ctrl',\n scope: {\n folderId: '=',\n folderUid: '=',\n },\n };\n}\n\ncoreModule.directive('manageDashboards', manageDashboardsDirective);\n","import './directives/dropdown_typeahead';\nimport './directives/autofill_event_fix';\nimport './directives/metric_segment';\nimport './directives/misc';\nimport './directives/ng_model_on_blur';\nimport './directives/tags';\nimport './directives/value_select_dropdown';\nimport './directives/rebuild_on_change';\nimport './directives/give_focus';\nimport './directives/diff-view';\nimport './jquery_extended';\nimport './partials';\nimport './components/jsontree/jsontree';\nimport './components/code_editor/code_editor';\nimport './utils/outline';\nimport './components/colorpicker/spectrum_picker';\nimport './services/search_srv';\nimport './services/ng_react';\nimport { colors } from '@grafana/ui/';\n\nimport { searchDirective } from './components/search/search';\nimport { infoPopover } from './components/info_popover';\nimport { navbarDirective } from './components/navbar/navbar';\nimport { arrayJoin } from './directives/array_join';\nimport { liveSrv } from './live/live_srv';\nimport { Emitter } from './utils/emitter';\nimport { layoutSelector } from './components/layout_selector/layout_selector';\nimport { switchDirective } from './components/switch';\nimport { dashboardSelector } from './components/dashboard_selector';\nimport { queryPartEditorDirective } from './components/query_part/query_part_editor';\nimport { sqlPartEditorDirective } from './components/sql_part/sql_part_editor';\nimport { formDropdownDirective } from './components/form_dropdown/form_dropdown';\nimport 'app/core/controllers/all';\nimport 'app/core/services/all';\nimport './filters/filters';\nimport coreModule from './core_module';\nimport appEvents from './app_events';\nimport { assignModelProperties } from './utils/model_utils';\nimport { contextSrv } from './services/context_srv';\nimport { KeybindingSrv } from './services/keybindingSrv';\nimport { helpModal } from './components/help/help';\nimport { JsonExplorer } from './components/json_explorer/json_explorer';\nimport { NavModelSrv, NavModel } from './nav_model_srv';\nimport { geminiScrollbar } from './components/scroll/scroll';\nimport { orgSwitcher } from './components/org_switcher';\nimport { profiler } from './profiler';\nimport { registerAngularDirectives } from './angular_wrappers';\nimport { updateLegendValues } from './time_series2';\nimport TimeSeries from './time_series2';\nimport { searchResultsDirective } from './components/search/search_results';\nimport { manageDashboardsDirective } from './components/manage_dashboards/manage_dashboards';\n\nexport {\n profiler,\n registerAngularDirectives,\n arrayJoin,\n coreModule,\n navbarDirective,\n searchDirective,\n liveSrv,\n layoutSelector,\n switchDirective,\n infoPopover,\n Emitter,\n appEvents,\n dashboardSelector,\n queryPartEditorDirective,\n sqlPartEditorDirective,\n colors,\n formDropdownDirective,\n assignModelProperties,\n contextSrv,\n KeybindingSrv,\n helpModal,\n JsonExplorer,\n NavModelSrv,\n NavModel,\n geminiScrollbar,\n orgSwitcher,\n manageDashboardsDirective,\n TimeSeries,\n updateLegendValues,\n searchResultsDirective,\n};\n","import _ from 'lodash';\nimport { getValueFormat, getValueFormatterIndex, getValueFormats, stringToJsRegex } from '@grafana/ui';\nimport deprecationWarning from '@grafana/ui/src/utils/deprecationWarning';\n\nconst kbn: any = {};\n\nkbn.valueFormats = {};\n\nkbn.regexEscape = value => {\n return value.replace(/[\\\\^$*+?.()|[\\]{}\\/]/g, '\\\\$&');\n};\n\n///// HELPER FUNCTIONS /////\n\nkbn.round_interval = interval => {\n switch (true) {\n // 0.015s\n case interval < 15:\n return 10; // 0.01s\n // 0.035s\n case interval < 35:\n return 20; // 0.02s\n // 0.075s\n case interval < 75:\n return 50; // 0.05s\n // 0.15s\n case interval < 150:\n return 100; // 0.1s\n // 0.35s\n case interval < 350:\n return 200; // 0.2s\n // 0.75s\n case interval < 750:\n return 500; // 0.5s\n // 1.5s\n case interval < 1500:\n return 1000; // 1s\n // 3.5s\n case interval < 3500:\n return 2000; // 2s\n // 7.5s\n case interval < 7500:\n return 5000; // 5s\n // 12.5s\n case interval < 12500:\n return 10000; // 10s\n // 17.5s\n case interval < 17500:\n return 15000; // 15s\n // 25s\n case interval < 25000:\n return 20000; // 20s\n // 45s\n case interval < 45000:\n return 30000; // 30s\n // 1.5m\n case interval < 90000:\n return 60000; // 1m\n // 3.5m\n case interval < 210000:\n return 120000; // 2m\n // 7.5m\n case interval < 450000:\n return 300000; // 5m\n // 12.5m\n case interval < 750000:\n return 600000; // 10m\n // 12.5m\n case interval < 1050000:\n return 900000; // 15m\n // 25m\n case interval < 1500000:\n return 1200000; // 20m\n // 45m\n case interval < 2700000:\n return 1800000; // 30m\n // 1.5h\n case interval < 5400000:\n return 3600000; // 1h\n // 2.5h\n case interval < 9000000:\n return 7200000; // 2h\n // 4.5h\n case interval < 16200000:\n return 10800000; // 3h\n // 9h\n case interval < 32400000:\n return 21600000; // 6h\n // 1d\n case interval < 86400000:\n return 43200000; // 12h\n // 1w\n case interval < 604800000:\n return 86400000; // 1d\n // 3w\n case interval < 1814400000:\n return 604800000; // 1w\n // 6w\n case interval < 3628800000:\n return 2592000000; // 30d\n default:\n return 31536000000; // 1y\n }\n};\n\nkbn.secondsToHms = seconds => {\n const numyears = Math.floor(seconds / 31536000);\n if (numyears) {\n return numyears + 'y';\n }\n const numdays = Math.floor((seconds % 31536000) / 86400);\n if (numdays) {\n return numdays + 'd';\n }\n const numhours = Math.floor(((seconds % 31536000) % 86400) / 3600);\n if (numhours) {\n return numhours + 'h';\n }\n const numminutes = Math.floor((((seconds % 31536000) % 86400) % 3600) / 60);\n if (numminutes) {\n return numminutes + 'm';\n }\n const numseconds = Math.floor((((seconds % 31536000) % 86400) % 3600) % 60);\n if (numseconds) {\n return numseconds + 's';\n }\n const nummilliseconds = Math.floor(seconds * 1000.0);\n if (nummilliseconds) {\n return nummilliseconds + 'ms';\n }\n\n return 'less than a millisecond'; //'just now' //or other string you like;\n};\n\nkbn.secondsToHhmmss = seconds => {\n const strings = [];\n const numhours = Math.floor(seconds / 3600);\n const numminutes = Math.floor((seconds % 3600) / 60);\n const numseconds = Math.floor((seconds % 3600) % 60);\n numhours > 9 ? strings.push('' + numhours) : strings.push('0' + numhours);\n numminutes > 9 ? strings.push('' + numminutes) : strings.push('0' + numminutes);\n numseconds > 9 ? strings.push('' + numseconds) : strings.push('0' + numseconds);\n return strings.join(':');\n};\n\nkbn.to_percent = (nr, outof) => {\n return Math.floor((nr / outof) * 10000) / 100 + '%';\n};\n\nkbn.addslashes = str => {\n str = str.replace(/\\\\/g, '\\\\\\\\');\n str = str.replace(/\\'/g, \"\\\\'\");\n str = str.replace(/\\\"/g, '\\\\\"');\n str = str.replace(/\\0/g, '\\\\0');\n return str;\n};\n\nkbn.interval_regex = /(\\d+(?:\\.\\d+)?)(ms|[Mwdhmsy])/;\n\n// histogram & trends\nkbn.intervals_in_seconds = {\n y: 31536000,\n M: 2592000,\n w: 604800,\n d: 86400,\n h: 3600,\n m: 60,\n s: 1,\n ms: 0.001,\n};\n\nkbn.calculateInterval = (range, resolution, lowLimitInterval) => {\n let lowLimitMs = 1; // 1 millisecond default low limit\n let intervalMs;\n\n if (lowLimitInterval) {\n if (lowLimitInterval[0] === '>') {\n lowLimitInterval = lowLimitInterval.slice(1);\n }\n lowLimitMs = kbn.interval_to_ms(lowLimitInterval);\n }\n\n intervalMs = kbn.round_interval((range.to.valueOf() - range.from.valueOf()) / resolution);\n if (lowLimitMs > intervalMs) {\n intervalMs = lowLimitMs;\n }\n\n return {\n intervalMs: intervalMs,\n interval: kbn.secondsToHms(intervalMs / 1000),\n };\n};\n\nkbn.describe_interval = str => {\n const matches = str.match(kbn.interval_regex);\n if (!matches || !_.has(kbn.intervals_in_seconds, matches[2])) {\n throw new Error('Invalid interval string, expecting a number followed by one of \"Mwdhmsy\"');\n } else {\n return {\n sec: kbn.intervals_in_seconds[matches[2]],\n type: matches[2],\n count: parseInt(matches[1], 10),\n };\n }\n};\n\nkbn.interval_to_ms = str => {\n const info = kbn.describe_interval(str);\n return info.sec * 1000 * info.count;\n};\n\nkbn.interval_to_seconds = str => {\n const info = kbn.describe_interval(str);\n return info.sec * info.count;\n};\n\nkbn.query_color_dot = (color, diameter) => {\n return (\n '
    '\n );\n};\n\nkbn.slugifyForUrl = str => {\n return str\n .toLowerCase()\n .replace(/[^\\w ]+/g, '')\n .replace(/ +/g, '-');\n};\n\n/** deprecated since 6.1, use grafana/ui */\nkbn.stringToJsRegex = str => {\n deprecationWarning('kbn.ts', 'kbn.stringToJsRegex()', '@grafana/ui');\n return stringToJsRegex(str);\n};\n\nkbn.toFixed = (value, decimals) => {\n if (value === null) {\n return '';\n }\n\n const factor = decimals ? Math.pow(10, Math.max(0, decimals)) : 1;\n const formatted = String(Math.round(value * factor) / factor);\n\n // if exponent return directly\n if (formatted.indexOf('e') !== -1 || value === 0) {\n return formatted;\n }\n\n // If tickDecimals was specified, ensure that we have exactly that\n // much precision; otherwise default to the value's own precision.\n if (decimals != null) {\n const decimalPos = formatted.indexOf('.');\n const precision = decimalPos === -1 ? 0 : formatted.length - decimalPos - 1;\n if (precision < decimals) {\n return (precision ? formatted : formatted + '.') + String(factor).substr(1, decimals - precision);\n }\n }\n\n return formatted;\n};\n\nkbn.toFixedScaled = (value, decimals, scaledDecimals, additionalDecimals, ext) => {\n if (scaledDecimals === null) {\n return kbn.toFixed(value, decimals) + ext;\n } else {\n return kbn.toFixed(value, scaledDecimals + additionalDecimals) + ext;\n }\n};\n\nkbn.roundValue = (num, decimals) => {\n if (num === null) {\n return null;\n }\n const n = Math.pow(10, decimals);\n const formatted = (n * num).toFixed(decimals);\n return Math.round(parseFloat(formatted)) / n;\n};\n\n///// FORMAT MENU /////\n\nkbn.getUnitFormats = () => {\n return getValueFormats();\n};\n\n//\n// Backward compatible layer for value formats to support old plugins\n//\nif (typeof Proxy !== 'undefined') {\n kbn.valueFormats = new Proxy(kbn.valueFormats, {\n get(target, name, receiver) {\n if (typeof name !== 'string') {\n throw { message: `Value format ${String(name)} is not a string` };\n }\n\n const formatter = getValueFormat(name);\n if (formatter) {\n return formatter;\n }\n\n // default to look here\n return Reflect.get(target, name, receiver);\n },\n });\n} else {\n kbn.valueFormats = getValueFormatterIndex();\n}\n\nexport default kbn;\n","export * from './teams';\nexport * from './alerting';\nexport * from './location';\nexport * from './navModel';\nexport * from './folders';\nexport * from './dashboard';\nexport * from './acl';\nexport * from './apiKeys';\nexport * from './user';\nexport * from './datasources';\nexport * from './plugins';\nexport * from './organization';\nexport * from './appNotifications';\nexport * from './search';\nexport * from './explore';\nexport * from './store';\n","import { updateLocation } from './location';\nimport { updateNavIndex, UpdateNavIndexAction } from './navModel';\nimport { notifyApp, clearAppNotification } from './appNotification';\n\nexport { updateLocation, updateNavIndex, UpdateNavIndexAction, notifyApp, clearAppNotification };\n","import React, { FC } from 'react';\nimport { Tooltip } from '@grafana/ui';\n\ninterface Props {\n appName: string;\n buildVersion: string;\n buildCommit: string;\n newGrafanaVersionExists: boolean;\n newGrafanaVersion: string;\n}\n\nexport const Footer: FC = React.memo(\n ({ appName, buildVersion, buildCommit, newGrafanaVersionExists, newGrafanaVersion }) => {\n return (\n \n );\n }\n);\n\nexport default Footer;\n","import React, { FC } from 'react';\n\ninterface Props {\n pageName?: string;\n}\n\nconst PageLoader: FC = ({ pageName = '' }) => {\n const loadingText = `Loading ${pageName}...`;\n return (\n
    \n \n
    {loadingText}
    \n
    \n );\n};\n\nexport default PageLoader;\n","// Libraries\nimport React, { Component } from 'react';\nimport config from 'app/core/config';\nimport { NavModel } from 'app/types';\nimport { getTitleFromNavModel } from 'app/core/selectors/navModel';\n\n// Components\nimport PageHeader from '../PageHeader/PageHeader';\nimport Footer from '../Footer/Footer';\nimport PageContents from './PageContents';\nimport { CustomScrollbar } from '@grafana/ui';\nimport { isEqual } from 'lodash';\n\ninterface Props {\n children: JSX.Element[] | JSX.Element;\n navModel: NavModel;\n}\n\nclass Page extends Component {\n static Header = PageHeader;\n static Contents = PageContents;\n\n componentDidMount() {\n this.updateTitle();\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!isEqual(prevProps.navModel, this.props.navModel)) {\n this.updateTitle();\n }\n }\n\n updateTitle = () => {\n const title = this.getPageTitle;\n document.title = title ? title + ' - Grafana' : 'Grafana';\n };\n\n get getPageTitle() {\n const { navModel } = this.props;\n if (navModel) {\n return getTitleFromNavModel(navModel) || undefined;\n }\n return undefined;\n }\n\n render() {\n const { navModel } = this.props;\n const { buildInfo } = config;\n return (\n
    \n \n
    \n \n {this.props.children}\n \n
    \n
    \n
    \n );\n }\n}\n\nexport default Page;\n","// Libraries\nimport React, { Component } from 'react';\n\n// Components\nimport PageLoader from '../PageLoader/PageLoader';\n\ninterface Props {\n isLoading?: boolean;\n children: JSX.Element[] | JSX.Element;\n}\n\nclass PageContents extends Component {\n render() {\n const { isLoading } = this.props;\n\n return (\n
    \n {isLoading && }\n {this.props.children}\n
    \n );\n }\n}\n\nexport default PageContents;\n","export * from './data';\nexport * from './time';\nexport * from './panel';\nexport * from './plugin';\nexport * from './datasource';\nexport * from './theme';\nexport * from './threshold';\nexport * from './input';\nexport * from './displayValue';\n","export const GRID_CELL_HEIGHT = 30;\nexport const GRID_CELL_VMARGIN = 10;\nexport const GRID_COLUMN_COUNT = 24;\nexport const REPEAT_DIR_VERTICAL = 'v';\n\nexport const DEFAULT_PANEL_SPAN = 4;\nexport const DEFAULT_ROW_HEIGHT = 250;\nexport const MIN_PANEL_HEIGHT = GRID_CELL_HEIGHT * 3;\n\nexport const LS_PANEL_COPY_KEY = 'panel-copy';\n\nexport const DASHBOARD_TOOLBAR_HEIGHT = 55;\nexport const DASHBOARD_TOP_PADDING = 20;\n\nexport const PANEL_HEADER_HEIGHT = 27;\nexport const PANEL_BORDER = 2;\n","import _ from 'lodash';\nimport { assignModelProperties } from 'app/core/utils/model_utils';\n\n/*\n * This regex matches 3 types of variable reference with an optional format specifier\n * \\$(\\w+) $var1\n * \\[\\[([\\s\\S]+?)(?::(\\w+))?\\]\\] [[var2]] or [[var2:fmt2]]\n * \\${(\\w+)(?::(\\w+))?} ${var3} or ${var3:fmt3}\n */\nexport const variableRegex = /\\$(\\w+)|\\[\\[([\\s\\S]+?)(?::(\\w+))?\\]\\]|\\${(\\w+)(?::(\\w+))?}/g;\n\n// Helper function since lastIndex is not reset\nexport const variableRegexExec = (variableString: string) => {\n variableRegex.lastIndex = 0;\n return variableRegex.exec(variableString);\n};\n\nexport interface Variable {\n setValue(option);\n updateOptions();\n dependsOn(variable);\n setValueFromUrl(urlValue);\n getValueForUrl();\n getSaveModel();\n}\n\nexport let variableTypes = {};\nexport { assignModelProperties };\n\nexport function containsVariable(...args: any[]) {\n const variableName = args[args.length - 1];\n args[0] = _.isString(args[0]) ? args[0] : Object['values'](args[0]).join(' ');\n const variableString = args.slice(0, -1).join(' ');\n const matches = variableString.match(variableRegex);\n const isMatchingVariable =\n matches !== null\n ? matches.find(match => {\n const varMatch = variableRegexExec(match);\n return varMatch !== null && varMatch.indexOf(variableName) > -1;\n })\n : false;\n\n return !!isMatchingVariable;\n}\n","import _ from 'lodash';\nimport moment from 'moment';\n\nconst units = ['y', 'M', 'w', 'd', 'h', 'm', 's'];\n\ntype Timezone = 'utc';\n\n/**\n * Parses different types input to a moment instance. There is a specific formatting language that can be used\n * if text arg is string. See unit tests for examples.\n * @param text\n * @param roundUp See parseDateMath function.\n * @param timezone Only string 'utc' is acceptable here, for anything else, local timezone is used.\n */\nexport function parse(\n text: string | moment.Moment | Date,\n roundUp?: boolean,\n timezone?: Timezone\n): moment.Moment | undefined {\n if (!text) {\n return undefined;\n }\n\n if (typeof text !== 'string') {\n if (moment.isMoment(text)) {\n return text;\n }\n if (_.isDate(text)) {\n return moment(text);\n }\n // We got some non string which is not a moment nor Date. TS should be able to check for that but not always.\n return undefined;\n } else {\n let time;\n let mathString = '';\n let index;\n let parseString;\n\n if (text.substring(0, 3) === 'now') {\n if (timezone === 'utc') {\n time = moment.utc();\n } else {\n time = moment();\n }\n mathString = text.substring('now'.length);\n } else {\n index = text.indexOf('||');\n if (index === -1) {\n parseString = text;\n mathString = ''; // nothing else\n } else {\n parseString = text.substring(0, index);\n mathString = text.substring(index + 2);\n }\n // We're going to just require ISO8601 timestamps, k?\n time = moment(parseString, moment.ISO_8601);\n }\n\n if (!mathString.length) {\n return time;\n }\n\n return parseDateMath(mathString, time, roundUp);\n }\n}\n\n/**\n * Checks if text is a valid date which in this context means that it is either a Moment instance or it can be parsed\n * by parse function. See parse function to see what is considered acceptable.\n * @param text\n */\nexport function isValid(text: string | moment.Moment): boolean {\n const date = parse(text);\n if (!date) {\n return false;\n }\n\n if (moment.isMoment(date)) {\n return date.isValid();\n }\n\n return false;\n}\n\n/**\n * Parses math part of the time string and shifts supplied time according to that math. See unit tests for examples.\n * @param mathString\n * @param time\n * @param roundUp If true it will round the time to endOf time unit, otherwise to startOf time unit.\n */\nexport function parseDateMath(mathString: string, time: moment.Moment, roundUp?: boolean): moment.Moment | undefined {\n const dateTime = time;\n let i = 0;\n const len = mathString.length;\n\n while (i < len) {\n const c = mathString.charAt(i++);\n let type;\n let num;\n let unit;\n\n if (c === '/') {\n type = 0;\n } else if (c === '+') {\n type = 1;\n } else if (c === '-') {\n type = 2;\n } else {\n return undefined;\n }\n\n if (isNaN(parseInt(mathString.charAt(i), 10))) {\n num = 1;\n } else if (mathString.length === 2) {\n num = mathString.charAt(i);\n } else {\n const numFrom = i;\n while (!isNaN(parseInt(mathString.charAt(i), 10))) {\n i++;\n if (i > 10) {\n return undefined;\n }\n }\n num = parseInt(mathString.substring(numFrom, i), 10);\n }\n\n if (type === 0) {\n // rounding is only allowed on whole, single, units (eg M or 1M, not 0.5M or 2M)\n if (num !== 1) {\n return undefined;\n }\n }\n unit = mathString.charAt(i++);\n\n if (!_.includes(units, unit)) {\n return undefined;\n } else {\n if (type === 0) {\n if (roundUp) {\n dateTime.endOf(unit);\n } else {\n dateTime.startOf(unit);\n }\n } else if (type === 1) {\n dateTime.add(num, unit);\n } else if (type === 2) {\n dateTime.subtract(num, unit);\n }\n }\n }\n return dateTime;\n}\n","import { Action } from 'redux';\n\nconst allActionCreators: string[] = [];\n\nexport interface ActionOf extends Action {\n readonly type: string;\n readonly payload: Payload;\n}\n\nexport interface ActionCreator {\n readonly type: string;\n (payload: Payload): ActionOf;\n}\n\nexport interface NoPayloadActionCreator {\n readonly type: string;\n (): ActionOf;\n}\n\nexport interface ActionCreatorFactory {\n create: () => ActionCreator;\n}\n\nexport interface NoPayloadActionCreatorFactory {\n create: () => NoPayloadActionCreator;\n}\n\nexport const actionCreatorFactory = (type: string): ActionCreatorFactory => {\n const create = (): ActionCreator => {\n return Object.assign((payload: Payload): ActionOf => ({ type, payload }), { type });\n };\n\n if (allActionCreators.some(t => (t && type ? t.toLocaleUpperCase() === type.toLocaleUpperCase() : false))) {\n throw new Error(`There is already an actionCreator defined with the type ${type}`);\n }\n\n allActionCreators.push(type);\n\n return { create };\n};\n\nexport const noPayloadActionCreatorFactory = (type: string): NoPayloadActionCreatorFactory => {\n const create = (): NoPayloadActionCreator => {\n return Object.assign((): ActionOf => ({ type, payload: undefined }), { type });\n };\n\n if (allActionCreators.some(t => (t && type ? t.toLocaleUpperCase() === type.toLocaleUpperCase() : false))) {\n throw new Error(`There is already an actionCreator defined with the type ${type}`);\n }\n\n allActionCreators.push(type);\n\n return { create };\n};\n\nexport interface NoPayloadActionCreatorMock extends NoPayloadActionCreator {\n calls: number;\n}\n\nexport const getNoPayloadActionCreatorMock = (creator: NoPayloadActionCreator): NoPayloadActionCreatorMock => {\n const mock: NoPayloadActionCreatorMock = Object.assign(\n (): ActionOf => {\n mock.calls++;\n return { type: creator.type, payload: undefined };\n },\n { type: creator.type, calls: 0 }\n );\n return mock;\n};\n\nexport const mockActionCreator = (creator: ActionCreator) => {\n return Object.assign(jest.fn(), creator);\n};\n\n// Should only be used by tests\nexport const resetAllActionCreatorTypes = () => (allActionCreators.length = 0);\n","import _ from 'lodash';\n\nexport class QueryPartDef {\n type: string;\n params: any[];\n defaultParams: any[];\n renderer: any;\n category: any;\n addStrategy: any;\n\n constructor(options: any) {\n this.type = options.type;\n this.params = options.params;\n this.defaultParams = options.defaultParams;\n this.renderer = options.renderer;\n this.category = options.category;\n this.addStrategy = options.addStrategy;\n }\n}\n\nexport class QueryPart {\n part: any;\n def: QueryPartDef;\n params: any[];\n text: string;\n\n constructor(part: any, def: any) {\n this.part = part;\n this.def = def;\n if (!this.def) {\n throw { message: 'Could not find query part ' + part.type };\n }\n\n part.params = part.params || _.clone(this.def.defaultParams);\n this.params = part.params;\n this.updateText();\n }\n\n render(innerExpr: string) {\n return this.def.renderer(this, innerExpr);\n }\n\n hasMultipleParamsInString(strValue, index) {\n if (strValue.indexOf(',') === -1) {\n return false;\n }\n\n return this.def.params[index + 1] && this.def.params[index + 1].optional;\n }\n\n updateParam(strValue, index) {\n // handle optional parameters\n // if string contains ',' and next param is optional, split and update both\n if (this.hasMultipleParamsInString(strValue, index)) {\n _.each(strValue.split(','), (partVal, idx) => {\n this.updateParam(partVal.trim(), idx);\n });\n return;\n }\n\n if (strValue === '' && this.def.params[index].optional) {\n this.params.splice(index, 1);\n } else {\n this.params[index] = strValue;\n }\n\n this.part.params = this.params;\n this.updateText();\n }\n\n updateText() {\n if (this.params.length === 0) {\n this.text = this.def.type + '()';\n return;\n }\n\n let text = this.def.type + '(';\n text += this.params.join(', ');\n text += ')';\n this.text = text;\n }\n}\n\nexport function functionRenderer(part, innerExpr) {\n const str = part.def.type + '(';\n const parameters = _.map(part.params, (value, index) => {\n const paramType = part.def.params[index];\n if (paramType.type === 'time') {\n if (value === 'auto') {\n value = '$__interval';\n }\n }\n if (paramType.quote === 'single') {\n return \"'\" + value + \"'\";\n } else if (paramType.quote === 'double') {\n return '\"' + value + '\"';\n }\n\n return value;\n });\n\n if (innerExpr) {\n parameters.unshift(innerExpr);\n }\n return str + parameters.join(', ') + ')';\n}\n\nexport function suffixRenderer(part, innerExpr) {\n return innerExpr + ' ' + part.params[0];\n}\n\nexport function identityRenderer(part, innerExpr) {\n return part.params[0];\n}\n\nexport function quotedIdentityRenderer(part, innerExpr) {\n return '\"' + part.params[0] + '\"';\n}\n","import { toFixed, toFixedScaled } from './valueFormats';\nimport { DecimalCount } from '../../types';\nimport moment from 'moment';\n\ninterface IntervalsInSeconds {\n [interval: string]: number;\n}\n\nexport enum Interval {\n Year = 'year',\n Month = 'month',\n Week = 'week',\n Day = 'day',\n Hour = 'hour',\n Minute = 'minute',\n Second = 'second',\n Millisecond = 'millisecond',\n}\n\nconst INTERVALS_IN_SECONDS: IntervalsInSeconds = {\n [Interval.Year]: 31536000,\n [Interval.Month]: 2592000,\n [Interval.Week]: 604800,\n [Interval.Day]: 86400,\n [Interval.Hour]: 3600,\n [Interval.Minute]: 60,\n [Interval.Second]: 1,\n [Interval.Millisecond]: 0.001,\n};\n\nexport function toNanoSeconds(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 1000) {\n return toFixed(size, decimals) + ' ns';\n } else if (Math.abs(size) < 1000000) {\n return toFixedScaled(size / 1000, decimals, scaledDecimals, 3, ' µs');\n } else if (Math.abs(size) < 1000000000) {\n return toFixedScaled(size / 1000000, decimals, scaledDecimals, 6, ' ms');\n } else if (Math.abs(size) < 60000000000) {\n return toFixedScaled(size / 1000000000, decimals, scaledDecimals, 9, ' s');\n } else {\n return toFixedScaled(size / 60000000000, decimals, scaledDecimals, 12, ' min');\n }\n}\n\nexport function toMicroSeconds(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 1000) {\n return toFixed(size, decimals) + ' µs';\n } else if (Math.abs(size) < 1000000) {\n return toFixedScaled(size / 1000, decimals, scaledDecimals, 3, ' ms');\n } else {\n return toFixedScaled(size / 1000000, decimals, scaledDecimals, 6, ' s');\n }\n}\n\nexport function toMilliSeconds(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 1000) {\n return toFixed(size, decimals) + ' ms';\n } else if (Math.abs(size) < 60000) {\n // Less than 1 min\n return toFixedScaled(size / 1000, decimals, scaledDecimals, 3, ' s');\n } else if (Math.abs(size) < 3600000) {\n // Less than 1 hour, divide in minutes\n return toFixedScaled(size / 60000, decimals, scaledDecimals, 5, ' min');\n } else if (Math.abs(size) < 86400000) {\n // Less than one day, divide in hours\n return toFixedScaled(size / 3600000, decimals, scaledDecimals, 7, ' hour');\n } else if (Math.abs(size) < 31536000000) {\n // Less than one year, divide in days\n return toFixedScaled(size / 86400000, decimals, scaledDecimals, 8, ' day');\n }\n\n return toFixedScaled(size / 31536000000, decimals, scaledDecimals, 10, ' year');\n}\n\nexport function trySubstract(value1: DecimalCount, value2: DecimalCount): DecimalCount {\n if (value1 !== null && value1 !== undefined && value2 !== null && value2 !== undefined) {\n return value1 - value2;\n }\n return undefined;\n}\n\nexport function toSeconds(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n // Less than 1 µs, divide in ns\n if (Math.abs(size) < 0.000001) {\n return toFixedScaled(size * 1e9, decimals, trySubstract(scaledDecimals, decimals), -9, ' ns');\n }\n // Less than 1 ms, divide in µs\n if (Math.abs(size) < 0.001) {\n return toFixedScaled(size * 1e6, decimals, trySubstract(scaledDecimals, decimals), -6, ' µs');\n }\n // Less than 1 second, divide in ms\n if (Math.abs(size) < 1) {\n return toFixedScaled(size * 1e3, decimals, trySubstract(scaledDecimals, decimals), -3, ' ms');\n }\n\n if (Math.abs(size) < 60) {\n return toFixed(size, decimals) + ' s';\n } else if (Math.abs(size) < 3600) {\n // Less than 1 hour, divide in minutes\n return toFixedScaled(size / 60, decimals, scaledDecimals, 1, ' min');\n } else if (Math.abs(size) < 86400) {\n // Less than one day, divide in hours\n return toFixedScaled(size / 3600, decimals, scaledDecimals, 4, ' hour');\n } else if (Math.abs(size) < 604800) {\n // Less than one week, divide in days\n return toFixedScaled(size / 86400, decimals, scaledDecimals, 5, ' day');\n } else if (Math.abs(size) < 31536000) {\n // Less than one year, divide in week\n return toFixedScaled(size / 604800, decimals, scaledDecimals, 6, ' week');\n }\n\n return toFixedScaled(size / 3.15569e7, decimals, scaledDecimals, 7, ' year');\n}\n\nexport function toMinutes(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 60) {\n return toFixed(size, decimals) + ' min';\n } else if (Math.abs(size) < 1440) {\n return toFixedScaled(size / 60, decimals, scaledDecimals, 2, ' hour');\n } else if (Math.abs(size) < 10080) {\n return toFixedScaled(size / 1440, decimals, scaledDecimals, 3, ' day');\n } else if (Math.abs(size) < 604800) {\n return toFixedScaled(size / 10080, decimals, scaledDecimals, 4, ' week');\n } else {\n return toFixedScaled(size / 5.25948e5, decimals, scaledDecimals, 5, ' year');\n }\n}\n\nexport function toHours(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 24) {\n return toFixed(size, decimals) + ' hour';\n } else if (Math.abs(size) < 168) {\n return toFixedScaled(size / 24, decimals, scaledDecimals, 2, ' day');\n } else if (Math.abs(size) < 8760) {\n return toFixedScaled(size / 168, decimals, scaledDecimals, 3, ' week');\n } else {\n return toFixedScaled(size / 8760, decimals, scaledDecimals, 4, ' year');\n }\n}\n\nexport function toDays(size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n if (Math.abs(size) < 7) {\n return toFixed(size, decimals) + ' day';\n } else if (Math.abs(size) < 365) {\n return toFixedScaled(size / 7, decimals, scaledDecimals, 2, ' week');\n } else {\n return toFixedScaled(size / 365, decimals, scaledDecimals, 3, ' year');\n }\n}\n\nexport function toDuration(size: number, decimals: DecimalCount, timeScale: Interval): string {\n if (size === null) {\n return '';\n }\n\n if (size === 0) {\n return '0 ' + timeScale + 's';\n }\n\n if (size < 0) {\n return toDuration(-size, decimals, timeScale) + ' ago';\n }\n\n const units = [\n { long: Interval.Year },\n { long: Interval.Month },\n { long: Interval.Week },\n { long: Interval.Day },\n { long: Interval.Hour },\n { long: Interval.Minute },\n { long: Interval.Second },\n { long: Interval.Millisecond },\n ];\n\n // convert $size to milliseconds\n // intervals_in_seconds uses seconds (duh), convert them to milliseconds here to minimize floating point errors\n size *= INTERVALS_IN_SECONDS[timeScale] * 1000;\n\n const strings = [];\n\n // after first value >= 1 print only $decimals more\n let decrementDecimals = false;\n let decimalsCount = 0;\n\n if (decimals !== null || decimals !== undefined) {\n decimalsCount = decimals as number;\n }\n\n for (let i = 0; i < units.length && decimalsCount >= 0; i++) {\n const interval = INTERVALS_IN_SECONDS[units[i].long] * 1000;\n const value = size / interval;\n if (value >= 1 || decrementDecimals) {\n decrementDecimals = true;\n const floor = Math.floor(value);\n const unit = units[i].long + (floor !== 1 ? 's' : '');\n strings.push(floor + ' ' + unit);\n size = size % interval;\n decimalsCount--;\n }\n }\n\n return strings.join(', ');\n}\n\nexport function toClock(size: number, decimals?: DecimalCount) {\n if (size === null) {\n return '';\n }\n\n // < 1 second\n if (size < 1000) {\n return moment.utc(size).format('SSS\\\\m\\\\s');\n }\n\n // < 1 minute\n if (size < 60000) {\n let format = 'ss\\\\s:SSS\\\\m\\\\s';\n if (decimals === 0) {\n format = 'ss\\\\s';\n }\n return moment.utc(size).format(format);\n }\n\n // < 1 hour\n if (size < 3600000) {\n let format = 'mm\\\\m:ss\\\\s:SSS\\\\m\\\\s';\n if (decimals === 0) {\n format = 'mm\\\\m';\n } else if (decimals === 1) {\n format = 'mm\\\\m:ss\\\\s';\n }\n return moment.utc(size).format(format);\n }\n\n let format = 'mm\\\\m:ss\\\\s:SSS\\\\m\\\\s';\n\n const hours = `${('0' + Math.floor(moment.duration(size, 'milliseconds').asHours())).slice(-2)}h`;\n\n if (decimals === 0) {\n format = '';\n } else if (decimals === 1) {\n format = 'mm\\\\m';\n } else if (decimals === 2) {\n format = 'mm\\\\m:ss\\\\s';\n }\n\n return format ? `${hours}:${moment.utc(size).format(format)}` : hours;\n}\n\nexport function toDurationInMilliseconds(size: number, decimals: DecimalCount) {\n return toDuration(size, decimals, Interval.Millisecond);\n}\n\nexport function toDurationInSeconds(size: number, decimals: DecimalCount) {\n return toDuration(size, decimals, Interval.Second);\n}\n\nexport function toDurationInHoursMinutesSeconds(size: number) {\n const strings = [];\n const numHours = Math.floor(size / 3600);\n const numMinutes = Math.floor((size % 3600) / 60);\n const numSeconds = Math.floor((size % 3600) % 60);\n numHours > 9 ? strings.push('' + numHours) : strings.push('0' + numHours);\n numMinutes > 9 ? strings.push('' + numMinutes) : strings.push('0' + numMinutes);\n numSeconds > 9 ? strings.push('' + numSeconds) : strings.push('0' + numSeconds);\n return strings.join(':');\n}\n\nexport function toTimeTicks(size: number, decimals: DecimalCount, scaledDecimals: DecimalCount) {\n return toSeconds(size, decimals, scaledDecimals);\n}\n\nexport function toClockMilliseconds(size: number, decimals: DecimalCount) {\n return toClock(size, decimals);\n}\n\nexport function toClockSeconds(size: number, decimals: DecimalCount) {\n return toClock(size * 1000, decimals);\n}\n\nexport function dateTimeAsIso(value: number, decimals: DecimalCount, scaledDecimals: DecimalCount, isUtc?: boolean) {\n const time = isUtc ? moment.utc(value) : moment(value);\n\n if (moment().isSame(value, 'day')) {\n return time.format('HH:mm:ss');\n }\n return time.format('YYYY-MM-DD HH:mm:ss');\n}\n\nexport function dateTimeAsUS(value: number, decimals: DecimalCount, scaledDecimals: DecimalCount, isUtc?: boolean) {\n const time = isUtc ? moment.utc(value) : moment(value);\n\n if (moment().isSame(value, 'day')) {\n return time.format('h:mm:ss a');\n }\n return time.format('MM/DD/YYYY h:mm:ss a');\n}\n\nexport function dateTimeFromNow(value: number, decimals: DecimalCount, scaledDecimals: DecimalCount, isUtc?: boolean) {\n const time = isUtc ? moment.utc(value) : moment(value);\n return time.fromNow();\n}\n","import { toFixed } from './valueFormats';\nimport { DecimalCount } from '../../types';\n\nexport function toPercent(size: number, decimals: DecimalCount) {\n if (size === null) {\n return '';\n }\n return toFixed(size, decimals) + '%';\n}\n\nexport function toPercentUnit(size: number, decimals: DecimalCount) {\n if (size === null) {\n return '';\n }\n return toFixed(100 * size, decimals) + '%';\n}\n\nexport function toHex0x(value: number, decimals: DecimalCount) {\n if (value == null) {\n return '';\n }\n const hexString = toHex(value, decimals);\n if (hexString.substring(0, 1) === '-') {\n return '-0x' + hexString.substring(1);\n }\n return '0x' + hexString;\n}\n\nexport function toHex(value: number, decimals: DecimalCount) {\n if (value == null) {\n return '';\n }\n return parseFloat(toFixed(value, decimals))\n .toString(16)\n .toUpperCase();\n}\n\nexport function sci(value: number, decimals: DecimalCount) {\n if (value == null) {\n return '';\n }\n return value.toExponential(decimals as number);\n}\n","import { scaledUnits } from './valueFormats';\nimport { DecimalCount } from '../../types';\n\nexport function currency(symbol: string) {\n const units = ['', 'K', 'M', 'B', 'T'];\n const scaler = scaledUnits(1000, units);\n return (size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) => {\n if (size === null) {\n return '';\n }\n const scaled = scaler(size, decimals, scaledDecimals);\n return symbol + scaled;\n };\n}\n\nexport function binarySIPrefix(unit: string, offset = 0) {\n const prefixes = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi'].slice(offset);\n const units = prefixes.map(p => {\n return ' ' + p + unit;\n });\n return scaledUnits(1024, units);\n}\n\nexport function decimalSIPrefix(unit: string, offset = 0) {\n let prefixes = ['n', 'µ', 'm', '', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n prefixes = prefixes.slice(3 + (offset || 0));\n const units = prefixes.map(p => {\n return ' ' + p + unit;\n });\n return scaledUnits(1000, units);\n}\n","import { locale, scaledUnits, simpleCountUnit, toFixed, toFixedUnit, ValueFormatCategory } from './valueFormats';\nimport {\n dateTimeAsIso,\n dateTimeAsUS,\n dateTimeFromNow,\n toClockMilliseconds,\n toClockSeconds,\n toDays,\n toDurationInHoursMinutesSeconds,\n toDurationInMilliseconds,\n toDurationInSeconds,\n toHours,\n toMicroSeconds,\n toMilliSeconds,\n toMinutes,\n toNanoSeconds,\n toSeconds,\n toTimeTicks,\n} from './dateTimeFormatters';\nimport { toHex, sci, toHex0x, toPercent, toPercentUnit } from './arithmeticFormatters';\nimport { binarySIPrefix, currency, decimalSIPrefix } from './symbolFormatters';\n\nexport const getCategories = (): ValueFormatCategory[] => [\n {\n name: 'Misc',\n formats: [\n { name: 'none', id: 'none', fn: toFixed },\n {\n name: 'short',\n id: 'short',\n fn: scaledUnits(1000, ['', ' K', ' Mil', ' Bil', ' Tri', ' Quadr', ' Quint', ' Sext', ' Sept']),\n },\n { name: 'percent (0-100)', id: 'percent', fn: toPercent },\n { name: 'percent (0.0-1.0)', id: 'percentunit', fn: toPercentUnit },\n { name: 'Humidity (%H)', id: 'humidity', fn: toFixedUnit('%H') },\n { name: 'decibel', id: 'dB', fn: toFixedUnit('dB') },\n { name: 'hexadecimal (0x)', id: 'hex0x', fn: toHex0x },\n { name: 'hexadecimal', id: 'hex', fn: toHex },\n { name: 'scientific notation', id: 'sci', fn: sci },\n { name: 'locale format', id: 'locale', fn: locale },\n ],\n },\n {\n name: 'Acceleration',\n formats: [\n { name: 'Meters/sec²', id: 'accMS2', fn: toFixedUnit('m/sec²') },\n { name: 'Feet/sec²', id: 'accFS2', fn: toFixedUnit('f/sec²') },\n { name: 'G unit', id: 'accG', fn: toFixedUnit('g') },\n ],\n },\n {\n name: 'Angle',\n formats: [\n { name: 'Degrees (°)', id: 'degree', fn: toFixedUnit('°') },\n { name: 'Radians', id: 'radian', fn: toFixedUnit('rad') },\n { name: 'Gradian', id: 'grad', fn: toFixedUnit('grad') },\n ],\n },\n {\n name: 'Area',\n formats: [\n { name: 'Square Meters (m²)', id: 'areaM2', fn: toFixedUnit('m²') },\n { name: 'Square Feet (ft²)', id: 'areaF2', fn: toFixedUnit('ft²') },\n { name: 'Square Miles (mi²)', id: 'areaMI2', fn: toFixedUnit('mi²') },\n ],\n },\n {\n name: 'Computation',\n formats: [\n { name: 'FLOP/s', id: 'flops', fn: decimalSIPrefix('FLOP/s') },\n { name: 'MFLOP/s', id: 'mflops', fn: decimalSIPrefix('FLOP/s', 2) },\n { name: 'GFLOP/s', id: 'gflops', fn: decimalSIPrefix('FLOP/s', 3) },\n { name: 'TFLOP/s', id: 'tflops', fn: decimalSIPrefix('FLOP/s', 4) },\n { name: 'PFLOP/s', id: 'pflops', fn: decimalSIPrefix('FLOP/s', 5) },\n { name: 'EFLOP/s', id: 'eflops', fn: decimalSIPrefix('FLOP/s', 6) },\n ],\n },\n {\n name: 'Concentration',\n formats: [\n { name: 'parts-per-million (ppm)', id: 'ppm', fn: toFixedUnit('ppm') },\n { name: 'parts-per-billion (ppb)', id: 'conppb', fn: toFixedUnit('ppb') },\n { name: 'nanogram per cubic meter (ng/m³)', id: 'conngm3', fn: toFixedUnit('ng/m³') },\n { name: 'nanogram per normal cubic meter (ng/Nm³)', id: 'conngNm3', fn: toFixedUnit('ng/Nm³') },\n { name: 'microgram per cubic meter (μg/m³)', id: 'conμgm3', fn: toFixedUnit('μg/m³') },\n { name: 'microgram per normal cubic meter (μg/Nm³)', id: 'conμgNm3', fn: toFixedUnit('μg/Nm³') },\n { name: 'milligram per cubic meter (mg/m³)', id: 'conmgm3', fn: toFixedUnit('mg/m³') },\n { name: 'milligram per normal cubic meter (mg/Nm³)', id: 'conmgNm3', fn: toFixedUnit('mg/Nm³') },\n { name: 'gram per cubic meter (g/m³)', id: 'congm3', fn: toFixedUnit('g/m³') },\n { name: 'gram per normal cubic meter (g/Nm³)', id: 'congNm3', fn: toFixedUnit('g/Nm³') },\n { name: 'milligrams per decilitre (mg/dL)', id: 'conmgdL', fn: toFixedUnit('mg/dL') },\n { name: 'millimoles per litre (mmol/L)', id: 'conmmolL', fn: toFixedUnit('mmol/L') },\n ],\n },\n {\n name: 'Currency',\n formats: [\n { name: 'Dollars ($)', id: 'currencyUSD', fn: currency('$') },\n { name: 'Pounds (£)', id: 'currencyGBP', fn: currency('£') },\n { name: 'Euro (€)', id: 'currencyEUR', fn: currency('€') },\n { name: 'Yen (¥)', id: 'currencyJPY', fn: currency('¥') },\n { name: 'Rubles (₽)', id: 'currencyRUB', fn: currency('₽') },\n { name: 'Hryvnias (₴)', id: 'currencyUAH', fn: currency('₴') },\n { name: 'Real (R$)', id: 'currencyBRL', fn: currency('R$') },\n { name: 'Danish Krone (kr)', id: 'currencyDKK', fn: currency('kr') },\n { name: 'Icelandic Króna (kr)', id: 'currencyISK', fn: currency('kr') },\n { name: 'Norwegian Krone (kr)', id: 'currencyNOK', fn: currency('kr') },\n { name: 'Swedish Krona (kr)', id: 'currencySEK', fn: currency('kr') },\n { name: 'Czech koruna (czk)', id: 'currencyCZK', fn: currency('czk') },\n { name: 'Swiss franc (CHF)', id: 'currencyCHF', fn: currency('CHF') },\n { name: 'Polish Złoty (PLN)', id: 'currencyPLN', fn: currency('PLN') },\n { name: 'Bitcoin (฿)', id: 'currencyBTC', fn: currency('฿') },\n ],\n },\n {\n name: 'Data (IEC)',\n formats: [\n { name: 'bits', id: 'bits', fn: binarySIPrefix('b') },\n { name: 'bytes', id: 'bytes', fn: binarySIPrefix('B') },\n { name: 'kibibytes', id: 'kbytes', fn: binarySIPrefix('B', 1) },\n { name: 'mebibytes', id: 'mbytes', fn: binarySIPrefix('B', 2) },\n { name: 'gibibytes', id: 'gbytes', fn: binarySIPrefix('B', 3) },\n ],\n },\n {\n name: 'Data (Metric)',\n formats: [\n { name: 'bits', id: 'decbits', fn: decimalSIPrefix('b') },\n { name: 'bytes', id: 'decbytes', fn: decimalSIPrefix('B') },\n { name: 'kilobytes', id: 'deckbytes', fn: decimalSIPrefix('B', 1) },\n { name: 'megabytes', id: 'decmbytes', fn: decimalSIPrefix('B', 2) },\n { name: 'gigabytes', id: 'decgbytes', fn: decimalSIPrefix('B', 3) },\n ],\n },\n {\n name: 'Data Rate',\n formats: [\n { name: 'packets/sec', id: 'pps', fn: decimalSIPrefix('pps') },\n { name: 'bits/sec', id: 'bps', fn: decimalSIPrefix('bps') },\n { name: 'bytes/sec', id: 'Bps', fn: decimalSIPrefix('Bs') },\n { name: 'kilobytes/sec', id: 'KBs', fn: decimalSIPrefix('Bs', 1) },\n { name: 'kilobits/sec', id: 'Kbits', fn: decimalSIPrefix('bps', 1) },\n { name: 'megabytes/sec', id: 'MBs', fn: decimalSIPrefix('Bs', 2) },\n { name: 'megabits/sec', id: 'Mbits', fn: decimalSIPrefix('bps', 2) },\n { name: 'gigabytes/sec', id: 'GBs', fn: decimalSIPrefix('Bs', 3) },\n { name: 'gigabits/sec', id: 'Gbits', fn: decimalSIPrefix('bps', 3) },\n ],\n },\n {\n name: 'Date & Time',\n formats: [\n { name: 'YYYY-MM-DD HH:mm:ss', id: 'dateTimeAsIso', fn: dateTimeAsIso },\n { name: 'DD/MM/YYYY h:mm:ss a', id: 'dateTimeAsUS', fn: dateTimeAsUS },\n { name: 'From Now', id: 'dateTimeFromNow', fn: dateTimeFromNow },\n ],\n },\n {\n name: 'Energy',\n formats: [\n { name: 'Watt (W)', id: 'watt', fn: decimalSIPrefix('W') },\n { name: 'Kilowatt (kW)', id: 'kwatt', fn: decimalSIPrefix('W', 1) },\n { name: 'Milliwatt (mW)', id: 'mwatt', fn: decimalSIPrefix('W', -1) },\n { name: 'Watt per square meter (W/m²)', id: 'Wm2', fn: toFixedUnit('W/m²') },\n { name: 'Volt-ampere (VA)', id: 'voltamp', fn: decimalSIPrefix('VA') },\n { name: 'Kilovolt-ampere (kVA)', id: 'kvoltamp', fn: decimalSIPrefix('VA', 1) },\n { name: 'Volt-ampere reactive (var)', id: 'voltampreact', fn: decimalSIPrefix('var') },\n { name: 'Kilovolt-ampere reactive (kvar)', id: 'kvoltampreact', fn: decimalSIPrefix('var', 1) },\n { name: 'Watt-hour (Wh)', id: 'watth', fn: decimalSIPrefix('Wh') },\n { name: 'Kilowatt-hour (kWh)', id: 'kwatth', fn: decimalSIPrefix('Wh', 1) },\n { name: 'Kilowatt-min (kWm)', id: 'kwattm', fn: decimalSIPrefix('W/Min', 1) },\n { name: 'Joule (J)', id: 'joule', fn: decimalSIPrefix('J') },\n { name: 'Electron volt (eV)', id: 'ev', fn: decimalSIPrefix('eV') },\n { name: 'Ampere (A)', id: 'amp', fn: decimalSIPrefix('A') },\n { name: 'Kiloampere (kA)', id: 'kamp', fn: decimalSIPrefix('A', 1) },\n { name: 'Milliampere (mA)', id: 'mamp', fn: decimalSIPrefix('A', -1) },\n { name: 'Volt (V)', id: 'volt', fn: decimalSIPrefix('V') },\n { name: 'Kilovolt (kV)', id: 'kvolt', fn: decimalSIPrefix('V', 1) },\n { name: 'Millivolt (mV)', id: 'mvolt', fn: decimalSIPrefix('V', -1) },\n { name: 'Decibel-milliwatt (dBm)', id: 'dBm', fn: decimalSIPrefix('dBm') },\n { name: 'Ohm (Ω)', id: 'ohm', fn: decimalSIPrefix('Ω') },\n { name: 'Lumens (Lm)', id: 'lumens', fn: decimalSIPrefix('Lm') },\n ],\n },\n {\n name: 'Flow',\n formats: [\n { name: 'Gallons/min (gpm)', id: 'flowgpm', fn: toFixedUnit('gpm') },\n { name: 'Cubic meters/sec (cms)', id: 'flowcms', fn: toFixedUnit('cms') },\n { name: 'Cubic feet/sec (cfs)', id: 'flowcfs', fn: toFixedUnit('cfs') },\n { name: 'Cubic feet/min (cfm)', id: 'flowcfm', fn: toFixedUnit('cfm') },\n { name: 'Litre/hour', id: 'litreh', fn: toFixedUnit('l/h') },\n { name: 'Litre/min (l/min)', id: 'flowlpm', fn: toFixedUnit('l/min') },\n { name: 'milliLitre/min (mL/min)', id: 'flowmlpm', fn: toFixedUnit('mL/min') },\n { name: 'Lux (lx)', id: 'lux', fn: toFixedUnit('lux') },\n ],\n },\n {\n name: 'Force',\n formats: [\n { name: 'Newton-meters (Nm)', id: 'forceNm', fn: decimalSIPrefix('Nm') },\n { name: 'Kilonewton-meters (kNm)', id: 'forcekNm', fn: decimalSIPrefix('Nm', 1) },\n { name: 'Newtons (N)', id: 'forceN', fn: decimalSIPrefix('N') },\n { name: 'Kilonewtons (kN)', id: 'forcekN', fn: decimalSIPrefix('N', 1) },\n ],\n },\n {\n name: 'Hash Rate',\n formats: [\n { name: 'hashes/sec', id: 'Hs', fn: decimalSIPrefix('H/s') },\n { name: 'kilohashes/sec', id: 'KHs', fn: decimalSIPrefix('H/s', 1) },\n { name: 'megahashes/sec', id: 'MHs', fn: decimalSIPrefix('H/s', 2) },\n { name: 'gigahashes/sec', id: 'GHs', fn: decimalSIPrefix('H/s', 3) },\n { name: 'terahashes/sec', id: 'THs', fn: decimalSIPrefix('H/s', 4) },\n { name: 'petahashes/sec', id: 'PHs', fn: decimalSIPrefix('H/s', 5) },\n { name: 'exahashes/sec', id: 'EHs', fn: decimalSIPrefix('H/s', 6) },\n ],\n },\n {\n name: 'Mass',\n formats: [\n { name: 'milligram (mg)', id: 'massmg', fn: decimalSIPrefix('g', -1) },\n { name: 'gram (g)', id: 'massg', fn: decimalSIPrefix('g') },\n { name: 'kilogram (kg)', id: 'masskg', fn: decimalSIPrefix('g', 1) },\n { name: 'metric ton (t)', id: 'masst', fn: toFixedUnit('t') },\n ],\n },\n {\n name: 'length',\n formats: [\n { name: 'millimetre (mm)', id: 'lengthmm', fn: decimalSIPrefix('m', -1) },\n { name: 'feet (ft)', id: 'lengthft', fn: toFixedUnit('ft') },\n { name: 'meter (m)', id: 'lengthm', fn: decimalSIPrefix('m') },\n { name: 'kilometer (km)', id: 'lengthkm', fn: decimalSIPrefix('m', 1) },\n { name: 'mile (mi)', id: 'lengthmi', fn: toFixedUnit('mi') },\n ],\n },\n {\n name: 'Pressure',\n formats: [\n { name: 'Millibars', id: 'pressurembar', fn: decimalSIPrefix('bar', -1) },\n { name: 'Bars', id: 'pressurebar', fn: decimalSIPrefix('bar') },\n { name: 'Kilobars', id: 'pressurekbar', fn: decimalSIPrefix('bar', 1) },\n { name: 'Hectopascals', id: 'pressurehpa', fn: toFixedUnit('hPa') },\n { name: 'Kilopascals', id: 'pressurekpa', fn: toFixedUnit('kPa') },\n { name: 'Inches of mercury', id: 'pressurehg', fn: toFixedUnit('\"Hg') },\n { name: 'PSI', id: 'pressurepsi', fn: scaledUnits(1000, ['psi', 'ksi', 'Mpsi']) },\n ],\n },\n {\n name: 'Radiation',\n formats: [\n { name: 'Becquerel (Bq)', id: 'radbq', fn: decimalSIPrefix('Bq') },\n { name: 'curie (Ci)', id: 'radci', fn: decimalSIPrefix('Ci') },\n { name: 'Gray (Gy)', id: 'radgy', fn: decimalSIPrefix('Gy') },\n { name: 'rad', id: 'radrad', fn: decimalSIPrefix('rad') },\n { name: 'Sievert (Sv)', id: 'radsv', fn: decimalSIPrefix('Sv') },\n { name: 'rem', id: 'radrem', fn: decimalSIPrefix('rem') },\n { name: 'Exposure (C/kg)', id: 'radexpckg', fn: decimalSIPrefix('C/kg') },\n { name: 'roentgen (R)', id: 'radr', fn: decimalSIPrefix('R') },\n { name: 'Sievert/hour (Sv/h)', id: 'radsvh', fn: decimalSIPrefix('Sv/h') },\n ],\n },\n {\n name: 'Temperature',\n formats: [\n { name: 'Celsius (°C)', id: 'celsius', fn: toFixedUnit('°C') },\n { name: 'Farenheit (°F)', id: 'farenheit', fn: toFixedUnit('°F') },\n { name: 'Kelvin (K)', id: 'kelvin', fn: toFixedUnit('K') },\n ],\n },\n {\n name: 'Time',\n formats: [\n { name: 'Hertz (1/s)', id: 'hertz', fn: decimalSIPrefix('Hz') },\n { name: 'nanoseconds (ns)', id: 'ns', fn: toNanoSeconds },\n { name: 'microseconds (µs)', id: 'µs', fn: toMicroSeconds },\n { name: 'milliseconds (ms)', id: 'ms', fn: toMilliSeconds },\n { name: 'seconds (s)', id: 's', fn: toSeconds },\n { name: 'minutes (m)', id: 'm', fn: toMinutes },\n { name: 'hours (h)', id: 'h', fn: toHours },\n { name: 'days (d)', id: 'd', fn: toDays },\n { name: 'duration (ms)', id: 'dtdurationms', fn: toDurationInMilliseconds },\n { name: 'duration (s)', id: 'dtdurations', fn: toDurationInSeconds },\n { name: 'duration (hh:mm:ss)', id: 'dthms', fn: toDurationInHoursMinutesSeconds },\n { name: 'Timeticks (s/100)', id: 'timeticks', fn: toTimeTicks },\n { name: 'clock (ms)', id: 'clockms', fn: toClockMilliseconds },\n { name: 'clock (s)', id: 'clocks', fn: toClockSeconds },\n ],\n },\n {\n name: 'Throughput',\n formats: [\n { name: 'ops/sec (ops)', id: 'ops', fn: simpleCountUnit('ops') },\n { name: 'requests/sec (rps)', id: 'reqps', fn: simpleCountUnit('reqps') },\n { name: 'reads/sec (rps)', id: 'rps', fn: simpleCountUnit('rps') },\n { name: 'writes/sec (wps)', id: 'wps', fn: simpleCountUnit('wps') },\n { name: 'I/O ops/sec (iops)', id: 'iops', fn: simpleCountUnit('iops') },\n { name: 'ops/min (opm)', id: 'opm', fn: simpleCountUnit('opm') },\n { name: 'reads/min (rpm)', id: 'rpm', fn: simpleCountUnit('rpm') },\n { name: 'writes/min (wpm)', id: 'wpm', fn: simpleCountUnit('wpm') },\n ],\n },\n {\n name: 'Velocity',\n formats: [\n { name: 'metres/second (m/s)', id: 'velocityms', fn: toFixedUnit('m/s') },\n { name: 'kilometers/hour (km/h)', id: 'velocitykmh', fn: toFixedUnit('km/h') },\n { name: 'miles/hour (mph)', id: 'velocitymph', fn: toFixedUnit('mph') },\n { name: 'knot (kn)', id: 'velocityknot', fn: toFixedUnit('kn') },\n ],\n },\n {\n name: 'Volume',\n formats: [\n { name: 'millilitre (mL)', id: 'mlitre', fn: decimalSIPrefix('L', -1) },\n { name: 'litre (L)', id: 'litre', fn: decimalSIPrefix('L') },\n { name: 'cubic metre', id: 'm3', fn: toFixedUnit('m³') },\n { name: 'Normal cubic metre', id: 'Nm3', fn: toFixedUnit('Nm³') },\n { name: 'cubic decimetre', id: 'dm3', fn: toFixedUnit('dm³') },\n { name: 'gallons', id: 'gallons', fn: toFixedUnit('gal') },\n ],\n },\n];\n","import { getCategories } from './categories';\nimport { DecimalCount } from '../../types';\n\nexport type ValueFormatter = (\n value: number,\n decimals?: DecimalCount,\n scaledDecimals?: DecimalCount,\n isUtc?: boolean\n) => string;\n\nexport interface ValueFormat {\n name: string;\n id: string;\n fn: ValueFormatter;\n}\n\nexport interface ValueFormatCategory {\n name: string;\n formats: ValueFormat[];\n}\n\ninterface ValueFormatterIndex {\n [id: string]: ValueFormatter;\n}\n\n// Globals & formats cache\nlet categories: ValueFormatCategory[] = [];\nconst index: ValueFormatterIndex = {};\nlet hasBuiltIndex = false;\n\nexport function toFixed(value: number, decimals?: DecimalCount): string {\n if (value === null) {\n return '';\n }\n\n const factor = decimals ? Math.pow(10, Math.max(0, decimals)) : 1;\n const formatted = String(Math.round(value * factor) / factor);\n\n // if exponent return directly\n if (formatted.indexOf('e') !== -1 || value === 0) {\n return formatted;\n }\n\n // If tickDecimals was specified, ensure that we have exactly that\n // much precision; otherwise default to the value's own precision.\n if (decimals != null) {\n const decimalPos = formatted.indexOf('.');\n const precision = decimalPos === -1 ? 0 : formatted.length - decimalPos - 1;\n if (precision < decimals) {\n return (precision ? formatted : formatted + '.') + String(factor).substr(1, decimals - precision);\n }\n }\n\n return formatted;\n}\n\nexport function toFixedScaled(\n value: number,\n decimals: DecimalCount,\n scaledDecimals: DecimalCount,\n additionalDecimals: number,\n ext?: string\n) {\n if (scaledDecimals === null || scaledDecimals === undefined) {\n return toFixed(value, decimals) + ext;\n } else {\n return toFixed(value, scaledDecimals + additionalDecimals) + ext;\n }\n\n return toFixed(value, decimals) + ext;\n}\n\nexport function toFixedUnit(unit: string): ValueFormatter {\n return (size: number, decimals?: DecimalCount) => {\n if (size === null) {\n return '';\n }\n return toFixed(size, decimals) + ' ' + unit;\n };\n}\n\n// Formatter which scales the unit string geometrically according to the given\n// numeric factor. Repeatedly scales the value down by the factor until it is\n// less than the factor in magnitude, or the end of the array is reached.\nexport function scaledUnits(factor: number, extArray: string[]) {\n return (size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) => {\n if (size === null) {\n return '';\n }\n\n let steps = 0;\n const limit = extArray.length;\n\n while (Math.abs(size) >= factor) {\n steps++;\n size /= factor;\n\n if (steps >= limit) {\n return 'NA';\n }\n }\n\n if (steps > 0 && scaledDecimals !== null && scaledDecimals !== undefined) {\n decimals = scaledDecimals + 3 * steps;\n }\n\n return toFixed(size, decimals) + extArray[steps];\n };\n}\n\nexport function locale(value: number, decimals: DecimalCount) {\n if (value == null) {\n return '';\n }\n return value.toLocaleString(undefined, { maximumFractionDigits: decimals as number });\n}\n\nexport function simpleCountUnit(symbol: string) {\n const units = ['', 'K', 'M', 'B', 'T'];\n const scaler = scaledUnits(1000, units);\n return (size: number, decimals?: DecimalCount, scaledDecimals?: DecimalCount) => {\n if (size === null) {\n return '';\n }\n const scaled = scaler(size, decimals, scaledDecimals);\n return scaled + ' ' + symbol;\n };\n}\n\nfunction buildFormats() {\n categories = getCategories();\n\n for (const cat of categories) {\n for (const format of cat.formats) {\n index[format.id] = format.fn;\n }\n }\n\n hasBuiltIndex = true;\n}\n\nexport function getValueFormat(id: string): ValueFormatter {\n if (!hasBuiltIndex) {\n buildFormats();\n }\n\n return index[id];\n}\n\nexport function getValueFormatterIndex(): ValueFormatterIndex {\n if (!hasBuiltIndex) {\n buildFormats();\n }\n\n return index;\n}\n\nexport function getValueFormats() {\n if (!hasBuiltIndex) {\n buildFormats();\n }\n\n return categories.map(cat => {\n return {\n text: cat.name,\n submenu: cat.formats.map(format => {\n return {\n text: format.name,\n value: format.id,\n };\n }),\n };\n });\n}\n","import map from 'lodash/map';\nimport sortBy from 'lodash/sortBy';\nimport flattenDeep from 'lodash/flattenDeep';\nimport chunk from 'lodash/chunk';\nimport zip from 'lodash/zip';\nimport tinycolor from 'tinycolor2';\n\nexport const PALETTE_ROWS = 4;\nexport const PALETTE_COLUMNS = 14;\nexport const DEFAULT_ANNOTATION_COLOR = 'rgba(0, 211, 255, 1)';\nexport const OK_COLOR = 'rgba(11, 237, 50, 1)';\nexport const ALERTING_COLOR = 'rgba(237, 46, 24, 1)';\nexport const NO_DATA_COLOR = 'rgba(150, 150, 150, 1)';\nexport const PENDING_COLOR = 'rgba(247, 149, 32, 1)';\nexport const REGION_FILL_ALPHA = 0.09;\nexport const colors = [\n '#7EB26D', // 0: pale green\n '#EAB839', // 1: mustard\n '#6ED0E0', // 2: light blue\n '#EF843C', // 3: orange\n '#E24D42', // 4: red\n '#1F78C1', // 5: ocean\n '#BA43A9', // 6: purple\n '#705DA0', // 7: violet\n '#508642', // 8: dark green\n '#CCA300', // 9: dark sand\n '#447EBC',\n '#C15C17',\n '#890F02',\n '#0A437C',\n '#6D1F62',\n '#584477',\n '#B7DBAB',\n '#F4D598',\n '#70DBED',\n '#F9BA8F',\n '#F29191',\n '#82B5D8',\n '#E5A8E2',\n '#AEA2E0',\n '#629E51',\n '#E5AC0E',\n '#64B0C8',\n '#E0752D',\n '#BF1B00',\n '#0A50A1',\n '#962D82',\n '#614D93',\n '#9AC48A',\n '#F2C96D',\n '#65C5DB',\n '#F9934E',\n '#EA6460',\n '#5195CE',\n '#D683CE',\n '#806EB7',\n '#3F6833',\n '#967302',\n '#2F575E',\n '#99440A',\n '#58140C',\n '#052B51',\n '#511749',\n '#3F2B5B',\n '#E0F9D7',\n '#FCEACA',\n '#CFFAFF',\n '#F9E2D2',\n '#FCE2DE',\n '#BADFF4',\n '#F9D9F9',\n '#DEDAF7',\n];\n\nfunction sortColorsByHue(hexColors: string[]) {\n const hslColors = map(hexColors, hexToHsl);\n\n const sortedHSLColors = sortBy(hslColors, ['h']);\n const chunkedHSLColors = chunk(sortedHSLColors, PALETTE_ROWS);\n const sortedChunkedHSLColors = map(chunkedHSLColors, chunk => {\n return sortBy(chunk, 'l');\n });\n const flattenedZippedSortedChunkedHSLColors = flattenDeep(zip(...sortedChunkedHSLColors));\n\n return map(flattenedZippedSortedChunkedHSLColors, hslToHex);\n}\n\nfunction hexToHsl(color: string) {\n return tinycolor(color).toHsl();\n}\n\nfunction hslToHex(color: any) {\n return tinycolor(color).toHexString();\n}\n\nexport let sortedColors = sortColorsByHue(colors);\n","import { Threshold } from '../types';\n\nexport function getThresholdForValue(\n thresholds: Threshold[],\n value: number | null | string | undefined\n): Threshold | null {\n if (thresholds.length === 1) {\n return thresholds[0];\n }\n\n const atThreshold = thresholds.filter(threshold => (value as number) === threshold.value)[0];\n if (atThreshold) {\n return atThreshold;\n }\n\n const belowThreshold = thresholds.filter(threshold => (value as number) > threshold.value);\n if (belowThreshold.length > 0) {\n const nearestThreshold = belowThreshold.sort((t1: Threshold, t2: Threshold) => t2.value - t1.value)[0];\n return nearestThreshold;\n }\n\n return null;\n}\n","export function stringToJsRegex(str: string): RegExp {\n if (str[0] !== '/') {\n return new RegExp('^' + str + '$');\n }\n\n const match = str.match(new RegExp('^/(.*?)/(g?i?m?y?)$'));\n\n if (!match) {\n throw new Error(`'${str}' is not a valid regular expression.`);\n }\n\n return new RegExp(match[1], match[2]);\n}\n","import { ValueMapping, MappingType, ValueMap, RangeMap } from '../types';\n\nexport type TimeSeriesValue = string | number | null;\n\nconst addValueToTextMappingText = (\n allValueMappings: ValueMapping[],\n valueToTextMapping: ValueMap,\n value: TimeSeriesValue\n) => {\n if (valueToTextMapping.value === undefined) {\n return allValueMappings;\n }\n\n if (value === null && valueToTextMapping.value && valueToTextMapping.value.toLowerCase() === 'null') {\n return allValueMappings.concat(valueToTextMapping);\n }\n\n const valueAsNumber = parseFloat(value as string);\n const valueToTextMappingAsNumber = parseFloat(valueToTextMapping.value as string);\n\n if (isNaN(valueAsNumber) || isNaN(valueToTextMappingAsNumber)) {\n return allValueMappings;\n }\n\n if (valueAsNumber !== valueToTextMappingAsNumber) {\n return allValueMappings;\n }\n\n return allValueMappings.concat(valueToTextMapping);\n};\n\nconst addRangeToTextMappingText = (\n allValueMappings: ValueMapping[],\n rangeToTextMapping: RangeMap,\n value: TimeSeriesValue\n) => {\n if (rangeToTextMapping.from === undefined || rangeToTextMapping.to === undefined || value === undefined) {\n return allValueMappings;\n }\n\n if (\n value === null &&\n rangeToTextMapping.from &&\n rangeToTextMapping.to &&\n rangeToTextMapping.from.toLowerCase() === 'null' &&\n rangeToTextMapping.to.toLowerCase() === 'null'\n ) {\n return allValueMappings.concat(rangeToTextMapping);\n }\n\n const valueAsNumber = parseFloat(value as string);\n const fromAsNumber = parseFloat(rangeToTextMapping.from as string);\n const toAsNumber = parseFloat(rangeToTextMapping.to as string);\n\n if (isNaN(valueAsNumber) || isNaN(fromAsNumber) || isNaN(toAsNumber)) {\n return allValueMappings;\n }\n\n if (valueAsNumber >= fromAsNumber && valueAsNumber <= toAsNumber) {\n return allValueMappings.concat(rangeToTextMapping);\n }\n\n return allValueMappings;\n};\n\nconst getAllFormattedValueMappings = (valueMappings: ValueMapping[], value: TimeSeriesValue) => {\n const allFormattedValueMappings = valueMappings.reduce(\n (allValueMappings, valueMapping) => {\n if (valueMapping.type === MappingType.ValueToText) {\n allValueMappings = addValueToTextMappingText(allValueMappings, valueMapping as ValueMap, value);\n } else if (valueMapping.type === MappingType.RangeToText) {\n allValueMappings = addRangeToTextMappingText(allValueMappings, valueMapping as RangeMap, value);\n }\n\n return allValueMappings;\n },\n [] as ValueMapping[]\n );\n\n allFormattedValueMappings.sort((t1, t2) => {\n return t1.id - t2.id;\n });\n\n return allFormattedValueMappings;\n};\n\nexport const getMappedValue = (valueMappings: ValueMapping[], value: TimeSeriesValue): ValueMapping => {\n return getAllFormattedValueMappings(valueMappings, value)[0];\n};\n","// Libraries\nimport _ from 'lodash';\nimport moment from 'moment';\n\n// Utils\nimport { getValueFormat } from './valueFormats/valueFormats';\nimport { getMappedValue } from './valueMappings';\nimport { getColorFromHexRgbOrName } from './namedColorsPalette';\n\n// Types\nimport {\n Threshold,\n ValueMapping,\n DecimalInfo,\n DisplayValue,\n GrafanaTheme,\n GrafanaThemeType,\n DecimalCount,\n} from '../types';\n\nexport type DisplayProcessor = (value: any) => DisplayValue;\n\nexport interface DisplayValueOptions {\n unit?: string;\n decimals?: DecimalCount;\n dateFormat?: string; // If set try to convert numbers to date\n\n color?: string;\n mappings?: ValueMapping[];\n thresholds?: Threshold[];\n prefix?: string;\n suffix?: string;\n\n // Alternative to empty string\n noValue?: string;\n\n // Context\n isUtc?: boolean;\n theme?: GrafanaTheme; // Will pick 'dark' if not defined\n}\n\nexport function getDisplayProcessor(options?: DisplayValueOptions): DisplayProcessor {\n if (options && !_.isEmpty(options)) {\n const formatFunc = getValueFormat(options.unit || 'none');\n\n return (value: any) => {\n const { prefix, suffix, mappings, thresholds, theme } = options;\n let color = options.color;\n\n let text = _.toString(value);\n let numeric = toNumber(value);\n\n let shouldFormat = true;\n if (mappings && mappings.length > 0) {\n const mappedValue = getMappedValue(mappings, value);\n\n if (mappedValue) {\n text = mappedValue.text;\n const v = toNumber(text);\n\n if (!isNaN(v)) {\n numeric = v;\n }\n\n shouldFormat = false;\n }\n }\n\n if (options.dateFormat) {\n const date = toMoment(value, numeric, options.dateFormat);\n if (date.isValid()) {\n text = date.format(options.dateFormat);\n shouldFormat = false;\n }\n }\n\n if (!isNaN(numeric)) {\n if (shouldFormat && !_.isBoolean(value)) {\n const { decimals, scaledDecimals } = getDecimalsForValue(value, options.decimals);\n text = formatFunc(numeric, decimals, scaledDecimals, options.isUtc);\n }\n if (thresholds && thresholds.length > 0) {\n color = getColorFromThreshold(numeric, thresholds, theme);\n }\n }\n\n if (!text) {\n text = options.noValue ? options.noValue : '';\n }\n if (prefix) {\n text = prefix + text;\n }\n if (suffix) {\n text = text + suffix;\n }\n return { text, numeric, color };\n };\n }\n\n return toStringProcessor;\n}\n\nfunction toMoment(value: any, numeric: number, format: string): moment.Moment {\n if (!isNaN(numeric)) {\n const v = moment(numeric);\n if (v.isValid()) {\n return v;\n }\n }\n const v = moment(value, format);\n if (v.isValid) {\n return v;\n }\n return moment(value); // moment will try to parse the format\n}\n\n/** Will return any value as a number or NaN */\nfunction toNumber(value: any): number {\n if (typeof value === 'number') {\n return value;\n }\n if (value === null || value === undefined || Array.isArray(value)) {\n return NaN; // lodash calls them 0\n }\n if (typeof value === 'boolean') {\n return value ? 1 : 0;\n }\n return _.toNumber(value);\n}\n\nfunction toStringProcessor(value: any): DisplayValue {\n return { text: _.toString(value), numeric: toNumber(value) };\n}\n\nexport function getColorFromThreshold(value: number, thresholds: Threshold[], theme?: GrafanaTheme): string {\n const themeType = theme ? theme.type : GrafanaThemeType.Dark;\n\n if (thresholds.length === 1) {\n return getColorFromHexRgbOrName(thresholds[0].color, themeType);\n }\n\n const atThreshold = thresholds.filter(threshold => value === threshold.value)[0];\n if (atThreshold) {\n return getColorFromHexRgbOrName(atThreshold.color, themeType);\n }\n\n const belowThreshold = thresholds.filter(threshold => value > threshold.value);\n\n if (belowThreshold.length > 0) {\n const nearestThreshold = belowThreshold.sort((t1, t2) => t2.value - t1.value)[0];\n return getColorFromHexRgbOrName(nearestThreshold.color, themeType);\n }\n\n // Use the first threshold as the default color\n return getColorFromHexRgbOrName(thresholds[0].color, themeType);\n}\n\nexport function getDecimalsForValue(value: number, decimalOverride?: DecimalCount): DecimalInfo {\n if (_.isNumber(decimalOverride)) {\n // It's important that scaledDecimals is null here\n return { decimals: decimalOverride, scaledDecimals: null };\n }\n\n const delta = value / 2;\n let dec = -Math.floor(Math.log(delta) / Math.LN10);\n\n const magn = Math.pow(10, -dec);\n const norm = delta / magn; // norm is between 1.0 and 10.0\n let size;\n\n if (norm < 1.5) {\n size = 1;\n } else if (norm < 3) {\n size = 2;\n // special case for 2.5, requires an extra decimal\n if (norm > 2.25) {\n size = 2.5;\n ++dec;\n }\n } else if (norm < 7.5) {\n size = 5;\n } else {\n size = 10;\n }\n\n size *= magn;\n\n // reduce starting decimals if not needed\n if (Math.floor(value) === value) {\n dec = 0;\n }\n\n const decimals = Math.max(0, dec);\n const scaledDecimals = decimals - Math.floor(Math.log(size) / Math.LN10) + 2;\n\n return { decimals, scaledDecimals };\n}\n","import { ValidationRule, ValidationEvents } from '../types/input';\n\nexport enum EventsWithValidation {\n onBlur = 'onBlur',\n onFocus = 'onFocus',\n onChange = 'onChange',\n}\n\nexport const validate = (value: string, validationRules: ValidationRule[]) => {\n const errors = validationRules.reduce(\n (acc, currRule) => {\n if (!currRule.rule(value)) {\n return acc.concat(currRule.errorMessage);\n }\n return acc;\n },\n [] as string[]\n );\n return errors.length > 0 ? errors : null;\n};\n\nexport const hasValidationEvent = (event: EventsWithValidation, validationEvents: ValidationEvents | undefined) => {\n return validationEvents && validationEvents[event];\n};\n","export * from './processSeriesData';\nexport * from './valueFormats/valueFormats';\nexport * from './colors';\nexport * from './namedColorsPalette';\nexport * from './thresholds';\nexport * from './string';\nexport * from './statsCalculator';\nexport * from './displayValue';\nexport * from './deprecationWarning';\nexport { getMappedValue } from './valueMappings';\nexport * from './validate';\n","// Types\nimport { Emitter } from 'app/core/core';\nimport {\n RawTimeRange,\n TimeRange,\n DataQuery,\n DataSourceSelectItem,\n DataSourceApi,\n QueryFixAction,\n} from '@grafana/ui/src/types';\nimport {\n ExploreId,\n ExploreItemState,\n HistoryItem,\n RangeScanner,\n ResultType,\n QueryTransaction,\n ExploreUIState,\n} from 'app/types/explore';\nimport { actionCreatorFactory, noPayloadActionCreatorFactory, ActionOf } from 'app/core/redux/actionCreatorFactory';\nimport { LogLevel } from 'app/core/logs_model';\n\n/** Higher order actions\n *\n */\nexport enum ActionTypes {\n SplitOpen = 'explore/SPLIT_OPEN',\n ResetExplore = 'explore/RESET_EXPLORE',\n}\nexport interface SplitOpenAction {\n type: ActionTypes.SplitOpen;\n payload: {\n itemState: ExploreItemState;\n };\n}\n\nexport interface ResetExploreAction {\n type: ActionTypes.ResetExplore;\n payload: {};\n}\n\n/** Lower order actions\n *\n */\nexport interface AddQueryRowPayload {\n exploreId: ExploreId;\n index: number;\n query: DataQuery;\n}\n\nexport interface ChangeQueryPayload {\n exploreId: ExploreId;\n query: DataQuery;\n index: number;\n override: boolean;\n}\n\nexport interface ChangeSizePayload {\n exploreId: ExploreId;\n width: number;\n height: number;\n}\n\nexport interface ChangeTimePayload {\n exploreId: ExploreId;\n range: TimeRange;\n}\n\nexport interface ClearQueriesPayload {\n exploreId: ExploreId;\n}\n\nexport interface HighlightLogsExpressionPayload {\n exploreId: ExploreId;\n expressions: string[];\n}\n\nexport interface InitializeExplorePayload {\n exploreId: ExploreId;\n containerWidth: number;\n eventBridge: Emitter;\n exploreDatasources: DataSourceSelectItem[];\n queries: DataQuery[];\n range: RawTimeRange;\n ui: ExploreUIState;\n}\n\nexport interface LoadDatasourceFailurePayload {\n exploreId: ExploreId;\n error: string;\n}\n\nexport interface LoadDatasourceMissingPayload {\n exploreId: ExploreId;\n}\n\nexport interface LoadDatasourcePendingPayload {\n exploreId: ExploreId;\n requestedDatasourceName: string;\n}\n\nexport interface LoadDatasourceSuccessPayload {\n exploreId: ExploreId;\n StartPage?: any;\n datasourceInstance: any;\n history: HistoryItem[];\n logsHighlighterExpressions?: any[];\n showingStartPage: boolean;\n supportsGraph: boolean;\n supportsLogs: boolean;\n supportsTable: boolean;\n}\n\nexport interface ModifyQueriesPayload {\n exploreId: ExploreId;\n modification: QueryFixAction;\n index: number;\n modifier: (query: DataQuery, modification: QueryFixAction) => DataQuery;\n}\n\nexport interface QueryTransactionFailurePayload {\n exploreId: ExploreId;\n queryTransactions: QueryTransaction[];\n}\n\nexport interface QueryTransactionStartPayload {\n exploreId: ExploreId;\n resultType: ResultType;\n rowIndex: number;\n transaction: QueryTransaction;\n}\n\nexport interface QueryTransactionSuccessPayload {\n exploreId: ExploreId;\n history: HistoryItem[];\n queryTransactions: QueryTransaction[];\n}\n\nexport interface RemoveQueryRowPayload {\n exploreId: ExploreId;\n index: number;\n}\n\nexport interface ScanStartPayload {\n exploreId: ExploreId;\n scanner: RangeScanner;\n}\n\nexport interface ScanRangePayload {\n exploreId: ExploreId;\n range: RawTimeRange;\n}\n\nexport interface ScanStopPayload {\n exploreId: ExploreId;\n}\n\nexport interface SetQueriesPayload {\n exploreId: ExploreId;\n queries: DataQuery[];\n}\n\nexport interface SplitCloseActionPayload {\n itemId: ExploreId;\n}\n\nexport interface SplitOpenPayload {\n itemState: ExploreItemState;\n}\n\nexport interface ToggleTablePayload {\n exploreId: ExploreId;\n}\n\nexport interface ToggleGraphPayload {\n exploreId: ExploreId;\n}\n\nexport interface ToggleLogsPayload {\n exploreId: ExploreId;\n}\n\nexport interface UpdateUIStatePayload extends Partial {\n exploreId: ExploreId;\n}\n\nexport interface UpdateDatasourceInstancePayload {\n exploreId: ExploreId;\n datasourceInstance: DataSourceApi;\n}\n\nexport interface ToggleLogLevelPayload {\n exploreId: ExploreId;\n hiddenLogLevels: Set;\n}\n\nexport interface QueriesImportedPayload {\n exploreId: ExploreId;\n queries: DataQuery[];\n}\n\n/**\n * Adds a query row after the row with the given index.\n */\nexport const addQueryRowAction = actionCreatorFactory('explore/ADD_QUERY_ROW').create();\n\n/**\n * Loads a new datasource identified by the given name.\n */\nexport const changeDatasourceAction = noPayloadActionCreatorFactory('explore/CHANGE_DATASOURCE').create();\n\n/**\n * Query change handler for the query row with the given index.\n * If `override` is reset the query modifications and run the queries. Use this to set queries via a link.\n */\nexport const changeQueryAction = actionCreatorFactory('explore/CHANGE_QUERY').create();\n\n/**\n * Keep track of the Explore container size, in particular the width.\n * The width will be used to calculate graph intervals (number of datapoints).\n */\nexport const changeSizeAction = actionCreatorFactory('explore/CHANGE_SIZE').create();\n\n/**\n * Change the time range of Explore. Usually called from the Timepicker or a graph interaction.\n */\nexport const changeTimeAction = actionCreatorFactory('explore/CHANGE_TIME').create();\n\n/**\n * Clear all queries and results.\n */\nexport const clearQueriesAction = actionCreatorFactory('explore/CLEAR_QUERIES').create();\n\n/**\n * Highlight expressions in the log results\n */\nexport const highlightLogsExpressionAction = actionCreatorFactory(\n 'explore/HIGHLIGHT_LOGS_EXPRESSION'\n).create();\n\n/**\n * Initialize Explore state with state from the URL and the React component.\n * Call this only on components for with the Explore state has not been initialized.\n */\nexport const initializeExploreAction = actionCreatorFactory(\n 'explore/INITIALIZE_EXPLORE'\n).create();\n\n/**\n * Display an error that happened during the selection of a datasource\n */\nexport const loadDatasourceFailureAction = actionCreatorFactory(\n 'explore/LOAD_DATASOURCE_FAILURE'\n).create();\n\n/**\n * Display an error when no datasources have been configured\n */\nexport const loadDatasourceMissingAction = actionCreatorFactory(\n 'explore/LOAD_DATASOURCE_MISSING'\n).create();\n\n/**\n * Start the async process of loading a datasource to display a loading indicator\n */\nexport const loadDatasourcePendingAction = actionCreatorFactory(\n 'explore/LOAD_DATASOURCE_PENDING'\n).create();\n\n/**\n * Datasource loading was successfully completed. The instance is stored in the state as well in case we need to\n * run datasource-specific code. Existing queries are imported to the new datasource if an importer exists,\n * e.g., Prometheus -> Loki queries.\n */\nexport const loadDatasourceSuccessAction = actionCreatorFactory(\n 'explore/LOAD_DATASOURCE_SUCCESS'\n).create();\n\n/**\n * Action to modify a query given a datasource-specific modifier action.\n * @param exploreId Explore area\n * @param modification Action object with a type, e.g., ADD_FILTER\n * @param index Optional query row index. If omitted, the modification is applied to all query rows.\n * @param modifier Function that executes the modification, typically `datasourceInstance.modifyQueries`.\n */\nexport const modifyQueriesAction = actionCreatorFactory('explore/MODIFY_QUERIES').create();\n\n/**\n * Mark a query transaction as failed with an error extracted from the query response.\n * The transaction will be marked as `done`.\n */\nexport const queryTransactionFailureAction = actionCreatorFactory(\n 'explore/QUERY_TRANSACTION_FAILURE'\n).create();\n\n/**\n * Start a query transaction for the given result type.\n * @param exploreId Explore area\n * @param transaction Query options and `done` status.\n * @param resultType Associate the transaction with a result viewer, e.g., Graph\n * @param rowIndex Index is used to associate latency for this transaction with a query row\n */\nexport const queryTransactionStartAction = actionCreatorFactory(\n 'explore/QUERY_TRANSACTION_START'\n).create();\n\n/**\n * Complete a query transaction, mark the transaction as `done` and store query state in URL.\n * If the transaction was started by a scanner, it keeps on scanning for more results.\n * Side-effect: the query is stored in localStorage.\n * @param exploreId Explore area\n * @param transactionId ID\n * @param result Response from `datasourceInstance.query()`\n * @param latency Duration between request and response\n * @param queries Queries from all query rows\n * @param datasourceId Origin datasource instance, used to discard results if current datasource is different\n */\nexport const queryTransactionSuccessAction = actionCreatorFactory(\n 'explore/QUERY_TRANSACTION_SUCCESS'\n).create();\n\n/**\n * Remove query row of the given index, as well as associated query results.\n */\nexport const removeQueryRowAction = actionCreatorFactory('explore/REMOVE_QUERY_ROW').create();\nexport const runQueriesAction = noPayloadActionCreatorFactory('explore/RUN_QUERIES').create();\n\n/**\n * Start a scan for more results using the given scanner.\n * @param exploreId Explore area\n * @param scanner Function that a) returns a new time range and b) triggers a query run for the new range\n */\nexport const scanStartAction = actionCreatorFactory('explore/SCAN_START').create();\nexport const scanRangeAction = actionCreatorFactory('explore/SCAN_RANGE').create();\n\n/**\n * Stop any scanning for more results.\n */\nexport const scanStopAction = actionCreatorFactory('explore/SCAN_STOP').create();\n\n/**\n * Reset queries to the given queries. Any modifications will be discarded.\n * Use this action for clicks on query examples. Triggers a query run.\n */\nexport const setQueriesAction = actionCreatorFactory('explore/SET_QUERIES').create();\n\n/**\n * Close the split view and save URL state.\n */\nexport const splitCloseAction = actionCreatorFactory('explore/SPLIT_CLOSE').create();\n\n/**\n * Open the split view and copy the left state to be the right state.\n * The right state is automatically initialized.\n * The copy keeps all query modifications but wipes the query results.\n */\nexport const splitOpenAction = actionCreatorFactory('explore/SPLIT_OPEN').create();\nexport const stateSaveAction = noPayloadActionCreatorFactory('explore/STATE_SAVE').create();\n\n/**\n * Update state of Explores UI elements (panels visiblity and deduplication strategy)\n */\nexport const updateUIStateAction = actionCreatorFactory('explore/UPDATE_UI_STATE').create();\n\n/**\n * Expand/collapse the table result viewer. When collapsed, table queries won't be run.\n */\nexport const toggleTableAction = actionCreatorFactory('explore/TOGGLE_TABLE').create();\n\n/**\n * Expand/collapse the graph result viewer. When collapsed, graph queries won't be run.\n */\nexport const toggleGraphAction = actionCreatorFactory('explore/TOGGLE_GRAPH').create();\n\n/**\n * Expand/collapse the logs result viewer. When collapsed, log queries won't be run.\n */\nexport const toggleLogsAction = actionCreatorFactory('explore/TOGGLE_LOGS').create();\n\n/**\n * Updates datasource instance before datasouce loading has started\n */\nexport const updateDatasourceInstanceAction = actionCreatorFactory(\n 'explore/UPDATE_DATASOURCE_INSTANCE'\n).create();\n\nexport const toggleLogLevelAction = actionCreatorFactory('explore/TOGGLE_LOG_LEVEL').create();\n\n/**\n * Resets state for explore.\n */\nexport const resetExploreAction = noPayloadActionCreatorFactory('explore/RESET_EXPLORE').create();\nexport const queriesImportedAction = actionCreatorFactory('explore/QueriesImported').create();\n\nexport type HigherOrderAction =\n | ActionOf\n | SplitOpenAction\n | ResetExploreAction\n | ActionOf;\n\nexport type Action =\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf;\n","import { NavModel, NavModelItem, NavIndex } from 'app/types';\n\nfunction getNotFoundModel(): NavModel {\n const node: NavModelItem = {\n id: 'not-found',\n text: 'Page not found',\n icon: 'fa fa-fw fa-warning',\n subTitle: '404 Error',\n url: 'not-found',\n };\n\n return {\n node: node,\n main: node,\n };\n}\n\nexport function getNavModel(navIndex: NavIndex, id: string, fallback?: NavModel): NavModel {\n if (navIndex[id]) {\n const node = navIndex[id];\n const main = {\n ...node.parentItem,\n };\n\n main.children = main.children.map(item => {\n return {\n ...item,\n active: item.url === node.url,\n };\n });\n\n return {\n node: node,\n main: main,\n };\n }\n\n if (fallback) {\n return fallback;\n }\n\n return getNotFoundModel();\n}\n\nexport const getTitleFromNavModel = (navModel: NavModel) => {\n return `${navModel.main.text}${navModel.node.text ? ': ' + navModel.node.text : ''}`;\n};\n","import { ActionOf, ActionCreator } from './actionCreatorFactory';\nimport { Reducer } from 'redux';\n\nexport type Mapper = (state: State, action: ActionOf) => State;\n\nexport interface MapperConfig {\n filter: ActionCreator;\n mapper: Mapper;\n}\n\nexport interface AddMapper {\n addMapper: (config: MapperConfig) => CreateReducer;\n}\n\nexport interface CreateReducer extends AddMapper {\n create: () => Reducer>;\n}\n\nexport const reducerFactory = (initialState: State): AddMapper => {\n const allMappers: { [key: string]: Mapper } = {};\n\n const addMapper = (config: MapperConfig): CreateReducer => {\n if (allMappers[config.filter.type]) {\n throw new Error(`There is already a mapper defined with the type ${config.filter.type}`);\n }\n\n allMappers[config.filter.type] = config.mapper;\n\n return instance;\n };\n\n const create = (): Reducer> => (state: State = initialState, action: ActionOf): State => {\n const mapper = allMappers[action.type];\n\n if (mapper) {\n return mapper(state, action);\n }\n\n return state;\n };\n\n const instance: CreateReducer = { addMapper, create };\n\n return instance;\n};\n","export * from './actionCreatorFactory';\nexport * from './reducerFactory';\n","import { ThunkAction } from 'redux-thunk';\nimport config from '../../../core/config';\nimport { getBackendSrv } from 'app/core/services/backend_srv';\nimport { getDatasourceSrv } from 'app/features/plugins/datasource_srv';\nimport { LayoutMode } from 'app/core/components/LayoutSelector/LayoutSelector';\nimport { updateLocation, updateNavIndex, UpdateNavIndexAction } from 'app/core/actions';\nimport { buildNavModel } from './navModel';\nimport { DataSourceSettings } from '@grafana/ui/src/types';\nimport { Plugin, StoreState, LocationUpdate } from 'app/types';\nimport { actionCreatorFactory } from 'app/core/redux';\nimport { ActionOf, noPayloadActionCreatorFactory } from 'app/core/redux/actionCreatorFactory';\n\nexport const dataSourceLoaded = actionCreatorFactory('LOAD_DATA_SOURCE').create();\n\nexport const dataSourcesLoaded = actionCreatorFactory('LOAD_DATA_SOURCES').create();\n\nexport const dataSourceMetaLoaded = actionCreatorFactory('LOAD_DATA_SOURCE_META').create();\n\nexport const dataSourceTypesLoad = noPayloadActionCreatorFactory('LOAD_DATA_SOURCE_TYPES').create();\n\nexport const dataSourceTypesLoaded = actionCreatorFactory('LOADED_DATA_SOURCE_TYPES').create();\n\nexport const setDataSourcesSearchQuery = actionCreatorFactory('SET_DATA_SOURCES_SEARCH_QUERY').create();\n\nexport const setDataSourcesLayoutMode = actionCreatorFactory('SET_DATA_SOURCES_LAYOUT_MODE').create();\n\nexport const setDataSourceTypeSearchQuery = actionCreatorFactory('SET_DATA_SOURCE_TYPE_SEARCH_QUERY').create();\n\nexport const setDataSourceName = actionCreatorFactory('SET_DATA_SOURCE_NAME').create();\n\nexport const setIsDefault = actionCreatorFactory('SET_IS_DEFAULT').create();\n\nexport type Action =\n | UpdateNavIndexAction\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf\n | ActionOf;\n\ntype ThunkResult = ThunkAction;\n\nexport function loadDataSources(): ThunkResult {\n return async dispatch => {\n const response = await getBackendSrv().get('/api/datasources');\n dispatch(dataSourcesLoaded(response));\n };\n}\n\nexport function loadDataSource(id: number): ThunkResult {\n return async dispatch => {\n const dataSource = await getBackendSrv().get(`/api/datasources/${id}`);\n const pluginInfo = await getBackendSrv().get(`/api/plugins/${dataSource.type}/settings`);\n dispatch(dataSourceLoaded(dataSource));\n dispatch(dataSourceMetaLoaded(pluginInfo));\n dispatch(updateNavIndex(buildNavModel(dataSource, pluginInfo)));\n };\n}\n\nexport function addDataSource(plugin: Plugin): ThunkResult {\n return async (dispatch, getStore) => {\n await dispatch(loadDataSources());\n\n const dataSources = getStore().dataSources.dataSources;\n\n const newInstance = {\n name: plugin.name,\n type: plugin.id,\n access: 'proxy',\n isDefault: dataSources.length === 0,\n };\n\n if (nameExits(dataSources, newInstance.name)) {\n newInstance.name = findNewName(dataSources, newInstance.name);\n }\n\n const result = await getBackendSrv().post('/api/datasources', newInstance);\n dispatch(updateLocation({ path: `/datasources/edit/${result.id}` }));\n };\n}\n\nexport function loadDataSourceTypes(): ThunkResult {\n return async dispatch => {\n dispatch(dataSourceTypesLoad());\n const result = await getBackendSrv().get('/api/plugins', { enabled: 1, type: 'datasource' });\n dispatch(dataSourceTypesLoaded(result));\n };\n}\n\nexport function updateDataSource(dataSource: DataSourceSettings): ThunkResult {\n return async dispatch => {\n await getBackendSrv().put(`/api/datasources/${dataSource.id}`, dataSource);\n await updateFrontendSettings();\n return dispatch(loadDataSource(dataSource.id));\n };\n}\n\nexport function deleteDataSource(): ThunkResult {\n return async (dispatch, getStore) => {\n const dataSource = getStore().dataSources.dataSource;\n\n await getBackendSrv().delete(`/api/datasources/${dataSource.id}`);\n dispatch(updateLocation({ path: '/datasources' }));\n };\n}\n\nexport function nameExits(dataSources, name) {\n return (\n dataSources.filter(dataSource => {\n return dataSource.name.toLowerCase() === name.toLowerCase();\n }).length > 0\n );\n}\n\nexport function findNewName(dataSources, name) {\n // Need to loop through current data sources to make sure\n // the name doesn't exist\n while (nameExits(dataSources, name)) {\n // If there's a duplicate name that doesn't end with '-x'\n // we can add -1 to the name and be done.\n if (!nameHasSuffix(name)) {\n name = `${name}-1`;\n } else {\n // if there's a duplicate name that ends with '-x'\n // we can try to increment the last digit until the name is unique\n\n // remove the 'x' part and replace it with the new number\n name = `${getNewName(name)}${incrementLastDigit(getLastDigit(name))}`;\n }\n }\n\n return name;\n}\n\nfunction updateFrontendSettings() {\n return getBackendSrv()\n .get('/api/frontend/settings')\n .then(settings => {\n config.datasources = settings.datasources;\n config.defaultDatasource = settings.defaultDatasource;\n getDatasourceSrv().init();\n });\n}\n\nfunction nameHasSuffix(name) {\n return name.endsWith('-', name.length - 1);\n}\n\nfunction getLastDigit(name) {\n return parseInt(name.slice(-1), 10);\n}\n\nfunction incrementLastDigit(digit) {\n return isNaN(digit) ? 1 : digit + 1;\n}\n\nfunction getNewName(name) {\n return name.slice(0, name.length - 1);\n}\n","import { ThunkAction } from 'redux-thunk';\nimport { getBackendSrv } from 'app/core/services/backend_srv';\nimport { StoreState, Team, TeamGroup, TeamMember } from 'app/types';\nimport { updateNavIndex, UpdateNavIndexAction } from 'app/core/actions';\nimport { buildNavModel } from './navModel';\n\nexport enum ActionTypes {\n LoadTeams = 'LOAD_TEAMS',\n LoadTeam = 'LOAD_TEAM',\n SetSearchQuery = 'SET_TEAM_SEARCH_QUERY',\n SetSearchMemberQuery = 'SET_TEAM_MEMBER_SEARCH_QUERY',\n LoadTeamMembers = 'TEAM_MEMBERS_LOADED',\n LoadTeamGroups = 'TEAM_GROUPS_LOADED',\n}\n\nexport interface LoadTeamsAction {\n type: ActionTypes.LoadTeams;\n payload: Team[];\n}\n\nexport interface LoadTeamAction {\n type: ActionTypes.LoadTeam;\n payload: Team;\n}\n\nexport interface LoadTeamMembersAction {\n type: ActionTypes.LoadTeamMembers;\n payload: TeamMember[];\n}\n\nexport interface LoadTeamGroupsAction {\n type: ActionTypes.LoadTeamGroups;\n payload: TeamGroup[];\n}\n\nexport interface SetSearchQueryAction {\n type: ActionTypes.SetSearchQuery;\n payload: string;\n}\n\nexport interface SetSearchMemberQueryAction {\n type: ActionTypes.SetSearchMemberQuery;\n payload: string;\n}\n\nexport type Action =\n | LoadTeamsAction\n | SetSearchQueryAction\n | LoadTeamAction\n | LoadTeamMembersAction\n | SetSearchMemberQueryAction\n | LoadTeamGroupsAction;\n\ntype ThunkResult = ThunkAction;\n\nconst teamsLoaded = (teams: Team[]): LoadTeamsAction => ({\n type: ActionTypes.LoadTeams,\n payload: teams,\n});\n\nconst teamLoaded = (team: Team): LoadTeamAction => ({\n type: ActionTypes.LoadTeam,\n payload: team,\n});\n\nconst teamMembersLoaded = (teamMembers: TeamMember[]): LoadTeamMembersAction => ({\n type: ActionTypes.LoadTeamMembers,\n payload: teamMembers,\n});\n\nconst teamGroupsLoaded = (teamGroups: TeamGroup[]): LoadTeamGroupsAction => ({\n type: ActionTypes.LoadTeamGroups,\n payload: teamGroups,\n});\n\nexport const setSearchMemberQuery = (searchQuery: string): SetSearchMemberQueryAction => ({\n type: ActionTypes.SetSearchMemberQuery,\n payload: searchQuery,\n});\n\nexport const setSearchQuery = (searchQuery: string): SetSearchQueryAction => ({\n type: ActionTypes.SetSearchQuery,\n payload: searchQuery,\n});\n\nexport function loadTeams(): ThunkResult {\n return async dispatch => {\n const response = await getBackendSrv().get('/api/teams/search', { perpage: 1000, page: 1 });\n dispatch(teamsLoaded(response.teams));\n };\n}\n\nexport function loadTeam(id: number): ThunkResult {\n return async dispatch => {\n const response = await getBackendSrv().get(`/api/teams/${id}`);\n dispatch(teamLoaded(response));\n dispatch(updateNavIndex(buildNavModel(response)));\n };\n}\n\nexport function loadTeamMembers(): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n const response = await getBackendSrv().get(`/api/teams/${team.id}/members`);\n dispatch(teamMembersLoaded(response));\n };\n}\n\nexport function addTeamMember(id: number): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n await getBackendSrv().post(`/api/teams/${team.id}/members`, { userId: id });\n dispatch(loadTeamMembers());\n };\n}\n\nexport function removeTeamMember(id: number): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n await getBackendSrv().delete(`/api/teams/${team.id}/members/${id}`);\n dispatch(loadTeamMembers());\n };\n}\n\nexport function updateTeam(name: string, email: string): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n await getBackendSrv().put(`/api/teams/${team.id}`, { name, email });\n dispatch(loadTeam(team.id));\n };\n}\n\nexport function loadTeamGroups(): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n const response = await getBackendSrv().get(`/api/teams/${team.id}/groups`);\n dispatch(teamGroupsLoaded(response));\n };\n}\n\nexport function addTeamGroup(groupId: string): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n await getBackendSrv().post(`/api/teams/${team.id}/groups`, { groupId: groupId });\n dispatch(loadTeamGroups());\n };\n}\n\nexport function removeTeamGroup(groupId: string): ThunkResult {\n return async (dispatch, getStore) => {\n const team = getStore().team.team;\n await getBackendSrv().delete(`/api/teams/${team.id}/groups/${groupId}`);\n dispatch(loadTeamGroups());\n };\n}\n\nexport function deleteTeam(id: number): ThunkResult {\n return async dispatch => {\n await getBackendSrv().delete(`/api/teams/${id}`);\n dispatch(loadTeams());\n };\n}\n\nexport function updateTeamMember(member: TeamMember): ThunkResult {\n return async dispatch => {\n await getBackendSrv().put(`/api/teams/${member.teamId}/members/${member.userId}`, {\n permission: member.permission,\n });\n dispatch(loadTeamMembers());\n };\n}\n","export let store;\n\nexport function setStore(newStore) {\n store = newStore;\n}\n","/**\n * Calculate tick step.\n * Implementation from d3-array (ticks.js)\n * https://github.com/d3/d3-array/blob/master/src/ticks.js\n * @param start Start value\n * @param stop End value\n * @param count Ticks count\n */\nexport function tickStep(start: number, stop: number, count: number): number {\n const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\n const step0 = Math.abs(stop - start) / Math.max(0, count);\n let step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10));\n const error = step0 / step1;\n\n if (error >= e10) {\n step1 *= 10;\n } else if (error >= e5) {\n step1 *= 5;\n } else if (error >= e2) {\n step1 *= 2;\n }\n\n return stop < start ? -step1 : step1;\n}\n\nexport function getScaledDecimals(decimals, tickSize) {\n return decimals - Math.floor(Math.log(tickSize) / Math.LN10);\n}\n\n/**\n * Calculate tick size based on min and max values, number of ticks and precision.\n * Implementation from Flot.\n * @param min Axis minimum\n * @param max Axis maximum\n * @param noTicks Number of ticks\n * @param tickDecimals Tick decimal precision\n */\nexport function getFlotTickSize(min: number, max: number, noTicks: number, tickDecimals: number) {\n const delta = (max - min) / noTicks;\n let dec = -Math.floor(Math.log(delta) / Math.LN10);\n const maxDec = tickDecimals;\n\n const magn = Math.pow(10, -dec);\n const norm = delta / magn; // norm is between 1.0 and 10.0\n let size;\n\n if (norm < 1.5) {\n size = 1;\n } else if (norm < 3) {\n size = 2;\n // special case for 2.5, requires an extra decimal\n if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {\n size = 2.5;\n ++dec;\n }\n } else if (norm < 7.5) {\n size = 5;\n } else {\n size = 10;\n }\n\n size *= magn;\n\n return size;\n}\n\n/**\n * Calculate axis range (min and max).\n * Implementation from Flot.\n */\nexport function getFlotRange(panelMin, panelMax, datamin, datamax) {\n const autoscaleMargin = 0.02;\n\n let min = +(panelMin != null ? panelMin : datamin);\n let max = +(panelMax != null ? panelMax : datamax);\n const delta = max - min;\n\n if (delta === 0.0) {\n // Grafana fix: wide Y min and max using increased wideFactor\n // when all series values are the same\n const wideFactor = 0.25;\n const widen = Math.abs(max === 0 ? 1 : max * wideFactor);\n\n if (panelMin === null) {\n min -= widen;\n }\n // always widen max if we couldn't widen min to ensure we\n // don't fall into min == max which doesn't work\n if (panelMax == null || panelMin != null) {\n max += widen;\n }\n } else {\n // consider autoscaling\n const margin = autoscaleMargin;\n if (margin != null) {\n if (panelMin == null) {\n min -= delta * margin;\n // make sure we don't go below zero if all values\n // are positive\n if (min < 0 && datamin != null && datamin >= 0) {\n min = 0;\n }\n }\n if (panelMax == null) {\n max += delta * margin;\n if (max > 0 && datamax != null && datamax <= 0) {\n max = 0;\n }\n }\n }\n }\n return { min, max };\n}\n\n/**\n * Calculate tick decimals.\n * Implementation from Flot.\n */\nexport function getFlotTickDecimals(datamin, datamax, axis, height) {\n const { min, max } = getFlotRange(axis.min, axis.max, datamin, datamax);\n const noTicks = 0.3 * Math.sqrt(height);\n const delta = (max - min) / noTicks;\n const dec = -Math.floor(Math.log(delta) / Math.LN10);\n\n const magn = Math.pow(10, -dec);\n // norm is between 1.0 and 10.0\n const norm = delta / magn;\n let size;\n\n if (norm < 1.5) {\n size = 1;\n } else if (norm < 3) {\n size = 2;\n // special case for 2.5, requires an extra decimal\n if (norm > 2.25) {\n size = 2.5;\n }\n } else if (norm < 7.5) {\n size = 5;\n } else {\n size = 10;\n }\n size *= magn;\n\n const tickDecimals = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1);\n // grafana addition\n const scaledDecimals = tickDecimals - Math.floor(Math.log(size) / Math.LN10);\n return { tickDecimals, scaledDecimals };\n}\n\n/**\n * Format timestamp similar to Grafana graph panel.\n * @param ticks Number of ticks\n * @param min Time from (in milliseconds)\n * @param max Time to (in milliseconds)\n */\nexport function grafanaTimeFormat(ticks, min, max) {\n if (min && max && ticks) {\n const range = max - min;\n const secPerTick = range / ticks / 1000;\n const oneDay = 86400000;\n const oneYear = 31536000000;\n\n if (secPerTick <= 45) {\n return '%H:%M:%S';\n }\n if (secPerTick <= 7200 || range <= oneDay) {\n return '%H:%M';\n }\n if (secPerTick <= 80000) {\n return '%m/%d %H:%M';\n }\n if (secPerTick <= 2419200 || range <= oneYear) {\n return '%m/%d';\n }\n return '%Y-%m';\n }\n\n return '%H:%M';\n}\n\n/**\n * Logarithm of value for arbitrary base.\n */\nexport function logp(value, base) {\n return Math.log(value) / Math.log(base);\n}\n\n/**\n * Get decimal precision of number (3.14 => 2)\n */\nexport function getPrecision(num: number): number {\n const str = num.toString();\n return getStringPrecision(str);\n}\n\n/**\n * Get decimal precision of number stored as a string (\"3.14\" => 2)\n */\nexport function getStringPrecision(num: string): number {\n const dotIndex = num.indexOf('.');\n if (dotIndex === -1) {\n return 0;\n } else {\n return num.length - dotIndex - 1;\n }\n}\n","import _ from 'lodash';\nimport { QueryPartDef, QueryPart } from 'app/core/components/query_part/query_part';\n\nconst alertQueryDef = new QueryPartDef({\n type: 'query',\n params: [\n { name: 'queryRefId', type: 'string', dynamicLookup: true },\n {\n name: 'from',\n type: 'string',\n options: ['10s', '1m', '5m', '10m', '15m', '1h', '24h', '48h'],\n },\n { name: 'to', type: 'string', options: ['now', 'now-1m', 'now-5m', 'now-10m', 'now-1h'] },\n ],\n defaultParams: ['#A', '15m', 'now', 'avg'],\n});\n\nconst conditionTypes = [{ text: 'Query', value: 'query' }];\n\nconst alertStateSortScore = {\n alerting: 1,\n no_data: 2,\n pending: 3,\n ok: 4,\n paused: 5,\n};\n\nconst evalFunctions = [\n { text: 'IS ABOVE', value: 'gt' },\n { text: 'IS BELOW', value: 'lt' },\n { text: 'IS OUTSIDE RANGE', value: 'outside_range' },\n { text: 'IS WITHIN RANGE', value: 'within_range' },\n { text: 'HAS NO VALUE', value: 'no_value' },\n];\n\nconst evalOperators = [{ text: 'OR', value: 'or' }, { text: 'AND', value: 'and' }];\n\nconst reducerTypes = [\n { text: 'avg()', value: 'avg' },\n { text: 'min()', value: 'min' },\n { text: 'max()', value: 'max' },\n { text: 'sum()', value: 'sum' },\n { text: 'count()', value: 'count' },\n { text: 'last()', value: 'last' },\n { text: 'median()', value: 'median' },\n { text: 'diff()', value: 'diff' },\n { text: 'percent_diff()', value: 'percent_diff' },\n { text: 'count_non_null()', value: 'count_non_null' },\n];\n\nconst noDataModes = [\n { text: 'Alerting', value: 'alerting' },\n { text: 'No Data', value: 'no_data' },\n { text: 'Keep Last State', value: 'keep_state' },\n { text: 'Ok', value: 'ok' },\n];\n\nconst executionErrorModes = [{ text: 'Alerting', value: 'alerting' }, { text: 'Keep Last State', value: 'keep_state' }];\n\nfunction createReducerPart(model) {\n const def = new QueryPartDef({ type: model.type, defaultParams: [] });\n return new QueryPart(model, def);\n}\n\nfunction getStateDisplayModel(state) {\n switch (state) {\n case 'ok': {\n return {\n text: 'OK',\n iconClass: 'icon-gf icon-gf-online',\n stateClass: 'alert-state-ok',\n };\n }\n case 'alerting': {\n return {\n text: 'ALERTING',\n iconClass: 'icon-gf icon-gf-critical',\n stateClass: 'alert-state-critical',\n };\n }\n case 'no_data': {\n return {\n text: 'NO DATA',\n iconClass: 'fa fa-question',\n stateClass: 'alert-state-warning',\n };\n }\n case 'paused': {\n return {\n text: 'PAUSED',\n iconClass: 'fa fa-pause',\n stateClass: 'alert-state-paused',\n };\n }\n case 'pending': {\n return {\n text: 'PENDING',\n iconClass: 'fa fa-exclamation',\n stateClass: 'alert-state-warning',\n };\n }\n case 'unknown': {\n return {\n text: 'UNKNOWN',\n iconClass: 'fa fa-question',\n stateClass: 'alert-state-paused',\n };\n }\n }\n\n throw { message: 'Unknown alert state' };\n}\n\nfunction joinEvalMatches(matches, separator: string) {\n return _.reduce(\n matches,\n (res, ev) => {\n if (ev.metric !== undefined && ev.value !== undefined) {\n res.push(ev.metric + '=' + ev.value);\n }\n\n // For backwards compatibility . Should be be able to remove this after ~2017-06-01\n if (ev.Metric !== undefined && ev.Value !== undefined) {\n res.push(ev.Metric + '=' + ev.Value);\n }\n\n return res;\n },\n []\n ).join(separator);\n}\n\nfunction getAlertAnnotationInfo(ah) {\n // backward compatibility, can be removed in grafana 5.x\n // old way stored evalMatches in data property directly,\n // new way stores it in evalMatches property on new data object\n\n if (_.isArray(ah.data)) {\n return joinEvalMatches(ah.data, ', ');\n } else if (_.isArray(ah.data.evalMatches)) {\n return joinEvalMatches(ah.data.evalMatches, ', ');\n }\n\n if (ah.data.error) {\n return 'Error: ' + ah.data.error;\n }\n\n return '';\n}\n\nexport default {\n alertQueryDef: alertQueryDef,\n getStateDisplayModel: getStateDisplayModel,\n conditionTypes: conditionTypes,\n evalFunctions: evalFunctions,\n evalOperators: evalOperators,\n noDataModes: noDataModes,\n executionErrorModes: executionErrorModes,\n reducerTypes: reducerTypes,\n createReducerPart: createReducerPart,\n getAlertAnnotationInfo: getAlertAnnotationInfo,\n alertStateSortScore: alertStateSortScore,\n};\n","// Services & Utils\nimport { getBackendSrv } from 'app/core/services/backend_srv';\nimport { actionCreatorFactory, noPayloadActionCreatorFactory } from 'app/core/redux';\nimport { createSuccessNotification } from 'app/core/copy/appNotification';\n\n// Actions\nimport { loadPluginDashboards } from '../../plugins/state/actions';\nimport { notifyApp } from 'app/core/actions';\n\n// Types\nimport {\n ThunkResult,\n DashboardAcl,\n DashboardAclDTO,\n PermissionLevel,\n DashboardAclUpdateDTO,\n NewDashboardAclItem,\n MutableDashboard,\n DashboardInitError,\n} from 'app/types';\n\nexport const loadDashboardPermissions = actionCreatorFactory('LOAD_DASHBOARD_PERMISSIONS').create();\n\nexport const dashboardInitFetching = noPayloadActionCreatorFactory('DASHBOARD_INIT_FETCHING').create();\n\nexport const dashboardInitServices = noPayloadActionCreatorFactory('DASHBOARD_INIT_SERVICES').create();\n\nexport const dashboardInitSlow = noPayloadActionCreatorFactory('SET_DASHBOARD_INIT_SLOW').create();\n\nexport const dashboardInitCompleted = actionCreatorFactory('DASHBOARD_INIT_COMLETED').create();\n\n/*\n * Unrecoverable init failure (fetch or model creation failed)\n */\nexport const dashboardInitFailed = actionCreatorFactory('DASHBOARD_INIT_FAILED').create();\n\n/*\n * When leaving dashboard, resets state\n * */\nexport const cleanUpDashboard = noPayloadActionCreatorFactory('DASHBOARD_CLEAN_UP').create();\n\nexport function getDashboardPermissions(id: number): ThunkResult {\n return async dispatch => {\n const permissions = await getBackendSrv().get(`/api/dashboards/id/${id}/permissions`);\n dispatch(loadDashboardPermissions(permissions));\n };\n}\n\nfunction toUpdateItem(item: DashboardAcl): DashboardAclUpdateDTO {\n return {\n userId: item.userId,\n teamId: item.teamId,\n role: item.role,\n permission: item.permission,\n };\n}\n\nexport function updateDashboardPermission(\n dashboardId: number,\n itemToUpdate: DashboardAcl,\n level: PermissionLevel\n): ThunkResult {\n return async (dispatch, getStore) => {\n const { dashboard } = getStore();\n const itemsToUpdate = [];\n\n for (const item of dashboard.permissions) {\n if (item.inherited) {\n continue;\n }\n\n const updated = toUpdateItem(item);\n\n // if this is the item we want to update, update it's permission\n if (itemToUpdate === item) {\n updated.permission = level;\n }\n\n itemsToUpdate.push(updated);\n }\n\n await getBackendSrv().post(`/api/dashboards/id/${dashboardId}/permissions`, { items: itemsToUpdate });\n await dispatch(getDashboardPermissions(dashboardId));\n };\n}\n\nexport function removeDashboardPermission(dashboardId: number, itemToDelete: DashboardAcl): ThunkResult {\n return async (dispatch, getStore) => {\n const dashboard = getStore().dashboard;\n const itemsToUpdate = [];\n\n for (const item of dashboard.permissions) {\n if (item.inherited || item === itemToDelete) {\n continue;\n }\n itemsToUpdate.push(toUpdateItem(item));\n }\n\n await getBackendSrv().post(`/api/dashboards/id/${dashboardId}/permissions`, { items: itemsToUpdate });\n await dispatch(getDashboardPermissions(dashboardId));\n };\n}\n\nexport function addDashboardPermission(dashboardId: number, newItem: NewDashboardAclItem): ThunkResult {\n return async (dispatch, getStore) => {\n const { dashboard } = getStore();\n const itemsToUpdate = [];\n\n for (const item of dashboard.permissions) {\n if (item.inherited) {\n continue;\n }\n itemsToUpdate.push(toUpdateItem(item));\n }\n\n itemsToUpdate.push({\n userId: newItem.userId,\n teamId: newItem.teamId,\n role: newItem.role,\n permission: newItem.permission,\n });\n\n await getBackendSrv().post(`/api/dashboards/id/${dashboardId}/permissions`, { items: itemsToUpdate });\n await dispatch(getDashboardPermissions(dashboardId));\n };\n}\n\nexport function importDashboard(data, dashboardTitle: string): ThunkResult {\n return async dispatch => {\n await getBackendSrv().post('/api/dashboards/import', data);\n dispatch(notifyApp(createSuccessNotification('Dashboard Imported', dashboardTitle)));\n dispatch(loadPluginDashboards());\n };\n}\n\nexport function removeDashboard(uri: string): ThunkResult {\n return async dispatch => {\n await getBackendSrv().delete(`/api/dashboards/${uri}`);\n dispatch(loadPluginDashboards());\n };\n}\n","// Libraries\nimport _ from 'lodash';\n\n// Services & Utils\nimport * as dateMath from 'app/core/utils/datemath';\nimport { renderUrl } from 'app/core/utils/url';\nimport kbn from 'app/core/utils/kbn';\nimport store from 'app/core/store';\nimport { parse as parseDate } from 'app/core/utils/datemath';\nimport { colors } from '@grafana/ui';\nimport TableModel, { mergeTablesIntoModel } from 'app/core/table_model';\nimport { getNextRefIdChar } from './query';\n\n// Types\nimport { RawTimeRange, IntervalValues, DataQuery, DataSourceApi } from '@grafana/ui';\nimport TimeSeries from 'app/core/time_series2';\nimport {\n ExploreUrlState,\n HistoryItem,\n QueryTransaction,\n ResultType,\n QueryIntervals,\n QueryOptions,\n ResultGetter,\n} from 'app/types/explore';\nimport { LogsDedupStrategy } from 'app/core/logs_model';\n\nexport const DEFAULT_RANGE = {\n from: 'now-6h',\n to: 'now',\n};\n\nexport const DEFAULT_UI_STATE = {\n showingTable: true,\n showingGraph: true,\n showingLogs: true,\n dedupStrategy: LogsDedupStrategy.none,\n};\n\nconst MAX_HISTORY_ITEMS = 100;\n\nexport const LAST_USED_DATASOURCE_KEY = 'grafana.explore.datasource';\n\n/**\n * Returns an Explore-URL that contains a panel's queries and the dashboard time range.\n *\n * @param panel Origin panel of the jump to Explore\n * @param panelTargets The origin panel's query targets\n * @param panelDatasource The origin panel's datasource\n * @param datasourceSrv Datasource service to query other datasources in case the panel datasource is mixed\n * @param timeSrv Time service to get the current dashboard range from\n */\nexport async function getExploreUrl(\n panel: any,\n panelTargets: any[],\n panelDatasource: any,\n datasourceSrv: any,\n timeSrv: any\n) {\n let exploreDatasource = panelDatasource;\n let exploreTargets: DataQuery[] = panelTargets;\n let url;\n\n // Mixed datasources need to choose only one datasource\n if (panelDatasource.meta.id === 'mixed' && panelTargets) {\n // Find first explore datasource among targets\n let mixedExploreDatasource;\n for (const t of panel.targets) {\n const datasource = await datasourceSrv.get(t.datasource);\n if (datasource && datasource.meta.explore) {\n mixedExploreDatasource = datasource;\n break;\n }\n }\n\n // Add all its targets\n if (mixedExploreDatasource) {\n exploreDatasource = mixedExploreDatasource;\n exploreTargets = panelTargets.filter(t => t.datasource === mixedExploreDatasource.name);\n }\n }\n\n if (panelDatasource) {\n const range = timeSrv.timeRangeForUrl();\n let state: Partial = { range };\n if (exploreDatasource.getExploreState) {\n state = { ...state, ...exploreDatasource.getExploreState(exploreTargets) };\n } else {\n state = {\n ...state,\n datasource: panelDatasource.name,\n queries: exploreTargets.map(t => ({ ...t, datasource: panelDatasource.name })),\n };\n }\n\n const exploreState = JSON.stringify(state);\n url = renderUrl('/explore', { left: exploreState });\n }\n return url;\n}\n\nexport function buildQueryTransaction(\n query: DataQuery,\n rowIndex: number,\n resultType: ResultType,\n queryOptions: QueryOptions,\n range: RawTimeRange,\n queryIntervals: QueryIntervals,\n scanning: boolean\n): QueryTransaction {\n const { interval, intervalMs } = queryIntervals;\n\n const configuredQueries = [\n {\n ...query,\n ...queryOptions,\n },\n ];\n\n // Clone range for query request\n // const queryRange: RawTimeRange = { ...range };\n // const { from, to, raw } = this.timeSrv.timeRange();\n // Most datasource is using `panelId + query.refId` for cancellation logic.\n // Using `format` here because it relates to the view panel that the request is for.\n // However, some datasources don't use `panelId + query.refId`, but only `panelId`.\n // Therefore panel id has to be unique.\n const panelId = `${queryOptions.format}-${query.key}`;\n\n const options = {\n interval,\n intervalMs,\n panelId,\n targets: configuredQueries, // Datasources rely on DataQueries being passed under the targets key.\n range: {\n from: dateMath.parse(range.from, false),\n to: dateMath.parse(range.to, true),\n raw: range,\n },\n rangeRaw: range,\n scopedVars: {\n __interval: { text: interval, value: interval },\n __interval_ms: { text: intervalMs, value: intervalMs },\n },\n };\n\n return {\n options,\n query,\n resultType,\n rowIndex,\n scanning,\n id: generateKey(), // reusing for unique ID\n done: false,\n latency: 0,\n };\n}\n\nexport const clearQueryKeys: (query: DataQuery) => object = ({ key, refId, ...rest }) => rest;\n\nconst metricProperties = ['expr', 'target', 'datasource'];\nconst isMetricSegment = (segment: { [key: string]: string }) =>\n metricProperties.some(prop => segment.hasOwnProperty(prop));\nconst isUISegment = (segment: { [key: string]: string }) => segment.hasOwnProperty('ui');\n\nenum ParseUrlStateIndex {\n RangeFrom = 0,\n RangeTo = 1,\n Datasource = 2,\n SegmentsStart = 3,\n}\n\nenum ParseUiStateIndex {\n Graph = 0,\n Logs = 1,\n Table = 2,\n Strategy = 3,\n}\n\nexport const safeParseJson = (text: string) => {\n if (!text) {\n return;\n }\n\n try {\n return JSON.parse(decodeURI(text));\n } catch (error) {\n console.error(error);\n }\n};\n\nexport function parseUrlState(initial: string | undefined): ExploreUrlState {\n const parsed = safeParseJson(initial);\n const errorResult = { datasource: null, queries: [], range: DEFAULT_RANGE, ui: DEFAULT_UI_STATE };\n\n if (!parsed) {\n return errorResult;\n }\n\n if (!Array.isArray(parsed)) {\n return parsed;\n }\n\n if (parsed.length <= ParseUrlStateIndex.SegmentsStart) {\n console.error('Error parsing compact URL state for Explore.');\n return errorResult;\n }\n\n const range = {\n from: parsed[ParseUrlStateIndex.RangeFrom],\n to: parsed[ParseUrlStateIndex.RangeTo],\n };\n const datasource = parsed[ParseUrlStateIndex.Datasource];\n const parsedSegments = parsed.slice(ParseUrlStateIndex.SegmentsStart);\n const queries = parsedSegments.filter(segment => isMetricSegment(segment));\n const uiState = parsedSegments.filter(segment => isUISegment(segment))[0];\n const ui = uiState\n ? {\n showingGraph: uiState.ui[ParseUiStateIndex.Graph],\n showingLogs: uiState.ui[ParseUiStateIndex.Logs],\n showingTable: uiState.ui[ParseUiStateIndex.Table],\n dedupStrategy: uiState.ui[ParseUiStateIndex.Strategy],\n }\n : DEFAULT_UI_STATE;\n\n return { datasource, queries, range, ui };\n}\n\nexport function serializeStateToUrlParam(urlState: ExploreUrlState, compact?: boolean): string {\n if (compact) {\n return JSON.stringify([\n urlState.range.from,\n urlState.range.to,\n urlState.datasource,\n ...urlState.queries,\n {\n ui: [\n !!urlState.ui.showingGraph,\n !!urlState.ui.showingLogs,\n !!urlState.ui.showingTable,\n urlState.ui.dedupStrategy,\n ],\n },\n ]);\n }\n return JSON.stringify(urlState);\n}\n\nexport function generateKey(index = 0): string {\n return `Q-${Date.now()}-${Math.random()}-${index}`;\n}\n\nexport function generateEmptyQuery(queries: DataQuery[], index = 0): DataQuery {\n return { refId: getNextRefIdChar(queries), key: generateKey(index) };\n}\n\n/**\n * Ensure at least one target exists and that targets have the necessary keys\n */\nexport function ensureQueries(queries?: DataQuery[]): DataQuery[] {\n if (queries && typeof queries === 'object' && queries.length > 0) {\n return queries.map((query, i) => ({ ...query, ...generateEmptyQuery(queries, i) }));\n }\n return [{ ...generateEmptyQuery(queries) }];\n}\n\n/**\n * A target is non-empty when it has keys (with non-empty values) other than refId and key.\n */\nexport function hasNonEmptyQuery(queries: TQuery[]): boolean {\n return (\n queries &&\n queries.some(\n query =>\n Object.keys(query)\n .map(k => query[k])\n .filter(v => v).length > 2\n )\n );\n}\n\nexport function calculateResultsFromQueryTransactions(\n queryTransactions: QueryTransaction[],\n datasource: any,\n graphInterval: number\n) {\n const graphResult = _.flatten(\n queryTransactions.filter(qt => qt.resultType === 'Graph' && qt.done && qt.result).map(qt => qt.result)\n );\n const tableResult = mergeTablesIntoModel(\n new TableModel(),\n ...queryTransactions\n .filter(qt => qt.resultType === 'Table' && qt.done && qt.result && qt.result.columns && qt.result.rows)\n .map(qt => qt.result)\n );\n const logsResult =\n datasource && datasource.mergeStreams\n ? datasource.mergeStreams(\n _.flatten(\n queryTransactions.filter(qt => qt.resultType === 'Logs' && qt.done && qt.result).map(qt => qt.result)\n ),\n graphInterval\n )\n : undefined;\n\n return {\n graphResult,\n tableResult,\n logsResult,\n };\n}\n\nexport function getIntervals(range: RawTimeRange, lowLimit: string, resolution: number): IntervalValues {\n if (!resolution) {\n return { interval: '1s', intervalMs: 1000 };\n }\n\n const absoluteRange: RawTimeRange = {\n from: parseDate(range.from, false),\n to: parseDate(range.to, true),\n };\n\n return kbn.calculateInterval(absoluteRange, resolution, lowLimit);\n}\n\nexport const makeTimeSeriesList: ResultGetter = (dataList, transaction, allTransactions) => {\n // Prevent multiple Graph transactions to have the same colors\n let colorIndexOffset = 0;\n for (const other of allTransactions) {\n // Only need to consider transactions that came before the current one\n if (other === transaction) {\n break;\n }\n // Count timeseries of previous query results\n if (other.resultType === 'Graph' && other.done) {\n colorIndexOffset += other.result.length;\n }\n }\n\n return dataList.map((seriesData, index: number) => {\n const datapoints = seriesData.datapoints || [];\n const alias = seriesData.target;\n const colorIndex = (colorIndexOffset + index) % colors.length;\n const color = colors[colorIndex];\n\n const series = new TimeSeries({\n datapoints,\n alias,\n color,\n unit: seriesData.unit,\n });\n\n return series;\n });\n};\n\n/**\n * Update the query history. Side-effect: store history in local storage\n */\nexport function updateHistory(\n history: Array>,\n datasourceId: string,\n queries: T[]\n): Array> {\n const ts = Date.now();\n queries.forEach(query => {\n history = [{ query, ts }, ...history];\n });\n\n if (history.length > MAX_HISTORY_ITEMS) {\n history = history.slice(0, MAX_HISTORY_ITEMS);\n }\n\n // Combine all queries of a datasource type into one history\n const historyKey = `grafana.explore.history.${datasourceId}`;\n store.setObject(historyKey, history);\n return history;\n}\n\nexport function clearHistory(datasourceId: string) {\n const historyKey = `grafana.explore.history.${datasourceId}`;\n store.delete(historyKey);\n}\n\nexport const getQueryKeys = (queries: DataQuery[], datasourceInstance: DataSourceApi): string[] => {\n const queryKeys = queries.reduce((newQueryKeys, query, index) => {\n const primaryKey = datasourceInstance && datasourceInstance.name ? datasourceInstance.name : query.key;\n return newQueryKeys.concat(`${primaryKey}-${index}`);\n }, []);\n\n return queryKeys;\n};\n","import config from 'app/core/config';\n\nexport const stripBaseFromUrl = (url: string): string => {\n const appSubUrl = config.appSubUrl;\n const stripExtraChars = appSubUrl.endsWith('/') ? 1 : 0;\n const urlWithoutBase =\n url.length > 0 && url.indexOf(appSubUrl) === 0 ? url.slice(appSubUrl.length - stripExtraChars) : url;\n\n return urlWithoutBase;\n};\n\nexport default { stripBaseFromUrl };\n","export class Store {\n get(key) {\n return window.localStorage[key];\n }\n\n set(key, value) {\n window.localStorage[key] = value;\n }\n\n getBool(key, def) {\n if (def !== void 0 && !this.exists(key)) {\n return def;\n }\n return window.localStorage[key] === 'true';\n }\n\n getObject(key: string, def?: any) {\n let ret = def;\n if (this.exists(key)) {\n const json = window.localStorage[key];\n try {\n ret = JSON.parse(json);\n } catch (error) {\n console.error(`Error parsing store object: ${key}. Returning default: ${def}. [${error}]`);\n }\n }\n return ret;\n }\n\n // Returns true when successfully stored\n setObject(key: string, value: any): boolean {\n let json;\n try {\n json = JSON.stringify(value);\n } catch (error) {\n console.error(`Could not stringify object: ${key}. [${error}]`);\n return false;\n }\n try {\n this.set(key, json);\n } catch (error) {\n // Likely hitting storage quota\n console.error(`Could not save item in localStorage: ${key}. [${error}]`);\n return false;\n }\n return true;\n }\n\n exists(key) {\n return window.localStorage[key] !== void 0;\n }\n\n delete(key) {\n window.localStorage.removeItem(key);\n }\n}\n\nconst store = new Store();\nexport default store;\n","export enum OrgRole {\n Viewer = 'Viewer',\n Editor = 'Editor',\n Admin = 'Admin',\n}\n\nexport interface DashboardAclDTO {\n id?: number;\n dashboardId?: number;\n userId?: number;\n userLogin?: string;\n userEmail?: string;\n teamId?: number;\n team?: string;\n permission?: PermissionLevel;\n role?: OrgRole;\n icon?: string;\n inherited?: boolean;\n}\n\nexport interface DashboardAclUpdateDTO {\n userId: number;\n teamId: number;\n role: OrgRole;\n permission: PermissionLevel;\n}\n\nexport interface DashboardAcl {\n id?: number;\n dashboardId?: number;\n userId?: number;\n userLogin?: string;\n userEmail?: string;\n teamId?: number;\n team?: string;\n permission?: PermissionLevel;\n role?: OrgRole;\n icon?: string;\n name?: string;\n inherited?: boolean;\n sortRank?: number;\n}\n\nexport interface DashboardPermissionInfo {\n value: PermissionLevel;\n label: string;\n description: string;\n}\n\nexport interface NewDashboardAclItem {\n teamId: number;\n userId: number;\n role?: OrgRole;\n permission: PermissionLevel;\n type: AclTarget;\n}\n\nexport enum PermissionLevel {\n View = 1,\n Edit = 2,\n Admin = 4,\n}\n\nexport enum DataSourcePermissionLevel {\n Query = 1,\n Admin = 2,\n}\n\nexport enum AclTarget {\n Team = 'Team',\n User = 'User',\n Viewer = 'Viewer',\n Editor = 'Editor',\n}\n\nexport interface AclTargetInfo {\n value: AclTarget;\n text: string;\n}\n\nexport const dataSourceAclLevels = [\n { value: DataSourcePermissionLevel.Query, label: 'Query', description: 'Can query data source.' },\n];\n\nexport const dashboardAclTargets: AclTargetInfo[] = [\n { value: AclTarget.Team, text: 'Team' },\n { value: AclTarget.User, text: 'User' },\n { value: AclTarget.Viewer, text: 'Everyone With Viewer Role' },\n { value: AclTarget.Editor, text: 'Everyone With Editor Role' },\n];\n\nexport const dashboardPermissionLevels: DashboardPermissionInfo[] = [\n { value: PermissionLevel.View, label: 'View', description: 'Can view dashboards.' },\n { value: PermissionLevel.Edit, label: 'Edit', description: 'Can add, edit and delete dashboards.' },\n {\n value: PermissionLevel.Admin,\n label: 'Admin',\n description: 'Can add/remove permissions and can add, edit and delete dashboards.',\n },\n];\n\nexport enum TeamPermissionLevel {\n Member = 0,\n Admin = 4,\n}\n\nexport interface TeamPermissionInfo {\n value: TeamPermissionLevel;\n label: string;\n description: string;\n}\n\nexport const teamsPermissionLevels: TeamPermissionInfo[] = [\n { value: TeamPermissionLevel.Member, label: 'Member', description: 'Is team member' },\n {\n value: TeamPermissionLevel.Admin,\n label: 'Admin',\n description: 'Can add/remove permissions, members and delete team.',\n },\n];\n","import angular from 'angular';\nimport coreModule from 'app/core/core_module';\nimport _ from 'lodash';\n\nexport interface AngularComponent {\n destroy();\n digest();\n getScope();\n}\n\nexport class AngularLoader {\n /** @ngInject */\n constructor(private $compile, private $rootScope) {}\n\n load(elem, scopeProps, template): AngularComponent {\n const scope = this.$rootScope.$new();\n\n _.assign(scope, scopeProps);\n\n const compiledElem = this.$compile(template)(scope);\n const rootNode = angular.element(elem);\n rootNode.append(compiledElem);\n\n return {\n destroy: () => {\n scope.$destroy();\n compiledElem.remove();\n },\n digest: () => {\n if (!scope.$$phase) {\n scope.$digest();\n }\n },\n getScope: () => {\n return scope;\n },\n };\n }\n}\n\ncoreModule.service('angularLoader', AngularLoader);\n\nlet angularLoaderInstance: AngularLoader;\n\nexport function setAngularLoader(pl: AngularLoader) {\n angularLoaderInstance = pl;\n}\n\n// away to access it from react\nexport function getAngularLoader(): AngularLoader {\n return angularLoaderInstance;\n}\n","import config from 'app/core/config';\nimport _ from 'lodash';\nimport coreModule from 'app/core/core_module';\n\nexport class User {\n id: number;\n isGrafanaAdmin: any;\n isSignedIn: any;\n orgRole: any;\n orgId: number;\n orgName: string;\n orgCount: number;\n timezone: string;\n helpFlags1: number;\n lightTheme: boolean;\n hasEditPermissionInFolders: boolean;\n\n constructor() {\n if (config.bootData.user) {\n _.extend(this, config.bootData.user);\n }\n }\n}\n\nexport class ContextSrv {\n pinned: any;\n version: any;\n user: User;\n isSignedIn: any;\n isGrafanaAdmin: any;\n isEditor: any;\n sidemenuSmallBreakpoint = false;\n hasEditPermissionInFolders: boolean;\n\n constructor() {\n if (!config.bootData) {\n config.bootData = { user: {}, settings: {} };\n }\n\n this.user = new User();\n this.isSignedIn = this.user.isSignedIn;\n this.isGrafanaAdmin = this.user.isGrafanaAdmin;\n this.isEditor = this.hasRole('Editor') || this.hasRole('Admin');\n this.hasEditPermissionInFolders = this.user.hasEditPermissionInFolders;\n }\n\n hasRole(role) {\n return this.user.orgRole === role;\n }\n\n isGrafanaVisible() {\n return !!(document.visibilityState === undefined || document.visibilityState === 'visible');\n }\n\n hasAccessToExplore() {\n return (this.isEditor || config.viewersCanEdit) && config.exploreEnabled;\n }\n}\n\nconst contextSrv = new ContextSrv();\nexport { contextSrv };\n\ncoreModule.factory('contextSrv', () => {\n return contextSrv;\n});\n","import coreModule from 'app/core/core_module';\nimport { provideTheme } from 'app/core/utils/ConfigProvider';\n\nexport function react2AngularDirective(name: string, component: any, options: any) {\n coreModule.directive(name, [\n 'reactDirective',\n reactDirective => {\n return reactDirective(provideTheme(component), options);\n },\n ]);\n}\n","import flatten from 'lodash/flatten';\nimport { GrafanaThemeType } from '../types/theme';\nimport tinycolor from 'tinycolor2';\n\ntype Hue = 'green' | 'yellow' | 'red' | 'blue' | 'orange' | 'purple';\n\nexport type Color =\n | 'green'\n | 'dark-green'\n | 'semi-dark-green'\n | 'light-green'\n | 'super-light-green'\n | 'yellow'\n | 'dark-yellow'\n | 'semi-dark-yellow'\n | 'light-yellow'\n | 'super-light-yellow'\n | 'red'\n | 'dark-red'\n | 'semi-dark-red'\n | 'light-red'\n | 'super-light-red'\n | 'blue'\n | 'dark-blue'\n | 'semi-dark-blue'\n | 'light-blue'\n | 'super-light-blue'\n | 'orange'\n | 'dark-orange'\n | 'semi-dark-orange'\n | 'light-orange'\n | 'super-light-orange'\n | 'purple'\n | 'dark-purple'\n | 'semi-dark-purple'\n | 'light-purple'\n | 'super-light-purple';\n\ntype ThemeVariants = {\n dark: string;\n light: string;\n};\n\nexport type ColorDefinition = {\n hue: Hue;\n isPrimary?: boolean;\n name: Color;\n variants: ThemeVariants;\n};\n\nlet colorsPaletteInstance: Map;\n\nconst buildColorDefinition = (\n hue: Hue,\n name: Color,\n [light, dark]: string[],\n isPrimary?: boolean\n): ColorDefinition => ({\n hue,\n name,\n variants: {\n light,\n dark,\n },\n isPrimary: !!isPrimary,\n});\n\nexport const getColorDefinitionByName = (name: Color): ColorDefinition => {\n return flatten(Array.from(getNamedColorPalette().values())).filter(definition => definition.name === name)[0];\n};\n\nexport const getColorDefinition = (hex: string, theme: GrafanaThemeType): ColorDefinition | undefined => {\n return flatten(Array.from(getNamedColorPalette().values())).filter(\n definition => definition.variants[theme] === hex\n )[0];\n};\n\nconst isHex = (color: string) => {\n const hexRegex = /^((0x){0,1}|#{0,1})([0-9A-F]{8}|[0-9A-F]{6}|[0-9A-F]{3})$/gi;\n return hexRegex.test(color);\n};\n\nexport const getColorName = (color?: string, theme?: GrafanaThemeType): Color | undefined => {\n if (!color) {\n return undefined;\n }\n\n if (color.indexOf('rgb') > -1) {\n return undefined;\n }\n if (isHex(color)) {\n const definition = getColorDefinition(color, theme || GrafanaThemeType.Dark);\n return definition ? definition.name : undefined;\n }\n\n return color as Color;\n};\n\nexport const getColorByName = (colorName: string) => {\n const definition = flatten(Array.from(getNamedColorPalette().values())).filter(\n definition => definition.name === colorName\n );\n return definition.length > 0 ? definition[0] : undefined;\n};\n\nexport const getColorFromHexRgbOrName = (color: string, theme?: GrafanaThemeType): string => {\n if (color.indexOf('rgb') > -1 || isHex(color)) {\n return color;\n }\n\n const colorDefinition = getColorByName(color);\n\n if (!colorDefinition) {\n return new tinycolor(color).toHexString();\n }\n\n return theme ? colorDefinition.variants[theme] : colorDefinition.variants.dark;\n};\n\nexport const getColorForTheme = (color: ColorDefinition, theme?: GrafanaThemeType) => {\n return theme ? color.variants[theme] : color.variants.dark;\n};\n\nconst buildNamedColorsPalette = () => {\n const palette = new Map();\n\n const BasicGreen = buildColorDefinition('green', 'green', ['#56A64B', '#73BF69'], true);\n const DarkGreen = buildColorDefinition('green', 'dark-green', ['#19730E', '#37872D']);\n const SemiDarkGreen = buildColorDefinition('green', 'semi-dark-green', ['#37872D', '#56A64B']);\n const LightGreen = buildColorDefinition('green', 'light-green', ['#73BF69', '#96D98D']);\n const SuperLightGreen = buildColorDefinition('green', 'super-light-green', ['#96D98D', '#C8F2C2']);\n\n const BasicYellow = buildColorDefinition('yellow', 'yellow', ['#F2CC0C', '#FADE2A'], true);\n const DarkYellow = buildColorDefinition('yellow', 'dark-yellow', ['#CC9D00', '#E0B400']);\n const SemiDarkYellow = buildColorDefinition('yellow', 'semi-dark-yellow', ['#E0B400', '#F2CC0C']);\n const LightYellow = buildColorDefinition('yellow', 'light-yellow', ['#FADE2A', '#FFEE52']);\n const SuperLightYellow = buildColorDefinition('yellow', 'super-light-yellow', ['#FFEE52', '#FFF899']);\n\n const BasicRed = buildColorDefinition('red', 'red', ['#E02F44', '#F2495C'], true);\n const DarkRed = buildColorDefinition('red', 'dark-red', ['#AD0317', '#C4162A']);\n const SemiDarkRed = buildColorDefinition('red', 'semi-dark-red', ['#C4162A', '#E02F44']);\n const LightRed = buildColorDefinition('red', 'light-red', ['#F2495C', '#FF7383']);\n const SuperLightRed = buildColorDefinition('red', 'super-light-red', ['#FF7383', '#FFA6B0']);\n\n const BasicBlue = buildColorDefinition('blue', 'blue', ['#3274D9', '#5794F2'], true);\n const DarkBlue = buildColorDefinition('blue', 'dark-blue', ['#1250B0', '#1F60C4']);\n const SemiDarkBlue = buildColorDefinition('blue', 'semi-dark-blue', ['#1F60C4', '#3274D9']);\n const LightBlue = buildColorDefinition('blue', 'light-blue', ['#5794F2', '#8AB8FF']);\n const SuperLightBlue = buildColorDefinition('blue', 'super-light-blue', ['#8AB8FF', '#C0D8FF']);\n\n const BasicOrange = buildColorDefinition('orange', 'orange', ['#FF780A', '#FF9830'], true);\n const DarkOrange = buildColorDefinition('orange', 'dark-orange', ['#E55400', '#FA6400']);\n const SemiDarkOrange = buildColorDefinition('orange', 'semi-dark-orange', ['#FA6400', '#FF780A']);\n const LightOrange = buildColorDefinition('orange', 'light-orange', ['#FF9830', '#FFB357']);\n const SuperLightOrange = buildColorDefinition('orange', 'super-light-orange', ['#FFB357', '#FFCB7D']);\n\n const BasicPurple = buildColorDefinition('purple', 'purple', ['#A352CC', '#B877D9'], true);\n const DarkPurple = buildColorDefinition('purple', 'dark-purple', ['#7C2EA3', '#8F3BB8']);\n const SemiDarkPurple = buildColorDefinition('purple', 'semi-dark-purple', ['#8F3BB8', '#A352CC']);\n const LightPurple = buildColorDefinition('purple', 'light-purple', ['#B877D9', '#CA95E5']);\n const SuperLightPurple = buildColorDefinition('purple', 'super-light-purple', ['#CA95E5', '#DEB6F2']);\n\n const greens = [BasicGreen, DarkGreen, SemiDarkGreen, LightGreen, SuperLightGreen];\n const yellows = [BasicYellow, DarkYellow, SemiDarkYellow, LightYellow, SuperLightYellow];\n const reds = [BasicRed, DarkRed, SemiDarkRed, LightRed, SuperLightRed];\n const blues = [BasicBlue, DarkBlue, SemiDarkBlue, LightBlue, SuperLightBlue];\n const oranges = [BasicOrange, DarkOrange, SemiDarkOrange, LightOrange, SuperLightOrange];\n const purples = [BasicPurple, DarkPurple, SemiDarkPurple, LightPurple, SuperLightPurple];\n\n palette.set('green', greens);\n palette.set('yellow', yellows);\n palette.set('red', reds);\n palette.set('blue', blues);\n palette.set('orange', oranges);\n palette.set('purple', purples);\n\n return palette;\n};\n\nexport const getNamedColorPalette = () => {\n if (colorsPaletteInstance) {\n return colorsPaletteInstance;\n }\n\n colorsPaletteInstance = buildNamedColorsPalette();\n return colorsPaletteInstance;\n};\n","// Store\nimport store from 'app/core/store';\n\n// Models\nimport { DashboardModel } from 'app/features/dashboard/state/DashboardModel';\nimport { PanelModel } from 'app/features/dashboard/state/PanelModel';\nimport { TimeRange } from '@grafana/ui';\n\n// Utils\nimport { isString as _isString } from 'lodash';\nimport * as rangeUtil from 'app/core/utils/rangeutil';\nimport * as dateMath from 'app/core/utils/datemath';\nimport appEvents from 'app/core/app_events';\n\n// Services\nimport templateSrv from 'app/features/templating/template_srv';\n\n// Constants\nimport { LS_PANEL_COPY_KEY } from 'app/core/constants';\n\nexport const removePanel = (dashboard: DashboardModel, panel: PanelModel, ask: boolean) => {\n // confirm deletion\n if (ask !== false) {\n const text2 = panel.alert ? 'Panel includes an alert rule, removing panel will also remove alert rule' : null;\n const confirmText = panel.alert ? 'YES' : null;\n\n appEvents.emit('confirm-modal', {\n title: 'Remove Panel',\n text: 'Are you sure you want to remove this panel?',\n text2: text2,\n icon: 'fa-trash',\n confirmText: confirmText,\n yesText: 'Remove',\n onConfirm: () => removePanel(dashboard, panel, false),\n });\n return;\n }\n dashboard.removePanel(panel);\n};\n\nexport const duplicatePanel = (dashboard: DashboardModel, panel: PanelModel) => {\n dashboard.duplicatePanel(panel);\n};\n\nexport const copyPanel = (panel: PanelModel) => {\n store.set(LS_PANEL_COPY_KEY, JSON.stringify(panel.getSaveModel()));\n appEvents.emit('alert-success', ['Panel copied. Open Add Panel to paste']);\n};\n\nconst replacePanel = (dashboard: DashboardModel, newPanel: PanelModel, oldPanel: PanelModel) => {\n const index = dashboard.panels.findIndex(panel => {\n return panel.id === oldPanel.id;\n });\n\n const deletedPanel = dashboard.panels.splice(index, 1);\n dashboard.events.emit('panel-removed', deletedPanel);\n\n newPanel = new PanelModel(newPanel);\n newPanel.id = oldPanel.id;\n\n dashboard.panels.splice(index, 0, newPanel);\n dashboard.sortPanelsByGridPos();\n dashboard.events.emit('panel-added', newPanel);\n};\n\nexport const editPanelJson = (dashboard: DashboardModel, panel: PanelModel) => {\n const model = {\n object: panel.getSaveModel(),\n updateHandler: (newPanel: PanelModel, oldPanel: PanelModel) => {\n replacePanel(dashboard, newPanel, oldPanel);\n },\n canUpdate: dashboard.meta.canEdit,\n enableCopy: true,\n };\n\n appEvents.emit('show-modal', {\n src: 'public/app/partials/edit_json.html',\n model: model,\n });\n};\n\nexport const sharePanel = (dashboard: DashboardModel, panel: PanelModel) => {\n appEvents.emit('show-modal', {\n src: 'public/app/features/dashboard/components/ShareModal/template.html',\n model: {\n dashboard: dashboard,\n panel: panel,\n },\n });\n};\n\nexport const refreshPanel = (panel: PanelModel) => {\n panel.refresh();\n};\n\nexport const toggleLegend = (panel: PanelModel) => {\n console.log('Toggle legend is not implemented yet');\n // We need to set panel.legend defaults first\n // panel.legend.show = !panel.legend.show;\n refreshPanel(panel);\n};\n\nexport interface TimeOverrideResult {\n timeRange: TimeRange;\n timeInfo: string;\n}\n\nexport function applyPanelTimeOverrides(panel: PanelModel, timeRange: TimeRange): TimeOverrideResult {\n const newTimeData = {\n timeInfo: '',\n timeRange: timeRange,\n };\n\n if (panel.timeFrom) {\n const timeFromInterpolated = templateSrv.replace(panel.timeFrom, panel.scopedVars);\n const timeFromInfo = rangeUtil.describeTextRange(timeFromInterpolated);\n if (timeFromInfo.invalid) {\n newTimeData.timeInfo = 'invalid time override';\n return newTimeData;\n }\n\n if (_isString(timeRange.raw.from)) {\n const timeFromDate = dateMath.parse(timeFromInfo.from);\n newTimeData.timeInfo = timeFromInfo.display;\n newTimeData.timeRange = {\n from: timeFromDate,\n to: dateMath.parse(timeFromInfo.to),\n raw: {\n from: timeFromInfo.from,\n to: timeFromInfo.to,\n },\n };\n }\n }\n\n if (panel.timeShift) {\n const timeShiftInterpolated = templateSrv.replace(panel.timeShift, panel.scopedVars);\n const timeShiftInfo = rangeUtil.describeTextRange(timeShiftInterpolated);\n if (timeShiftInfo.invalid) {\n newTimeData.timeInfo = 'invalid timeshift';\n return newTimeData;\n }\n\n const timeShift = '-' + timeShiftInterpolated;\n newTimeData.timeInfo += ' timeshift ' + timeShift;\n const from = dateMath.parseDateMath(timeShift, newTimeData.timeRange.from, false);\n const to = dateMath.parseDateMath(timeShift, newTimeData.timeRange.to, true);\n\n newTimeData.timeRange = {\n from,\n to,\n raw: {\n from,\n to,\n },\n };\n }\n\n if (panel.hideTimeOverride) {\n newTimeData.timeInfo = '';\n }\n\n return newTimeData;\n}\n\nexport function getResolution(panel: PanelModel): number {\n const htmlEl = document.getElementsByTagName('html')[0];\n const width = htmlEl.getBoundingClientRect().width; // https://stackoverflow.com/a/21454625\n\n return panel.maxDataPoints ? panel.maxDataPoints : Math.ceil(width * (panel.gridPos.w / 24));\n}\n","import React, { forwardRef } from 'react';\n\nconst specialChars = ['(', '[', '{', '}', ']', ')', '|', '*', '+', '-', '.', '?', '<', '>', '#', '&', '^', '$'];\n\nexport const escapeStringForRegex = (value: string) => {\n if (!value) {\n return value;\n }\n\n const newValue = specialChars.reduce(\n (escaped, currentChar) => escaped.replace(currentChar, '\\\\' + currentChar),\n value\n );\n\n return newValue;\n};\n\nexport const unEscapeStringFromRegex = (value: string) => {\n if (!value) {\n return value;\n }\n\n const newValue = specialChars.reduce(\n (escaped, currentChar) => escaped.replace('\\\\' + currentChar, currentChar),\n value\n );\n\n return newValue;\n};\n\nexport interface Props {\n value: string | undefined;\n placeholder?: string;\n labelClassName?: string;\n inputClassName?: string;\n onChange: (value: string) => void;\n}\n\nexport const FilterInput = forwardRef((props, ref) => (\n \n));\n","import { getFlotTickDecimals } from 'app/core/utils/ticks';\nimport _ from 'lodash';\nimport { getValueFormat, stringToJsRegex } from '@grafana/ui';\n\nfunction matchSeriesOverride(aliasOrRegex, seriesAlias) {\n if (!aliasOrRegex) {\n return false;\n }\n\n if (aliasOrRegex[0] === '/') {\n const regex = stringToJsRegex(aliasOrRegex);\n return seriesAlias.match(regex) != null;\n }\n\n return aliasOrRegex === seriesAlias;\n}\n\nfunction translateFillOption(fill) {\n return fill === 0 ? 0.001 : fill / 10;\n}\n\n/**\n * Calculate decimals for legend and update values for each series.\n * @param data series data\n * @param panel\n * @param height\n */\nexport function updateLegendValues(data: TimeSeries[], panel, height) {\n for (let i = 0; i < data.length; i++) {\n const series = data[i];\n const yaxes = panel.yaxes;\n const seriesYAxis = series.yaxis || 1;\n const axis = yaxes[seriesYAxis - 1];\n const formatter = getValueFormat(axis.format);\n\n // decimal override\n if (_.isNumber(panel.decimals)) {\n series.updateLegendValues(formatter, panel.decimals, null);\n } else if (_.isNumber(axis.decimals)) {\n series.updateLegendValues(formatter, axis.decimals + 1, null);\n } else {\n // auto decimals\n // legend and tooltip gets one more decimal precision\n // than graph legend ticks\n const { datamin, datamax } = getDataMinMax(data);\n const { tickDecimals, scaledDecimals } = getFlotTickDecimals(datamin, datamax, axis, height);\n const tickDecimalsPlusOne = (tickDecimals || -1) + 1;\n series.updateLegendValues(formatter, tickDecimalsPlusOne, scaledDecimals + 2);\n }\n }\n}\n\nexport function getDataMinMax(data: TimeSeries[]) {\n let datamin = null;\n let datamax = null;\n\n for (const series of data) {\n if (datamax === null || datamax < series.stats.max) {\n datamax = series.stats.max;\n }\n if (datamin === null || datamin > series.stats.min) {\n datamin = series.stats.min;\n }\n }\n\n return { datamin, datamax };\n}\n\nexport default class TimeSeries {\n datapoints: any;\n id: string;\n label: string;\n alias: string;\n aliasEscaped: string;\n color: string;\n valueFormater: any;\n stats: any;\n legend: boolean;\n hideTooltip: boolean;\n allIsNull: boolean;\n allIsZero: boolean;\n decimals: number;\n scaledDecimals: number;\n hasMsResolution: boolean;\n isOutsideRange: boolean;\n\n lines: any;\n dashes: any;\n bars: any;\n points: any;\n yaxis: any;\n zindex: any;\n stack: any;\n nullPointMode: any;\n fillBelowTo: any;\n transform: any;\n flotpairs: any;\n unit: any;\n\n constructor(opts) {\n this.datapoints = opts.datapoints;\n this.label = opts.alias;\n this.id = opts.alias;\n this.alias = opts.alias;\n this.aliasEscaped = _.escape(opts.alias);\n this.color = opts.color;\n this.bars = { fillColor: opts.color };\n this.valueFormater = getValueFormat('none');\n this.stats = {};\n this.legend = true;\n this.unit = opts.unit;\n this.hasMsResolution = this.isMsResolutionNeeded();\n }\n\n applySeriesOverrides(overrides) {\n this.lines = {};\n this.dashes = {\n dashLength: [],\n };\n this.points = {};\n this.yaxis = 1;\n this.zindex = 0;\n this.nullPointMode = null;\n delete this.stack;\n delete this.bars.show;\n\n for (let i = 0; i < overrides.length; i++) {\n const override = overrides[i];\n if (!matchSeriesOverride(override.alias, this.alias)) {\n continue;\n }\n if (override.lines !== void 0) {\n this.lines.show = override.lines;\n }\n if (override.dashes !== void 0) {\n this.dashes.show = override.dashes;\n this.lines.lineWidth = 0;\n }\n if (override.points !== void 0) {\n this.points.show = override.points;\n }\n if (override.bars !== void 0) {\n this.bars.show = override.bars;\n }\n if (override.fill !== void 0) {\n this.lines.fill = translateFillOption(override.fill);\n }\n if (override.stack !== void 0) {\n this.stack = override.stack;\n }\n if (override.linewidth !== void 0) {\n this.lines.lineWidth = this.dashes.show ? 0 : override.linewidth;\n this.dashes.lineWidth = override.linewidth;\n }\n if (override.dashLength !== void 0) {\n this.dashes.dashLength[0] = override.dashLength;\n }\n if (override.spaceLength !== void 0) {\n this.dashes.dashLength[1] = override.spaceLength;\n }\n if (override.nullPointMode !== void 0) {\n this.nullPointMode = override.nullPointMode;\n }\n if (override.pointradius !== void 0) {\n this.points.radius = override.pointradius;\n }\n if (override.steppedLine !== void 0) {\n this.lines.steps = override.steppedLine;\n }\n if (override.zindex !== void 0) {\n this.zindex = override.zindex;\n }\n if (override.fillBelowTo !== void 0) {\n this.fillBelowTo = override.fillBelowTo;\n }\n if (override.color !== void 0) {\n this.setColor(override.color);\n }\n if (override.transform !== void 0) {\n this.transform = override.transform;\n }\n if (override.legend !== void 0) {\n this.legend = override.legend;\n }\n if (override.hideTooltip !== void 0) {\n this.hideTooltip = override.hideTooltip;\n }\n\n if (override.yaxis !== void 0) {\n this.yaxis = override.yaxis;\n }\n }\n }\n\n getFlotPairs(fillStyle) {\n const result = [];\n\n this.stats.total = 0;\n this.stats.max = -Number.MAX_VALUE;\n this.stats.min = Number.MAX_VALUE;\n this.stats.logmin = Number.MAX_VALUE;\n this.stats.avg = null;\n this.stats.current = null;\n this.stats.first = null;\n this.stats.delta = 0;\n this.stats.diff = null;\n this.stats.range = null;\n this.stats.timeStep = Number.MAX_VALUE;\n this.allIsNull = true;\n this.allIsZero = true;\n\n const ignoreNulls = fillStyle === 'connected';\n const nullAsZero = fillStyle === 'null as zero';\n let currentTime;\n let currentValue;\n let nonNulls = 0;\n let previousTime;\n let previousValue = 0;\n let previousDeltaUp = true;\n\n for (let i = 0; i < this.datapoints.length; i++) {\n currentValue = this.datapoints[i][0];\n currentTime = this.datapoints[i][1];\n\n // Due to missing values we could have different timeStep all along the series\n // so we have to find the minimum one (could occur with aggregators such as ZimSum)\n if (previousTime !== undefined) {\n const timeStep = currentTime - previousTime;\n if (timeStep < this.stats.timeStep) {\n this.stats.timeStep = timeStep;\n }\n }\n previousTime = currentTime;\n\n if (currentValue === null) {\n if (ignoreNulls) {\n continue;\n }\n if (nullAsZero) {\n currentValue = 0;\n }\n }\n\n if (currentValue !== null) {\n if (_.isNumber(currentValue)) {\n this.stats.total += currentValue;\n this.allIsNull = false;\n nonNulls++;\n }\n\n if (currentValue > this.stats.max) {\n this.stats.max = currentValue;\n }\n\n if (currentValue < this.stats.min) {\n this.stats.min = currentValue;\n }\n\n if (this.stats.first === null) {\n this.stats.first = currentValue;\n } else {\n if (previousValue > currentValue) {\n // counter reset\n previousDeltaUp = false;\n if (i === this.datapoints.length - 1) {\n // reset on last\n this.stats.delta += currentValue;\n }\n } else {\n if (previousDeltaUp) {\n this.stats.delta += currentValue - previousValue; // normal increment\n } else {\n this.stats.delta += currentValue; // account for counter reset\n }\n previousDeltaUp = true;\n }\n }\n previousValue = currentValue;\n\n if (currentValue < this.stats.logmin && currentValue > 0) {\n this.stats.logmin = currentValue;\n }\n\n if (currentValue !== 0) {\n this.allIsZero = false;\n }\n }\n\n result.push([currentTime, currentValue]);\n }\n\n if (this.stats.max === -Number.MAX_VALUE) {\n this.stats.max = null;\n }\n if (this.stats.min === Number.MAX_VALUE) {\n this.stats.min = null;\n }\n\n if (result.length && !this.allIsNull) {\n this.stats.avg = this.stats.total / nonNulls;\n this.stats.current = result[result.length - 1][1];\n if (this.stats.current === null && result.length > 1) {\n this.stats.current = result[result.length - 2][1];\n }\n }\n if (this.stats.max !== null && this.stats.min !== null) {\n this.stats.range = this.stats.max - this.stats.min;\n }\n if (this.stats.current !== null && this.stats.first !== null) {\n this.stats.diff = this.stats.current - this.stats.first;\n }\n\n this.stats.count = result.length;\n return result;\n }\n\n updateLegendValues(formater, decimals, scaledDecimals) {\n this.valueFormater = formater;\n this.decimals = decimals;\n this.scaledDecimals = scaledDecimals;\n }\n\n formatValue(value) {\n if (!_.isFinite(value)) {\n value = null; // Prevent NaN formatting\n }\n return this.valueFormater(value, this.decimals, this.scaledDecimals);\n }\n\n isMsResolutionNeeded() {\n for (let i = 0; i < this.datapoints.length; i++) {\n if (this.datapoints[i][1] !== null) {\n const timestamp = this.datapoints[i][1].toString();\n if (timestamp.length === 13 && timestamp % 1000 !== 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n hideFromLegend(options) {\n if (options.hideEmpty && this.allIsNull) {\n return true;\n }\n // ignore series excluded via override\n if (!this.legend) {\n return true;\n }\n\n // ignore zero series\n if (options.hideZero && this.allIsZero) {\n return true;\n }\n\n return false;\n }\n\n setColor(color: string) {\n this.color = color;\n this.bars.fillColor = color;\n }\n}\n","import { Team, TeamsState, TeamState, TeamMember, OrgRole, TeamPermissionLevel } from 'app/types';\nimport { User } from 'app/core/services/context_srv';\n\nexport const getSearchQuery = (state: TeamsState) => state.searchQuery;\nexport const getSearchMemberQuery = (state: TeamState) => state.searchMemberQuery;\nexport const getTeamGroups = (state: TeamState) => state.groups;\nexport const getTeamsCount = (state: TeamsState) => state.teams.length;\n\nexport const getTeam = (state: TeamState, currentTeamId): Team | null => {\n if (state.team.id === parseInt(currentTeamId, 10)) {\n return state.team;\n }\n\n return null;\n};\n\nexport const getTeams = (state: TeamsState) => {\n const regex = RegExp(state.searchQuery, 'i');\n\n return state.teams.filter(team => {\n return regex.test(team.name);\n });\n};\n\nexport const getTeamMembers = (state: TeamState) => {\n const regex = RegExp(state.searchMemberQuery, 'i');\n\n return state.members.filter(member => {\n return regex.test(member.login) || regex.test(member.email);\n });\n};\n\nexport interface Config {\n members: TeamMember[];\n editorsCanAdmin: boolean;\n signedInUser: User;\n}\n\nexport const isSignedInUserTeamAdmin = (config: Config): boolean => {\n const { members, signedInUser, editorsCanAdmin } = config;\n const userInMembers = members.find(m => m.userId === signedInUser.id);\n const permission = userInMembers ? userInMembers.permission : TeamPermissionLevel.Member;\n\n return isPermissionTeamAdmin({ permission, signedInUser, editorsCanAdmin });\n};\n\nexport interface PermissionConfig {\n permission: TeamPermissionLevel;\n editorsCanAdmin: boolean;\n signedInUser: User;\n}\n\nexport const isPermissionTeamAdmin = (config: PermissionConfig): boolean => {\n const { permission, signedInUser, editorsCanAdmin } = config;\n const isAdmin = signedInUser.isGrafanaAdmin || signedInUser.orgRole === OrgRole.Admin;\n const userIsTeamAdmin = permission === TeamPermissionLevel.Admin;\n const isSignedInUserTeamAdmin = isAdmin || userIsTeamAdmin;\n\n return isSignedInUserTeamAdmin || !editorsCanAdmin;\n};\n","import { ComponentClass } from 'react';\nimport { Value } from 'slate';\nimport {\n RawTimeRange,\n TimeRange,\n DataQuery,\n DataQueryResponseData,\n DataSourceSelectItem,\n DataSourceApi,\n QueryHint,\n ExploreStartPageProps,\n} from '@grafana/ui';\n\nimport { Emitter, TimeSeries } from 'app/core/core';\nimport { LogsModel, LogsDedupStrategy, LogLevel } from 'app/core/logs_model';\nimport TableModel from 'app/core/table_model';\n\nexport interface CompletionItem {\n /**\n * The label of this completion item. By default\n * this is also the text that is inserted when selecting\n * this completion.\n */\n label: string;\n /**\n * The kind of this completion item. Based on the kind\n * an icon is chosen by the editor.\n */\n kind?: string;\n /**\n * A human-readable string with additional information\n * about this item, like type or symbol information.\n */\n detail?: string;\n /**\n * A human-readable string, can be Markdown, that represents a doc-comment.\n */\n documentation?: string;\n /**\n * A string that should be used when comparing this item\n * with other items. When `falsy` the `label` is used.\n */\n sortText?: string;\n /**\n * A string that should be used when filtering a set of\n * completion items. When `falsy` the `label` is used.\n */\n filterText?: string;\n /**\n * A string or snippet that should be inserted in a document when selecting\n * this completion. When `falsy` the `label` is used.\n */\n insertText?: string;\n /**\n * Delete number of characters before the caret position,\n * by default the letters from the beginning of the word.\n */\n deleteBackwards?: number;\n /**\n * Number of steps to move after the insertion, can be negative.\n */\n move?: number;\n}\n\nexport interface CompletionItemGroup {\n /**\n * Label that will be displayed for all entries of this group.\n */\n label: string;\n /**\n * List of suggestions of this group.\n */\n items: CompletionItem[];\n /**\n * If true, match only by prefix (and not mid-word).\n */\n prefixMatch?: boolean;\n /**\n * If true, do not filter items in this group based on the search.\n */\n skipFilter?: boolean;\n /**\n * If true, do not sort items.\n */\n skipSort?: boolean;\n}\n\nexport enum ExploreId {\n left = 'left',\n right = 'right',\n}\n\n/**\n * Global Explore state\n */\nexport interface ExploreState {\n /**\n * True if split view is active.\n */\n split: boolean;\n /**\n * Explore state of the left split (left is default in non-split view).\n */\n left: ExploreItemState;\n /**\n * Explore state of the right area in split view.\n */\n right: ExploreItemState;\n}\n\nexport interface ExploreItemState {\n /**\n * React component to be shown when no queries have been run yet, e.g., for a query language cheat sheet.\n */\n StartPage?: ComponentClass;\n /**\n * Width used for calculating the graph interval (can't have more datapoints than pixels)\n */\n containerWidth: number;\n /**\n * Datasource instance that has been selected. Datasource-specific logic can be run on this object.\n */\n datasourceInstance: DataSourceApi | null;\n /**\n * Current data source name or null if default\n */\n requestedDatasourceName: string | null;\n /**\n * Error to be shown when datasource loading or testing failed.\n */\n datasourceError: string;\n /**\n * True if the datasource is loading. `null` if the loading has not started yet.\n */\n datasourceLoading: boolean | null;\n /**\n * True if there is no datasource to be selected.\n */\n datasourceMissing: boolean;\n /**\n * Emitter to send events to the rest of Grafana.\n */\n eventBridge?: Emitter;\n /**\n * List of datasources to be shown in the datasource selector.\n */\n exploreDatasources: DataSourceSelectItem[];\n /**\n * List of timeseries to be shown in the Explore graph result viewer.\n */\n graphResult?: any[];\n /**\n * History of recent queries. Datasource-specific and initialized via localStorage.\n */\n history: HistoryItem[];\n /**\n * Queries for this Explore, e.g., set via URL. Each query will be\n * converted to a query row.\n */\n queries: DataQuery[];\n /**\n * True if this Explore area has been initialized.\n * Used to distinguish URL state injection versus split view state injection.\n */\n initialized: boolean;\n /**\n * Log line substrings to be highlighted as you type in a query field.\n * Currently supports only the first query row.\n */\n logsHighlighterExpressions?: string[];\n /**\n * Log query result to be displayed in the logs result viewer.\n */\n logsResult?: LogsModel;\n /**\n * Query intervals for graph queries to determine how many datapoints to return.\n * Needs to be updated when `datasourceInstance` or `containerWidth` is changed.\n */\n queryIntervals: QueryIntervals;\n /**\n * List of query transaction to track query duration and query result.\n * Graph/Logs/Table results are calculated on the fly from the transaction,\n * based on the transaction's result types. Transaction also holds the row index\n * so that results can be dropped and re-computed without running queries again\n * when query rows are removed.\n */\n queryTransactions: QueryTransaction[];\n /**\n * Time range for this Explore. Managed by the time picker and used by all query runs.\n */\n range: TimeRange | RawTimeRange;\n /**\n * Scanner function that calculates a new range, triggers a query run, and returns the new range.\n */\n scanner?: RangeScanner;\n /**\n * True if scanning for more results is active.\n */\n scanning?: boolean;\n /**\n * Current scanning range to be shown to the user while scanning is active.\n */\n scanRange?: RawTimeRange;\n /**\n * True if graph result viewer is expanded. Query runs will contain graph queries.\n */\n showingGraph: boolean;\n /**\n * True if logs result viewer is expanded. Query runs will contain logs queries.\n */\n showingLogs: boolean;\n /**\n * True StartPage needs to be shown. Typically set to `false` once queries have been run.\n */\n showingStartPage?: boolean;\n /**\n * True if table result viewer is expanded. Query runs will contain table queries.\n */\n showingTable: boolean;\n /**\n * True if `datasourceInstance` supports graph queries.\n */\n supportsGraph: boolean | null;\n /**\n * True if `datasourceInstance` supports logs queries.\n */\n supportsLogs: boolean | null;\n /**\n * True if `datasourceInstance` supports table queries.\n */\n supportsTable: boolean | null;\n /**\n * Table model that combines all query table results into a single table.\n */\n tableResult?: TableModel;\n\n /**\n * React keys for rendering of QueryRows\n */\n queryKeys: string[];\n\n /**\n * Current logs deduplication strategy\n */\n dedupStrategy?: LogsDedupStrategy;\n\n /**\n * Currently hidden log series\n */\n hiddenLogLevels?: LogLevel[];\n\n urlState: ExploreUrlState;\n\n update: ExploreUpdateState;\n}\n\nexport interface ExploreUpdateState {\n datasource: boolean;\n queries: boolean;\n range: boolean;\n ui: boolean;\n}\n\nexport interface ExploreUIState {\n showingTable: boolean;\n showingGraph: boolean;\n showingLogs: boolean;\n dedupStrategy?: LogsDedupStrategy;\n}\n\nexport interface ExploreUrlState {\n datasource: string;\n queries: any[]; // Should be a DataQuery, but we're going to strip refIds, so typing makes less sense\n range: RawTimeRange;\n ui: ExploreUIState;\n}\n\nexport interface HistoryItem {\n ts: number;\n query: TQuery;\n}\n\nexport abstract class LanguageProvider {\n datasource: any;\n request: (url) => Promise;\n /**\n * Returns startTask that resolves with a task list when main syntax is loaded.\n * Task list consists of secondary promises that load more detailed language features.\n */\n start: () => Promise;\n startTask?: Promise;\n}\n\nexport interface TypeaheadInput {\n text: string;\n prefix: string;\n wrapperClasses: string[];\n labelKey?: string;\n value?: Value;\n}\n\nexport interface TypeaheadOutput {\n context?: string;\n refresher?: Promise<{}>;\n suggestions: CompletionItemGroup[];\n}\n\nexport interface QueryIntervals {\n interval: string;\n intervalMs: number;\n}\n\nexport interface QueryOptions {\n interval: string;\n format: string;\n hinting?: boolean;\n instant?: boolean;\n valueWithRefId?: boolean;\n}\n\nexport interface QueryTransaction {\n id: string;\n done: boolean;\n error?: string | JSX.Element;\n hints?: QueryHint[];\n latency: number;\n options: any;\n query: DataQuery;\n result?: any; // Table model / Timeseries[] / Logs\n resultType: ResultType;\n rowIndex: number;\n scanning?: boolean;\n}\n\nexport type RangeScanner = () => RawTimeRange;\n\nexport type ResultGetter = (\n result: DataQueryResponseData,\n transaction: QueryTransaction,\n allTransactions: QueryTransaction[]\n) => TimeSeries;\n\nexport interface TextMatch {\n text: string;\n start: number;\n length: number;\n end: number;\n}\n\nexport type ResultType = 'Graph' | 'Logs' | 'Table';\n","import uniqBy from 'lodash/uniqBy';\nimport { alignOptions, aggOptions } from './constants';\n\nexport const extractServicesFromMetricDescriptors = metricDescriptors => uniqBy(metricDescriptors, 'service');\n\nexport const getMetricTypesByService = (metricDescriptors, service) =>\n metricDescriptors.filter(m => m.service === service);\n\nexport const getMetricTypes = (metricDescriptors, metricType, interpolatedMetricType, selectedService) => {\n const metricTypes = getMetricTypesByService(metricDescriptors, selectedService).map(m => ({\n value: m.type,\n name: m.displayName,\n }));\n const metricTypeExistInArray = metricTypes.some(m => m.value === interpolatedMetricType);\n const selectedMetricType = metricTypeExistInArray ? metricType : metricTypes[0].value;\n return {\n metricTypes,\n selectedMetricType,\n };\n};\n\nexport const getAlignmentOptionsByMetric = (metricValueType, metricKind) => {\n return !metricValueType\n ? []\n : alignOptions.filter(i => {\n return i.valueTypes.indexOf(metricValueType) !== -1 && i.metricKinds.indexOf(metricKind) !== -1;\n });\n};\n\nexport const getAggregationOptionsByMetric = (valueType, metricKind) => {\n return !metricKind\n ? []\n : aggOptions.filter(i => {\n return i.valueTypes.indexOf(valueType) !== -1 && i.metricKinds.indexOf(metricKind) !== -1;\n });\n};\n\nexport const getLabelKeys = async (datasource, selectedMetricType) => {\n const refId = 'handleLabelKeysQuery';\n const response = await datasource.getLabels(selectedMetricType, refId);\n const labelKeys = response.meta\n ? [\n ...Object.keys(response.meta.resourceLabels).map(l => `resource.label.${l}`),\n ...Object.keys(response.meta.metricLabels).map(l => `metric.label.${l}`),\n ]\n : [];\n return labelKeys;\n};\n\nexport const getAlignmentPickerData = ({ valueType, metricKind, perSeriesAligner }, templateSrv) => {\n const options = getAlignmentOptionsByMetric(valueType, metricKind).map(option => ({\n ...option,\n label: option.text,\n }));\n const alignOptions = [\n {\n label: 'Alignment options',\n expanded: true,\n options,\n },\n ];\n if (!options.some(o => o.value === templateSrv.replace(perSeriesAligner))) {\n perSeriesAligner = options.length > 0 ? options[0].value : '';\n }\n return { alignOptions, perSeriesAligner };\n};\n","import { Plugin, StoreState } from 'app/types';\nimport { ThunkAction } from 'redux-thunk';\nimport { getBackendSrv } from '../../../core/services/backend_srv';\nimport { LayoutMode } from '../../../core/components/LayoutSelector/LayoutSelector';\nimport { PluginDashboard } from '../../../types/plugins';\n\nexport enum ActionTypes {\n LoadPlugins = 'LOAD_PLUGINS',\n LoadPluginDashboards = 'LOAD_PLUGIN_DASHBOARDS',\n LoadedPluginDashboards = 'LOADED_PLUGIN_DASHBOARDS',\n SetPluginsSearchQuery = 'SET_PLUGIN_SEARCH_QUERY',\n SetLayoutMode = 'SET_LAYOUT_MODE',\n}\n\nexport interface LoadPluginsAction {\n type: ActionTypes.LoadPlugins;\n payload: Plugin[];\n}\n\nexport interface LoadPluginDashboardsAction {\n type: ActionTypes.LoadPluginDashboards;\n}\n\nexport interface LoadedPluginDashboardsAction {\n type: ActionTypes.LoadedPluginDashboards;\n payload: PluginDashboard[];\n}\n\nexport interface SetPluginsSearchQueryAction {\n type: ActionTypes.SetPluginsSearchQuery;\n payload: string;\n}\n\nexport interface SetLayoutModeAction {\n type: ActionTypes.SetLayoutMode;\n payload: LayoutMode;\n}\n\nexport const setPluginsLayoutMode = (mode: LayoutMode): SetLayoutModeAction => ({\n type: ActionTypes.SetLayoutMode,\n payload: mode,\n});\n\nexport const setPluginsSearchQuery = (query: string): SetPluginsSearchQueryAction => ({\n type: ActionTypes.SetPluginsSearchQuery,\n payload: query,\n});\n\nconst pluginsLoaded = (plugins: Plugin[]): LoadPluginsAction => ({\n type: ActionTypes.LoadPlugins,\n payload: plugins,\n});\n\nconst pluginDashboardsLoad = (): LoadPluginDashboardsAction => ({\n type: ActionTypes.LoadPluginDashboards,\n});\n\nconst pluginDashboardsLoaded = (dashboards: PluginDashboard[]): LoadedPluginDashboardsAction => ({\n type: ActionTypes.LoadedPluginDashboards,\n payload: dashboards,\n});\n\nexport type Action =\n | LoadPluginsAction\n | LoadPluginDashboardsAction\n | LoadedPluginDashboardsAction\n | SetPluginsSearchQueryAction\n | SetLayoutModeAction;\n\ntype ThunkResult = ThunkAction;\n\nexport function loadPlugins(): ThunkResult {\n return async dispatch => {\n const result = await getBackendSrv().get('api/plugins', { embedded: 0 });\n dispatch(pluginsLoaded(result));\n };\n}\n\nexport function loadPluginDashboards(): ThunkResult {\n return async (dispatch, getStore) => {\n dispatch(pluginDashboardsLoad());\n const dataSourceType = getStore().dataSources.dataSource.type;\n const response = await getBackendSrv().get(`api/plugins/${dataSourceType}/dashboards`);\n dispatch(pluginDashboardsLoaded(response));\n };\n}\n","import { getBackendSrv } from 'app/core/services/backend_srv';\nimport { StoreState } from 'app/types';\nimport { ThunkAction } from 'redux-thunk';\nimport { FolderDTO, FolderState } from 'app/types';\nimport {\n DashboardAcl,\n DashboardAclDTO,\n PermissionLevel,\n DashboardAclUpdateDTO,\n NewDashboardAclItem,\n} from 'app/types/acl';\n\nimport { updateNavIndex, updateLocation } from 'app/core/actions';\nimport { buildNavModel } from './navModel';\nimport appEvents from 'app/core/app_events';\n\nexport enum ActionTypes {\n LoadFolder = 'LOAD_FOLDER',\n SetFolderTitle = 'SET_FOLDER_TITLE',\n SaveFolder = 'SAVE_FOLDER',\n LoadFolderPermissions = 'LOAD_FOLDER_PERMISSONS',\n}\n\nexport interface LoadFolderAction {\n type: ActionTypes.LoadFolder;\n payload: FolderDTO;\n}\n\nexport interface SetFolderTitleAction {\n type: ActionTypes.SetFolderTitle;\n payload: string;\n}\n\nexport interface LoadFolderPermissionsAction {\n type: ActionTypes.LoadFolderPermissions;\n payload: DashboardAcl[];\n}\n\nexport type Action = LoadFolderAction | SetFolderTitleAction | LoadFolderPermissionsAction;\n\ntype ThunkResult = ThunkAction;\n\nexport const loadFolder = (folder: FolderDTO): LoadFolderAction => ({\n type: ActionTypes.LoadFolder,\n payload: folder,\n});\n\nexport const setFolderTitle = (newTitle: string): SetFolderTitleAction => ({\n type: ActionTypes.SetFolderTitle,\n payload: newTitle,\n});\n\nexport const loadFolderPermissions = (items: DashboardAclDTO[]): LoadFolderPermissionsAction => ({\n type: ActionTypes.LoadFolderPermissions,\n payload: items,\n});\n\nexport function getFolderByUid(uid: string): ThunkResult {\n return async dispatch => {\n const folder = await getBackendSrv().getFolderByUid(uid);\n dispatch(loadFolder(folder));\n dispatch(updateNavIndex(buildNavModel(folder)));\n };\n}\n\nexport function saveFolder(folder: FolderState): ThunkResult {\n return async dispatch => {\n const res = await getBackendSrv().put(`/api/folders/${folder.uid}`, {\n title: folder.title,\n version: folder.version,\n });\n\n // this should be redux action at some point\n appEvents.emit('alert-success', ['Folder saved']);\n\n dispatch(updateLocation({ path: `${res.url}/settings` }));\n };\n}\n\nexport function deleteFolder(uid: string): ThunkResult {\n return async dispatch => {\n await getBackendSrv().deleteFolder(uid, true);\n dispatch(updateLocation({ path: `dashboards` }));\n };\n}\n\nexport function getFolderPermissions(uid: string): ThunkResult {\n return async dispatch => {\n const permissions = await getBackendSrv().get(`/api/folders/${uid}/permissions`);\n dispatch(loadFolderPermissions(permissions));\n };\n}\n\nfunction toUpdateItem(item: DashboardAcl): DashboardAclUpdateDTO {\n return {\n userId: item.userId,\n teamId: item.teamId,\n role: item.role,\n permission: item.permission,\n };\n}\n\nexport function updateFolderPermission(itemToUpdate: DashboardAcl, level: PermissionLevel): ThunkResult {\n return async (dispatch, getStore) => {\n const folder = getStore().folder;\n const itemsToUpdate = [];\n\n for (const item of folder.permissions) {\n if (item.inherited) {\n continue;\n }\n\n const updated = toUpdateItem(item);\n\n // if this is the item we want to update, update it's permission\n if (itemToUpdate === item) {\n updated.permission = level;\n }\n\n itemsToUpdate.push(updated);\n }\n\n await getBackendSrv().post(`/api/folders/${folder.uid}/permissions`, { items: itemsToUpdate });\n await dispatch(getFolderPermissions(folder.uid));\n };\n}\n\nexport function removeFolderPermission(itemToDelete: DashboardAcl): ThunkResult {\n return async (dispatch, getStore) => {\n const folder = getStore().folder;\n const itemsToUpdate = [];\n\n for (const item of folder.permissions) {\n if (item.inherited || item === itemToDelete) {\n continue;\n }\n itemsToUpdate.push(toUpdateItem(item));\n }\n\n await getBackendSrv().post(`/api/folders/${folder.uid}/permissions`, { items: itemsToUpdate });\n await dispatch(getFolderPermissions(folder.uid));\n };\n}\n\nexport function addFolderPermission(newItem: NewDashboardAclItem): ThunkResult {\n return async (dispatch, getStore) => {\n const folder = getStore().folder;\n const itemsToUpdate = [];\n\n for (const item of folder.permissions) {\n if (item.inherited) {\n continue;\n }\n itemsToUpdate.push(toUpdateItem(item));\n }\n\n itemsToUpdate.push({\n userId: newItem.userId,\n teamId: newItem.teamId,\n role: newItem.role,\n permission: newItem.permission,\n });\n\n await getBackendSrv().post(`/api/folders/${folder.uid}/permissions`, { items: itemsToUpdate });\n await dispatch(getFolderPermissions(folder.uid));\n };\n}\n","export enum GrafanaThemeType {\n Light = 'light',\n Dark = 'dark',\n}\n\nexport interface GrafanaThemeCommons {\n name: string;\n // TODO: not sure if should be a part of theme\n breakpoints: {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n typography: {\n fontFamily: {\n sansSerif: string;\n monospace: string;\n };\n size: {\n root: string;\n base: string;\n xs: string;\n sm: string;\n md: string;\n lg: string;\n };\n weight: {\n light: number;\n regular: number;\n semibold: number;\n };\n lineHeight: {\n xs: number; //1\n sm: number; //1.1\n md: number; // 4/3\n lg: number; // 1.5\n };\n // TODO: Refactor to use size instead of custom defs\n heading: {\n h1: string;\n h2: string;\n h3: string;\n h4: string;\n h5: string;\n h6: string;\n };\n link: {\n decoration: string;\n hoverDecoration: string;\n };\n };\n spacing: {\n d: string;\n xxs: string;\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n gutter: string;\n };\n border: {\n radius: {\n sm: string;\n md: string;\n lg: string;\n };\n width: {\n sm: string;\n };\n };\n panelPadding: {\n horizontal: number;\n vertical: number;\n };\n zIndex: {\n dropdown: string;\n navbarFixed: string;\n sidemenu: string;\n tooltip: string;\n modalBackdrop: string;\n modal: string;\n typeahead: string;\n };\n}\n\nexport interface GrafanaTheme extends GrafanaThemeCommons {\n type: GrafanaThemeType;\n background: {\n dropdown: string;\n scrollbar: string;\n scrollbar2: string;\n };\n colors: {\n black: string;\n white: string;\n dark1: string;\n dark2: string;\n dark3: string;\n dark4: string;\n dark5: string;\n dark6: string;\n dark7: string;\n dark8: string;\n dark9: string;\n dark10: string;\n gray1: string;\n gray2: string;\n gray3: string;\n gray4: string;\n gray5: string;\n gray6: string;\n gray7: string;\n grayBlue: string;\n inputBlack: string;\n\n // Accent colors\n blue: string;\n blueBase: string;\n blueShade: string;\n blueLight: string;\n blueFaint: string;\n redBase: string;\n redShade: string;\n greenBase: string;\n greenShade: string;\n red: string;\n yellow: string;\n purple: string;\n variable: string;\n orange: string;\n queryRed: string;\n queryGreen: string;\n queryPurple: string;\n queryKeyword: string;\n queryOrange: string;\n brandPrimary: string;\n brandSuccess: string;\n brandWarning: string;\n brandDanger: string;\n\n // Status colors\n online: string;\n warn: string;\n critical: string;\n\n // Link colors\n link: string;\n linkDisabled: string;\n linkHover: string;\n linkExternal: string;\n\n // Text colors\n body: string;\n text: string;\n textStrong: string;\n textWeak: string;\n textFaint: string;\n textEmphasis: string;\n\n // TODO: move to background section\n bodyBg: string;\n pageBg: string;\n headingColor: string;\n };\n}\n\nexport interface Themeable {\n theme: GrafanaTheme;\n}\n","import _ from 'lodash';\nimport { Column, TableData } from '@grafana/ui';\n\n/**\n * Extends the standard Column class with variables that get\n * mutated in the angular table panel.\n */\ninterface MutableColumn extends Column {\n title?: string;\n sort?: boolean;\n desc?: boolean;\n type?: string;\n}\n\nexport default class TableModel implements TableData {\n columns: MutableColumn[];\n rows: any[];\n type: string;\n columnMap: any;\n\n constructor(table?: any) {\n this.columns = [];\n this.columnMap = {};\n this.rows = [];\n this.type = 'table';\n\n if (table) {\n if (table.columns) {\n table.columns.forEach(col => this.addColumn(col));\n }\n if (table.rows) {\n table.rows.forEach(row => this.addRow(row));\n }\n }\n }\n\n sort(options) {\n if (options.col === null || this.columns.length <= options.col) {\n return;\n }\n\n this.rows.sort((a, b) => {\n a = a[options.col];\n b = b[options.col];\n // Sort null or undefined separately from comparable values\n return +(a == null) - +(b == null) || +(a > b) || -(a < b);\n });\n\n if (options.desc) {\n this.rows.reverse();\n }\n\n this.columns[options.col].sort = true;\n this.columns[options.col].desc = options.desc;\n }\n\n addColumn(col) {\n if (!this.columnMap[col.text]) {\n this.columns.push(col);\n this.columnMap[col.text] = col;\n }\n }\n\n addRow(row) {\n this.rows.push(row);\n }\n}\n\n// Returns true if both rows have matching non-empty fields as well as matching\n// indexes where one field is empty and the other is not\nfunction areRowsMatching(columns, row, otherRow) {\n let foundFieldToMatch = false;\n for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\n if (row[columnIndex] !== undefined && otherRow[columnIndex] !== undefined) {\n if (row[columnIndex] !== otherRow[columnIndex]) {\n return false;\n }\n } else if (row[columnIndex] === undefined || otherRow[columnIndex] === undefined) {\n foundFieldToMatch = true;\n }\n }\n return foundFieldToMatch;\n}\n\nexport function mergeTablesIntoModel(dst?: TableModel, ...tables: TableModel[]): TableModel {\n const model = dst || new TableModel();\n\n if (arguments.length === 1) {\n return model;\n }\n // Single query returns data columns and rows as is\n if (arguments.length === 2) {\n model.columns = tables[0].hasOwnProperty('columns') ? [...tables[0].columns] : [];\n model.rows = tables[0].hasOwnProperty('rows') ? [...tables[0].rows] : [];\n return model;\n }\n\n // Track column indexes of union: name -> index\n const columnNames = {};\n\n // Union of all non-value columns\n const columnsUnion = tables.slice().reduce((acc, series) => {\n series.columns.forEach(col => {\n const { text } = col;\n if (columnNames[text] === undefined) {\n columnNames[text] = acc.length;\n acc.push(col);\n }\n });\n return acc;\n }, []);\n\n // Map old column index to union index per series, e.g.,\n // given columnNames {A: 0, B: 1} and\n // data [{columns: [{ text: 'A' }]}, {columns: [{ text: 'B' }]}] => [[0], [1]]\n const columnIndexMapper = tables.map(series => series.columns.map(col => columnNames[col.text]));\n\n // Flatten rows of all series and adjust new column indexes\n const flattenedRows = tables.reduce((acc, series, seriesIndex) => {\n const mapper = columnIndexMapper[seriesIndex];\n series.rows.forEach(row => {\n const alteredRow = [];\n // Shifting entries according to index mapper\n mapper.forEach((to, from) => {\n alteredRow[to] = row[from];\n });\n acc.push(alteredRow);\n });\n return acc;\n }, []);\n\n // Merge rows that have same values for columns\n const mergedRows = {};\n const compactedRows = flattenedRows.reduce((acc, row, rowIndex) => {\n if (!mergedRows[rowIndex]) {\n // Look from current row onwards\n let offset = rowIndex + 1;\n // More than one row can be merged into current row\n while (offset < flattenedRows.length) {\n // Find next row that could be merged\n const match = _.findIndex(flattenedRows, otherRow => areRowsMatching(columnsUnion, row, otherRow), offset);\n if (match > -1) {\n const matchedRow = flattenedRows[match];\n // Merge values from match into current row if there is a gap in the current row\n for (let columnIndex = 0; columnIndex < columnsUnion.length; columnIndex++) {\n if (row[columnIndex] === undefined && matchedRow[columnIndex] !== undefined) {\n row[columnIndex] = matchedRow[columnIndex];\n }\n }\n // Don't visit this row again\n mergedRows[match] = matchedRow;\n // Keep looking for more rows to merge\n offset = match + 1;\n } else {\n // No match found, stop looking\n break;\n }\n }\n acc.push(row);\n }\n return acc;\n }, []);\n\n model.columns = columnsUnion;\n model.rows = compactedRows;\n return model;\n}\n","import kbn from 'app/core/utils/kbn';\nimport _ from 'lodash';\nimport { variableRegex } from 'app/features/templating/variable';\nimport { TimeRange, ScopedVars } from '@grafana/ui/src';\n\nfunction luceneEscape(value) {\n return value.replace(/([\\!\\*\\+\\-\\=<>\\s\\&\\|\\(\\)\\[\\]\\{\\}\\^\\~\\?\\:\\\\/\"])/g, '\\\\$1');\n}\n\nexport class TemplateSrv {\n variables: any[];\n\n private regex = variableRegex;\n private index = {};\n private grafanaVariables = {};\n private builtIns = {};\n private timeRange: TimeRange = null;\n\n constructor() {\n this.builtIns['__interval'] = { text: '1s', value: '1s' };\n this.builtIns['__interval_ms'] = { text: '100', value: '100' };\n this.variables = [];\n }\n\n init(variables, timeRange?: TimeRange) {\n this.variables = variables;\n this.timeRange = timeRange;\n this.updateIndex();\n }\n\n updateIndex() {\n const existsOrEmpty = value => value || value === '';\n\n this.index = this.variables.reduce((acc, currentValue) => {\n if (currentValue.current && (currentValue.current.isNone || existsOrEmpty(currentValue.current.value))) {\n acc[currentValue.name] = currentValue;\n }\n return acc;\n }, {});\n\n if (this.timeRange) {\n const from = this.timeRange.from.valueOf().toString();\n const to = this.timeRange.to.valueOf().toString();\n\n this.index = {\n ...this.index,\n ['__from']: {\n current: { value: from, text: from },\n },\n ['__to']: {\n current: { value: to, text: to },\n },\n };\n }\n }\n\n updateTimeRange(timeRange: TimeRange) {\n this.timeRange = timeRange;\n this.updateIndex();\n }\n\n variableInitialized(variable) {\n this.index[variable.name] = variable;\n }\n\n getAdhocFilters(datasourceName) {\n let filters = [];\n\n if (this.variables) {\n for (let i = 0; i < this.variables.length; i++) {\n const variable = this.variables[i];\n if (variable.type !== 'adhoc') {\n continue;\n }\n\n // null is the \"default\" datasource\n if (variable.datasource === null || variable.datasource === datasourceName) {\n filters = filters.concat(variable.filters);\n } else if (variable.datasource.indexOf('$') === 0) {\n if (this.replace(variable.datasource) === datasourceName) {\n filters = filters.concat(variable.filters);\n }\n }\n }\n }\n\n return filters;\n }\n\n luceneFormat(value) {\n if (typeof value === 'string') {\n return luceneEscape(value);\n }\n if (value instanceof Array && value.length === 0) {\n return '__empty__';\n }\n const quotedValues = _.map(value, val => {\n return '\"' + luceneEscape(val) + '\"';\n });\n return '(' + quotedValues.join(' OR ') + ')';\n }\n\n // encode string according to RFC 3986; in contrast to encodeURIComponent()\n // also the sub-delims \"!\", \"'\", \"(\", \")\" and \"*\" are encoded;\n // unicode handling uses UTF-8 as in ECMA-262.\n encodeURIComponentStrict(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, c => {\n return (\n '%' +\n c\n .charCodeAt(0)\n .toString(16)\n .toUpperCase()\n );\n });\n }\n\n formatValue(value, format, variable) {\n // for some scopedVars there is no variable\n variable = variable || {};\n\n if (typeof format === 'function') {\n return format(value, variable, this.formatValue);\n }\n\n switch (format) {\n case 'regex': {\n if (typeof value === 'string') {\n return kbn.regexEscape(value);\n }\n\n const escapedValues = _.map(value, kbn.regexEscape);\n if (escapedValues.length === 1) {\n return escapedValues[0];\n }\n return '(' + escapedValues.join('|') + ')';\n }\n case 'lucene': {\n return this.luceneFormat(value);\n }\n case 'pipe': {\n if (typeof value === 'string') {\n return value;\n }\n return value.join('|');\n }\n case 'distributed': {\n if (typeof value === 'string') {\n return value;\n }\n return this.distributeVariable(value, variable.name);\n }\n case 'csv': {\n if (_.isArray(value)) {\n return value.join(',');\n }\n return value;\n }\n case 'json': {\n return JSON.stringify(value);\n }\n case 'percentencode': {\n // like glob, but url escaped\n if (_.isArray(value)) {\n return this.encodeURIComponentStrict('{' + value.join(',') + '}');\n }\n return this.encodeURIComponentStrict(value);\n }\n default: {\n if (_.isArray(value)) {\n return '{' + value.join(',') + '}';\n }\n return value;\n }\n }\n }\n\n setGrafanaVariable(name, value) {\n this.grafanaVariables[name] = value;\n }\n\n getVariableName(expression) {\n this.regex.lastIndex = 0;\n const match = this.regex.exec(expression);\n if (!match) {\n return null;\n }\n const variableName = match.slice(1).find(match => match !== undefined);\n return variableName;\n }\n\n variableExists(expression) {\n const name = this.getVariableName(expression);\n return name && this.index[name] !== void 0;\n }\n\n highlightVariablesAsHtml(str) {\n if (!str || !_.isString(str)) {\n return str;\n }\n\n str = _.escape(str);\n this.regex.lastIndex = 0;\n return str.replace(this.regex, (match, var1, var2, fmt2, var3) => {\n if (this.index[var1 || var2 || var3] || this.builtIns[var1 || var2 || var3]) {\n return '' + match + '';\n }\n return match;\n });\n }\n\n getAllValue(variable) {\n if (variable.allValue) {\n return variable.allValue;\n }\n const values = [];\n for (let i = 1; i < variable.options.length; i++) {\n values.push(variable.options[i].value);\n }\n return values;\n }\n\n replace(target: string, scopedVars?: ScopedVars, format?: string | Function) {\n if (!target) {\n return target;\n }\n\n let variable, systemValue, value, fmt;\n this.regex.lastIndex = 0;\n\n return target.replace(this.regex, (match, var1, var2, fmt2, var3, fmt3) => {\n variable = this.index[var1 || var2 || var3];\n fmt = fmt2 || fmt3 || format;\n if (scopedVars) {\n value = scopedVars[var1 || var2 || var3];\n if (value) {\n return this.formatValue(value.value, fmt, variable);\n }\n }\n\n if (!variable) {\n return match;\n }\n\n systemValue = this.grafanaVariables[variable.current.value];\n if (systemValue) {\n return this.formatValue(systemValue, fmt, variable);\n }\n\n value = variable.current.value;\n if (this.isAllValue(value)) {\n value = this.getAllValue(variable);\n // skip formatting of custom all values\n if (variable.allValue) {\n return this.replace(value);\n }\n }\n\n const res = this.formatValue(value, fmt, variable);\n return res;\n });\n }\n\n isAllValue(value) {\n return value === '$__all' || (Array.isArray(value) && value[0] === '$__all');\n }\n\n replaceWithText(target, scopedVars) {\n if (!target) {\n return target;\n }\n\n let variable;\n this.regex.lastIndex = 0;\n\n return target.replace(this.regex, (match, var1, var2, fmt2, var3) => {\n if (scopedVars) {\n const option = scopedVars[var1 || var2 || var3];\n if (option) {\n return option.text;\n }\n }\n\n variable = this.index[var1 || var2 || var3];\n if (!variable) {\n return match;\n }\n\n const value = this.grafanaVariables[variable.current.value];\n\n return typeof value === 'string' ? value : variable.current.text;\n });\n }\n\n fillVariableValuesForUrl(params, scopedVars?) {\n _.each(this.variables, variable => {\n if (scopedVars && scopedVars[variable.name] !== void 0) {\n if (scopedVars[variable.name].skipUrlSync) {\n return;\n }\n params['var-' + variable.name] = scopedVars[variable.name].value;\n } else {\n if (variable.skipUrlSync) {\n return;\n }\n params['var-' + variable.name] = variable.getValueForUrl();\n }\n });\n }\n\n distributeVariable(value, variable) {\n value = _.map(value, (val, index) => {\n if (index !== 0) {\n return variable + '=' + val;\n } else {\n return val;\n }\n });\n return value.join(',');\n }\n}\n\nexport default new TemplateSrv();\n","import { ThunkAction } from 'redux-thunk';\nimport { StoreState } from '../../../types';\nimport { getBackendSrv } from '../../../core/services/backend_srv';\nimport { Invitee, OrgUser } from 'app/types';\n\nexport enum ActionTypes {\n LoadUsers = 'LOAD_USERS',\n LoadInvitees = 'LOAD_INVITEES',\n SetUsersSearchQuery = 'SET_USERS_SEARCH_QUERY',\n}\n\nexport interface LoadUsersAction {\n type: ActionTypes.LoadUsers;\n payload: OrgUser[];\n}\n\nexport interface LoadInviteesAction {\n type: ActionTypes.LoadInvitees;\n payload: Invitee[];\n}\n\nexport interface SetUsersSearchQueryAction {\n type: ActionTypes.SetUsersSearchQuery;\n payload: string;\n}\n\nconst usersLoaded = (users: OrgUser[]): LoadUsersAction => ({\n type: ActionTypes.LoadUsers,\n payload: users,\n});\n\nconst inviteesLoaded = (invitees: Invitee[]): LoadInviteesAction => ({\n type: ActionTypes.LoadInvitees,\n payload: invitees,\n});\n\nexport const setUsersSearchQuery = (query: string): SetUsersSearchQueryAction => ({\n type: ActionTypes.SetUsersSearchQuery,\n payload: query,\n});\n\nexport type Action = LoadUsersAction | SetUsersSearchQueryAction | LoadInviteesAction;\n\ntype ThunkResult = ThunkAction;\n\nexport function loadUsers(): ThunkResult {\n return async dispatch => {\n const users = await getBackendSrv().get('/api/org/users');\n dispatch(usersLoaded(users));\n };\n}\n\nexport function loadInvitees(): ThunkResult {\n return async dispatch => {\n const invitees = await getBackendSrv().get('/api/org/invites');\n dispatch(inviteesLoaded(invitees));\n };\n}\n\nexport function updateUser(user: OrgUser): ThunkResult {\n return async dispatch => {\n await getBackendSrv().patch(`/api/org/users/${user.userId}`, { role: user.role });\n dispatch(loadUsers());\n };\n}\n\nexport function removeUser(userId: number): ThunkResult {\n return async dispatch => {\n await getBackendSrv().delete(`/api/org/users/${userId}`);\n dispatch(loadUsers());\n };\n}\n\nexport function revokeInvite(code: string): ThunkResult {\n return async dispatch => {\n await getBackendSrv().patch(`/api/org/invites/${code}/revoke`, {});\n dispatch(loadInvitees());\n };\n}\n","// Libraries\nimport _ from 'lodash';\nimport coreModule from 'app/core/core_module';\n\n// Services & Utils\nimport config from 'app/core/config';\nimport { importPluginModule } from './plugin_loader';\n\n// Types\nimport { DataSourceApi, DataSourceSelectItem, ScopedVars } from '@grafana/ui/src/types';\n\nexport class DatasourceSrv {\n datasources: { [name: string]: DataSourceApi };\n\n /** @ngInject */\n constructor(private $q, private $injector, private $rootScope, private templateSrv) {\n this.init();\n }\n\n init() {\n this.datasources = {};\n }\n\n get(name?: string, scopedVars?: ScopedVars): Promise {\n if (!name) {\n return this.get(config.defaultDatasource);\n }\n\n // Interpolation here is to support template variable in data source selection\n name = this.templateSrv.replace(name, scopedVars, (value, variable) => {\n if (Array.isArray(value)) {\n return value[0];\n }\n return value;\n });\n\n if (name === 'default') {\n return this.get(config.defaultDatasource);\n }\n\n if (this.datasources[name]) {\n return this.$q.when(this.datasources[name]);\n }\n\n return this.loadDatasource(name);\n }\n\n loadDatasource(name: string): Promise {\n const dsConfig = config.datasources[name];\n if (!dsConfig) {\n return this.$q.reject({ message: 'Datasource named ' + name + ' was not found' });\n }\n\n const deferred = this.$q.defer();\n const pluginDef = dsConfig.meta;\n\n importPluginModule(pluginDef.module)\n .then(plugin => {\n // check if its in cache now\n if (this.datasources[name]) {\n deferred.resolve(this.datasources[name]);\n return;\n }\n\n // plugin module needs to export a constructor function named Datasource\n if (!plugin.Datasource) {\n throw new Error('Plugin module is missing Datasource constructor');\n }\n\n const instance: DataSourceApi = this.$injector.instantiate(plugin.Datasource, { instanceSettings: dsConfig });\n instance.meta = pluginDef;\n instance.name = name;\n instance.pluginExports = plugin;\n this.datasources[name] = instance;\n deferred.resolve(instance);\n })\n .catch(err => {\n this.$rootScope.appEvent('alert-error', [dsConfig.name + ' plugin failed', err.toString()]);\n });\n\n return deferred.promise;\n }\n\n getAll() {\n const { datasources } = config;\n return Object.keys(datasources).map(name => datasources[name]);\n }\n\n getExternal() {\n const datasources = this.getAll().filter(ds => !ds.meta.builtIn);\n return _.sortBy(datasources, ['name']);\n }\n\n getAnnotationSources() {\n const sources = [];\n\n this.addDataSourceVariables(sources);\n\n _.each(config.datasources, value => {\n if (value.meta && value.meta.annotations) {\n sources.push(value);\n }\n });\n\n return sources;\n }\n\n getMetricSources(options?) {\n const metricSources: DataSourceSelectItem[] = [];\n\n _.each(config.datasources, (value, key) => {\n if (value.meta && value.meta.metrics) {\n let metricSource = { value: key, name: key, meta: value.meta, sort: key };\n\n //Make sure grafana and mixed are sorted at the bottom\n if (value.meta.id === 'grafana') {\n metricSource.sort = String.fromCharCode(253);\n } else if (value.meta.id === 'mixed') {\n metricSource.sort = String.fromCharCode(254);\n }\n\n metricSources.push(metricSource);\n\n if (key === config.defaultDatasource) {\n metricSource = { value: null, name: 'default', meta: value.meta, sort: key };\n metricSources.push(metricSource);\n }\n }\n });\n\n if (!options || !options.skipVariables) {\n this.addDataSourceVariables(metricSources);\n }\n\n metricSources.sort((a, b) => {\n if (a.sort.toLowerCase() > b.sort.toLowerCase()) {\n return 1;\n }\n if (a.sort.toLowerCase() < b.sort.toLowerCase()) {\n return -1;\n }\n return 0;\n });\n\n return metricSources;\n }\n\n addDataSourceVariables(list) {\n // look for data source variables\n for (let i = 0; i < this.templateSrv.variables.length; i++) {\n const variable = this.templateSrv.variables[i];\n if (variable.type !== 'datasource') {\n continue;\n }\n\n let first = variable.current.value;\n if (first === 'default') {\n first = config.defaultDatasource;\n }\n\n const ds = config.datasources[first];\n\n if (ds) {\n const key = `$${variable.name}`;\n list.push({\n name: key,\n value: key,\n meta: ds.meta,\n sort: key,\n });\n }\n }\n }\n}\n\nlet singleton: DatasourceSrv;\n\nexport function setDatasourceSrv(srv: DatasourceSrv) {\n singleton = srv;\n}\n\nexport function getDatasourceSrv(): DatasourceSrv {\n return singleton;\n}\n\ncoreModule.service('datasourceSrv', DatasourceSrv);\nexport default DatasourceSrv;\n","import { DataSourceSettings } from '@grafana/ui/src/types';\n\nexport const getDataSources = state => {\n const regex = new RegExp(state.searchQuery, 'i');\n\n return state.dataSources.filter(dataSource => {\n return regex.test(dataSource.name) || regex.test(dataSource.database);\n });\n};\n\nexport const getDataSourceTypes = state => {\n const regex = new RegExp(state.dataSourceTypeSearchQuery, 'i');\n\n return state.dataSourceTypes.filter(type => {\n return regex.test(type.name);\n });\n};\n\nexport const getDataSource = (state, dataSourceId): DataSourceSettings | null => {\n if (state.dataSource.id === parseInt(dataSourceId, 10)) {\n return state.dataSource;\n }\n return {} as DataSourceSettings;\n};\n\nexport const getDataSourceMeta = (state, type): Plugin => {\n if (state.dataSourceMeta.id === type) {\n return state.dataSourceMeta;\n }\n\n return {} as Plugin;\n};\n\nexport const getDataSourcesSearchQuery = state => state.searchQuery;\nexport const getDataSourcesLayoutMode = state => state.layoutMode;\nexport const getDataSourcesCount = state => state.dataSourcesCount;\n","import config from 'app/core/config';\n\nexport function getThemeColor(dark: string, light: string): string {\n return config.bootData.user.lightTheme ? light : dark;\n}\n","import _ from 'lodash';\n\nimport { colors, TimeSeries } from '@grafana/ui';\nimport { getThemeColor } from 'app/core/utils/colors';\n\n/**\n * Mapping of log level abbreviation to canonical log level.\n * Supported levels are reduce to limit color variation.\n */\nexport enum LogLevel {\n emerg = 'critical',\n alert = 'critical',\n crit = 'critical',\n critical = 'critical',\n warn = 'warning',\n warning = 'warning',\n err = 'error',\n eror = 'error',\n error = 'error',\n info = 'info',\n notice = 'info',\n dbug = 'debug',\n debug = 'debug',\n trace = 'trace',\n unknown = 'unknown',\n}\n\nexport const LogLevelColor = {\n [LogLevel.critical]: colors[7],\n [LogLevel.warning]: colors[1],\n [LogLevel.error]: colors[4],\n [LogLevel.info]: colors[0],\n [LogLevel.debug]: colors[5],\n [LogLevel.trace]: colors[2],\n [LogLevel.unknown]: getThemeColor('#8e8e8e', '#dde4ed'),\n};\n\nexport interface LogSearchMatch {\n start: number;\n length: number;\n text: string;\n}\n\nexport interface LogRowModel {\n duplicates?: number;\n entry: string;\n hasAnsi: boolean;\n key: string; // timestamp + labels\n labels: LogsStreamLabels;\n logLevel: LogLevel;\n raw: string;\n searchWords?: string[];\n timestamp: string; // ISO with nanosec precision\n timeFromNow: string;\n timeEpochMs: number;\n timeLocal: string;\n uniqueLabels?: LogsStreamLabels;\n}\n\nexport interface LogLabelStatsModel {\n active?: boolean;\n count: number;\n proportion: number;\n value: string;\n}\n\nexport enum LogsMetaKind {\n Number,\n String,\n LabelsMap,\n}\n\nexport interface LogsMetaItem {\n label: string;\n value: string | number | LogsStreamLabels;\n kind: LogsMetaKind;\n}\n\nexport interface LogsModel {\n hasUniqueLabels: boolean;\n id: string; // Identify one logs result from another\n meta?: LogsMetaItem[];\n rows: LogRowModel[];\n series?: TimeSeries[];\n}\n\nexport interface LogsStream {\n labels: string;\n entries: LogsStreamEntry[];\n search?: string;\n parsedLabels?: LogsStreamLabels;\n uniqueLabels?: LogsStreamLabels;\n}\n\nexport interface LogsStreamEntry {\n line: string;\n ts: string;\n // Legacy, was renamed to ts\n timestamp?: string;\n}\n\nexport interface LogsStreamLabels {\n [key: string]: string;\n}\n\nexport enum LogsDedupDescription {\n none = 'No de-duplication',\n exact = 'De-duplication of successive lines that are identical, ignoring ISO datetimes.',\n numbers = 'De-duplication of successive lines that are identical when ignoring numbers, e.g., IP addresses, latencies.',\n signature = 'De-duplication of successive lines that have identical punctuation and whitespace.',\n}\n\nexport enum LogsDedupStrategy {\n none = 'none',\n exact = 'exact',\n numbers = 'numbers',\n signature = 'signature',\n}\n\nexport interface LogsParser {\n /**\n * Value-agnostic matcher for a field label.\n * Used to filter rows, and first capture group contains the value.\n */\n buildMatcher: (label: string) => RegExp;\n\n /**\n * Returns all parsable substrings from a line, used for highlighting\n */\n getFields: (line: string) => string[];\n\n /**\n * Gets the label name from a parsable substring of a line\n */\n getLabelFromField: (field: string) => string;\n\n /**\n * Gets the label value from a parsable substring of a line\n */\n getValueFromField: (field: string) => string;\n /**\n * Function to verify if this is a valid parser for the given line.\n * The parser accepts the line unless it returns undefined.\n */\n test: (line: string) => any;\n}\n\nconst LOGFMT_REGEXP = /(?:^|\\s)(\\w+)=(\"[^\"]*\"|\\S+)/;\n\nexport const LogsParsers: { [name: string]: LogsParser } = {\n JSON: {\n buildMatcher: label => new RegExp(`(?:{|,)\\\\s*\"${label}\"\\\\s*:\\\\s*\"?([\\\\d\\\\.]+|[^\"]*)\"?`),\n getFields: line => {\n const fields = [];\n try {\n const parsed = JSON.parse(line);\n _.map(parsed, (value, key) => {\n const fieldMatcher = new RegExp(`\"${key}\"\\\\s*:\\\\s*\"?${_.escapeRegExp(JSON.stringify(value))}\"?`);\n\n const match = line.match(fieldMatcher);\n if (match) {\n fields.push(match[0]);\n }\n });\n } catch {}\n return fields;\n },\n getLabelFromField: field => (field.match(/^\"(\\w+)\"\\s*:/) || [])[1],\n getValueFromField: field => (field.match(/:\\s*(.*)$/) || [])[1],\n test: line => {\n try {\n return JSON.parse(line);\n } catch (error) {}\n },\n },\n\n logfmt: {\n buildMatcher: label => new RegExp(`(?:^|\\\\s)${label}=(\"[^\"]*\"|\\\\S+)`),\n getFields: line => {\n const fields = [];\n line.replace(new RegExp(LOGFMT_REGEXP, 'g'), substring => {\n fields.push(substring.trim());\n return '';\n });\n return fields;\n },\n getLabelFromField: field => (field.match(LOGFMT_REGEXP) || [])[1],\n getValueFromField: field => (field.match(LOGFMT_REGEXP) || [])[2],\n test: line => LOGFMT_REGEXP.test(line),\n },\n};\n\nexport function calculateFieldStats(rows: LogRowModel[], extractor: RegExp): LogLabelStatsModel[] {\n // Consider only rows that satisfy the matcher\n const rowsWithField = rows.filter(row => extractor.test(row.entry));\n const rowCount = rowsWithField.length;\n\n // Get field value counts for eligible rows\n const countsByValue = _.countBy(rowsWithField, row => (row as LogRowModel).entry.match(extractor)[1]);\n const sortedCounts = _.chain(countsByValue)\n .map((count, value) => ({ count, value, proportion: count / rowCount }))\n .sortBy('count')\n .reverse()\n .value();\n\n return sortedCounts;\n}\n\nexport function calculateLogsLabelStats(rows: LogRowModel[], label: string): LogLabelStatsModel[] {\n // Consider only rows that have the given label\n const rowsWithLabel = rows.filter(row => row.labels[label] !== undefined);\n const rowCount = rowsWithLabel.length;\n\n // Get label value counts for eligible rows\n const countsByValue = _.countBy(rowsWithLabel, row => (row as LogRowModel).labels[label]);\n const sortedCounts = _.chain(countsByValue)\n .map((count, value) => ({ count, value, proportion: count / rowCount }))\n .sortBy('count')\n .reverse()\n .value();\n\n return sortedCounts;\n}\n\nconst isoDateRegexp = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-6]\\d[,\\.]\\d+([+-][0-2]\\d:[0-5]\\d|Z)/g;\nfunction isDuplicateRow(row: LogRowModel, other: LogRowModel, strategy: LogsDedupStrategy): boolean {\n switch (strategy) {\n case LogsDedupStrategy.exact:\n // Exact still strips dates\n return row.entry.replace(isoDateRegexp, '') === other.entry.replace(isoDateRegexp, '');\n\n case LogsDedupStrategy.numbers:\n return row.entry.replace(/\\d/g, '') === other.entry.replace(/\\d/g, '');\n\n case LogsDedupStrategy.signature:\n return row.entry.replace(/\\w/g, '') === other.entry.replace(/\\w/g, '');\n\n default:\n return false;\n }\n}\n\nexport function dedupLogRows(logs: LogsModel, strategy: LogsDedupStrategy): LogsModel {\n if (strategy === LogsDedupStrategy.none) {\n return logs;\n }\n\n const dedupedRows = logs.rows.reduce((result: LogRowModel[], row: LogRowModel, index, list) => {\n const rowCopy = { ...row };\n const previous = result[result.length - 1];\n if (index > 0 && isDuplicateRow(row, previous, strategy)) {\n previous.duplicates++;\n } else {\n rowCopy.duplicates = 0;\n result.push(rowCopy);\n }\n return result;\n }, []);\n\n return {\n ...logs,\n rows: dedupedRows,\n };\n}\n\nexport function getParser(line: string): LogsParser {\n let parser;\n try {\n if (LogsParsers.JSON.test(line)) {\n parser = LogsParsers.JSON;\n }\n } catch (error) {}\n if (!parser && LogsParsers.logfmt.test(line)) {\n parser = LogsParsers.logfmt;\n }\n return parser;\n}\n\nexport function filterLogLevels(logs: LogsModel, hiddenLogLevels: Set): LogsModel {\n if (hiddenLogLevels.size === 0) {\n return logs;\n }\n\n const filteredRows = logs.rows.reduce((result: LogRowModel[], row: LogRowModel, index, list) => {\n if (!hiddenLogLevels.has(row.logLevel)) {\n result.push(row);\n }\n return result;\n }, []);\n\n return {\n ...logs,\n rows: filteredRows,\n };\n}\n\nexport function makeSeriesForLogs(rows: LogRowModel[], intervalMs: number): TimeSeries[] {\n // currently interval is rangeMs / resolution, which is too low for showing series as bars.\n // need at least 10px per bucket, so we multiply interval by 10. Should be solved higher up the chain\n // when executing queries & interval calculated and not here but this is a temporary fix.\n // intervalMs = intervalMs * 10;\n\n // Graph time series by log level\n const seriesByLevel = {};\n const bucketSize = intervalMs * 10;\n const seriesList = [];\n\n for (const row of rows) {\n let series = seriesByLevel[row.logLevel];\n\n if (!series) {\n seriesByLevel[row.logLevel] = series = {\n lastTs: null,\n datapoints: [],\n alias: row.logLevel,\n color: LogLevelColor[row.logLevel],\n };\n\n seriesList.push(series);\n }\n\n // align time to bucket size\n const time = Math.round(row.timeEpochMs / bucketSize) * bucketSize;\n\n // Entry for time\n if (time === series.lastTs) {\n series.datapoints[series.datapoints.length - 1][0]++;\n } else {\n series.datapoints.push([1, time]);\n series.lastTs = time;\n }\n\n // add zero to other levels to aid stacking so each level series has same number of points\n for (const other of seriesList) {\n if (other !== series && other.lastTs !== time) {\n other.datapoints.push([0, time]);\n other.lastTs = time;\n }\n }\n }\n\n return seriesList.map(series => {\n series.datapoints.sort((a, b) => {\n return a[1] - b[1];\n });\n\n return {\n datapoints: series.datapoints,\n target: series.alias,\n alias: series.alias,\n color: series.color,\n };\n });\n}\n","import React, { FC } from 'react';\n\nexport type LayoutMode = LayoutModes.Grid | LayoutModes.List;\n\nexport enum LayoutModes {\n Grid = 'grid',\n List = 'list',\n}\n\ninterface Props {\n mode: LayoutMode;\n onLayoutModeChanged: (mode: LayoutMode) => {};\n}\n\nconst LayoutSelector: FC = props => {\n const { mode, onLayoutModeChanged } = props;\n return (\n
    \n {\n onLayoutModeChanged(LayoutModes.List);\n }}\n className={mode === LayoutModes.List ? 'active' : ''}\n >\n \n \n {\n onLayoutModeChanged(LayoutModes.Grid);\n }}\n className={mode === LayoutModes.Grid ? 'active' : ''}\n >\n \n \n
    \n );\n};\n\nexport default LayoutSelector;\n","import _ from 'lodash';\nimport Remarkable from 'remarkable';\n\nimport config from 'app/core/config';\nimport { profiler } from 'app/core/core';\nimport { Emitter } from 'app/core/core';\nimport getFactors from 'app/core/utils/factors';\nimport {\n duplicatePanel,\n removePanel,\n copyPanel as copyPanelUtil,\n editPanelJson as editPanelJsonUtil,\n sharePanel as sharePanelUtil,\n} from 'app/features/dashboard/utils/panel';\n\nimport { GRID_COLUMN_COUNT, PANEL_HEADER_HEIGHT, PANEL_BORDER } from 'app/core/constants';\n\nexport class PanelCtrl {\n panel: any;\n error: any;\n dashboard: any;\n pluginName: string;\n pluginId: string;\n editorTabs: any;\n $scope: any;\n $injector: any;\n $location: any;\n $timeout: any;\n inspector: any;\n editModeInitiated: boolean;\n height: any;\n containerHeight: any;\n events: Emitter;\n loading: boolean;\n timing: any;\n maxPanelsPerRowOptions: number[];\n\n constructor($scope, $injector) {\n this.$injector = $injector;\n this.$location = $injector.get('$location');\n this.$scope = $scope;\n this.$timeout = $injector.get('$timeout');\n this.editorTabs = [];\n this.events = this.panel.events;\n this.timing = {}; // not used but here to not break plugins\n\n const plugin = config.panels[this.panel.type];\n if (plugin) {\n this.pluginId = plugin.id;\n this.pluginName = plugin.name;\n }\n\n $scope.$on('component-did-mount', () => this.panelDidMount());\n }\n\n panelDidMount() {\n this.events.emit('component-did-mount');\n this.dashboard.panelInitialized(this.panel);\n }\n\n renderingCompleted() {\n profiler.renderingCompleted(this.panel.id);\n }\n\n refresh() {\n this.panel.refresh();\n }\n\n publishAppEvent(evtName, evt) {\n this.$scope.$root.appEvent(evtName, evt);\n }\n\n changeView(fullscreen, edit) {\n this.publishAppEvent('panel-change-view', {\n fullscreen: fullscreen,\n edit: edit,\n panelId: this.panel.id,\n });\n }\n\n viewPanel() {\n this.changeView(true, false);\n }\n\n editPanel() {\n this.changeView(true, true);\n }\n\n exitFullscreen() {\n this.changeView(false, false);\n }\n\n initEditMode() {\n if (!this.editModeInitiated) {\n this.editModeInitiated = true;\n this.events.emit('init-edit-mode', null);\n this.maxPanelsPerRowOptions = getFactors(GRID_COLUMN_COUNT);\n }\n }\n\n addEditorTab(title, directiveFn, index?, icon?) {\n const editorTab = { title, directiveFn, icon };\n\n if (_.isString(directiveFn)) {\n editorTab.directiveFn = () => {\n return { templateUrl: directiveFn };\n };\n }\n\n if (index) {\n this.editorTabs.splice(index, 0, editorTab);\n } else {\n this.editorTabs.push(editorTab);\n }\n }\n\n getMenu() {\n const menu = [];\n menu.push({\n text: 'View',\n click: 'ctrl.viewPanel();',\n icon: 'fa fa-fw fa-eye',\n shortcut: 'v',\n });\n\n if (this.dashboard.meta.canEdit) {\n menu.push({\n text: 'Edit',\n click: 'ctrl.editPanel();',\n role: 'Editor',\n icon: 'fa fa-fw fa-edit',\n shortcut: 'e',\n });\n }\n\n menu.push({\n text: 'Share',\n click: 'ctrl.sharePanel();',\n icon: 'fa fa-fw fa-share',\n shortcut: 'p s',\n });\n\n // Additional items from sub-class\n menu.push(...this.getAdditionalMenuItems());\n\n const extendedMenu = this.getExtendedMenu();\n menu.push({\n text: 'More ...',\n click: '',\n icon: 'fa fa-fw fa-cube',\n submenu: extendedMenu,\n });\n\n if (this.dashboard.meta.canEdit) {\n menu.push({ divider: true, role: 'Editor' });\n menu.push({\n text: 'Remove',\n click: 'ctrl.removePanel();',\n role: 'Editor',\n icon: 'fa fa-fw fa-trash',\n shortcut: 'p r',\n });\n }\n\n return menu;\n }\n\n getExtendedMenu() {\n const menu = [];\n if (!this.panel.fullscreen && this.dashboard.meta.canEdit) {\n menu.push({\n text: 'Duplicate',\n click: 'ctrl.duplicate()',\n role: 'Editor',\n shortcut: 'p d',\n });\n\n menu.push({\n text: 'Copy',\n click: 'ctrl.copyPanel()',\n role: 'Editor',\n });\n }\n\n menu.push({\n text: 'Panel JSON',\n click: 'ctrl.editPanelJson(); dismiss();',\n });\n\n this.events.emit('init-panel-actions', menu);\n return menu;\n }\n\n // Override in sub-class to add items before extended menu\n getAdditionalMenuItems() {\n return [];\n }\n\n otherPanelInFullscreenMode() {\n return this.dashboard.meta.fullscreen && !this.panel.fullscreen;\n }\n\n calculatePanelHeight(containerHeight) {\n this.containerHeight = containerHeight;\n this.height = this.containerHeight - (PANEL_BORDER + PANEL_HEADER_HEIGHT);\n }\n\n render(payload?) {\n this.events.emit('render', payload);\n }\n\n duplicate() {\n duplicatePanel(this.dashboard, this.panel);\n }\n\n removePanel() {\n removePanel(this.dashboard, this.panel, true);\n }\n\n editPanelJson() {\n editPanelJsonUtil(this.dashboard, this.panel);\n }\n\n copyPanel() {\n copyPanelUtil(this.panel);\n }\n\n sharePanel() {\n sharePanelUtil(this.dashboard, this.panel);\n }\n\n getInfoMode() {\n if (this.error) {\n return 'error';\n }\n if (!!this.panel.description) {\n return 'info';\n }\n if (this.panel.links && this.panel.links.length) {\n return 'links';\n }\n return '';\n }\n\n getInfoContent(options) {\n let markdown = this.panel.description;\n\n if (options.mode === 'tooltip') {\n markdown = this.error || this.panel.description;\n }\n\n const linkSrv = this.$injector.get('linkSrv');\n const sanitize = this.$injector.get('$sanitize');\n const templateSrv = this.$injector.get('templateSrv');\n const interpolatedMarkdown = templateSrv.replace(markdown, this.panel.scopedVars);\n let html = '
    ';\n\n html += new Remarkable().render(interpolatedMarkdown);\n\n if (this.panel.links && this.panel.links.length > 0) {\n html += '
      ';\n for (const link of this.panel.links) {\n const info = linkSrv.getPanelLinkAnchorInfo(link, this.panel.scopedVars);\n html +=\n '
    • ' +\n info.title +\n '
    • ';\n }\n html += '
    ';\n }\n\n html += '
    ';\n return sanitize(html);\n }\n}\n","import _ from 'lodash';\n\nimport kbn from 'app/core/utils/kbn';\n\nimport { PanelCtrl } from 'app/features/panel/panel_ctrl';\nimport { getExploreUrl } from 'app/core/utils/explore';\nimport { applyPanelTimeOverrides, getResolution } from 'app/features/dashboard/utils/panel';\nimport { ContextSrv } from 'app/core/services/context_srv';\n\nclass MetricsPanelCtrl extends PanelCtrl {\n scope: any;\n datasource: any;\n $q: any;\n $timeout: any;\n contextSrv: ContextSrv;\n datasourceSrv: any;\n timeSrv: any;\n templateSrv: any;\n range: any;\n interval: any;\n intervalMs: any;\n resolution: any;\n timeInfo: any;\n skipDataOnInit: boolean;\n dataStream: any;\n dataSubscription: any;\n dataList: any;\n\n constructor($scope, $injector) {\n super($scope, $injector);\n\n this.$q = $injector.get('$q');\n this.contextSrv = $injector.get('contextSrv');\n this.datasourceSrv = $injector.get('datasourceSrv');\n this.timeSrv = $injector.get('timeSrv');\n this.templateSrv = $injector.get('templateSrv');\n this.scope = $scope;\n this.panel.datasource = this.panel.datasource || null;\n\n this.events.on('refresh', this.onMetricsPanelRefresh.bind(this));\n this.events.on('panel-teardown', this.onPanelTearDown.bind(this));\n }\n\n private onPanelTearDown() {\n if (this.dataSubscription) {\n this.dataSubscription.unsubscribe();\n this.dataSubscription = null;\n }\n }\n\n private onMetricsPanelRefresh() {\n // ignore fetching data if another panel is in fullscreen\n if (this.otherPanelInFullscreenMode()) {\n return;\n }\n\n // if we have snapshot data use that\n if (this.panel.snapshotData) {\n this.updateTimeRange();\n let data = this.panel.snapshotData;\n // backward compatibility\n if (!_.isArray(data)) {\n data = data.data;\n }\n\n // Defer panel rendering till the next digest cycle.\n // For some reason snapshot panels don't init at this time, so this helps to avoid rendering issues.\n return this.$timeout(() => {\n this.events.emit('data-snapshot-load', data);\n });\n }\n\n // // ignore if we have data stream\n if (this.dataStream) {\n return;\n }\n\n // clear loading/error state\n delete this.error;\n this.loading = true;\n\n // load datasource service\n this.datasourceSrv\n .get(this.panel.datasource, this.panel.scopedVars)\n .then(this.updateTimeRange.bind(this))\n .then(this.issueQueries.bind(this))\n .then(this.handleQueryResult.bind(this))\n .catch(err => {\n // if canceled keep loading set to true\n if (err.cancelled) {\n console.log('Panel request cancelled', err);\n return;\n }\n\n this.loading = false;\n this.error = err.message || 'Request Error';\n this.inspector = { error: err };\n\n if (err.data) {\n if (err.data.message) {\n this.error = err.data.message;\n }\n if (err.data.error) {\n this.error = err.data.error;\n }\n }\n\n this.events.emit('data-error', err);\n console.log('Panel data error:', err);\n });\n }\n\n updateTimeRange(datasource?) {\n this.datasource = datasource || this.datasource;\n this.range = this.timeSrv.timeRange();\n this.resolution = getResolution(this.panel);\n\n const newTimeData = applyPanelTimeOverrides(this.panel, this.range);\n this.timeInfo = newTimeData.timeInfo;\n this.range = newTimeData.timeRange;\n\n this.calculateInterval();\n\n return this.datasource;\n }\n\n calculateInterval() {\n let intervalOverride = this.panel.interval;\n\n // if no panel interval check datasource\n if (intervalOverride) {\n intervalOverride = this.templateSrv.replace(intervalOverride, this.panel.scopedVars);\n } else if (this.datasource && this.datasource.interval) {\n intervalOverride = this.datasource.interval;\n }\n\n const res = kbn.calculateInterval(this.range, this.resolution, intervalOverride);\n this.interval = res.interval;\n this.intervalMs = res.intervalMs;\n }\n\n issueQueries(datasource) {\n this.datasource = datasource;\n\n if (!this.panel.targets || this.panel.targets.length === 0) {\n return this.$q.when([]);\n }\n\n // make shallow copy of scoped vars,\n // and add built in variables interval and interval_ms\n const scopedVars = Object.assign({}, this.panel.scopedVars, {\n __interval: { text: this.interval, value: this.interval },\n __interval_ms: { text: this.intervalMs, value: this.intervalMs },\n });\n\n const metricsQuery = {\n timezone: this.dashboard.getTimezone(),\n panelId: this.panel.id,\n dashboardId: this.dashboard.id,\n range: this.range,\n rangeRaw: this.range.raw,\n interval: this.interval,\n intervalMs: this.intervalMs,\n targets: this.panel.targets,\n maxDataPoints: this.resolution,\n scopedVars: scopedVars,\n cacheTimeout: this.panel.cacheTimeout,\n };\n\n return datasource.query(metricsQuery);\n }\n\n handleQueryResult(result) {\n this.loading = false;\n\n // check for if data source returns subject\n if (result && result.subscribe) {\n this.handleDataStream(result);\n return;\n }\n\n if (this.dashboard.snapshot) {\n this.panel.snapshotData = result.data;\n }\n\n if (!result || !result.data) {\n console.log('Data source query result invalid, missing data field:', result);\n result = { data: [] };\n }\n\n this.events.emit('data-received', result.data);\n }\n\n handleDataStream(stream) {\n // if we already have a connection\n if (this.dataStream) {\n console.log('two stream observables!');\n return;\n }\n\n this.dataStream = stream;\n this.dataSubscription = stream.subscribe({\n next: data => {\n console.log('dataSubject next!');\n if (data.range) {\n this.range = data.range;\n }\n this.events.emit('data-received', data.data);\n },\n error: error => {\n this.events.emit('data-error', error);\n console.log('panel: observer got error');\n },\n complete: () => {\n console.log('panel: observer got complete');\n this.dataStream = null;\n },\n });\n }\n\n getAdditionalMenuItems() {\n const items = [];\n if (this.contextSrv.hasAccessToExplore() && this.datasource) {\n items.push({\n text: 'Explore',\n click: 'ctrl.explore();',\n icon: 'gicon gicon-explore',\n shortcut: 'x',\n });\n }\n return items;\n }\n\n async explore() {\n const url = await getExploreUrl(this.panel, this.panel.targets, this.datasource, this.datasourceSrv, this.timeSrv);\n if (url) {\n this.$timeout(() => this.$location.url(url));\n }\n }\n}\n\nexport { MetricsPanelCtrl };\n","import { PanelCtrl } from 'app/features/panel/panel_ctrl';\nimport { MetricsPanelCtrl } from 'app/features/panel/metrics_panel_ctrl';\nimport { QueryCtrl } from 'app/features/panel/query_ctrl';\nimport { alertTab } from 'app/features/alerting/AlertTabCtrl';\nimport { loadPluginCss } from 'app/features/plugins/plugin_loader';\n\nexport { PanelCtrl, MetricsPanelCtrl, QueryCtrl, alertTab, loadPluginCss };\n","// Copyright (c) 2014, Hugh Kennedy\n// Based on code from https://github.com/hughsk/flat/blob/master/index.js\n//\nexport default function flatten(target, opts): any {\n opts = opts || {};\n\n const delimiter = opts.delimiter || '.';\n let maxDepth = opts.maxDepth || 3;\n let currentDepth = 1;\n const output = {};\n\n function step(object, prev) {\n Object.keys(object).forEach(key => {\n const value = object[key];\n const isarray = opts.safe && Array.isArray(value);\n const type = Object.prototype.toString.call(value);\n const isobject = type === '[object Object]';\n\n const newKey = prev ? prev + delimiter + key : key;\n\n if (!opts.maxDepth) {\n maxDepth = currentDepth + 1;\n }\n\n if (!isarray && isobject && Object.keys(value).length && currentDepth < maxDepth) {\n ++currentDepth;\n return step(value, newKey);\n }\n\n output[newKey] = value;\n });\n }\n\n step(target, null);\n\n return output;\n}\n","import _ from 'lodash';\n\nconst versionPattern = /^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-([0-9A-Za-z\\.]+))?/;\n\nexport class SemVersion {\n major: number;\n minor: number;\n patch: number;\n meta: string;\n\n constructor(version: string) {\n const match = versionPattern.exec(version);\n if (match) {\n this.major = Number(match[1]);\n this.minor = Number(match[2] || 0);\n this.patch = Number(match[3] || 0);\n this.meta = match[4];\n }\n }\n\n isGtOrEq(version: string): boolean {\n const compared = new SemVersion(version);\n\n for (let i = 0; i < this.comparable.length; ++i) {\n if (this.comparable[i] > compared.comparable[i]) {\n return true;\n }\n if (this.comparable[i] < compared.comparable[i]) {\n return false;\n }\n }\n return true;\n }\n\n isValid(): boolean {\n return _.isNumber(this.major);\n }\n\n get comparable() {\n return [this.major, this.minor, this.patch];\n }\n}\n\nexport function isVersionGtOrEq(a: string, b: string): boolean {\n const aSemver = new SemVersion(a);\n return aSemver.isGtOrEq(b);\n}\n","import _ from 'lodash';\nimport { isVersionGtOrEq } from 'app/core/utils/version';\nimport { InterpolateFunction } from '@grafana/ui';\n\nconst index = {};\n\nfunction addFuncDef(funcDef) {\n funcDef.params = funcDef.params || [];\n funcDef.defaultParams = funcDef.defaultParams || [];\n\n index[funcDef.name] = funcDef;\n if (funcDef.shortName) {\n index[funcDef.shortName] = funcDef;\n }\n}\n\nconst optionalSeriesRefArgs = [{ name: 'other', type: 'value_or_series', optional: true, multiple: true }];\n\naddFuncDef({\n name: 'scaleToSeconds',\n category: 'Transform',\n params: [{ name: 'seconds', type: 'int' }],\n defaultParams: [1],\n});\n\naddFuncDef({\n name: 'perSecond',\n category: 'Transform',\n params: [{ name: 'max value', type: 'int', optional: true }],\n defaultParams: [],\n});\n\naddFuncDef({\n name: 'holtWintersForecast',\n category: 'Calculate',\n});\n\naddFuncDef({\n name: 'holtWintersConfidenceBands',\n category: 'Calculate',\n params: [{ name: 'delta', type: 'int' }],\n defaultParams: [3],\n});\n\naddFuncDef({\n name: 'holtWintersAberration',\n category: 'Calculate',\n params: [{ name: 'delta', type: 'int' }],\n defaultParams: [3],\n});\n\naddFuncDef({\n name: 'nPercentile',\n category: 'Calculate',\n params: [{ name: 'Nth percentile', type: 'int' }],\n defaultParams: [95],\n});\n\naddFuncDef({\n name: 'diffSeries',\n params: optionalSeriesRefArgs,\n defaultParams: ['#A'],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'stddevSeries',\n params: optionalSeriesRefArgs,\n defaultParams: [''],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'divideSeries',\n params: optionalSeriesRefArgs,\n defaultParams: ['#A'],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'multiplySeries',\n params: optionalSeriesRefArgs,\n defaultParams: ['#A'],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'asPercent',\n params: optionalSeriesRefArgs,\n defaultParams: ['#A'],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'group',\n params: optionalSeriesRefArgs,\n defaultParams: ['#A', '#B'],\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'sumSeries',\n shortName: 'sum',\n category: 'Combine',\n params: optionalSeriesRefArgs,\n defaultParams: [''],\n});\n\naddFuncDef({\n name: 'averageSeries',\n shortName: 'avg',\n category: 'Combine',\n params: optionalSeriesRefArgs,\n defaultParams: [''],\n});\n\naddFuncDef({\n name: 'rangeOfSeries',\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'percentileOfSeries',\n category: 'Combine',\n params: [{ name: 'n', type: 'int' }, { name: 'interpolate', type: 'boolean', options: ['true', 'false'] }],\n defaultParams: [95, 'false'],\n});\n\naddFuncDef({\n name: 'sumSeriesWithWildcards',\n category: 'Combine',\n params: [{ name: 'node', type: 'int', multiple: true }],\n defaultParams: [3],\n});\n\naddFuncDef({\n name: 'maxSeries',\n shortName: 'max',\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'minSeries',\n shortName: 'min',\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'averageSeriesWithWildcards',\n category: 'Combine',\n params: [{ name: 'node', type: 'int', multiple: true }],\n defaultParams: [3],\n});\n\naddFuncDef({\n name: 'alias',\n category: 'Alias',\n params: [{ name: 'alias', type: 'string' }],\n defaultParams: ['alias'],\n});\n\naddFuncDef({\n name: 'aliasSub',\n category: 'Alias',\n params: [{ name: 'search', type: 'string' }, { name: 'replace', type: 'string' }],\n defaultParams: ['', '\\\\1'],\n});\n\naddFuncDef({\n name: 'consolidateBy',\n category: 'Special',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['sum', 'average', 'min', 'max'],\n },\n ],\n defaultParams: ['max'],\n});\n\naddFuncDef({\n name: 'cumulative',\n category: 'Special',\n params: [],\n defaultParams: [],\n});\n\naddFuncDef({\n name: 'groupByNode',\n category: 'Combine',\n params: [\n {\n name: 'node',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n },\n {\n name: 'function',\n type: 'string',\n options: ['sum', 'avg', 'maxSeries'],\n },\n ],\n defaultParams: [3, 'sum'],\n});\n\naddFuncDef({\n name: 'aliasByNode',\n category: 'Alias',\n params: [\n {\n name: 'node',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n multiple: true,\n },\n ],\n defaultParams: [3],\n});\n\naddFuncDef({\n name: 'substr',\n category: 'Special',\n params: [\n {\n name: 'start',\n type: 'int',\n options: [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n },\n {\n name: 'stop',\n type: 'int',\n options: [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n },\n ],\n defaultParams: [0, 0],\n});\n\naddFuncDef({\n name: 'sortByName',\n category: 'Sorting',\n params: [\n {\n name: 'natural',\n type: 'boolean',\n options: ['true', 'false'],\n optional: true,\n },\n ],\n defaultParams: ['false'],\n});\n\naddFuncDef({\n name: 'sortByMaxima',\n category: 'Sorting',\n});\n\naddFuncDef({\n name: 'sortByMinima',\n category: 'Sorting',\n});\n\naddFuncDef({\n name: 'sortByTotal',\n category: 'Sorting',\n});\n\naddFuncDef({\n name: 'aliasByMetric',\n category: 'Alias',\n});\n\naddFuncDef({\n name: 'randomWalk',\n fake: true,\n category: 'Special',\n params: [{ name: 'name', type: 'string' }],\n defaultParams: ['randomWalk'],\n});\n\naddFuncDef({\n name: 'countSeries',\n category: 'Combine',\n});\n\naddFuncDef({\n name: 'constantLine',\n category: 'Special',\n params: [{ name: 'value', type: 'int' }],\n defaultParams: [10],\n});\n\naddFuncDef({\n name: 'cactiStyle',\n category: 'Special',\n});\n\naddFuncDef({\n name: 'keepLastValue',\n category: 'Transform',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [100],\n});\n\naddFuncDef({\n name: 'changed',\n category: 'Special',\n params: [],\n defaultParams: [],\n});\n\naddFuncDef({\n name: 'scale',\n category: 'Transform',\n params: [{ name: 'factor', type: 'int' }],\n defaultParams: [1],\n});\n\naddFuncDef({\n name: 'offset',\n category: 'Transform',\n params: [{ name: 'amount', type: 'int' }],\n defaultParams: [10],\n});\n\naddFuncDef({\n name: 'transformNull',\n category: 'Transform',\n params: [{ name: 'amount', type: 'int' }],\n defaultParams: [0],\n});\n\naddFuncDef({\n name: 'integral',\n category: 'Transform',\n});\n\naddFuncDef({\n name: 'derivative',\n category: 'Transform',\n});\n\naddFuncDef({\n name: 'nonNegativeDerivative',\n category: 'Transform',\n params: [{ name: 'max value or 0', type: 'int', optional: true }],\n defaultParams: [''],\n});\n\naddFuncDef({\n name: 'timeShift',\n category: 'Transform',\n params: [\n {\n name: 'amount',\n type: 'select',\n options: ['1h', '6h', '12h', '1d', '2d', '7d', '14d', '30d'],\n },\n ],\n defaultParams: ['1d'],\n});\n\naddFuncDef({\n name: 'timeStack',\n category: 'Transform',\n params: [\n {\n name: 'timeShiftUnit',\n type: 'select',\n options: ['1h', '6h', '12h', '1d', '2d', '7d', '14d', '30d'],\n },\n { name: 'timeShiftStart', type: 'int' },\n { name: 'timeShiftEnd', type: 'int' },\n ],\n defaultParams: ['1d', 0, 7],\n});\n\naddFuncDef({\n name: 'summarize',\n category: 'Transform',\n params: [\n { name: 'interval', type: 'string' },\n {\n name: 'func',\n type: 'select',\n options: ['sum', 'avg', 'min', 'max', 'last'],\n },\n {\n name: 'alignToFrom',\n type: 'boolean',\n optional: true,\n options: ['false', 'true'],\n },\n ],\n defaultParams: ['1h', 'sum', 'false'],\n});\n\naddFuncDef({\n name: 'smartSummarize',\n category: 'Transform',\n params: [\n { name: 'interval', type: 'string' },\n {\n name: 'func',\n type: 'select',\n options: ['sum', 'avg', 'min', 'max', 'last'],\n },\n ],\n defaultParams: ['1h', 'sum'],\n});\n\naddFuncDef({\n name: 'absolute',\n category: 'Transform',\n});\n\naddFuncDef({\n name: 'hitcount',\n category: 'Transform',\n params: [{ name: 'interval', type: 'string' }],\n defaultParams: ['10s'],\n});\n\naddFuncDef({\n name: 'log',\n category: 'Transform',\n params: [{ name: 'base', type: 'int' }],\n defaultParams: ['10'],\n});\n\naddFuncDef({\n name: 'averageAbove',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [25],\n});\n\naddFuncDef({\n name: 'averageBelow',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [25],\n});\n\naddFuncDef({\n name: 'currentAbove',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [25],\n});\n\naddFuncDef({\n name: 'currentBelow',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [25],\n});\n\naddFuncDef({\n name: 'maximumAbove',\n category: 'Filter Series',\n params: [{ name: 'value', type: 'int' }],\n defaultParams: [0],\n});\n\naddFuncDef({\n name: 'maximumBelow',\n category: 'Filter Series',\n params: [{ name: 'value', type: 'int' }],\n defaultParams: [0],\n});\n\naddFuncDef({\n name: 'minimumAbove',\n category: 'Filter Series',\n params: [{ name: 'value', type: 'int' }],\n defaultParams: [0],\n});\n\naddFuncDef({\n name: 'minimumBelow',\n category: 'Filter Series',\n params: [{ name: 'value', type: 'int' }],\n defaultParams: [0],\n});\n\naddFuncDef({\n name: 'limit',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'mostDeviant',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [10],\n});\n\naddFuncDef({\n name: 'exclude',\n category: 'Filter Series',\n params: [{ name: 'exclude', type: 'string' }],\n defaultParams: ['exclude'],\n});\n\naddFuncDef({\n name: 'highestCurrent',\n category: 'Filter Series',\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'highestMax',\n category: 'Filter Series',\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'lowestCurrent',\n category: 'Filter Series',\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'movingAverage',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: [10],\n});\n\naddFuncDef({\n name: 'movingMedian',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: ['5'],\n});\n\naddFuncDef({\n name: 'stdev',\n category: 'Calculate',\n params: [{ name: 'n', type: 'int' }, { name: 'tolerance', type: 'int' }],\n defaultParams: [5, 0.1],\n});\n\naddFuncDef({\n name: 'highestAverage',\n category: 'Filter Series',\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'lowestAverage',\n category: 'Filter Series',\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'removeAbovePercentile',\n category: 'Filter Data',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'removeAboveValue',\n category: 'Filter Data',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'removeBelowPercentile',\n category: 'Filter Data',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'removeBelowValue',\n category: 'Filter Data',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [5],\n});\n\naddFuncDef({\n name: 'useSeriesAbove',\n category: 'Filter Series',\n params: [{ name: 'value', type: 'int' }, { name: 'search', type: 'string' }, { name: 'replace', type: 'string' }],\n defaultParams: [0, 'search', 'replace'],\n});\n\n////////////////////\n// Graphite 1.0.x //\n////////////////////\n\naddFuncDef({\n name: 'aggregateLine',\n category: 'Calculate',\n params: [\n {\n name: 'func',\n type: 'select',\n options: ['sum', 'avg', 'min', 'max', 'last'],\n },\n ],\n defaultParams: ['avg'],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'averageOutsidePercentile',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [95],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'delay',\n category: 'Transform',\n params: [{ name: 'steps', type: 'int' }],\n defaultParams: [1],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'exponentialMovingAverage',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: [10],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'fallbackSeries',\n category: 'Special',\n params: [{ name: 'fallback', type: 'string' }],\n defaultParams: ['constantLine(0)'],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'grep',\n category: 'Filter Series',\n params: [{ name: 'grep', type: 'string' }],\n defaultParams: ['grep'],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'groupByNodes',\n category: 'Combine',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['sum', 'avg', 'maxSeries'],\n },\n {\n name: 'node',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n multiple: true,\n },\n ],\n defaultParams: ['sum', 3],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'integralByInterval',\n category: 'Transform',\n params: [\n {\n name: 'intervalUnit',\n type: 'select',\n options: ['1h', '6h', '12h', '1d', '2d', '7d', '14d', '30d'],\n },\n ],\n defaultParams: ['1d'],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'interpolate',\n category: 'Transform',\n params: [{ name: 'limit', type: 'int', optional: true }],\n defaultParams: [],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'invert',\n category: 'Transform',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'isNonNull',\n category: 'Combine',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'linearRegression',\n category: 'Calculate',\n params: [\n {\n name: 'startSourceAt',\n type: 'select',\n options: ['-1h', '-6h', '-12h', '-1d', '-2d', '-7d', '-14d', '-30d'],\n optional: true,\n },\n {\n name: 'endSourceAt',\n type: 'select',\n options: ['-1h', '-6h', '-12h', '-1d', '-2d', '-7d', '-14d', '-30d'],\n optional: true,\n },\n ],\n defaultParams: [],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'mapSeries',\n shortName: 'map',\n params: [{ name: 'node', type: 'int' }],\n defaultParams: [3],\n category: 'Combine',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'movingMin',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: [10],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'movingMax',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: [10],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'movingSum',\n category: 'Calculate',\n params: [\n {\n name: 'windowSize',\n type: 'int_or_interval',\n options: ['5', '7', '10', '5min', '10min', '30min', '1hour'],\n },\n ],\n defaultParams: [10],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'multiplySeriesWithWildcards',\n category: 'Combine',\n params: [\n {\n name: 'position',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n multiple: true,\n },\n ],\n defaultParams: [2],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'offsetToZero',\n category: 'Transform',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'pow',\n category: 'Transform',\n params: [{ name: 'factor', type: 'int' }],\n defaultParams: [10],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'powSeries',\n category: 'Transform',\n params: optionalSeriesRefArgs,\n defaultParams: [''],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'reduceSeries',\n shortName: 'reduce',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['asPercent', 'diffSeries', 'divideSeries'],\n },\n {\n name: 'reduceNode',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n },\n { name: 'reduceMatchers', type: 'string', multiple: true },\n ],\n defaultParams: ['asPercent', 2, 'used_bytes'],\n category: 'Combine',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'removeBetweenPercentile',\n category: 'Filter Series',\n params: [{ name: 'n', type: 'int' }],\n defaultParams: [95],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'removeEmptySeries',\n category: 'Filter Series',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'squareRoot',\n category: 'Transform',\n version: '1.0',\n});\n\naddFuncDef({\n name: 'timeSlice',\n category: 'Transform',\n params: [\n {\n name: 'startSliceAt',\n type: 'select',\n options: ['-1h', '-6h', '-12h', '-1d', '-2d', '-7d', '-14d', '-30d'],\n },\n {\n name: 'endSliceAt',\n type: 'select',\n options: ['-1h', '-6h', '-12h', '-1d', '-2d', '-7d', '-14d', '-30d'],\n optional: true,\n },\n ],\n defaultParams: ['-1h'],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'weightedAverage',\n category: 'Combine',\n params: [\n { name: 'other', type: 'value_or_series', optional: true },\n {\n name: 'node',\n type: 'int',\n options: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12],\n },\n ],\n defaultParams: ['#A', 4],\n version: '1.0',\n});\n\naddFuncDef({\n name: 'seriesByTag',\n category: 'Special',\n params: [{ name: 'tagExpression', type: 'string', multiple: true }],\n version: '1.1',\n});\n\naddFuncDef({\n name: 'groupByTags',\n category: 'Combine',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['sum', 'avg', 'maxSeries'],\n },\n { name: 'tag', type: 'string', multiple: true },\n ],\n defaultParams: ['sum', 'tag'],\n version: '1.1',\n});\n\naddFuncDef({\n name: 'aliasByTags',\n category: 'Alias',\n params: [{ name: 'tag', type: 'string', multiple: true }],\n defaultParams: ['tag'],\n version: '1.1',\n});\n\nfunction isVersionRelatedFunction(obj, graphiteVersion) {\n return !obj.version || isVersionGtOrEq(graphiteVersion, obj.version);\n}\n\nexport class FuncInstance {\n def: any;\n params: any;\n text: any;\n added: boolean;\n\n constructor(funcDef, options) {\n this.def = funcDef;\n this.params = [];\n\n if (options && options.withDefaultParams) {\n this.params = funcDef.defaultParams.slice(0);\n }\n\n this.updateText();\n }\n\n render(metricExp: string, replaceVariables: InterpolateFunction): string {\n const str = this.def.name + '(';\n\n const parameters = _.map(this.params, (value, index) => {\n let paramType;\n\n if (index < this.def.params.length) {\n paramType = this.def.params[index].type;\n } else if (_.get(_.last(this.def.params), 'multiple')) {\n paramType = _.get(_.last(this.def.params), 'type');\n }\n\n // param types that should never be quoted\n if (_.includes(['value_or_series', 'boolean', 'int', 'float', 'node'], paramType)) {\n return value;\n }\n\n const valueInterpolated = _.isString(value) ? replaceVariables(value) : value;\n\n // param types that might be quoted\n // To quote variables correctly we need to interpolate it to check if it contains a numeric or string value\n if (_.includes(['int_or_interval', 'node_or_tag'], paramType) && _.isFinite(+valueInterpolated)) {\n return _.toString(value);\n }\n\n return \"'\" + value + \"'\";\n });\n\n // don't send any blank parameters to graphite\n while (parameters[parameters.length - 1] === '') {\n parameters.pop();\n }\n\n if (metricExp) {\n parameters.unshift(metricExp);\n }\n\n return str + parameters.join(', ') + ')';\n }\n\n _hasMultipleParamsInString(strValue, index) {\n if (strValue.indexOf(',') === -1) {\n return false;\n }\n\n if (this.def.params[index + 1] && this.def.params[index + 1].optional) {\n return true;\n }\n\n if (index + 1 >= this.def.params.length && _.get(_.last(this.def.params), 'multiple')) {\n return true;\n }\n\n return false;\n }\n\n updateParam(strValue, index) {\n // handle optional parameters\n // if string contains ',' and next param is optional, split and update both\n if (this._hasMultipleParamsInString(strValue, index)) {\n _.each(strValue.split(','), (partVal, idx) => {\n this.updateParam(partVal.trim(), index + idx);\n });\n return;\n }\n\n if (strValue === '' && (index >= this.def.params.length || this.def.params[index].optional)) {\n this.params.splice(index, 1);\n } else {\n this.params[index] = strValue;\n }\n\n this.updateText();\n }\n\n updateText() {\n if (this.params.length === 0) {\n this.text = this.def.name + '()';\n return;\n }\n\n let text = this.def.name + '(';\n text += this.params.join(', ');\n text += ')';\n this.text = text;\n }\n}\n\nfunction createFuncInstance(funcDef, options?, idx?) {\n if (_.isString(funcDef)) {\n funcDef = getFuncDef(funcDef, idx);\n }\n return new FuncInstance(funcDef, options);\n}\n\nfunction getFuncDef(name, idx?) {\n if (!(idx || index)[name]) {\n throw { message: 'Method not found ' + name };\n }\n return (idx || index)[name];\n}\n\nfunction getFuncDefs(graphiteVersion, idx?) {\n const funcs = {};\n _.forEach(idx || index, funcDef => {\n if (isVersionRelatedFunction(funcDef, graphiteVersion)) {\n funcs[funcDef.name] = _.assign({}, funcDef, {\n params: _.filter(funcDef.params, param => {\n return isVersionRelatedFunction(param, graphiteVersion);\n }),\n });\n }\n });\n return funcs;\n}\n\n// parse response from graphite /functions endpoint into internal format\nfunction parseFuncDefs(rawDefs) {\n const funcDefs = {};\n\n _.forEach(rawDefs || {}, (funcDef, funcName) => {\n // skip graphite graph functions\n if (funcDef.group === 'Graph') {\n return;\n }\n\n let description = funcDef.description;\n if (description) {\n // tidy up some pydoc syntax that rst2html can't handle\n description = description\n .replace(/:py:func:`(.+)( <[^>]*>)?`/g, '``$1``')\n .replace(/.. seealso:: /g, 'See also: ')\n .replace(/.. code-block *:: *none/g, '.. code-block::');\n }\n\n const func = {\n name: funcDef.name,\n description: description,\n category: funcDef.group,\n params: [],\n defaultParams: [],\n fake: false,\n };\n\n // get rid of the first \"seriesList\" param\n if (/^seriesLists?$/.test(_.get(funcDef, 'params[0].type', ''))) {\n // handle functions that accept multiple seriesLists\n // we leave the param in place but mark it optional, so users can add more series if they wish\n if (funcDef.params[0].multiple) {\n funcDef.params[0].required = false;\n // otherwise chop off the first param, it'll be handled separately\n } else {\n funcDef.params.shift();\n }\n // tag function as fake\n } else {\n func.fake = true;\n }\n\n _.forEach(funcDef.params, rawParam => {\n const param = {\n name: rawParam.name,\n type: 'string',\n optional: !rawParam.required,\n multiple: !!rawParam.multiple,\n options: undefined,\n };\n\n if (rawParam.default !== undefined) {\n func.defaultParams.push(_.toString(rawParam.default));\n } else if (rawParam.suggestions) {\n func.defaultParams.push(_.toString(rawParam.suggestions[0]));\n } else {\n func.defaultParams.push('');\n }\n\n if (rawParam.type === 'boolean') {\n param.type = 'boolean';\n param.options = ['true', 'false'];\n } else if (rawParam.type === 'integer') {\n param.type = 'int';\n } else if (rawParam.type === 'float') {\n param.type = 'float';\n } else if (rawParam.type === 'node') {\n param.type = 'node';\n param.options = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];\n } else if (rawParam.type === 'nodeOrTag') {\n param.type = 'node_or_tag';\n param.options = ['name', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];\n } else if (rawParam.type === 'intOrInterval') {\n param.type = 'int_or_interval';\n } else if (rawParam.type === 'seriesList') {\n param.type = 'value_or_series';\n }\n\n if (rawParam.options) {\n param.options = _.map(rawParam.options, _.toString);\n } else if (rawParam.suggestions) {\n param.options = _.map(rawParam.suggestions, _.toString);\n }\n\n func.params.push(param);\n });\n\n funcDefs[funcName] = func;\n });\n\n return funcDefs;\n}\n\nexport default {\n createFuncInstance: createFuncInstance,\n getFuncDef: getFuncDef,\n getFuncDefs: getFuncDefs,\n parseFuncDefs: parseFuncDefs,\n};\n","import _ from 'lodash';\nimport * as dateMath from 'app/core/utils/datemath';\nimport { isVersionGtOrEq, SemVersion } from 'app/core/utils/version';\nimport gfunc from './gfunc';\n\n/** @ngInject */\nexport function GraphiteDatasource(this: any, instanceSettings, $q, backendSrv, templateSrv) {\n this.basicAuth = instanceSettings.basicAuth;\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.graphiteVersion = instanceSettings.jsonData.graphiteVersion || '0.9';\n this.supportsTags = supportsTags(this.graphiteVersion);\n this.cacheTimeout = instanceSettings.cacheTimeout;\n this.withCredentials = instanceSettings.withCredentials;\n this.render_method = instanceSettings.render_method || 'POST';\n this.funcDefs = null;\n this.funcDefsPromise = null;\n\n this.getQueryOptionsInfo = () => {\n return {\n maxDataPoints: true,\n cacheTimeout: true,\n links: [\n {\n text: 'Help',\n url: 'http://docs.grafana.org/features/datasources/graphite/#using-graphite-in-grafana',\n },\n ],\n };\n };\n\n this.query = function(options) {\n const graphOptions = {\n from: this.translateTime(options.rangeRaw.from, false, options.timezone),\n until: this.translateTime(options.rangeRaw.to, true, options.timezone),\n targets: options.targets,\n format: options.format,\n cacheTimeout: options.cacheTimeout || this.cacheTimeout,\n maxDataPoints: options.maxDataPoints,\n };\n\n const params = this.buildGraphiteParams(graphOptions, options.scopedVars);\n if (params.length === 0) {\n return $q.when({ data: [] });\n }\n\n const httpOptions: any = {\n method: 'POST',\n url: '/render',\n data: params.join('&'),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n this.addTracingHeaders(httpOptions, options);\n\n if (options.panelId) {\n httpOptions.requestId = this.name + '.panelId.' + options.panelId;\n }\n\n return this.doGraphiteRequest(httpOptions).then(this.convertDataPointsToMs);\n };\n\n this.addTracingHeaders = function(httpOptions, options) {\n const proxyMode = !this.url.match(/^http/);\n if (proxyMode) {\n httpOptions.headers['X-Dashboard-Id'] = options.dashboardId;\n httpOptions.headers['X-Panel-Id'] = options.panelId;\n }\n };\n\n this.convertDataPointsToMs = result => {\n if (!result || !result.data) {\n return [];\n }\n for (let i = 0; i < result.data.length; i++) {\n const series = result.data[i];\n for (let y = 0; y < series.datapoints.length; y++) {\n series.datapoints[y][1] *= 1000;\n }\n }\n return result;\n };\n\n this.parseTags = tagString => {\n let tags = [];\n tags = tagString.split(',');\n if (tags.length === 1) {\n tags = tagString.split(' ');\n if (tags[0] === '') {\n tags = [];\n }\n }\n return tags;\n };\n\n this.annotationQuery = function(options) {\n // Graphite metric as annotation\n if (options.annotation.target) {\n const target = templateSrv.replace(options.annotation.target, {}, 'glob');\n const graphiteQuery = {\n rangeRaw: options.rangeRaw,\n targets: [{ target: target }],\n format: 'json',\n maxDataPoints: 100,\n };\n\n return this.query(graphiteQuery).then(result => {\n const list = [];\n\n for (let i = 0; i < result.data.length; i++) {\n const target = result.data[i];\n\n for (let y = 0; y < target.datapoints.length; y++) {\n const datapoint = target.datapoints[y];\n if (!datapoint[0]) {\n continue;\n }\n\n list.push({\n annotation: options.annotation,\n time: datapoint[1],\n title: target.target,\n });\n }\n }\n\n return list;\n });\n } else {\n // Graphite event as annotation\n const tags = templateSrv.replace(options.annotation.tags);\n return this.events({ range: options.rangeRaw, tags: tags }).then(results => {\n const list = [];\n for (let i = 0; i < results.data.length; i++) {\n const e = results.data[i];\n\n let tags = e.tags;\n if (_.isString(e.tags)) {\n tags = this.parseTags(e.tags);\n }\n\n list.push({\n annotation: options.annotation,\n time: e.when * 1000,\n title: e.what,\n tags: tags,\n text: e.data,\n });\n }\n\n return list;\n });\n }\n };\n\n this.events = function(options) {\n try {\n let tags = '';\n if (options.tags) {\n tags = '&tags=' + options.tags;\n }\n return this.doGraphiteRequest({\n method: 'GET',\n url:\n '/events/get_data?from=' +\n this.translateTime(options.range.from, false, options.timezone) +\n '&until=' +\n this.translateTime(options.range.to, true, options.timezone) +\n tags,\n });\n } catch (err) {\n return $q.reject(err);\n }\n };\n\n this.targetContainsTemplate = target => {\n return templateSrv.variableExists(target.target);\n };\n\n this.translateTime = (date, roundUp, timezone) => {\n if (_.isString(date)) {\n if (date === 'now') {\n return 'now';\n } else if (date.indexOf('now-') >= 0 && date.indexOf('/') === -1) {\n date = date.substring(3);\n date = date.replace('m', 'min');\n date = date.replace('M', 'mon');\n return date;\n }\n date = dateMath.parse(date, roundUp, timezone);\n }\n\n // graphite' s from filter is exclusive\n // here we step back one minute in order\n // to guarantee that we get all the data that\n // exists for the specified range\n if (roundUp) {\n if (date.get('s')) {\n date.add(1, 'm');\n }\n } else if (roundUp === false) {\n if (date.get('s')) {\n date.subtract(1, 'm');\n }\n }\n\n return date.unix();\n };\n\n this.metricFindQuery = function(query, optionalOptions) {\n const options = optionalOptions || {};\n const interpolatedQuery = templateSrv.replace(query);\n\n // special handling for tag_values([,]*), this is used for template variables\n let matches = interpolatedQuery.match(/^tag_values\\(([^,]+)((, *[^,]+)*)\\)$/);\n if (matches) {\n const expressions = [];\n const exprRegex = /, *([^,]+)/g;\n let match = exprRegex.exec(matches[2]);\n while (match !== null) {\n expressions.push(match[1]);\n match = exprRegex.exec(matches[2]);\n }\n options.limit = 10000;\n return this.getTagValuesAutoComplete(expressions, matches[1], undefined, options);\n }\n\n // special handling for tags([,]*), this is used for template variables\n matches = interpolatedQuery.match(/^tags\\(([^,]*)((, *[^,]+)*)\\)$/);\n if (matches) {\n const expressions = [];\n if (matches[1]) {\n expressions.push(matches[1]);\n const exprRegex = /, *([^,]+)/g;\n let match = exprRegex.exec(matches[2]);\n while (match !== null) {\n expressions.push(match[1]);\n match = exprRegex.exec(matches[2]);\n }\n }\n options.limit = 10000;\n return this.getTagsAutoComplete(expressions, undefined, options);\n }\n\n const httpOptions: any = {\n method: 'GET',\n url: '/metrics/find',\n params: {\n query: interpolatedQuery,\n },\n // for cancellations\n requestId: options.requestId,\n };\n\n if (options.range) {\n httpOptions.params.from = this.translateTime(options.range.from, false, options.timezone);\n httpOptions.params.until = this.translateTime(options.range.to, true, options.timezone);\n }\n\n return this.doGraphiteRequest(httpOptions).then(results => {\n return _.map(results.data, metric => {\n return {\n text: metric.text,\n expandable: metric.expandable ? true : false,\n };\n });\n });\n };\n\n this.getTags = function(optionalOptions) {\n const options = optionalOptions || {};\n\n const httpOptions: any = {\n method: 'GET',\n url: '/tags',\n // for cancellations\n requestId: options.requestId,\n };\n\n if (options.range) {\n httpOptions.params.from = this.translateTime(options.range.from, false, options.timezone);\n httpOptions.params.until = this.translateTime(options.range.to, true, options.timezone);\n }\n\n return this.doGraphiteRequest(httpOptions).then(results => {\n return _.map(results.data, tag => {\n return {\n text: tag.tag,\n id: tag.id,\n };\n });\n });\n };\n\n this.getTagValues = function(tag, optionalOptions) {\n const options = optionalOptions || {};\n\n const httpOptions: any = {\n method: 'GET',\n url: '/tags/' + templateSrv.replace(tag),\n // for cancellations\n requestId: options.requestId,\n };\n\n if (options.range) {\n httpOptions.params.from = this.translateTime(options.range.from, false, options.timezone);\n httpOptions.params.until = this.translateTime(options.range.to, true, options.timezone);\n }\n\n return this.doGraphiteRequest(httpOptions).then(results => {\n if (results.data && results.data.values) {\n return _.map(results.data.values, value => {\n return {\n text: value.value,\n id: value.id,\n };\n });\n } else {\n return [];\n }\n });\n };\n\n this.getTagsAutoComplete = (expressions, tagPrefix, optionalOptions) => {\n const options = optionalOptions || {};\n\n const httpOptions: any = {\n method: 'GET',\n url: '/tags/autoComplete/tags',\n params: {\n expr: _.map(expressions, expression => templateSrv.replace((expression || '').trim())),\n },\n // for cancellations\n requestId: options.requestId,\n };\n\n if (tagPrefix) {\n httpOptions.params.tagPrefix = tagPrefix;\n }\n if (options.limit) {\n httpOptions.params.limit = options.limit;\n }\n if (options.range) {\n httpOptions.params.from = this.translateTime(options.range.from, false, options.timezone);\n httpOptions.params.until = this.translateTime(options.range.to, true, options.timezone);\n }\n\n return this.doGraphiteRequest(httpOptions).then(results => {\n if (results.data) {\n return _.map(results.data, tag => {\n return { text: tag };\n });\n } else {\n return [];\n }\n });\n };\n\n this.getTagValuesAutoComplete = (expressions, tag, valuePrefix, optionalOptions) => {\n const options = optionalOptions || {};\n\n const httpOptions: any = {\n method: 'GET',\n url: '/tags/autoComplete/values',\n params: {\n expr: _.map(expressions, expression => templateSrv.replace((expression || '').trim())),\n tag: templateSrv.replace((tag || '').trim()),\n },\n // for cancellations\n requestId: options.requestId,\n };\n\n if (valuePrefix) {\n httpOptions.params.valuePrefix = valuePrefix;\n }\n if (options.limit) {\n httpOptions.params.limit = options.limit;\n }\n if (options.range) {\n httpOptions.params.from = this.translateTime(options.range.from, false, options.timezone);\n httpOptions.params.until = this.translateTime(options.range.to, true, options.timezone);\n }\n\n return this.doGraphiteRequest(httpOptions).then(results => {\n if (results.data) {\n return _.map(results.data, value => {\n return { text: value };\n });\n } else {\n return [];\n }\n });\n };\n\n this.getVersion = function(optionalOptions) {\n const options = optionalOptions || {};\n\n const httpOptions = {\n method: 'GET',\n url: '/version',\n requestId: options.requestId,\n };\n\n return this.doGraphiteRequest(httpOptions)\n .then(results => {\n if (results.data) {\n const semver = new SemVersion(results.data);\n return semver.isValid() ? results.data : '';\n }\n return '';\n })\n .catch(() => {\n return '';\n });\n };\n\n this.createFuncInstance = function(funcDef, options?) {\n return gfunc.createFuncInstance(funcDef, options, this.funcDefs);\n };\n\n this.getFuncDef = function(name) {\n return gfunc.getFuncDef(name, this.funcDefs);\n };\n\n this.waitForFuncDefsLoaded = function() {\n return this.getFuncDefs();\n };\n\n this.getFuncDefs = function() {\n if (this.funcDefsPromise !== null) {\n return this.funcDefsPromise;\n }\n\n if (!supportsFunctionIndex(this.graphiteVersion)) {\n this.funcDefs = gfunc.getFuncDefs(this.graphiteVersion);\n this.funcDefsPromise = Promise.resolve(this.funcDefs);\n return this.funcDefsPromise;\n }\n\n const httpOptions = {\n method: 'GET',\n url: '/functions',\n };\n\n this.funcDefsPromise = this.doGraphiteRequest(httpOptions)\n .then(results => {\n if (results.status !== 200 || typeof results.data !== 'object') {\n this.funcDefs = gfunc.getFuncDefs(this.graphiteVersion);\n } else {\n this.funcDefs = gfunc.parseFuncDefs(results.data);\n }\n return this.funcDefs;\n })\n .catch(err => {\n console.log('Fetching graphite functions error', err);\n this.funcDefs = gfunc.getFuncDefs(this.graphiteVersion);\n return this.funcDefs;\n });\n\n return this.funcDefsPromise;\n };\n\n this.testDatasource = function() {\n const query = {\n panelId: 3,\n rangeRaw: { from: 'now-1h', to: 'now' },\n targets: [{ target: 'constantLine(100)' }],\n maxDataPoints: 300,\n };\n return this.query(query).then(() => {\n return { status: 'success', message: 'Data source is working' };\n });\n };\n\n this.doGraphiteRequest = function(options) {\n if (this.basicAuth || this.withCredentials) {\n options.withCredentials = true;\n }\n if (this.basicAuth) {\n options.headers = options.headers || {};\n options.headers.Authorization = this.basicAuth;\n }\n\n options.url = this.url + options.url;\n options.inspect = { type: 'graphite' };\n\n return backendSrv.datasourceRequest(options);\n };\n\n this._seriesRefLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n this.buildGraphiteParams = function(options, scopedVars) {\n const graphiteOptions = ['from', 'until', 'rawData', 'format', 'maxDataPoints', 'cacheTimeout'];\n const cleanOptions = [],\n targets = {};\n let target, targetValue, i;\n const regex = /\\#([A-Z])/g;\n const intervalFormatFixRegex = /'(\\d+)m'/gi;\n let hasTargets = false;\n\n options['format'] = 'json';\n\n function fixIntervalFormat(match) {\n return match.replace('m', 'min').replace('M', 'mon');\n }\n\n for (i = 0; i < options.targets.length; i++) {\n target = options.targets[i];\n if (!target.target) {\n continue;\n }\n\n if (!target.refId) {\n target.refId = this._seriesRefLetters[i];\n }\n\n targetValue = templateSrv.replace(target.target, scopedVars);\n targetValue = targetValue.replace(intervalFormatFixRegex, fixIntervalFormat);\n targets[target.refId] = targetValue;\n }\n\n function nestedSeriesRegexReplacer(match, g1) {\n return targets[g1] || match;\n }\n\n for (i = 0; i < options.targets.length; i++) {\n target = options.targets[i];\n if (!target.target) {\n continue;\n }\n\n targetValue = targets[target.refId];\n targetValue = targetValue.replace(regex, nestedSeriesRegexReplacer);\n targets[target.refId] = targetValue;\n\n if (!target.hide) {\n hasTargets = true;\n cleanOptions.push('target=' + encodeURIComponent(targetValue));\n }\n }\n\n _.each(options, (value, key) => {\n if (_.indexOf(graphiteOptions, key) === -1) {\n return;\n }\n if (value) {\n cleanOptions.push(key + '=' + encodeURIComponent(value));\n }\n });\n\n if (!hasTargets) {\n return [];\n }\n\n return cleanOptions;\n };\n}\n\nfunction supportsTags(version: string): boolean {\n return isVersionGtOrEq(version, '1.1');\n}\n\nfunction supportsFunctionIndex(version: string): boolean {\n return isVersionGtOrEq(version, '1.1');\n}\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport rst2html from 'rst2html';\nimport Drop from 'tether-drop';\nimport coreModule from 'app/core/core_module';\n\n/** @ngInject */\nexport function graphiteAddFunc($compile) {\n const inputTemplate =\n '';\n\n const buttonTemplate =\n '' +\n '';\n\n return {\n link: function($scope, elem) {\n const ctrl = $scope.ctrl;\n\n const $input = $(inputTemplate);\n const $button = $(buttonTemplate);\n\n $input.appendTo(elem);\n $button.appendTo(elem);\n\n ctrl.datasource.getFuncDefs().then(funcDefs => {\n const allFunctions = _.map(funcDefs, 'name').sort();\n\n $scope.functionMenu = createFunctionDropDownMenu(funcDefs);\n\n $input.attr('data-provide', 'typeahead');\n $input.typeahead({\n source: allFunctions,\n minLength: 1,\n items: 10,\n updater: value => {\n let funcDef = ctrl.datasource.getFuncDef(value);\n if (!funcDef) {\n // try find close match\n value = value.toLowerCase();\n funcDef = _.find(allFunctions, funcName => {\n return funcName.toLowerCase().indexOf(value) === 0;\n });\n\n if (!funcDef) {\n return '';\n }\n }\n\n $scope.$apply(() => {\n ctrl.addFunction(funcDef);\n });\n\n $input.trigger('blur');\n return '';\n },\n });\n\n $button.click(() => {\n $button.hide();\n $input.show();\n $input.focus();\n });\n\n $input.keyup(() => {\n elem.toggleClass('open', $input.val() === '');\n });\n\n $input.blur(() => {\n // clicking the function dropdown menu won't\n // work if you remove class at once\n setTimeout(() => {\n $input.val('');\n $input.hide();\n $button.show();\n elem.removeClass('open');\n }, 200);\n });\n\n $compile(elem.contents())($scope);\n });\n\n let drop;\n const cleanUpDrop = () => {\n if (drop) {\n drop.destroy();\n drop = null;\n }\n };\n\n $(elem)\n .on('mouseenter', 'ul.dropdown-menu li', () => {\n cleanUpDrop();\n\n let funcDef;\n try {\n funcDef = ctrl.datasource.getFuncDef($('a', this).text());\n } catch (e) {\n // ignore\n }\n\n if (funcDef && funcDef.description) {\n let shortDesc = funcDef.description;\n if (shortDesc.length > 500) {\n shortDesc = shortDesc.substring(0, 497) + '...';\n }\n\n const contentElement = document.createElement('div');\n contentElement.innerHTML = '

    ' + funcDef.name + '

    ' + rst2html(shortDesc);\n\n drop = new Drop({\n target: this,\n content: contentElement,\n classes: 'drop-popover',\n openOn: 'always',\n tetherOptions: {\n attachment: 'bottom left',\n targetAttachment: 'bottom right',\n },\n });\n }\n })\n .on('mouseout', 'ul.dropdown-menu li', () => {\n cleanUpDrop();\n });\n\n $scope.$on('$destroy', cleanUpDrop);\n },\n };\n}\n\ncoreModule.directive('graphiteAddFunc', graphiteAddFunc);\n\nfunction createFunctionDropDownMenu(funcDefs) {\n const categories = {};\n\n _.forEach(funcDefs, funcDef => {\n if (!funcDef.category) {\n return;\n }\n if (!categories[funcDef.category]) {\n categories[funcDef.category] = [];\n }\n categories[funcDef.category].push({\n text: funcDef.name,\n click: \"ctrl.addFunction('\" + funcDef.name + \"')\",\n });\n });\n\n return _.sortBy(\n _.map(categories, (submenu, category) => {\n return {\n text: category,\n submenu: _.sortBy(submenu, 'text'),\n };\n }),\n 'text'\n );\n}\n","import _ from 'lodash';\nimport $ from 'jquery';\nimport coreModule from 'app/core/core_module';\n\n/** @ngInject */\nexport function graphiteFuncEditor($compile, templateSrv, popoverSrv) {\n const funcSpanTemplate = `\n (\n `;\n const paramTemplate =\n '';\n\n return {\n restrict: 'A',\n link: function postLink($scope, elem) {\n const $funcLink = $(funcSpanTemplate);\n const ctrl = $scope.ctrl;\n const func = $scope.func;\n let scheduledRelink = false;\n let paramCountAtLink = 0;\n let cancelBlur = null;\n\n ctrl.handleRemoveFunction = func => {\n ctrl.removeFunction(func);\n };\n\n ctrl.handleMoveLeft = func => {\n ctrl.moveFunction(func, -1);\n };\n\n ctrl.handleMoveRight = func => {\n ctrl.moveFunction(func, 1);\n };\n\n function clickFuncParam(this: any, paramIndex) {\n /*jshint validthis:true */\n\n const $link = $(this);\n const $comma = $link.prev('.comma');\n const $input = $link.next();\n\n $input.val(func.params[paramIndex]);\n\n $comma.removeClass('query-part__last');\n $link.hide();\n $input.show();\n $input.focus();\n $input.select();\n\n const typeahead = $input.data('typeahead');\n if (typeahead) {\n $input.val('');\n typeahead.lookup();\n }\n }\n\n function scheduledRelinkIfNeeded() {\n if (paramCountAtLink === func.params.length) {\n return;\n }\n\n if (!scheduledRelink) {\n scheduledRelink = true;\n setTimeout(() => {\n relink();\n scheduledRelink = false;\n }, 200);\n }\n }\n\n function paramDef(index) {\n if (index < func.def.params.length) {\n return func.def.params[index];\n }\n if (_.last(func.def.params).multiple) {\n return _.assign({}, _.last(func.def.params), { optional: true });\n }\n return {};\n }\n\n function switchToLink(inputElem, paramIndex) {\n /*jshint validthis:true */\n const $input = $(inputElem);\n\n clearTimeout(cancelBlur);\n cancelBlur = null;\n\n const $link = $input.prev();\n const $comma = $link.prev('.comma');\n const newValue = $input.val();\n\n // remove optional empty params\n if (newValue !== '' || paramDef(paramIndex).optional) {\n func.updateParam(newValue, paramIndex);\n $link.html(newValue ? templateSrv.highlightVariablesAsHtml(newValue) : ' ');\n }\n\n scheduledRelinkIfNeeded();\n\n $scope.$apply(() => {\n ctrl.targetChanged();\n });\n\n if ($link.hasClass('query-part__last') && newValue === '') {\n $comma.addClass('query-part__last');\n } else {\n $link.removeClass('query-part__last');\n }\n\n $input.hide();\n $link.show();\n }\n\n // this = input element\n function inputBlur(this: any, paramIndex) {\n /*jshint validthis:true */\n const inputElem = this;\n // happens long before the click event on the typeahead options\n // need to have long delay because the blur\n cancelBlur = setTimeout(() => {\n switchToLink(inputElem, paramIndex);\n }, 200);\n }\n\n function inputKeyPress(this: any, paramIndex, e) {\n /*jshint validthis:true */\n if (e.which === 13) {\n $(this).blur();\n }\n }\n\n function inputKeyDown(this: any) {\n /*jshint validthis:true */\n this.style.width = (3 + this.value.length) * 8 + 'px';\n }\n\n function addTypeahead($input, paramIndex) {\n $input.attr('data-provide', 'typeahead');\n\n let options = paramDef(paramIndex).options;\n if (paramDef(paramIndex).type === 'int') {\n options = _.map(options, val => {\n return val.toString();\n });\n }\n\n $input.typeahead({\n source: options,\n minLength: 0,\n items: 20,\n updater: value => {\n $input.val(value);\n switchToLink($input[0], paramIndex);\n return value;\n },\n });\n\n const typeahead = $input.data('typeahead');\n typeahead.lookup = function() {\n this.query = this.$element.val() || '';\n return this.process(this.source);\n };\n }\n\n function addElementsAndCompile() {\n $funcLink.appendTo(elem);\n\n const defParams = _.clone(func.def.params);\n const lastParam = _.last(func.def.params);\n\n while (func.params.length >= defParams.length && lastParam && lastParam.multiple) {\n defParams.push(_.assign({}, lastParam, { optional: true }));\n }\n\n _.each(defParams, (param, index) => {\n if (param.optional && func.params.length < index) {\n return false;\n }\n\n let paramValue = templateSrv.highlightVariablesAsHtml(func.params[index]);\n const hasValue = paramValue !== null && paramValue !== undefined;\n\n const last = index >= func.params.length - 1 && param.optional && !hasValue;\n if (last && param.multiple) {\n paramValue = '+';\n }\n\n if (index > 0) {\n $(', ').appendTo(elem);\n }\n\n const $paramLink = $(\n '' +\n (hasValue ? paramValue : ' ') +\n ''\n );\n const $input = $(paramTemplate);\n $input.attr('placeholder', param.name);\n\n paramCountAtLink++;\n\n $paramLink.appendTo(elem);\n $input.appendTo(elem);\n\n $input.blur(_.partial(inputBlur, index));\n $input.keyup(inputKeyDown);\n $input.keypress(_.partial(inputKeyPress, index));\n $paramLink.click(_.partial(clickFuncParam, index));\n\n if (param.options) {\n addTypeahead($input, index);\n }\n\n return true;\n });\n\n $(')').appendTo(elem);\n\n $compile(elem.contents())($scope);\n }\n\n function ifJustAddedFocusFirstParam() {\n if ($scope.func.added) {\n $scope.func.added = false;\n setTimeout(() => {\n elem\n .find('.graphite-func-param-link')\n .first()\n .click();\n }, 10);\n }\n }\n\n function relink() {\n elem.children().remove();\n addElementsAndCompile();\n ifJustAddedFocusFirstParam();\n }\n\n relink();\n },\n };\n}\n\ncoreModule.directive('graphiteFuncEditor', graphiteFuncEditor);\n","import _ from 'lodash';\n\n// This is auto generated from the unicode tables.\n// The tables are at:\n// http://www.fileformat.info/info/unicode/category/Lu/list.htm\n// http://www.fileformat.info/info/unicode/category/Ll/list.htm\n// http://www.fileformat.info/info/unicode/category/Lt/list.htm\n// http://www.fileformat.info/info/unicode/category/Lm/list.htm\n// http://www.fileformat.info/info/unicode/category/Lo/list.htm\n// http://www.fileformat.info/info/unicode/category/Nl/list.htm\n\nconst unicodeLetterTable = [\n 170,\n 170,\n 181,\n 181,\n 186,\n 186,\n 192,\n 214,\n 216,\n 246,\n 248,\n 705,\n 710,\n 721,\n 736,\n 740,\n 748,\n 748,\n 750,\n 750,\n 880,\n 884,\n 886,\n 887,\n 890,\n 893,\n 902,\n 902,\n 904,\n 906,\n 908,\n 908,\n 910,\n 929,\n 931,\n 1013,\n 1015,\n 1153,\n 1162,\n 1319,\n 1329,\n 1366,\n 1369,\n 1369,\n 1377,\n 1415,\n 1488,\n 1514,\n 1520,\n 1522,\n 1568,\n 1610,\n 1646,\n 1647,\n 1649,\n 1747,\n 1749,\n 1749,\n 1765,\n 1766,\n 1774,\n 1775,\n 1786,\n 1788,\n 1791,\n 1791,\n 1808,\n 1808,\n 1810,\n 1839,\n 1869,\n 1957,\n 1969,\n 1969,\n 1994,\n 2026,\n 2036,\n 2037,\n 2042,\n 2042,\n 2048,\n 2069,\n 2074,\n 2074,\n 2084,\n 2084,\n 2088,\n 2088,\n 2112,\n 2136,\n 2308,\n 2361,\n 2365,\n 2365,\n 2384,\n 2384,\n 2392,\n 2401,\n 2417,\n 2423,\n 2425,\n 2431,\n 2437,\n 2444,\n 2447,\n 2448,\n 2451,\n 2472,\n 2474,\n 2480,\n 2482,\n 2482,\n 2486,\n 2489,\n 2493,\n 2493,\n 2510,\n 2510,\n 2524,\n 2525,\n 2527,\n 2529,\n 2544,\n 2545,\n 2565,\n 2570,\n 2575,\n 2576,\n 2579,\n 2600,\n 2602,\n 2608,\n 2610,\n 2611,\n 2613,\n 2614,\n 2616,\n 2617,\n 2649,\n 2652,\n 2654,\n 2654,\n 2674,\n 2676,\n 2693,\n 2701,\n 2703,\n 2705,\n 2707,\n 2728,\n 2730,\n 2736,\n 2738,\n 2739,\n 2741,\n 2745,\n 2749,\n 2749,\n 2768,\n 2768,\n 2784,\n 2785,\n 2821,\n 2828,\n 2831,\n 2832,\n 2835,\n 2856,\n 2858,\n 2864,\n 2866,\n 2867,\n 2869,\n 2873,\n 2877,\n 2877,\n 2908,\n 2909,\n 2911,\n 2913,\n 2929,\n 2929,\n 2947,\n 2947,\n 2949,\n 2954,\n 2958,\n 2960,\n 2962,\n 2965,\n 2969,\n 2970,\n 2972,\n 2972,\n 2974,\n 2975,\n 2979,\n 2980,\n 2984,\n 2986,\n 2990,\n 3001,\n 3024,\n 3024,\n 3077,\n 3084,\n 3086,\n 3088,\n 3090,\n 3112,\n 3114,\n 3123,\n 3125,\n 3129,\n 3133,\n 3133,\n 3160,\n 3161,\n 3168,\n 3169,\n 3205,\n 3212,\n 3214,\n 3216,\n 3218,\n 3240,\n 3242,\n 3251,\n 3253,\n 3257,\n 3261,\n 3261,\n 3294,\n 3294,\n 3296,\n 3297,\n 3313,\n 3314,\n 3333,\n 3340,\n 3342,\n 3344,\n 3346,\n 3386,\n 3389,\n 3389,\n 3406,\n 3406,\n 3424,\n 3425,\n 3450,\n 3455,\n 3461,\n 3478,\n 3482,\n 3505,\n 3507,\n 3515,\n 3517,\n 3517,\n 3520,\n 3526,\n 3585,\n 3632,\n 3634,\n 3635,\n 3648,\n 3654,\n 3713,\n 3714,\n 3716,\n 3716,\n 3719,\n 3720,\n 3722,\n 3722,\n 3725,\n 3725,\n 3732,\n 3735,\n 3737,\n 3743,\n 3745,\n 3747,\n 3749,\n 3749,\n 3751,\n 3751,\n 3754,\n 3755,\n 3757,\n 3760,\n 3762,\n 3763,\n 3773,\n 3773,\n 3776,\n 3780,\n 3782,\n 3782,\n 3804,\n 3805,\n 3840,\n 3840,\n 3904,\n 3911,\n 3913,\n 3948,\n 3976,\n 3980,\n 4096,\n 4138,\n 4159,\n 4159,\n 4176,\n 4181,\n 4186,\n 4189,\n 4193,\n 4193,\n 4197,\n 4198,\n 4206,\n 4208,\n 4213,\n 4225,\n 4238,\n 4238,\n 4256,\n 4293,\n 4304,\n 4346,\n 4348,\n 4348,\n 4352,\n 4680,\n 4682,\n 4685,\n 4688,\n 4694,\n 4696,\n 4696,\n 4698,\n 4701,\n 4704,\n 4744,\n 4746,\n 4749,\n 4752,\n 4784,\n 4786,\n 4789,\n 4792,\n 4798,\n 4800,\n 4800,\n 4802,\n 4805,\n 4808,\n 4822,\n 4824,\n 4880,\n 4882,\n 4885,\n 4888,\n 4954,\n 4992,\n 5007,\n 5024,\n 5108,\n 5121,\n 5740,\n 5743,\n 5759,\n 5761,\n 5786,\n 5792,\n 5866,\n 5870,\n 5872,\n 5888,\n 5900,\n 5902,\n 5905,\n 5920,\n 5937,\n 5952,\n 5969,\n 5984,\n 5996,\n 5998,\n 6000,\n 6016,\n 6067,\n 6103,\n 6103,\n 6108,\n 6108,\n 6176,\n 6263,\n 6272,\n 6312,\n 6314,\n 6314,\n 6320,\n 6389,\n 6400,\n 6428,\n 6480,\n 6509,\n 6512,\n 6516,\n 6528,\n 6571,\n 6593,\n 6599,\n 6656,\n 6678,\n 6688,\n 6740,\n 6823,\n 6823,\n 6917,\n 6963,\n 6981,\n 6987,\n 7043,\n 7072,\n 7086,\n 7087,\n 7104,\n 7141,\n 7168,\n 7203,\n 7245,\n 7247,\n 7258,\n 7293,\n 7401,\n 7404,\n 7406,\n 7409,\n 7424,\n 7615,\n 7680,\n 7957,\n 7960,\n 7965,\n 7968,\n 8005,\n 8008,\n 8013,\n 8016,\n 8023,\n 8025,\n 8025,\n 8027,\n 8027,\n 8029,\n 8029,\n 8031,\n 8061,\n 8064,\n 8116,\n 8118,\n 8124,\n 8126,\n 8126,\n 8130,\n 8132,\n 8134,\n 8140,\n 8144,\n 8147,\n 8150,\n 8155,\n 8160,\n 8172,\n 8178,\n 8180,\n 8182,\n 8188,\n 8305,\n 8305,\n 8319,\n 8319,\n 8336,\n 8348,\n 8450,\n 8450,\n 8455,\n 8455,\n 8458,\n 8467,\n 8469,\n 8469,\n 8473,\n 8477,\n 8484,\n 8484,\n 8486,\n 8486,\n 8488,\n 8488,\n 8490,\n 8493,\n 8495,\n 8505,\n 8508,\n 8511,\n 8517,\n 8521,\n 8526,\n 8526,\n 8544,\n 8584,\n 11264,\n 11310,\n 11312,\n 11358,\n 11360,\n 11492,\n 11499,\n 11502,\n 11520,\n 11557,\n 11568,\n 11621,\n 11631,\n 11631,\n 11648,\n 11670,\n 11680,\n 11686,\n 11688,\n 11694,\n 11696,\n 11702,\n 11704,\n 11710,\n 11712,\n 11718,\n 11720,\n 11726,\n 11728,\n 11734,\n 11736,\n 11742,\n 11823,\n 11823,\n 12293,\n 12295,\n 12321,\n 12329,\n 12337,\n 12341,\n 12344,\n 12348,\n 12353,\n 12438,\n 12445,\n 12447,\n 12449,\n 12538,\n 12540,\n 12543,\n 12549,\n 12589,\n 12593,\n 12686,\n 12704,\n 12730,\n 12784,\n 12799,\n 13312,\n 13312,\n 19893,\n 19893,\n 19968,\n 19968,\n 40907,\n 40907,\n 40960,\n 42124,\n 42192,\n 42237,\n 42240,\n 42508,\n 42512,\n 42527,\n 42538,\n 42539,\n 42560,\n 42606,\n 42623,\n 42647,\n 42656,\n 42735,\n 42775,\n 42783,\n 42786,\n 42888,\n 42891,\n 42894,\n 42896,\n 42897,\n 42912,\n 42921,\n 43002,\n 43009,\n 43011,\n 43013,\n 43015,\n 43018,\n 43020,\n 43042,\n 43072,\n 43123,\n 43138,\n 43187,\n 43250,\n 43255,\n 43259,\n 43259,\n 43274,\n 43301,\n 43312,\n 43334,\n 43360,\n 43388,\n 43396,\n 43442,\n 43471,\n 43471,\n 43520,\n 43560,\n 43584,\n 43586,\n 43588,\n 43595,\n 43616,\n 43638,\n 43642,\n 43642,\n 43648,\n 43695,\n 43697,\n 43697,\n 43701,\n 43702,\n 43705,\n 43709,\n 43712,\n 43712,\n 43714,\n 43714,\n 43739,\n 43741,\n 43777,\n 43782,\n 43785,\n 43790,\n 43793,\n 43798,\n 43808,\n 43814,\n 43816,\n 43822,\n 43968,\n 44002,\n 44032,\n 44032,\n 55203,\n 55203,\n 55216,\n 55238,\n 55243,\n 55291,\n 63744,\n 64045,\n 64048,\n 64109,\n 64112,\n 64217,\n 64256,\n 64262,\n 64275,\n 64279,\n 64285,\n 64285,\n 64287,\n 64296,\n 64298,\n 64310,\n 64312,\n 64316,\n 64318,\n 64318,\n 64320,\n 64321,\n 64323,\n 64324,\n 64326,\n 64433,\n 64467,\n 64829,\n 64848,\n 64911,\n 64914,\n 64967,\n 65008,\n 65019,\n 65136,\n 65140,\n 65142,\n 65276,\n 65313,\n 65338,\n 65345,\n 65370,\n 65382,\n 65470,\n 65474,\n 65479,\n 65482,\n 65487,\n 65490,\n 65495,\n 65498,\n 65500,\n 65536,\n 65547,\n 65549,\n 65574,\n 65576,\n 65594,\n 65596,\n 65597,\n 65599,\n 65613,\n 65616,\n 65629,\n 65664,\n 65786,\n 65856,\n 65908,\n 66176,\n 66204,\n 66208,\n 66256,\n 66304,\n 66334,\n 66352,\n 66378,\n 66432,\n 66461,\n 66464,\n 66499,\n 66504,\n 66511,\n 66513,\n 66517,\n 66560,\n 66717,\n 67584,\n 67589,\n 67592,\n 67592,\n 67594,\n 67637,\n 67639,\n 67640,\n 67644,\n 67644,\n 67647,\n 67669,\n 67840,\n 67861,\n 67872,\n 67897,\n 68096,\n 68096,\n 68112,\n 68115,\n 68117,\n 68119,\n 68121,\n 68147,\n 68192,\n 68220,\n 68352,\n 68405,\n 68416,\n 68437,\n 68448,\n 68466,\n 68608,\n 68680,\n 69635,\n 69687,\n 69763,\n 69807,\n 73728,\n 74606,\n 74752,\n 74850,\n 77824,\n 78894,\n 92160,\n 92728,\n 110592,\n 110593,\n 119808,\n 119892,\n 119894,\n 119964,\n 119966,\n 119967,\n 119970,\n 119970,\n 119973,\n 119974,\n 119977,\n 119980,\n 119982,\n 119993,\n 119995,\n 119995,\n 119997,\n 120003,\n 120005,\n 120069,\n 120071,\n 120074,\n 120077,\n 120084,\n 120086,\n 120092,\n 120094,\n 120121,\n 120123,\n 120126,\n 120128,\n 120132,\n 120134,\n 120134,\n 120138,\n 120144,\n 120146,\n 120485,\n 120488,\n 120512,\n 120514,\n 120538,\n 120540,\n 120570,\n 120572,\n 120596,\n 120598,\n 120628,\n 120630,\n 120654,\n 120656,\n 120686,\n 120688,\n 120712,\n 120714,\n 120744,\n 120746,\n 120770,\n 120772,\n 120779,\n 131072,\n 131072,\n 173782,\n 173782,\n 173824,\n 173824,\n 177972,\n 177972,\n 177984,\n 177984,\n 178205,\n 178205,\n 194560,\n 195101,\n];\n\nconst identifierStartTable = [];\n\nfor (let i = 0; i < 128; i++) {\n identifierStartTable[i] =\n (i >= 48 && i <= 57) || // 0-9\n i === 36 || // $\n i === 126 || // ~\n i === 124 || // |\n (i >= 65 && i <= 90) || // A-Z\n i === 95 || // _\n i === 45 || // -\n i === 42 || // *\n i === 58 || // :\n i === 91 || // templateStart [\n i === 93 || // templateEnd ]\n i === 63 || // ?\n i === 37 || // %\n i === 35 || // #\n i === 61 || // =\n (i >= 97 && i <= 122); // a-z\n}\n\nconst identifierPartTable = identifierStartTable;\n\nexport function Lexer(this: any, expression) {\n this.input = expression;\n this.char = 1;\n this.from = 1;\n}\n\nLexer.prototype = {\n peek: function(i) {\n return this.input.charAt(i || 0);\n },\n\n skip: function(i) {\n i = i || 1;\n this.char += i;\n this.input = this.input.slice(i);\n },\n\n tokenize: function() {\n const list = [];\n let token = this.next();\n while (token) {\n list.push(token);\n token = this.next();\n }\n return list;\n },\n\n next: function() {\n this.from = this.char;\n\n // Move to the next non-space character.\n if (/\\s/.test(this.peek())) {\n while (/\\s/.test(this.peek())) {\n this.from += 1;\n this.skip();\n }\n\n if (this.peek() === '') {\n // EOL\n return null;\n }\n }\n\n let match = this.scanStringLiteral();\n if (match) {\n return match;\n }\n\n match = this.scanPunctuator() || this.scanNumericLiteral() || this.scanIdentifier() || this.scanTemplateSequence();\n\n if (match) {\n this.skip(match.value.length);\n return match;\n }\n\n // No token could be matched, give up.\n return null;\n },\n\n scanTemplateSequence: function() {\n if (this.peek() === '[' && this.peek(1) === '[') {\n return {\n type: 'templateStart',\n value: '[[',\n pos: this.char,\n };\n }\n\n if (this.peek() === ']' && this.peek(1) === ']') {\n return {\n type: 'templateEnd',\n value: '[[',\n pos: this.char,\n };\n }\n\n return null;\n },\n\n /*\n * Extract a JavaScript identifier out of the next sequence of\n * characters or return 'null' if its not possible. In addition,\n * to Identifier this method can also produce BooleanLiteral\n * (true/false) and NullLiteral (null).\n */\n scanIdentifier: function() {\n let id = '';\n let index = 0;\n let type, char;\n\n // Detects any character in the Unicode categories \"Uppercase\n // letter (Lu)\", \"Lowercase letter (Ll)\", \"Titlecase letter\n // (Lt)\", \"Modifier letter (Lm)\", \"Other letter (Lo)\", or\n // \"Letter number (Nl)\".\n //\n // Both approach and unicodeLetterTable were borrowed from\n // Google's Traceur.\n\n function isUnicodeLetter(code) {\n for (let i = 0; i < unicodeLetterTable.length; ) {\n if (code < unicodeLetterTable[i++]) {\n return false;\n }\n\n if (code <= unicodeLetterTable[i++]) {\n return true;\n }\n }\n\n return false;\n }\n\n function isHexDigit(str) {\n return /^[0-9a-fA-F]$/.test(str);\n }\n\n const readUnicodeEscapeSequence = _.bind(function(this: any) {\n /*jshint validthis:true */\n index += 1;\n\n if (this.peek(index) !== 'u') {\n return null;\n }\n\n const ch1 = this.peek(index + 1);\n const ch2 = this.peek(index + 2);\n const ch3 = this.peek(index + 3);\n const ch4 = this.peek(index + 4);\n let code;\n\n if (isHexDigit(ch1) && isHexDigit(ch2) && isHexDigit(ch3) && isHexDigit(ch4)) {\n code = parseInt(ch1 + ch2 + ch3 + ch4, 16);\n\n if (isUnicodeLetter(code)) {\n index += 5;\n return '\\\\u' + ch1 + ch2 + ch3 + ch4;\n }\n\n return null;\n }\n\n return null;\n }, this);\n\n const getIdentifierStart = _.bind(function(this: any) {\n /*jshint validthis:true */\n const chr = this.peek(index);\n const code = chr.charCodeAt(0);\n\n if (chr === '*') {\n index += 1;\n return chr;\n }\n\n if (code === 92) {\n return readUnicodeEscapeSequence();\n }\n\n if (code < 128) {\n if (identifierStartTable[code]) {\n index += 1;\n return chr;\n }\n\n return null;\n }\n\n if (isUnicodeLetter(code)) {\n index += 1;\n return chr;\n }\n\n return null;\n }, this);\n\n const getIdentifierPart = _.bind(function(this: any) {\n /*jshint validthis:true */\n const chr = this.peek(index);\n const code = chr.charCodeAt(0);\n\n if (code === 92) {\n return readUnicodeEscapeSequence();\n }\n\n if (code < 128) {\n if (identifierPartTable[code]) {\n index += 1;\n return chr;\n }\n\n return null;\n }\n\n if (isUnicodeLetter(code)) {\n index += 1;\n return chr;\n }\n\n return null;\n }, this);\n\n char = getIdentifierStart();\n if (char === null) {\n return null;\n }\n\n id = char;\n for (;;) {\n char = getIdentifierPart();\n\n if (char === null) {\n break;\n }\n\n id += char;\n }\n\n switch (id) {\n case 'true': {\n type = 'bool';\n break;\n }\n case 'false': {\n type = 'bool';\n break;\n }\n default:\n type = 'identifier';\n }\n\n return {\n type: type,\n value: id,\n pos: this.char,\n };\n },\n\n /*\n * Extract a numeric literal out of the next sequence of\n * characters or return 'null' if its not possible. This method\n * supports all numeric literals described in section 7.8.3\n * of the EcmaScript 5 specification.\n *\n * This method's implementation was heavily influenced by the\n * scanNumericLiteral function in the Esprima parser's source code.\n */\n scanNumericLiteral: function(): any {\n let index = 0;\n let value = '';\n const length = this.input.length;\n let char = this.peek(index);\n let bad;\n\n function isDecimalDigit(str) {\n return /^[0-9]$/.test(str);\n }\n\n function isOctalDigit(str) {\n return /^[0-7]$/.test(str);\n }\n\n function isHexDigit(str) {\n return /^[0-9a-fA-F]$/.test(str);\n }\n\n function isIdentifierStart(ch) {\n return ch === '$' || ch === '_' || ch === '\\\\' || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');\n }\n\n // handle negative num literals\n if (char === '-') {\n value += char;\n index += 1;\n char = this.peek(index);\n }\n\n // Numbers must start either with a decimal digit or a point.\n if (char !== '.' && !isDecimalDigit(char)) {\n return null;\n }\n\n if (char !== '.') {\n value += this.peek(index);\n index += 1;\n char = this.peek(index);\n\n if (value === '0') {\n // Base-16 numbers.\n if (char === 'x' || char === 'X') {\n index += 1;\n value += char;\n\n while (index < length) {\n char = this.peek(index);\n if (!isHexDigit(char)) {\n break;\n }\n value += char;\n index += 1;\n }\n\n if (value.length <= 2) {\n // 0x\n return {\n type: 'number',\n value: value,\n isMalformed: true,\n pos: this.char,\n };\n }\n\n if (index < length) {\n char = this.peek(index);\n if (isIdentifierStart(char)) {\n return null;\n }\n }\n\n return {\n type: 'number',\n value: value,\n base: 16,\n isMalformed: false,\n pos: this.char,\n };\n }\n\n // Base-8 numbers.\n if (isOctalDigit(char)) {\n index += 1;\n value += char;\n bad = false;\n\n while (index < length) {\n char = this.peek(index);\n\n // Numbers like '019' (note the 9) are not valid octals\n // but we still parse them and mark as malformed.\n\n if (isDecimalDigit(char)) {\n bad = true;\n }\n if (!isOctalDigit(char)) {\n // if the char is a non punctuator then its not a valid number\n if (!this.isPunctuator(char)) {\n return null;\n }\n break;\n }\n value += char;\n index += 1;\n }\n\n if (index < length) {\n char = this.peek(index);\n if (isIdentifierStart(char)) {\n return null;\n }\n }\n\n return {\n type: 'number',\n value: value,\n base: 8,\n isMalformed: bad,\n };\n }\n\n // Decimal numbers that start with '0' such as '09' are illegal\n // but we still parse them and return as malformed.\n\n if (isDecimalDigit(char)) {\n index += 1;\n value += char;\n }\n }\n\n while (index < length) {\n char = this.peek(index);\n if (!isDecimalDigit(char)) {\n break;\n }\n value += char;\n index += 1;\n }\n }\n\n // Decimal digits.\n\n if (char === '.') {\n value += char;\n index += 1;\n\n while (index < length) {\n char = this.peek(index);\n if (!isDecimalDigit(char)) {\n break;\n }\n value += char;\n index += 1;\n }\n }\n\n // Exponent part.\n\n if (char === 'e' || char === 'E') {\n value += char;\n index += 1;\n char = this.peek(index);\n\n if (char === '+' || char === '-') {\n value += this.peek(index);\n index += 1;\n }\n\n char = this.peek(index);\n if (isDecimalDigit(char)) {\n value += char;\n index += 1;\n\n while (index < length) {\n char = this.peek(index);\n if (!isDecimalDigit(char)) {\n break;\n }\n value += char;\n index += 1;\n }\n } else {\n return null;\n }\n }\n\n if (index < length) {\n char = this.peek(index);\n if (!this.isPunctuator(char)) {\n return null;\n }\n }\n\n return {\n type: 'number',\n value: value,\n base: 10,\n pos: this.char,\n isMalformed: !isFinite(+value),\n };\n },\n\n isPunctuator: ch1 => {\n switch (ch1) {\n case '.':\n case '(':\n case ')':\n case ',':\n case '{':\n case '}':\n return true;\n }\n\n return false;\n },\n\n scanPunctuator: function() {\n const ch1 = this.peek();\n\n if (this.isPunctuator(ch1)) {\n return {\n type: ch1,\n value: ch1,\n pos: this.char,\n };\n }\n\n return null;\n },\n\n /*\n * Extract a string out of the next sequence of characters and/or\n * lines or return 'null' if its not possible. Since strings can\n * span across multiple lines this method has to move the char\n * pointer.\n *\n * This method recognizes pseudo-multiline JavaScript strings:\n *\n * var str = \"hello\\\n * world\";\n */\n scanStringLiteral: function() {\n /*jshint loopfunc:true */\n const quote = this.peek();\n\n // String must start with a quote.\n if (quote !== '\"' && quote !== \"'\") {\n return null;\n }\n\n let value = '';\n\n this.skip();\n\n while (this.peek() !== quote) {\n if (this.peek() === '') {\n // End Of Line\n return {\n type: 'string',\n value: value,\n isUnclosed: true,\n quote: quote,\n pos: this.char,\n };\n }\n\n const char = this.peek();\n const jump = 1; // A length of a jump, after we're done\n // parsing this character.\n\n value += char;\n this.skip(jump);\n }\n\n this.skip();\n return {\n type: 'string',\n value: value,\n isUnclosed: false,\n quote: quote,\n pos: this.char,\n };\n },\n};\n","import { Lexer } from './lexer';\n\nexport function Parser(this: any, expression) {\n this.expression = expression;\n this.lexer = new Lexer(expression);\n this.tokens = this.lexer.tokenize();\n this.index = 0;\n}\n\nParser.prototype = {\n getAst: function() {\n return this.start();\n },\n\n start: function() {\n try {\n return this.functionCall() || this.metricExpression();\n } catch (e) {\n return {\n type: 'error',\n message: e.message,\n pos: e.pos,\n };\n }\n },\n\n curlyBraceSegment: function() {\n if (this.match('identifier', '{') || this.match('{')) {\n let curlySegment = '';\n\n while (!this.match('') && !this.match('}')) {\n curlySegment += this.consumeToken().value;\n }\n\n if (!this.match('}')) {\n this.errorMark(\"Expected closing '}'\");\n }\n\n curlySegment += this.consumeToken().value;\n\n // if curly segment is directly followed by identifier\n // include it in the segment\n if (this.match('identifier')) {\n curlySegment += this.consumeToken().value;\n }\n\n return {\n type: 'segment',\n value: curlySegment,\n };\n } else {\n return null;\n }\n },\n\n metricSegment: function() {\n const curly = this.curlyBraceSegment();\n if (curly) {\n return curly;\n }\n\n if (this.match('identifier') || this.match('number')) {\n // hack to handle float numbers in metric segments\n const parts = this.consumeToken().value.split('.');\n if (parts.length === 2) {\n this.tokens.splice(this.index, 0, { type: '.' });\n this.tokens.splice(this.index + 1, 0, {\n type: 'number',\n value: parts[1],\n });\n }\n\n return {\n type: 'segment',\n value: parts[0],\n };\n }\n\n if (!this.match('templateStart')) {\n this.errorMark('Expected metric identifier');\n }\n\n this.consumeToken();\n\n if (!this.match('identifier')) {\n this.errorMark('Expected identifier after templateStart');\n }\n\n const node = {\n type: 'template',\n value: this.consumeToken().value,\n };\n\n if (!this.match('templateEnd')) {\n this.errorMark('Expected templateEnd');\n }\n\n this.consumeToken();\n return node;\n },\n\n metricExpression: function() {\n if (!this.match('templateStart') && !this.match('identifier') && !this.match('number') && !this.match('{')) {\n return null;\n }\n\n const node = {\n type: 'metric',\n segments: [],\n };\n\n node.segments.push(this.metricSegment());\n\n while (this.match('.')) {\n this.consumeToken();\n\n const segment = this.metricSegment();\n if (!segment) {\n this.errorMark('Expected metric identifier');\n }\n\n node.segments.push(segment);\n }\n\n return node;\n },\n\n functionCall: function() {\n if (!this.match('identifier', '(')) {\n return null;\n }\n\n const node: any = {\n type: 'function',\n name: this.consumeToken().value,\n };\n\n // consume left parenthesis\n this.consumeToken();\n\n node.params = this.functionParameters();\n\n if (!this.match(')')) {\n this.errorMark('Expected closing parenthesis');\n }\n\n this.consumeToken();\n\n return node;\n },\n\n boolExpression: function() {\n if (!this.match('bool')) {\n return null;\n }\n\n return {\n type: 'bool',\n value: this.consumeToken().value === 'true',\n };\n },\n\n functionParameters: function() {\n if (this.match(')') || this.match('')) {\n return [];\n }\n\n const param =\n this.functionCall() ||\n this.numericLiteral() ||\n this.seriesRefExpression() ||\n this.boolExpression() ||\n this.metricExpression() ||\n this.stringLiteral();\n\n if (!this.match(',')) {\n return [param];\n }\n\n this.consumeToken();\n return [param].concat(this.functionParameters());\n },\n\n seriesRefExpression: function() {\n if (!this.match('identifier')) {\n return null;\n }\n\n const value = this.tokens[this.index].value;\n if (!value.match(/\\#[A-Z]/)) {\n return null;\n }\n\n const token = this.consumeToken();\n\n return {\n type: 'series-ref',\n value: token.value,\n };\n },\n\n numericLiteral: function() {\n if (!this.match('number')) {\n return null;\n }\n\n return {\n type: 'number',\n value: parseFloat(this.consumeToken().value),\n };\n },\n\n stringLiteral: function() {\n if (!this.match('string')) {\n return null;\n }\n\n const token = this.consumeToken();\n if (token.isUnclosed) {\n throw { message: 'Unclosed string parameter', pos: token.pos };\n }\n\n return {\n type: 'string',\n value: token.value,\n };\n },\n\n errorMark: function(text) {\n const currentToken = this.tokens[this.index];\n const type = currentToken ? currentToken.type : 'end of string';\n throw {\n message: text + ' instead found ' + type,\n pos: currentToken ? currentToken.pos : this.lexer.char,\n };\n },\n\n // returns token value and incre\n consumeToken: function() {\n this.index++;\n return this.tokens[this.index - 1];\n },\n\n matchToken: function(type, index) {\n const token = this.tokens[this.index + index];\n return (token === undefined && type === '') || (token && token.type === type);\n },\n\n match: function(token1, token2) {\n return this.matchToken(token1, 0) && (!token2 || this.matchToken(token2, 1));\n },\n};\n","import _ from 'lodash';\nimport { Parser } from './parser';\n\nexport default class GraphiteQuery {\n datasource: any;\n target: any;\n functions: any[];\n segments: any[];\n tags: any[];\n error: any;\n seriesByTagUsed: boolean;\n checkOtherSegmentsIndex: number;\n removeTagValue: string;\n templateSrv: any;\n scopedVars: any;\n\n /** @ngInject */\n constructor(datasource, target, templateSrv?, scopedVars?) {\n this.datasource = datasource;\n this.target = target;\n this.templateSrv = templateSrv;\n this.scopedVars = scopedVars;\n this.parseTarget();\n\n this.removeTagValue = '-- remove tag --';\n }\n\n parseTarget() {\n this.functions = [];\n this.segments = [];\n this.tags = [];\n this.error = null;\n\n if (this.target.textEditor) {\n return;\n }\n\n const parser = new Parser(this.target.target);\n const astNode = parser.getAst();\n if (astNode === null) {\n this.checkOtherSegmentsIndex = 0;\n return;\n }\n\n if (astNode.type === 'error') {\n this.error = astNode.message + ' at position: ' + astNode.pos;\n this.target.textEditor = true;\n return;\n }\n\n try {\n this.parseTargetRecursive(astNode, null);\n } catch (err) {\n console.log('error parsing target:', err.message);\n this.error = err.message;\n this.target.textEditor = true;\n }\n\n this.checkOtherSegmentsIndex = this.segments.length - 1;\n this.checkForSeriesByTag();\n }\n\n checkForSeriesByTag() {\n const seriesByTagFunc = _.find(this.functions, func => func.def.name === 'seriesByTag');\n if (seriesByTagFunc) {\n this.seriesByTagUsed = true;\n seriesByTagFunc.hidden = true;\n const tags = this.splitSeriesByTagParams(seriesByTagFunc);\n this.tags = tags;\n }\n }\n\n getSegmentPathUpTo(index) {\n const arr = this.segments.slice(0, index);\n\n return _.reduce(\n arr,\n (result, segment) => {\n return result ? result + '.' + segment.value : segment.value;\n },\n ''\n );\n }\n\n parseTargetRecursive(astNode, func) {\n if (astNode === null) {\n return null;\n }\n\n switch (astNode.type) {\n case 'function':\n const innerFunc = this.datasource.createFuncInstance(astNode.name, {\n withDefaultParams: false,\n });\n _.each(astNode.params, param => {\n this.parseTargetRecursive(param, innerFunc);\n });\n\n innerFunc.updateText();\n this.functions.push(innerFunc);\n break;\n case 'series-ref':\n if (this.segments.length > 0 || this.getSeriesByTagFuncIndex() >= 0) {\n this.addFunctionParameter(func, astNode.value);\n } else {\n this.segments.push(astNode);\n }\n break;\n case 'bool':\n case 'string':\n case 'number':\n this.addFunctionParameter(func, astNode.value);\n break;\n case 'metric':\n if (this.segments.length > 0) {\n this.addFunctionParameter(func, _.join(_.map(astNode.segments, 'value'), '.'));\n } else {\n this.segments = astNode.segments;\n }\n break;\n }\n }\n\n updateSegmentValue(segment, index) {\n this.segments[index].value = segment.value;\n }\n\n addSelectMetricSegment() {\n this.segments.push({ value: 'select metric' });\n }\n\n addFunction(newFunc) {\n this.functions.push(newFunc);\n this.moveAliasFuncLast();\n }\n\n moveAliasFuncLast() {\n const aliasFunc = _.find(this.functions, func => {\n return func.def.name.startsWith('alias');\n });\n\n if (aliasFunc) {\n this.functions = _.without(this.functions, aliasFunc);\n this.functions.push(aliasFunc);\n }\n }\n\n addFunctionParameter(func, value) {\n if (func.params.length >= func.def.params.length && !_.get(_.last(func.def.params), 'multiple', false)) {\n throw { message: 'too many parameters for function ' + func.def.name };\n }\n func.params.push(value);\n }\n\n removeFunction(func) {\n this.functions = _.without(this.functions, func);\n }\n\n moveFunction(func, offset) {\n const index = this.functions.indexOf(func);\n _.move(this.functions, index, index + offset);\n }\n\n updateModelTarget(targets) {\n const wrapFunction = (target: string, func: any) => {\n return func.render(target, (value: string) => {\n return this.templateSrv.replace(value, this.scopedVars);\n });\n };\n\n if (!this.target.textEditor) {\n const metricPath = this.getSegmentPathUpTo(this.segments.length).replace(/\\.select metric$/, '');\n this.target.target = _.reduce(this.functions, wrapFunction, metricPath);\n }\n\n this.updateRenderedTarget(this.target, targets);\n\n // loop through other queries and update targetFull as needed\n for (const target of targets || []) {\n if (target.refId !== this.target.refId) {\n this.updateRenderedTarget(target, targets);\n }\n }\n }\n\n updateRenderedTarget(target, targets) {\n // render nested query\n const targetsByRefId = _.keyBy(targets, 'refId');\n\n // no references to self\n delete targetsByRefId[target.refId];\n\n const nestedSeriesRefRegex = /\\#([A-Z])/g;\n let targetWithNestedQueries = target.target;\n\n // Use ref count to track circular references\n function countTargetRefs(targetsByRefId, refId) {\n let refCount = 0;\n _.each(targetsByRefId, (t, id) => {\n if (id !== refId) {\n const match = nestedSeriesRefRegex.exec(t.target);\n const count = match && match.length ? match.length - 1 : 0;\n refCount += count;\n }\n });\n targetsByRefId[refId].refCount = refCount;\n }\n _.each(targetsByRefId, (t, id) => {\n countTargetRefs(targetsByRefId, id);\n });\n\n // Keep interpolating until there are no query references\n // The reason for the loop is that the referenced query might contain another reference to another query\n while (targetWithNestedQueries.match(nestedSeriesRefRegex)) {\n const updated = targetWithNestedQueries.replace(nestedSeriesRefRegex, (match, g1) => {\n const t = targetsByRefId[g1];\n if (!t) {\n return match;\n }\n\n // no circular references\n if (t.refCount === 0) {\n delete targetsByRefId[g1];\n }\n t.refCount--;\n\n return t.target;\n });\n\n if (updated === targetWithNestedQueries) {\n break;\n }\n\n targetWithNestedQueries = updated;\n }\n\n delete target.targetFull;\n if (target.target !== targetWithNestedQueries) {\n target.targetFull = targetWithNestedQueries;\n }\n }\n\n splitSeriesByTagParams(func) {\n const tagPattern = /([^\\!=~]+)(\\!?=~?)(.*)/;\n return _.flatten(\n _.map(func.params, (param: string) => {\n const matches = tagPattern.exec(param);\n if (matches) {\n const tag = matches.slice(1);\n if (tag.length === 3) {\n return {\n key: tag[0],\n operator: tag[1],\n value: tag[2],\n };\n }\n }\n return [];\n })\n );\n }\n\n getSeriesByTagFuncIndex() {\n return _.findIndex(this.functions, func => func.def.name === 'seriesByTag');\n }\n\n getSeriesByTagFunc() {\n const seriesByTagFuncIndex = this.getSeriesByTagFuncIndex();\n if (seriesByTagFuncIndex >= 0) {\n return this.functions[seriesByTagFuncIndex];\n } else {\n return undefined;\n }\n }\n\n addTag(tag) {\n const newTagParam = renderTagString(tag);\n this.getSeriesByTagFunc().params.push(newTagParam);\n this.tags.push(tag);\n }\n\n removeTag(index) {\n this.getSeriesByTagFunc().params.splice(index, 1);\n this.tags.splice(index, 1);\n }\n\n updateTag(tag, tagIndex) {\n this.error = null;\n\n if (tag.key === this.removeTagValue) {\n this.removeTag(tagIndex);\n return;\n }\n\n const newTagParam = renderTagString(tag);\n this.getSeriesByTagFunc().params[tagIndex] = newTagParam;\n this.tags[tagIndex] = tag;\n }\n\n renderTagExpressions(excludeIndex = -1) {\n return _.compact(\n _.map(this.tags, (tagExpr, index) => {\n // Don't render tag that we want to lookup\n if (index !== excludeIndex) {\n return tagExpr.key + tagExpr.operator + tagExpr.value;\n }\n })\n );\n }\n}\n\nfunction renderTagString(tag) {\n return tag.key + tag.operator + tag.value;\n}\n","import './add_graphite_func';\nimport './func_editor';\n\nimport _ from 'lodash';\nimport GraphiteQuery from './graphite_query';\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport appEvents from 'app/core/app_events';\n\nconst GRAPHITE_TAG_OPERATORS = ['=', '!=', '=~', '!=~'];\nconst TAG_PREFIX = 'tag: ';\n\nexport class GraphiteQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n queryModel: GraphiteQuery;\n segments: any[];\n addTagSegments: any[];\n removeTagValue: string;\n supportsTags: boolean;\n paused: boolean;\n\n /** @ngInject */\n constructor($scope, $injector, private uiSegmentSrv, private templateSrv, $timeout) {\n super($scope, $injector);\n this.supportsTags = this.datasource.supportsTags;\n this.paused = false;\n this.target.target = this.target.target || '';\n\n this.datasource.waitForFuncDefsLoaded().then(() => {\n this.queryModel = new GraphiteQuery(this.datasource, this.target, templateSrv);\n this.buildSegments();\n });\n\n this.removeTagValue = '-- remove tag --';\n }\n\n parseTarget() {\n this.queryModel.parseTarget();\n this.buildSegments();\n }\n\n toggleEditorMode() {\n this.target.textEditor = !this.target.textEditor;\n this.parseTarget();\n }\n\n buildSegments() {\n this.segments = _.map(this.queryModel.segments, segment => {\n return this.uiSegmentSrv.newSegment(segment);\n });\n\n const checkOtherSegmentsIndex = this.queryModel.checkOtherSegmentsIndex || 0;\n this.checkOtherSegments(checkOtherSegmentsIndex);\n\n if (this.queryModel.seriesByTagUsed) {\n this.fixTagSegments();\n }\n }\n\n addSelectMetricSegment() {\n this.queryModel.addSelectMetricSegment();\n this.segments.push(this.uiSegmentSrv.newSelectMetric());\n }\n\n checkOtherSegments(fromIndex) {\n if (this.queryModel.segments.length === 1 && this.queryModel.segments[0].type === 'series-ref') {\n return;\n }\n\n if (fromIndex === 0) {\n this.addSelectMetricSegment();\n return;\n }\n\n const path = this.queryModel.getSegmentPathUpTo(fromIndex + 1);\n if (path === '') {\n return Promise.resolve();\n }\n\n return this.datasource\n .metricFindQuery(path)\n .then(segments => {\n if (segments.length === 0) {\n if (path !== '') {\n this.queryModel.segments = this.queryModel.segments.splice(0, fromIndex);\n this.segments = this.segments.splice(0, fromIndex);\n this.addSelectMetricSegment();\n }\n } else if (segments[0].expandable) {\n if (this.segments.length === fromIndex) {\n this.addSelectMetricSegment();\n } else {\n return this.checkOtherSegments(fromIndex + 1);\n }\n }\n })\n .catch(err => {\n appEvents.emit('alert-error', ['Error', err]);\n });\n }\n\n setSegmentFocus(segmentIndex) {\n _.each(this.segments, (segment, index) => {\n segment.focus = segmentIndex === index;\n });\n }\n\n getAltSegments(index, prefix) {\n let query = prefix && prefix.length > 0 ? '*' + prefix + '*' : '*';\n if (index > 0) {\n query = this.queryModel.getSegmentPathUpTo(index) + '.' + query;\n }\n const options = {\n range: this.panelCtrl.range,\n requestId: 'get-alt-segments',\n };\n\n return this.datasource\n .metricFindQuery(query, options)\n .then(segments => {\n const altSegments = _.map(segments, segment => {\n return this.uiSegmentSrv.newSegment({\n value: segment.text,\n expandable: segment.expandable,\n });\n });\n\n if (index > 0 && altSegments.length === 0) {\n return altSegments;\n }\n\n // add query references\n if (index === 0) {\n _.eachRight(this.panelCtrl.panel.targets, target => {\n if (target.refId === this.queryModel.target.refId) {\n return;\n }\n\n altSegments.unshift(\n this.uiSegmentSrv.newSegment({\n type: 'series-ref',\n value: '#' + target.refId,\n expandable: false,\n })\n );\n });\n }\n\n // add template variables\n _.eachRight(this.templateSrv.variables, variable => {\n altSegments.unshift(\n this.uiSegmentSrv.newSegment({\n type: 'template',\n value: '$' + variable.name,\n expandable: true,\n })\n );\n });\n\n // add wildcard option\n altSegments.unshift(this.uiSegmentSrv.newSegment('*'));\n\n if (this.supportsTags && index === 0) {\n this.removeTaggedEntry(altSegments);\n return this.addAltTagSegments(prefix, altSegments);\n } else {\n return altSegments;\n }\n })\n .catch(err => {\n return [];\n });\n }\n\n addAltTagSegments(prefix, altSegments) {\n return this.getTagsAsSegments(prefix).then(tagSegments => {\n tagSegments = _.map(tagSegments, segment => {\n segment.value = TAG_PREFIX + segment.value;\n return segment;\n });\n return altSegments.concat(...tagSegments);\n });\n }\n\n removeTaggedEntry(altSegments) {\n altSegments = _.remove(altSegments, s => s.value === '_tagged');\n }\n\n segmentValueChanged(segment, segmentIndex) {\n this.error = null;\n this.queryModel.updateSegmentValue(segment, segmentIndex);\n\n if (this.queryModel.functions.length > 0 && this.queryModel.functions[0].def.fake) {\n this.queryModel.functions = [];\n }\n\n if (segment.type === 'tag') {\n const tag = removeTagPrefix(segment.value);\n this.pause();\n this.addSeriesByTagFunc(tag);\n return;\n }\n\n if (segment.expandable) {\n return this.checkOtherSegments(segmentIndex + 1).then(() => {\n this.setSegmentFocus(segmentIndex + 1);\n this.targetChanged();\n });\n } else {\n this.spliceSegments(segmentIndex + 1);\n }\n\n this.setSegmentFocus(segmentIndex + 1);\n this.targetChanged();\n }\n\n spliceSegments(index) {\n this.segments = this.segments.splice(0, index);\n this.queryModel.segments = this.queryModel.segments.splice(0, index);\n }\n\n emptySegments() {\n this.queryModel.segments = [];\n this.segments = [];\n }\n\n targetTextChanged() {\n this.updateModelTarget();\n this.refresh();\n }\n\n updateModelTarget() {\n this.queryModel.updateModelTarget(this.panelCtrl.panel.targets);\n }\n\n targetChanged() {\n if (this.queryModel.error) {\n return;\n }\n\n const oldTarget = this.queryModel.target.target;\n this.updateModelTarget();\n\n if (this.queryModel.target !== oldTarget && !this.paused) {\n this.panelCtrl.refresh();\n }\n }\n\n addFunction(funcDef) {\n const newFunc = this.datasource.createFuncInstance(funcDef, {\n withDefaultParams: true,\n });\n newFunc.added = true;\n this.queryModel.addFunction(newFunc);\n this.smartlyHandleNewAliasByNode(newFunc);\n\n if (this.segments.length === 1 && this.segments[0].fake) {\n this.emptySegments();\n }\n\n if (!newFunc.params.length && newFunc.added) {\n this.targetChanged();\n }\n\n if (newFunc.def.name === 'seriesByTag') {\n this.parseTarget();\n }\n }\n\n removeFunction(func) {\n this.queryModel.removeFunction(func);\n this.targetChanged();\n }\n\n moveFunction(func, offset) {\n this.queryModel.moveFunction(func, offset);\n this.targetChanged();\n }\n\n addSeriesByTagFunc(tag) {\n const newFunc = this.datasource.createFuncInstance('seriesByTag', {\n withDefaultParams: false,\n });\n const tagParam = `${tag}=`;\n newFunc.params = [tagParam];\n this.queryModel.addFunction(newFunc);\n newFunc.added = true;\n\n this.emptySegments();\n this.targetChanged();\n this.parseTarget();\n }\n\n smartlyHandleNewAliasByNode(func) {\n if (func.def.name !== 'aliasByNode') {\n return;\n }\n\n for (let i = 0; i < this.segments.length; i++) {\n if (this.segments[i].value.indexOf('*') >= 0) {\n func.params[0] = i;\n func.added = false;\n this.targetChanged();\n return;\n }\n }\n }\n\n getAllTags() {\n return this.datasource.getTags().then(values => {\n const altTags = _.map(values, 'text');\n altTags.splice(0, 0, this.removeTagValue);\n return mapToDropdownOptions(altTags);\n });\n }\n\n getTags(index, tagPrefix) {\n const tagExpressions = this.queryModel.renderTagExpressions(index);\n return this.datasource.getTagsAutoComplete(tagExpressions, tagPrefix).then(values => {\n const altTags = _.map(values, 'text');\n altTags.splice(0, 0, this.removeTagValue);\n return mapToDropdownOptions(altTags);\n });\n }\n\n getTagsAsSegments(tagPrefix) {\n const tagExpressions = this.queryModel.renderTagExpressions();\n return this.datasource.getTagsAutoComplete(tagExpressions, tagPrefix).then(values => {\n return _.map(values, val => {\n return this.uiSegmentSrv.newSegment({\n value: val.text,\n type: 'tag',\n expandable: false,\n });\n });\n });\n }\n\n getTagOperators() {\n return mapToDropdownOptions(GRAPHITE_TAG_OPERATORS);\n }\n\n getAllTagValues(tag) {\n const tagKey = tag.key;\n return this.datasource.getTagValues(tagKey).then(values => {\n const altValues = _.map(values, 'text');\n return mapToDropdownOptions(altValues);\n });\n }\n\n getTagValues(tag, index, valuePrefix) {\n const tagExpressions = this.queryModel.renderTagExpressions(index);\n const tagKey = tag.key;\n return this.datasource.getTagValuesAutoComplete(tagExpressions, tagKey, valuePrefix).then(values => {\n const altValues = _.map(values, 'text');\n // Add template variables as additional values\n _.eachRight(this.templateSrv.variables, variable => {\n altValues.push('${' + variable.name + ':regex}');\n });\n return mapToDropdownOptions(altValues);\n });\n }\n\n tagChanged(tag, tagIndex) {\n this.queryModel.updateTag(tag, tagIndex);\n this.targetChanged();\n }\n\n addNewTag(segment) {\n const newTagKey = segment.value;\n const newTag = { key: newTagKey, operator: '=', value: '' };\n this.queryModel.addTag(newTag);\n this.targetChanged();\n this.fixTagSegments();\n }\n\n removeTag(index) {\n this.queryModel.removeTag(index);\n this.targetChanged();\n }\n\n fixTagSegments() {\n // Adding tag with the same name as just removed works incorrectly if single segment is used (instead of array)\n this.addTagSegments = [this.uiSegmentSrv.newPlusButton()];\n }\n\n showDelimiter(index) {\n return index !== this.queryModel.tags.length - 1;\n }\n\n pause() {\n this.paused = true;\n }\n\n unpause() {\n this.paused = false;\n this.panelCtrl.refresh();\n }\n\n getCollapsedText() {\n return this.target.target;\n }\n}\n\nfunction mapToDropdownOptions(results) {\n return _.map(results, value => {\n return { text: value, value: value };\n });\n}\n\nfunction removeTagPrefix(value: string): string {\n return value.replace(TAG_PREFIX, '');\n}\n","import angular from 'angular';\nimport coreModule from 'app/core/core_module';\nimport _ from 'lodash';\n\nexport class CloudWatchQueryParameterCtrl {\n /** @ngInject */\n constructor($scope, templateSrv, uiSegmentSrv, datasourceSrv, $q) {\n $scope.init = () => {\n const target = $scope.target;\n target.namespace = target.namespace || '';\n target.metricName = target.metricName || '';\n target.statistics = target.statistics || ['Average'];\n target.dimensions = target.dimensions || {};\n target.period = target.period || '';\n target.region = target.region || 'default';\n target.id = target.id || '';\n target.expression = target.expression || '';\n target.returnData = target.returnData || false;\n target.highResolution = target.highResolution || false;\n\n $scope.regionSegment = uiSegmentSrv.getSegmentForValue($scope.target.region, 'select region');\n $scope.namespaceSegment = uiSegmentSrv.getSegmentForValue($scope.target.namespace, 'select namespace');\n $scope.metricSegment = uiSegmentSrv.getSegmentForValue($scope.target.metricName, 'select metric');\n\n $scope.dimSegments = _.reduce(\n $scope.target.dimensions,\n (memo, value, key) => {\n memo.push(uiSegmentSrv.newKey(key));\n memo.push(uiSegmentSrv.newOperator('='));\n memo.push(uiSegmentSrv.newKeyValue(value));\n return memo;\n },\n []\n );\n\n $scope.statSegments = _.map($scope.target.statistics, stat => {\n return uiSegmentSrv.getSegmentForValue(stat);\n });\n\n $scope.ensurePlusButton($scope.statSegments);\n $scope.ensurePlusButton($scope.dimSegments);\n $scope.removeDimSegment = uiSegmentSrv.newSegment({\n fake: true,\n value: '-- remove dimension --',\n });\n $scope.removeStatSegment = uiSegmentSrv.newSegment({\n fake: true,\n value: '-- remove stat --',\n });\n\n if (_.isEmpty($scope.target.region)) {\n $scope.target.region = 'default';\n }\n\n if (!$scope.onChange) {\n $scope.onChange = () => {};\n }\n };\n\n $scope.getStatSegments = () => {\n return $q.when(\n _.flatten([\n angular.copy($scope.removeStatSegment),\n _.map($scope.datasource.standardStatistics, s => {\n return uiSegmentSrv.getSegmentForValue(s);\n }),\n uiSegmentSrv.getSegmentForValue('pNN.NN'),\n ])\n );\n };\n\n $scope.statSegmentChanged = (segment, index) => {\n if (segment.value === $scope.removeStatSegment.value) {\n $scope.statSegments.splice(index, 1);\n } else {\n segment.type = 'value';\n }\n\n $scope.target.statistics = _.reduce(\n $scope.statSegments,\n (memo, seg) => {\n if (!seg.fake) {\n memo.push(seg.value);\n }\n return memo;\n },\n []\n );\n\n $scope.ensurePlusButton($scope.statSegments);\n $scope.onChange();\n };\n\n $scope.ensurePlusButton = segments => {\n const count = segments.length;\n const lastSegment = segments[Math.max(count - 1, 0)];\n\n if (!lastSegment || lastSegment.type !== 'plus-button') {\n segments.push(uiSegmentSrv.newPlusButton());\n }\n };\n\n $scope.getDimSegments = (segment, $index) => {\n if (segment.type === 'operator') {\n return $q.when([]);\n }\n\n const target = $scope.target;\n let query = $q.when([]);\n\n if (segment.type === 'key' || segment.type === 'plus-button') {\n query = $scope.datasource.getDimensionKeys($scope.target.namespace, $scope.target.region);\n } else if (segment.type === 'value') {\n const dimensionKey = $scope.dimSegments[$index - 2].value;\n delete target.dimensions[dimensionKey];\n query = $scope.datasource.getDimensionValues(\n target.region,\n target.namespace,\n target.metricName,\n dimensionKey,\n target.dimensions\n );\n }\n\n return query.then($scope.transformToSegments(true)).then(results => {\n if (segment.type === 'key') {\n results.splice(0, 0, angular.copy($scope.removeDimSegment));\n }\n return results;\n });\n };\n\n $scope.dimSegmentChanged = (segment, index) => {\n $scope.dimSegments[index] = segment;\n\n if (segment.value === $scope.removeDimSegment.value) {\n $scope.dimSegments.splice(index, 3);\n } else if (segment.type === 'plus-button') {\n $scope.dimSegments.push(uiSegmentSrv.newOperator('='));\n $scope.dimSegments.push(uiSegmentSrv.newFake('select dimension value', 'value', 'query-segment-value'));\n segment.type = 'key';\n segment.cssClass = 'query-segment-key';\n }\n\n $scope.syncDimSegmentsWithModel();\n $scope.ensurePlusButton($scope.dimSegments);\n $scope.onChange();\n };\n\n $scope.syncDimSegmentsWithModel = () => {\n const dims = {};\n const length = $scope.dimSegments.length;\n\n for (let i = 0; i < length - 2; i += 3) {\n const keySegment = $scope.dimSegments[i];\n const valueSegment = $scope.dimSegments[i + 2];\n if (!valueSegment.fake) {\n dims[keySegment.value] = valueSegment.value;\n }\n }\n\n $scope.target.dimensions = dims;\n };\n\n $scope.getRegions = () => {\n return $scope.datasource\n .metricFindQuery('regions()')\n .then(results => {\n results.unshift({ text: 'default' });\n return results;\n })\n .then($scope.transformToSegments(true));\n };\n\n $scope.getNamespaces = () => {\n return $scope.datasource.metricFindQuery('namespaces()').then($scope.transformToSegments(true));\n };\n\n $scope.getMetrics = () => {\n return $scope.datasource\n .metricFindQuery('metrics(' + $scope.target.namespace + ',' + $scope.target.region + ')')\n .then($scope.transformToSegments(true));\n };\n\n $scope.regionChanged = () => {\n $scope.target.region = $scope.regionSegment.value;\n $scope.onChange();\n };\n\n $scope.namespaceChanged = () => {\n $scope.target.namespace = $scope.namespaceSegment.value;\n $scope.onChange();\n };\n\n $scope.metricChanged = () => {\n $scope.target.metricName = $scope.metricSegment.value;\n $scope.onChange();\n };\n\n $scope.transformToSegments = addTemplateVars => {\n return results => {\n const segments = _.map(results, segment => {\n return uiSegmentSrv.newSegment({\n value: segment.text,\n expandable: segment.expandable,\n });\n });\n\n if (addTemplateVars) {\n _.each(templateSrv.variables, variable => {\n segments.unshift(\n uiSegmentSrv.newSegment({\n type: 'template',\n value: '$' + variable.name,\n expandable: true,\n })\n );\n });\n }\n\n return segments;\n };\n };\n\n $scope.init();\n }\n}\n\nexport function cloudWatchQueryParameter() {\n return {\n templateUrl: 'public/app/plugins/datasource/cloudwatch/partials/query.parameter.html',\n controller: CloudWatchQueryParameterCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cloudwatchQueryParameter', cloudWatchQueryParameter);\n","export class GraphiteConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/graphite/partials/config.html';\n datasourceSrv: any;\n current: any;\n\n /** @ngInject */\n constructor($scope, datasourceSrv) {\n this.datasourceSrv = datasourceSrv;\n this.current.jsonData = this.current.jsonData || {};\n this.current.jsonData.graphiteVersion = this.current.jsonData.graphiteVersion || '0.9';\n this.autoDetectGraphiteVersion();\n }\n\n autoDetectGraphiteVersion() {\n if (!this.current.id) {\n return;\n }\n\n this.datasourceSrv\n .loadDatasource(this.current.name)\n .then(ds => {\n return ds.getVersion();\n })\n .then(version => {\n this.graphiteVersions.push({ name: version, value: version });\n this.current.jsonData.graphiteVersion = version;\n });\n }\n\n graphiteVersions = [\n { name: '0.9.x', value: '0.9' },\n { name: '1.0.x', value: '1.0' },\n { name: '1.1.x', value: '1.1' },\n ];\n}\n","import { GraphiteDatasource } from './datasource';\nimport { GraphiteQueryCtrl } from './query_ctrl';\nimport { GraphiteConfigCtrl } from './config_ctrl';\n\nclass AnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n GraphiteDatasource as Datasource,\n GraphiteQueryCtrl as QueryCtrl,\n GraphiteConfigCtrl as ConfigCtrl,\n AnnotationsQueryCtrl,\n};\n","import angular from 'angular';\nimport _ from 'lodash';\nimport * as dateMath from 'app/core/utils/datemath';\nimport kbn from 'app/core/utils/kbn';\nimport * as templatingVariable from 'app/features/templating/variable';\n// import * as moment from 'moment';\n\nexport default class CloudWatchDatasource {\n type: any;\n name: any;\n proxyUrl: any;\n defaultRegion: any;\n instanceSettings: any;\n standardStatistics: any;\n /** @ngInject */\n constructor(instanceSettings, private $q, private backendSrv, private templateSrv, private timeSrv) {\n this.type = 'cloudwatch';\n this.name = instanceSettings.name;\n this.proxyUrl = instanceSettings.url;\n this.defaultRegion = instanceSettings.jsonData.defaultRegion;\n this.instanceSettings = instanceSettings;\n this.standardStatistics = ['Average', 'Maximum', 'Minimum', 'Sum', 'SampleCount'];\n }\n\n query(options) {\n options = angular.copy(options);\n options.targets = this.expandTemplateVariable(options.targets, options.scopedVars, this.templateSrv);\n\n const queries = _.filter(options.targets, item => {\n return (\n (item.id !== '' || item.hide !== true) &&\n ((!!item.region && !!item.namespace && !!item.metricName && !_.isEmpty(item.statistics)) ||\n item.expression.length > 0)\n );\n }).map(item => {\n item.region = this.templateSrv.replace(this.getActualRegion(item.region), options.scopedVars);\n item.namespace = this.templateSrv.replace(item.namespace, options.scopedVars);\n item.metricName = this.templateSrv.replace(item.metricName, options.scopedVars);\n item.dimensions = this.convertDimensionFormat(item.dimensions, options.scopedVars);\n item.statistics = item.statistics.map(s => {\n return this.templateSrv.replace(s, options.scopedVars);\n });\n item.period = String(this.getPeriod(item, options)); // use string format for period in graph query, and alerting\n item.id = this.templateSrv.replace(item.id, options.scopedVars);\n item.expression = this.templateSrv.replace(item.expression, options.scopedVars);\n item.returnData = typeof item.hide === 'undefined' ? true : !item.hide;\n\n // valid ExtendedStatistics is like p90.00, check the pattern\n const hasInvalidStatistics = item.statistics.some(s => {\n if (s.indexOf('p') === 0) {\n const matches = /^p\\d{2}(?:\\.\\d{1,2})?$/.exec(s);\n return !matches || matches[0] !== s;\n }\n\n return false;\n });\n\n if (hasInvalidStatistics) {\n throw { message: 'Invalid extended statistics' };\n }\n\n return _.extend(\n {\n refId: item.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.instanceSettings.id,\n type: 'timeSeriesQuery',\n },\n item\n );\n });\n\n // No valid targets, return the empty result to save a round trip.\n if (_.isEmpty(queries)) {\n const d = this.$q.defer();\n d.resolve({ data: [] });\n return d.promise;\n }\n\n const request = {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: queries,\n };\n\n return this.performTimeSeriesQuery(request);\n }\n\n getPeriod(target, options, now?) {\n const start = this.convertToCloudWatchTime(options.range.from, false);\n const end = this.convertToCloudWatchTime(options.range.to, true);\n now = Math.round((now || Date.now()) / 1000);\n\n let period;\n const range = end - start;\n\n const hourSec = 60 * 60;\n const daySec = hourSec * 24;\n let periodUnit = 60;\n if (!target.period) {\n if (now - start <= daySec * 15) {\n // until 15 days ago\n if (target.namespace === 'AWS/EC2') {\n periodUnit = period = 300;\n } else {\n periodUnit = period = 60;\n }\n } else if (now - start <= daySec * 63) {\n // until 63 days ago\n periodUnit = period = 60 * 5;\n } else if (now - start <= daySec * 455) {\n // until 455 days ago\n periodUnit = period = 60 * 60;\n } else {\n // over 455 days, should return error, but try to long period\n periodUnit = period = 60 * 60;\n }\n } else {\n if (/^\\d+$/.test(target.period)) {\n period = parseInt(target.period, 10);\n } else {\n period = kbn.interval_to_seconds(this.templateSrv.replace(target.period, options.scopedVars));\n }\n }\n if (period < 1) {\n period = 1;\n }\n if (!target.highResolution && range / period >= 1440) {\n period = Math.ceil(range / 1440 / periodUnit) * periodUnit;\n }\n\n return period;\n }\n\n performTimeSeriesQuery(request) {\n return this.awsRequest('/api/tsdb/query', request).then(res => {\n const data = [];\n\n if (res.results) {\n _.forEach(res.results, queryRes => {\n _.forEach(queryRes.series, series => {\n const s = { target: series.name, datapoints: series.points } as any;\n if (queryRes.meta.unit) {\n s.unit = queryRes.meta.unit;\n }\n data.push(s);\n });\n });\n }\n\n return { data: data };\n });\n }\n\n transformSuggestDataFromTable(suggestData) {\n return _.map(suggestData.results['metricFindQuery'].tables[0].rows, v => {\n return {\n text: v[0],\n value: v[1],\n };\n });\n }\n\n doMetricQueryRequest(subtype, parameters) {\n const range = this.timeSrv.timeRange();\n return this.awsRequest('/api/tsdb/query', {\n from: range.from.valueOf().toString(),\n to: range.to.valueOf().toString(),\n queries: [\n _.extend(\n {\n refId: 'metricFindQuery',\n intervalMs: 1, // dummy\n maxDataPoints: 1, // dummy\n datasourceId: this.instanceSettings.id,\n type: 'metricFindQuery',\n subtype: subtype,\n },\n parameters\n ),\n ],\n }).then(r => {\n return this.transformSuggestDataFromTable(r);\n });\n }\n\n getRegions() {\n return this.doMetricQueryRequest('regions', null);\n }\n\n getNamespaces() {\n return this.doMetricQueryRequest('namespaces', null);\n }\n\n getMetrics(namespace, region) {\n return this.doMetricQueryRequest('metrics', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n namespace: this.templateSrv.replace(namespace),\n });\n }\n\n getDimensionKeys(namespace, region) {\n return this.doMetricQueryRequest('dimension_keys', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n namespace: this.templateSrv.replace(namespace),\n });\n }\n\n getDimensionValues(region, namespace, metricName, dimensionKey, filterDimensions) {\n return this.doMetricQueryRequest('dimension_values', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n namespace: this.templateSrv.replace(namespace),\n metricName: this.templateSrv.replace(metricName),\n dimensionKey: this.templateSrv.replace(dimensionKey),\n dimensions: this.convertDimensionFormat(filterDimensions, {}),\n });\n }\n\n getEbsVolumeIds(region, instanceId) {\n return this.doMetricQueryRequest('ebs_volume_ids', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n instanceId: this.templateSrv.replace(instanceId),\n });\n }\n\n getEc2InstanceAttribute(region, attributeName, filters) {\n return this.doMetricQueryRequest('ec2_instance_attribute', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n attributeName: this.templateSrv.replace(attributeName),\n filters: filters,\n });\n }\n\n getResourceARNs(region, resourceType, tags) {\n return this.doMetricQueryRequest('resource_arns', {\n region: this.templateSrv.replace(this.getActualRegion(region)),\n resourceType: this.templateSrv.replace(resourceType),\n tags: tags,\n });\n }\n\n metricFindQuery(query) {\n let region;\n let namespace;\n let metricName;\n let filterJson;\n\n const regionQuery = query.match(/^regions\\(\\)/);\n if (regionQuery) {\n return this.getRegions();\n }\n\n const namespaceQuery = query.match(/^namespaces\\(\\)/);\n if (namespaceQuery) {\n return this.getNamespaces();\n }\n\n const metricNameQuery = query.match(/^metrics\\(([^\\)]+?)(,\\s?([^,]+?))?\\)/);\n if (metricNameQuery) {\n namespace = metricNameQuery[1];\n region = metricNameQuery[3];\n return this.getMetrics(namespace, region);\n }\n\n const dimensionKeysQuery = query.match(/^dimension_keys\\(([^\\)]+?)(,\\s?([^,]+?))?\\)/);\n if (dimensionKeysQuery) {\n namespace = dimensionKeysQuery[1];\n region = dimensionKeysQuery[3];\n return this.getDimensionKeys(namespace, region);\n }\n\n const dimensionValuesQuery = query.match(\n /^dimension_values\\(([^,]+?),\\s?([^,]+?),\\s?([^,]+?),\\s?([^,]+?)(,\\s?(.+))?\\)/\n );\n if (dimensionValuesQuery) {\n region = dimensionValuesQuery[1];\n namespace = dimensionValuesQuery[2];\n metricName = dimensionValuesQuery[3];\n const dimensionKey = dimensionValuesQuery[4];\n filterJson = {};\n if (dimensionValuesQuery[6]) {\n filterJson = JSON.parse(this.templateSrv.replace(dimensionValuesQuery[6]));\n }\n\n return this.getDimensionValues(region, namespace, metricName, dimensionKey, filterJson);\n }\n\n const ebsVolumeIdsQuery = query.match(/^ebs_volume_ids\\(([^,]+?),\\s?([^,]+?)\\)/);\n if (ebsVolumeIdsQuery) {\n region = ebsVolumeIdsQuery[1];\n const instanceId = ebsVolumeIdsQuery[2];\n return this.getEbsVolumeIds(region, instanceId);\n }\n\n const ec2InstanceAttributeQuery = query.match(/^ec2_instance_attribute\\(([^,]+?),\\s?([^,]+?),\\s?(.+?)\\)/);\n if (ec2InstanceAttributeQuery) {\n region = ec2InstanceAttributeQuery[1];\n const targetAttributeName = ec2InstanceAttributeQuery[2];\n filterJson = JSON.parse(this.templateSrv.replace(ec2InstanceAttributeQuery[3]));\n return this.getEc2InstanceAttribute(region, targetAttributeName, filterJson);\n }\n\n const resourceARNsQuery = query.match(/^resource_arns\\(([^,]+?),\\s?([^,]+?),\\s?(.+?)\\)/);\n if (resourceARNsQuery) {\n region = resourceARNsQuery[1];\n const resourceType = resourceARNsQuery[2];\n const tagsJSON = JSON.parse(this.templateSrv.replace(resourceARNsQuery[3]));\n return this.getResourceARNs(region, resourceType, tagsJSON);\n }\n\n return this.$q.when([]);\n }\n\n annotationQuery(options) {\n const annotation = options.annotation;\n const statistics = _.map(annotation.statistics, s => {\n return this.templateSrv.replace(s);\n });\n const defaultPeriod = annotation.prefixMatching ? '' : '300';\n let period = annotation.period || defaultPeriod;\n period = parseInt(period, 10);\n const parameters = {\n prefixMatching: annotation.prefixMatching,\n region: this.templateSrv.replace(this.getActualRegion(annotation.region)),\n namespace: this.templateSrv.replace(annotation.namespace),\n metricName: this.templateSrv.replace(annotation.metricName),\n dimensions: this.convertDimensionFormat(annotation.dimensions, {}),\n statistics: statistics,\n period: period,\n actionPrefix: annotation.actionPrefix || '',\n alarmNamePrefix: annotation.alarmNamePrefix || '',\n };\n\n return this.awsRequest('/api/tsdb/query', {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [\n _.extend(\n {\n refId: 'annotationQuery',\n intervalMs: 1, // dummy\n maxDataPoints: 1, // dummy\n datasourceId: this.instanceSettings.id,\n type: 'annotationQuery',\n },\n parameters\n ),\n ],\n }).then(r => {\n return _.map(r.results['annotationQuery'].tables[0].rows, v => {\n return {\n annotation: annotation,\n time: Date.parse(v[0]),\n title: v[1],\n tags: [v[2]],\n text: v[3],\n };\n });\n });\n }\n\n targetContainsTemplate(target) {\n return (\n this.templateSrv.variableExists(target.region) ||\n this.templateSrv.variableExists(target.namespace) ||\n this.templateSrv.variableExists(target.metricName) ||\n _.find(target.dimensions, (v, k) => {\n return this.templateSrv.variableExists(k) || this.templateSrv.variableExists(v);\n })\n );\n }\n\n testDatasource() {\n /* use billing metrics for test */\n const region = this.defaultRegion;\n const namespace = 'AWS/Billing';\n const metricName = 'EstimatedCharges';\n const dimensions = {};\n\n return this.getDimensionValues(region, namespace, metricName, 'ServiceName', dimensions).then(() => {\n return { status: 'success', message: 'Data source is working' };\n });\n }\n\n awsRequest(url, data) {\n const options = {\n method: 'POST',\n url: url,\n data: data,\n };\n\n return this.backendSrv.datasourceRequest(options).then(result => {\n return result.data;\n });\n }\n\n getDefaultRegion() {\n return this.defaultRegion;\n }\n\n getActualRegion(region) {\n if (region === 'default' || _.isEmpty(region)) {\n return this.getDefaultRegion();\n }\n return region;\n }\n\n getExpandedVariables(target, dimensionKey, variable, templateSrv) {\n /* if the all checkbox is marked we should add all values to the targets */\n const allSelected = _.find(variable.options, { selected: true, text: 'All' });\n const selectedVariables = _.filter(variable.options, v => {\n if (allSelected) {\n return v.text !== 'All';\n } else {\n return v.selected;\n }\n });\n const currentVariables = !_.isArray(variable.current.value)\n ? [variable.current]\n : variable.current.value.map(v => {\n return {\n text: v,\n value: v,\n };\n });\n const useSelectedVariables =\n selectedVariables.some(s => {\n return s.value === currentVariables[0].value;\n }) || currentVariables[0].value === '$__all';\n return (useSelectedVariables ? selectedVariables : currentVariables).map(v => {\n const t = angular.copy(target);\n const scopedVar = {};\n scopedVar[variable.name] = v;\n t.refId = target.refId + '_' + v.value;\n t.dimensions[dimensionKey] = templateSrv.replace(t.dimensions[dimensionKey], scopedVar);\n if (variable.multi && target.id) {\n t.id = target.id + window.btoa(v.value).replace(/=/g, '0'); // generate unique id\n } else {\n t.id = target.id;\n }\n return t;\n });\n }\n\n expandTemplateVariable(targets, scopedVars, templateSrv) {\n // Datasource and template srv logic uber-complected. This should be cleaned up.\n return _.chain(targets)\n .map(target => {\n const dimensionKey = _.findKey(target.dimensions, v => {\n return templateSrv.variableExists(v) && !_.has(scopedVars, templateSrv.getVariableName(v));\n });\n\n if (dimensionKey) {\n const multiVariable = _.find(templateSrv.variables, variable => {\n return (\n templatingVariable.containsVariable(target.dimensions[dimensionKey], variable.name) && variable.multi\n );\n });\n const variable = _.find(templateSrv.variables, variable => {\n return templatingVariable.containsVariable(target.dimensions[dimensionKey], variable.name);\n });\n return this.getExpandedVariables(target, dimensionKey, multiVariable || variable, templateSrv);\n } else {\n return [target];\n }\n })\n .flatten()\n .value();\n }\n\n convertToCloudWatchTime(date, roundUp) {\n if (_.isString(date)) {\n date = dateMath.parse(date, roundUp);\n }\n return Math.round(date.valueOf() / 1000);\n }\n\n convertDimensionFormat(dimensions, scopedVars) {\n const convertedDimensions = {};\n _.each(dimensions, (value, key) => {\n convertedDimensions[this.templateSrv.replace(key, scopedVars)] = this.templateSrv.replace(value, scopedVars);\n });\n return convertedDimensions;\n }\n}\n","import _ from 'lodash';\nexport class CloudWatchConfigCtrl {\n static templateUrl = 'partials/config.html';\n current: any;\n datasourceSrv: any;\n\n accessKeyExist = false;\n secretKeyExist = false;\n\n /** @ngInject */\n constructor($scope, datasourceSrv) {\n this.current.jsonData.timeField = this.current.jsonData.timeField || '@timestamp';\n this.current.jsonData.authType = this.current.jsonData.authType || 'credentials';\n\n this.accessKeyExist = this.current.secureJsonFields.accessKey;\n this.secretKeyExist = this.current.secureJsonFields.secretKey;\n this.datasourceSrv = datasourceSrv;\n this.getRegions();\n }\n\n resetAccessKey() {\n this.accessKeyExist = false;\n }\n\n resetSecretKey() {\n this.secretKeyExist = false;\n }\n\n authTypes = [\n { name: 'Access & secret key', value: 'keys' },\n { name: 'Credentials file', value: 'credentials' },\n { name: 'ARN', value: 'arn' },\n ];\n\n indexPatternTypes = [\n { name: 'No pattern', value: undefined },\n { name: 'Hourly', value: 'Hourly', example: '[logstash-]YYYY.MM.DD.HH' },\n { name: 'Daily', value: 'Daily', example: '[logstash-]YYYY.MM.DD' },\n { name: 'Weekly', value: 'Weekly', example: '[logstash-]GGGG.WW' },\n { name: 'Monthly', value: 'Monthly', example: '[logstash-]YYYY.MM' },\n { name: 'Yearly', value: 'Yearly', example: '[logstash-]YYYY' },\n ];\n\n regions = [\n 'ap-northeast-1',\n 'ap-northeast-2',\n 'ap-northeast-3',\n 'ap-south-1',\n 'ap-southeast-1',\n 'ap-southeast-2',\n 'ca-central-1',\n 'cn-north-1',\n 'cn-northwest-1',\n 'eu-central-1',\n 'eu-north-1',\n 'eu-west-1',\n 'eu-west-2',\n 'eu-west-3',\n 'me-south-1',\n 'sa-east-1',\n 'us-east-1',\n 'us-east-2',\n 'us-gov-east-1',\n 'us-gov-west-1',\n 'us-iso-east-1',\n 'us-isob-east-1',\n 'us-west-1',\n 'us-west-2',\n ];\n\n getRegions() {\n this.datasourceSrv\n .loadDatasource(this.current.name)\n .then(ds => {\n return ds.getRegions();\n })\n .then(\n regions => {\n this.regions = _.map(regions, 'value');\n },\n err => {\n console.error('failed to get latest regions');\n }\n );\n }\n}\n","import './query_parameter_ctrl';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nexport class CloudWatchQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n aliasSyntax: string;\n\n /** @ngInject */\n constructor($scope, $injector) {\n super($scope, $injector);\n this.aliasSyntax = '{{metric}} {{stat}} {{namespace}} {{region}} {{}}';\n }\n}\n","import './query_parameter_ctrl';\n\nimport CloudWatchDatasource from './datasource';\nimport { CloudWatchQueryCtrl } from './query_ctrl';\nimport { CloudWatchConfigCtrl } from './config_ctrl';\n\nclass CloudWatchAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n CloudWatchDatasource as Datasource,\n CloudWatchQueryCtrl as QueryCtrl,\n CloudWatchConfigCtrl as ConfigCtrl,\n CloudWatchAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\n\nexport const metricAggTypes = [\n { text: 'Count', value: 'count', requiresField: false },\n {\n text: 'Average',\n value: 'avg',\n requiresField: true,\n supportsInlineScript: true,\n supportsMissing: true,\n },\n {\n text: 'Sum',\n value: 'sum',\n requiresField: true,\n supportsInlineScript: true,\n supportsMissing: true,\n },\n {\n text: 'Max',\n value: 'max',\n requiresField: true,\n supportsInlineScript: true,\n supportsMissing: true,\n },\n {\n text: 'Min',\n value: 'min',\n requiresField: true,\n supportsInlineScript: true,\n supportsMissing: true,\n },\n {\n text: 'Extended Stats',\n value: 'extended_stats',\n requiresField: true,\n supportsMissing: true,\n supportsInlineScript: true,\n },\n {\n text: 'Percentiles',\n value: 'percentiles',\n requiresField: true,\n supportsMissing: true,\n supportsInlineScript: true,\n },\n {\n text: 'Unique Count',\n value: 'cardinality',\n requiresField: true,\n supportsMissing: true,\n },\n {\n text: 'Moving Average',\n value: 'moving_avg',\n requiresField: false,\n isPipelineAgg: true,\n minVersion: 2,\n },\n {\n text: 'Derivative',\n value: 'derivative',\n requiresField: false,\n isPipelineAgg: true,\n minVersion: 2,\n },\n {\n text: 'Bucket Script',\n value: 'bucket_script',\n requiresField: false,\n isPipelineAgg: true,\n supportsMultipleBucketPaths: true,\n minVersion: 2,\n },\n { text: 'Raw Document', value: 'raw_document', requiresField: false },\n];\n\nexport const bucketAggTypes = [\n { text: 'Terms', value: 'terms', requiresField: true },\n { text: 'Filters', value: 'filters' },\n { text: 'Geo Hash Grid', value: 'geohash_grid', requiresField: true },\n { text: 'Date Histogram', value: 'date_histogram', requiresField: true },\n { text: 'Histogram', value: 'histogram', requiresField: true },\n];\n\nexport const orderByOptions = [{ text: 'Doc Count', value: '_count' }, { text: 'Term value', value: '_term' }];\n\nexport const orderOptions = [{ text: 'Top', value: 'desc' }, { text: 'Bottom', value: 'asc' }];\n\nexport const sizeOptions = [\n { text: 'No limit', value: '0' },\n { text: '1', value: '1' },\n { text: '2', value: '2' },\n { text: '3', value: '3' },\n { text: '5', value: '5' },\n { text: '10', value: '10' },\n { text: '15', value: '15' },\n { text: '20', value: '20' },\n];\n\nexport const extendedStats = [\n { text: 'Avg', value: 'avg' },\n { text: 'Min', value: 'min' },\n { text: 'Max', value: 'max' },\n { text: 'Sum', value: 'sum' },\n { text: 'Count', value: 'count' },\n { text: 'Std Dev', value: 'std_deviation' },\n { text: 'Std Dev Upper', value: 'std_deviation_bounds_upper' },\n { text: 'Std Dev Lower', value: 'std_deviation_bounds_lower' },\n];\n\nexport const intervalOptions = [\n { text: 'auto', value: 'auto' },\n { text: '10s', value: '10s' },\n { text: '1m', value: '1m' },\n { text: '5m', value: '5m' },\n { text: '10m', value: '10m' },\n { text: '20m', value: '20m' },\n { text: '1h', value: '1h' },\n { text: '1d', value: '1d' },\n];\n\nexport const movingAvgModelOptions = [\n { text: 'Simple', value: 'simple' },\n { text: 'Linear', value: 'linear' },\n { text: 'Exponentially Weighted', value: 'ewma' },\n { text: 'Holt Linear', value: 'holt' },\n { text: 'Holt Winters', value: 'holt_winters' },\n];\n\nexport const pipelineOptions = {\n moving_avg: [\n { text: 'window', default: 5 },\n { text: 'model', default: 'simple' },\n { text: 'predict', default: undefined },\n { text: 'minimize', default: false },\n ],\n derivative: [{ text: 'unit', default: undefined }],\n bucket_script: [],\n};\n\nexport const movingAvgModelSettings = {\n simple: [],\n linear: [],\n ewma: [{ text: 'Alpha', value: 'alpha', default: undefined }],\n holt: [{ text: 'Alpha', value: 'alpha', default: undefined }, { text: 'Beta', value: 'beta', default: undefined }],\n holt_winters: [\n { text: 'Alpha', value: 'alpha', default: undefined },\n { text: 'Beta', value: 'beta', default: undefined },\n { text: 'Gamma', value: 'gamma', default: undefined },\n { text: 'Period', value: 'period', default: undefined },\n { text: 'Pad', value: 'pad', default: undefined, isCheckbox: true },\n ],\n};\n\nexport function getMetricAggTypes(esVersion) {\n return _.filter(metricAggTypes, f => {\n if (f.minVersion) {\n return f.minVersion <= esVersion;\n } else {\n return true;\n }\n });\n}\n\nexport function getPipelineOptions(metric) {\n if (!isPipelineAgg(metric.type)) {\n return [];\n }\n\n return pipelineOptions[metric.type];\n}\n\nexport function isPipelineAgg(metricType) {\n if (metricType) {\n const po = pipelineOptions[metricType];\n return po !== null && po !== undefined;\n }\n\n return false;\n}\n\nexport function isPipelineAggWithMultipleBucketPaths(metricType) {\n if (metricType) {\n return metricAggTypes.find(t => t.value === metricType && t.supportsMultipleBucketPaths) !== undefined;\n }\n\n return false;\n}\n\nexport function getPipelineAggOptions(targets) {\n const result = [];\n _.each(targets.metrics, metric => {\n if (!isPipelineAgg(metric.type)) {\n result.push({ text: describeMetric(metric), value: metric.id });\n }\n });\n\n return result;\n}\n\nexport function getMovingAvgSettings(model, filtered) {\n const filteredResult = [];\n if (filtered) {\n _.each(movingAvgModelSettings[model], setting => {\n if (!setting.isCheckbox) {\n filteredResult.push(setting);\n }\n });\n return filteredResult;\n }\n return movingAvgModelSettings[model];\n}\n\nexport function getOrderByOptions(target) {\n const metricRefs = [];\n _.each(target.metrics, metric => {\n if (metric.type !== 'count') {\n metricRefs.push({ text: describeMetric(metric), value: metric.id });\n }\n });\n\n return orderByOptions.concat(metricRefs);\n}\n\nexport function describeOrder(order) {\n const def = _.find(orderOptions, { value: order });\n return def.text;\n}\n\nexport function describeMetric(metric) {\n const def = _.find(metricAggTypes, { value: metric.type });\n if (!def.requiresField && !isPipelineAgg(metric.type)) {\n return def.text;\n }\n return def.text + ' ' + metric.field;\n}\n\nexport function describeOrderBy(orderBy, target) {\n const def = _.find(orderByOptions, { value: orderBy });\n if (def) {\n return def.text;\n }\n const metric = _.find(target.metrics, { id: orderBy });\n if (metric) {\n return describeMetric(metric);\n } else {\n return 'metric not found';\n }\n}\n\nexport function defaultMetricAgg() {\n return { type: 'count', id: '1' };\n}\n\nexport function defaultBucketAgg() {\n return { type: 'date_histogram', id: '2', settings: { interval: 'auto' } };\n}\n\nexport const findMetricById = (metrics: any[], id: any) => {\n return _.find(metrics, { id: id });\n};\n","import _ from 'lodash';\nimport * as queryDef from './query_def';\nimport TableModel from 'app/core/table_model';\n\nexport class ElasticResponse {\n constructor(private targets, private response) {\n this.targets = targets;\n this.response = response;\n }\n\n processMetrics(esAgg, target, seriesList, props) {\n let metric, y, i, newSeries, bucket, value;\n\n for (y = 0; y < target.metrics.length; y++) {\n metric = target.metrics[y];\n if (metric.hide) {\n continue;\n }\n\n switch (metric.type) {\n case 'count': {\n newSeries = { datapoints: [], metric: 'count', props: props };\n for (i = 0; i < esAgg.buckets.length; i++) {\n bucket = esAgg.buckets[i];\n value = bucket.doc_count;\n newSeries.datapoints.push([value, bucket.key]);\n }\n seriesList.push(newSeries);\n break;\n }\n case 'percentiles': {\n if (esAgg.buckets.length === 0) {\n break;\n }\n\n const firstBucket = esAgg.buckets[0];\n const percentiles = firstBucket[metric.id].values;\n\n for (const percentileName in percentiles) {\n newSeries = {\n datapoints: [],\n metric: 'p' + percentileName,\n props: props,\n field: metric.field,\n };\n\n for (i = 0; i < esAgg.buckets.length; i++) {\n bucket = esAgg.buckets[i];\n const values = bucket[metric.id].values;\n newSeries.datapoints.push([values[percentileName], bucket.key]);\n }\n seriesList.push(newSeries);\n }\n\n break;\n }\n case 'extended_stats': {\n for (const statName in metric.meta) {\n if (!metric.meta[statName]) {\n continue;\n }\n\n newSeries = {\n datapoints: [],\n metric: statName,\n props: props,\n field: metric.field,\n };\n\n for (i = 0; i < esAgg.buckets.length; i++) {\n bucket = esAgg.buckets[i];\n const stats = bucket[metric.id];\n\n // add stats that are in nested obj to top level obj\n stats.std_deviation_bounds_upper = stats.std_deviation_bounds.upper;\n stats.std_deviation_bounds_lower = stats.std_deviation_bounds.lower;\n\n newSeries.datapoints.push([stats[statName], bucket.key]);\n }\n\n seriesList.push(newSeries);\n }\n\n break;\n }\n default: {\n newSeries = {\n datapoints: [],\n metric: metric.type,\n field: metric.field,\n metricId: metric.id,\n props: props,\n };\n for (i = 0; i < esAgg.buckets.length; i++) {\n bucket = esAgg.buckets[i];\n\n value = bucket[metric.id];\n if (value !== undefined) {\n if (value.normalized_value) {\n newSeries.datapoints.push([value.normalized_value, bucket.key]);\n } else {\n newSeries.datapoints.push([value.value, bucket.key]);\n }\n }\n }\n seriesList.push(newSeries);\n break;\n }\n }\n }\n }\n\n processAggregationDocs(esAgg, aggDef, target, table, props) {\n // add columns\n if (table.columns.length === 0) {\n for (const propKey of _.keys(props)) {\n table.addColumn({ text: propKey, filterable: true });\n }\n table.addColumn({ text: aggDef.field, filterable: true });\n }\n\n // helper func to add values to value array\n const addMetricValue = (values, metricName, value) => {\n table.addColumn({ text: metricName });\n values.push(value);\n };\n\n for (const bucket of esAgg.buckets) {\n const values = [];\n\n for (const propValues of _.values(props)) {\n values.push(propValues);\n }\n\n // add bucket key (value)\n values.push(bucket.key);\n\n for (const metric of target.metrics) {\n switch (metric.type) {\n case 'count': {\n addMetricValue(values, this.getMetricName(metric.type), bucket.doc_count);\n break;\n }\n case 'extended_stats': {\n for (const statName in metric.meta) {\n if (!metric.meta[statName]) {\n continue;\n }\n\n const stats = bucket[metric.id];\n // add stats that are in nested obj to top level obj\n stats.std_deviation_bounds_upper = stats.std_deviation_bounds.upper;\n stats.std_deviation_bounds_lower = stats.std_deviation_bounds.lower;\n\n addMetricValue(values, this.getMetricName(statName), stats[statName]);\n }\n break;\n }\n default: {\n let metricName = this.getMetricName(metric.type);\n const otherMetrics = _.filter(target.metrics, { type: metric.type });\n\n // if more of the same metric type include field field name in property\n if (otherMetrics.length > 1) {\n metricName += ' ' + metric.field;\n }\n\n addMetricValue(values, metricName, bucket[metric.id].value);\n break;\n }\n }\n }\n\n table.rows.push(values);\n }\n }\n\n // This is quite complex\n // need to recurise down the nested buckets to build series\n processBuckets(aggs, target, seriesList, table, props, depth) {\n let bucket, aggDef, esAgg, aggId;\n const maxDepth = target.bucketAggs.length - 1;\n\n for (aggId in aggs) {\n aggDef = _.find(target.bucketAggs, { id: aggId });\n esAgg = aggs[aggId];\n\n if (!aggDef) {\n continue;\n }\n\n if (depth === maxDepth) {\n if (aggDef.type === 'date_histogram') {\n this.processMetrics(esAgg, target, seriesList, props);\n } else {\n this.processAggregationDocs(esAgg, aggDef, target, table, props);\n }\n } else {\n for (const nameIndex in esAgg.buckets) {\n bucket = esAgg.buckets[nameIndex];\n props = _.clone(props);\n if (bucket.key !== void 0) {\n props[aggDef.field] = bucket.key;\n } else {\n props['filter'] = nameIndex;\n }\n if (bucket.key_as_string) {\n props[aggDef.field] = bucket.key_as_string;\n }\n this.processBuckets(bucket, target, seriesList, table, props, depth + 1);\n }\n }\n }\n }\n\n private getMetricName(metric) {\n let metricDef = _.find(queryDef.metricAggTypes, { value: metric });\n if (!metricDef) {\n metricDef = _.find(queryDef.extendedStats, { value: metric });\n }\n\n return metricDef ? metricDef.text : metric;\n }\n\n private getSeriesName(series, target, metricTypeCount) {\n let metricName = this.getMetricName(series.metric);\n\n if (target.alias) {\n const regex = /\\{\\{([\\s\\S]+?)\\}\\}/g;\n\n return target.alias.replace(regex, (match, g1, g2) => {\n const group = g1 || g2;\n\n if (group.indexOf('term ') === 0) {\n return series.props[group.substring(5)];\n }\n if (series.props[group] !== void 0) {\n return series.props[group];\n }\n if (group === 'metric') {\n return metricName;\n }\n if (group === 'field') {\n return series.field || '';\n }\n\n return match;\n });\n }\n\n if (series.field && queryDef.isPipelineAgg(series.metric)) {\n if (series.metric && queryDef.isPipelineAggWithMultipleBucketPaths(series.metric)) {\n const agg = _.find(target.metrics, { id: series.metricId });\n if (agg && agg.settings.script) {\n metricName = agg.settings.script;\n\n for (const pv of agg.pipelineVariables) {\n const appliedAgg = _.find(target.metrics, { id: pv.pipelineAgg });\n if (appliedAgg) {\n metricName = metricName.replace('params.' + pv.name, queryDef.describeMetric(appliedAgg));\n }\n }\n } else {\n metricName = 'Unset';\n }\n } else {\n const appliedAgg = _.find(target.metrics, { id: series.field });\n if (appliedAgg) {\n metricName += ' ' + queryDef.describeMetric(appliedAgg);\n } else {\n metricName = 'Unset';\n }\n }\n } else if (series.field) {\n metricName += ' ' + series.field;\n }\n\n const propKeys = _.keys(series.props);\n if (propKeys.length === 0) {\n return metricName;\n }\n\n let name = '';\n for (const propName in series.props) {\n name += series.props[propName] + ' ';\n }\n\n if (metricTypeCount === 1) {\n return name.trim();\n }\n\n return name.trim() + ' ' + metricName;\n }\n\n nameSeries(seriesList, target) {\n const metricTypeCount = _.uniq(_.map(seriesList, 'metric')).length;\n\n for (let i = 0; i < seriesList.length; i++) {\n const series = seriesList[i];\n series.target = this.getSeriesName(series, target, metricTypeCount);\n }\n }\n\n processHits(hits, seriesList) {\n const series = {\n target: 'docs',\n type: 'docs',\n datapoints: [],\n total: hits.total,\n filterable: true,\n };\n let propName, hit, doc, i;\n\n for (i = 0; i < hits.hits.length; i++) {\n hit = hits.hits[i];\n doc = {\n _id: hit._id,\n _type: hit._type,\n _index: hit._index,\n };\n\n if (hit._source) {\n for (propName in hit._source) {\n doc[propName] = hit._source[propName];\n }\n }\n\n for (propName in hit.fields) {\n doc[propName] = hit.fields[propName];\n }\n series.datapoints.push(doc);\n }\n\n seriesList.push(series);\n }\n\n trimDatapoints(aggregations, target) {\n const histogram = _.find(target.bucketAggs, { type: 'date_histogram' });\n\n const shouldDropFirstAndLast = histogram && histogram.settings && histogram.settings.trimEdges;\n if (shouldDropFirstAndLast) {\n const trim = histogram.settings.trimEdges;\n for (const prop in aggregations) {\n const points = aggregations[prop];\n if (points.datapoints.length > trim * 2) {\n points.datapoints = points.datapoints.slice(trim, points.datapoints.length - trim);\n }\n }\n }\n }\n\n getErrorFromElasticResponse(response, err) {\n const result: any = {};\n result.data = JSON.stringify(err, null, 4);\n if (err.root_cause && err.root_cause.length > 0 && err.root_cause[0].reason) {\n result.message = err.root_cause[0].reason;\n } else {\n result.message = err.reason || 'Unkown elastic error response';\n }\n\n if (response.$$config) {\n result.config = response.$$config;\n }\n\n return result;\n }\n\n getTimeSeries() {\n const seriesList = [];\n\n for (let i = 0; i < this.response.responses.length; i++) {\n const response = this.response.responses[i];\n if (response.error) {\n throw this.getErrorFromElasticResponse(this.response, response.error);\n }\n\n if (response.hits && response.hits.hits.length > 0) {\n this.processHits(response.hits, seriesList);\n }\n\n if (response.aggregations) {\n const aggregations = response.aggregations;\n const target = this.targets[i];\n const tmpSeriesList = [];\n const table = new TableModel();\n\n this.processBuckets(aggregations, target, tmpSeriesList, table, {}, 0);\n this.trimDatapoints(tmpSeriesList, target);\n this.nameSeries(tmpSeriesList, target);\n\n for (let y = 0; y < tmpSeriesList.length; y++) {\n seriesList.push(tmpSeriesList[y]);\n }\n\n if (table.rows.length > 0) {\n seriesList.push(table);\n }\n }\n }\n\n return { data: seriesList };\n }\n}\n","import moment from 'moment';\n\nconst intervalMap = {\n Hourly: { startOf: 'hour', amount: 'hours' },\n Daily: { startOf: 'day', amount: 'days' },\n Weekly: { startOf: 'isoWeek', amount: 'weeks' },\n Monthly: { startOf: 'month', amount: 'months' },\n Yearly: { startOf: 'year', amount: 'years' },\n};\n\nexport class IndexPattern {\n constructor(private pattern, private interval: string | null) {}\n\n getIndexForToday() {\n if (this.interval) {\n return moment.utc().format(this.pattern);\n } else {\n return this.pattern;\n }\n }\n\n getIndexList(from, to) {\n if (!this.interval) {\n return this.pattern;\n }\n\n const intervalInfo = intervalMap[this.interval];\n const start = moment(from)\n .utc()\n .startOf(intervalInfo.startOf);\n const endEpoch = moment(to)\n .utc()\n .startOf(intervalInfo.startOf)\n .valueOf();\n const indexList = [];\n\n while (start.valueOf() <= endEpoch) {\n indexList.push(start.format(this.pattern));\n start.add(1, intervalInfo.amount);\n }\n\n return indexList;\n }\n}\n","import * as queryDef from './query_def';\n\nexport class ElasticQueryBuilder {\n timeField: string;\n esVersion: number;\n\n constructor(options) {\n this.timeField = options.timeField;\n this.esVersion = options.esVersion;\n }\n\n getRangeFilter() {\n const filter = {};\n filter[this.timeField] = {\n gte: '$timeFrom',\n lte: '$timeTo',\n format: 'epoch_millis',\n };\n\n return filter;\n }\n\n buildTermsAgg(aggDef, queryNode, target) {\n let metricRef, metric, y;\n queryNode.terms = { field: aggDef.field };\n\n if (!aggDef.settings) {\n return queryNode;\n }\n\n queryNode.terms.size = parseInt(aggDef.settings.size, 10) === 0 ? 500 : parseInt(aggDef.settings.size, 10);\n if (aggDef.settings.orderBy !== void 0) {\n queryNode.terms.order = {};\n if (aggDef.settings.orderBy === '_term' && this.esVersion >= 60) {\n queryNode.terms.order['_key'] = aggDef.settings.order;\n } else {\n queryNode.terms.order[aggDef.settings.orderBy] = aggDef.settings.order;\n }\n\n // if metric ref, look it up and add it to this agg level\n metricRef = parseInt(aggDef.settings.orderBy, 10);\n if (!isNaN(metricRef)) {\n for (y = 0; y < target.metrics.length; y++) {\n metric = target.metrics[y];\n if (metric.id === aggDef.settings.orderBy) {\n queryNode.aggs = {};\n queryNode.aggs[metric.id] = {};\n queryNode.aggs[metric.id][metric.type] = { field: metric.field };\n break;\n }\n }\n }\n }\n\n if (aggDef.settings.min_doc_count !== void 0) {\n queryNode.terms.min_doc_count = parseInt(aggDef.settings.min_doc_count, 10);\n }\n\n if (aggDef.settings.missing) {\n queryNode.terms.missing = aggDef.settings.missing;\n }\n\n return queryNode;\n }\n\n getDateHistogramAgg(aggDef) {\n const esAgg: any = {};\n const settings = aggDef.settings || {};\n esAgg.interval = settings.interval;\n esAgg.field = this.timeField;\n esAgg.min_doc_count = settings.min_doc_count || 0;\n esAgg.extended_bounds = { min: '$timeFrom', max: '$timeTo' };\n esAgg.format = 'epoch_millis';\n\n if (settings.offset !== '') {\n esAgg.offset = settings.offset;\n }\n\n if (esAgg.interval === 'auto') {\n esAgg.interval = '$__interval';\n }\n\n if (settings.missing) {\n esAgg.missing = settings.missing;\n }\n\n return esAgg;\n }\n\n getHistogramAgg(aggDef) {\n const esAgg: any = {};\n const settings = aggDef.settings || {};\n esAgg.interval = settings.interval;\n esAgg.field = aggDef.field;\n esAgg.min_doc_count = settings.min_doc_count || 0;\n\n if (settings.missing) {\n esAgg.missing = settings.missing;\n }\n return esAgg;\n }\n\n getFiltersAgg(aggDef) {\n const filterObj = {};\n for (let i = 0; i < aggDef.settings.filters.length; i++) {\n const query = aggDef.settings.filters[i].query;\n let label = aggDef.settings.filters[i].label;\n label = label === '' || label === undefined ? query : label;\n filterObj[label] = {\n query_string: {\n query: query,\n analyze_wildcard: true,\n },\n };\n }\n\n return filterObj;\n }\n\n documentQuery(query, size) {\n query.size = size;\n query.sort = {};\n query.sort[this.timeField] = { order: 'desc', unmapped_type: 'boolean' };\n\n // fields field not supported on ES 5.x\n if (this.esVersion < 5) {\n query.fields = ['*', '_source'];\n }\n\n query.script_fields = {};\n if (this.esVersion < 5) {\n query.fielddata_fields = [this.timeField];\n } else {\n query.docvalue_fields = [this.timeField];\n }\n return query;\n }\n\n addAdhocFilters(query, adhocFilters) {\n if (!adhocFilters) {\n return;\n }\n\n let i, filter, condition, queryCondition;\n\n for (i = 0; i < adhocFilters.length; i++) {\n filter = adhocFilters[i];\n condition = {};\n condition[filter.key] = filter.value;\n queryCondition = {};\n queryCondition[filter.key] = { query: filter.value };\n\n switch (filter.operator) {\n case '=':\n if (!query.query.bool.must) {\n query.query.bool.must = [];\n }\n query.query.bool.must.push({ match_phrase: queryCondition });\n break;\n case '!=':\n if (!query.query.bool.must_not) {\n query.query.bool.must_not = [];\n }\n query.query.bool.must_not.push({ match_phrase: queryCondition });\n break;\n case '<':\n condition[filter.key] = { lt: filter.value };\n query.query.bool.filter.push({ range: condition });\n break;\n case '>':\n condition[filter.key] = { gt: filter.value };\n query.query.bool.filter.push({ range: condition });\n break;\n case '=~':\n query.query.bool.filter.push({ regexp: condition });\n break;\n case '!~':\n query.query.bool.filter.push({\n bool: { must_not: { regexp: condition } },\n });\n break;\n }\n }\n }\n\n build(target, adhocFilters?, queryString?) {\n // make sure query has defaults;\n target.metrics = target.metrics || [queryDef.defaultMetricAgg()];\n target.bucketAggs = target.bucketAggs || [queryDef.defaultBucketAgg()];\n target.timeField = this.timeField;\n\n let i, j, pv, nestedAggs, metric;\n const query = {\n size: 0,\n query: {\n bool: {\n filter: [\n { range: this.getRangeFilter() },\n {\n query_string: {\n analyze_wildcard: true,\n query: queryString,\n },\n },\n ],\n },\n },\n };\n\n this.addAdhocFilters(query, adhocFilters);\n\n // handle document query\n if (target.bucketAggs.length === 0) {\n metric = target.metrics[0];\n if (!metric || metric.type !== 'raw_document') {\n throw { message: 'Invalid query' };\n }\n\n const size = (metric.settings && metric.settings.size) || 500;\n return this.documentQuery(query, size);\n }\n\n nestedAggs = query;\n\n for (i = 0; i < target.bucketAggs.length; i++) {\n const aggDef = target.bucketAggs[i];\n const esAgg = {};\n\n switch (aggDef.type) {\n case 'date_histogram': {\n esAgg['date_histogram'] = this.getDateHistogramAgg(aggDef);\n break;\n }\n case 'histogram': {\n esAgg['histogram'] = this.getHistogramAgg(aggDef);\n break;\n }\n case 'filters': {\n esAgg['filters'] = { filters: this.getFiltersAgg(aggDef) };\n break;\n }\n case 'terms': {\n this.buildTermsAgg(aggDef, esAgg, target);\n break;\n }\n case 'geohash_grid': {\n esAgg['geohash_grid'] = {\n field: aggDef.field,\n precision: aggDef.settings.precision,\n };\n break;\n }\n }\n\n nestedAggs.aggs = nestedAggs.aggs || {};\n nestedAggs.aggs[aggDef.id] = esAgg;\n nestedAggs = esAgg;\n }\n\n nestedAggs.aggs = {};\n\n for (i = 0; i < target.metrics.length; i++) {\n metric = target.metrics[i];\n if (metric.type === 'count') {\n continue;\n }\n\n const aggField = {};\n let metricAgg = null;\n\n if (queryDef.isPipelineAgg(metric.type)) {\n if (queryDef.isPipelineAggWithMultipleBucketPaths(metric.type)) {\n if (metric.pipelineVariables) {\n metricAgg = {\n buckets_path: {},\n };\n\n for (j = 0; j < metric.pipelineVariables.length; j++) {\n pv = metric.pipelineVariables[j];\n\n if (pv.name && pv.pipelineAgg && /^\\d*$/.test(pv.pipelineAgg)) {\n const appliedAgg = queryDef.findMetricById(target.metrics, pv.pipelineAgg);\n if (appliedAgg) {\n if (appliedAgg.type === 'count') {\n metricAgg.buckets_path[pv.name] = '_count';\n } else {\n metricAgg.buckets_path[pv.name] = pv.pipelineAgg;\n }\n }\n }\n }\n } else {\n continue;\n }\n } else {\n if (metric.pipelineAgg && /^\\d*$/.test(metric.pipelineAgg)) {\n const appliedAgg = queryDef.findMetricById(target.metrics, metric.pipelineAgg);\n if (appliedAgg) {\n if (appliedAgg.type === 'count') {\n metricAgg = { buckets_path: '_count' };\n } else {\n metricAgg = { buckets_path: metric.pipelineAgg };\n }\n }\n } else {\n continue;\n }\n }\n } else {\n metricAgg = { field: metric.field };\n }\n\n for (const prop in metric.settings) {\n if (metric.settings.hasOwnProperty(prop) && metric.settings[prop] !== null) {\n metricAgg[prop] = metric.settings[prop];\n }\n }\n\n aggField[metric.type] = metricAgg;\n nestedAggs.aggs[metric.id] = aggField;\n }\n\n return query;\n }\n\n getTermsQuery(queryDef) {\n const query: any = {\n size: 0,\n query: {\n bool: {\n filter: [{ range: this.getRangeFilter() }],\n },\n },\n };\n\n if (queryDef.query) {\n query.query.bool.filter.push({\n query_string: {\n analyze_wildcard: true,\n query: queryDef.query,\n },\n });\n }\n\n let size = 500;\n if (queryDef.size) {\n size = queryDef.size;\n }\n\n query.aggs = {\n '1': {\n terms: {\n field: queryDef.field,\n size: size,\n order: {\n _term: 'asc',\n },\n },\n },\n };\n\n if (this.esVersion >= 60) {\n query.aggs['1'].terms.order = {\n _key: 'asc',\n };\n }\n\n return query;\n }\n}\n","import angular from 'angular';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { ElasticResponse } from './elastic_response';\nimport { IndexPattern } from './index_pattern';\nimport { ElasticQueryBuilder } from './query_builder';\n\nexport class ElasticDatasource {\n basicAuth: string;\n withCredentials: boolean;\n url: string;\n name: string;\n index: string;\n timeField: string;\n esVersion: number;\n interval: string;\n maxConcurrentShardRequests: number;\n queryBuilder: ElasticQueryBuilder;\n indexPattern: IndexPattern;\n\n /** @ngInject */\n constructor(instanceSettings, private $q, private backendSrv, private templateSrv, private timeSrv) {\n this.basicAuth = instanceSettings.basicAuth;\n this.withCredentials = instanceSettings.withCredentials;\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.index = instanceSettings.index;\n this.timeField = instanceSettings.jsonData.timeField;\n this.esVersion = instanceSettings.jsonData.esVersion;\n this.indexPattern = new IndexPattern(instanceSettings.index, instanceSettings.jsonData.interval);\n this.interval = instanceSettings.jsonData.timeInterval;\n this.maxConcurrentShardRequests = instanceSettings.jsonData.maxConcurrentShardRequests;\n this.queryBuilder = new ElasticQueryBuilder({\n timeField: this.timeField,\n esVersion: this.esVersion,\n });\n }\n\n private request(method, url, data?) {\n const options: any = {\n url: this.url + '/' + url,\n method: method,\n data: data,\n };\n\n if (this.basicAuth || this.withCredentials) {\n options.withCredentials = true;\n }\n if (this.basicAuth) {\n options.headers = {\n Authorization: this.basicAuth,\n };\n }\n\n return this.backendSrv.datasourceRequest(options);\n }\n\n private get(url) {\n const range = this.timeSrv.timeRange();\n const indexList = this.indexPattern.getIndexList(range.from.valueOf(), range.to.valueOf());\n if (_.isArray(indexList) && indexList.length) {\n return this.request('GET', indexList[0] + url).then(results => {\n results.data.$$config = results.config;\n return results.data;\n });\n } else {\n return this.request('GET', this.indexPattern.getIndexForToday() + url).then(results => {\n results.data.$$config = results.config;\n return results.data;\n });\n }\n }\n\n private post(url, data) {\n return this.request('POST', url, data)\n .then(results => {\n results.data.$$config = results.config;\n return results.data;\n })\n .catch(err => {\n if (err.data && err.data.error) {\n throw {\n message: 'Elasticsearch error: ' + err.data.error.reason,\n error: err.data.error,\n };\n }\n\n throw err;\n });\n }\n\n annotationQuery(options) {\n const annotation = options.annotation;\n const timeField = annotation.timeField || '@timestamp';\n const queryString = annotation.query || '*';\n const tagsField = annotation.tagsField || 'tags';\n const textField = annotation.textField || null;\n\n const range = {};\n range[timeField] = {\n from: options.range.from.valueOf(),\n to: options.range.to.valueOf(),\n format: 'epoch_millis',\n };\n\n const queryInterpolated = this.templateSrv.replace(queryString, {}, 'lucene');\n const query = {\n bool: {\n filter: [\n { range: range },\n {\n query_string: {\n query: queryInterpolated,\n },\n },\n ],\n },\n };\n\n const data = {\n query: query,\n size: 10000,\n };\n\n // fields field not supported on ES 5.x\n if (this.esVersion < 5) {\n data['fields'] = [timeField, '_source'];\n }\n\n const header: any = {\n search_type: 'query_then_fetch',\n ignore_unavailable: true,\n };\n\n // old elastic annotations had index specified on them\n if (annotation.index) {\n header.index = annotation.index;\n } else {\n header.index = this.indexPattern.getIndexList(options.range.from, options.range.to);\n }\n\n const payload = angular.toJson(header) + '\\n' + angular.toJson(data) + '\\n';\n\n return this.post('_msearch', payload).then(res => {\n const list = [];\n const hits = res.responses[0].hits.hits;\n\n const getFieldFromSource = (source, fieldName) => {\n if (!fieldName) {\n return;\n }\n\n const fieldNames = fieldName.split('.');\n let fieldValue = source;\n\n for (let i = 0; i < fieldNames.length; i++) {\n fieldValue = fieldValue[fieldNames[i]];\n if (!fieldValue) {\n console.log('could not find field in annotation: ', fieldName);\n return '';\n }\n }\n\n return fieldValue;\n };\n\n for (let i = 0; i < hits.length; i++) {\n const source = hits[i]._source;\n let time = getFieldFromSource(source, timeField);\n if (typeof hits[i].fields !== 'undefined') {\n const fields = hits[i].fields;\n if (_.isString(fields[timeField]) || _.isNumber(fields[timeField])) {\n time = fields[timeField];\n }\n }\n\n const event = {\n annotation: annotation,\n time: moment.utc(time).valueOf(),\n text: getFieldFromSource(source, textField),\n tags: getFieldFromSource(source, tagsField),\n };\n\n // legacy support for title tield\n if (annotation.titleField) {\n const title = getFieldFromSource(source, annotation.titleField);\n if (title) {\n event.text = title + '\\n' + event.text;\n }\n }\n\n if (typeof event.tags === 'string') {\n event.tags = event.tags.split(',');\n }\n\n list.push(event);\n }\n return list;\n });\n }\n\n testDatasource() {\n this.timeSrv.setTime({ from: 'now-1m', to: 'now' }, true);\n // validate that the index exist and has date field\n return this.getFields({ type: 'date' }).then(\n dateFields => {\n const timeField = _.find(dateFields, { text: this.timeField });\n if (!timeField) {\n return {\n status: 'error',\n message: 'No date field named ' + this.timeField + ' found',\n };\n }\n return { status: 'success', message: 'Index OK. Time field name OK.' };\n },\n err => {\n console.log(err);\n if (err.data && err.data.error) {\n let message = angular.toJson(err.data.error);\n if (err.data.error.reason) {\n message = err.data.error.reason;\n }\n return { status: 'error', message: message };\n } else {\n return { status: 'error', message: err.status };\n }\n }\n );\n }\n\n getQueryHeader(searchType, timeFrom, timeTo) {\n const queryHeader: any = {\n search_type: searchType,\n ignore_unavailable: true,\n index: this.indexPattern.getIndexList(timeFrom, timeTo),\n };\n if (this.esVersion >= 56) {\n queryHeader['max_concurrent_shard_requests'] = this.maxConcurrentShardRequests;\n }\n return angular.toJson(queryHeader);\n }\n\n query(options) {\n let payload = '';\n const targets = _.cloneDeep(options.targets);\n const sentTargets = [];\n\n // add global adhoc filters to timeFilter\n const adhocFilters = this.templateSrv.getAdhocFilters(this.name);\n\n for (const target of targets) {\n if (target.hide) {\n continue;\n }\n\n if (target.alias) {\n target.alias = this.templateSrv.replace(target.alias, options.scopedVars, 'lucene');\n }\n\n const queryString = this.templateSrv.replace(target.query || '*', options.scopedVars, 'lucene');\n const queryObj = this.queryBuilder.build(target, adhocFilters, queryString);\n const esQuery = angular.toJson(queryObj);\n\n const searchType = queryObj.size === 0 && this.esVersion < 5 ? 'count' : 'query_then_fetch';\n const header = this.getQueryHeader(searchType, options.range.from, options.range.to);\n payload += header + '\\n';\n\n payload += esQuery + '\\n';\n sentTargets.push(target);\n }\n\n if (sentTargets.length === 0) {\n return this.$q.when([]);\n }\n\n payload = payload.replace(/\\$timeFrom/g, options.range.from.valueOf());\n payload = payload.replace(/\\$timeTo/g, options.range.to.valueOf());\n payload = this.templateSrv.replace(payload, options.scopedVars);\n\n return this.post('_msearch', payload).then(res => {\n return new ElasticResponse(sentTargets, res).getTimeSeries();\n });\n }\n\n getFields(query) {\n return this.get('/_mapping').then(result => {\n const typeMap = {\n float: 'number',\n double: 'number',\n integer: 'number',\n long: 'number',\n date: 'date',\n string: 'string',\n text: 'string',\n scaled_float: 'number',\n nested: 'nested',\n };\n\n function shouldAddField(obj, key, query) {\n if (key[0] === '_') {\n return false;\n }\n\n if (!query.type) {\n return true;\n }\n\n // equal query type filter, or via typemap translation\n return query.type === obj.type || query.type === typeMap[obj.type];\n }\n\n // Store subfield names: [system, process, cpu, total] -> system.process.cpu.total\n const fieldNameParts = [];\n const fields = {};\n\n function getFieldsRecursively(obj) {\n for (const key in obj) {\n const subObj = obj[key];\n\n // Check mapping field for nested fields\n if (_.isObject(subObj.properties)) {\n fieldNameParts.push(key);\n getFieldsRecursively(subObj.properties);\n }\n\n if (_.isObject(subObj.fields)) {\n fieldNameParts.push(key);\n getFieldsRecursively(subObj.fields);\n }\n\n if (_.isString(subObj.type)) {\n const fieldName = fieldNameParts.concat(key).join('.');\n\n // Hide meta-fields and check field type\n if (shouldAddField(subObj, key, query)) {\n fields[fieldName] = {\n text: fieldName,\n type: subObj.type,\n };\n }\n }\n }\n fieldNameParts.pop();\n }\n\n for (const indexName in result) {\n const index = result[indexName];\n if (index && index.mappings) {\n const mappings = index.mappings;\n for (const typeName in mappings) {\n const properties = mappings[typeName].properties;\n getFieldsRecursively(properties);\n }\n }\n }\n\n // transform to array\n return _.map(fields, value => {\n return value;\n });\n });\n }\n\n getTerms(queryDef) {\n const range = this.timeSrv.timeRange();\n const searchType = this.esVersion >= 5 ? 'query_then_fetch' : 'count';\n const header = this.getQueryHeader(searchType, range.from, range.to);\n let esQuery = angular.toJson(this.queryBuilder.getTermsQuery(queryDef));\n\n esQuery = esQuery.replace(/\\$timeFrom/g, range.from.valueOf());\n esQuery = esQuery.replace(/\\$timeTo/g, range.to.valueOf());\n esQuery = header + '\\n' + esQuery + '\\n';\n\n return this.post('_msearch?search_type=' + searchType, esQuery).then(res => {\n if (!res.responses[0].aggregations) {\n return [];\n }\n\n const buckets = res.responses[0].aggregations['1'].buckets;\n return _.map(buckets, bucket => {\n return {\n text: bucket.key_as_string || bucket.key,\n value: bucket.key,\n };\n });\n });\n }\n\n metricFindQuery(query) {\n query = angular.fromJson(query);\n if (!query) {\n return this.$q.when([]);\n }\n\n if (query.find === 'fields') {\n query.field = this.templateSrv.replace(query.field, {}, 'lucene');\n return this.getFields(query);\n }\n\n if (query.find === 'terms') {\n query.field = this.templateSrv.replace(query.field, {}, 'lucene');\n query.query = this.templateSrv.replace(query.query || '*', {}, 'lucene');\n return this.getTerms(query);\n }\n }\n\n getTagKeys() {\n return this.getFields({});\n }\n\n getTagValues(options) {\n return this.getTerms({ field: options.key, query: '*' });\n }\n\n targetContainsTemplate(target) {\n if (this.templateSrv.variableExists(target.query) || this.templateSrv.variableExists(target.alias)) {\n return true;\n }\n\n for (const bucketAgg of target.bucketAggs) {\n if (this.templateSrv.variableExists(bucketAgg.field) || this.objectContainsTemplate(bucketAgg.settings)) {\n return true;\n }\n }\n\n for (const metric of target.metrics) {\n if (\n this.templateSrv.variableExists(metric.field) ||\n this.objectContainsTemplate(metric.settings) ||\n this.objectContainsTemplate(metric.meta)\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n private isPrimitive(obj) {\n if (obj === null || obj === undefined) {\n return true;\n }\n if (['string', 'number', 'boolean'].some(type => type === typeof true)) {\n return true;\n }\n\n return false;\n }\n\n private objectContainsTemplate(obj) {\n if (!obj) {\n return false;\n }\n\n for (const key of Object.keys(obj)) {\n if (this.isPrimitive(obj[key])) {\n if (this.templateSrv.variableExists(obj[key])) {\n return true;\n }\n } else if (Array.isArray(obj[key])) {\n for (const item of obj[key]) {\n if (this.objectContainsTemplate(item)) {\n return true;\n }\n }\n } else {\n if (this.objectContainsTemplate(obj[key])) {\n return true;\n }\n }\n }\n\n return false;\n }\n}\n","import coreModule from 'app/core/core_module';\nimport _ from 'lodash';\nimport * as queryDef from './query_def';\n\nexport class ElasticBucketAggCtrl {\n /** @ngInject */\n constructor($scope, uiSegmentSrv, $q, $rootScope) {\n const bucketAggs = $scope.target.bucketAggs;\n\n $scope.orderByOptions = [];\n\n $scope.getBucketAggTypes = () => {\n return queryDef.bucketAggTypes;\n };\n\n $scope.getOrderOptions = () => {\n return queryDef.orderOptions;\n };\n\n $scope.getSizeOptions = () => {\n return queryDef.sizeOptions;\n };\n\n $rootScope.onAppEvent(\n 'elastic-query-updated',\n () => {\n $scope.validateModel();\n },\n $scope\n );\n\n $scope.init = () => {\n $scope.agg = bucketAggs[$scope.index];\n $scope.validateModel();\n };\n\n $scope.onChangeInternal = () => {\n $scope.onChange();\n };\n\n $scope.onTypeChanged = () => {\n $scope.agg.settings = {};\n $scope.showOptions = false;\n\n switch ($scope.agg.type) {\n case 'date_histogram':\n case 'histogram':\n case 'terms': {\n delete $scope.agg.query;\n $scope.agg.field = 'select field';\n break;\n }\n case 'filters': {\n delete $scope.agg.field;\n $scope.agg.query = '*';\n break;\n }\n case 'geohash_grid': {\n $scope.agg.settings.precision = 3;\n break;\n }\n }\n\n $scope.validateModel();\n $scope.onChange();\n };\n\n $scope.validateModel = () => {\n $scope.index = _.indexOf(bucketAggs, $scope.agg);\n $scope.isFirst = $scope.index === 0;\n $scope.bucketAggCount = bucketAggs.length;\n\n let settingsLinkText = '';\n const settings = $scope.agg.settings || {};\n\n switch ($scope.agg.type) {\n case 'terms': {\n settings.order = settings.order || 'desc';\n settings.size = settings.size || '10';\n settings.min_doc_count = settings.min_doc_count || 1;\n settings.orderBy = settings.orderBy || '_term';\n\n if (settings.size !== '0') {\n settingsLinkText = queryDef.describeOrder(settings.order) + ' ' + settings.size + ', ';\n }\n\n if (settings.min_doc_count > 0) {\n settingsLinkText += 'Min Doc Count: ' + settings.min_doc_count + ', ';\n }\n\n settingsLinkText += 'Order by: ' + queryDef.describeOrderBy(settings.orderBy, $scope.target);\n\n if (settings.size === '0') {\n settingsLinkText += ' (' + settings.order + ')';\n }\n\n break;\n }\n case 'filters': {\n settings.filters = settings.filters || [{ query: '*' }];\n settingsLinkText = _.reduce(\n settings.filters,\n (memo, value, index) => {\n memo += 'Q' + (index + 1) + ' = ' + value.query + ' ';\n return memo;\n },\n ''\n );\n if (settingsLinkText.length > 50) {\n settingsLinkText = settingsLinkText.substr(0, 50) + '...';\n }\n settingsLinkText = 'Filter Queries (' + settings.filters.length + ')';\n break;\n }\n case 'date_histogram': {\n settings.interval = settings.interval || 'auto';\n settings.min_doc_count = settings.min_doc_count || 0;\n $scope.agg.field = $scope.target.timeField;\n settingsLinkText = 'Interval: ' + settings.interval;\n\n if (settings.min_doc_count > 0) {\n settingsLinkText += ', Min Doc Count: ' + settings.min_doc_count;\n }\n\n if (settings.trimEdges === undefined || settings.trimEdges < 0) {\n settings.trimEdges = 0;\n }\n\n if (settings.trimEdges && settings.trimEdges > 0) {\n settingsLinkText += ', Trim edges: ' + settings.trimEdges;\n }\n break;\n }\n case 'histogram': {\n settings.interval = settings.interval || 1000;\n settings.min_doc_count = _.defaultTo(settings.min_doc_count, 1);\n settingsLinkText = 'Interval: ' + settings.interval;\n\n if (settings.min_doc_count > 0) {\n settingsLinkText += ', Min Doc Count: ' + settings.min_doc_count;\n }\n break;\n }\n case 'geohash_grid': {\n // limit precision to 7\n settings.precision = Math.max(Math.min(settings.precision, 7), 1);\n settingsLinkText = 'Precision: ' + settings.precision;\n break;\n }\n }\n\n $scope.settingsLinkText = settingsLinkText;\n $scope.agg.settings = settings;\n return true;\n };\n\n $scope.addFiltersQuery = () => {\n $scope.agg.settings.filters.push({ query: '*' });\n };\n\n $scope.removeFiltersQuery = filter => {\n $scope.agg.settings.filters = _.without($scope.agg.settings.filters, filter);\n };\n\n $scope.toggleOptions = () => {\n $scope.showOptions = !$scope.showOptions;\n };\n\n $scope.getOrderByOptions = () => {\n return queryDef.getOrderByOptions($scope.target);\n };\n\n $scope.getFieldsInternal = () => {\n if ($scope.agg.type === 'date_histogram') {\n return $scope.getFields({ $fieldType: 'date' });\n } else {\n return $scope.getFields();\n }\n };\n\n $scope.getIntervalOptions = () => {\n return $q.when(uiSegmentSrv.transformToSegments(true, 'interval')(queryDef.intervalOptions));\n };\n\n $scope.addBucketAgg = () => {\n // if last is date histogram add it before\n const lastBucket = bucketAggs[bucketAggs.length - 1];\n let addIndex = bucketAggs.length - 1;\n\n if (lastBucket && lastBucket.type === 'date_histogram') {\n addIndex -= 1;\n }\n\n const id = _.reduce(\n $scope.target.bucketAggs.concat($scope.target.metrics),\n (max, val) => {\n return parseInt(val.id, 10) > max ? parseInt(val.id, 10) : max;\n },\n 0\n );\n\n bucketAggs.splice(addIndex, 0, { type: 'terms', field: 'select field', id: (id + 1).toString(), fake: true });\n $scope.onChange();\n };\n\n $scope.removeBucketAgg = () => {\n bucketAggs.splice($scope.index, 1);\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nexport function elasticBucketAgg() {\n return {\n templateUrl: 'public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html',\n controller: ElasticBucketAggCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n index: '=',\n onChange: '&',\n getFields: '&',\n },\n };\n}\n\ncoreModule.directive('elasticBucketAgg', elasticBucketAgg);\n","import coreModule from 'app/core/core_module';\nimport _ from 'lodash';\nimport * as queryDef from './query_def';\n\nexport class ElasticMetricAggCtrl {\n /** @ngInject */\n constructor($scope, uiSegmentSrv, $q, $rootScope) {\n const metricAggs = $scope.target.metrics;\n $scope.metricAggTypes = queryDef.getMetricAggTypes($scope.esVersion);\n $scope.extendedStats = queryDef.extendedStats;\n $scope.pipelineAggOptions = [];\n $scope.modelSettingsValues = {};\n\n $scope.init = () => {\n $scope.agg = metricAggs[$scope.index];\n $scope.validateModel();\n $scope.updatePipelineAggOptions();\n };\n\n $scope.updatePipelineAggOptions = () => {\n $scope.pipelineAggOptions = queryDef.getPipelineAggOptions($scope.target);\n };\n\n $rootScope.onAppEvent(\n 'elastic-query-updated',\n () => {\n $scope.index = _.indexOf(metricAggs, $scope.agg);\n $scope.updatePipelineAggOptions();\n $scope.validateModel();\n },\n $scope\n );\n\n $scope.validateModel = () => {\n $scope.isFirst = $scope.index === 0;\n $scope.isSingle = metricAggs.length === 1;\n $scope.settingsLinkText = '';\n $scope.variablesLinkText = '';\n $scope.aggDef = _.find($scope.metricAggTypes, { value: $scope.agg.type });\n\n if (queryDef.isPipelineAgg($scope.agg.type)) {\n if (queryDef.isPipelineAggWithMultipleBucketPaths($scope.agg.type)) {\n $scope.variablesLinkText = 'Options';\n\n if ($scope.agg.settings.script) {\n $scope.variablesLinkText = 'Script: ' + $scope.agg.settings.script.replace(new RegExp('params.', 'g'), '');\n }\n } else {\n $scope.agg.pipelineAgg = $scope.agg.pipelineAgg || 'select metric';\n $scope.agg.field = $scope.agg.pipelineAgg;\n }\n\n const pipelineOptions = queryDef.getPipelineOptions($scope.agg);\n if (pipelineOptions.length > 0) {\n _.each(pipelineOptions, opt => {\n $scope.agg.settings[opt.text] = $scope.agg.settings[opt.text] || opt.default;\n });\n $scope.settingsLinkText = 'Options';\n }\n } else if (!$scope.agg.field) {\n $scope.agg.field = 'select field';\n }\n switch ($scope.agg.type) {\n case 'cardinality': {\n const precisionThreshold = $scope.agg.settings.precision_threshold || '';\n $scope.settingsLinkText = 'Precision threshold: ' + precisionThreshold;\n break;\n }\n case 'percentiles': {\n $scope.agg.settings.percents = $scope.agg.settings.percents || [25, 50, 75, 95, 99];\n $scope.settingsLinkText = 'Values: ' + $scope.agg.settings.percents.join(',');\n break;\n }\n case 'extended_stats': {\n if (_.keys($scope.agg.meta).length === 0) {\n $scope.agg.meta.std_deviation_bounds_lower = true;\n $scope.agg.meta.std_deviation_bounds_upper = true;\n }\n\n const stats = _.reduce(\n $scope.agg.meta,\n (memo, val, key) => {\n if (val) {\n const def = _.find($scope.extendedStats, { value: key });\n memo.push(def.text);\n }\n return memo;\n },\n []\n );\n\n $scope.settingsLinkText = 'Stats: ' + stats.join(', ');\n break;\n }\n case 'moving_avg': {\n $scope.movingAvgModelTypes = queryDef.movingAvgModelOptions;\n $scope.modelSettings = queryDef.getMovingAvgSettings($scope.agg.settings.model, true);\n $scope.updateMovingAvgModelSettings();\n break;\n }\n case 'raw_document': {\n $scope.agg.settings.size = $scope.agg.settings.size || 500;\n $scope.settingsLinkText = 'Size: ' + $scope.agg.settings.size;\n $scope.target.metrics.splice(0, $scope.target.metrics.length, $scope.agg);\n\n $scope.target.bucketAggs = [];\n break;\n }\n }\n if ($scope.aggDef.supportsInlineScript) {\n // I know this stores the inline script twice\n // but having it like this simplifes the query_builder\n const inlineScript = $scope.agg.inlineScript;\n if (inlineScript) {\n $scope.agg.settings.script = { inline: inlineScript };\n } else {\n delete $scope.agg.settings.script;\n }\n\n if ($scope.settingsLinkText === '') {\n $scope.settingsLinkText = 'Options';\n }\n }\n };\n\n $scope.toggleOptions = () => {\n $scope.showOptions = !$scope.showOptions;\n $scope.updatePipelineAggOptions();\n };\n\n $scope.toggleVariables = () => {\n $scope.showVariables = !$scope.showVariables;\n };\n\n $scope.onChangeInternal = () => {\n $scope.onChange();\n };\n\n $scope.updateMovingAvgModelSettings = () => {\n const modelSettingsKeys = [];\n const modelSettings = queryDef.getMovingAvgSettings($scope.agg.settings.model, false);\n for (let i = 0; i < modelSettings.length; i++) {\n modelSettingsKeys.push(modelSettings[i].value);\n }\n\n for (const key in $scope.agg.settings.settings) {\n if ($scope.agg.settings.settings[key] === null || modelSettingsKeys.indexOf(key) === -1) {\n delete $scope.agg.settings.settings[key];\n }\n }\n };\n\n $scope.onChangeClearInternal = () => {\n delete $scope.agg.settings.minimize;\n $scope.onChange();\n };\n\n $scope.onTypeChange = () => {\n $scope.agg.settings = {};\n $scope.agg.meta = {};\n $scope.showOptions = false;\n\n // reset back to metric/group by query\n if ($scope.target.bucketAggs.length === 0 && $scope.agg.type !== 'raw_document') {\n $scope.target.bucketAggs = [queryDef.defaultBucketAgg()];\n }\n\n $scope.showVariables = queryDef.isPipelineAggWithMultipleBucketPaths($scope.agg.type);\n $scope.updatePipelineAggOptions();\n $scope.onChange();\n };\n\n $scope.getFieldsInternal = () => {\n if ($scope.agg.type === 'cardinality') {\n return $scope.getFields();\n }\n return $scope.getFields({ $fieldType: 'number' });\n };\n\n $scope.addMetricAgg = () => {\n const addIndex = metricAggs.length;\n\n const id = _.reduce(\n $scope.target.bucketAggs.concat($scope.target.metrics),\n (max, val) => {\n return parseInt(val.id, 10) > max ? parseInt(val.id, 10) : max;\n },\n 0\n );\n\n metricAggs.splice(addIndex, 0, { type: 'count', field: 'select field', id: (id + 1).toString() });\n $scope.onChange();\n };\n\n $scope.removeMetricAgg = () => {\n metricAggs.splice($scope.index, 1);\n $scope.onChange();\n };\n\n $scope.toggleShowMetric = () => {\n $scope.agg.hide = !$scope.agg.hide;\n if (!$scope.agg.hide) {\n delete $scope.agg.hide;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nexport function elasticMetricAgg() {\n return {\n templateUrl: 'public/app/plugins/datasource/elasticsearch/partials/metric_agg.html',\n controller: ElasticMetricAggCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n index: '=',\n onChange: '&',\n getFields: '&',\n esVersion: '=',\n },\n };\n}\n\ncoreModule.directive('elasticMetricAgg', elasticMetricAgg);\n","import coreModule from 'app/core/core_module';\nimport _ from 'lodash';\n\nexport function elasticPipelineVariables() {\n return {\n templateUrl: 'public/app/plugins/datasource/elasticsearch/partials/pipeline_variables.html',\n controller: 'ElasticPipelineVariablesCtrl',\n restrict: 'E',\n scope: {\n onChange: '&',\n variables: '=',\n options: '=',\n },\n };\n}\n\nconst newVariable = index => {\n return {\n name: 'var' + index,\n pipelineAgg: 'select metric',\n };\n};\n\nexport class ElasticPipelineVariablesCtrl {\n /** @ngInject */\n constructor($scope) {\n $scope.variables = $scope.variables || [newVariable(1)];\n\n $scope.onChangeInternal = () => {\n $scope.onChange();\n };\n\n $scope.add = () => {\n $scope.variables.push(newVariable($scope.variables.length + 1));\n $scope.onChange();\n };\n\n $scope.remove = index => {\n $scope.variables.splice(index, 1);\n $scope.onChange();\n };\n }\n}\n\ncoreModule.directive('elasticPipelineVariables', elasticPipelineVariables);\ncoreModule.controller('ElasticPipelineVariablesCtrl', ElasticPipelineVariablesCtrl);\n","import './bucket_agg';\nimport './metric_agg';\nimport './pipeline_variables';\n\nimport angular from 'angular';\nimport _ from 'lodash';\nimport * as queryDef from './query_def';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nexport class ElasticQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n esVersion: any;\n rawQueryOld: string;\n\n /** @ngInject */\n constructor($scope, $injector, private $rootScope, private uiSegmentSrv) {\n super($scope, $injector);\n\n this.esVersion = this.datasource.esVersion;\n\n this.target = this.target || {};\n this.target.metrics = this.target.metrics || [queryDef.defaultMetricAgg()];\n this.target.bucketAggs = this.target.bucketAggs || [queryDef.defaultBucketAgg()];\n\n if (this.target.bucketAggs.length === 0) {\n const metric = this.target.metrics[0];\n if (!metric || metric.type !== 'raw_document') {\n this.target.bucketAggs = [queryDef.defaultBucketAgg()];\n }\n this.refresh();\n }\n\n this.queryUpdated();\n }\n\n getFields(type) {\n const jsonStr = angular.toJson({ find: 'fields', type: type });\n return this.datasource\n .metricFindQuery(jsonStr)\n .then(this.uiSegmentSrv.transformToSegments(false))\n .catch(this.handleQueryError.bind(this));\n }\n\n queryUpdated() {\n const newJson = angular.toJson(this.datasource.queryBuilder.build(this.target), true);\n if (this.rawQueryOld && newJson !== this.rawQueryOld) {\n this.refresh();\n }\n\n this.rawQueryOld = newJson;\n this.$rootScope.appEvent('elastic-query-updated');\n }\n\n getCollapsedText() {\n const metricAggs = this.target.metrics;\n const bucketAggs = this.target.bucketAggs;\n const metricAggTypes = queryDef.getMetricAggTypes(this.esVersion);\n const bucketAggTypes = queryDef.bucketAggTypes;\n let text = '';\n\n if (this.target.query) {\n text += 'Query: ' + this.target.query + ', ';\n }\n\n text += 'Metrics: ';\n\n _.each(metricAggs, (metric, index) => {\n const aggDef = _.find(metricAggTypes, { value: metric.type });\n text += aggDef.text + '(';\n if (aggDef.requiresField) {\n text += metric.field;\n }\n if (aggDef.supportsMultipleBucketPaths) {\n text += metric.settings.script.replace(new RegExp('params.', 'g'), '');\n }\n text += '), ';\n });\n\n _.each(bucketAggs, (bucketAgg, index) => {\n if (index === 0) {\n text += ' Group by: ';\n }\n\n const aggDef = _.find(bucketAggTypes, { value: bucketAgg.type });\n text += aggDef.text + '(';\n if (aggDef.requiresField) {\n text += bucketAgg.field;\n }\n text += '), ';\n });\n\n if (this.target.alias) {\n text += 'Alias: ' + this.target.alias;\n }\n\n return text;\n }\n\n handleQueryError(err) {\n this.error = err.message || 'Failed to issue metric query';\n return [];\n }\n}\n","import _ from 'lodash';\n\nexport class ElasticConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/elasticsearch/partials/config.html';\n current: any;\n\n /** @ngInject */\n constructor($scope) {\n this.current.jsonData.timeField = this.current.jsonData.timeField || '@timestamp';\n this.current.jsonData.esVersion = this.current.jsonData.esVersion || 5;\n this.current.jsonData.maxConcurrentShardRequests = this.current.jsonData.maxConcurrentShardRequests || 256;\n }\n\n indexPatternTypes = [\n { name: 'No pattern', value: undefined },\n { name: 'Hourly', value: 'Hourly', example: '[logstash-]YYYY.MM.DD.HH' },\n { name: 'Daily', value: 'Daily', example: '[logstash-]YYYY.MM.DD' },\n { name: 'Weekly', value: 'Weekly', example: '[logstash-]GGGG.WW' },\n { name: 'Monthly', value: 'Monthly', example: '[logstash-]YYYY.MM' },\n { name: 'Yearly', value: 'Yearly', example: '[logstash-]YYYY' },\n ];\n\n esVersions = [\n { name: '2.x', value: 2 },\n { name: '5.x', value: 5 },\n { name: '5.6+', value: 56 },\n { name: '6.0+', value: 60 },\n ];\n\n indexPatternTypeChanged() {\n if (\n !this.current.database ||\n this.current.database.length === 0 ||\n this.current.database.startsWith('[logstash-]')\n ) {\n const def = _.find(this.indexPatternTypes, {\n value: this.current.jsonData.interval,\n });\n this.current.database = def.example || 'es-index-name';\n }\n }\n}\n","import angular from 'angular';\nimport _ from 'lodash';\nimport * as dateMath from 'app/core/utils/datemath';\n\nexport default class OpenTsDatasource {\n type: any;\n url: any;\n name: any;\n withCredentials: any;\n basicAuth: any;\n tsdbVersion: any;\n tsdbResolution: any;\n tagKeys: any;\n\n aggregatorsPromise: any;\n filterTypesPromise: any;\n\n /** @ngInject */\n constructor(instanceSettings, private $q, private backendSrv, private templateSrv) {\n this.type = 'opentsdb';\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.withCredentials = instanceSettings.withCredentials;\n this.basicAuth = instanceSettings.basicAuth;\n instanceSettings.jsonData = instanceSettings.jsonData || {};\n this.tsdbVersion = instanceSettings.jsonData.tsdbVersion || 1;\n this.tsdbResolution = instanceSettings.jsonData.tsdbResolution || 1;\n this.tagKeys = {};\n\n this.aggregatorsPromise = null;\n this.filterTypesPromise = null;\n }\n\n // Called once per panel (graph)\n query(options) {\n const start = this.convertToTSDBTime(options.rangeRaw.from, false, options.timezone);\n const end = this.convertToTSDBTime(options.rangeRaw.to, true, options.timezone);\n const qs = [];\n\n _.each(options.targets, target => {\n if (!target.metric) {\n return;\n }\n qs.push(this.convertTargetToQuery(target, options, this.tsdbVersion));\n });\n\n const queries = _.compact(qs);\n\n // No valid targets, return the empty result to save a round trip.\n if (_.isEmpty(queries)) {\n const d = this.$q.defer();\n d.resolve({ data: [] });\n return d.promise;\n }\n\n const groupByTags = {};\n _.each(queries, query => {\n if (query.filters && query.filters.length > 0) {\n _.each(query.filters, val => {\n groupByTags[val.tagk] = true;\n });\n } else {\n _.each(query.tags, (val, key) => {\n groupByTags[key] = true;\n });\n }\n });\n\n options.targets = _.filter(options.targets, query => {\n return query.hide !== true;\n });\n\n return this.performTimeSeriesQuery(queries, start, end).then(response => {\n const metricToTargetMapping = this.mapMetricsToTargets(response.data, options, this.tsdbVersion);\n const result = _.map(response.data, (metricData, index) => {\n index = metricToTargetMapping[index];\n if (index === -1) {\n index = 0;\n }\n this._saveTagKeys(metricData);\n\n return this.transformMetricData(metricData, groupByTags, options.targets[index], options, this.tsdbResolution);\n });\n return { data: result };\n });\n }\n\n annotationQuery(options) {\n const start = this.convertToTSDBTime(options.rangeRaw.from, false, options.timezone);\n const end = this.convertToTSDBTime(options.rangeRaw.to, true, options.timezone);\n const qs = [];\n const eventList = [];\n\n qs.push({ aggregator: 'sum', metric: options.annotation.target });\n\n const queries = _.compact(qs);\n\n return this.performTimeSeriesQuery(queries, start, end).then(results => {\n if (results.data[0]) {\n let annotationObject = results.data[0].annotations;\n if (options.annotation.isGlobal) {\n annotationObject = results.data[0].globalAnnotations;\n }\n if (annotationObject) {\n _.each(annotationObject, annotation => {\n const event = {\n text: annotation.description,\n time: Math.floor(annotation.startTime) * 1000,\n annotation: options.annotation,\n };\n\n eventList.push(event);\n });\n }\n }\n return eventList;\n });\n }\n\n targetContainsTemplate(target) {\n if (target.filters && target.filters.length > 0) {\n for (let i = 0; i < target.filters.length; i++) {\n if (this.templateSrv.variableExists(target.filters[i].filter)) {\n return true;\n }\n }\n }\n\n if (target.tags && Object.keys(target.tags).length > 0) {\n for (const tagKey in target.tags) {\n if (this.templateSrv.variableExists(target.tags[tagKey])) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n performTimeSeriesQuery(queries, start, end) {\n let msResolution = false;\n if (this.tsdbResolution === 2) {\n msResolution = true;\n }\n const reqBody: any = {\n start: start,\n queries: queries,\n msResolution: msResolution,\n globalAnnotations: true,\n };\n if (this.tsdbVersion === 3) {\n reqBody.showQuery = true;\n }\n\n // Relative queries (e.g. last hour) don't include an end time\n if (end) {\n reqBody.end = end;\n }\n\n const options = {\n method: 'POST',\n url: this.url + '/api/query',\n data: reqBody,\n };\n\n this._addCredentialOptions(options);\n return this.backendSrv.datasourceRequest(options);\n }\n\n suggestTagKeys(metric) {\n return this.$q.when(this.tagKeys[metric] || []);\n }\n\n _saveTagKeys(metricData) {\n const tagKeys = Object.keys(metricData.tags);\n _.each(metricData.aggregateTags, tag => {\n tagKeys.push(tag);\n });\n\n this.tagKeys[metricData.metric] = tagKeys;\n }\n\n _performSuggestQuery(query, type) {\n return this._get('/api/suggest', { type: type, q: query, max: 1000 }).then(result => {\n return result.data;\n });\n }\n\n _performMetricKeyValueLookup(metric, keys) {\n if (!metric || !keys) {\n return this.$q.when([]);\n }\n\n const keysArray = keys.split(',').map(key => {\n return key.trim();\n });\n const key = keysArray[0];\n let keysQuery = key + '=*';\n\n if (keysArray.length > 1) {\n keysQuery += ',' + keysArray.splice(1).join(',');\n }\n\n const m = metric + '{' + keysQuery + '}';\n\n return this._get('/api/search/lookup', { m: m, limit: 3000 }).then(result => {\n result = result.data.results;\n const tagvs = [];\n _.each(result, r => {\n if (tagvs.indexOf(r.tags[key]) === -1) {\n tagvs.push(r.tags[key]);\n }\n });\n return tagvs;\n });\n }\n\n _performMetricKeyLookup(metric) {\n if (!metric) {\n return this.$q.when([]);\n }\n\n return this._get('/api/search/lookup', { m: metric, limit: 1000 }).then(result => {\n result = result.data.results;\n const tagks = [];\n _.each(result, r => {\n _.each(r.tags, (tagv, tagk) => {\n if (tagks.indexOf(tagk) === -1) {\n tagks.push(tagk);\n }\n });\n });\n return tagks;\n });\n }\n\n _get(relativeUrl, params?) {\n const options = {\n method: 'GET',\n url: this.url + relativeUrl,\n params: params,\n };\n\n this._addCredentialOptions(options);\n\n return this.backendSrv.datasourceRequest(options);\n }\n\n _addCredentialOptions(options) {\n if (this.basicAuth || this.withCredentials) {\n options.withCredentials = true;\n }\n if (this.basicAuth) {\n options.headers = { Authorization: this.basicAuth };\n }\n }\n\n metricFindQuery(query) {\n if (!query) {\n return this.$q.when([]);\n }\n\n let interpolated;\n try {\n interpolated = this.templateSrv.replace(query, {}, 'distributed');\n } catch (err) {\n return this.$q.reject(err);\n }\n\n const responseTransform = result => {\n return _.map(result, value => {\n return { text: value };\n });\n };\n\n const metricsRegex = /metrics\\((.*)\\)/;\n const tagNamesRegex = /tag_names\\((.*)\\)/;\n const tagValuesRegex = /tag_values\\((.*?),\\s?(.*)\\)/;\n const tagNamesSuggestRegex = /suggest_tagk\\((.*)\\)/;\n const tagValuesSuggestRegex = /suggest_tagv\\((.*)\\)/;\n\n const metricsQuery = interpolated.match(metricsRegex);\n if (metricsQuery) {\n return this._performSuggestQuery(metricsQuery[1], 'metrics').then(responseTransform);\n }\n\n const tagNamesQuery = interpolated.match(tagNamesRegex);\n if (tagNamesQuery) {\n return this._performMetricKeyLookup(tagNamesQuery[1]).then(responseTransform);\n }\n\n const tagValuesQuery = interpolated.match(tagValuesRegex);\n if (tagValuesQuery) {\n return this._performMetricKeyValueLookup(tagValuesQuery[1], tagValuesQuery[2]).then(responseTransform);\n }\n\n const tagNamesSuggestQuery = interpolated.match(tagNamesSuggestRegex);\n if (tagNamesSuggestQuery) {\n return this._performSuggestQuery(tagNamesSuggestQuery[1], 'tagk').then(responseTransform);\n }\n\n const tagValuesSuggestQuery = interpolated.match(tagValuesSuggestRegex);\n if (tagValuesSuggestQuery) {\n return this._performSuggestQuery(tagValuesSuggestQuery[1], 'tagv').then(responseTransform);\n }\n\n return this.$q.when([]);\n }\n\n testDatasource() {\n return this._performSuggestQuery('cpu', 'metrics').then(() => {\n return { status: 'success', message: 'Data source is working' };\n });\n }\n\n getAggregators() {\n if (this.aggregatorsPromise) {\n return this.aggregatorsPromise;\n }\n\n this.aggregatorsPromise = this._get('/api/aggregators').then(result => {\n if (result.data && _.isArray(result.data)) {\n return result.data.sort();\n }\n return [];\n });\n return this.aggregatorsPromise;\n }\n\n getFilterTypes() {\n if (this.filterTypesPromise) {\n return this.filterTypesPromise;\n }\n\n this.filterTypesPromise = this._get('/api/config/filters').then(result => {\n if (result.data) {\n return Object.keys(result.data).sort();\n }\n return [];\n });\n return this.filterTypesPromise;\n }\n\n transformMetricData(md, groupByTags, target, options, tsdbResolution) {\n const metricLabel = this.createMetricLabel(md, target, groupByTags, options);\n const dps = [];\n\n // TSDB returns datapoints has a hash of ts => value.\n // Can't use _.pairs(invert()) because it stringifies keys/values\n _.each(md.dps, (v, k) => {\n if (tsdbResolution === 2) {\n dps.push([v, k * 1]);\n } else {\n dps.push([v, k * 1000]);\n }\n });\n\n return { target: metricLabel, datapoints: dps };\n }\n\n createMetricLabel(md, target, groupByTags, options) {\n if (target.alias) {\n const scopedVars = _.clone(options.scopedVars || {});\n _.each(md.tags, (value, key) => {\n scopedVars['tag_' + key] = { value: value };\n });\n return this.templateSrv.replace(target.alias, scopedVars);\n }\n\n let label = md.metric;\n const tagData = [];\n\n if (!_.isEmpty(md.tags)) {\n _.each(_.toPairs(md.tags), tag => {\n if (_.has(groupByTags, tag[0])) {\n tagData.push(tag[0] + '=' + tag[1]);\n }\n });\n }\n\n if (!_.isEmpty(tagData)) {\n label += '{' + tagData.join(', ') + '}';\n }\n\n return label;\n }\n\n convertTargetToQuery(target, options, tsdbVersion) {\n if (!target.metric || target.hide) {\n return null;\n }\n\n const query: any = {\n metric: this.templateSrv.replace(target.metric, options.scopedVars, 'pipe'),\n aggregator: 'avg',\n };\n\n if (target.aggregator) {\n query.aggregator = this.templateSrv.replace(target.aggregator);\n }\n\n if (target.shouldComputeRate) {\n query.rate = true;\n query.rateOptions = {\n counter: !!target.isCounter,\n };\n\n if (target.counterMax && target.counterMax.length) {\n query.rateOptions.counterMax = parseInt(target.counterMax, 10);\n }\n\n if (target.counterResetValue && target.counterResetValue.length) {\n query.rateOptions.resetValue = parseInt(target.counterResetValue, 10);\n }\n\n if (tsdbVersion >= 2) {\n query.rateOptions.dropResets =\n !query.rateOptions.counterMax && (!query.rateOptions.ResetValue || query.rateOptions.ResetValue === 0);\n }\n }\n\n if (!target.disableDownsampling) {\n let interval = this.templateSrv.replace(target.downsampleInterval || options.interval);\n\n if (interval.match(/\\.[0-9]+s/)) {\n interval = parseFloat(interval) * 1000 + 'ms';\n }\n\n query.downsample = interval + '-' + target.downsampleAggregator;\n\n if (target.downsampleFillPolicy && target.downsampleFillPolicy !== 'none') {\n query.downsample += '-' + target.downsampleFillPolicy;\n }\n }\n\n if (target.filters && target.filters.length > 0) {\n query.filters = angular.copy(target.filters);\n if (query.filters) {\n for (const filterKey in query.filters) {\n query.filters[filterKey].filter = this.templateSrv.replace(\n query.filters[filterKey].filter,\n options.scopedVars,\n 'pipe'\n );\n }\n }\n } else {\n query.tags = angular.copy(target.tags);\n if (query.tags) {\n for (const tagKey in query.tags) {\n query.tags[tagKey] = this.templateSrv.replace(query.tags[tagKey], options.scopedVars, 'pipe');\n }\n }\n }\n\n if (target.explicitTags) {\n query.explicitTags = true;\n }\n\n return query;\n }\n\n mapMetricsToTargets(metrics, options, tsdbVersion) {\n let interpolatedTagValue, arrTagV;\n return _.map(metrics, metricData => {\n if (tsdbVersion === 3) {\n return metricData.query.index;\n } else {\n return _.findIndex(options.targets, target => {\n if (target.filters && target.filters.length > 0) {\n return target.metric === metricData.metric;\n } else {\n return (\n target.metric === metricData.metric &&\n _.every(target.tags, (tagV, tagK) => {\n interpolatedTagValue = this.templateSrv.replace(tagV, options.scopedVars, 'pipe');\n arrTagV = interpolatedTagValue.split('|');\n return _.includes(arrTagV, metricData.tags[tagK]) || interpolatedTagValue === '*';\n })\n );\n }\n });\n }\n });\n }\n\n convertToTSDBTime(date, roundUp, timezone) {\n if (date === 'now') {\n return null;\n }\n\n date = dateMath.parse(date, roundUp, timezone);\n return date.valueOf();\n }\n}\n","import { ElasticDatasource } from './datasource';\nimport { ElasticQueryCtrl } from './query_ctrl';\nimport { ElasticConfigCtrl } from './config_ctrl';\n\nclass ElasticAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n ElasticDatasource as Datasource,\n ElasticQueryCtrl as QueryCtrl,\n ElasticConfigCtrl as ConfigCtrl,\n ElasticAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\nimport kbn from 'app/core/utils/kbn';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nexport class OpenTsQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n aggregators: any;\n fillPolicies: any;\n filterTypes: any;\n tsdbVersion: any;\n aggregator: any;\n downsampleInterval: any;\n downsampleAggregator: any;\n downsampleFillPolicy: any;\n errors: any;\n suggestMetrics: any;\n suggestTagKeys: any;\n suggestTagValues: any;\n addTagMode: boolean;\n addFilterMode: boolean;\n\n /** @ngInject */\n constructor($scope, $injector) {\n super($scope, $injector);\n\n this.errors = this.validateTarget();\n this.aggregators = ['avg', 'sum', 'min', 'max', 'dev', 'zimsum', 'mimmin', 'mimmax'];\n this.fillPolicies = ['none', 'nan', 'null', 'zero'];\n this.filterTypes = [\n 'wildcard',\n 'iliteral_or',\n 'not_iliteral_or',\n 'not_literal_or',\n 'iwildcard',\n 'literal_or',\n 'regexp',\n ];\n\n this.tsdbVersion = this.datasource.tsdbVersion;\n\n if (!this.target.aggregator) {\n this.target.aggregator = 'sum';\n }\n\n if (!this.target.downsampleAggregator) {\n this.target.downsampleAggregator = 'avg';\n }\n\n if (!this.target.downsampleFillPolicy) {\n this.target.downsampleFillPolicy = 'none';\n }\n\n this.datasource.getAggregators().then(aggs => {\n if (aggs.length !== 0) {\n this.aggregators = aggs;\n }\n });\n\n this.datasource.getFilterTypes().then(filterTypes => {\n if (filterTypes.length !== 0) {\n this.filterTypes = filterTypes;\n }\n });\n\n // needs to be defined here as it is called from typeahead\n this.suggestMetrics = (query, callback) => {\n this.datasource\n .metricFindQuery('metrics(' + query + ')')\n .then(this.getTextValues)\n .then(callback);\n };\n\n this.suggestTagKeys = (query, callback) => {\n this.datasource.suggestTagKeys(this.target.metric).then(callback);\n };\n\n this.suggestTagValues = (query, callback) => {\n this.datasource\n .metricFindQuery('suggest_tagv(' + query + ')')\n .then(this.getTextValues)\n .then(callback);\n };\n }\n\n targetBlur() {\n this.errors = this.validateTarget();\n this.refresh();\n }\n\n getTextValues(metricFindResult) {\n return _.map(metricFindResult, value => {\n return value.text;\n });\n }\n\n addTag() {\n if (this.target.filters && this.target.filters.length > 0) {\n this.errors.tags = 'Please remove filters to use tags, tags and filters are mutually exclusive.';\n }\n\n if (!this.addTagMode) {\n this.addTagMode = true;\n return;\n }\n\n if (!this.target.tags) {\n this.target.tags = {};\n }\n\n this.errors = this.validateTarget();\n\n if (!this.errors.tags) {\n this.target.tags[this.target.currentTagKey] = this.target.currentTagValue;\n this.target.currentTagKey = '';\n this.target.currentTagValue = '';\n this.targetBlur();\n }\n\n this.addTagMode = false;\n }\n\n removeTag(key) {\n delete this.target.tags[key];\n this.targetBlur();\n }\n\n editTag(key, value) {\n this.removeTag(key);\n this.target.currentTagKey = key;\n this.target.currentTagValue = value;\n this.addTag();\n }\n\n closeAddTagMode() {\n this.addTagMode = false;\n return;\n }\n\n addFilter() {\n if (this.target.tags && _.size(this.target.tags) > 0) {\n this.errors.filters = 'Please remove tags to use filters, tags and filters are mutually exclusive.';\n }\n\n if (!this.addFilterMode) {\n this.addFilterMode = true;\n return;\n }\n\n if (!this.target.filters) {\n this.target.filters = [];\n }\n\n if (!this.target.currentFilterType) {\n this.target.currentFilterType = 'iliteral_or';\n }\n\n if (!this.target.currentFilterGroupBy) {\n this.target.currentFilterGroupBy = false;\n }\n\n this.errors = this.validateTarget();\n\n if (!this.errors.filters) {\n const currentFilter = {\n type: this.target.currentFilterType,\n tagk: this.target.currentFilterKey,\n filter: this.target.currentFilterValue,\n groupBy: this.target.currentFilterGroupBy,\n };\n this.target.filters.push(currentFilter);\n this.target.currentFilterType = 'literal_or';\n this.target.currentFilterKey = '';\n this.target.currentFilterValue = '';\n this.target.currentFilterGroupBy = false;\n this.targetBlur();\n }\n\n this.addFilterMode = false;\n }\n\n removeFilter(index) {\n this.target.filters.splice(index, 1);\n this.targetBlur();\n }\n\n editFilter(fil, index) {\n this.removeFilter(index);\n this.target.currentFilterKey = fil.tagk;\n this.target.currentFilterValue = fil.filter;\n this.target.currentFilterType = fil.type;\n this.target.currentFilterGroupBy = fil.groupBy;\n this.addFilter();\n }\n\n closeAddFilterMode() {\n this.addFilterMode = false;\n return;\n }\n\n validateTarget() {\n const errs: any = {};\n\n if (this.target.shouldDownsample) {\n try {\n if (this.target.downsampleInterval) {\n kbn.describe_interval(this.target.downsampleInterval);\n } else {\n errs.downsampleInterval = \"You must supply a downsample interval (e.g. '1m' or '1h').\";\n }\n } catch (err) {\n errs.downsampleInterval = err.message;\n }\n }\n\n if (this.target.tags && _.has(this.target.tags, this.target.currentTagKey)) {\n errs.tags = \"Duplicate tag key '\" + this.target.currentTagKey + \"'.\";\n }\n\n return errs;\n }\n}\n","export class OpenTsConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/opentsdb/partials/config.html';\n current: any;\n\n /** @ngInject */\n constructor($scope) {\n this.current.jsonData = this.current.jsonData || {};\n this.current.jsonData.tsdbVersion = this.current.jsonData.tsdbVersion || 1;\n this.current.jsonData.tsdbResolution = this.current.jsonData.tsdbResolution || 1;\n }\n\n tsdbVersions = [{ name: '<=2.1', value: 1 }, { name: '==2.2', value: 2 }, { name: '==2.3', value: 3 }];\n\n tsdbResolutions = [{ name: 'second', value: 1 }, { name: 'millisecond', value: 2 }];\n}\n","import OpenTsDatasource from './datasource';\nimport { OpenTsQueryCtrl } from './query_ctrl';\nimport { OpenTsConfigCtrl } from './config_ctrl';\n\nclass AnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n OpenTsDatasource as Datasource,\n OpenTsQueryCtrl as QueryCtrl,\n OpenTsConfigCtrl as ConfigCtrl,\n AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\n\nclass GrafanaDatasource {\n /** @ngInject */\n constructor(private backendSrv, private $q, private templateSrv) {}\n\n query(options) {\n return this.backendSrv\n .get('/api/tsdb/testdata/random-walk', {\n from: options.range.from.valueOf(),\n to: options.range.to.valueOf(),\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n })\n .then(res => {\n const data = [];\n\n if (res.results) {\n _.forEach(res.results, queryRes => {\n for (const series of queryRes.series) {\n data.push({\n target: series.name,\n datapoints: series.points,\n });\n }\n });\n }\n\n return { data: data };\n });\n }\n\n metricFindQuery(options) {\n return this.$q.when({ data: [] });\n }\n\n annotationQuery(options) {\n const params: any = {\n from: options.range.from.valueOf(),\n to: options.range.to.valueOf(),\n limit: options.annotation.limit,\n tags: options.annotation.tags,\n matchAny: options.annotation.matchAny,\n };\n\n if (options.annotation.type === 'dashboard') {\n // if no dashboard id yet return\n if (!options.dashboard.id) {\n return this.$q.when([]);\n }\n // filter by dashboard id\n params.dashboardId = options.dashboard.id;\n // remove tags filter if any\n delete params.tags;\n } else {\n // require at least one tag\n if (!_.isArray(options.annotation.tags) || options.annotation.tags.length === 0) {\n return this.$q.when([]);\n }\n const delimiter = '__delimiter__';\n const tags = [];\n for (const t of params.tags) {\n const renderedValues = this.templateSrv.replace(t, {}, value => {\n if (typeof value === 'string') {\n return value;\n }\n\n return value.join(delimiter);\n });\n for (const tt of renderedValues.split(delimiter)) {\n tags.push(tt);\n }\n }\n params.tags = tags;\n }\n\n return this.backendSrv.get('/api/annotations', params);\n }\n}\n\nexport { GrafanaDatasource };\n","import { GrafanaDatasource } from './datasource';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nclass GrafanaQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n}\n\nclass GrafanaAnnotationsQueryCtrl {\n annotation: any;\n\n types = [{ text: 'Dashboard', value: 'dashboard' }, { text: 'Tags', value: 'tags' }];\n\n constructor() {\n this.annotation.type = this.annotation.type || 'tags';\n this.annotation.limit = this.annotation.limit || 100;\n }\n\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n GrafanaDatasource,\n GrafanaDatasource as Datasource,\n GrafanaQueryCtrl as QueryCtrl,\n GrafanaAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\nimport TableModel from 'app/core/table_model';\nimport { FieldType } from '@grafana/ui';\n\nexport default class InfluxSeries {\n series: any;\n alias: any;\n annotation: any;\n\n constructor(options) {\n this.series = options.series;\n this.alias = options.alias;\n this.annotation = options.annotation;\n }\n\n getTimeSeries() {\n const output = [];\n let i, j;\n\n if (this.series.length === 0) {\n return output;\n }\n\n _.each(this.series, series => {\n const columns = series.columns.length;\n const tags = _.map(series.tags, (value, key) => {\n return key + ': ' + value;\n });\n\n for (j = 1; j < columns; j++) {\n let seriesName = series.name;\n const columnName = series.columns[j];\n if (columnName !== 'value') {\n seriesName = seriesName + '.' + columnName;\n }\n\n if (this.alias) {\n seriesName = this._getSeriesName(series, j);\n } else if (series.tags) {\n seriesName = seriesName + ' {' + tags.join(', ') + '}';\n }\n\n const datapoints = [];\n if (series.values) {\n for (i = 0; i < series.values.length; i++) {\n datapoints[i] = [series.values[i][j], series.values[i][0]];\n }\n }\n\n output.push({ target: seriesName, datapoints: datapoints });\n }\n });\n\n return output;\n }\n\n _getSeriesName(series, index) {\n const regex = /\\$(\\w+)|\\[\\[([\\s\\S]+?)\\]\\]/g;\n const segments = series.name.split('.');\n\n return this.alias.replace(regex, (match, g1, g2) => {\n const group = g1 || g2;\n const segIndex = parseInt(group, 10);\n\n if (group === 'm' || group === 'measurement') {\n return series.name;\n }\n if (group === 'col') {\n return series.columns[index];\n }\n if (!isNaN(segIndex)) {\n return segments[segIndex];\n }\n if (group.indexOf('tag_') !== 0) {\n return match;\n }\n\n const tag = group.replace('tag_', '');\n if (!series.tags) {\n return match;\n }\n return series.tags[tag];\n });\n }\n\n getAnnotations() {\n const list = [];\n\n _.each(this.series, series => {\n let titleCol = null;\n let timeCol = null;\n const tagsCol = [];\n let textCol = null;\n\n _.each(series.columns, (column, index) => {\n if (column === 'time') {\n timeCol = index;\n return;\n }\n if (column === 'sequence_number') {\n return;\n }\n if (column === this.annotation.titleColumn) {\n titleCol = index;\n return;\n }\n if (_.includes((this.annotation.tagsColumn || '').replace(' ', '').split(','), column)) {\n tagsCol.push(index);\n return;\n }\n if (column === this.annotation.textColumn) {\n textCol = index;\n return;\n }\n // legacy case\n if (!titleCol && textCol !== index) {\n titleCol = index;\n }\n });\n\n _.each(series.values, value => {\n const data = {\n annotation: this.annotation,\n time: +new Date(value[timeCol]),\n title: value[titleCol],\n // Remove empty values, then split in different tags for comma separated values\n tags: _.flatten(\n tagsCol\n .filter(t => {\n return value[t];\n })\n .map(t => {\n return value[t].split(',');\n })\n ),\n text: value[textCol],\n };\n\n list.push(data);\n });\n });\n\n return list;\n }\n\n getTable() {\n const table = new TableModel();\n let i, j;\n\n if (this.series.length === 0) {\n return table;\n }\n\n _.each(this.series, (series, seriesIndex) => {\n if (seriesIndex === 0) {\n j = 0;\n // Check that the first column is indeed 'time'\n if (series.columns[0] === 'time') {\n // Push this now before the tags and with the right type\n table.columns.push({ text: 'Time', type: FieldType.time });\n j++;\n }\n _.each(_.keys(series.tags), key => {\n table.columns.push({ text: key });\n });\n for (; j < series.columns.length; j++) {\n table.columns.push({ text: series.columns[j] });\n }\n }\n\n if (series.values) {\n for (i = 0; i < series.values.length; i++) {\n const values = series.values[i];\n const reordered = [values[0]];\n if (series.tags) {\n for (const key in series.tags) {\n if (series.tags.hasOwnProperty(key)) {\n reordered.push(series.tags[key]);\n }\n }\n }\n for (j = 1; j < values.length; j++) {\n reordered.push(values[j]);\n }\n table.rows.push(reordered);\n }\n }\n });\n\n return table;\n }\n}\n","import _ from 'lodash';\nimport { QueryPartDef, QueryPart, functionRenderer, suffixRenderer } from 'app/core/components/query_part/query_part';\n\nconst index = [];\nconst categories = {\n Aggregations: [],\n Selectors: [],\n Transformations: [],\n Predictors: [],\n Math: [],\n Aliasing: [],\n Fields: [],\n};\n\nfunction createPart(part): any {\n const def = index[part.type];\n if (!def) {\n throw { message: 'Could not find query part ' + part.type };\n }\n\n return new QueryPart(part, def);\n}\n\nfunction register(options: any) {\n index[options.type] = new QueryPartDef(options);\n options.category.push(index[options.type]);\n}\n\nconst groupByTimeFunctions = [];\n\nfunction aliasRenderer(part, innerExpr) {\n return innerExpr + ' AS ' + '\"' + part.params[0] + '\"';\n}\n\nfunction fieldRenderer(part, innerExpr) {\n if (part.params[0] === '*') {\n return '*';\n }\n return '\"' + part.params[0] + '\"';\n}\n\nfunction replaceAggregationAddStrategy(selectParts, partModel) {\n // look for existing aggregation\n for (let i = 0; i < selectParts.length; i++) {\n const part = selectParts[i];\n if (part.def.category === categories.Aggregations) {\n if (part.def.type === partModel.def.type) {\n return;\n }\n // count distinct is allowed\n if (part.def.type === 'count' && partModel.def.type === 'distinct') {\n break;\n }\n // remove next aggregation if distinct was replaced\n if (part.def.type === 'distinct') {\n const morePartsAvailable = selectParts.length >= i + 2;\n if (partModel.def.type !== 'count' && morePartsAvailable) {\n const nextPart = selectParts[i + 1];\n if (nextPart.def.category === categories.Aggregations) {\n selectParts.splice(i + 1, 1);\n }\n } else if (partModel.def.type === 'count') {\n if (!morePartsAvailable || selectParts[i + 1].def.type !== 'count') {\n selectParts.splice(i + 1, 0, partModel);\n }\n return;\n }\n }\n selectParts[i] = partModel;\n return;\n }\n if (part.def.category === categories.Selectors) {\n selectParts[i] = partModel;\n return;\n }\n }\n\n selectParts.splice(1, 0, partModel);\n}\n\nfunction addTransformationStrategy(selectParts, partModel) {\n let i;\n // look for index to add transformation\n for (i = 0; i < selectParts.length; i++) {\n const part = selectParts[i];\n if (part.def.category === categories.Math || part.def.category === categories.Aliasing) {\n break;\n }\n }\n\n selectParts.splice(i, 0, partModel);\n}\n\nfunction addMathStrategy(selectParts, partModel) {\n const partCount = selectParts.length;\n if (partCount > 0) {\n // if last is math, replace it\n if (selectParts[partCount - 1].def.type === 'math') {\n selectParts[partCount - 1] = partModel;\n return;\n }\n // if next to last is math, replace it\n if (partCount > 1 && selectParts[partCount - 2].def.type === 'math') {\n selectParts[partCount - 2] = partModel;\n return;\n } else if (selectParts[partCount - 1].def.type === 'alias') {\n // if last is alias add it before\n selectParts.splice(partCount - 1, 0, partModel);\n return;\n }\n }\n selectParts.push(partModel);\n}\n\nfunction addAliasStrategy(selectParts, partModel) {\n const partCount = selectParts.length;\n if (partCount > 0) {\n // if last is alias, replace it\n if (selectParts[partCount - 1].def.type === 'alias') {\n selectParts[partCount - 1] = partModel;\n return;\n }\n }\n selectParts.push(partModel);\n}\n\nfunction addFieldStrategy(selectParts, partModel, query) {\n // copy all parts\n const parts = _.map(selectParts, (part: any) => {\n return createPart({ type: part.def.type, params: _.clone(part.params) });\n });\n\n query.selectModels.push(parts);\n}\n\nregister({\n type: 'field',\n addStrategy: addFieldStrategy,\n category: categories.Fields,\n params: [{ type: 'field', dynamicLookup: true }],\n defaultParams: ['value'],\n renderer: fieldRenderer,\n});\n\n// Aggregations\nregister({\n type: 'count',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'distinct',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'integral',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'mean',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'median',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'mode',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'sum',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Aggregations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\n// transformations\n\nregister({\n type: 'derivative',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [\n {\n name: 'duration',\n type: 'interval',\n options: ['1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n ],\n defaultParams: ['10s'],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'spread',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'non_negative_derivative',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [\n {\n name: 'duration',\n type: 'interval',\n options: ['1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n ],\n defaultParams: ['10s'],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'difference',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'non_negative_difference',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'moving_average',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [{ name: 'window', type: 'int', options: [5, 10, 20, 30, 40] }],\n defaultParams: [10],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'cumulative_sum',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'stddev',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'time',\n category: groupByTimeFunctions,\n params: [\n {\n name: 'interval',\n type: 'time',\n options: ['$__interval', '1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n ],\n defaultParams: ['$__interval'],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'fill',\n category: groupByTimeFunctions,\n params: [\n {\n name: 'fill',\n type: 'string',\n options: ['none', 'null', '0', 'previous', 'linear'],\n },\n ],\n defaultParams: ['null'],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'elapsed',\n addStrategy: addTransformationStrategy,\n category: categories.Transformations,\n params: [\n {\n name: 'duration',\n type: 'interval',\n options: ['1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n ],\n defaultParams: ['10s'],\n renderer: functionRenderer,\n});\n\n// predictions\nregister({\n type: 'holt_winters',\n addStrategy: addTransformationStrategy,\n category: categories.Predictors,\n params: [\n { name: 'number', type: 'int', options: [5, 10, 20, 30, 40] },\n { name: 'season', type: 'int', options: [0, 1, 2, 5, 10] },\n ],\n defaultParams: [10, 2],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'holt_winters_with_fit',\n addStrategy: addTransformationStrategy,\n category: categories.Predictors,\n params: [\n { name: 'number', type: 'int', options: [5, 10, 20, 30, 40] },\n { name: 'season', type: 'int', options: [0, 1, 2, 5, 10] },\n ],\n defaultParams: [10, 2],\n renderer: functionRenderer,\n});\n\n// Selectors\nregister({\n type: 'bottom',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [3],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'first',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'last',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'max',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'min',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [],\n defaultParams: [],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'percentile',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [{ name: 'nth', type: 'int' }],\n defaultParams: [95],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'top',\n addStrategy: replaceAggregationAddStrategy,\n category: categories.Selectors,\n params: [{ name: 'count', type: 'int' }],\n defaultParams: [3],\n renderer: functionRenderer,\n});\n\nregister({\n type: 'tag',\n category: groupByTimeFunctions,\n params: [{ name: 'tag', type: 'string', dynamicLookup: true }],\n defaultParams: ['tag'],\n renderer: fieldRenderer,\n});\n\nregister({\n type: 'math',\n addStrategy: addMathStrategy,\n category: categories.Math,\n params: [{ name: 'expr', type: 'string' }],\n defaultParams: [' / 100'],\n renderer: suffixRenderer,\n});\n\nregister({\n type: 'alias',\n addStrategy: addAliasStrategy,\n category: categories.Aliasing,\n params: [{ name: 'name', type: 'string', quote: 'double' }],\n defaultParams: ['alias'],\n renderMode: 'suffix',\n renderer: aliasRenderer,\n});\n\nexport default {\n create: createPart,\n getCategories: () => {\n return categories;\n },\n replaceAggregationAdd: replaceAggregationAddStrategy,\n};\n","import _ from 'lodash';\nimport queryPart from './query_part';\nimport kbn from 'app/core/utils/kbn';\n\nexport default class InfluxQuery {\n target: any;\n selectModels: any[];\n queryBuilder: any;\n groupByParts: any;\n templateSrv: any;\n scopedVars: any;\n\n /** @ngInject */\n constructor(target, templateSrv?, scopedVars?) {\n this.target = target;\n this.templateSrv = templateSrv;\n this.scopedVars = scopedVars;\n\n target.policy = target.policy || 'default';\n target.resultFormat = target.resultFormat || 'time_series';\n target.orderByTime = target.orderByTime || 'ASC';\n target.tags = target.tags || [];\n target.groupBy = target.groupBy || [{ type: 'time', params: ['$__interval'] }, { type: 'fill', params: ['null'] }];\n target.select = target.select || [[{ type: 'field', params: ['value'] }, { type: 'mean', params: [] }]];\n\n this.updateProjection();\n }\n\n updateProjection() {\n this.selectModels = _.map(this.target.select, (parts: any) => {\n return _.map(parts, queryPart.create);\n });\n this.groupByParts = _.map(this.target.groupBy, queryPart.create);\n }\n\n updatePersistedParts() {\n this.target.select = _.map(this.selectModels, selectParts => {\n return _.map(selectParts, (part: any) => {\n return { type: part.def.type, params: part.params };\n });\n });\n }\n\n hasGroupByTime() {\n return _.find(this.target.groupBy, (g: any) => g.type === 'time');\n }\n\n hasFill() {\n return _.find(this.target.groupBy, (g: any) => g.type === 'fill');\n }\n\n addGroupBy(value) {\n const stringParts = value.match(/^(\\w+)\\((.*)\\)$/);\n const typePart = stringParts[1];\n const arg = stringParts[2];\n const partModel = queryPart.create({ type: typePart, params: [arg] });\n const partCount = this.target.groupBy.length;\n\n if (partCount === 0) {\n this.target.groupBy.push(partModel.part);\n } else if (typePart === 'time') {\n this.target.groupBy.splice(0, 0, partModel.part);\n } else if (typePart === 'tag') {\n if (this.target.groupBy[partCount - 1].type === 'fill') {\n this.target.groupBy.splice(partCount - 1, 0, partModel.part);\n } else {\n this.target.groupBy.push(partModel.part);\n }\n } else {\n this.target.groupBy.push(partModel.part);\n }\n\n this.updateProjection();\n }\n\n removeGroupByPart(part, index) {\n const categories = queryPart.getCategories();\n\n if (part.def.type === 'time') {\n // remove fill\n this.target.groupBy = _.filter(this.target.groupBy, (g: any) => g.type !== 'fill');\n // remove aggregations\n this.target.select = _.map(this.target.select, (s: any) => {\n return _.filter(s, (part: any) => {\n const partModel = queryPart.create(part);\n if (partModel.def.category === categories.Aggregations) {\n return false;\n }\n if (partModel.def.category === categories.Selectors) {\n return false;\n }\n return true;\n });\n });\n }\n\n this.target.groupBy.splice(index, 1);\n this.updateProjection();\n }\n\n removeSelect(index: number) {\n this.target.select.splice(index, 1);\n this.updateProjection();\n }\n\n removeSelectPart(selectParts, part) {\n // if we remove the field remove the whole statement\n if (part.def.type === 'field') {\n if (this.selectModels.length > 1) {\n const modelsIndex = _.indexOf(this.selectModels, selectParts);\n this.selectModels.splice(modelsIndex, 1);\n }\n } else {\n const partIndex = _.indexOf(selectParts, part);\n selectParts.splice(partIndex, 1);\n }\n\n this.updatePersistedParts();\n }\n\n addSelectPart(selectParts, type) {\n const partModel = queryPart.create({ type: type });\n partModel.def.addStrategy(selectParts, partModel, this);\n this.updatePersistedParts();\n }\n\n private renderTagCondition(tag, index, interpolate) {\n let str = '';\n let operator = tag.operator;\n let value = tag.value;\n if (index > 0) {\n str = (tag.condition || 'AND') + ' ';\n }\n\n if (!operator) {\n if (/^\\/.*\\/$/.test(value)) {\n operator = '=~';\n } else {\n operator = '=';\n }\n }\n\n // quote value unless regex\n if (operator !== '=~' && operator !== '!~') {\n if (interpolate) {\n value = this.templateSrv.replace(value, this.scopedVars);\n }\n if (operator !== '>' && operator !== '<') {\n value = \"'\" + value.replace(/\\\\/g, '\\\\\\\\') + \"'\";\n }\n } else if (interpolate) {\n value = this.templateSrv.replace(value, this.scopedVars, 'regex');\n }\n\n return str + '\"' + tag.key + '\" ' + operator + ' ' + value;\n }\n\n getMeasurementAndPolicy(interpolate) {\n let policy = this.target.policy;\n let measurement = this.target.measurement || 'measurement';\n\n if (!measurement.match('^/.*/$')) {\n measurement = '\"' + measurement + '\"';\n } else if (interpolate) {\n measurement = this.templateSrv.replace(measurement, this.scopedVars, 'regex');\n }\n\n if (policy !== 'default') {\n policy = '\"' + this.target.policy + '\".';\n } else {\n policy = '';\n }\n\n return policy + measurement;\n }\n\n interpolateQueryStr(value, variable, defaultFormatFn) {\n // if no multi or include all do not regexEscape\n if (!variable.multi && !variable.includeAll) {\n return value;\n }\n\n if (typeof value === 'string') {\n return kbn.regexEscape(value);\n }\n\n const escapedValues = _.map(value, kbn.regexEscape);\n return '(' + escapedValues.join('|') + ')';\n }\n\n render(interpolate?) {\n const target = this.target;\n\n if (target.rawQuery) {\n if (interpolate) {\n return this.templateSrv.replace(target.query, this.scopedVars, this.interpolateQueryStr);\n } else {\n return target.query;\n }\n }\n\n let query = 'SELECT ';\n let i, y;\n for (i = 0; i < this.selectModels.length; i++) {\n const parts = this.selectModels[i];\n let selectText = '';\n for (y = 0; y < parts.length; y++) {\n const part = parts[y];\n selectText = part.render(selectText);\n }\n\n if (i > 0) {\n query += ', ';\n }\n query += selectText;\n }\n\n query += ' FROM ' + this.getMeasurementAndPolicy(interpolate) + ' WHERE ';\n const conditions = _.map(target.tags, (tag, index) => {\n return this.renderTagCondition(tag, index, interpolate);\n });\n\n if (conditions.length > 0) {\n query += '(' + conditions.join(' ') + ') AND ';\n }\n\n query += '$timeFilter';\n\n let groupBySection = '';\n for (i = 0; i < this.groupByParts.length; i++) {\n const part = this.groupByParts[i];\n if (i > 0) {\n // for some reason fill has no separator\n groupBySection += part.def.type === 'fill' ? ' ' : ', ';\n }\n groupBySection += part.render('');\n }\n\n if (groupBySection.length) {\n query += ' GROUP BY ' + groupBySection;\n }\n\n if (target.fill) {\n query += ' fill(' + target.fill + ')';\n }\n\n if (target.orderByTime === 'DESC') {\n query += ' ORDER BY time DESC';\n }\n\n if (target.limit) {\n query += ' LIMIT ' + target.limit;\n }\n\n if (target.slimit) {\n query += ' SLIMIT ' + target.slimit;\n }\n\n if (target.tz) {\n query += \" tz('\" + target.tz + \"')\";\n }\n\n return query;\n }\n\n renderAdhocFilters(filters) {\n const conditions = _.map(filters, (tag, index) => {\n return this.renderTagCondition(tag, index, false);\n });\n return conditions.join(' ');\n }\n}\n","import _ from 'lodash';\nimport kbn from 'app/core/utils/kbn';\n\nfunction renderTagCondition(tag, index) {\n let str = '';\n let operator = tag.operator;\n let value = tag.value;\n if (index > 0) {\n str = (tag.condition || 'AND') + ' ';\n }\n\n if (!operator) {\n if (/^\\/.*\\/$/.test(tag.value)) {\n operator = '=~';\n } else {\n operator = '=';\n }\n }\n\n // quote value unless regex or number\n if (operator !== '=~' && operator !== '!~' && isNaN(+value)) {\n value = \"'\" + value + \"'\";\n }\n\n return str + '\"' + tag.key + '\" ' + operator + ' ' + value;\n}\n\nexport class InfluxQueryBuilder {\n constructor(private target, private database?) {}\n\n buildExploreQuery(type: string, withKey?: string, withMeasurementFilter?: string) {\n let query;\n let measurement;\n let policy;\n\n if (type === 'TAG_KEYS') {\n query = 'SHOW TAG KEYS';\n measurement = this.target.measurement;\n policy = this.target.policy;\n } else if (type === 'TAG_VALUES') {\n query = 'SHOW TAG VALUES';\n measurement = this.target.measurement;\n policy = this.target.policy;\n } else if (type === 'MEASUREMENTS') {\n query = 'SHOW MEASUREMENTS';\n if (withMeasurementFilter) {\n query += ' WITH MEASUREMENT =~ /' + kbn.regexEscape(withMeasurementFilter) + '/';\n }\n } else if (type === 'FIELDS') {\n measurement = this.target.measurement;\n policy = this.target.policy;\n\n if (!measurement.match('^/.*/')) {\n measurement = '\"' + measurement + '\"';\n\n if (policy && policy !== 'default') {\n policy = '\"' + policy + '\"';\n measurement = policy + '.' + measurement;\n }\n }\n\n return 'SHOW FIELD KEYS FROM ' + measurement;\n } else if (type === 'RETENTION POLICIES') {\n query = 'SHOW RETENTION POLICIES on \"' + this.database + '\"';\n return query;\n }\n\n if (measurement) {\n if (!measurement.match('^/.*/') && !measurement.match(/^merge\\(.*\\)/)) {\n measurement = '\"' + measurement + '\"';\n }\n\n if (policy && policy !== 'default') {\n policy = '\"' + policy + '\"';\n measurement = policy + '.' + measurement;\n }\n\n query += ' FROM ' + measurement;\n }\n\n if (withKey) {\n query += ' WITH KEY = \"' + withKey + '\"';\n }\n\n if (this.target.tags && this.target.tags.length > 0) {\n const whereConditions = _.reduce(\n this.target.tags,\n (memo, tag) => {\n // do not add a condition for the key we want to explore for\n if (tag.key === withKey) {\n return memo;\n }\n memo.push(renderTagCondition(tag, memo.length));\n return memo;\n },\n []\n );\n\n if (whereConditions.length > 0) {\n query += ' WHERE ' + whereConditions.join(' ');\n }\n }\n if (type === 'MEASUREMENTS') {\n query += ' LIMIT 100';\n //Solve issue #2524 by limiting the number of measurements returned\n //LIMIT must be after WITH MEASUREMENT and WHERE clauses\n //This also could be used for TAG KEYS and TAG VALUES, if desired\n }\n return query;\n }\n}\n","import _ from 'lodash';\n\nexport default class ResponseParser {\n parse(query, results) {\n if (!results || results.results.length === 0) {\n return [];\n }\n\n const influxResults = results.results[0];\n if (!influxResults.series) {\n return [];\n }\n\n const normalizedQuery = query.toLowerCase();\n const isValueFirst =\n normalizedQuery.indexOf('show field keys') >= 0 || normalizedQuery.indexOf('show retention policies') >= 0;\n\n const res = {};\n _.each(influxResults.series, serie => {\n _.each(serie.values, value => {\n if (_.isArray(value)) {\n // In general, there are 2 possible shapes for the returned value.\n // The first one is a two-element array,\n // where the first element is somewhat a metadata value:\n // the tag name for SHOW TAG VALUES queries,\n // the time field for SELECT queries, etc.\n // The second shape is an one-element array,\n // that is containing an immediate value.\n // For example, SHOW FIELD KEYS queries return such shape.\n // Note, pre-0.11 versions return\n // the second shape for SHOW TAG VALUES queries\n // (while the newer versions—first).\n\n if (isValueFirst) {\n addUnique(res, value[0]);\n } else if (value[1] !== undefined) {\n addUnique(res, value[1]);\n } else {\n addUnique(res, value[0]);\n }\n } else {\n addUnique(res, value);\n }\n });\n });\n\n return _.map(res, value => {\n return { text: value.toString() };\n });\n }\n}\n\nfunction addUnique(arr, value) {\n arr[value] = value;\n}\n","import _ from 'lodash';\n\nimport * as dateMath from 'app/core/utils/datemath';\nimport InfluxSeries from './influx_series';\nimport InfluxQuery from './influx_query';\nimport ResponseParser from './response_parser';\nimport { InfluxQueryBuilder } from './query_builder';\n\nexport default class InfluxDatasource {\n type: string;\n urls: any;\n username: string;\n password: string;\n name: string;\n database: any;\n basicAuth: any;\n withCredentials: any;\n interval: any;\n responseParser: any;\n\n /** @ngInject */\n constructor(instanceSettings, private $q, private backendSrv, private templateSrv) {\n this.type = 'influxdb';\n this.urls = _.map(instanceSettings.url.split(','), url => {\n return url.trim();\n });\n\n this.username = instanceSettings.username;\n this.password = instanceSettings.password;\n this.name = instanceSettings.name;\n this.database = instanceSettings.database;\n this.basicAuth = instanceSettings.basicAuth;\n this.withCredentials = instanceSettings.withCredentials;\n this.interval = (instanceSettings.jsonData || {}).timeInterval;\n this.responseParser = new ResponseParser();\n }\n\n query(options) {\n let timeFilter = this.getTimeFilter(options);\n const scopedVars = options.scopedVars;\n const targets = _.cloneDeep(options.targets);\n const queryTargets = [];\n let queryModel;\n let i, y;\n\n let allQueries = _.map(targets, target => {\n if (target.hide) {\n return '';\n }\n\n queryTargets.push(target);\n\n // backward compatibility\n scopedVars.interval = scopedVars.__interval;\n\n queryModel = new InfluxQuery(target, this.templateSrv, scopedVars);\n return queryModel.render(true);\n }).reduce((acc, current) => {\n if (current !== '') {\n acc += ';' + current;\n }\n return acc;\n });\n\n if (allQueries === '') {\n return this.$q.when({ data: [] });\n }\n\n // add global adhoc filters to timeFilter\n const adhocFilters = this.templateSrv.getAdhocFilters(this.name);\n if (adhocFilters.length > 0) {\n timeFilter += ' AND ' + queryModel.renderAdhocFilters(adhocFilters);\n }\n\n // replace grafana variables\n scopedVars.timeFilter = { value: timeFilter };\n\n // replace templated variables\n allQueries = this.templateSrv.replace(allQueries, scopedVars);\n\n return this._seriesQuery(allQueries, options).then(\n (data): any => {\n if (!data || !data.results) {\n return [];\n }\n\n const seriesList = [];\n for (i = 0; i < data.results.length; i++) {\n const result = data.results[i];\n if (!result || !result.series) {\n continue;\n }\n\n const target = queryTargets[i];\n let alias = target.alias;\n if (alias) {\n alias = this.templateSrv.replace(target.alias, options.scopedVars);\n }\n\n const influxSeries = new InfluxSeries({\n series: data.results[i].series,\n alias: alias,\n });\n\n switch (target.resultFormat) {\n case 'table': {\n seriesList.push(influxSeries.getTable());\n break;\n }\n default: {\n const timeSeries = influxSeries.getTimeSeries();\n for (y = 0; y < timeSeries.length; y++) {\n seriesList.push(timeSeries[y]);\n }\n break;\n }\n }\n }\n\n return { data: seriesList };\n }\n );\n }\n\n annotationQuery(options) {\n if (!options.annotation.query) {\n return this.$q.reject({\n message: 'Query missing in annotation definition',\n });\n }\n\n const timeFilter = this.getTimeFilter({ rangeRaw: options.rangeRaw, timezone: options.timezone });\n let query = options.annotation.query.replace('$timeFilter', timeFilter);\n query = this.templateSrv.replace(query, null, 'regex');\n\n return this._seriesQuery(query, options).then(data => {\n if (!data || !data.results || !data.results[0]) {\n throw { message: 'No results in response from InfluxDB' };\n }\n return new InfluxSeries({\n series: data.results[0].series,\n annotation: options.annotation,\n }).getAnnotations();\n });\n }\n\n targetContainsTemplate(target) {\n for (const group of target.groupBy) {\n for (const param of group.params) {\n if (this.templateSrv.variableExists(param)) {\n return true;\n }\n }\n }\n\n for (const i in target.tags) {\n if (this.templateSrv.variableExists(target.tags[i].value)) {\n return true;\n }\n }\n\n return false;\n }\n\n metricFindQuery(query: string, options?: any) {\n const interpolated = this.templateSrv.replace(query, null, 'regex');\n\n return this._seriesQuery(interpolated, options).then(_.curry(this.responseParser.parse)(query));\n }\n\n getTagKeys(options) {\n const queryBuilder = new InfluxQueryBuilder({ measurement: '', tags: [] }, this.database);\n const query = queryBuilder.buildExploreQuery('TAG_KEYS');\n return this.metricFindQuery(query, options);\n }\n\n getTagValues(options) {\n const queryBuilder = new InfluxQueryBuilder({ measurement: '', tags: [] }, this.database);\n const query = queryBuilder.buildExploreQuery('TAG_VALUES', options.key);\n return this.metricFindQuery(query, options);\n }\n\n _seriesQuery(query: string, options?: any) {\n if (!query) {\n return this.$q.when({ results: [] });\n }\n\n if (options && options.range) {\n const timeFilter = this.getTimeFilter({ rangeRaw: options.range, timezone: options.timezone });\n query = query.replace('$timeFilter', timeFilter);\n }\n\n return this._influxRequest('GET', '/query', { q: query, epoch: 'ms' }, options);\n }\n\n serializeParams(params) {\n if (!params) {\n return '';\n }\n\n return _.reduce(\n params,\n (memo, value, key) => {\n if (value === null || value === undefined) {\n return memo;\n }\n memo.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n return memo;\n },\n []\n ).join('&');\n }\n\n testDatasource() {\n const queryBuilder = new InfluxQueryBuilder({ measurement: '', tags: [] }, this.database);\n const query = queryBuilder.buildExploreQuery('RETENTION POLICIES');\n\n return this._seriesQuery(query)\n .then(res => {\n const error = _.get(res, 'results[0].error');\n if (error) {\n return { status: 'error', message: error };\n }\n return { status: 'success', message: 'Data source is working' };\n })\n .catch(err => {\n return { status: 'error', message: err.message };\n });\n }\n\n _influxRequest(method: string, url: string, data: any, options?: any) {\n const currentUrl = this.urls.shift();\n this.urls.push(currentUrl);\n\n const params: any = {};\n\n if (this.username) {\n params.u = this.username;\n params.p = this.password;\n }\n\n if (options && options.database) {\n params.db = options.database;\n } else if (this.database) {\n params.db = this.database;\n }\n\n if (method === 'GET') {\n _.extend(params, data);\n data = null;\n }\n\n const req: any = {\n method: method,\n url: currentUrl + url,\n params: params,\n data: data,\n precision: 'ms',\n inspect: { type: 'influxdb' },\n paramSerializer: this.serializeParams,\n };\n\n req.headers = req.headers || {};\n if (this.basicAuth || this.withCredentials) {\n req.withCredentials = true;\n }\n if (this.basicAuth) {\n req.headers.Authorization = this.basicAuth;\n }\n\n return this.backendSrv.datasourceRequest(req).then(\n result => {\n return result.data;\n },\n err => {\n if (err.status !== 0 || err.status >= 300) {\n if (err.data && err.data.error) {\n throw {\n message: 'InfluxDB Error: ' + err.data.error,\n data: err.data,\n config: err.config,\n };\n } else {\n throw {\n message: 'Network Error: ' + err.statusText + '(' + err.status + ')',\n data: err.data,\n config: err.config,\n };\n }\n }\n }\n );\n }\n\n getTimeFilter(options) {\n const from = this.getInfluxTime(options.rangeRaw.from, false, options.timezone);\n const until = this.getInfluxTime(options.rangeRaw.to, true, options.timezone);\n const fromIsAbsolute = from[from.length - 1] === 'ms';\n\n if (until === 'now()' && !fromIsAbsolute) {\n return 'time >= ' + from;\n }\n\n return 'time >= ' + from + ' and time <= ' + until;\n }\n\n getInfluxTime(date, roundUp, timezone) {\n if (_.isString(date)) {\n if (date === 'now') {\n return 'now()';\n }\n\n const parts = /^now-(\\d+)([dhms])$/.exec(date);\n if (parts) {\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n return 'now() - ' + amount + unit;\n }\n date = dateMath.parse(date, roundUp, timezone);\n }\n\n return date.valueOf() + 'ms';\n }\n}\n","import angular from 'angular';\nimport _ from 'lodash';\nimport { InfluxQueryBuilder } from './query_builder';\nimport InfluxQuery from './influx_query';\nimport queryPart from './query_part';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nexport class InfluxQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n queryModel: InfluxQuery;\n queryBuilder: any;\n groupBySegment: any;\n resultFormats: any[];\n orderByTime: any[];\n policySegment: any;\n tagSegments: any[];\n selectMenu: any;\n measurementSegment: any;\n removeTagFilterSegment: any;\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv, private $q, private uiSegmentSrv) {\n super($scope, $injector);\n this.target = this.target;\n this.queryModel = new InfluxQuery(this.target, templateSrv, this.panel.scopedVars);\n this.queryBuilder = new InfluxQueryBuilder(this.target, this.datasource.database);\n this.groupBySegment = this.uiSegmentSrv.newPlusButton();\n this.resultFormats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];\n this.policySegment = uiSegmentSrv.newSegment(this.target.policy);\n\n if (!this.target.measurement) {\n this.measurementSegment = uiSegmentSrv.newSelectMeasurement();\n } else {\n this.measurementSegment = uiSegmentSrv.newSegment(this.target.measurement);\n }\n\n this.tagSegments = [];\n for (const tag of this.target.tags) {\n if (!tag.operator) {\n if (/^\\/.*\\/$/.test(tag.value)) {\n tag.operator = '=~';\n } else {\n tag.operator = '=';\n }\n }\n\n if (tag.condition) {\n this.tagSegments.push(uiSegmentSrv.newCondition(tag.condition));\n }\n\n this.tagSegments.push(uiSegmentSrv.newKey(tag.key));\n this.tagSegments.push(uiSegmentSrv.newOperator(tag.operator));\n this.tagSegments.push(uiSegmentSrv.newKeyValue(tag.value));\n }\n\n this.fixTagSegments();\n this.buildSelectMenu();\n this.removeTagFilterSegment = uiSegmentSrv.newSegment({\n fake: true,\n value: '-- remove tag filter --',\n });\n }\n\n removeOrderByTime() {\n this.target.orderByTime = 'ASC';\n }\n\n buildSelectMenu() {\n const categories = queryPart.getCategories();\n this.selectMenu = _.reduce(\n categories,\n (memo, cat, key) => {\n const menu = {\n text: key,\n submenu: cat.map(item => {\n return { text: item.type, value: item.type };\n }),\n };\n memo.push(menu);\n return memo;\n },\n []\n );\n }\n\n getGroupByOptions() {\n const query = this.queryBuilder.buildExploreQuery('TAG_KEYS');\n\n return this.datasource\n .metricFindQuery(query)\n .then(tags => {\n const options = [];\n if (!this.queryModel.hasFill()) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'fill(null)' }));\n }\n if (!this.target.limit) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'LIMIT' }));\n }\n if (!this.target.slimit) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'SLIMIT' }));\n }\n if (!this.target.tz) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'tz' }));\n }\n if (this.target.orderByTime === 'ASC') {\n options.push(this.uiSegmentSrv.newSegment({ value: 'ORDER BY time DESC' }));\n }\n if (!this.queryModel.hasGroupByTime()) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'time($interval)' }));\n }\n for (const tag of tags) {\n options.push(this.uiSegmentSrv.newSegment({ value: 'tag(' + tag.text + ')' }));\n }\n return options;\n })\n .catch(this.handleQueryError.bind(this));\n }\n\n groupByAction() {\n switch (this.groupBySegment.value) {\n case 'LIMIT': {\n this.target.limit = 10;\n break;\n }\n case 'SLIMIT': {\n this.target.slimit = 10;\n break;\n }\n case 'tz': {\n this.target.tz = 'UTC';\n break;\n }\n case 'ORDER BY time DESC': {\n this.target.orderByTime = 'DESC';\n break;\n }\n default: {\n this.queryModel.addGroupBy(this.groupBySegment.value);\n }\n }\n\n const plusButton = this.uiSegmentSrv.newPlusButton();\n this.groupBySegment.value = plusButton.value;\n this.groupBySegment.html = plusButton.html;\n this.panelCtrl.refresh();\n }\n\n addSelectPart(selectParts, cat, subitem) {\n this.queryModel.addSelectPart(selectParts, subitem.value);\n this.panelCtrl.refresh();\n }\n\n handleSelectPartEvent(selectParts, part, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n const fieldsQuery = this.queryBuilder.buildExploreQuery('FIELDS');\n return this.datasource\n .metricFindQuery(fieldsQuery)\n .then(this.transformToSegments(true))\n .catch(this.handleQueryError.bind(this));\n }\n case 'part-param-changed': {\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.queryModel.removeSelectPart(selectParts, part);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n handleGroupByPartEvent(part, index, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n const tagsQuery = this.queryBuilder.buildExploreQuery('TAG_KEYS');\n return this.datasource\n .metricFindQuery(tagsQuery)\n .then(this.transformToSegments(true))\n .catch(this.handleQueryError.bind(this));\n }\n case 'part-param-changed': {\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.queryModel.removeGroupByPart(part, index);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n fixTagSegments() {\n const count = this.tagSegments.length;\n const lastSegment = this.tagSegments[Math.max(count - 1, 0)];\n\n if (!lastSegment || lastSegment.type !== 'plus-button') {\n this.tagSegments.push(this.uiSegmentSrv.newPlusButton());\n }\n }\n\n measurementChanged() {\n this.target.measurement = this.measurementSegment.value;\n this.panelCtrl.refresh();\n }\n\n getPolicySegments() {\n const policiesQuery = this.queryBuilder.buildExploreQuery('RETENTION POLICIES');\n return this.datasource\n .metricFindQuery(policiesQuery)\n .then(this.transformToSegments(false))\n .catch(this.handleQueryError.bind(this));\n }\n\n policyChanged() {\n this.target.policy = this.policySegment.value;\n this.panelCtrl.refresh();\n }\n\n toggleEditorMode() {\n try {\n this.target.query = this.queryModel.render(false);\n } catch (err) {\n console.log('query render error');\n }\n this.target.rawQuery = !this.target.rawQuery;\n }\n\n getMeasurements(measurementFilter) {\n const query = this.queryBuilder.buildExploreQuery('MEASUREMENTS', undefined, measurementFilter);\n return this.datasource\n .metricFindQuery(query)\n .then(this.transformToSegments(true))\n .catch(this.handleQueryError.bind(this));\n }\n\n handleQueryError(err) {\n this.error = err.message || 'Failed to issue metric query';\n return [];\n }\n\n transformToSegments(addTemplateVars) {\n return results => {\n const segments = _.map(results, segment => {\n return this.uiSegmentSrv.newSegment({\n value: segment.text,\n expandable: segment.expandable,\n });\n });\n\n if (addTemplateVars) {\n for (const variable of this.templateSrv.variables) {\n segments.unshift(\n this.uiSegmentSrv.newSegment({\n type: 'value',\n value: '/^$' + variable.name + '$/',\n expandable: true,\n })\n );\n }\n }\n\n return segments;\n };\n }\n\n getTagsOrValues(segment, index) {\n if (segment.type === 'condition') {\n return this.$q.when([this.uiSegmentSrv.newSegment('AND'), this.uiSegmentSrv.newSegment('OR')]);\n }\n if (segment.type === 'operator') {\n const nextValue = this.tagSegments[index + 1].value;\n if (/^\\/.*\\/$/.test(nextValue)) {\n return this.$q.when(this.uiSegmentSrv.newOperators(['=~', '!~']));\n } else {\n return this.$q.when(this.uiSegmentSrv.newOperators(['=', '!=', '<>', '<', '>']));\n }\n }\n\n let query, addTemplateVars;\n if (segment.type === 'key' || segment.type === 'plus-button') {\n query = this.queryBuilder.buildExploreQuery('TAG_KEYS');\n addTemplateVars = false;\n } else if (segment.type === 'value') {\n query = this.queryBuilder.buildExploreQuery('TAG_VALUES', this.tagSegments[index - 2].value);\n addTemplateVars = true;\n }\n\n return this.datasource\n .metricFindQuery(query)\n .then(this.transformToSegments(addTemplateVars))\n .then(results => {\n if (segment.type === 'key') {\n results.splice(0, 0, angular.copy(this.removeTagFilterSegment));\n }\n return results;\n })\n .catch(this.handleQueryError.bind(this));\n }\n\n getFieldSegments() {\n const fieldsQuery = this.queryBuilder.buildExploreQuery('FIELDS');\n return this.datasource\n .metricFindQuery(fieldsQuery)\n .then(this.transformToSegments(false))\n .catch(this.handleQueryError);\n }\n\n tagSegmentUpdated(segment, index) {\n this.tagSegments[index] = segment;\n\n // handle remove tag condition\n if (segment.value === this.removeTagFilterSegment.value) {\n this.tagSegments.splice(index, 3);\n if (this.tagSegments.length === 0) {\n this.tagSegments.push(this.uiSegmentSrv.newPlusButton());\n } else if (this.tagSegments.length > 2) {\n this.tagSegments.splice(Math.max(index - 1, 0), 1);\n if (this.tagSegments[this.tagSegments.length - 1].type !== 'plus-button') {\n this.tagSegments.push(this.uiSegmentSrv.newPlusButton());\n }\n }\n } else {\n if (segment.type === 'plus-button') {\n if (index > 2) {\n this.tagSegments.splice(index, 0, this.uiSegmentSrv.newCondition('AND'));\n }\n this.tagSegments.push(this.uiSegmentSrv.newOperator('='));\n this.tagSegments.push(this.uiSegmentSrv.newFake('select tag value', 'value', 'query-segment-value'));\n segment.type = 'key';\n segment.cssClass = 'query-segment-key';\n }\n\n if (index + 1 === this.tagSegments.length) {\n this.tagSegments.push(this.uiSegmentSrv.newPlusButton());\n }\n }\n\n this.rebuildTargetTagConditions();\n }\n\n rebuildTargetTagConditions() {\n const tags = [];\n let tagIndex = 0;\n let tagOperator = '';\n\n _.each(this.tagSegments, (segment2, index) => {\n if (segment2.type === 'key') {\n if (tags.length === 0) {\n tags.push({});\n }\n tags[tagIndex].key = segment2.value;\n } else if (segment2.type === 'value') {\n tagOperator = this.getTagValueOperator(segment2.value, tags[tagIndex].operator);\n if (tagOperator) {\n this.tagSegments[index - 1] = this.uiSegmentSrv.newOperator(tagOperator);\n tags[tagIndex].operator = tagOperator;\n }\n tags[tagIndex].value = segment2.value;\n } else if (segment2.type === 'condition') {\n tags.push({ condition: segment2.value });\n tagIndex += 1;\n } else if (segment2.type === 'operator') {\n tags[tagIndex].operator = segment2.value;\n }\n });\n\n this.target.tags = tags;\n this.panelCtrl.refresh();\n }\n\n getTagValueOperator(tagValue, tagOperator): string {\n if (tagOperator !== '=~' && tagOperator !== '!~' && /^\\/.*\\/$/.test(tagValue)) {\n return '=~';\n } else if ((tagOperator === '=~' || tagOperator === '!~') && /^(?!\\/.*\\/$)/.test(tagValue)) {\n return '=';\n }\n return null;\n }\n\n getCollapsedText() {\n return this.queryModel.render(false);\n }\n}\n","import _ from 'lodash';\n\nconst keywords = 'by|without|on|ignoring|group_left|group_right';\n\n// Duplicate from mode-prometheus.js, which can't be used in tests due to global ace not being loaded.\nconst builtInWords = [\n keywords,\n 'count|count_values|min|max|avg|sum|stddev|stdvar|bottomk|topk|quantile',\n 'true|false|null|__name__|job',\n 'abs|absent|ceil|changes|clamp_max|clamp_min|count_scalar|day_of_month|day_of_week|days_in_month|delta|deriv',\n 'drop_common_labels|exp|floor|histogram_quantile|holt_winters|hour|idelta|increase|irate|label_replace|ln|log2',\n 'log10|minute|month|predict_linear|rate|resets|round|scalar|sort|sort_desc|sqrt|time|vector|year|avg_over_time',\n 'min_over_time|max_over_time|sum_over_time|count_over_time|quantile_over_time|stddev_over_time|stdvar_over_time',\n]\n .join('|')\n .split('|');\n\nconst metricNameRegexp = /([A-Za-z:][\\w:]*)\\b(?![\\(\\]{=!\",])/g;\nconst selectorRegexp = /{([^{]*)}/g;\n\n// addLabelToQuery('foo', 'bar', 'baz') => 'foo{bar=\"baz\"}'\nexport function addLabelToQuery(query: string, key: string, value: string, operator?: string): string {\n if (!key || !value) {\n throw new Error('Need label to add to query.');\n }\n\n // Add empty selectors to bare metric names\n let previousWord;\n query = query.replace(metricNameRegexp, (match, word, offset) => {\n const insideSelector = isPositionInsideChars(query, offset, '{', '}');\n // Handle \"sum by (key) (metric)\"\n const previousWordIsKeyWord = previousWord && keywords.split('|').indexOf(previousWord) > -1;\n previousWord = word;\n if (!insideSelector && !previousWordIsKeyWord && builtInWords.indexOf(word) === -1) {\n return `${word}{}`;\n }\n return word;\n });\n\n // Adding label to existing selectors\n let match = selectorRegexp.exec(query);\n const parts = [];\n let lastIndex = 0;\n let suffix = '';\n\n while (match) {\n const prefix = query.slice(lastIndex, match.index);\n const selector = match[1];\n const selectorWithLabel = addLabelToSelector(selector, key, value, operator);\n lastIndex = match.index + match[1].length + 2;\n suffix = query.slice(match.index + match[0].length);\n parts.push(prefix, selectorWithLabel);\n match = selectorRegexp.exec(query);\n }\n\n parts.push(suffix);\n return parts.join('');\n}\n\nconst labelRegexp = /(\\w+)\\s*(=|!=|=~|!~)\\s*(\"[^\"]*\")/g;\n\nexport function addLabelToSelector(selector: string, labelKey: string, labelValue: string, labelOperator?: string) {\n const parsedLabels = [];\n\n // Split selector into labels\n if (selector) {\n let match = labelRegexp.exec(selector);\n while (match) {\n parsedLabels.push({ key: match[1], operator: match[2], value: match[3] });\n match = labelRegexp.exec(selector);\n }\n }\n\n // Add new label\n const operatorForLabelKey = labelOperator || '=';\n parsedLabels.push({ key: labelKey, operator: operatorForLabelKey, value: `\"${labelValue}\"` });\n\n // Sort labels by key and put them together\n const formatted = _.chain(parsedLabels)\n .uniqWith(_.isEqual)\n .compact()\n .sortBy('key')\n .map(({ key, operator, value }) => `${key}${operator}${value}`)\n .value()\n .join(',');\n\n return `{${formatted}}`;\n}\n\nfunction isPositionInsideChars(text: string, position: number, openChar: string, closeChar: string) {\n const nextSelectorStart = text.slice(position).indexOf(openChar);\n const nextSelectorEnd = text.slice(position).indexOf(closeChar);\n return nextSelectorEnd > -1 && (nextSelectorStart === -1 || nextSelectorStart > nextSelectorEnd);\n}\n\nexport default addLabelToQuery;\n","import InfluxDatasource from './datasource';\nimport { InfluxQueryCtrl } from './query_ctrl';\n\nclass InfluxConfigCtrl {\n static templateUrl = 'partials/config.html';\n}\n\nclass InfluxAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n InfluxDatasource as Datasource,\n InfluxQueryCtrl as QueryCtrl,\n InfluxConfigCtrl as ConfigCtrl,\n InfluxAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","export const RATE_RANGES = ['1m', '5m', '10m', '30m', '1h'];\n\nexport function processLabels(labels, withName = false) {\n const values = {};\n labels.forEach(l => {\n const { __name__, ...rest } = l;\n if (withName) {\n values['__name__'] = values['__name__'] || [];\n if (values['__name__'].indexOf(__name__) === -1) {\n values['__name__'].push(__name__);\n }\n }\n\n Object.keys(rest).forEach(key => {\n if (!values[key]) {\n values[key] = [];\n }\n if (values[key].indexOf(rest[key]) === -1) {\n values[key].push(rest[key]);\n }\n });\n });\n return { values, keys: Object.keys(values) };\n}\n\n// const cleanSelectorRegexp = /\\{(\\w+=\"[^\"\\n]*?\")(,\\w+=\"[^\"\\n]*?\")*\\}/;\nexport const selectorRegexp = /\\{[^}]*?\\}/;\nexport const labelRegexp = /\\b(\\w+)(!?=~?)(\"[^\"\\n]*?\")/g;\nexport function parseSelector(query: string, cursorOffset = 1): { labelKeys: any[]; selector: string } {\n if (!query.match(selectorRegexp)) {\n // Special matcher for metrics\n if (query.match(/^[A-Za-z:][\\w:]*$/)) {\n return {\n selector: `{__name__=\"${query}\"}`,\n labelKeys: ['__name__'],\n };\n }\n throw new Error('Query must contain a selector: ' + query);\n }\n\n // Check if inside a selector\n const prefix = query.slice(0, cursorOffset);\n const prefixOpen = prefix.lastIndexOf('{');\n const prefixClose = prefix.lastIndexOf('}');\n if (prefixOpen === -1) {\n throw new Error('Not inside selector, missing open brace: ' + prefix);\n }\n if (prefixClose > -1 && prefixClose > prefixOpen) {\n throw new Error('Not inside selector, previous selector already closed: ' + prefix);\n }\n const suffix = query.slice(cursorOffset);\n const suffixCloseIndex = suffix.indexOf('}');\n const suffixClose = suffixCloseIndex + cursorOffset;\n const suffixOpenIndex = suffix.indexOf('{');\n const suffixOpen = suffixOpenIndex + cursorOffset;\n if (suffixClose === -1) {\n throw new Error('Not inside selector, missing closing brace in suffix: ' + suffix);\n }\n if (suffixOpenIndex > -1 && suffixOpen < suffixClose) {\n throw new Error('Not inside selector, next selector opens before this one closed: ' + suffix);\n }\n\n // Extract clean labels to form clean selector, incomplete labels are dropped\n const selector = query.slice(prefixOpen, suffixClose);\n const labels = {};\n selector.replace(labelRegexp, (_, key, operator, value) => {\n labels[key] = { value, operator };\n return '';\n });\n\n // Add metric if there is one before the selector\n const metricPrefix = query.slice(0, prefixOpen);\n const metricMatch = metricPrefix.match(/[A-Za-z:][\\w:]*$/);\n if (metricMatch) {\n labels['__name__'] = { value: `\"${metricMatch[0]}\"`, operator: '=' };\n }\n\n // Build sorted selector\n const labelKeys = Object.keys(labels).sort();\n const cleanSelector = labelKeys.map(key => `${key}${labels[key].operator}${labels[key].value}`).join(',');\n\n const selectorString = ['{', cleanSelector, '}'].join('');\n\n return { labelKeys, selector: selectorString };\n}\n\nexport function expandRecordingRules(query: string, mapping: { [name: string]: string }): string {\n const ruleNames = Object.keys(mapping);\n const rulesRegex = new RegExp(`(\\\\s|^)(${ruleNames.join('|')})(\\\\s|$|\\\\(|\\\\[|\\\\{)`, 'ig');\n return query.replace(rulesRegex, (match, pre, name, post) => `${pre}${mapping[name]}${post}`);\n}\n","/* tslint:disable max-line-length */\n\nconst tokenizer = {\n comment: {\n pattern: /(^|[^\\n])#.*/,\n lookbehind: true,\n },\n 'context-labels': {\n pattern: /(^|\\s)\\{[^}]*(?=})/,\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /[a-z_]\\w*(?=\\s*(=|!=|=~|!~))/,\n alias: 'attr-name',\n },\n 'label-value': {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n alias: 'attr-value',\n },\n punctuation: /[{]/,\n },\n },\n // number: /\\b-?\\d+((\\.\\d*)?([eE][+-]?\\d+)?)?\\b/,\n operator: new RegExp(`/&&?|\\\\|?\\\\||!=?|<(?:=>?|<|>)?|>[>=]?`, 'i'),\n punctuation: /[{}`,.]/,\n};\n\nexport default tokenizer;\n","// Libraries\nimport _ from 'lodash';\nimport moment from 'moment';\n\n// Services & Utils\nimport { parseSelector, labelRegexp, selectorRegexp } from 'app/plugins/datasource/prometheus/language_utils';\nimport syntax from './syntax';\n\n// Types\nimport {\n CompletionItem,\n CompletionItemGroup,\n LanguageProvider,\n TypeaheadInput,\n TypeaheadOutput,\n HistoryItem,\n} from 'app/types/explore';\nimport { LokiQuery } from './types';\n\nconst DEFAULT_KEYS = ['job', 'namespace'];\nconst EMPTY_SELECTOR = '{}';\nconst HISTORY_ITEM_COUNT = 10;\nconst HISTORY_COUNT_CUTOFF = 1000 * 60 * 60 * 24; // 24h\nexport const LABEL_REFRESH_INTERVAL = 1000 * 30; // 30sec\n\nconst wrapLabel = (label: string) => ({ label });\n\ntype LokiHistoryItem = HistoryItem;\n\nexport function addHistoryMetadata(item: CompletionItem, history: LokiHistoryItem[]): CompletionItem {\n const cutoffTs = Date.now() - HISTORY_COUNT_CUTOFF;\n const historyForItem = history.filter(h => h.ts > cutoffTs && (h.query.expr as string) === item.label);\n const count = historyForItem.length;\n const recent = historyForItem[0];\n let hint = `Queried ${count} times in the last 24h.`;\n if (recent) {\n const lastQueried = moment(recent.ts).fromNow();\n hint = `${hint} Last queried ${lastQueried}.`;\n }\n return {\n ...item,\n documentation: hint,\n };\n}\n\nexport default class LokiLanguageProvider extends LanguageProvider {\n labelKeys?: { [index: string]: string[] }; // metric -> [labelKey,...]\n labelValues?: { [index: string]: { [index: string]: string[] } }; // metric -> labelKey -> [labelValue,...]\n logLabelOptions: any[];\n logLabelFetchTs?: number;\n started: boolean;\n\n constructor(datasource: any, initialValues?: any) {\n super();\n\n this.datasource = datasource;\n this.labelKeys = {};\n this.labelValues = {};\n\n Object.assign(this, initialValues);\n }\n // Strip syntax chars\n cleanText = s => s.replace(/[{}[\\]=\"(),!~+\\-*/^%]/g, '').trim();\n\n getSyntax() {\n return syntax;\n }\n\n request = url => {\n return this.datasource.metadataRequest(url);\n };\n\n start = () => {\n if (!this.startTask) {\n this.startTask = this.fetchLogLabels();\n }\n return this.startTask;\n };\n\n // Keep this DOM-free for testing\n provideCompletionItems({ prefix, wrapperClasses, text, value }: TypeaheadInput, context?: any): TypeaheadOutput {\n // Local text properties\n const empty = value.document.text.length === 0;\n // Determine candidates by CSS context\n if (_.includes(wrapperClasses, 'context-labels')) {\n // Suggestions for {|} and {foo=|}\n return this.getLabelCompletionItems.apply(this, arguments);\n } else if (empty) {\n return this.getEmptyCompletionItems(context || {});\n }\n\n return {\n suggestions: [],\n };\n }\n\n getEmptyCompletionItems(context: any): TypeaheadOutput {\n const { history } = context;\n const suggestions: CompletionItemGroup[] = [];\n\n if (history && history.length > 0) {\n const historyItems = _.chain(history)\n .map(h => h.query.expr)\n .filter()\n .uniq()\n .take(HISTORY_ITEM_COUNT)\n .map(wrapLabel)\n .map(item => addHistoryMetadata(item, history))\n .value();\n\n suggestions.push({\n prefixMatch: true,\n skipSort: true,\n label: 'History',\n items: historyItems,\n });\n }\n\n return { suggestions };\n }\n\n getLabelCompletionItems({ text, wrapperClasses, labelKey, value }: TypeaheadInput): TypeaheadOutput {\n let context: string;\n let refresher: Promise = null;\n const suggestions: CompletionItemGroup[] = [];\n const line = value.anchorBlock.getText();\n const cursorOffset: number = value.anchorOffset;\n\n // Use EMPTY_SELECTOR until series API is implemented for facetting\n const selector = EMPTY_SELECTOR;\n let parsedSelector;\n try {\n parsedSelector = parseSelector(line, cursorOffset);\n } catch {}\n const existingKeys = parsedSelector ? parsedSelector.labelKeys : [];\n\n if ((text && text.match(/^!?=~?/)) || _.includes(wrapperClasses, 'attr-value')) {\n // Label values\n if (labelKey && this.labelValues[selector]) {\n const labelValues = this.labelValues[selector][labelKey];\n if (labelValues) {\n context = 'context-label-values';\n suggestions.push({\n label: `Label values for \"${labelKey}\"`,\n items: labelValues.map(wrapLabel),\n });\n } else {\n refresher = this.fetchLabelValues(labelKey);\n }\n }\n } else {\n // Label keys\n const labelKeys = this.labelKeys[selector] || DEFAULT_KEYS;\n if (labelKeys) {\n const possibleKeys = _.difference(labelKeys, existingKeys);\n if (possibleKeys.length > 0) {\n context = 'context-labels';\n suggestions.push({ label: `Labels`, items: possibleKeys.map(wrapLabel) });\n }\n }\n }\n\n return { context, refresher, suggestions };\n }\n\n async importQueries(queries: LokiQuery[], datasourceType: string): Promise {\n if (datasourceType === 'prometheus') {\n return Promise.all(\n queries.map(async query => {\n const expr = await this.importPrometheusQuery(query.expr);\n return {\n ...query,\n expr,\n };\n })\n );\n }\n // Return a cleaned LokiQuery\n return queries.map(query => ({\n refId: query.refId,\n expr: '',\n }));\n }\n\n async importPrometheusQuery(query: string): Promise {\n if (!query) {\n return '';\n }\n\n // Consider only first selector in query\n const selectorMatch = query.match(selectorRegexp);\n if (selectorMatch) {\n const selector = selectorMatch[0];\n const labels = {};\n selector.replace(labelRegexp, (_, key, operator, value) => {\n labels[key] = { value, operator };\n return '';\n });\n\n // Keep only labels that exist on origin and target datasource\n await this.start(); // fetches all existing label keys\n const existingKeys = this.labelKeys[EMPTY_SELECTOR];\n let labelsToKeep = {};\n if (existingKeys && existingKeys.length > 0) {\n // Check for common labels\n for (const key in labels) {\n if (existingKeys && existingKeys.indexOf(key) > -1) {\n // Should we check for label value equality here?\n labelsToKeep[key] = labels[key];\n }\n }\n } else {\n // Keep all labels by default\n labelsToKeep = labels;\n }\n\n const labelKeys = Object.keys(labelsToKeep).sort();\n const cleanSelector = labelKeys\n .map(key => `${key}${labelsToKeep[key].operator}${labelsToKeep[key].value}`)\n .join(',');\n\n return ['{', cleanSelector, '}'].join('');\n }\n\n return '';\n }\n\n async fetchLogLabels() {\n const url = '/api/prom/label';\n try {\n this.logLabelFetchTs = Date.now();\n const res = await this.request(url);\n const body = await (res.data || res.json());\n const labelKeys = body.data.slice().sort();\n this.labelKeys = {\n ...this.labelKeys,\n [EMPTY_SELECTOR]: labelKeys,\n };\n this.logLabelOptions = labelKeys.map(key => ({ label: key, value: key, isLeaf: false }));\n\n // Pre-load values for default labels\n return Promise.all(\n labelKeys.filter(key => DEFAULT_KEYS.indexOf(key) > -1).map(key => this.fetchLabelValues(key))\n );\n } catch (e) {\n console.error(e);\n }\n return [];\n }\n\n async refreshLogLabels() {\n if (this.labelKeys && Date.now() - this.logLabelFetchTs > LABEL_REFRESH_INTERVAL) {\n await this.fetchLogLabels();\n }\n }\n\n async fetchLabelValues(key: string) {\n const url = `/api/prom/label/${key}/values`;\n try {\n const res = await this.request(url);\n const body = await (res.data || res.json());\n const values = body.data.slice().sort();\n\n // Add to label options\n this.logLabelOptions = this.logLabelOptions.map(keyOption => {\n if (keyOption.value === key) {\n return {\n ...keyOption,\n children: values.map(value => ({ label: value, value })),\n };\n }\n return keyOption;\n });\n\n // Add to key map\n const exisingValues = this.labelValues[EMPTY_SELECTOR];\n const nextValues = {\n ...exisingValues,\n [key]: values,\n };\n this.labelValues = {\n ...this.labelValues,\n [EMPTY_SELECTOR]: nextValues,\n };\n } catch (e) {\n console.error(e);\n }\n }\n}\n","import ansicolor from 'vendor/ansicolor/ansicolor';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport {\n LogLevel,\n LogsMetaItem,\n LogsModel,\n LogRowModel,\n LogsStream,\n LogsStreamEntry,\n LogsStreamLabels,\n LogsMetaKind,\n} from 'app/core/logs_model';\nimport { hasAnsiCodes } from 'app/core/utils/text';\nimport { DEFAULT_MAX_LINES } from './datasource';\n\n/**\n * Returns the log level of a log line.\n * Parse the line for level words. If no level is found, it returns `LogLevel.unknown`.\n *\n * Example: `getLogLevel('WARN 1999-12-31 this is great') // LogLevel.warn`\n */\nexport function getLogLevel(line: string): LogLevel {\n if (!line) {\n return LogLevel.unknown;\n }\n let level: LogLevel;\n Object.keys(LogLevel).forEach(key => {\n if (!level) {\n const regexp = new RegExp(`\\\\b${key}\\\\b`, 'i');\n if (regexp.test(line)) {\n level = LogLevel[key];\n }\n }\n });\n if (!level) {\n level = LogLevel.unknown;\n }\n return level;\n}\n\n/**\n * Regexp to extract Prometheus-style labels\n */\nconst labelRegexp = /\\b(\\w+)(!?=~?)\"([^\"\\n]*?)\"/g;\n\n/**\n * Returns a map of label keys to value from an input selector string.\n *\n * Example: `parseLabels('{job=\"foo\", instance=\"bar\"}) // {job: \"foo\", instance: \"bar\"}`\n */\nexport function parseLabels(labels: string): LogsStreamLabels {\n const labelsByKey: LogsStreamLabels = {};\n labels.replace(labelRegexp, (_, key, operator, value) => {\n labelsByKey[key] = value;\n return '';\n });\n return labelsByKey;\n}\n\n/**\n * Returns a map labels that are common to the given label sets.\n */\nexport function findCommonLabels(labelsSets: LogsStreamLabels[]): LogsStreamLabels {\n return labelsSets.reduce((acc, labels) => {\n if (!labels) {\n throw new Error('Need parsed labels to find common labels.');\n }\n if (!acc) {\n // Initial set\n acc = { ...labels };\n } else {\n // Remove incoming labels that are missing or not matching in value\n Object.keys(labels).forEach(key => {\n if (acc[key] === undefined || acc[key] !== labels[key]) {\n delete acc[key];\n }\n });\n // Remove common labels that are missing from incoming label set\n Object.keys(acc).forEach(key => {\n if (labels[key] === undefined) {\n delete acc[key];\n }\n });\n }\n return acc;\n }, undefined);\n}\n\n/**\n * Returns a map of labels that are in `labels`, but not in `commonLabels`.\n */\nexport function findUniqueLabels(labels: LogsStreamLabels, commonLabels: LogsStreamLabels): LogsStreamLabels {\n const uncommonLabels: LogsStreamLabels = { ...labels };\n Object.keys(commonLabels).forEach(key => {\n delete uncommonLabels[key];\n });\n return uncommonLabels;\n}\n\n/**\n * Serializes the given labels to a string.\n */\nexport function formatLabels(labels: LogsStreamLabels, defaultValue = ''): string {\n if (!labels || Object.keys(labels).length === 0) {\n return defaultValue;\n }\n const labelKeys = Object.keys(labels).sort();\n const cleanSelector = labelKeys.map(key => `${key}=\"${labels[key]}\"`).join(', ');\n return ['{', cleanSelector, '}'].join('');\n}\n\nexport function processEntry(\n entry: LogsStreamEntry,\n labels: string,\n parsedLabels: LogsStreamLabels,\n uniqueLabels: LogsStreamLabels,\n search: string\n): LogRowModel {\n const { line } = entry;\n const ts = entry.ts || entry.timestamp;\n // Assumes unique-ness, needs nanosec precision for timestamp\n const key = `EK${ts}${labels}`;\n const time = moment(ts);\n const timeEpochMs = time.valueOf();\n const timeFromNow = time.fromNow();\n const timeLocal = time.format('YYYY-MM-DD HH:mm:ss');\n const logLevel = getLogLevel(line);\n const hasAnsi = hasAnsiCodes(line);\n\n return {\n key,\n logLevel,\n timeFromNow,\n timeEpochMs,\n timeLocal,\n uniqueLabels,\n hasAnsi,\n entry: hasAnsi ? ansicolor.strip(line) : line,\n raw: line,\n labels: parsedLabels,\n searchWords: search ? [search] : [],\n timestamp: ts,\n };\n}\n\nexport function mergeStreamsToLogs(streams: LogsStream[], limit = DEFAULT_MAX_LINES): LogsModel {\n // Unique model identifier\n const id = streams.map(stream => stream.labels).join();\n\n // Find unique labels for each stream\n streams = streams.map(stream => ({\n ...stream,\n parsedLabels: parseLabels(stream.labels),\n }));\n const commonLabels = findCommonLabels(streams.map(model => model.parsedLabels));\n streams = streams.map(stream => ({\n ...stream,\n uniqueLabels: findUniqueLabels(stream.parsedLabels, commonLabels),\n }));\n\n // Merge stream entries into single list of log rows\n const sortedRows: LogRowModel[] = _.chain(streams)\n .reduce(\n (acc: LogRowModel[], stream: LogsStream) => [\n ...acc,\n ...stream.entries.map(entry =>\n processEntry(entry, stream.labels, stream.parsedLabels, stream.uniqueLabels, stream.search)\n ),\n ],\n []\n )\n .sortBy('timestamp')\n .reverse()\n .value();\n\n const hasUniqueLabels = sortedRows && sortedRows.some(row => Object.keys(row.uniqueLabels).length > 0);\n\n // Meta data to display in status\n const meta: LogsMetaItem[] = [];\n if (_.size(commonLabels) > 0) {\n meta.push({\n label: 'Common labels',\n value: commonLabels,\n kind: LogsMetaKind.LabelsMap,\n });\n }\n if (limit) {\n meta.push({\n label: 'Limit',\n value: `${limit} (${sortedRows.length} returned)`,\n kind: LogsMetaKind.String,\n });\n }\n\n return {\n id,\n hasUniqueLabels,\n meta,\n rows: sortedRows,\n };\n}\n","const selectorRegexp = /(?:^|\\s){[^{]*}/g;\nexport function parseQuery(input: string) {\n input = input || '';\n const match = input.match(selectorRegexp);\n let query = '';\n let regexp = input;\n\n if (match) {\n query = match[0].trim();\n regexp = input.replace(selectorRegexp, '').trim();\n }\n\n return { query, regexp };\n}\n\nexport function formatQuery(selector: string, search: string): string {\n return `${selector || ''} ${search || ''}`.trim();\n}\n","// Libraries\nimport _ from 'lodash';\n\n// Services & Utils\nimport * as dateMath from 'app/core/utils/datemath';\nimport { addLabelToSelector } from 'app/plugins/datasource/prometheus/add_label_to_query';\nimport LanguageProvider from './language_provider';\nimport { mergeStreamsToLogs } from './result_transformer';\nimport { formatQuery, parseQuery } from './query_utils';\nimport { makeSeriesForLogs } from 'app/core/logs_model';\n\n// Types\nimport { LogsStream, LogsModel } from 'app/core/logs_model';\nimport { PluginMeta, DataQueryOptions } from '@grafana/ui/src/types';\nimport { LokiQuery } from './types';\n\nexport const DEFAULT_MAX_LINES = 1000;\n\nconst DEFAULT_QUERY_PARAMS = {\n direction: 'BACKWARD',\n limit: DEFAULT_MAX_LINES,\n regexp: '',\n query: '',\n};\n\nfunction serializeParams(data: any) {\n return Object.keys(data)\n .map(k => {\n const v = data[k];\n return encodeURIComponent(k) + '=' + encodeURIComponent(v);\n })\n .join('&');\n}\n\nexport class LokiDatasource {\n languageProvider: LanguageProvider;\n maxLines: number;\n\n /** @ngInject */\n constructor(private instanceSettings, private backendSrv, private templateSrv) {\n this.languageProvider = new LanguageProvider(this);\n const settingsData = instanceSettings.jsonData || {};\n this.maxLines = parseInt(settingsData.maxLines, 10) || DEFAULT_MAX_LINES;\n }\n\n _request(apiUrl: string, data?, options?: any) {\n const baseUrl = this.instanceSettings.url;\n const params = data ? serializeParams(data) : '';\n const url = `${baseUrl}${apiUrl}?${params}`;\n const req = {\n ...options,\n url,\n };\n return this.backendSrv.datasourceRequest(req);\n }\n\n mergeStreams(streams: LogsStream[], intervalMs: number): LogsModel {\n const logs = mergeStreamsToLogs(streams, this.maxLines);\n logs.series = makeSeriesForLogs(logs.rows, intervalMs);\n return logs;\n }\n\n prepareQueryTarget(target, options) {\n const interpolated = this.templateSrv.replace(target.expr);\n const start = this.getTime(options.range.from, false);\n const end = this.getTime(options.range.to, true);\n return {\n ...DEFAULT_QUERY_PARAMS,\n ...parseQuery(interpolated),\n start,\n end,\n limit: this.maxLines,\n };\n }\n\n async query(options: DataQueryOptions) {\n const queryTargets = options.targets\n .filter(target => target.expr && !target.hide)\n .map(target => this.prepareQueryTarget(target, options));\n\n if (queryTargets.length === 0) {\n return Promise.resolve({ data: [] });\n }\n\n const queries = queryTargets.map(target => this._request('/api/prom/query', target));\n\n return Promise.all(queries).then((results: any[]) => {\n const allStreams: LogsStream[] = [];\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n const query = queryTargets[i];\n\n // add search term to stream & add to array\n if (result.data) {\n for (const stream of result.data.streams || []) {\n stream.search = query.regexp;\n allStreams.push(stream);\n }\n }\n }\n\n // check resultType\n if (options.targets[0].resultFormat === 'time_series') {\n const logs = mergeStreamsToLogs(allStreams, this.maxLines);\n logs.series = makeSeriesForLogs(logs.rows, options.intervalMs);\n return { data: logs.series };\n } else {\n return { data: allStreams };\n }\n });\n }\n\n async importQueries(queries: LokiQuery[], originMeta: PluginMeta): Promise {\n return this.languageProvider.importQueries(queries, originMeta.id);\n }\n\n metadataRequest(url) {\n // HACK to get label values for {job=|}, will be replaced when implementing LokiQueryField\n const apiUrl = url.replace('v1', 'prom');\n return this._request(apiUrl, { silent: true }).then(res => {\n const data = { data: { data: res.data.values || [] } };\n return data;\n });\n }\n\n modifyQuery(query: LokiQuery, action: any): LokiQuery {\n const parsed = parseQuery(query.expr || '');\n let selector = parsed.query;\n switch (action.type) {\n case 'ADD_FILTER': {\n selector = addLabelToSelector(selector, action.key, action.value);\n break;\n }\n default:\n break;\n }\n const expression = formatQuery(selector, parsed.regexp);\n return { ...query, expr: expression };\n }\n\n getHighlighterExpression(query: LokiQuery): string {\n return parseQuery(query.expr).regexp;\n }\n\n getTime(date, roundUp) {\n if (_.isString(date)) {\n date = dateMath.parse(date, roundUp);\n }\n return Math.ceil(date.valueOf() * 1e6);\n }\n\n testDatasource() {\n return this._request('/api/prom/label')\n .then(res => {\n if (res && res.data && res.data.values && res.data.values.length > 0) {\n return { status: 'success', message: 'Data source connected and labels found.' };\n }\n return {\n status: 'error',\n message:\n 'Data source connected, but no labels received. Verify that Loki and Promtail is configured properly.',\n };\n })\n .catch(err => {\n let message = 'Loki: ';\n if (err.statusText) {\n message += err.statusText;\n } else {\n message += 'Cannot connect to Loki';\n }\n\n if (err.status) {\n message += `. ${err.status}`;\n }\n\n if (err.data && err.data.message) {\n message += `. ${err.data.message}`;\n } else if (err.data) {\n message += `. ${err.data}`;\n }\n return { status: 'error', message: message };\n });\n }\n}\n\nexport default LokiDatasource;\n","// Clears the rest of the line after the caret\nexport default function ClearPlugin() {\n return {\n onKeyDown(event, change) {\n const { value } = change;\n if (!value.isCollapsed) {\n return undefined;\n }\n\n if (event.key === 'k' && event.ctrlKey) {\n event.preventDefault();\n const text = value.anchorText.text;\n const offset = value.anchorOffset;\n const length = text.length;\n const forward = length - offset;\n change.deleteForward(forward);\n return true;\n }\n return undefined;\n },\n };\n}\n","import React from 'react';\n\nconst CHEAT_SHEET_ITEMS = [\n {\n title: 'See your logs',\n label: 'Start by selecting a log stream from the Log labels selector.',\n },\n {\n title: 'Logs from a \"job\"',\n expression: '{job=\"default/prometheus\"}',\n label: 'Returns all log lines emitted by instances of this job.',\n },\n {\n title: 'Combine stream selectors',\n expression: '{app=\"cassandra\",namespace=\"prod\"}',\n label: 'Returns all log lines from streams that have both labels.',\n },\n {\n title: 'Search for text',\n expression: '{app=\"cassandra\"} (duration|latency)\\\\s*(=|is|of)\\\\s*[\\\\d\\\\.]+',\n label: 'Add a regular expression after the selector to filter for.',\n },\n];\n\nexport default (props: any) => (\n
    \n

    Loki Cheat Sheet

    \n {CHEAT_SHEET_ITEMS.map(item => (\n
    \n
    {item.title}
    \n {item.expression && (\n props.onClickExample({ refId: '1', expr: item.expression })}\n >\n {item.expression}\n
    \n )}\n
    {item.label}
    \n
    \n ))}\n
    \n);\n","import React, { PureComponent } from 'react';\nimport LokiCheatSheet from './LokiCheatSheet';\nimport { ExploreStartPageProps } from '@grafana/ui';\n\nexport default class LokiStartPage extends PureComponent {\n render() {\n return (\n
    \n \n
    \n );\n }\n}\n","function getIndent(text) {\n let offset = text.length - text.trimLeft().length;\n if (offset) {\n let indent = text[0];\n while (--offset) {\n indent += text[0];\n }\n return indent;\n }\n return '';\n}\n\nexport default function NewlinePlugin() {\n return {\n onKeyDown(event, change) {\n const { value } = change;\n if (!value.isCollapsed) {\n return undefined;\n }\n\n if (event.key === 'Enter' && event.shiftKey) {\n event.preventDefault();\n\n const { startBlock } = value;\n const currentLineText = startBlock.text;\n const indent = getIndent(currentLineText);\n\n return change\n .splitBlock()\n .insertText(indent)\n .focus();\n }\n },\n };\n}\n","import React from 'react';\nimport Highlighter from 'react-highlight-words';\n\nimport { CompletionItem, CompletionItemGroup } from 'app/types/explore';\n\nfunction scrollIntoView(el: HTMLElement) {\n if (!el || !el.offsetParent) {\n return;\n }\n const container = el.offsetParent as HTMLElement;\n if (el.offsetTop > container.scrollTop + container.offsetHeight || el.offsetTop < container.scrollTop) {\n container.scrollTop = el.offsetTop - container.offsetTop;\n }\n}\n\ninterface TypeaheadItemProps {\n isSelected: boolean;\n item: CompletionItem;\n onClickItem: (Suggestion) => void;\n prefix?: string;\n}\n\nclass TypeaheadItem extends React.PureComponent {\n el: HTMLElement;\n\n componentDidUpdate(prevProps) {\n if (this.props.isSelected && !prevProps.isSelected) {\n requestAnimationFrame(() => {\n scrollIntoView(this.el);\n });\n }\n }\n\n getRef = el => {\n this.el = el;\n };\n\n onClick = () => {\n this.props.onClickItem(this.props.item);\n };\n\n render() {\n const { isSelected, item, prefix } = this.props;\n const className = isSelected ? 'typeahead-item typeahead-item__selected' : 'typeahead-item';\n const label = item.label || '';\n return (\n
  • \n \n {item.documentation && isSelected ?
    {item.documentation}
    : null}\n
  • \n );\n }\n}\n\ninterface TypeaheadGroupProps {\n items: CompletionItem[];\n label: string;\n onClickItem: (suggestion: CompletionItem) => void;\n selected: CompletionItem;\n prefix?: string;\n}\n\nclass TypeaheadGroup extends React.PureComponent {\n render() {\n const { items, label, selected, onClickItem, prefix } = this.props;\n return (\n
  • \n
    {label}
    \n
      \n {items.map(item => {\n return (\n \n );\n })}\n
    \n
  • \n );\n }\n}\n\ninterface TypeaheadProps {\n groupedItems: CompletionItemGroup[];\n menuRef: any;\n selectedItem: CompletionItem | null;\n onClickItem: (Suggestion) => void;\n prefix?: string;\n}\nclass Typeahead extends React.PureComponent {\n render() {\n const { groupedItems, menuRef, selectedItem, onClickItem, prefix } = this.props;\n return (\n
      \n {groupedItems.map(g => (\n \n ))}\n
    \n );\n }\n}\n\nexport default Typeahead;\n","import { Block, Document, Text, Value } from 'slate';\n\nconst SCHEMA = {\n blocks: {\n paragraph: 'paragraph',\n codeblock: 'code_block',\n codeline: 'code_line',\n },\n inlines: {},\n marks: {},\n};\n\nexport const makeFragment = (text: string, syntax?: string) => {\n const lines = text.split('\\n').map(line =>\n Block.create({\n type: 'code_line',\n nodes: [Text.create(line)],\n })\n );\n\n const block = Block.create({\n data: {\n syntax,\n },\n type: 'code_block',\n nodes: lines,\n });\n\n return Document.create({\n nodes: [block],\n });\n};\n\nexport const makeValue = (text: string, syntax?: string) => {\n const fragment = makeFragment(text, syntax);\n\n return Value.create({\n document: fragment,\n SCHEMA,\n });\n};\n","/**\n * Provides a stateful means of managing placeholders in text.\n *\n * Placeholders are numbers prefixed with the `$` character (e.g. `$1`).\n * Each number value represents the order in which a placeholder should\n * receive focus if multiple placeholders exist.\n *\n * Example scenario given `sum($3 offset $1) by($2)`:\n * 1. `sum( offset |) by()`\n * 2. `sum( offset 1h) by(|)`\n * 3. `sum(| offset 1h) by (label)`\n */\nexport default class PlaceholdersBuffer {\n private nextMoveOffset: number;\n private orders: number[];\n private parts: string[];\n\n constructor(text: string) {\n const result = this.parse(text);\n const nextPlaceholderIndex = result.orders.length ? result.orders[0] : 0;\n this.nextMoveOffset = this.getOffsetBetween(result.parts, 0, nextPlaceholderIndex);\n this.orders = result.orders;\n this.parts = result.parts;\n }\n\n clearPlaceholders() {\n this.nextMoveOffset = 0;\n this.orders = [];\n }\n\n getNextMoveOffset(): number {\n return this.nextMoveOffset;\n }\n\n hasPlaceholders(): boolean {\n return this.orders.length > 0;\n }\n\n setNextPlaceholderValue(value: string) {\n if (this.orders.length === 0) {\n return;\n }\n const currentPlaceholderIndex = this.orders[0];\n this.parts[currentPlaceholderIndex] = value;\n this.orders = this.orders.slice(1);\n if (this.orders.length === 0) {\n this.nextMoveOffset = 0;\n return;\n }\n const nextPlaceholderIndex = this.orders[0];\n // Case should never happen but handle it gracefully in case\n if (currentPlaceholderIndex === nextPlaceholderIndex) {\n this.nextMoveOffset = 0;\n return;\n }\n const backwardMove = currentPlaceholderIndex > nextPlaceholderIndex;\n const indices = backwardMove\n ? { start: nextPlaceholderIndex + 1, end: currentPlaceholderIndex + 1 }\n : { start: currentPlaceholderIndex + 1, end: nextPlaceholderIndex };\n this.nextMoveOffset = (backwardMove ? -1 : 1) * this.getOffsetBetween(this.parts, indices.start, indices.end);\n }\n\n toString(): string {\n return this.parts.join('');\n }\n\n private getOffsetBetween(parts: string[], startIndex: number, endIndex: number) {\n return parts.slice(startIndex, endIndex).reduce((offset, part) => offset + part.length, 0);\n }\n\n private parse(text: string): ParseResult {\n const placeholderRegExp = /\\$(\\d+)/g;\n const parts = [];\n const orders = [];\n let textOffset = 0;\n while (true) {\n const match = placeholderRegExp.exec(text);\n if (!match) {\n break;\n }\n const part = text.slice(textOffset, match.index);\n parts.push(part);\n // Accounts for placeholders at text boundaries\n if (part !== '') {\n parts.push('');\n }\n const order = parseInt(match[1], 10);\n orders.push({ index: parts.length - 1, order });\n textOffset += part.length + match.length;\n }\n // Ensures string serialization still works if no placeholders were parsed\n // and also accounts for the remainder of text with placeholders\n parts.push(text.slice(textOffset));\n return {\n // Placeholder values do not necessarily appear sequentially so sort the\n // indices to traverse in priority order\n orders: orders.sort((o1, o2) => o1.order - o2.order).map(o => o.index),\n parts,\n };\n }\n}\n\ntype ParseResult = {\n /**\n * Indices to placeholder items in `parts` in traversal order.\n */\n orders: number[];\n /**\n * Parts comprising the original text with placeholders occupying distinct items.\n */\n parts: string[];\n};\n","// @ts-ignore\nimport _ from 'lodash';\nimport React, { Context } from 'react';\nimport ReactDOM from 'react-dom';\n// @ts-ignore\nimport { Change, Value } from 'slate';\n// @ts-ignore\nimport { Editor } from 'slate-react';\n// @ts-ignore\nimport Plain from 'slate-plain-serializer';\nimport classnames from 'classnames';\n\nimport { CompletionItem, CompletionItemGroup, TypeaheadOutput } from 'app/types/explore';\n\nimport ClearPlugin from './slate-plugins/clear';\nimport NewlinePlugin from './slate-plugins/newline';\n\nimport Typeahead from './Typeahead';\nimport { makeFragment, makeValue } from './Value';\nimport PlaceholdersBuffer from './PlaceholdersBuffer';\n\nexport const TYPEAHEAD_DEBOUNCE = 100;\n\nfunction getSuggestionByIndex(suggestions: CompletionItemGroup[], index: number): CompletionItem {\n // Flatten suggestion groups\n const flattenedSuggestions = suggestions.reduce((acc, g) => acc.concat(g.items), []);\n const correctedIndex = Math.max(index, 0) % flattenedSuggestions.length;\n return flattenedSuggestions[correctedIndex];\n}\n\nfunction hasSuggestions(suggestions: CompletionItemGroup[]): boolean {\n return suggestions && suggestions.length > 0;\n}\n\nexport interface QueryFieldProps {\n additionalPlugins?: any[];\n cleanText?: (text: string) => string;\n disabled?: boolean;\n initialQuery: string | null;\n onExecuteQuery?: () => void;\n onQueryChange?: (value: string) => void;\n onTypeahead?: (typeahead: TypeaheadInput) => TypeaheadOutput;\n onWillApplySuggestion?: (suggestion: string, state: QueryFieldState) => string;\n placeholder?: string;\n portalOrigin?: string;\n syntax?: string;\n syntaxLoaded?: boolean;\n}\n\nexport interface QueryFieldState {\n suggestions: CompletionItemGroup[];\n typeaheadContext: string | null;\n typeaheadIndex: number;\n typeaheadPrefix: string;\n typeaheadText: string;\n value: Value;\n lastExecutedValue: Value;\n}\n\nexport interface TypeaheadInput {\n editorNode: Element;\n prefix: string;\n selection?: Selection;\n text: string;\n value: Value;\n wrapperNode: Element;\n}\n\n/**\n * Renders an editor field.\n * Pass initial value as initialQuery and listen to changes in props.onValueChanged.\n * This component can only process strings. Internally it uses Slate Value.\n * Implement props.onTypeahead to use suggestions, see PromQueryField.tsx as an example.\n */\nexport class QueryField extends React.PureComponent {\n menuEl: HTMLElement | null;\n placeholdersBuffer: PlaceholdersBuffer;\n plugins: any[];\n resetTimer: any;\n mounted: boolean;\n\n constructor(props: QueryFieldProps, context: Context) {\n super(props, context);\n\n this.placeholdersBuffer = new PlaceholdersBuffer(props.initialQuery || '');\n\n // Base plugins\n this.plugins = [ClearPlugin(), NewlinePlugin(), ...(props.additionalPlugins || [])].filter(p => p);\n\n this.state = {\n suggestions: [],\n typeaheadContext: null,\n typeaheadIndex: 0,\n typeaheadPrefix: '',\n typeaheadText: '',\n value: makeValue(this.placeholdersBuffer.toString(), props.syntax),\n lastExecutedValue: null,\n };\n }\n\n componentDidMount() {\n this.mounted = true;\n this.updateMenu();\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.resetTimer);\n }\n\n componentDidUpdate(prevProps: QueryFieldProps, prevState: QueryFieldState) {\n const { initialQuery, syntax } = this.props;\n const { value, suggestions } = this.state;\n\n // if query changed from the outside\n if (initialQuery !== prevProps.initialQuery) {\n // and we have a version that differs\n if (initialQuery !== Plain.serialize(value)) {\n this.placeholdersBuffer = new PlaceholdersBuffer(initialQuery || '');\n this.setState({ value: makeValue(this.placeholdersBuffer.toString(), syntax) });\n }\n }\n\n // Only update menu location when suggestion existence or text/selection changed\n if (value !== prevState.value || hasSuggestions(suggestions) !== hasSuggestions(prevState.suggestions)) {\n this.updateMenu();\n }\n }\n\n componentWillReceiveProps(nextProps: QueryFieldProps) {\n if (nextProps.syntaxLoaded && !this.props.syntaxLoaded) {\n // Need a bogus edit to re-render the editor after syntax has fully loaded\n const change = this.state.value\n .change()\n .insertText(' ')\n .deleteBackward();\n if (this.placeholdersBuffer.hasPlaceholders()) {\n change.move(this.placeholdersBuffer.getNextMoveOffset()).focus();\n }\n this.onChange(change, true);\n }\n }\n\n onChange = ({ value }: Change, invokeParentOnValueChanged?: boolean) => {\n const documentChanged = value.document !== this.state.value.document;\n const prevValue = this.state.value;\n\n // Control editor loop, then pass text change up to parent\n this.setState({ value }, () => {\n if (documentChanged) {\n const textChanged = Plain.serialize(prevValue) !== Plain.serialize(value);\n if (textChanged && invokeParentOnValueChanged) {\n this.executeOnQueryChangeAndExecuteQueries();\n }\n }\n });\n\n // Show suggest menu on text input\n if (documentChanged && value.selection.isCollapsed) {\n // Need one paint to allow DOM-based typeahead rules to work\n window.requestAnimationFrame(this.handleTypeahead);\n } else if (!this.resetTimer) {\n this.resetTypeahead();\n }\n };\n\n executeOnQueryChangeAndExecuteQueries = () => {\n // Send text change to parent\n const { onQueryChange, onExecuteQuery } = this.props;\n if (onQueryChange) {\n onQueryChange(Plain.serialize(this.state.value));\n }\n\n if (onExecuteQuery) {\n onExecuteQuery();\n this.setState({ lastExecutedValue: this.state.value });\n }\n };\n\n handleTypeahead = _.debounce(async () => {\n const selection = window.getSelection();\n const { cleanText, onTypeahead } = this.props;\n const { value } = this.state;\n\n if (onTypeahead && selection.anchorNode) {\n const wrapperNode = selection.anchorNode.parentElement;\n const editorNode = wrapperNode.closest('.slate-query-field');\n if (!editorNode || this.state.value.isBlurred) {\n // Not inside this editor\n return;\n }\n\n const range = selection.getRangeAt(0);\n const offset = range.startOffset;\n const text = selection.anchorNode.textContent;\n let prefix = text.substr(0, offset);\n\n // Label values could have valid characters erased if `cleanText()` is\n // blindly applied, which would undesirably interfere with suggestions\n const labelValueMatch = prefix.match(/(?:!?=~?\"?|\")(.*)/);\n if (labelValueMatch) {\n prefix = labelValueMatch[1];\n } else if (cleanText) {\n prefix = cleanText(prefix);\n }\n\n const { suggestions, context, refresher } = onTypeahead({\n editorNode,\n prefix,\n selection,\n text,\n value,\n wrapperNode,\n });\n\n let filteredSuggestions = suggestions\n .map(group => {\n if (group.items) {\n if (prefix) {\n // Filter groups based on prefix\n if (!group.skipFilter) {\n group.items = group.items.filter(c => (c.filterText || c.label).length >= prefix.length);\n if (group.prefixMatch) {\n group.items = group.items.filter(c => (c.filterText || c.label).indexOf(prefix) === 0);\n } else {\n group.items = group.items.filter(c => (c.filterText || c.label).indexOf(prefix) > -1);\n }\n }\n // Filter out the already typed value (prefix) unless it inserts custom text\n group.items = group.items.filter(c => c.insertText || (c.filterText || c.label) !== prefix);\n }\n\n if (!group.skipSort) {\n group.items = _.sortBy(group.items, (item: CompletionItem) => item.sortText || item.label);\n }\n }\n return group;\n })\n .filter(group => group.items && group.items.length > 0); // Filter out empty groups\n\n // Keep same object for equality checking later\n if (_.isEqual(filteredSuggestions, this.state.suggestions)) {\n filteredSuggestions = this.state.suggestions;\n }\n\n this.setState(\n {\n suggestions: filteredSuggestions,\n typeaheadPrefix: prefix,\n typeaheadContext: context,\n typeaheadText: text,\n },\n () => {\n if (refresher) {\n refresher.then(this.handleTypeahead).catch(e => console.error(e));\n }\n }\n );\n }\n }, TYPEAHEAD_DEBOUNCE);\n\n applyTypeahead(change: Change, suggestion: CompletionItem): Change {\n const { cleanText, onWillApplySuggestion, syntax } = this.props;\n const { typeaheadPrefix, typeaheadText } = this.state;\n let suggestionText = suggestion.insertText || suggestion.label;\n const preserveSuffix = suggestion.kind === 'function';\n const move = suggestion.move || 0;\n\n if (onWillApplySuggestion) {\n suggestionText = onWillApplySuggestion(suggestionText, { ...this.state });\n }\n\n this.resetTypeahead();\n\n // Remove the current, incomplete text and replace it with the selected suggestion\n const backward = suggestion.deleteBackwards || typeaheadPrefix.length;\n const text = cleanText ? cleanText(typeaheadText) : typeaheadText;\n const suffixLength = text.length - typeaheadPrefix.length;\n const offset = typeaheadText.indexOf(typeaheadPrefix);\n const midWord = typeaheadPrefix && ((suffixLength > 0 && offset > -1) || suggestionText === typeaheadText);\n const forward = midWord && !preserveSuffix ? suffixLength + offset : 0;\n\n // If new-lines, apply suggestion as block\n if (suggestionText.match(/\\n/)) {\n const fragment = makeFragment(suggestionText, syntax);\n return change\n .deleteBackward(backward)\n .deleteForward(forward)\n .insertFragment(fragment)\n .focus();\n }\n\n return change\n .deleteBackward(backward)\n .deleteForward(forward)\n .insertText(suggestionText)\n .move(move)\n .focus();\n }\n\n handleEnterAndTabKey = (event: KeyboardEvent, change: Change) => {\n const { typeaheadIndex, suggestions } = this.state;\n if (this.menuEl) {\n // Dont blur input\n event.preventDefault();\n if (!suggestions || suggestions.length === 0) {\n return undefined;\n }\n\n const suggestion = getSuggestionByIndex(suggestions, typeaheadIndex);\n const nextChange = this.applyTypeahead(change, suggestion);\n\n const insertTextOperation = nextChange.operations.find((operation: any) => operation.type === 'insert_text');\n if (insertTextOperation) {\n const suggestionText = insertTextOperation.text;\n this.placeholdersBuffer.setNextPlaceholderValue(suggestionText);\n if (this.placeholdersBuffer.hasPlaceholders()) {\n nextChange.move(this.placeholdersBuffer.getNextMoveOffset()).focus();\n }\n }\n\n return true;\n } else {\n this.executeOnQueryChangeAndExecuteQueries();\n\n return undefined;\n }\n };\n\n onKeyDown = (event: KeyboardEvent, change: Change) => {\n const { typeaheadIndex } = this.state;\n\n switch (event.key) {\n case 'Escape': {\n if (this.menuEl) {\n event.preventDefault();\n event.stopPropagation();\n this.resetTypeahead();\n return true;\n }\n break;\n }\n\n case ' ': {\n if (event.ctrlKey) {\n event.preventDefault();\n this.handleTypeahead();\n return true;\n }\n break;\n }\n case 'Enter':\n case 'Tab': {\n return this.handleEnterAndTabKey(event, change);\n break;\n }\n\n case 'ArrowDown': {\n if (this.menuEl) {\n // Select next suggestion\n event.preventDefault();\n this.setState({ typeaheadIndex: typeaheadIndex + 1 });\n }\n break;\n }\n\n case 'ArrowUp': {\n if (this.menuEl) {\n // Select previous suggestion\n event.preventDefault();\n this.setState({ typeaheadIndex: Math.max(0, typeaheadIndex - 1) });\n }\n break;\n }\n\n default: {\n // console.log('default key', event.key, event.which, event.charCode, event.locale, data.key);\n break;\n }\n }\n return undefined;\n };\n\n resetTypeahead = () => {\n if (this.mounted) {\n this.setState({ suggestions: [], typeaheadIndex: 0, typeaheadPrefix: '', typeaheadContext: null });\n this.resetTimer = null;\n }\n };\n\n handleBlur = (event: FocusEvent, change: Change) => {\n const { lastExecutedValue } = this.state;\n const previousValue = lastExecutedValue ? Plain.serialize(this.state.lastExecutedValue) : null;\n const currentValue = Plain.serialize(change.value);\n\n // If we dont wait here, menu clicks wont work because the menu\n // will be gone.\n this.resetTimer = setTimeout(this.resetTypeahead, 100);\n // Disrupting placeholder entry wipes all remaining placeholders needing input\n this.placeholdersBuffer.clearPlaceholders();\n\n if (previousValue !== currentValue) {\n this.executeOnQueryChangeAndExecuteQueries();\n }\n };\n\n handleFocus = () => {};\n\n onClickMenu = (item: CompletionItem) => {\n // Manually triggering change\n const change = this.applyTypeahead(this.state.value.change(), item);\n this.onChange(change, true);\n };\n\n updateMenu = () => {\n const { suggestions } = this.state;\n const menu = this.menuEl;\n const selection = window.getSelection();\n const node = selection.anchorNode;\n\n // No menu, nothing to do\n if (!menu) {\n return;\n }\n\n // No suggestions or blur, remove menu\n if (!hasSuggestions(suggestions)) {\n menu.removeAttribute('style');\n return;\n }\n\n // Align menu overlay to editor node\n if (node) {\n // Read from DOM\n const rect = node.parentElement.getBoundingClientRect();\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n\n // Write DOM\n requestAnimationFrame(() => {\n menu.style.opacity = '1';\n menu.style.top = `${rect.top + scrollY + rect.height + 4}px`;\n menu.style.left = `${rect.left + scrollX - 2}px`;\n });\n }\n };\n\n menuRef = (el: HTMLElement) => {\n this.menuEl = el;\n };\n\n renderMenu = () => {\n const { portalOrigin } = this.props;\n const { suggestions, typeaheadIndex, typeaheadPrefix } = this.state;\n if (!hasSuggestions(suggestions)) {\n return null;\n }\n\n const selectedItem = getSuggestionByIndex(suggestions, typeaheadIndex);\n\n // Create typeahead in DOM root so we can later position it absolutely\n return (\n \n \n \n );\n };\n\n handlePaste = (event: ClipboardEvent, change: Editor) => {\n const pastedValue = event.clipboardData.getData('Text');\n const newValue = change.value.change().insertText(pastedValue);\n this.onChange(newValue);\n\n return true;\n };\n\n render() {\n const { disabled } = this.props;\n const wrapperClassName = classnames('slate-query-field__wrapper', {\n 'slate-query-field__wrapper--disabled': disabled,\n });\n return (\n
    \n
    \n {this.renderMenu()}\n \n
    \n
    \n );\n }\n}\n\ninterface PortalProps {\n index?: number;\n origin: string;\n}\n\nclass Portal extends React.PureComponent {\n node: HTMLElement;\n\n constructor(props: PortalProps) {\n super(props);\n const { index = 0, origin = 'query' } = props;\n this.node = document.createElement('div');\n this.node.classList.add(`slate-typeahead`, `slate-typeahead-${origin}-${index}`);\n document.body.appendChild(this.node);\n }\n\n componentWillUnmount() {\n document.body.removeChild(this.node);\n }\n\n render() {\n return ReactDOM.createPortal(this.props.children, this.node);\n }\n}\n\nexport default QueryField;\n","// Node.closest() polyfill\nif ('Element' in window && !Element.prototype.closest) {\n Element.prototype.closest = function(this: any, s) {\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\n let el = this;\n let i;\n // eslint-disable-next-line\n do {\n i = matches.length;\n // eslint-disable-next-line\n while (--i >= 0 && matches.item(i) !== el) {}\n el = el.parentElement;\n } while (i < 0 && el);\n return el;\n };\n}\n\nexport function getPreviousCousin(node, selector) {\n let sibling = node.parentElement.previousSibling;\n let el;\n while (sibling) {\n el = sibling.querySelector(selector);\n if (el) {\n return el;\n }\n sibling = sibling.previousSibling;\n }\n return undefined;\n}\n\nexport function getNextCharacter(global = window) {\n const selection = global.getSelection();\n if (!selection.anchorNode) {\n return null;\n }\n\n const range = selection.getRangeAt(0);\n const text = selection.anchorNode.textContent;\n const offset = range.startOffset;\n return text.substr(offset, 1);\n}\n","const BRACES = {\n '[': ']',\n '{': '}',\n '(': ')',\n};\n\nconst NON_SELECTOR_SPACE_REGEXP = / (?![^}]+})/;\n\nexport default function BracesPlugin() {\n return {\n onKeyDown(event, change) {\n const { value } = change;\n if (!value.isCollapsed) {\n return undefined;\n }\n\n switch (event.key) {\n case '{':\n case '[': {\n event.preventDefault();\n // Insert matching braces\n change\n .insertText(`${event.key}${BRACES[event.key]}`)\n .move(-1)\n .focus();\n return true;\n }\n\n case '(': {\n event.preventDefault();\n const text = value.anchorText.text;\n const offset = value.anchorOffset;\n const delimiterIndex = text.slice(offset).search(NON_SELECTOR_SPACE_REGEXP);\n const length = delimiterIndex > -1 ? delimiterIndex + offset : text.length;\n const forward = length - offset;\n // Insert matching braces\n change\n .insertText(event.key)\n .move(forward)\n .insertText(BRACES[event.key])\n .move(-1 - forward)\n .focus();\n return true;\n }\n\n case 'Backspace': {\n const text = value.anchorText.text;\n const offset = value.anchorOffset;\n const previousChar = text[offset - 1];\n const nextChar = text[offset];\n if (BRACES[previousChar] && BRACES[previousChar] === nextChar) {\n event.preventDefault();\n // Remove closing brace if directly following\n change\n .deleteBackward()\n .deleteForward()\n .focus();\n return true;\n }\n }\n\n default: {\n break;\n }\n }\n return undefined;\n },\n };\n}\n","export default function RunnerPlugin({ handler }) {\n return {\n onKeyDown(event) {\n // Handle enter\n if (handler && event.key === 'Enter' && !event.shiftKey) {\n // Submit on Enter\n event.preventDefault();\n handler(event);\n return true;\n }\n return undefined;\n },\n };\n}\n","// Libraries\nimport React from 'react';\nimport Cascader from 'rc-cascader';\nimport PluginPrism from 'slate-prism';\n\n// Components\nimport QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explore/QueryField';\n\n// Utils & Services\n// dom also includes Element polyfills\nimport { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/dom';\nimport BracesPlugin from 'app/features/explore/slate-plugins/braces';\nimport RunnerPlugin from 'app/features/explore/slate-plugins/runner';\n\n// Types\nimport { LokiQuery } from '../types';\nimport { TypeaheadOutput, HistoryItem } from 'app/types/explore';\nimport { ExploreDataSourceApi, ExploreQueryFieldProps } from '@grafana/ui';\n\nfunction getChooserText(hasSytax, hasLogLabels) {\n if (!hasSytax) {\n return 'Loading labels...';\n }\n if (!hasLogLabels) {\n return '(No labels found)';\n }\n return 'Log labels';\n}\n\nfunction willApplySuggestion(suggestion: string, { typeaheadContext, typeaheadText }: QueryFieldState): string {\n // Modify suggestion based on context\n switch (typeaheadContext) {\n case 'context-labels': {\n const nextChar = getNextCharacter();\n if (!nextChar || nextChar === '}' || nextChar === ',') {\n suggestion += '=';\n }\n break;\n }\n\n case 'context-label-values': {\n // Always add quotes and remove existing ones instead\n if (!typeaheadText.match(/^(!?=~?\"|\")/)) {\n suggestion = `\"${suggestion}`;\n }\n if (getNextCharacter() !== '\"') {\n suggestion = `${suggestion}\"`;\n }\n break;\n }\n\n default:\n }\n return suggestion;\n}\n\nexport interface CascaderOption {\n label: string;\n value: string;\n children?: CascaderOption[];\n disabled?: boolean;\n}\n\nexport interface LokiQueryFieldFormProps extends ExploreQueryFieldProps {\n history: HistoryItem[];\n syntax: any;\n logLabelOptions: any[];\n syntaxLoaded: any;\n onLoadOptions: (selectedOptions: CascaderOption[]) => void;\n onLabelsRefresh?: () => void;\n}\n\nexport class LokiQueryFieldForm extends React.PureComponent {\n plugins: any[];\n pluginsSearch: any[];\n modifiedSearch: string;\n modifiedQuery: string;\n\n constructor(props: LokiQueryFieldFormProps, context) {\n super(props, context);\n\n this.plugins = [\n BracesPlugin(),\n RunnerPlugin({ handler: props.onExecuteQuery }),\n PluginPrism({\n onlyIn: node => node.type === 'code_block',\n getSyntax: node => 'promql',\n }),\n ];\n\n this.pluginsSearch = [RunnerPlugin({ handler: props.onExecuteQuery })];\n }\n\n loadOptions = (selectedOptions: CascaderOption[]) => {\n this.props.onLoadOptions(selectedOptions);\n };\n\n onChangeLogLabels = (values: string[], selectedOptions: CascaderOption[]) => {\n if (selectedOptions.length === 2) {\n const key = selectedOptions[0].value;\n const value = selectedOptions[1].value;\n const query = `{${key}=\"${value}\"}`;\n this.onChangeQuery(query, true);\n }\n };\n\n onChangeQuery = (value: string, override?: boolean) => {\n // Send text change to parent\n const { query, onQueryChange, onExecuteQuery } = this.props;\n if (onQueryChange) {\n const nextQuery = { ...query, expr: value };\n onQueryChange(nextQuery);\n\n if (override && onExecuteQuery) {\n onExecuteQuery();\n }\n }\n };\n\n onClickHintFix = () => {\n const { hint, onExecuteHint } = this.props;\n if (onExecuteHint && hint && hint.fix) {\n onExecuteHint(hint.fix.action);\n }\n };\n\n onTypeahead = (typeahead: TypeaheadInput): TypeaheadOutput => {\n const { datasource } = this.props;\n if (!datasource.languageProvider) {\n return { suggestions: [] };\n }\n\n const { history } = this.props;\n const { prefix, text, value, wrapperNode } = typeahead;\n\n // Get DOM-dependent context\n const wrapperClasses = Array.from(wrapperNode.classList);\n const labelKeyNode = getPreviousCousin(wrapperNode, '.attr-name');\n const labelKey = labelKeyNode && labelKeyNode.textContent;\n const nextChar = getNextCharacter();\n\n const result = datasource.languageProvider.provideCompletionItems(\n { text, value, prefix, wrapperClasses, labelKey },\n { history }\n );\n\n console.log('handleTypeahead', wrapperClasses, text, prefix, nextChar, labelKey, result.context);\n\n return result;\n };\n\n render() {\n const {\n error,\n hint,\n query,\n syntaxLoaded,\n logLabelOptions,\n onLoadOptions,\n onLabelsRefresh,\n datasource,\n } = this.props;\n const cleanText = datasource.languageProvider ? datasource.languageProvider.cleanText : undefined;\n const hasLogLabels = logLabelOptions && logLabelOptions.length > 0;\n const chooserText = getChooserText(syntaxLoaded, hasLogLabels);\n\n return (\n <>\n
    \n
    \n {\n if (isVisible && onLabelsRefresh) {\n onLabelsRefresh();\n }\n }}\n >\n \n \n
    \n
    \n \n
    \n
    \n
    \n {error ?
    {error}
    : null}\n {hint ? (\n
    \n {hint.label}{' '}\n {hint.fix ? (\n \n {hint.fix.label}\n \n ) : null}\n
    \n ) : null}\n
    \n \n );\n }\n}\n","import { useState, useEffect } from 'react';\nimport LokiLanguageProvider from 'app/plugins/datasource/loki/language_provider';\nimport { CascaderOption } from 'app/plugins/datasource/loki/components/LokiQueryFieldForm';\nimport { useRefMounted } from 'app/core/hooks/useRefMounted';\n\n/**\n *\n * @param languageProvider\n * @param languageProviderInitialised\n * @param activeOption rc-cascader provided option used to fetch option's values that hasn't been loaded yet\n *\n * @description Fetches missing labels and enables labels refresh\n */\nexport const useLokiLabels = (\n languageProvider: LokiLanguageProvider,\n languageProviderInitialised: boolean,\n activeOption: CascaderOption[]\n) => {\n const mounted = useRefMounted();\n\n // State\n const [logLabelOptions, setLogLabelOptions] = useState([]);\n const [shouldTryRefreshLabels, setRefreshLabels] = useState(false);\n\n // Async\n const fetchOptionValues = async option => {\n await languageProvider.fetchLabelValues(option);\n if (mounted.current) {\n setLogLabelOptions(languageProvider.logLabelOptions);\n }\n };\n\n const tryLabelsRefresh = async () => {\n await languageProvider.refreshLogLabels();\n if (mounted.current) {\n setRefreshLabels(false);\n setLogLabelOptions(languageProvider.logLabelOptions);\n }\n };\n\n // Effects\n\n // This effect performs loading of options that hasn't been loaded yet\n // It's a subject of activeOption state change only. This is because of specific behavior or rc-cascader\n // https://github.com/react-component/cascader/blob/master/src/Cascader.jsx#L165\n useEffect(() => {\n if (languageProviderInitialised) {\n const targetOption = activeOption[activeOption.length - 1];\n if (targetOption) {\n const nextOptions = logLabelOptions.map(option => {\n if (option.value === targetOption.value) {\n return {\n ...option,\n loading: true,\n };\n }\n return option;\n });\n setLogLabelOptions(nextOptions); // to set loading\n fetchOptionValues(targetOption.value);\n }\n }\n }, [activeOption]);\n\n // This effect is performed on shouldTryRefreshLabels state change only.\n // Since shouldTryRefreshLabels is reset AFTER the labels are refreshed we are secured in case of trying to refresh\n // when previous refresh hasn't finished yet\n useEffect(() => {\n if (shouldTryRefreshLabels) {\n tryLabelsRefresh();\n }\n }, [shouldTryRefreshLabels]);\n\n return {\n logLabelOptions,\n setLogLabelOptions,\n refreshLabels: () => setRefreshLabels(true),\n };\n};\n","import { useRef, useEffect } from 'react';\n\nexport const useRefMounted = () => {\n const refMounted = useRef(false);\n useEffect(() => {\n refMounted.current = true;\n return () => {\n refMounted.current = false;\n };\n });\n return refMounted;\n};\n","import { useState, useEffect } from 'react';\nimport LokiLanguageProvider from 'app/plugins/datasource/loki/language_provider';\nimport Prism from 'prismjs';\nimport { useLokiLabels } from 'app/plugins/datasource/loki/components/useLokiLabels';\nimport { CascaderOption } from 'app/plugins/datasource/loki/components/LokiQueryFieldForm';\nimport { useRefMounted } from 'app/core/hooks/useRefMounted';\n\nconst PRISM_SYNTAX = 'promql';\n\n/**\n *\n * @param languageProvider\n * @description Initializes given language provider, exposes Loki syntax and enables loading label option values\n */\nexport const useLokiSyntax = (languageProvider: LokiLanguageProvider) => {\n const mounted = useRefMounted();\n // State\n const [languageProviderInitialized, setLanguageProviderInitilized] = useState(false);\n const [syntax, setSyntax] = useState(null);\n\n /**\n * Holds information about currently selected option from rc-cascader to perform effect\n * that loads option values not fetched yet. Based on that useLokiLabels hook decides whether or not\n * the option requires additional data fetching\n */\n const [activeOption, setActiveOption] = useState();\n\n const { logLabelOptions, setLogLabelOptions, refreshLabels } = useLokiLabels(\n languageProvider,\n languageProviderInitialized,\n activeOption\n );\n\n // Async\n const initializeLanguageProvider = async () => {\n await languageProvider.start();\n Prism.languages[PRISM_SYNTAX] = languageProvider.getSyntax();\n if (mounted.current) {\n setLogLabelOptions(languageProvider.logLabelOptions);\n setSyntax(languageProvider.getSyntax());\n setLanguageProviderInitilized(true);\n }\n };\n\n // Effects\n useEffect(() => {\n initializeLanguageProvider();\n }, []);\n\n return {\n isSyntaxReady: languageProviderInitialized,\n syntax,\n logLabelOptions,\n setActiveOption,\n refreshLabels,\n };\n};\n","import React, { FunctionComponent } from 'react';\nimport { LokiQueryFieldForm, LokiQueryFieldFormProps } from './LokiQueryFieldForm';\nimport { useLokiSyntax } from './useLokiSyntax';\n\nconst LokiQueryField: FunctionComponent = ({ datasource, ...otherProps }) => {\n const { isSyntaxReady, setActiveOption, refreshLabels, ...syntaxProps } = useLokiSyntax(datasource.languageProvider);\n\n return (\n \n );\n};\n\nexport default LokiQueryField;\n","// Libraries\nimport React, { PureComponent } from 'react';\n\n// Components\n// import { Select, SelectOptionItem } from '@grafana/ui';\n\n// Types\nimport { QueryEditorProps } from '@grafana/ui/src/types';\nimport { LokiDatasource } from '../datasource';\nimport { LokiQuery } from '../types';\n// import { LokiQueryField } from './LokiQueryField';\n\ntype Props = QueryEditorProps;\n\n// interface State {\n// query: LokiQuery;\n// }\n\nexport class LokiQueryEditor extends PureComponent {\n // state: State = {\n // query: this.props.query,\n // };\n //\n // onRunQuery = () => {\n // const { query } = this.state;\n //\n // this.props.onChange(query);\n // this.props.onRunQuery();\n // };\n //\n // onFieldChange = (query: LokiQuery, override?) => {\n // this.setState({\n // query: {\n // ...this.state.query,\n // expr: query.expr,\n // },\n // });\n // };\n //\n // onFormatChanged = (option: SelectOptionItem) => {\n // this.props.onChange({\n // ...this.state.query,\n // resultFormat: option.value,\n // });\n // };\n\n render() {\n // const { query } = this.state;\n // const { datasource } = this.props;\n // const formatOptions: SelectOptionItem[] = [\n // { label: 'Time Series', value: 'time_series' },\n // { label: 'Table', value: 'table' },\n // ];\n //\n // query.resultFormat = query.resultFormat || 'time_series';\n // const currentFormat = formatOptions.find(item => item.value === query.resultFormat);\n\n return (\n
    \n
    \n
    \n Loki is currently not supported as dashboard data source. We are working on it!\n
    \n
    \n {/*\n \n
    \n
    \n
    Format as
    \n \n
    \n
    \n
    \n
    \n
    \n */}\n
    \n );\n }\n}\n\nexport default LokiQueryEditor;\n","import angular from 'angular';\nimport _ from 'lodash';\n\nclass MixedDatasource {\n /** @ngInject */\n constructor(private $q, private datasourceSrv) {}\n\n query(options) {\n const sets = _.groupBy(options.targets, 'datasource');\n const promises = _.map(sets, targets => {\n const dsName = targets[0].datasource;\n if (dsName === '-- Mixed --') {\n return this.$q([]);\n }\n\n return this.datasourceSrv.get(dsName).then(ds => {\n const opt = angular.copy(options);\n opt.targets = targets;\n return ds.query(opt);\n });\n });\n\n return this.$q.all(promises).then(results => {\n return { data: _.flatten(_.map(results, 'data')) };\n });\n }\n}\n\nexport { MixedDatasource, MixedDatasource as Datasource };\n","import Datasource from './datasource';\n\nimport LokiStartPage from './components/LokiStartPage';\nimport LokiQueryField from './components/LokiQueryField';\nimport LokiQueryEditor from './components/LokiQueryEditor';\n\nexport class LokiConfigCtrl {\n static templateUrl = 'partials/config.html';\n}\n\nexport {\n Datasource,\n LokiQueryEditor as QueryEditor,\n LokiConfigCtrl as ConfigCtrl,\n LokiQueryField as ExploreQueryField,\n LokiStartPage as ExploreStartPage,\n};\n","import _ from 'lodash';\n\nexport default class ResponseParser {\n constructor(private $q) {}\n\n processQueryResult(res) {\n const data = [];\n\n if (!res.data.results) {\n return { data: data };\n }\n\n for (const key in res.data.results) {\n const queryRes = res.data.results[key];\n\n if (queryRes.series) {\n for (const series of queryRes.series) {\n data.push({\n target: series.name,\n datapoints: series.points,\n refId: queryRes.refId,\n meta: queryRes.meta,\n });\n }\n }\n\n if (queryRes.tables) {\n for (const table of queryRes.tables) {\n table.type = 'table';\n table.refId = queryRes.refId;\n table.meta = queryRes.meta;\n data.push(table);\n }\n }\n }\n\n return { data: data };\n }\n\n parseMetricFindQueryResult(refId, results) {\n if (!results || results.data.length === 0 || results.data.results[refId].meta.rowCount === 0) {\n return [];\n }\n\n const columns = results.data.results[refId].tables[0].columns;\n const rows = results.data.results[refId].tables[0].rows;\n const textColIndex = this.findColIndex(columns, '__text');\n const valueColIndex = this.findColIndex(columns, '__value');\n\n if (columns.length === 2 && textColIndex !== -1 && valueColIndex !== -1) {\n return this.transformToKeyValueList(rows, textColIndex, valueColIndex);\n }\n\n return this.transformToSimpleList(rows);\n }\n\n transformToKeyValueList(rows, textColIndex, valueColIndex) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n if (!this.containsKey(res, rows[i][textColIndex])) {\n res.push({\n text: rows[i][textColIndex],\n value: rows[i][valueColIndex],\n });\n }\n }\n\n return res;\n }\n\n transformToSimpleList(rows) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < rows[i].length; j++) {\n const value = rows[i][j];\n if (res.indexOf(value) === -1) {\n res.push(value);\n }\n }\n }\n\n return _.map(res, value => {\n return { text: value };\n });\n }\n\n findColIndex(columns, colName) {\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].text === colName) {\n return i;\n }\n }\n\n return -1;\n }\n\n containsKey(res, key) {\n for (let i = 0; i < res.length; i++) {\n if (res[i].text === key) {\n return true;\n }\n }\n return false;\n }\n\n transformAnnotationResponse(options, data) {\n const table = data.data.results[options.annotation.name].tables[0];\n\n let timeColumnIndex = -1;\n let textColumnIndex = -1;\n let tagsColumnIndex = -1;\n\n for (let i = 0; i < table.columns.length; i++) {\n if (table.columns[i].text === 'time_sec' || table.columns[i].text === 'time') {\n timeColumnIndex = i;\n } else if (table.columns[i].text === 'title') {\n return this.$q.reject({\n message: 'The title column for annotations is deprecated, now only a column named text is returned',\n });\n } else if (table.columns[i].text === 'text') {\n textColumnIndex = i;\n } else if (table.columns[i].text === 'tags') {\n tagsColumnIndex = i;\n }\n }\n\n if (timeColumnIndex === -1) {\n return this.$q.reject({\n message: 'Missing mandatory time column (with time_sec column alias) in annotation query.',\n });\n }\n\n const list = [];\n for (let i = 0; i < table.rows.length; i++) {\n const row = table.rows[i];\n list.push({\n annotation: options.annotation,\n time: Math.floor(row[timeColumnIndex]),\n text: row[textColumnIndex] ? row[textColumnIndex].toString() : '',\n tags: row[tagsColumnIndex] ? row[tagsColumnIndex].trim().split(/\\s*,\\s*/) : [],\n });\n }\n\n return list;\n }\n}\n","import _ from 'lodash';\n\nexport default class MysqlQuery {\n target: any;\n templateSrv: any;\n scopedVars: any;\n\n /** @ngInject */\n constructor(target, templateSrv?, scopedVars?) {\n this.target = target;\n this.templateSrv = templateSrv;\n this.scopedVars = scopedVars;\n\n target.format = target.format || 'time_series';\n target.timeColumn = target.timeColumn || 'time';\n target.metricColumn = target.metricColumn || 'none';\n\n target.group = target.group || [];\n target.where = target.where || [{ type: 'macro', name: '$__timeFilter', params: [] }];\n target.select = target.select || [[{ type: 'column', params: ['value'] }]];\n\n // handle pre query gui panels gracefully\n if (!('rawQuery' in this.target)) {\n if ('rawSql' in target) {\n // pre query gui panel\n target.rawQuery = true;\n } else {\n // new panel\n target.rawQuery = false;\n }\n }\n\n // give interpolateQueryStr access to this\n this.interpolateQueryStr = this.interpolateQueryStr.bind(this);\n }\n\n // remove identifier quoting from identifier to use in metadata queries\n unquoteIdentifier(value) {\n if (value[0] === '\"' && value[value.length - 1] === '\"') {\n return value.substring(1, value.length - 1).replace(/\"\"/g, '\"');\n } else {\n return value;\n }\n }\n\n quoteIdentifier(value) {\n return '\"' + value.replace(/\"/g, '\"\"') + '\"';\n }\n\n quoteLiteral(value) {\n return \"'\" + value.replace(/'/g, \"''\") + \"'\";\n }\n\n escapeLiteral(value) {\n return String(value).replace(/'/g, \"''\");\n }\n\n hasTimeGroup() {\n return _.find(this.target.group, (g: any) => g.type === 'time');\n }\n\n hasMetricColumn() {\n return this.target.metricColumn !== 'none';\n }\n\n interpolateQueryStr(value, variable, defaultFormatFn) {\n // if no multi or include all do not regexEscape\n if (!variable.multi && !variable.includeAll) {\n return this.escapeLiteral(value);\n }\n\n if (typeof value === 'string') {\n return this.quoteLiteral(value);\n }\n\n const escapedValues = _.map(value, this.quoteLiteral);\n return escapedValues.join(',');\n }\n\n render(interpolate?) {\n const target = this.target;\n\n // new query with no table set yet\n if (!this.target.rawQuery && !('table' in this.target)) {\n return '';\n }\n\n if (!target.rawQuery) {\n target.rawSql = this.buildQuery();\n }\n\n if (interpolate) {\n return this.templateSrv.replace(target.rawSql, this.scopedVars, this.interpolateQueryStr);\n } else {\n return target.rawSql;\n }\n }\n\n hasUnixEpochTimecolumn() {\n return ['int', 'bigint', 'double'].indexOf(this.target.timeColumnType) > -1;\n }\n\n buildTimeColumn(alias = true) {\n const timeGroup = this.hasTimeGroup();\n let query;\n let macro = '$__timeGroup';\n\n if (timeGroup) {\n let args;\n if (timeGroup.params.length > 1 && timeGroup.params[1] !== 'none') {\n args = timeGroup.params.join(',');\n } else {\n args = timeGroup.params[0];\n }\n if (this.hasUnixEpochTimecolumn()) {\n macro = '$__unixEpochGroup';\n }\n if (alias) {\n macro += 'Alias';\n }\n query = macro + '(' + this.target.timeColumn + ',' + args + ')';\n } else {\n query = this.target.timeColumn;\n if (alias) {\n query += ' AS \"time\"';\n }\n }\n\n return query;\n }\n\n buildMetricColumn() {\n if (this.hasMetricColumn()) {\n return this.target.metricColumn + ' AS metric';\n }\n\n return '';\n }\n\n buildValueColumns() {\n let query = '';\n for (const column of this.target.select) {\n query += ',\\n ' + this.buildValueColumn(column);\n }\n\n return query;\n }\n\n buildValueColumn(column) {\n let query = '';\n\n const columnName = _.find(column, (g: any) => g.type === 'column');\n query = columnName.params[0];\n\n const aggregate = _.find(column, (g: any) => g.type === 'aggregate');\n\n if (aggregate) {\n const func = aggregate.params[0];\n query = func + '(' + query + ')';\n }\n\n const alias = _.find(column, (g: any) => g.type === 'alias');\n if (alias) {\n query += ' AS ' + this.quoteIdentifier(alias.params[0]);\n }\n\n return query;\n }\n\n buildWhereClause() {\n let query = '';\n const conditions = _.map(this.target.where, (tag, index) => {\n switch (tag.type) {\n case 'macro':\n return tag.name + '(' + this.target.timeColumn + ')';\n break;\n case 'expression':\n return tag.params.join(' ');\n break;\n }\n });\n\n if (conditions.length > 0) {\n query = '\\nWHERE\\n ' + conditions.join(' AND\\n ');\n }\n\n return query;\n }\n\n buildGroupClause() {\n let query = '';\n let groupSection = '';\n\n for (let i = 0; i < this.target.group.length; i++) {\n const part = this.target.group[i];\n if (i > 0) {\n groupSection += ', ';\n }\n if (part.type === 'time') {\n groupSection += '1';\n } else {\n groupSection += part.params[0];\n }\n }\n\n if (groupSection.length) {\n query = '\\nGROUP BY ' + groupSection;\n if (this.hasMetricColumn()) {\n query += ',2';\n }\n }\n return query;\n }\n\n buildQuery() {\n let query = 'SELECT';\n\n query += '\\n ' + this.buildTimeColumn();\n if (this.hasMetricColumn()) {\n query += ',\\n ' + this.buildMetricColumn();\n }\n query += this.buildValueColumns();\n\n query += '\\nFROM ' + this.target.table;\n\n query += this.buildWhereClause();\n query += this.buildGroupClause();\n\n query += '\\nORDER BY ' + this.buildTimeColumn(false);\n\n return query;\n }\n}\n","import _ from 'lodash';\nimport ResponseParser from './response_parser';\nimport MysqlQuery from 'app/plugins/datasource/mysql/mysql_query';\n\nexport class MysqlDatasource {\n id: any;\n name: any;\n responseParser: ResponseParser;\n queryModel: MysqlQuery;\n interval: string;\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private $q, private templateSrv, private timeSrv) {\n this.name = instanceSettings.name;\n this.id = instanceSettings.id;\n this.responseParser = new ResponseParser(this.$q);\n this.queryModel = new MysqlQuery({});\n this.interval = (instanceSettings.jsonData || {}).timeInterval || '1m';\n }\n\n interpolateVariable = (value, variable) => {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return this.queryModel.quoteLiteral(value);\n } else {\n return value;\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const quotedValues = _.map(value, v => {\n return this.queryModel.quoteLiteral(v);\n });\n return quotedValues.join(',');\n };\n\n query(options) {\n const queries = _.filter(options.targets, target => {\n return target.hide !== true;\n }).map(target => {\n const queryModel = new MysqlQuery(target, this.templateSrv, options.scopedVars);\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n rawSql: queryModel.render(this.interpolateVariable),\n format: target.format,\n };\n });\n\n if (queries.length === 0) {\n return this.$q.when({ data: [] });\n }\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: queries,\n },\n })\n .then(this.responseParser.processQueryResult);\n }\n\n annotationQuery(options) {\n if (!options.annotation.rawQuery) {\n return this.$q.reject({\n message: 'Query missing in annotation definition',\n });\n }\n\n const query = {\n refId: options.annotation.name,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(options.annotation.rawQuery, options.scopedVars, this.interpolateVariable),\n format: 'table',\n };\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [query],\n },\n })\n .then(data => this.responseParser.transformAnnotationResponse(options, data));\n }\n\n metricFindQuery(query, optionalOptions) {\n let refId = 'tempvar';\n if (optionalOptions && optionalOptions.variable && optionalOptions.variable.name) {\n refId = optionalOptions.variable.name;\n }\n\n const interpolatedQuery = {\n refId: refId,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(query, {}, this.interpolateVariable),\n format: 'table',\n };\n\n const range = this.timeSrv.timeRange();\n const data = {\n queries: [interpolatedQuery],\n from: range.from.valueOf().toString(),\n to: range.to.valueOf().toString(),\n };\n\n if (optionalOptions && optionalOptions.range && optionalOptions.range.from) {\n data['from'] = optionalOptions.range.from.valueOf().toString();\n }\n if (optionalOptions && optionalOptions.range && optionalOptions.range.to) {\n data['to'] = optionalOptions.range.to.valueOf().toString();\n }\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: data,\n })\n .then(data => this.responseParser.parseMetricFindQueryResult(refId, data));\n }\n\n testDatasource() {\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: '5m',\n to: 'now',\n queries: [\n {\n refId: 'A',\n intervalMs: 1,\n maxDataPoints: 1,\n datasourceId: this.id,\n rawSql: 'SELECT 1',\n format: 'table',\n },\n ],\n },\n })\n .then(res => {\n return { status: 'success', message: 'Database Connection OK' };\n })\n .catch(err => {\n console.log(err);\n if (err.data && err.data.message) {\n return { status: 'error', message: err.data.message };\n } else {\n return { status: 'error', message: err.status };\n }\n });\n }\n}\n","export class MysqlMetaQuery {\n constructor(private target, private queryModel) {}\n\n getOperators(datatype: string) {\n switch (datatype) {\n case 'double':\n case 'float': {\n return ['=', '!=', '<', '<=', '>', '>='];\n }\n case 'text':\n case 'tinytext':\n case 'mediumtext':\n case 'longtext':\n case 'varchar':\n case 'char': {\n return ['=', '!=', '<', '<=', '>', '>=', 'IN', 'NOT IN', 'LIKE', 'NOT LIKE'];\n }\n default: {\n return ['=', '!=', '<', '<=', '>', '>=', 'IN', 'NOT IN'];\n }\n }\n }\n\n // quote identifier as literal to use in metadata queries\n quoteIdentAsLiteral(value) {\n return this.queryModel.quoteLiteral(this.queryModel.unquoteIdentifier(value));\n }\n\n findMetricTable() {\n // query that returns first table found that has a timestamp(tz) column and a float column\n const query = `\n SELECT\n table_name as table_name,\n ( SELECT\n column_name as column_name\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n c.data_type IN ('timestamp', 'datetime')\n ORDER BY ordinal_position LIMIT 1\n ) AS time_column,\n ( SELECT\n column_name AS column_name\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n c.data_type IN('float', 'int', 'bigint')\n ORDER BY ordinal_position LIMIT 1\n ) AS value_column\n FROM information_schema.tables t\n WHERE\n t.table_schema = database() AND\n EXISTS\n ( SELECT 1\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n c.data_type IN ('timestamp', 'datetime')\n ) AND\n EXISTS\n ( SELECT 1\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n c.data_type IN('float', 'int', 'bigint')\n )\n LIMIT 1\n;`;\n return query;\n }\n\n buildTableConstraint(table: string) {\n let query = '';\n\n // check for schema qualified table\n if (table.includes('.')) {\n const parts = table.split('.');\n query = 'table_schema = ' + this.quoteIdentAsLiteral(parts[0]);\n query += ' AND table_name = ' + this.quoteIdentAsLiteral(parts[1]);\n return query;\n } else {\n query = 'table_schema = database() AND table_name = ' + this.quoteIdentAsLiteral(table);\n\n return query;\n }\n }\n\n buildTableQuery() {\n return 'SELECT table_name FROM information_schema.tables WHERE table_schema = database() ORDER BY table_name';\n }\n\n buildColumnQuery(type?: string) {\n let query = 'SELECT column_name FROM information_schema.columns WHERE ';\n query += this.buildTableConstraint(this.target.table);\n\n switch (type) {\n case 'time': {\n query += \" AND data_type IN ('timestamp','datetime','bigint','int','double','float')\";\n break;\n }\n case 'metric': {\n query += \" AND data_type IN ('text','tinytext','mediumtext','longtext','varchar','char')\";\n break;\n }\n case 'value': {\n query += \" AND data_type IN ('bigint','int','smallint','mediumint','tinyint','double','decimal','float')\";\n query += ' AND column_name <> ' + this.quoteIdentAsLiteral(this.target.timeColumn);\n break;\n }\n case 'group': {\n query += \" AND data_type IN ('text','tinytext','mediumtext','longtext','varchar','char')\";\n break;\n }\n }\n\n query += ' ORDER BY column_name';\n\n return query;\n }\n\n buildValueQuery(column: string) {\n let query = 'SELECT DISTINCT QUOTE(' + column + ')';\n query += ' FROM ' + this.target.table;\n query += ' WHERE $__timeFilter(' + this.target.timeColumn + ')';\n query += ' ORDER BY 1 LIMIT 100';\n return query;\n }\n\n buildDatatypeQuery(column: string) {\n let query = `\nSELECT data_type\nFROM information_schema.columns\nWHERE `;\n query += ' table_name = ' + this.quoteIdentAsLiteral(this.target.table);\n query += ' AND column_name = ' + this.quoteIdentAsLiteral(column);\n return query;\n }\n}\n","import { SqlPartDef, SqlPart } from 'app/core/components/sql_part/sql_part';\n\nconst index = [];\n\nfunction createPart(part): any {\n const def = index[part.type];\n if (!def) {\n return null;\n }\n\n return new SqlPart(part, def);\n}\n\nfunction register(options: any) {\n index[options.type] = new SqlPartDef(options);\n}\n\nregister({\n type: 'column',\n style: 'label',\n params: [{ type: 'column', dynamicLookup: true }],\n defaultParams: ['value'],\n});\n\nregister({\n type: 'expression',\n style: 'expression',\n label: 'Expr:',\n params: [\n { name: 'left', type: 'string', dynamicLookup: true },\n { name: 'op', type: 'string', dynamicLookup: true },\n { name: 'right', type: 'string', dynamicLookup: true },\n ],\n defaultParams: ['value', '=', 'value'],\n});\n\nregister({\n type: 'macro',\n style: 'label',\n label: 'Macro:',\n params: [],\n defaultParams: [],\n});\n\nregister({\n type: 'aggregate',\n style: 'label',\n params: [\n {\n name: 'name',\n type: 'string',\n options: ['avg', 'count', 'min', 'max', 'sum', 'stddev', 'variance'],\n },\n ],\n defaultParams: ['avg'],\n});\n\nregister({\n type: 'alias',\n style: 'label',\n params: [{ name: 'name', type: 'string', quote: 'double' }],\n defaultParams: ['alias'],\n});\n\nregister({\n type: 'time',\n style: 'function',\n label: 'time',\n params: [\n {\n name: 'interval',\n type: 'interval',\n options: ['$__interval', '1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n {\n name: 'fill',\n type: 'string',\n options: ['none', 'NULL', 'previous', '0'],\n },\n ],\n defaultParams: ['$__interval', 'none'],\n});\n\nexport default {\n create: createPart,\n};\n","import _ from 'lodash';\n\nexport class SqlPartDef {\n type: string;\n style: string;\n label: string;\n params: any[];\n defaultParams: any[];\n wrapOpen: string;\n wrapClose: string;\n separator: string;\n\n constructor(options: any) {\n this.type = options.type;\n if (options.label) {\n this.label = options.label;\n } else {\n this.label = this.type[0].toUpperCase() + this.type.substring(1) + ':';\n }\n this.style = options.style;\n if (this.style === 'function') {\n this.wrapOpen = '(';\n this.wrapClose = ')';\n this.separator = ', ';\n } else {\n this.wrapOpen = ' ';\n this.wrapClose = ' ';\n this.separator = ' ';\n }\n this.params = options.params;\n this.defaultParams = options.defaultParams;\n }\n}\n\nexport class SqlPart {\n part: any;\n def: SqlPartDef;\n params: any[];\n label: string;\n name: string;\n datatype: string;\n\n constructor(part: any, def: any) {\n this.part = part;\n this.def = def;\n if (!this.def) {\n throw { message: 'Could not find sql part ' + part.type };\n }\n\n this.datatype = part.datatype;\n\n if (part.name) {\n this.name = part.name;\n this.label = def.label + ' ' + part.name;\n } else {\n this.name = '';\n this.label = def.label;\n }\n\n part.params = part.params || _.clone(this.def.defaultParams);\n this.params = part.params;\n }\n\n updateParam(strValue, index) {\n // handle optional parameters\n if (strValue === '' && this.def.params[index].optional) {\n this.params.splice(index, 1);\n } else {\n this.params[index] = strValue;\n }\n\n this.part.params = this.params;\n }\n}\n","import _ from 'lodash';\nimport appEvents from 'app/core/app_events';\nimport { MysqlMetaQuery } from './meta_query';\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport { SqlPart } from 'app/core/components/sql_part/sql_part';\nimport MysqlQuery from './mysql_query';\nimport sqlPart from './sql_part';\n\nexport interface QueryMeta {\n sql: string;\n}\n\nconst defaultQuery = `SELECT\n UNIX_TIMESTAMP() as time_sec,\n as value,\n as metric\nFROM \nWHERE $__timeFilter(time_column)\nORDER BY ASC\n`;\n\nexport class MysqlQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n showLastQuerySQL: boolean;\n formats: any[];\n lastQueryMeta: QueryMeta;\n lastQueryError: string;\n showHelp: boolean;\n\n queryModel: MysqlQuery;\n metaBuilder: MysqlMetaQuery;\n tableSegment: any;\n whereAdd: any;\n timeColumnSegment: any;\n metricColumnSegment: any;\n selectMenu: any[];\n selectParts: SqlPart[][];\n groupParts: SqlPart[];\n whereParts: SqlPart[];\n groupAdd: any;\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv, private $q, private uiSegmentSrv) {\n super($scope, $injector);\n\n this.target = this.target;\n this.queryModel = new MysqlQuery(this.target, templateSrv, this.panel.scopedVars);\n this.metaBuilder = new MysqlMetaQuery(this.target, this.queryModel);\n this.updateProjection();\n\n this.formats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];\n\n if (!this.target.rawSql) {\n // special handling when in table panel\n if (this.panelCtrl.panel.type === 'table') {\n this.target.format = 'table';\n this.target.rawSql = 'SELECT 1';\n this.target.rawQuery = true;\n } else {\n this.target.rawSql = defaultQuery;\n this.datasource.metricFindQuery(this.metaBuilder.findMetricTable()).then(result => {\n if (result.length > 0) {\n this.target.table = result[0].text;\n let segment = this.uiSegmentSrv.newSegment(this.target.table);\n this.tableSegment.html = segment.html;\n this.tableSegment.value = segment.value;\n\n this.target.timeColumn = result[1].text;\n segment = this.uiSegmentSrv.newSegment(this.target.timeColumn);\n this.timeColumnSegment.html = segment.html;\n this.timeColumnSegment.value = segment.value;\n\n this.target.timeColumnType = 'timestamp';\n this.target.select = [[{ type: 'column', params: [result[2].text] }]];\n this.updateProjection();\n this.panelCtrl.refresh();\n }\n });\n }\n }\n\n if (!this.target.table) {\n this.tableSegment = uiSegmentSrv.newSegment({ value: 'select table', fake: true });\n } else {\n this.tableSegment = uiSegmentSrv.newSegment(this.target.table);\n }\n\n this.timeColumnSegment = uiSegmentSrv.newSegment(this.target.timeColumn);\n this.metricColumnSegment = uiSegmentSrv.newSegment(this.target.metricColumn);\n\n this.buildSelectMenu();\n this.whereAdd = this.uiSegmentSrv.newPlusButton();\n this.groupAdd = this.uiSegmentSrv.newPlusButton();\n\n this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);\n this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);\n }\n\n updateProjection() {\n this.selectParts = _.map(this.target.select, (parts: any) => {\n return _.map(parts, sqlPart.create).filter(n => n);\n });\n this.whereParts = _.map(this.target.where, sqlPart.create).filter(n => n);\n this.groupParts = _.map(this.target.group, sqlPart.create).filter(n => n);\n }\n\n updatePersistedParts() {\n this.target.select = _.map(this.selectParts, selectParts => {\n return _.map(selectParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, params: part.params };\n });\n });\n this.target.where = _.map(this.whereParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, name: part.name, params: part.params };\n });\n this.target.group = _.map(this.groupParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, params: part.params };\n });\n }\n\n buildSelectMenu() {\n this.selectMenu = [];\n const aggregates = {\n text: 'Aggregate Functions',\n value: 'aggregate',\n submenu: [\n { text: 'Average', value: 'avg' },\n { text: 'Count', value: 'count' },\n { text: 'Maximum', value: 'max' },\n { text: 'Minimum', value: 'min' },\n { text: 'Sum', value: 'sum' },\n { text: 'Standard deviation', value: 'stddev' },\n { text: 'Variance', value: 'variance' },\n ],\n };\n\n this.selectMenu.push(aggregates);\n this.selectMenu.push({ text: 'Alias', value: 'alias' });\n this.selectMenu.push({ text: 'Column', value: 'column' });\n }\n\n toggleEditorMode() {\n if (this.target.rawQuery) {\n appEvents.emit('confirm-modal', {\n title: 'Warning',\n text2: 'Switching to query builder may overwrite your raw SQL.',\n icon: 'fa-exclamation',\n yesText: 'Switch',\n onConfirm: () => {\n this.target.rawQuery = !this.target.rawQuery;\n },\n });\n } else {\n this.target.rawQuery = !this.target.rawQuery;\n }\n }\n\n resetPlusButton(button) {\n const plusButton = this.uiSegmentSrv.newPlusButton();\n button.html = plusButton.html;\n button.value = plusButton.value;\n }\n\n getTableSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildTableQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n\n tableChanged() {\n this.target.table = this.tableSegment.value;\n this.target.where = [];\n this.target.group = [];\n this.updateProjection();\n\n const segment = this.uiSegmentSrv.newSegment('none');\n this.metricColumnSegment.html = segment.html;\n this.metricColumnSegment.value = segment.value;\n this.target.metricColumn = 'none';\n\n const task1 = this.datasource.metricFindQuery(this.metaBuilder.buildColumnQuery('time')).then(result => {\n // check if time column is still valid\n if (result.length > 0 && !_.find(result, (r: any) => r.text === this.target.timeColumn)) {\n const segment = this.uiSegmentSrv.newSegment(result[0].text);\n this.timeColumnSegment.html = segment.html;\n this.timeColumnSegment.value = segment.value;\n }\n return this.timeColumnChanged(false);\n });\n const task2 = this.datasource.metricFindQuery(this.metaBuilder.buildColumnQuery('value')).then(result => {\n if (result.length > 0) {\n this.target.select = [[{ type: 'column', params: [result[0].text] }]];\n this.updateProjection();\n }\n });\n\n this.$q.all([task1, task2]).then(() => {\n this.panelCtrl.refresh();\n });\n }\n\n getTimeColumnSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('time'))\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n\n timeColumnChanged(refresh?: boolean) {\n this.target.timeColumn = this.timeColumnSegment.value;\n return this.datasource.metricFindQuery(this.metaBuilder.buildDatatypeQuery(this.target.timeColumn)).then(result => {\n if (result.length === 1) {\n if (this.target.timeColumnType !== result[0].text) {\n this.target.timeColumnType = result[0].text;\n }\n let partModel;\n if (this.queryModel.hasUnixEpochTimecolumn()) {\n partModel = sqlPart.create({ type: 'macro', name: '$__unixEpochFilter', params: [] });\n } else {\n partModel = sqlPart.create({ type: 'macro', name: '$__timeFilter', params: [] });\n }\n\n if (this.whereParts.length >= 1 && this.whereParts[0].def.type === 'macro') {\n // replace current macro\n this.whereParts[0] = partModel;\n } else {\n this.whereParts.splice(0, 0, partModel);\n }\n }\n\n this.updatePersistedParts();\n if (refresh !== false) {\n this.panelCtrl.refresh();\n }\n });\n }\n\n getMetricColumnSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('metric'))\n .then(this.transformToSegments({ addNone: true }))\n .catch(this.handleQueryError.bind(this));\n }\n\n metricColumnChanged() {\n this.target.metricColumn = this.metricColumnSegment.value;\n this.panelCtrl.refresh();\n }\n\n onDataReceived(dataList) {\n this.lastQueryMeta = null;\n this.lastQueryError = null;\n\n const anySeriesFromQuery = _.find(dataList, { refId: this.target.refId });\n if (anySeriesFromQuery) {\n this.lastQueryMeta = anySeriesFromQuery.meta;\n }\n }\n\n onDataError(err) {\n if (err.data && err.data.results) {\n const queryRes = err.data.results[this.target.refId];\n if (queryRes) {\n this.lastQueryMeta = queryRes.meta;\n this.lastQueryError = queryRes.error;\n }\n }\n }\n\n transformToSegments(config) {\n return results => {\n const segments = _.map(results, segment => {\n return this.uiSegmentSrv.newSegment({\n value: segment.text,\n expandable: segment.expandable,\n });\n });\n\n if (config.addTemplateVars) {\n for (const variable of this.templateSrv.variables) {\n let value;\n value = '$' + variable.name;\n if (config.templateQuoter && variable.multi === false) {\n value = config.templateQuoter(value);\n }\n\n segments.unshift(\n this.uiSegmentSrv.newSegment({\n type: 'template',\n value: value,\n expandable: true,\n })\n );\n }\n }\n\n if (config.addNone) {\n segments.unshift(this.uiSegmentSrv.newSegment({ type: 'template', value: 'none', expandable: true }));\n }\n\n return segments;\n };\n }\n\n findAggregateIndex(selectParts) {\n return _.findIndex(selectParts, (p: any) => p.def.type === 'aggregate' || p.def.type === 'percentile');\n }\n\n findWindowIndex(selectParts) {\n return _.findIndex(selectParts, (p: any) => p.def.type === 'window' || p.def.type === 'moving_window');\n }\n\n addSelectPart(selectParts, item, subItem) {\n let partType = item.value;\n if (subItem && subItem.type) {\n partType = subItem.type;\n }\n let partModel = sqlPart.create({ type: partType });\n if (subItem) {\n partModel.params[0] = subItem.value;\n }\n let addAlias = false;\n\n switch (partType) {\n case 'column':\n const parts = _.map(selectParts, (part: any) => {\n return sqlPart.create({ type: part.def.type, params: _.clone(part.params) });\n });\n this.selectParts.push(parts);\n break;\n case 'percentile':\n case 'aggregate':\n // add group by if no group by yet\n if (this.target.group.length === 0) {\n this.addGroup('time', '$__interval');\n }\n const aggIndex = this.findAggregateIndex(selectParts);\n if (aggIndex !== -1) {\n // replace current aggregation\n selectParts[aggIndex] = partModel;\n } else {\n selectParts.splice(1, 0, partModel);\n }\n if (!_.find(selectParts, (p: any) => p.def.type === 'alias')) {\n addAlias = true;\n }\n break;\n case 'moving_window':\n case 'window':\n const windowIndex = this.findWindowIndex(selectParts);\n if (windowIndex !== -1) {\n // replace current window function\n selectParts[windowIndex] = partModel;\n } else {\n const aggIndex = this.findAggregateIndex(selectParts);\n if (aggIndex !== -1) {\n selectParts.splice(aggIndex + 1, 0, partModel);\n } else {\n selectParts.splice(1, 0, partModel);\n }\n }\n if (!_.find(selectParts, (p: any) => p.def.type === 'alias')) {\n addAlias = true;\n }\n break;\n case 'alias':\n addAlias = true;\n break;\n }\n\n if (addAlias) {\n // set initial alias name to column name\n partModel = sqlPart.create({ type: 'alias', params: [selectParts[0].params[0].replace(/\"/g, '')] });\n if (selectParts[selectParts.length - 1].def.type === 'alias') {\n selectParts[selectParts.length - 1] = partModel;\n } else {\n selectParts.push(partModel);\n }\n }\n\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n }\n\n removeSelectPart(selectParts, part) {\n if (part.def.type === 'column') {\n // remove all parts of column unless its last column\n if (this.selectParts.length > 1) {\n const modelsIndex = _.indexOf(this.selectParts, selectParts);\n this.selectParts.splice(modelsIndex, 1);\n }\n } else {\n const partIndex = _.indexOf(selectParts, part);\n selectParts.splice(partIndex, 1);\n }\n\n this.updatePersistedParts();\n }\n\n handleSelectPartEvent(selectParts, part, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n switch (part.def.type) {\n // case 'aggregate':\n // return this.datasource\n // .metricFindQuery(this.metaBuilder.buildAggregateQuery())\n // .then(this.transformToSegments({}))\n // .catch(this.handleQueryError.bind(this));\n case 'column':\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('value'))\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.removeSelectPart(selectParts, part);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n handleGroupPartEvent(part, index, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.removeGroup(part, index);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n addGroup(partType, value) {\n let params = [value];\n if (partType === 'time') {\n params = ['$__interval', 'none'];\n }\n const partModel = sqlPart.create({ type: partType, params: params });\n\n if (partType === 'time') {\n // put timeGroup at start\n this.groupParts.splice(0, 0, partModel);\n } else {\n this.groupParts.push(partModel);\n }\n\n // add aggregates when adding group by\n for (const selectParts of this.selectParts) {\n if (!selectParts.some(part => part.def.type === 'aggregate')) {\n const aggregate = sqlPart.create({ type: 'aggregate', params: ['avg'] });\n selectParts.splice(1, 0, aggregate);\n if (!selectParts.some(part => part.def.type === 'alias')) {\n const alias = sqlPart.create({ type: 'alias', params: [selectParts[0].part.params[0]] });\n selectParts.push(alias);\n }\n }\n }\n\n this.updatePersistedParts();\n }\n\n removeGroup(part, index) {\n if (part.def.type === 'time') {\n // remove aggregations\n this.selectParts = _.map(this.selectParts, (s: any) => {\n return _.filter(s, (part: any) => {\n if (part.def.type === 'aggregate' || part.def.type === 'percentile') {\n return false;\n }\n return true;\n });\n });\n }\n\n this.groupParts.splice(index, 1);\n this.updatePersistedParts();\n }\n\n handleWherePartEvent(whereParts, part, evt, index) {\n switch (evt.name) {\n case 'get-param-options': {\n switch (evt.param.name) {\n case 'left':\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n case 'right':\n if (['int', 'bigint', 'double', 'datetime'].indexOf(part.datatype) > -1) {\n // don't do value lookups for numerical fields\n return this.$q.when([]);\n } else {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildValueQuery(part.params[0]))\n .then(\n this.transformToSegments({\n addTemplateVars: true,\n templateQuoter: (v: string) => {\n return this.queryModel.quoteLiteral(v);\n },\n })\n )\n .catch(this.handleQueryError.bind(this));\n }\n case 'op':\n return this.$q.when(this.uiSegmentSrv.newOperators(this.metaBuilder.getOperators(part.datatype)));\n default:\n return this.$q.when([]);\n }\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.datasource.metricFindQuery(this.metaBuilder.buildDatatypeQuery(part.params[0])).then((d: any) => {\n if (d.length === 1) {\n part.datatype = d[0].text;\n }\n });\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n // remove element\n whereParts.splice(index, 1);\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n getWhereOptions() {\n const options = [];\n if (this.queryModel.hasUnixEpochTimecolumn()) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'macro', value: '$__unixEpochFilter' }));\n } else {\n options.push(this.uiSegmentSrv.newSegment({ type: 'macro', value: '$__timeFilter' }));\n }\n options.push(this.uiSegmentSrv.newSegment({ type: 'expression', value: 'Expression' }));\n return this.$q.when(options);\n }\n\n addWhereAction(part, index) {\n switch (this.whereAdd.type) {\n case 'macro': {\n const partModel = sqlPart.create({ type: 'macro', name: this.whereAdd.value, params: [] });\n if (this.whereParts.length >= 1 && this.whereParts[0].def.type === 'macro') {\n // replace current macro\n this.whereParts[0] = partModel;\n } else {\n this.whereParts.splice(0, 0, partModel);\n }\n break;\n }\n default: {\n this.whereParts.push(sqlPart.create({ type: 'expression', params: ['value', '=', 'value'] }));\n }\n }\n\n this.updatePersistedParts();\n this.resetPlusButton(this.whereAdd);\n this.panelCtrl.refresh();\n }\n\n getGroupOptions() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('group'))\n .then(tags => {\n const options = [];\n if (!this.queryModel.hasTimeGroup()) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'time', value: 'time($__interval,none)' }));\n }\n for (const tag of tags) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'column', value: tag.text }));\n }\n return options;\n })\n .catch(this.handleQueryError.bind(this));\n }\n\n addGroupAction() {\n switch (this.groupAdd.value) {\n default: {\n this.addGroup(this.groupAdd.type, this.groupAdd.value);\n }\n }\n\n this.resetPlusButton(this.groupAdd);\n this.panelCtrl.refresh();\n }\n\n handleQueryError(err) {\n this.error = err.message || 'Failed to issue metric query';\n return [];\n }\n}\n","import { MysqlDatasource } from './datasource';\nimport { MysqlQueryCtrl } from './query_ctrl';\n\nclass MysqlConfigCtrl {\n static templateUrl = 'partials/config.html';\n}\n\nconst defaultQuery = `SELECT\n UNIX_TIMESTAMP() as time_sec,\n as text,\n as tags\n FROM
    \n WHERE $__timeFilter(time_column)\n ORDER BY ASC\n LIMIT 100\n `;\n\nclass MysqlAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n\n annotation: any;\n\n /** @ngInject */\n constructor() {\n this.annotation.rawQuery = this.annotation.rawQuery || defaultQuery;\n }\n}\n\nexport {\n MysqlDatasource,\n MysqlDatasource as Datasource,\n MysqlQueryCtrl as QueryCtrl,\n MysqlConfigCtrl as ConfigCtrl,\n MysqlAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\n\nexport default class ResponseParser {\n constructor(private $q) {}\n\n processQueryResult(res) {\n const data = [];\n\n if (!res.data.results) {\n return { data: data };\n }\n\n for (const key in res.data.results) {\n const queryRes = res.data.results[key];\n\n if (queryRes.series) {\n for (const series of queryRes.series) {\n data.push({\n target: series.name,\n datapoints: series.points,\n refId: queryRes.refId,\n meta: queryRes.meta,\n });\n }\n }\n\n if (queryRes.tables) {\n for (const table of queryRes.tables) {\n table.type = 'table';\n table.refId = queryRes.refId;\n table.meta = queryRes.meta;\n data.push(table);\n }\n }\n }\n\n return { data: data };\n }\n\n parseMetricFindQueryResult(refId, results) {\n if (!results || results.data.length === 0 || results.data.results[refId].meta.rowCount === 0) {\n return [];\n }\n\n const columns = results.data.results[refId].tables[0].columns;\n const rows = results.data.results[refId].tables[0].rows;\n const textColIndex = this.findColIndex(columns, '__text');\n const valueColIndex = this.findColIndex(columns, '__value');\n\n if (columns.length === 2 && textColIndex !== -1 && valueColIndex !== -1) {\n return this.transformToKeyValueList(rows, textColIndex, valueColIndex);\n }\n\n return this.transformToSimpleList(rows);\n }\n\n transformToKeyValueList(rows, textColIndex, valueColIndex) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n if (!this.containsKey(res, rows[i][textColIndex])) {\n res.push({\n text: rows[i][textColIndex],\n value: rows[i][valueColIndex],\n });\n }\n }\n\n return res;\n }\n\n transformToSimpleList(rows) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < rows[i].length; j++) {\n const value = rows[i][j];\n if (res.indexOf(value) === -1) {\n res.push(value);\n }\n }\n }\n\n return _.map(res, value => {\n return { text: value };\n });\n }\n\n findColIndex(columns, colName) {\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].text === colName) {\n return i;\n }\n }\n\n return -1;\n }\n\n containsKey(res, key) {\n for (let i = 0; i < res.length; i++) {\n if (res[i].text === key) {\n return true;\n }\n }\n return false;\n }\n\n transformAnnotationResponse(options, data) {\n const table = data.data.results[options.annotation.name].tables[0];\n\n let timeColumnIndex = -1;\n const titleColumnIndex = -1;\n let textColumnIndex = -1;\n let tagsColumnIndex = -1;\n\n for (let i = 0; i < table.columns.length; i++) {\n if (table.columns[i].text === 'time') {\n timeColumnIndex = i;\n } else if (table.columns[i].text === 'text') {\n textColumnIndex = i;\n } else if (table.columns[i].text === 'tags') {\n tagsColumnIndex = i;\n }\n }\n\n if (timeColumnIndex === -1) {\n return this.$q.reject({\n message: 'Missing mandatory time column in annotation query.',\n });\n }\n\n const list = [];\n for (let i = 0; i < table.rows.length; i++) {\n const row = table.rows[i];\n list.push({\n annotation: options.annotation,\n time: Math.floor(row[timeColumnIndex]),\n title: row[titleColumnIndex],\n text: row[textColumnIndex],\n tags: row[tagsColumnIndex] ? row[tagsColumnIndex].trim().split(/\\s*,\\s*/) : [],\n });\n }\n\n return list;\n }\n}\n","import _ from 'lodash';\n\nexport default class PostgresQuery {\n target: any;\n templateSrv: any;\n scopedVars: any;\n\n /** @ngInject */\n constructor(target, templateSrv?, scopedVars?) {\n this.target = target;\n this.templateSrv = templateSrv;\n this.scopedVars = scopedVars;\n\n target.format = target.format || 'time_series';\n target.timeColumn = target.timeColumn || 'time';\n target.metricColumn = target.metricColumn || 'none';\n\n target.group = target.group || [];\n target.where = target.where || [{ type: 'macro', name: '$__timeFilter', params: [] }];\n target.select = target.select || [[{ type: 'column', params: ['value'] }]];\n\n // handle pre query gui panels gracefully\n if (!('rawQuery' in this.target)) {\n if ('rawSql' in target) {\n // pre query gui panel\n target.rawQuery = true;\n } else {\n // new panel\n target.rawQuery = false;\n }\n }\n\n // give interpolateQueryStr access to this\n this.interpolateQueryStr = this.interpolateQueryStr.bind(this);\n }\n\n // remove identifier quoting from identifier to use in metadata queries\n unquoteIdentifier(value) {\n if (value[0] === '\"' && value[value.length - 1] === '\"') {\n return value.substring(1, value.length - 1).replace(/\"\"/g, '\"');\n } else {\n return value;\n }\n }\n\n quoteIdentifier(value) {\n return '\"' + String(value).replace(/\"/g, '\"\"') + '\"';\n }\n\n quoteLiteral(value) {\n return \"'\" + String(value).replace(/'/g, \"''\") + \"'\";\n }\n\n escapeLiteral(value) {\n return String(value).replace(/'/g, \"''\");\n }\n\n hasTimeGroup() {\n return _.find(this.target.group, (g: any) => g.type === 'time');\n }\n\n hasMetricColumn() {\n return this.target.metricColumn !== 'none';\n }\n\n interpolateQueryStr(value, variable, defaultFormatFn) {\n // if no multi or include all do not regexEscape\n if (!variable.multi && !variable.includeAll) {\n return this.escapeLiteral(value);\n }\n\n if (typeof value === 'string') {\n return this.quoteLiteral(value);\n }\n\n const escapedValues = _.map(value, this.quoteLiteral);\n return escapedValues.join(',');\n }\n\n render(interpolate?) {\n const target = this.target;\n\n // new query with no table set yet\n if (!this.target.rawQuery && !('table' in this.target)) {\n return '';\n }\n\n if (!target.rawQuery) {\n target.rawSql = this.buildQuery();\n }\n\n if (interpolate) {\n return this.templateSrv.replace(target.rawSql, this.scopedVars, this.interpolateQueryStr);\n } else {\n return target.rawSql;\n }\n }\n\n hasUnixEpochTimecolumn() {\n return ['int4', 'int8', 'float4', 'float8', 'numeric'].indexOf(this.target.timeColumnType) > -1;\n }\n\n buildTimeColumn(alias = true) {\n const timeGroup = this.hasTimeGroup();\n let query;\n let macro = '$__timeGroup';\n\n if (timeGroup) {\n let args;\n if (timeGroup.params.length > 1 && timeGroup.params[1] !== 'none') {\n args = timeGroup.params.join(',');\n } else {\n args = timeGroup.params[0];\n }\n if (this.hasUnixEpochTimecolumn()) {\n macro = '$__unixEpochGroup';\n }\n if (alias) {\n macro += 'Alias';\n }\n query = macro + '(' + this.target.timeColumn + ',' + args + ')';\n } else {\n query = this.target.timeColumn;\n if (alias) {\n query += ' AS \"time\"';\n }\n }\n\n return query;\n }\n\n buildMetricColumn() {\n if (this.hasMetricColumn()) {\n return this.target.metricColumn + ' AS metric';\n }\n\n return '';\n }\n\n buildValueColumns() {\n let query = '';\n for (const column of this.target.select) {\n query += ',\\n ' + this.buildValueColumn(column);\n }\n\n return query;\n }\n\n buildValueColumn(column) {\n let query = '';\n\n const columnName = _.find(column, (g: any) => g.type === 'column');\n query = columnName.params[0];\n\n const aggregate = _.find(column, (g: any) => g.type === 'aggregate' || g.type === 'percentile');\n const windows = _.find(column, (g: any) => g.type === 'window' || g.type === 'moving_window');\n\n if (aggregate) {\n const func = aggregate.params[0];\n switch (aggregate.type) {\n case 'aggregate':\n if (func === 'first' || func === 'last') {\n query = func + '(' + query + ',' + this.target.timeColumn + ')';\n } else {\n query = func + '(' + query + ')';\n }\n break;\n case 'percentile':\n query = func + '(' + aggregate.params[1] + ') WITHIN GROUP (ORDER BY ' + query + ')';\n break;\n }\n }\n\n if (windows) {\n const overParts = [];\n if (this.hasMetricColumn()) {\n overParts.push('PARTITION BY ' + this.target.metricColumn);\n }\n overParts.push('ORDER BY ' + this.buildTimeColumn(false));\n\n const over = overParts.join(' ');\n let curr: string;\n let prev: string;\n switch (windows.type) {\n case 'window':\n switch (windows.params[0]) {\n case 'delta':\n curr = query;\n prev = 'lag(' + curr + ') OVER (' + over + ')';\n query = curr + ' - ' + prev;\n break;\n case 'increase':\n curr = query;\n prev = 'lag(' + curr + ') OVER (' + over + ')';\n query = '(CASE WHEN ' + curr + ' >= ' + prev + ' THEN ' + curr + ' - ' + prev;\n query += ' WHEN ' + prev + ' IS NULL THEN NULL ELSE ' + curr + ' END)';\n break;\n case 'rate':\n let timeColumn = this.target.timeColumn;\n if (aggregate) {\n timeColumn = 'min(' + timeColumn + ')';\n }\n\n curr = query;\n prev = 'lag(' + curr + ') OVER (' + over + ')';\n query = '(CASE WHEN ' + curr + ' >= ' + prev + ' THEN ' + curr + ' - ' + prev;\n query += ' WHEN ' + prev + ' IS NULL THEN NULL ELSE ' + curr + ' END)';\n query += '/extract(epoch from ' + timeColumn + ' - lag(' + timeColumn + ') OVER (' + over + '))';\n break;\n default:\n query = windows.params[0] + '(' + query + ') OVER (' + over + ')';\n break;\n }\n break;\n case 'moving_window':\n query = windows.params[0] + '(' + query + ') OVER (' + over + ' ROWS ' + windows.params[1] + ' PRECEDING)';\n break;\n }\n }\n\n const alias = _.find(column, (g: any) => g.type === 'alias');\n if (alias) {\n query += ' AS ' + this.quoteIdentifier(alias.params[0]);\n }\n\n return query;\n }\n\n buildWhereClause() {\n let query = '';\n const conditions = _.map(this.target.where, (tag, index) => {\n switch (tag.type) {\n case 'macro':\n return tag.name + '(' + this.target.timeColumn + ')';\n break;\n case 'expression':\n return tag.params.join(' ');\n break;\n }\n });\n\n if (conditions.length > 0) {\n query = '\\nWHERE\\n ' + conditions.join(' AND\\n ');\n }\n\n return query;\n }\n\n buildGroupClause() {\n let query = '';\n let groupSection = '';\n\n for (let i = 0; i < this.target.group.length; i++) {\n const part = this.target.group[i];\n if (i > 0) {\n groupSection += ', ';\n }\n if (part.type === 'time') {\n groupSection += '1';\n } else {\n groupSection += part.params[0];\n }\n }\n\n if (groupSection.length) {\n query = '\\nGROUP BY ' + groupSection;\n if (this.hasMetricColumn()) {\n query += ',2';\n }\n }\n return query;\n }\n\n buildQuery() {\n let query = 'SELECT';\n\n query += '\\n ' + this.buildTimeColumn();\n if (this.hasMetricColumn()) {\n query += ',\\n ' + this.buildMetricColumn();\n }\n query += this.buildValueColumns();\n\n query += '\\nFROM ' + this.target.table;\n\n query += this.buildWhereClause();\n query += this.buildGroupClause();\n\n query += '\\nORDER BY 1';\n if (this.hasMetricColumn()) {\n query += ',2';\n }\n\n return query;\n }\n}\n","import _ from 'lodash';\nimport ResponseParser from './response_parser';\nimport PostgresQuery from 'app/plugins/datasource/postgres/postgres_query';\n\nexport class PostgresDatasource {\n id: any;\n name: any;\n jsonData: any;\n responseParser: ResponseParser;\n queryModel: PostgresQuery;\n interval: string;\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private $q, private templateSrv, private timeSrv) {\n this.name = instanceSettings.name;\n this.id = instanceSettings.id;\n this.jsonData = instanceSettings.jsonData;\n this.responseParser = new ResponseParser(this.$q);\n this.queryModel = new PostgresQuery({});\n this.interval = (instanceSettings.jsonData || {}).timeInterval || '1m';\n }\n\n interpolateVariable = (value, variable) => {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return this.queryModel.quoteLiteral(value);\n } else {\n return value;\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const quotedValues = _.map(value, v => {\n return this.queryModel.quoteLiteral(v);\n });\n return quotedValues.join(',');\n };\n\n query(options) {\n const queries = _.filter(options.targets, target => {\n return target.hide !== true;\n }).map(target => {\n const queryModel = new PostgresQuery(target, this.templateSrv, options.scopedVars);\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n rawSql: queryModel.render(this.interpolateVariable),\n format: target.format,\n };\n });\n\n if (queries.length === 0) {\n return this.$q.when({ data: [] });\n }\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: queries,\n },\n })\n .then(this.responseParser.processQueryResult);\n }\n\n annotationQuery(options) {\n if (!options.annotation.rawQuery) {\n return this.$q.reject({\n message: 'Query missing in annotation definition',\n });\n }\n\n const query = {\n refId: options.annotation.name,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(options.annotation.rawQuery, options.scopedVars, this.interpolateVariable),\n format: 'table',\n };\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [query],\n },\n })\n .then(data => this.responseParser.transformAnnotationResponse(options, data));\n }\n\n metricFindQuery(query, optionalOptions) {\n let refId = 'tempvar';\n if (optionalOptions && optionalOptions.variable && optionalOptions.variable.name) {\n refId = optionalOptions.variable.name;\n }\n\n const interpolatedQuery = {\n refId: refId,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(query, {}, this.interpolateVariable),\n format: 'table',\n };\n\n const range = this.timeSrv.timeRange();\n const data = {\n queries: [interpolatedQuery],\n from: range.from.valueOf().toString(),\n to: range.to.valueOf().toString(),\n };\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: data,\n })\n .then(data => this.responseParser.parseMetricFindQueryResult(refId, data));\n }\n\n getVersion() {\n return this.metricFindQuery(\"SELECT current_setting('server_version_num')::int/100\", {});\n }\n\n getTimescaleDBVersion() {\n return this.metricFindQuery(\"SELECT extversion FROM pg_extension WHERE extname = 'timescaledb'\", {});\n }\n\n testDatasource() {\n return this.metricFindQuery('SELECT 1', {})\n .then(res => {\n return { status: 'success', message: 'Database Connection OK' };\n })\n .catch(err => {\n console.log(err);\n if (err.data && err.data.message) {\n return { status: 'error', message: err.data.message };\n } else {\n return { status: 'error', message: err.status };\n }\n });\n }\n}\n","export class PostgresMetaQuery {\n constructor(private target, private queryModel) {}\n\n getOperators(datatype: string) {\n switch (datatype) {\n case 'float4':\n case 'float8': {\n return ['=', '!=', '<', '<=', '>', '>='];\n }\n case 'text':\n case 'varchar':\n case 'char': {\n return ['=', '!=', '<', '<=', '>', '>=', 'IN', 'NOT IN', 'LIKE', 'NOT LIKE', '~', '~*', '!~', '!~*'];\n }\n default: {\n return ['=', '!=', '<', '<=', '>', '>=', 'IN', 'NOT IN'];\n }\n }\n }\n\n // quote identifier as literal to use in metadata queries\n quoteIdentAsLiteral(value) {\n return this.queryModel.quoteLiteral(this.queryModel.unquoteIdentifier(value));\n }\n\n findMetricTable() {\n // query that returns first table found that has a timestamp(tz) column and a float column\n let query = `\nSELECT\n\tquote_ident(table_name) as table_name,\n\t( SELECT\n\t quote_ident(column_name) as column_name\n\t FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n udt_name IN ('timestamptz','timestamp')\n ORDER BY ordinal_position LIMIT 1\n ) AS time_column,\n ( SELECT\n quote_ident(column_name) AS column_name\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n udt_name='float8'\n ORDER BY ordinal_position LIMIT 1\n ) AS value_column\nFROM information_schema.tables t\nWHERE `;\n query += this.buildSchemaConstraint();\n query += ` AND\n EXISTS\n ( SELECT 1\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n udt_name IN ('timestamptz','timestamp')\n ) AND\n EXISTS\n ( SELECT 1\n FROM information_schema.columns c\n WHERE\n c.table_schema = t.table_schema AND\n c.table_name = t.table_name AND\n udt_name='float8'\n )\nLIMIT 1\n;`;\n return query;\n }\n\n buildSchemaConstraint() {\n const query = `\ntable_schema IN (\n SELECT\n CASE WHEN trim(s[i]) = '\"$user\"' THEN user ELSE trim(s[i]) END\n FROM\n generate_series(\n array_lower(string_to_array(current_setting('search_path'),','),1),\n array_upper(string_to_array(current_setting('search_path'),','),1)\n ) as i,\n string_to_array(current_setting('search_path'),',') s\n)`;\n return query;\n }\n\n buildTableConstraint(table: string) {\n let query = '';\n\n // check for schema qualified table\n if (table.includes('.')) {\n const parts = table.split('.');\n query = 'table_schema = ' + this.quoteIdentAsLiteral(parts[0]);\n query += ' AND table_name = ' + this.quoteIdentAsLiteral(parts[1]);\n return query;\n } else {\n query = this.buildSchemaConstraint();\n query += ' AND table_name = ' + this.quoteIdentAsLiteral(table);\n\n return query;\n }\n }\n\n buildTableQuery() {\n let query = 'SELECT quote_ident(table_name) FROM information_schema.tables WHERE ';\n query += this.buildSchemaConstraint();\n query += ' ORDER BY table_name';\n return query;\n }\n\n buildColumnQuery(type?: string) {\n let query = 'SELECT quote_ident(column_name) FROM information_schema.columns WHERE ';\n query += this.buildTableConstraint(this.target.table);\n\n switch (type) {\n case 'time': {\n query +=\n \" AND data_type IN ('timestamp without time zone','timestamp with time zone','bigint','integer','double precision','real')\";\n break;\n }\n case 'metric': {\n query += \" AND data_type IN ('text','character','character varying')\";\n break;\n }\n case 'value': {\n query += \" AND data_type IN ('bigint','integer','double precision','real')\";\n query += ' AND column_name <> ' + this.quoteIdentAsLiteral(this.target.timeColumn);\n break;\n }\n case 'group': {\n query += \" AND data_type IN ('text','character','character varying')\";\n break;\n }\n }\n\n query += ' ORDER BY column_name';\n\n return query;\n }\n\n buildValueQuery(column: string) {\n let query = 'SELECT DISTINCT quote_literal(' + column + ')';\n query += ' FROM ' + this.target.table;\n query += ' WHERE $__timeFilter(' + this.target.timeColumn + ')';\n query += ' AND ' + column + ' IS NOT NULL';\n query += ' ORDER BY 1 LIMIT 100';\n return query;\n }\n\n buildDatatypeQuery(column: string) {\n let query = 'SELECT udt_name FROM information_schema.columns WHERE ';\n query += this.buildTableConstraint(this.target.table);\n query += ' AND column_name = ' + this.quoteIdentAsLiteral(column);\n return query;\n }\n\n buildAggregateQuery() {\n let query = 'SELECT DISTINCT proname FROM pg_aggregate ';\n query += 'INNER JOIN pg_proc ON pg_aggregate.aggfnoid = pg_proc.oid ';\n query += 'INNER JOIN pg_type ON pg_type.oid=pg_proc.prorettype ';\n query += \"WHERE pronargs=1 AND typname IN ('float8') AND aggkind='n' ORDER BY 1\";\n return query;\n }\n}\n","import { SqlPartDef, SqlPart } from 'app/core/components/sql_part/sql_part';\n\nconst index = [];\n\nfunction createPart(part): any {\n const def = index[part.type];\n if (!def) {\n return null;\n }\n\n return new SqlPart(part, def);\n}\n\nfunction register(options: any) {\n index[options.type] = new SqlPartDef(options);\n}\n\nregister({\n type: 'column',\n style: 'label',\n params: [{ type: 'column', dynamicLookup: true }],\n defaultParams: ['value'],\n});\n\nregister({\n type: 'expression',\n style: 'expression',\n label: 'Expr:',\n params: [\n { name: 'left', type: 'string', dynamicLookup: true },\n { name: 'op', type: 'string', dynamicLookup: true },\n { name: 'right', type: 'string', dynamicLookup: true },\n ],\n defaultParams: ['value', '=', 'value'],\n});\n\nregister({\n type: 'macro',\n style: 'label',\n label: 'Macro:',\n params: [],\n defaultParams: [],\n});\n\nregister({\n type: 'aggregate',\n style: 'label',\n params: [\n {\n name: 'name',\n type: 'string',\n options: ['avg', 'count', 'min', 'max', 'sum', 'stddev', 'variance'],\n },\n ],\n defaultParams: ['avg'],\n});\n\nregister({\n type: 'percentile',\n label: 'Aggregate:',\n style: 'label',\n params: [\n {\n name: 'name',\n type: 'string',\n options: ['percentile_cont', 'percentile_disc'],\n },\n {\n name: 'fraction',\n type: 'number',\n options: ['0.5', '0.75', '0.9', '0.95', '0.99'],\n },\n ],\n defaultParams: ['percentile_cont', '0.95'],\n});\n\nregister({\n type: 'alias',\n style: 'label',\n params: [{ name: 'name', type: 'string', quote: 'double' }],\n defaultParams: ['alias'],\n});\n\nregister({\n type: 'time',\n style: 'function',\n label: 'time',\n params: [\n {\n name: 'interval',\n type: 'interval',\n options: ['$__interval', '1s', '10s', '1m', '5m', '10m', '15m', '1h'],\n },\n {\n name: 'fill',\n type: 'string',\n options: ['none', 'NULL', 'previous', '0'],\n },\n ],\n defaultParams: ['$__interval', 'none'],\n});\n\nregister({\n type: 'window',\n style: 'label',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['delta', 'increase', 'rate', 'sum'],\n },\n ],\n defaultParams: ['increase'],\n});\n\nregister({\n type: 'moving_window',\n style: 'label',\n label: 'Moving Window:',\n params: [\n {\n name: 'function',\n type: 'string',\n options: ['avg'],\n },\n {\n name: 'window_size',\n type: 'number',\n options: ['3', '5', '7', '10', '20'],\n },\n ],\n defaultParams: ['avg', '5'],\n});\n\nexport default {\n create: createPart,\n};\n","import _ from 'lodash';\nimport appEvents from 'app/core/app_events';\nimport { PostgresMetaQuery } from './meta_query';\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport { SqlPart } from 'app/core/components/sql_part/sql_part';\nimport PostgresQuery from './postgres_query';\nimport sqlPart from './sql_part';\n\nexport interface QueryMeta {\n sql: string;\n}\n\nconst defaultQuery = `SELECT\n $__time(time_column),\n value1\nFROM\n metric_table\nWHERE\n $__timeFilter(time_column)\n`;\n\nexport class PostgresQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n showLastQuerySQL: boolean;\n formats: any[];\n queryModel: PostgresQuery;\n metaBuilder: PostgresMetaQuery;\n lastQueryMeta: QueryMeta;\n lastQueryError: string;\n showHelp: boolean;\n tableSegment: any;\n whereAdd: any;\n timeColumnSegment: any;\n metricColumnSegment: any;\n selectMenu: any[];\n selectParts: SqlPart[][];\n groupParts: SqlPart[];\n whereParts: SqlPart[];\n groupAdd: any;\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv, private $q, private uiSegmentSrv) {\n super($scope, $injector);\n this.target = this.target;\n this.queryModel = new PostgresQuery(this.target, templateSrv, this.panel.scopedVars);\n this.metaBuilder = new PostgresMetaQuery(this.target, this.queryModel);\n this.updateProjection();\n\n this.formats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];\n\n if (!this.target.rawSql) {\n // special handling when in table panel\n if (this.panelCtrl.panel.type === 'table') {\n this.target.format = 'table';\n this.target.rawSql = 'SELECT 1';\n this.target.rawQuery = true;\n } else {\n this.target.rawSql = defaultQuery;\n this.datasource.metricFindQuery(this.metaBuilder.findMetricTable()).then(result => {\n if (result.length > 0) {\n this.target.table = result[0].text;\n let segment = this.uiSegmentSrv.newSegment(this.target.table);\n this.tableSegment.html = segment.html;\n this.tableSegment.value = segment.value;\n\n this.target.timeColumn = result[1].text;\n segment = this.uiSegmentSrv.newSegment(this.target.timeColumn);\n this.timeColumnSegment.html = segment.html;\n this.timeColumnSegment.value = segment.value;\n\n this.target.timeColumnType = 'timestamp';\n this.target.select = [[{ type: 'column', params: [result[2].text] }]];\n this.updateProjection();\n this.panelCtrl.refresh();\n }\n });\n }\n }\n\n if (!this.target.table) {\n this.tableSegment = uiSegmentSrv.newSegment({ value: 'select table', fake: true });\n } else {\n this.tableSegment = uiSegmentSrv.newSegment(this.target.table);\n }\n\n this.timeColumnSegment = uiSegmentSrv.newSegment(this.target.timeColumn);\n this.metricColumnSegment = uiSegmentSrv.newSegment(this.target.metricColumn);\n\n this.buildSelectMenu();\n this.whereAdd = this.uiSegmentSrv.newPlusButton();\n this.groupAdd = this.uiSegmentSrv.newPlusButton();\n\n this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);\n this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);\n }\n\n updateProjection() {\n this.selectParts = _.map(this.target.select, (parts: any) => {\n return _.map(parts, sqlPart.create).filter(n => n);\n });\n this.whereParts = _.map(this.target.where, sqlPart.create).filter(n => n);\n this.groupParts = _.map(this.target.group, sqlPart.create).filter(n => n);\n }\n\n updatePersistedParts() {\n this.target.select = _.map(this.selectParts, selectParts => {\n return _.map(selectParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, params: part.params };\n });\n });\n this.target.where = _.map(this.whereParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, name: part.name, params: part.params };\n });\n this.target.group = _.map(this.groupParts, (part: any) => {\n return { type: part.def.type, datatype: part.datatype, params: part.params };\n });\n }\n\n buildSelectMenu() {\n this.selectMenu = [];\n const aggregates = {\n text: 'Aggregate Functions',\n value: 'aggregate',\n submenu: [\n { text: 'Average', value: 'avg' },\n { text: 'Count', value: 'count' },\n { text: 'Maximum', value: 'max' },\n { text: 'Minimum', value: 'min' },\n { text: 'Sum', value: 'sum' },\n { text: 'Standard deviation', value: 'stddev' },\n { text: 'Variance', value: 'variance' },\n ],\n };\n\n // first and last aggregate are timescaledb specific\n if (this.datasource.jsonData.timescaledb === true) {\n aggregates.submenu.push({ text: 'First', value: 'first' });\n aggregates.submenu.push({ text: 'Last', value: 'last' });\n }\n\n this.selectMenu.push(aggregates);\n\n // ordered set aggregates require postgres 9.4+\n if (this.datasource.jsonData.postgresVersion >= 904) {\n const aggregates2 = {\n text: 'Ordered-Set Aggregate Functions',\n value: 'percentile',\n submenu: [\n { text: 'Percentile (continuous)', value: 'percentile_cont' },\n { text: 'Percentile (discrete)', value: 'percentile_disc' },\n ],\n };\n this.selectMenu.push(aggregates2);\n }\n\n const windows = {\n text: 'Window Functions',\n value: 'window',\n submenu: [\n { text: 'Delta', value: 'delta' },\n { text: 'Increase', value: 'increase' },\n { text: 'Rate', value: 'rate' },\n { text: 'Sum', value: 'sum' },\n { text: 'Moving Average', value: 'avg', type: 'moving_window' },\n ],\n };\n this.selectMenu.push(windows);\n\n this.selectMenu.push({ text: 'Alias', value: 'alias' });\n this.selectMenu.push({ text: 'Column', value: 'column' });\n }\n\n toggleEditorMode() {\n if (this.target.rawQuery) {\n appEvents.emit('confirm-modal', {\n title: 'Warning',\n text2: 'Switching to query builder may overwrite your raw SQL.',\n icon: 'fa-exclamation',\n yesText: 'Switch',\n onConfirm: () => {\n this.target.rawQuery = !this.target.rawQuery;\n },\n });\n } else {\n this.target.rawQuery = !this.target.rawQuery;\n }\n }\n\n resetPlusButton(button) {\n const plusButton = this.uiSegmentSrv.newPlusButton();\n button.html = plusButton.html;\n button.value = plusButton.value;\n }\n\n getTableSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildTableQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n\n tableChanged() {\n this.target.table = this.tableSegment.value;\n this.target.where = [];\n this.target.group = [];\n this.updateProjection();\n\n const segment = this.uiSegmentSrv.newSegment('none');\n this.metricColumnSegment.html = segment.html;\n this.metricColumnSegment.value = segment.value;\n this.target.metricColumn = 'none';\n\n const task1 = this.datasource.metricFindQuery(this.metaBuilder.buildColumnQuery('time')).then(result => {\n // check if time column is still valid\n if (result.length > 0 && !_.find(result, (r: any) => r.text === this.target.timeColumn)) {\n const segment = this.uiSegmentSrv.newSegment(result[0].text);\n this.timeColumnSegment.html = segment.html;\n this.timeColumnSegment.value = segment.value;\n }\n return this.timeColumnChanged(false);\n });\n const task2 = this.datasource.metricFindQuery(this.metaBuilder.buildColumnQuery('value')).then(result => {\n if (result.length > 0) {\n this.target.select = [[{ type: 'column', params: [result[0].text] }]];\n this.updateProjection();\n }\n });\n\n this.$q.all([task1, task2]).then(() => {\n this.panelCtrl.refresh();\n });\n }\n\n getTimeColumnSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('time'))\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n\n timeColumnChanged(refresh?: boolean) {\n this.target.timeColumn = this.timeColumnSegment.value;\n return this.datasource.metricFindQuery(this.metaBuilder.buildDatatypeQuery(this.target.timeColumn)).then(result => {\n if (result.length === 1) {\n if (this.target.timeColumnType !== result[0].text) {\n this.target.timeColumnType = result[0].text;\n }\n let partModel;\n if (this.queryModel.hasUnixEpochTimecolumn()) {\n partModel = sqlPart.create({ type: 'macro', name: '$__unixEpochFilter', params: [] });\n } else {\n partModel = sqlPart.create({ type: 'macro', name: '$__timeFilter', params: [] });\n }\n\n if (this.whereParts.length >= 1 && this.whereParts[0].def.type === 'macro') {\n // replace current macro\n this.whereParts[0] = partModel;\n } else {\n this.whereParts.splice(0, 0, partModel);\n }\n }\n\n this.updatePersistedParts();\n if (refresh !== false) {\n this.panelCtrl.refresh();\n }\n });\n }\n\n getMetricColumnSegments() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('metric'))\n .then(this.transformToSegments({ addNone: true }))\n .catch(this.handleQueryError.bind(this));\n }\n\n metricColumnChanged() {\n this.target.metricColumn = this.metricColumnSegment.value;\n this.panelCtrl.refresh();\n }\n\n onDataReceived(dataList) {\n this.lastQueryMeta = null;\n this.lastQueryError = null;\n\n const anySeriesFromQuery = _.find(dataList, { refId: this.target.refId });\n if (anySeriesFromQuery) {\n this.lastQueryMeta = anySeriesFromQuery.meta;\n }\n }\n\n onDataError(err) {\n if (err.data && err.data.results) {\n const queryRes = err.data.results[this.target.refId];\n if (queryRes) {\n this.lastQueryMeta = queryRes.meta;\n this.lastQueryError = queryRes.error;\n }\n }\n }\n\n transformToSegments(config) {\n return results => {\n const segments = _.map(results, segment => {\n return this.uiSegmentSrv.newSegment({\n value: segment.text,\n expandable: segment.expandable,\n });\n });\n\n if (config.addTemplateVars) {\n for (const variable of this.templateSrv.variables) {\n let value;\n value = '$' + variable.name;\n if (config.templateQuoter && variable.multi === false) {\n value = config.templateQuoter(value);\n }\n\n segments.unshift(\n this.uiSegmentSrv.newSegment({\n type: 'template',\n value: value,\n expandable: true,\n })\n );\n }\n }\n\n if (config.addNone) {\n segments.unshift(this.uiSegmentSrv.newSegment({ type: 'template', value: 'none', expandable: true }));\n }\n\n return segments;\n };\n }\n\n findAggregateIndex(selectParts) {\n return _.findIndex(selectParts, (p: any) => p.def.type === 'aggregate' || p.def.type === 'percentile');\n }\n\n findWindowIndex(selectParts) {\n return _.findIndex(selectParts, (p: any) => p.def.type === 'window' || p.def.type === 'moving_window');\n }\n\n addSelectPart(selectParts, item, subItem) {\n let partType = item.value;\n if (subItem && subItem.type) {\n partType = subItem.type;\n }\n let partModel = sqlPart.create({ type: partType });\n if (subItem) {\n partModel.params[0] = subItem.value;\n }\n let addAlias = false;\n\n switch (partType) {\n case 'column':\n const parts = _.map(selectParts, (part: any) => {\n return sqlPart.create({ type: part.def.type, params: _.clone(part.params) });\n });\n this.selectParts.push(parts);\n break;\n case 'percentile':\n case 'aggregate':\n // add group by if no group by yet\n if (this.target.group.length === 0) {\n this.addGroup('time', '$__interval');\n }\n const aggIndex = this.findAggregateIndex(selectParts);\n if (aggIndex !== -1) {\n // replace current aggregation\n selectParts[aggIndex] = partModel;\n } else {\n selectParts.splice(1, 0, partModel);\n }\n if (!_.find(selectParts, (p: any) => p.def.type === 'alias')) {\n addAlias = true;\n }\n break;\n case 'moving_window':\n case 'window':\n const windowIndex = this.findWindowIndex(selectParts);\n if (windowIndex !== -1) {\n // replace current window function\n selectParts[windowIndex] = partModel;\n } else {\n const aggIndex = this.findAggregateIndex(selectParts);\n if (aggIndex !== -1) {\n selectParts.splice(aggIndex + 1, 0, partModel);\n } else {\n selectParts.splice(1, 0, partModel);\n }\n }\n if (!_.find(selectParts, (p: any) => p.def.type === 'alias')) {\n addAlias = true;\n }\n break;\n case 'alias':\n addAlias = true;\n break;\n }\n\n if (addAlias) {\n // set initial alias name to column name\n partModel = sqlPart.create({ type: 'alias', params: [selectParts[0].params[0].replace(/\"/g, '')] });\n if (selectParts[selectParts.length - 1].def.type === 'alias') {\n selectParts[selectParts.length - 1] = partModel;\n } else {\n selectParts.push(partModel);\n }\n }\n\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n }\n\n removeSelectPart(selectParts, part) {\n if (part.def.type === 'column') {\n // remove all parts of column unless its last column\n if (this.selectParts.length > 1) {\n const modelsIndex = _.indexOf(this.selectParts, selectParts);\n this.selectParts.splice(modelsIndex, 1);\n }\n } else {\n const partIndex = _.indexOf(selectParts, part);\n selectParts.splice(partIndex, 1);\n }\n\n this.updatePersistedParts();\n }\n\n handleSelectPartEvent(selectParts, part, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n switch (part.def.type) {\n case 'aggregate':\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildAggregateQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n case 'column':\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('value'))\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.removeSelectPart(selectParts, part);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n handleGroupPartEvent(part, index, evt) {\n switch (evt.name) {\n case 'get-param-options': {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n this.removeGroup(part, index);\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n addGroup(partType, value) {\n let params = [value];\n if (partType === 'time') {\n params = ['$__interval', 'none'];\n }\n const partModel = sqlPart.create({ type: partType, params: params });\n\n if (partType === 'time') {\n // put timeGroup at start\n this.groupParts.splice(0, 0, partModel);\n } else {\n this.groupParts.push(partModel);\n }\n\n // add aggregates when adding group by\n for (const selectParts of this.selectParts) {\n if (!selectParts.some(part => part.def.type === 'aggregate')) {\n const aggregate = sqlPart.create({ type: 'aggregate', params: ['avg'] });\n selectParts.splice(1, 0, aggregate);\n if (!selectParts.some(part => part.def.type === 'alias')) {\n const alias = sqlPart.create({ type: 'alias', params: [selectParts[0].part.params[0]] });\n selectParts.push(alias);\n }\n }\n }\n\n this.updatePersistedParts();\n }\n\n removeGroup(part, index) {\n if (part.def.type === 'time') {\n // remove aggregations\n this.selectParts = _.map(this.selectParts, (s: any) => {\n return _.filter(s, (part: any) => {\n if (part.def.type === 'aggregate' || part.def.type === 'percentile') {\n return false;\n }\n return true;\n });\n });\n }\n\n this.groupParts.splice(index, 1);\n this.updatePersistedParts();\n }\n\n handleWherePartEvent(whereParts, part, evt, index) {\n switch (evt.name) {\n case 'get-param-options': {\n switch (evt.param.name) {\n case 'left':\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery())\n .then(this.transformToSegments({}))\n .catch(this.handleQueryError.bind(this));\n case 'right':\n if (['int4', 'int8', 'float4', 'float8', 'timestamp', 'timestamptz'].indexOf(part.datatype) > -1) {\n // don't do value lookups for numerical fields\n return this.$q.when([]);\n } else {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildValueQuery(part.params[0]))\n .then(\n this.transformToSegments({\n addTemplateVars: true,\n templateQuoter: (v: string) => {\n return this.queryModel.quoteLiteral(v);\n },\n })\n )\n .catch(this.handleQueryError.bind(this));\n }\n case 'op':\n return this.$q.when(this.uiSegmentSrv.newOperators(this.metaBuilder.getOperators(part.datatype)));\n default:\n return this.$q.when([]);\n }\n }\n case 'part-param-changed': {\n this.updatePersistedParts();\n this.datasource.metricFindQuery(this.metaBuilder.buildDatatypeQuery(part.params[0])).then((d: any) => {\n if (d.length === 1) {\n part.datatype = d[0].text;\n }\n });\n this.panelCtrl.refresh();\n break;\n }\n case 'action': {\n // remove element\n whereParts.splice(index, 1);\n this.updatePersistedParts();\n this.panelCtrl.refresh();\n break;\n }\n case 'get-part-actions': {\n return this.$q.when([{ text: 'Remove', value: 'remove-part' }]);\n }\n }\n }\n\n getWhereOptions() {\n const options = [];\n if (this.queryModel.hasUnixEpochTimecolumn()) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'macro', value: '$__unixEpochFilter' }));\n } else {\n options.push(this.uiSegmentSrv.newSegment({ type: 'macro', value: '$__timeFilter' }));\n }\n options.push(this.uiSegmentSrv.newSegment({ type: 'expression', value: 'Expression' }));\n return this.$q.when(options);\n }\n\n addWhereAction(part, index) {\n switch (this.whereAdd.type) {\n case 'macro': {\n const partModel = sqlPart.create({ type: 'macro', name: this.whereAdd.value, params: [] });\n if (this.whereParts.length >= 1 && this.whereParts[0].def.type === 'macro') {\n // replace current macro\n this.whereParts[0] = partModel;\n } else {\n this.whereParts.splice(0, 0, partModel);\n }\n break;\n }\n default: {\n this.whereParts.push(sqlPart.create({ type: 'expression', params: ['value', '=', 'value'] }));\n }\n }\n\n this.updatePersistedParts();\n this.resetPlusButton(this.whereAdd);\n this.panelCtrl.refresh();\n }\n\n getGroupOptions() {\n return this.datasource\n .metricFindQuery(this.metaBuilder.buildColumnQuery('group'))\n .then(tags => {\n const options = [];\n if (!this.queryModel.hasTimeGroup()) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'time', value: 'time($__interval,none)' }));\n }\n for (const tag of tags) {\n options.push(this.uiSegmentSrv.newSegment({ type: 'column', value: tag.text }));\n }\n return options;\n })\n .catch(this.handleQueryError.bind(this));\n }\n\n addGroupAction() {\n switch (this.groupAdd.value) {\n default: {\n this.addGroup(this.groupAdd.type, this.groupAdd.value);\n }\n }\n\n this.resetPlusButton(this.groupAdd);\n this.panelCtrl.refresh();\n }\n\n handleQueryError(err) {\n this.error = err.message || 'Failed to issue metric query';\n return [];\n }\n}\n","import { PostgresDatasource } from './datasource';\nimport { PostgresQueryCtrl } from './query_ctrl';\nimport { PostgresConfigCtrl } from './config_ctrl';\n\nconst defaultQuery = `SELECT\n extract(epoch from time_column) AS time,\n text_column as text,\n tags_column as tags\nFROM\n metric_table\nWHERE\n $__timeFilter(time_column)\n`;\n\nclass PostgresAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n\n annotation: any;\n\n /** @ngInject */\n constructor() {\n this.annotation.rawQuery = this.annotation.rawQuery || defaultQuery;\n }\n}\n\nexport {\n PostgresDatasource,\n PostgresDatasource as Datasource,\n PostgresQueryCtrl as QueryCtrl,\n PostgresConfigCtrl as ConfigCtrl,\n PostgresAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\nimport { SyntheticEvent } from 'react';\n\nexport class PostgresConfigCtrl {\n static templateUrl = 'partials/config.html';\n\n current: any;\n datasourceSrv: any;\n showTimescaleDBHelp: boolean;\n\n /** @ngInject */\n constructor($scope, datasourceSrv) {\n this.datasourceSrv = datasourceSrv;\n this.current.jsonData.sslmode = this.current.jsonData.sslmode || 'verify-full';\n this.current.jsonData.postgresVersion = this.current.jsonData.postgresVersion || 903;\n this.showTimescaleDBHelp = false;\n this.autoDetectFeatures();\n }\n\n autoDetectFeatures() {\n if (!this.current.id) {\n return;\n }\n\n this.datasourceSrv.loadDatasource(this.current.name).then(ds => {\n return ds.getVersion().then(version => {\n version = Number(version[0].text);\n\n // timescaledb is only available for 9.6+\n if (version >= 906) {\n ds.getTimescaleDBVersion().then(version => {\n if (version.length === 1) {\n this.current.jsonData.timescaledb = true;\n }\n });\n }\n\n const major = Math.trunc(version / 100);\n const minor = version % 100;\n let name = String(major);\n if (version < 1000) {\n name = String(major) + '.' + String(minor);\n }\n if (!_.find(this.postgresVersions, (p: any) => p.value === version)) {\n this.postgresVersions.push({ name: name, value: version });\n }\n this.current.jsonData.postgresVersion = version;\n });\n });\n }\n\n toggleTimescaleDBHelp() {\n this.showTimescaleDBHelp = !this.showTimescaleDBHelp;\n }\n\n onPasswordReset = (event: SyntheticEvent) => {\n event.preventDefault();\n this.current.secureJsonFields.password = false;\n this.current.secureJsonData = this.current.secureJsonData || {};\n this.current.secureJsonData.password = '';\n };\n\n onPasswordChange = (event: SyntheticEvent) => {\n this.current.secureJsonData = this.current.secureJsonData || {};\n this.current.secureJsonData.password = event.currentTarget.value;\n };\n\n // the value portion is derived from postgres server_version_num/100\n postgresVersions = [\n { name: '9.3', value: 903 },\n { name: '9.4', value: 904 },\n { name: '9.5', value: 905 },\n { name: '9.6', value: 906 },\n { name: '10', value: 1000 },\n ];\n}\n","import _ from 'lodash';\n\nexport default class PrometheusMetricFindQuery {\n datasource: any;\n query: any;\n range: any;\n\n constructor(datasource, query, timeSrv) {\n this.datasource = datasource;\n this.query = query;\n this.range = timeSrv.timeRange();\n }\n\n process() {\n const labelNamesRegex = /^label_names\\(\\)\\s*$/;\n const labelValuesRegex = /^label_values\\((?:(.+),\\s*)?([a-zA-Z_][a-zA-Z0-9_]*)\\)\\s*$/;\n const metricNamesRegex = /^metrics\\((.+)\\)\\s*$/;\n const queryResultRegex = /^query_result\\((.+)\\)\\s*$/;\n\n const labelNamesQuery = this.query.match(labelNamesRegex);\n if (labelNamesQuery) {\n return this.labelNamesQuery();\n }\n\n const labelValuesQuery = this.query.match(labelValuesRegex);\n if (labelValuesQuery) {\n if (labelValuesQuery[1]) {\n return this.labelValuesQuery(labelValuesQuery[2], labelValuesQuery[1]);\n } else {\n return this.labelValuesQuery(labelValuesQuery[2], null);\n }\n }\n\n const metricNamesQuery = this.query.match(metricNamesRegex);\n if (metricNamesQuery) {\n return this.metricNameQuery(metricNamesQuery[1]);\n }\n\n const queryResultQuery = this.query.match(queryResultRegex);\n if (queryResultQuery) {\n return this.queryResultQuery(queryResultQuery[1]);\n }\n\n // if query contains full metric name, return metric name and label list\n return this.metricNameAndLabelsQuery(this.query);\n }\n\n labelNamesQuery() {\n const url = '/api/v1/labels';\n return this.datasource.metadataRequest(url).then(result => {\n return _.map(result.data.data, value => {\n return { text: value };\n });\n });\n }\n\n labelValuesQuery(label, metric) {\n let url;\n\n if (!metric) {\n // return label values globally\n url = '/api/v1/label/' + label + '/values';\n\n return this.datasource.metadataRequest(url).then(result => {\n return _.map(result.data.data, value => {\n return { text: value };\n });\n });\n } else {\n const start = this.datasource.getPrometheusTime(this.range.from, false);\n const end = this.datasource.getPrometheusTime(this.range.to, true);\n url = '/api/v1/series?match[]=' + encodeURIComponent(metric) + '&start=' + start + '&end=' + end;\n\n return this.datasource.metadataRequest(url).then(result => {\n const _labels = _.map(result.data.data, metric => {\n return metric[label] || '';\n }).filter(label => {\n return label !== '';\n });\n\n return _.uniq(_labels).map(metric => {\n return {\n text: metric,\n expandable: true,\n };\n });\n });\n }\n }\n\n metricNameQuery(metricFilterPattern) {\n const url = '/api/v1/label/__name__/values';\n\n return this.datasource.metadataRequest(url).then(result => {\n return _.chain(result.data.data)\n .filter(metricName => {\n const r = new RegExp(metricFilterPattern);\n return r.test(metricName);\n })\n .map(matchedMetricName => {\n return {\n text: matchedMetricName,\n expandable: true,\n };\n })\n .value();\n });\n }\n\n queryResultQuery(query) {\n const end = this.datasource.getPrometheusTime(this.range.to, true);\n return this.datasource.performInstantQuery({ expr: query }, end).then(result => {\n return _.map(result.data.data.result, metricData => {\n let text = metricData.metric.__name__ || '';\n delete metricData.metric.__name__;\n text +=\n '{' +\n _.map(metricData.metric, (v, k) => {\n return k + '=\"' + v + '\"';\n }).join(',') +\n '}';\n text += ' ' + metricData.value[1] + ' ' + metricData.value[0] * 1000;\n\n return {\n text: text,\n expandable: true,\n };\n });\n });\n }\n\n metricNameAndLabelsQuery(query) {\n const start = this.datasource.getPrometheusTime(this.range.from, false);\n const end = this.datasource.getPrometheusTime(this.range.to, true);\n const url = '/api/v1/series?match[]=' + encodeURIComponent(query) + '&start=' + start + '&end=' + end;\n\n const self = this;\n return this.datasource.metadataRequest(url).then(result => {\n return _.map(result.data.data, metric => {\n return {\n text: self.datasource.getOriginalMetricName(metric),\n expandable: true,\n };\n });\n });\n }\n}\n","import _ from 'lodash';\nimport TableModel from 'app/core/table_model';\nimport { TimeSeries, FieldType } from '@grafana/ui';\n\nexport class ResultTransformer {\n constructor(private templateSrv) {}\n\n transform(response: any, options: any): any[] {\n const prometheusResult = response.data.data.result;\n\n if (options.format === 'table') {\n return [\n this.transformMetricDataToTable(\n prometheusResult,\n options.responseListLength,\n options.refId,\n options.valueWithRefId\n ),\n ];\n } else if (prometheusResult && options.format === 'heatmap') {\n let seriesList = [];\n for (const metricData of prometheusResult) {\n seriesList.push(this.transformMetricData(metricData, options, options.start, options.end));\n }\n seriesList.sort(sortSeriesByLabel);\n seriesList = this.transformToHistogramOverTime(seriesList);\n return seriesList;\n } else if (prometheusResult) {\n const seriesList = [];\n for (const metricData of prometheusResult) {\n if (response.data.data.resultType === 'matrix') {\n seriesList.push(this.transformMetricData(metricData, options, options.start, options.end));\n } else if (response.data.data.resultType === 'vector') {\n seriesList.push(this.transformInstantMetricData(metricData, options));\n }\n }\n return seriesList;\n }\n return [];\n }\n\n transformMetricData(metricData, options, start, end) {\n const dps = [];\n let metricLabel = null;\n\n metricLabel = this.createMetricLabel(metricData.metric, options);\n\n const stepMs = parseInt(options.step, 10) * 1000;\n let baseTimestamp = start * 1000;\n\n if (metricData.values === undefined) {\n throw new Error('Prometheus heatmap error: data should be a time series');\n }\n\n for (const value of metricData.values) {\n let dpValue = parseFloat(value[1]);\n if (_.isNaN(dpValue)) {\n dpValue = null;\n }\n\n const timestamp = parseFloat(value[0]) * 1000;\n for (let t = baseTimestamp; t < timestamp; t += stepMs) {\n dps.push([null, t]);\n }\n baseTimestamp = timestamp + stepMs;\n dps.push([dpValue, timestamp]);\n }\n\n const endTimestamp = end * 1000;\n for (let t = baseTimestamp; t <= endTimestamp; t += stepMs) {\n dps.push([null, t]);\n }\n\n return {\n datapoints: dps,\n query: options.query,\n target: metricLabel,\n };\n }\n\n transformMetricDataToTable(md, resultCount: number, refId: string, valueWithRefId?: boolean) {\n const table = new TableModel();\n let i, j;\n const metricLabels = {};\n\n if (!md || md.length === 0) {\n return table;\n }\n\n // Collect all labels across all metrics\n _.each(md, series => {\n for (const label in series.metric) {\n if (!metricLabels.hasOwnProperty(label)) {\n metricLabels[label] = 1;\n }\n }\n });\n\n // Sort metric labels, create columns for them and record their index\n const sortedLabels = _.keys(metricLabels).sort();\n table.columns.push({ text: 'Time', type: FieldType.time });\n _.each(sortedLabels, (label, labelIndex) => {\n metricLabels[label] = labelIndex + 1;\n table.columns.push({ text: label, filterable: true });\n });\n const valueText = resultCount > 1 || valueWithRefId ? `Value #${refId}` : 'Value';\n table.columns.push({ text: valueText });\n\n // Populate rows, set value to empty string when label not present.\n _.each(md, series => {\n if (series.value) {\n series.values = [series.value];\n }\n if (series.values) {\n for (i = 0; i < series.values.length; i++) {\n const values = series.values[i];\n const reordered: any = [values[0] * 1000];\n if (series.metric) {\n for (j = 0; j < sortedLabels.length; j++) {\n const label = sortedLabels[j];\n if (series.metric.hasOwnProperty(label)) {\n reordered.push(series.metric[label]);\n } else {\n reordered.push('');\n }\n }\n }\n reordered.push(parseFloat(values[1]));\n table.rows.push(reordered);\n }\n }\n });\n\n return table;\n }\n\n transformInstantMetricData(md, options) {\n const dps = [];\n let metricLabel = null;\n metricLabel = this.createMetricLabel(md.metric, options);\n dps.push([parseFloat(md.value[1]), md.value[0] * 1000]);\n return { target: metricLabel, datapoints: dps, labels: md.metric };\n }\n\n createMetricLabel(labelData, options) {\n let label = '';\n if (_.isUndefined(options) || _.isEmpty(options.legendFormat)) {\n label = this.getOriginalMetricName(labelData);\n } else {\n label = this.renderTemplate(this.templateSrv.replace(options.legendFormat), labelData);\n }\n if (!label || label === '{}') {\n label = options.query;\n }\n return label;\n }\n\n renderTemplate(aliasPattern, aliasData) {\n const aliasRegex = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return aliasPattern.replace(aliasRegex, (match, g1) => {\n if (aliasData[g1]) {\n return aliasData[g1];\n }\n return g1;\n });\n }\n\n getOriginalMetricName(labelData) {\n const metricName = labelData.__name__ || '';\n delete labelData.__name__;\n const labelPart = _.map(_.toPairs(labelData), label => {\n return label[0] + '=\"' + label[1] + '\"';\n }).join(',');\n return metricName + '{' + labelPart + '}';\n }\n\n transformToHistogramOverTime(seriesList) {\n /* t1 = timestamp1, t2 = timestamp2 etc.\n t1 t2 t3 t1 t2 t3\n le10 10 10 0 => 10 10 0\n le20 20 10 30 => 10 0 30\n le30 30 10 35 => 10 0 5\n */\n for (let i = seriesList.length - 1; i > 0; i--) {\n const topSeries = seriesList[i].datapoints;\n const bottomSeries = seriesList[i - 1].datapoints;\n if (!topSeries || !bottomSeries) {\n throw new Error('Prometheus heatmap transform error: data should be a time series');\n }\n\n for (let j = 0; j < topSeries.length; j++) {\n const bottomPoint = bottomSeries[j] || [0];\n topSeries[j][0] -= bottomPoint[0];\n }\n }\n\n return seriesList;\n }\n}\n\nfunction sortSeriesByLabel(s1: TimeSeries, s2: TimeSeries): number {\n let le1, le2;\n\n try {\n // fail if not integer. might happen with bad queries\n le1 = parseHistogramLabel(s1.target);\n le2 = parseHistogramLabel(s2.target);\n } catch (err) {\n console.log(err);\n return 0;\n }\n\n if (le1 > le2) {\n return 1;\n }\n\n if (le1 < le2) {\n return -1;\n }\n\n return 0;\n}\n\nfunction parseHistogramLabel(le: string): number {\n if (le === '+Inf') {\n return +Infinity;\n }\n return Number(le);\n}\n","/* tslint:disable max-line-length */\n\nimport { CompletionItem } from 'app/types/explore';\n\nexport const RATE_RANGES: CompletionItem[] = [\n { label: '1m', sortText: '00:01:00' },\n { label: '5m', sortText: '00:05:00' },\n { label: '10m', sortText: '00:10:00' },\n { label: '30m', sortText: '00:30:00' },\n { label: '1h', sortText: '01:00:00' },\n { label: '1d', sortText: '24:00:00' },\n];\n\nexport const OPERATORS = ['by', 'group_left', 'group_right', 'ignoring', 'on', 'offset', 'without'];\n\nconst AGGREGATION_OPERATORS: CompletionItem[] = [\n {\n label: 'sum',\n insertText: 'sum',\n documentation: 'Calculate sum over dimensions',\n },\n {\n label: 'min',\n insertText: 'min',\n documentation: 'Select minimum over dimensions',\n },\n {\n label: 'max',\n insertText: 'max',\n documentation: 'Select maximum over dimensions',\n },\n {\n label: 'avg',\n insertText: 'avg',\n documentation: 'Calculate the average over dimensions',\n },\n {\n label: 'stddev',\n insertText: 'stddev',\n documentation: 'Calculate population standard deviation over dimensions',\n },\n {\n label: 'stdvar',\n insertText: 'stdvar',\n documentation: 'Calculate population standard variance over dimensions',\n },\n {\n label: 'count',\n insertText: 'count',\n documentation: 'Count number of elements in the vector',\n },\n {\n label: 'count_values',\n insertText: 'count_values',\n documentation: 'Count number of elements with the same value',\n },\n {\n label: 'bottomk',\n insertText: 'bottomk',\n documentation: 'Smallest k elements by sample value',\n },\n {\n label: 'topk',\n insertText: 'topk',\n documentation: 'Largest k elements by sample value',\n },\n {\n label: 'quantile',\n insertText: 'quantile',\n documentation: 'Calculate φ-quantile (0 ≤ φ ≤ 1) over dimensions',\n },\n];\n\nexport const FUNCTIONS = [\n ...AGGREGATION_OPERATORS,\n {\n insertText: 'abs',\n label: 'abs',\n detail: 'abs(v instant-vector)',\n documentation: 'Returns the input vector with all sample values converted to their absolute value.',\n },\n {\n insertText: 'absent',\n label: 'absent',\n detail: 'absent(v instant-vector)',\n documentation:\n 'Returns an empty vector if the vector passed to it has any elements and a 1-element vector with the value 1 if the vector passed to it has no elements. This is useful for alerting on when no time series exist for a given metric name and label combination.',\n },\n {\n insertText: 'ceil',\n label: 'ceil',\n detail: 'ceil(v instant-vector)',\n documentation: 'Rounds the sample values of all elements in `v` up to the nearest integer.',\n },\n {\n insertText: 'changes',\n label: 'changes',\n detail: 'changes(v range-vector)',\n documentation:\n 'For each input time series, `changes(v range-vector)` returns the number of times its value has changed within the provided time range as an instant vector.',\n },\n {\n insertText: 'clamp_max',\n label: 'clamp_max',\n detail: 'clamp_max(v instant-vector, max scalar)',\n documentation: 'Clamps the sample values of all elements in `v` to have an upper limit of `max`.',\n },\n {\n insertText: 'clamp_min',\n label: 'clamp_min',\n detail: 'clamp_min(v instant-vector, min scalar)',\n documentation: 'Clamps the sample values of all elements in `v` to have a lower limit of `min`.',\n },\n {\n insertText: 'count_scalar',\n label: 'count_scalar',\n detail: 'count_scalar(v instant-vector)',\n documentation:\n 'Returns the number of elements in a time series vector as a scalar. This is in contrast to the `count()` aggregation operator, which always returns a vector (an empty one if the input vector is empty) and allows grouping by labels via a `by` clause.',\n },\n {\n insertText: 'day_of_month',\n label: 'day_of_month',\n detail: 'day_of_month(v=vector(time()) instant-vector)',\n documentation: 'Returns the day of the month for each of the given times in UTC. Returned values are from 1 to 31.',\n },\n {\n insertText: 'day_of_week',\n label: 'day_of_week',\n detail: 'day_of_week(v=vector(time()) instant-vector)',\n documentation:\n 'Returns the day of the week for each of the given times in UTC. Returned values are from 0 to 6, where 0 means Sunday etc.',\n },\n {\n insertText: 'days_in_month',\n label: 'days_in_month',\n detail: 'days_in_month(v=vector(time()) instant-vector)',\n documentation:\n 'Returns number of days in the month for each of the given times in UTC. Returned values are from 28 to 31.',\n },\n {\n insertText: 'delta',\n label: 'delta',\n detail: 'delta(v range-vector)',\n documentation:\n 'Calculates the difference between the first and last value of each time series element in a range vector `v`, returning an instant vector with the given deltas and equivalent labels. The delta is extrapolated to cover the full time range as specified in the range vector selector, so that it is possible to get a non-integer result even if the sample values are all integers.',\n },\n {\n insertText: 'deriv',\n label: 'deriv',\n detail: 'deriv(v range-vector)',\n documentation:\n 'Calculates the per-second derivative of the time series in a range vector `v`, using simple linear regression.',\n },\n {\n insertText: 'drop_common_labels',\n label: 'drop_common_labels',\n detail: 'drop_common_labels(instant-vector)',\n documentation: 'Drops all labels that have the same name and value across all series in the input vector.',\n },\n {\n insertText: 'exp',\n label: 'exp',\n detail: 'exp(v instant-vector)',\n documentation:\n 'Calculates the exponential function for all elements in `v`.\\nSpecial cases are:\\n* `Exp(+Inf) = +Inf` \\n* `Exp(NaN) = NaN`',\n },\n {\n insertText: 'floor',\n label: 'floor',\n detail: 'floor(v instant-vector)',\n documentation: 'Rounds the sample values of all elements in `v` down to the nearest integer.',\n },\n {\n insertText: 'histogram_quantile',\n label: 'histogram_quantile',\n detail: 'histogram_quantile(φ float, b instant-vector)',\n documentation:\n 'Calculates the φ-quantile (0 ≤ φ ≤ 1) from the buckets `b` of a histogram. The samples in `b` are the counts of observations in each bucket. Each sample must have a label `le` where the label value denotes the inclusive upper bound of the bucket. (Samples without such a label are silently ignored.) The histogram metric type automatically provides time series with the `_bucket` suffix and the appropriate labels.',\n },\n {\n insertText: 'holt_winters',\n label: 'holt_winters',\n detail: 'holt_winters(v range-vector, sf scalar, tf scalar)',\n documentation:\n 'Produces a smoothed value for time series based on the range in `v`. The lower the smoothing factor `sf`, the more importance is given to old data. The higher the trend factor `tf`, the more trends in the data is considered. Both `sf` and `tf` must be between 0 and 1.',\n },\n {\n insertText: 'hour',\n label: 'hour',\n detail: 'hour(v=vector(time()) instant-vector)',\n documentation: 'Returns the hour of the day for each of the given times in UTC. Returned values are from 0 to 23.',\n },\n {\n insertText: 'idelta',\n label: 'idelta',\n detail: 'idelta(v range-vector)',\n documentation:\n 'Calculates the difference between the last two samples in the range vector `v`, returning an instant vector with the given deltas and equivalent labels.',\n },\n {\n insertText: 'increase',\n label: 'increase',\n detail: 'increase(v range-vector)',\n documentation:\n 'Calculates the increase in the time series in the range vector. Breaks in monotonicity (such as counter resets due to target restarts) are automatically adjusted for. The increase is extrapolated to cover the full time range as specified in the range vector selector, so that it is possible to get a non-integer result even if a counter increases only by integer increments.',\n },\n {\n insertText: 'irate',\n label: 'irate',\n detail: 'irate(v range-vector)',\n documentation:\n 'Calculates the per-second instant rate of increase of the time series in the range vector. This is based on the last two data points. Breaks in monotonicity (such as counter resets due to target restarts) are automatically adjusted for.',\n },\n {\n insertText: 'label_replace',\n label: 'label_replace',\n detail: 'label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)',\n documentation:\n \"For each timeseries in `v`, `label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)` matches the regular expression `regex` against the label `src_label`. If it matches, then the timeseries is returned with the label `dst_label` replaced by the expansion of `replacement`. `$1` is replaced with the first matching subgroup, `$2` with the second etc. If the regular expression doesn't match then the timeseries is returned unchanged.\",\n },\n {\n insertText: 'ln',\n label: 'ln',\n detail: 'ln(v instant-vector)',\n documentation:\n 'calculates the natural logarithm for all elements in `v`.\\nSpecial cases are:\\n * `ln(+Inf) = +Inf`\\n * `ln(0) = -Inf`\\n * `ln(x < 0) = NaN`\\n * `ln(NaN) = NaN`',\n },\n {\n insertText: 'log2',\n label: 'log2',\n detail: 'log2(v instant-vector)',\n documentation:\n 'Calculates the binary logarithm for all elements in `v`. The special cases are equivalent to those in `ln`.',\n },\n {\n insertText: 'log10',\n label: 'log10',\n detail: 'log10(v instant-vector)',\n documentation:\n 'Calculates the decimal logarithm for all elements in `v`. The special cases are equivalent to those in `ln`.',\n },\n {\n insertText: 'minute',\n label: 'minute',\n detail: 'minute(v=vector(time()) instant-vector)',\n documentation:\n 'Returns the minute of the hour for each of the given times in UTC. Returned values are from 0 to 59.',\n },\n {\n insertText: 'month',\n label: 'month',\n detail: 'month(v=vector(time()) instant-vector)',\n documentation:\n 'Returns the month of the year for each of the given times in UTC. Returned values are from 1 to 12, where 1 means January etc.',\n },\n {\n insertText: 'predict_linear',\n label: 'predict_linear',\n detail: 'predict_linear(v range-vector, t scalar)',\n documentation:\n 'Predicts the value of time series `t` seconds from now, based on the range vector `v`, using simple linear regression.',\n },\n {\n insertText: 'rate',\n label: 'rate',\n detail: 'rate(v range-vector)',\n documentation:\n \"Calculates the per-second average rate of increase of the time series in the range vector. Breaks in monotonicity (such as counter resets due to target restarts) are automatically adjusted for. Also, the calculation extrapolates to the ends of the time range, allowing for missed scrapes or imperfect alignment of scrape cycles with the range's time period.\",\n },\n {\n insertText: 'resets',\n label: 'resets',\n detail: 'resets(v range-vector)',\n documentation:\n 'For each input time series, `resets(v range-vector)` returns the number of counter resets within the provided time range as an instant vector. Any decrease in the value between two consecutive samples is interpreted as a counter reset.',\n },\n {\n insertText: 'round',\n label: 'round',\n detail: 'round(v instant-vector, to_nearest=1 scalar)',\n documentation:\n 'Rounds the sample values of all elements in `v` to the nearest integer. Ties are resolved by rounding up. The optional `to_nearest` argument allows specifying the nearest multiple to which the sample values should be rounded. This multiple may also be a fraction.',\n },\n {\n insertText: 'scalar',\n label: 'scalar',\n detail: 'scalar(v instant-vector)',\n documentation:\n 'Given a single-element input vector, `scalar(v instant-vector)` returns the sample value of that single element as a scalar. If the input vector does not have exactly one element, `scalar` will return `NaN`.',\n },\n {\n insertText: 'sort',\n label: 'sort',\n detail: 'sort(v instant-vector)',\n documentation: 'Returns vector elements sorted by their sample values, in ascending order.',\n },\n {\n insertText: 'sort_desc',\n label: 'sort_desc',\n detail: 'sort_desc(v instant-vector)',\n documentation: 'Returns vector elements sorted by their sample values, in descending order.',\n },\n {\n insertText: 'sqrt',\n label: 'sqrt',\n detail: 'sqrt(v instant-vector)',\n documentation: 'Calculates the square root of all elements in `v`.',\n },\n {\n insertText: 'time',\n label: 'time',\n detail: 'time()',\n documentation:\n 'Returns the number of seconds since January 1, 1970 UTC. Note that this does not actually return the current time, but the time at which the expression is to be evaluated.',\n },\n {\n insertText: 'vector',\n label: 'vector',\n detail: 'vector(s scalar)',\n documentation: 'Returns the scalar `s` as a vector with no labels.',\n },\n {\n insertText: 'year',\n label: 'year',\n detail: 'year(v=vector(time()) instant-vector)',\n documentation: 'Returns the year for each of the given times in UTC.',\n },\n {\n insertText: 'avg_over_time',\n label: 'avg_over_time',\n detail: 'avg_over_time(range-vector)',\n documentation: 'The average value of all points in the specified interval.',\n },\n {\n insertText: 'min_over_time',\n label: 'min_over_time',\n detail: 'min_over_time(range-vector)',\n documentation: 'The minimum value of all points in the specified interval.',\n },\n {\n insertText: 'max_over_time',\n label: 'max_over_time',\n detail: 'max_over_time(range-vector)',\n documentation: 'The maximum value of all points in the specified interval.',\n },\n {\n insertText: 'sum_over_time',\n label: 'sum_over_time',\n detail: 'sum_over_time(range-vector)',\n documentation: 'The sum of all values in the specified interval.',\n },\n {\n insertText: 'count_over_time',\n label: 'count_over_time',\n detail: 'count_over_time(range-vector)',\n documentation: 'The count of all values in the specified interval.',\n },\n {\n insertText: 'quantile_over_time',\n label: 'quantile_over_time',\n detail: 'quantile_over_time(scalar, range-vector)',\n documentation: 'The φ-quantile (0 ≤ φ ≤ 1) of the values in the specified interval.',\n },\n {\n insertText: 'stddev_over_time',\n label: 'stddev_over_time',\n detail: 'stddev_over_time(range-vector)',\n documentation: 'The population standard deviation of the values in the specified interval.',\n },\n {\n insertText: 'stdvar_over_time',\n label: 'stdvar_over_time',\n detail: 'stdvar_over_time(range-vector)',\n documentation: 'The population standard variance of the values in the specified interval.',\n },\n];\n\nconst tokenizer = {\n comment: {\n pattern: /(^|[^\\n])#.*/,\n lookbehind: true,\n },\n 'context-aggregation': {\n pattern: /((by|without)\\s*)\\([^)]*\\)/, // by ()\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /[^(),\\s][^,)]*[^),\\s]*/,\n alias: 'attr-name',\n },\n punctuation: /[()]/,\n },\n },\n 'context-labels': {\n pattern: /\\{[^}]*(?=})/,\n inside: {\n 'label-key': {\n pattern: /[a-z_]\\w*(?=\\s*(=|!=|=~|!~))/,\n alias: 'attr-name',\n },\n 'label-value': {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n alias: 'attr-value',\n },\n punctuation: /[{]/,\n },\n },\n function: new RegExp(`\\\\b(?:${FUNCTIONS.map(f => f.label).join('|')})(?=\\\\s*\\\\()`, 'i'),\n 'context-range': [\n {\n pattern: /\\[[^\\]]*(?=])/, // [1m]\n inside: {\n 'range-duration': {\n pattern: /\\b\\d+[smhdwy]\\b/i,\n alias: 'number',\n },\n },\n },\n {\n pattern: /(offset\\s+)\\w+/, // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b\\d+[smhdwy]\\b/i,\n alias: 'number',\n },\n },\n },\n ],\n number: /\\b-?\\d+((\\.\\d*)?([eE][+-]?\\d+)?)?\\b/,\n operator: new RegExp(`/[-+*/=%^~]|&&?|\\\\|?\\\\||!=?|<(?:=>?|<|>)?|>[>=]?|\\\\b(?:${OPERATORS.join('|')})\\\\b`, 'i'),\n punctuation: /[{};()`,.]/,\n};\n\nexport default tokenizer;\n","import _ from 'lodash';\nimport moment from 'moment';\n\nimport {\n CompletionItem,\n CompletionItemGroup,\n LanguageProvider,\n TypeaheadInput,\n TypeaheadOutput,\n} from 'app/types/explore';\n\nimport { parseSelector, processLabels } from './language_utils';\nimport PromqlSyntax, { FUNCTIONS, RATE_RANGES } from './promql';\n\nconst DEFAULT_KEYS = ['job', 'instance'];\nconst EMPTY_SELECTOR = '{}';\nconst HISTOGRAM_SELECTOR = '{le!=\"\"}'; // Returns all timeseries for histograms\nconst HISTORY_ITEM_COUNT = 5;\nconst HISTORY_COUNT_CUTOFF = 1000 * 60 * 60 * 24; // 24h\n\nconst wrapLabel = (label: string) => ({ label });\n\nconst setFunctionKind = (suggestion: CompletionItem): CompletionItem => {\n suggestion.kind = 'function';\n return suggestion;\n};\n\nexport function addHistoryMetadata(item: CompletionItem, history: any[]): CompletionItem {\n const cutoffTs = Date.now() - HISTORY_COUNT_CUTOFF;\n const historyForItem = history.filter(h => h.ts > cutoffTs && h.query === item.label);\n const count = historyForItem.length;\n const recent = historyForItem[0];\n let hint = `Queried ${count} times in the last 24h.`;\n if (recent) {\n const lastQueried = moment(recent.ts).fromNow();\n hint = `${hint} Last queried ${lastQueried}.`;\n }\n return {\n ...item,\n documentation: hint,\n };\n}\n\nexport default class PromQlLanguageProvider extends LanguageProvider {\n histogramMetrics?: string[];\n labelKeys?: { [index: string]: string[] }; // metric -> [labelKey,...]\n labelValues?: { [index: string]: { [index: string]: string[] } }; // metric -> labelKey -> [labelValue,...]\n metrics?: string[];\n startTask: Promise;\n\n constructor(datasource: any, initialValues?: any) {\n super();\n\n this.datasource = datasource;\n this.histogramMetrics = [];\n this.labelKeys = {};\n this.labelValues = {};\n this.metrics = [];\n\n Object.assign(this, initialValues);\n }\n // Strip syntax chars\n cleanText = s => s.replace(/[{}[\\]=\"(),!~+\\-*/^%]/g, '').trim();\n\n getSyntax() {\n return PromqlSyntax;\n }\n\n request = url => {\n return this.datasource.metadataRequest(url);\n };\n\n start = () => {\n if (!this.startTask) {\n this.startTask = this.fetchMetricNames().then(() => [this.fetchHistogramMetrics()]);\n }\n return this.startTask;\n };\n\n // Keep this DOM-free for testing\n provideCompletionItems({ prefix, wrapperClasses, text, value }: TypeaheadInput, context?: any): TypeaheadOutput {\n // Local text properties\n const empty = value.document.text.length === 0;\n const selectedLines = value.document.getTextsAtRangeAsArray(value.selection);\n const currentLine = selectedLines.length === 1 ? selectedLines[0] : null;\n const nextCharacter = currentLine ? currentLine.text[value.selection.anchorOffset] : null;\n\n // Syntax spans have 3 classes by default. More indicate a recognized token\n const tokenRecognized = wrapperClasses.length > 3;\n // Non-empty prefix, but not inside known token\n const prefixUnrecognized = prefix && !tokenRecognized;\n // Prevent suggestions in `function(|suffix)`\n const noSuffix = !nextCharacter || nextCharacter === ')';\n // Empty prefix is safe if it does not immediately folllow a complete expression and has no text after it\n const safeEmptyPrefix = prefix === '' && !text.match(/^[\\]})\\s]+$/) && noSuffix;\n // About to type next operand if preceded by binary operator\n const isNextOperand = text.match(/[+\\-*/^%]/);\n\n // Determine candidates by CSS context\n if (_.includes(wrapperClasses, 'context-range')) {\n // Suggestions for metric[|]\n return this.getRangeCompletionItems();\n } else if (_.includes(wrapperClasses, 'context-labels')) {\n // Suggestions for metric{|} and metric{foo=|}, as well as metric-independent label queries like {|}\n return this.getLabelCompletionItems.apply(this, arguments);\n } else if (_.includes(wrapperClasses, 'context-aggregation')) {\n // Suggestions for sum(metric) by (|)\n return this.getAggregationCompletionItems.apply(this, arguments);\n } else if (empty) {\n // Suggestions for empty query field\n return this.getEmptyCompletionItems(context || {});\n } else if (prefixUnrecognized || safeEmptyPrefix || isNextOperand) {\n // Show term suggestions in a couple of scenarios\n return this.getTermCompletionItems();\n }\n\n return {\n suggestions: [],\n };\n }\n\n getEmptyCompletionItems(context: any): TypeaheadOutput {\n const { history } = context;\n let suggestions: CompletionItemGroup[] = [];\n\n if (history && history.length > 0) {\n const historyItems = _.chain(history)\n .map(h => h.query.expr)\n .filter()\n .uniq()\n .take(HISTORY_ITEM_COUNT)\n .map(wrapLabel)\n .map(item => addHistoryMetadata(item, history))\n .value();\n\n suggestions.push({\n prefixMatch: true,\n skipSort: true,\n label: 'History',\n items: historyItems,\n });\n }\n\n const termCompletionItems = this.getTermCompletionItems();\n suggestions = [...suggestions, ...termCompletionItems.suggestions];\n\n return { suggestions };\n }\n\n getTermCompletionItems(): TypeaheadOutput {\n const { metrics } = this;\n const suggestions: CompletionItemGroup[] = [];\n\n suggestions.push({\n prefixMatch: true,\n label: 'Functions',\n items: FUNCTIONS.map(setFunctionKind),\n });\n\n if (metrics && metrics.length > 0) {\n suggestions.push({\n label: 'Metrics',\n items: metrics.map(wrapLabel),\n });\n }\n return { suggestions };\n }\n\n getRangeCompletionItems(): TypeaheadOutput {\n return {\n context: 'context-range',\n suggestions: [\n {\n label: 'Range vector',\n items: [...RATE_RANGES],\n },\n ],\n };\n }\n\n getAggregationCompletionItems({ value }: TypeaheadInput): TypeaheadOutput {\n const refresher: Promise = null;\n const suggestions: CompletionItemGroup[] = [];\n\n // Stitch all query lines together to support multi-line queries\n let queryOffset;\n const queryText = value.document.getBlocks().reduce((text, block) => {\n const blockText = block.getText();\n if (value.anchorBlock.key === block.key) {\n // Newline characters are not accounted for but this is irrelevant\n // for the purpose of extracting the selector string\n queryOffset = value.anchorOffset + text.length;\n }\n text += blockText;\n return text;\n }, '');\n\n // Try search for selector part on the left-hand side, such as `sum (m) by (l)`\n const openParensAggregationIndex = queryText.lastIndexOf('(', queryOffset);\n let openParensSelectorIndex = queryText.lastIndexOf('(', openParensAggregationIndex - 1);\n let closeParensSelectorIndex = queryText.indexOf(')', openParensSelectorIndex);\n\n // Try search for selector part of an alternate aggregation clause, such as `sum by (l) (m)`\n if (openParensSelectorIndex === -1) {\n const closeParensAggregationIndex = queryText.indexOf(')', queryOffset);\n closeParensSelectorIndex = queryText.indexOf(')', closeParensAggregationIndex + 1);\n openParensSelectorIndex = queryText.lastIndexOf('(', closeParensSelectorIndex);\n }\n\n const result = {\n refresher,\n suggestions,\n context: 'context-aggregation',\n };\n\n // Suggestions are useless for alternative aggregation clauses without a selector in context\n if (openParensSelectorIndex === -1) {\n return result;\n }\n\n let selectorString = queryText.slice(openParensSelectorIndex + 1, closeParensSelectorIndex);\n\n // Range vector syntax not accounted for by subsequent parse so discard it if present\n selectorString = selectorString.replace(/\\[[^\\]]+\\]$/, '');\n\n const selector = parseSelector(selectorString, selectorString.length - 2).selector;\n\n const labelKeys = this.labelKeys[selector];\n if (labelKeys) {\n suggestions.push({ label: 'Labels', items: labelKeys.map(wrapLabel) });\n } else {\n result.refresher = this.fetchSeriesLabels(selector);\n }\n\n return result;\n }\n\n getLabelCompletionItems({ text, wrapperClasses, labelKey, value }: TypeaheadInput): TypeaheadOutput {\n let context: string;\n let refresher: Promise = null;\n const suggestions: CompletionItemGroup[] = [];\n const line = value.anchorBlock.getText();\n const cursorOffset: number = value.anchorOffset;\n\n // Get normalized selector\n let selector;\n let parsedSelector;\n try {\n parsedSelector = parseSelector(line, cursorOffset);\n selector = parsedSelector.selector;\n } catch {\n selector = EMPTY_SELECTOR;\n }\n const containsMetric = selector.indexOf('__name__=') > -1;\n const existingKeys = parsedSelector ? parsedSelector.labelKeys : [];\n\n if ((text && text.match(/^!?=~?/)) || _.includes(wrapperClasses, 'attr-value')) {\n // Label values\n if (labelKey && this.labelValues[selector] && this.labelValues[selector][labelKey]) {\n const labelValues = this.labelValues[selector][labelKey];\n context = 'context-label-values';\n suggestions.push({\n label: `Label values for \"${labelKey}\"`,\n items: labelValues.map(wrapLabel),\n });\n }\n } else {\n // Label keys\n const labelKeys = this.labelKeys[selector] || (containsMetric ? null : DEFAULT_KEYS);\n if (labelKeys) {\n const possibleKeys = _.difference(labelKeys, existingKeys);\n if (possibleKeys.length > 0) {\n context = 'context-labels';\n suggestions.push({ label: `Labels`, items: possibleKeys.map(wrapLabel) });\n }\n }\n }\n\n // Query labels for selector\n if (selector && !this.labelValues[selector]) {\n if (selector === EMPTY_SELECTOR) {\n // Query label values for default labels\n refresher = Promise.all(DEFAULT_KEYS.map(key => this.fetchLabelValues(key)));\n } else {\n refresher = this.fetchSeriesLabels(selector, !containsMetric);\n }\n }\n\n return { context, refresher, suggestions };\n }\n\n async fetchMetricNames() {\n const url = '/api/v1/label/__name__/values';\n try {\n const res = await this.request(url);\n const body = await (res.data || res.json());\n this.metrics = body.data;\n } catch (error) {\n console.error(error);\n }\n }\n\n async fetchHistogramMetrics() {\n await this.fetchSeriesLabels(HISTOGRAM_SELECTOR, true);\n const histogramSeries = this.labelValues[HISTOGRAM_SELECTOR];\n if (histogramSeries && histogramSeries['__name__']) {\n this.histogramMetrics = histogramSeries['__name__'].slice().sort();\n }\n }\n\n async fetchLabelValues(key: string) {\n const url = `/api/v1/label/${key}/values`;\n try {\n const res = await this.request(url);\n const body = await (res.data || res.json());\n const exisingValues = this.labelValues[EMPTY_SELECTOR];\n const values = {\n ...exisingValues,\n [key]: body.data,\n };\n this.labelValues = {\n ...this.labelValues,\n [EMPTY_SELECTOR]: values,\n };\n } catch (e) {\n console.error(e);\n }\n }\n\n async fetchSeriesLabels(name: string, withName?: boolean) {\n const url = `/api/v1/series?match[]=${name}`;\n try {\n const res = await this.request(url);\n const body = await (res.data || res.json());\n const { keys, values } = processLabels(body.data, withName);\n this.labelKeys = {\n ...this.labelKeys,\n [name]: keys,\n };\n this.labelValues = {\n ...this.labelValues,\n [name]: values,\n };\n } catch (e) {\n console.error(e);\n }\n }\n}\n","import _ from 'lodash';\nimport { QueryHint } from '@grafana/ui/src/types';\n\n/**\n * Number of time series results needed before starting to suggest sum aggregation hints\n */\nexport const SUM_HINT_THRESHOLD_COUNT = 20;\n\nexport function getQueryHints(query: string, series?: any[], datasource?: any): QueryHint[] {\n const hints = [];\n\n // ..._bucket metric needs a histogram_quantile()\n const histogramMetric = query.trim().match(/^\\w+_bucket$/);\n if (histogramMetric) {\n const label = 'Time series has buckets, you probably wanted a histogram.';\n hints.push({\n type: 'HISTOGRAM_QUANTILE',\n label,\n fix: {\n label: 'Fix by adding histogram_quantile().',\n action: {\n type: 'ADD_HISTOGRAM_QUANTILE',\n query,\n },\n },\n });\n }\n\n // Check for monotony on series (table results are being ignored here)\n if (series && series.length > 0) {\n series.forEach(s => {\n const datapoints: number[][] = s.datapoints;\n if (query.indexOf('rate(') === -1 && datapoints.length > 1) {\n let increasing = false;\n const nonNullData = datapoints.filter(dp => dp[0] !== null);\n const monotonic = nonNullData.every((dp, index) => {\n if (index === 0) {\n return true;\n }\n increasing = increasing || dp[0] > nonNullData[index - 1][0];\n // monotonic?\n return dp[0] >= nonNullData[index - 1][0];\n });\n if (increasing && monotonic) {\n const simpleMetric = query.trim().match(/^\\w+$/);\n let label = 'Time series is monotonously increasing.';\n let fix;\n if (simpleMetric) {\n fix = {\n label: 'Fix by adding rate().',\n action: {\n type: 'ADD_RATE',\n query,\n },\n };\n } else {\n label = `${label} Try applying a rate() function.`;\n }\n hints.push({\n type: 'APPLY_RATE',\n label,\n fix,\n });\n }\n }\n });\n }\n\n // Check for recording rules expansion\n if (datasource && datasource.ruleMappings) {\n const mapping = datasource.ruleMappings;\n const mappingForQuery = Object.keys(mapping).reduce((acc, ruleName) => {\n if (query.search(ruleName) > -1) {\n return {\n ...acc,\n [ruleName]: mapping[ruleName],\n };\n }\n return acc;\n }, {});\n if (_.size(mappingForQuery) > 0) {\n const label = 'Query contains recording rules.';\n hints.push({\n type: 'EXPAND_RULES',\n label,\n fix: {\n label: 'Expand rules',\n action: {\n type: 'EXPAND_RULES',\n query,\n mapping: mappingForQuery,\n },\n },\n });\n }\n }\n\n if (series && series.length >= SUM_HINT_THRESHOLD_COUNT) {\n const simpleMetric = query.trim().match(/^\\w+$/);\n if (simpleMetric) {\n hints.push({\n type: 'ADD_SUM',\n label: 'Many time series results returned.',\n fix: {\n label: 'Consider aggregating with sum().',\n action: {\n type: 'ADD_SUM',\n query: query,\n preventSubmit: true,\n },\n },\n });\n }\n }\n\n return hints.length > 0 ? hints : null;\n}\n","// Libraries\nimport _ from 'lodash';\nimport $ from 'jquery';\n\n// Services & Utils\nimport kbn from 'app/core/utils/kbn';\nimport * as dateMath from 'app/core/utils/datemath';\nimport PrometheusMetricFindQuery from './metric_find_query';\nimport { ResultTransformer } from './result_transformer';\nimport PrometheusLanguageProvider from './language_provider';\nimport { BackendSrv } from 'app/core/services/backend_srv';\nimport addLabelToQuery from './add_label_to_query';\nimport { getQueryHints } from './query_hints';\nimport { expandRecordingRules } from './language_utils';\n\n// Types\nimport { PromQuery } from './types';\nimport { DataQueryOptions, DataSourceApi, AnnotationEvent } from '@grafana/ui/src/types';\nimport { ExploreUrlState } from 'app/types/explore';\n\nexport class PrometheusDatasource implements DataSourceApi {\n type: string;\n editorSrc: string;\n name: string;\n ruleMappings: { [index: string]: string };\n url: string;\n directUrl: string;\n basicAuth: any;\n withCredentials: any;\n metricsNameCache: any;\n interval: string;\n queryTimeout: string;\n httpMethod: string;\n languageProvider: PrometheusLanguageProvider;\n resultTransformer: ResultTransformer;\n\n /** @ngInject */\n constructor(instanceSettings, private $q, private backendSrv: BackendSrv, private templateSrv, private timeSrv) {\n this.type = 'prometheus';\n this.editorSrc = 'app/features/prometheus/partials/query.editor.html';\n this.name = instanceSettings.name;\n this.url = instanceSettings.url;\n this.directUrl = instanceSettings.directUrl;\n this.basicAuth = instanceSettings.basicAuth;\n this.withCredentials = instanceSettings.withCredentials;\n this.interval = instanceSettings.jsonData.timeInterval || '15s';\n this.queryTimeout = instanceSettings.jsonData.queryTimeout;\n this.httpMethod = instanceSettings.jsonData.httpMethod || 'GET';\n this.resultTransformer = new ResultTransformer(templateSrv);\n this.ruleMappings = {};\n this.languageProvider = new PrometheusLanguageProvider(this);\n }\n\n init() {\n this.loadRules();\n }\n\n _request(url, data?, options?: any) {\n options = _.defaults(options || {}, {\n url: this.url + url,\n method: this.httpMethod,\n });\n\n if (options.method === 'GET') {\n if (!_.isEmpty(data)) {\n options.url =\n options.url +\n '?' +\n _.map(data, (v, k) => {\n return encodeURIComponent(k) + '=' + encodeURIComponent(v);\n }).join('&');\n }\n } else {\n options.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n options.transformRequest = data => {\n return $.param(data);\n };\n options.data = data;\n }\n\n if (this.basicAuth || this.withCredentials) {\n options.withCredentials = true;\n }\n\n if (this.basicAuth) {\n options.headers = {\n Authorization: this.basicAuth,\n };\n }\n\n return this.backendSrv.datasourceRequest(options);\n }\n\n // Use this for tab completion features, wont publish response to other components\n metadataRequest(url) {\n return this._request(url, null, { method: 'GET', silent: true });\n }\n\n interpolateQueryExpr(value, variable, defaultFormatFn) {\n // if no multi or include all do not regexEscape\n if (!variable.multi && !variable.includeAll) {\n return prometheusRegularEscape(value);\n }\n\n if (typeof value === 'string') {\n return prometheusSpecialRegexEscape(value);\n }\n\n const escapedValues = _.map(value, prometheusSpecialRegexEscape);\n return escapedValues.join('|');\n }\n\n targetContainsTemplate(target) {\n return this.templateSrv.variableExists(target.expr);\n }\n\n query(options: DataQueryOptions) {\n const start = this.getPrometheusTime(options.range.from, false);\n const end = this.getPrometheusTime(options.range.to, true);\n\n const queries = [];\n const activeTargets = [];\n\n options = _.clone(options);\n\n for (const target of options.targets) {\n if (!target.expr || target.hide) {\n continue;\n }\n\n activeTargets.push(target);\n queries.push(this.createQuery(target, options, start, end));\n }\n\n // No valid targets, return the empty result to save a round trip.\n if (_.isEmpty(queries)) {\n return this.$q.when({ data: [] });\n }\n\n const allQueryPromise = _.map(queries, query => {\n if (!query.instant) {\n return this.performTimeSeriesQuery(query, query.start, query.end);\n } else {\n return this.performInstantQuery(query, end);\n }\n });\n\n return this.$q.all(allQueryPromise).then(responseList => {\n let result = [];\n\n _.each(responseList, (response, index) => {\n if (response.status === 'error') {\n const error = {\n index,\n ...response.error,\n };\n throw error;\n }\n\n // Keeping original start/end for transformers\n const transformerOptions = {\n format: activeTargets[index].format,\n step: queries[index].step,\n legendFormat: activeTargets[index].legendFormat,\n start: queries[index].start,\n end: queries[index].end,\n query: queries[index].expr,\n responseListLength: responseList.length,\n refId: activeTargets[index].refId,\n valueWithRefId: activeTargets[index].valueWithRefId,\n };\n const series = this.resultTransformer.transform(response, transformerOptions);\n result = [...result, ...series];\n });\n\n return { data: result };\n });\n }\n\n createQuery(target, options, start, end) {\n const query: any = {\n hinting: target.hinting,\n instant: target.instant,\n };\n const range = Math.ceil(end - start);\n\n // options.interval is the dynamically calculated interval\n let interval = kbn.interval_to_seconds(options.interval);\n // Minimum interval (\"Min step\"), if specified for the query or datasource. or same as interval otherwise\n const minInterval = kbn.interval_to_seconds(\n this.templateSrv.replace(target.interval, options.scopedVars) || options.interval\n );\n const intervalFactor = target.intervalFactor || 1;\n // Adjust the interval to take into account any specified minimum and interval factor plus Prometheus limits\n const adjustedInterval = this.adjustInterval(interval, minInterval, range, intervalFactor);\n let scopedVars = { ...options.scopedVars, ...this.getRangeScopedVars() };\n // If the interval was adjusted, make a shallow copy of scopedVars with updated interval vars\n if (interval !== adjustedInterval) {\n interval = adjustedInterval;\n scopedVars = Object.assign({}, options.scopedVars, {\n __interval: { text: interval + 's', value: interval + 's' },\n __interval_ms: { text: interval * 1000, value: interval * 1000 },\n ...this.getRangeScopedVars(),\n });\n }\n query.step = interval;\n\n let expr = target.expr;\n\n // Apply adhoc filters\n const adhocFilters = this.templateSrv.getAdhocFilters(this.name);\n expr = adhocFilters.reduce((acc, filter) => {\n const { key, operator } = filter;\n let { value } = filter;\n if (operator === '=~' || operator === '!~') {\n value = prometheusRegularEscape(value);\n }\n return addLabelToQuery(acc, key, value, operator);\n }, expr);\n\n // Only replace vars in expression after having (possibly) updated interval vars\n query.expr = this.templateSrv.replace(expr, scopedVars, this.interpolateQueryExpr);\n query.requestId = options.panelId + target.refId;\n\n // Align query interval with step to allow query caching and to ensure\n // that about-same-time query results look the same.\n const adjusted = alignRange(start, end, query.step);\n query.start = adjusted.start;\n query.end = adjusted.end;\n\n return query;\n }\n\n adjustInterval(interval, minInterval, range, intervalFactor) {\n // Prometheus will drop queries that might return more than 11000 data points.\n // Calibrate interval if it is too small.\n if (interval !== 0 && range / intervalFactor / interval > 11000) {\n interval = Math.ceil(range / intervalFactor / 11000);\n }\n return Math.max(interval * intervalFactor, minInterval, 1);\n }\n\n performTimeSeriesQuery(query, start, end) {\n if (start > end) {\n throw { message: 'Invalid time range' };\n }\n\n const url = '/api/v1/query_range';\n const data = {\n query: query.expr,\n start: start,\n end: end,\n step: query.step,\n };\n if (this.queryTimeout) {\n data['timeout'] = this.queryTimeout;\n }\n return this._request(url, data, { requestId: query.requestId });\n }\n\n performInstantQuery(query, time) {\n const url = '/api/v1/query';\n const data = {\n query: query.expr,\n time: time,\n };\n if (this.queryTimeout) {\n data['timeout'] = this.queryTimeout;\n }\n return this._request(url, data, { requestId: query.requestId });\n }\n\n performSuggestQuery(query, cache = false) {\n const url = '/api/v1/label/__name__/values';\n\n if (cache && this.metricsNameCache && this.metricsNameCache.expire > Date.now()) {\n return this.$q.when(\n _.filter(this.metricsNameCache.data, metricName => {\n return metricName.indexOf(query) !== 1;\n })\n );\n }\n\n return this.metadataRequest(url).then(result => {\n this.metricsNameCache = {\n data: result.data.data,\n expire: Date.now() + 60 * 1000,\n };\n return _.filter(result.data.data, metricName => {\n return metricName.indexOf(query) !== 1;\n });\n });\n }\n\n metricFindQuery(query) {\n if (!query) {\n return this.$q.when([]);\n }\n\n const scopedVars = {\n __interval: { text: this.interval, value: this.interval },\n __interval_ms: { text: kbn.interval_to_ms(this.interval), value: kbn.interval_to_ms(this.interval) },\n ...this.getRangeScopedVars(),\n };\n const interpolated = this.templateSrv.replace(query, scopedVars, this.interpolateQueryExpr);\n const metricFindQuery = new PrometheusMetricFindQuery(this, interpolated, this.timeSrv);\n return metricFindQuery.process();\n }\n\n getRangeScopedVars() {\n const range = this.timeSrv.timeRange();\n const msRange = range.to.diff(range.from);\n const sRange = Math.round(msRange / 1000);\n const regularRange = kbn.secondsToHms(msRange / 1000);\n return {\n __range_ms: { text: msRange, value: msRange },\n __range_s: { text: sRange, value: sRange },\n __range: { text: regularRange, value: regularRange },\n };\n }\n\n annotationQuery(options) {\n const annotation = options.annotation;\n const expr = annotation.expr || '';\n let tagKeys = annotation.tagKeys || '';\n const titleFormat = annotation.titleFormat || '';\n const textFormat = annotation.textFormat || '';\n\n if (!expr) {\n return this.$q.when([]);\n }\n\n const step = annotation.step || '60s';\n const start = this.getPrometheusTime(options.range.from, false);\n const end = this.getPrometheusTime(options.range.to, true);\n const queryOptions = {\n ...options,\n interval: step,\n };\n // Unsetting min interval for accurate event resolution\n const minStep = '1s';\n const query = this.createQuery({ expr, interval: minStep }, queryOptions, start, end);\n\n const self = this;\n return this.performTimeSeriesQuery(query, query.start, query.end).then(results => {\n const eventList = [];\n tagKeys = tagKeys.split(',');\n\n _.each(results.data.data.result, series => {\n const tags = _.chain(series.metric)\n .filter((v, k) => {\n return _.includes(tagKeys, k);\n })\n .value();\n\n const dupCheck = {};\n for (const value of series.values) {\n const valueIsTrue = value[1] === '1'; // e.g. ALERTS\n if (valueIsTrue || annotation.useValueForTime) {\n const event: AnnotationEvent = {\n annotation: annotation,\n title: self.resultTransformer.renderTemplate(titleFormat, series.metric),\n tags: tags,\n text: self.resultTransformer.renderTemplate(textFormat, series.metric),\n };\n\n if (annotation.useValueForTime) {\n const timestampValue = Math.floor(parseFloat(value[1]));\n if (dupCheck[timestampValue]) {\n continue;\n }\n dupCheck[timestampValue] = true;\n event.time = timestampValue;\n } else {\n event.time = Math.floor(parseFloat(value[0])) * 1000;\n }\n\n eventList.push(event);\n }\n }\n });\n\n return eventList;\n });\n }\n\n getTagKeys(options) {\n const url = '/api/v1/labels';\n return this.metadataRequest(url).then(result => {\n return _.map(result.data.data, value => {\n return { text: value };\n });\n });\n }\n\n getTagValues(options) {\n const url = '/api/v1/label/' + options.key + '/values';\n return this.metadataRequest(url).then(result => {\n return _.map(result.data.data, value => {\n return { text: value };\n });\n });\n }\n\n testDatasource() {\n const now = new Date().getTime();\n return this.performInstantQuery({ expr: '1+1' }, now / 1000).then(response => {\n if (response.data.status === 'success') {\n return { status: 'success', message: 'Data source is working' };\n } else {\n return { status: 'error', message: response.error };\n }\n });\n }\n\n getExploreState(queries: PromQuery[]): Partial {\n let state: Partial = { datasource: this.name };\n if (queries && queries.length > 0) {\n const expandedQueries = queries.map(query => ({\n ...query,\n expr: this.templateSrv.replace(query.expr, {}, this.interpolateQueryExpr),\n\n // null out values we don't support in Explore yet\n legendFormat: null,\n step: null,\n }));\n state = {\n ...state,\n queries: expandedQueries,\n };\n }\n return state;\n }\n\n getQueryHints(query: PromQuery, result: any[]) {\n return getQueryHints(query.expr || '', result, this);\n }\n\n loadRules() {\n this.metadataRequest('/api/v1/rules')\n .then(res => res.data || res.json())\n .then(body => {\n const groups = _.get(body, ['data', 'groups']);\n if (groups) {\n this.ruleMappings = extractRuleMappingFromGroups(groups);\n }\n })\n .catch(e => {\n console.log('Rules API is experimental. Ignore next error.');\n console.error(e);\n });\n }\n\n modifyQuery(query: PromQuery, action: any): PromQuery {\n let expression = query.expr || '';\n switch (action.type) {\n case 'ADD_FILTER': {\n expression = addLabelToQuery(expression, action.key, action.value);\n break;\n }\n case 'ADD_HISTOGRAM_QUANTILE': {\n expression = `histogram_quantile(0.95, sum(rate(${expression}[5m])) by (le))`;\n break;\n }\n case 'ADD_RATE': {\n expression = `rate(${expression}[5m])`;\n break;\n }\n case 'ADD_SUM': {\n expression = `sum(${expression.trim()}) by ($1)`;\n break;\n }\n case 'EXPAND_RULES': {\n if (action.mapping) {\n expression = expandRecordingRules(expression, action.mapping);\n }\n break;\n }\n default:\n break;\n }\n return { ...query, expr: expression };\n }\n\n getPrometheusTime(date, roundUp) {\n if (_.isString(date)) {\n date = dateMath.parse(date, roundUp);\n }\n return Math.ceil(date.valueOf() / 1000);\n }\n\n getTimeRange(): { start: number; end: number } {\n const range = this.timeSrv.timeRange();\n return {\n start: this.getPrometheusTime(range.from, false),\n end: this.getPrometheusTime(range.to, true),\n };\n }\n\n getOriginalMetricName(labelData) {\n return this.resultTransformer.getOriginalMetricName(labelData);\n }\n}\n\n/**\n * Align query range to step.\n * Rounds start and end down to a multiple of step.\n * @param start Timestamp marking the beginning of the range.\n * @param end Timestamp marking the end of the range.\n * @param step Interval to align start and end with.\n */\nexport function alignRange(start: number, end: number, step: number): { end: number; start: number } {\n const alignedEnd = Math.floor(end / step) * step;\n const alignedStart = Math.floor(start / step) * step;\n return {\n end: alignedEnd,\n start: alignedStart,\n };\n}\n\nexport function extractRuleMappingFromGroups(groups: any[]) {\n return groups.reduce(\n (mapping, group) =>\n group.rules\n .filter(rule => rule.type === 'recording')\n .reduce(\n (acc, rule) => ({\n ...acc,\n [rule.name]: rule.query,\n }),\n mapping\n ),\n {}\n );\n}\n\nexport function prometheusRegularEscape(value) {\n if (typeof value === 'string') {\n return value.replace(/'/g, \"\\\\\\\\'\");\n }\n return value;\n}\n\nexport function prometheusSpecialRegexEscape(value) {\n if (typeof value === 'string') {\n return prometheusRegularEscape(value.replace(/\\\\/g, '\\\\\\\\\\\\\\\\').replace(/[$^*{}\\[\\]+?.()]/g, '\\\\\\\\$&'));\n }\n return value;\n}\n","import { PrometheusDatasource } from './datasource';\nimport _ from 'lodash';\n\nexport class PromCompleter {\n labelQueryCache: any;\n labelNameCache: any;\n labelValueCache: any;\n templateVariableCompletions: any;\n\n identifierRegexps = [/\\[/, /[a-zA-Z0-9_:]/];\n\n constructor(private datasource: PrometheusDatasource, private templateSrv) {\n this.labelQueryCache = {};\n this.labelNameCache = {};\n this.labelValueCache = {};\n this.templateVariableCompletions = this.templateSrv.variables.map(variable => {\n return {\n caption: '$' + variable.name,\n value: '$' + variable.name,\n meta: 'variable',\n score: Number.MAX_VALUE,\n };\n });\n }\n\n getCompletions(editor, session, pos, prefix, callback) {\n const wrappedCallback = (err, completions) => {\n completions = completions.concat(this.templateVariableCompletions);\n return callback(err, completions);\n };\n\n const token = session.getTokenAt(pos.row, pos.column);\n\n switch (token.type) {\n case 'entity.name.tag.label-matcher':\n this.getCompletionsForLabelMatcherName(session, pos).then(completions => {\n wrappedCallback(null, completions);\n });\n return;\n case 'string.quoted.label-matcher':\n this.getCompletionsForLabelMatcherValue(session, pos).then(completions => {\n wrappedCallback(null, completions);\n });\n return;\n case 'entity.name.tag.label-list-matcher':\n this.getCompletionsForBinaryOperator(session, pos).then(completions => {\n wrappedCallback(null, completions);\n });\n return;\n }\n\n if (token.type === 'paren.lparen' && token.value === '[') {\n const vectors = [];\n for (const unit of ['s', 'm', 'h']) {\n for (const value of [1, 5, 10, 30]) {\n vectors.push({\n caption: value + unit,\n value: '[' + value + unit,\n meta: 'range vector',\n });\n }\n }\n\n vectors.unshift({\n caption: '$__interval_ms',\n value: '[$__interval_ms',\n meta: 'range vector',\n });\n\n vectors.unshift({\n caption: '$__interval',\n value: '[$__interval',\n meta: 'range vector',\n });\n\n wrappedCallback(null, vectors);\n return;\n }\n\n const query = prefix;\n\n return this.datasource.performSuggestQuery(query, true).then(metricNames => {\n wrappedCallback(\n null,\n metricNames.map(name => {\n let value = name;\n if (prefix === '(') {\n value = '(' + name;\n }\n\n return {\n caption: name,\n value: value,\n meta: 'metric',\n };\n })\n );\n });\n }\n\n getCompletionsForLabelMatcherName(session, pos) {\n const metricName = this.findMetricName(session, pos.row, pos.column);\n if (!metricName) {\n return Promise.resolve(this.transformToCompletions(['__name__', 'instance', 'job'], 'label name'));\n }\n\n if (this.labelNameCache[metricName]) {\n return Promise.resolve(this.labelNameCache[metricName]);\n }\n\n return this.getLabelNameAndValueForExpression(metricName, 'metricName').then(result => {\n const labelNames = this.transformToCompletions(\n _.uniq(\n _.flatten(\n result.map(r => {\n return Object.keys(r);\n })\n )\n ),\n 'label name'\n );\n this.labelNameCache[metricName] = labelNames;\n return Promise.resolve(labelNames);\n });\n }\n\n getCompletionsForLabelMatcherValue(session, pos) {\n const metricName = this.findMetricName(session, pos.row, pos.column);\n if (!metricName) {\n return Promise.resolve([]);\n }\n\n const labelNameToken = this.findToken(\n session,\n pos.row,\n pos.column,\n 'entity.name.tag.label-matcher',\n null,\n 'paren.lparen.label-matcher'\n );\n if (!labelNameToken) {\n return Promise.resolve([]);\n }\n const labelName = labelNameToken.value;\n\n if (this.labelValueCache[metricName] && this.labelValueCache[metricName][labelName]) {\n return Promise.resolve(this.labelValueCache[metricName][labelName]);\n }\n\n return this.getLabelNameAndValueForExpression(metricName, 'metricName').then(result => {\n const labelValues = this.transformToCompletions(\n _.uniq(\n result.map(r => {\n return r[labelName];\n })\n ),\n 'label value'\n );\n this.labelValueCache[metricName] = this.labelValueCache[metricName] || {};\n this.labelValueCache[metricName][labelName] = labelValues;\n return Promise.resolve(labelValues);\n });\n }\n\n getCompletionsForBinaryOperator(session, pos) {\n const keywordOperatorToken = this.findToken(session, pos.row, pos.column, 'keyword.control', null, 'identifier');\n if (!keywordOperatorToken) {\n return Promise.resolve([]);\n }\n let rparenToken, expr;\n switch (keywordOperatorToken.value) {\n case 'by':\n case 'without':\n rparenToken = this.findToken(\n session,\n keywordOperatorToken.row,\n keywordOperatorToken.column,\n 'paren.rparen',\n null,\n 'identifier'\n );\n if (!rparenToken) {\n return Promise.resolve([]);\n }\n expr = this.findExpressionMatchedParen(session, rparenToken.row, rparenToken.column);\n if (expr === '') {\n return Promise.resolve([]);\n }\n return this.getLabelNameAndValueForExpression(expr, 'expression').then(result => {\n const labelNames = this.transformToCompletions(\n _.uniq(\n _.flatten(\n result.map(r => {\n return Object.keys(r);\n })\n )\n ),\n 'label name'\n );\n this.labelNameCache[expr] = labelNames;\n return labelNames;\n });\n case 'on':\n case 'ignoring':\n case 'group_left':\n case 'group_right':\n const binaryOperatorToken = this.findToken(\n session,\n keywordOperatorToken.row,\n keywordOperatorToken.column,\n 'keyword.operator.binary',\n null,\n 'identifier'\n );\n if (!binaryOperatorToken) {\n return Promise.resolve([]);\n }\n rparenToken = this.findToken(\n session,\n binaryOperatorToken.row,\n binaryOperatorToken.column,\n 'paren.rparen',\n null,\n 'identifier'\n );\n if (rparenToken) {\n expr = this.findExpressionMatchedParen(session, rparenToken.row, rparenToken.column);\n if (expr === '') {\n return Promise.resolve([]);\n }\n return this.getLabelNameAndValueForExpression(expr, 'expression').then(result => {\n const labelNames = this.transformToCompletions(\n _.uniq(\n _.flatten(\n result.map(r => {\n return Object.keys(r);\n })\n )\n ),\n 'label name'\n );\n this.labelNameCache[expr] = labelNames;\n return labelNames;\n });\n } else {\n const metricName = this.findMetricName(session, binaryOperatorToken.row, binaryOperatorToken.column);\n return this.getLabelNameAndValueForExpression(metricName, 'metricName').then(result => {\n const labelNames = this.transformToCompletions(\n _.uniq(\n _.flatten(\n result.map(r => {\n return Object.keys(r);\n })\n )\n ),\n 'label name'\n );\n this.labelNameCache[metricName] = labelNames;\n return Promise.resolve(labelNames);\n });\n }\n }\n\n return Promise.resolve([]);\n }\n\n getLabelNameAndValueForExpression(expr: string, type: string): Promise {\n if (this.labelQueryCache[expr]) {\n return Promise.resolve(this.labelQueryCache[expr]);\n }\n let query = expr;\n if (type === 'metricName') {\n let op = '=~';\n if (/[a-zA-Z_:][a-zA-Z0-9_:]*/.test(expr)) {\n op = '=';\n }\n query = '{__name__' + op + '\"' + expr + '\"}';\n }\n const { start, end } = this.datasource.getTimeRange();\n const url = '/api/v1/series?match[]=' + encodeURIComponent(query) + '&start=' + start + '&end=' + end;\n return this.datasource.metadataRequest(url).then(response => {\n this.labelQueryCache[expr] = response.data.data;\n return response.data.data;\n });\n }\n\n transformToCompletions(words, meta) {\n return words.map(name => {\n return {\n caption: name,\n value: name,\n meta: meta,\n score: Number.MAX_VALUE,\n };\n });\n }\n\n findMetricName(session, row, column) {\n let metricName = '';\n\n let tokens;\n const nameLabelNameToken = this.findToken(\n session,\n row,\n column,\n 'entity.name.tag.label-matcher',\n '__name__',\n 'paren.lparen.label-matcher'\n );\n if (nameLabelNameToken) {\n tokens = session.getTokens(nameLabelNameToken.row);\n const nameLabelValueToken = tokens[nameLabelNameToken.index + 2];\n if (nameLabelValueToken && nameLabelValueToken.type === 'string.quoted.label-matcher') {\n metricName = nameLabelValueToken.value.slice(1, -1); // cut begin/end quotation\n }\n } else {\n const metricNameToken = this.findToken(session, row, column, 'identifier', null, null);\n if (metricNameToken) {\n tokens = session.getTokens(metricNameToken.row);\n metricName = metricNameToken.value;\n }\n }\n\n return metricName;\n }\n\n findToken(session, row, column, target, value, guard) {\n let tokens, idx;\n // find index and get column of previous token\n for (let r = row; r >= 0; r--) {\n let c;\n tokens = session.getTokens(r);\n if (r === row) {\n // current row\n c = 0;\n for (idx = 0; idx < tokens.length; idx++) {\n const nc = c + tokens[idx].value.length;\n if (nc >= column) {\n break;\n }\n c = nc;\n }\n } else {\n idx = tokens.length - 1;\n c =\n _.sum(\n tokens.map(t => {\n return t.value.length;\n })\n ) - tokens[tokens.length - 1].value.length;\n }\n\n for (; idx >= 0; idx--) {\n if (tokens[idx].type === guard) {\n return null;\n }\n\n if (tokens[idx].type === target && (!value || tokens[idx].value === value)) {\n tokens[idx].row = r;\n tokens[idx].column = c;\n tokens[idx].index = idx;\n return tokens[idx];\n }\n c -= tokens[idx].value.length;\n }\n }\n\n return null;\n }\n\n findExpressionMatchedParen(session, row, column) {\n let tokens, idx;\n let deep = 1;\n let expression = ')';\n for (let r = row; r >= 0; r--) {\n tokens = session.getTokens(r);\n if (r === row) {\n // current row\n let c = 0;\n for (idx = 0; idx < tokens.length; idx++) {\n c += tokens[idx].value.length;\n if (c >= column) {\n break;\n }\n }\n } else {\n idx = tokens.length - 1;\n }\n\n for (; idx >= 0; idx--) {\n expression = tokens[idx].value + expression;\n if (tokens[idx].type === 'paren.rparen') {\n deep++;\n } else if (tokens[idx].type === 'paren.lparen') {\n deep--;\n if (deep === 0) {\n return expression;\n }\n }\n }\n }\n\n return expression;\n }\n}\n","import angular from 'angular';\nimport _ from 'lodash';\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport { PromCompleter } from './completer';\nimport './mode-prometheus';\nimport './snippets/prometheus';\n\nclass PrometheusQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n metric: any;\n resolutions: any;\n formats: any;\n instant: any;\n oldTarget: any;\n suggestMetrics: any;\n getMetricsAutocomplete: any;\n linkToPrometheus: any;\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv) {\n super($scope, $injector);\n\n const target = this.target;\n target.expr = target.expr || '';\n target.intervalFactor = target.intervalFactor || 1;\n target.format = target.format || this.getDefaultFormat();\n\n this.metric = '';\n this.resolutions = _.map([1, 2, 3, 4, 5, 10], f => {\n return { factor: f, label: '1/' + f };\n });\n\n this.formats = [\n { text: 'Time series', value: 'time_series' },\n { text: 'Table', value: 'table' },\n { text: 'Heatmap', value: 'heatmap' },\n ];\n\n this.instant = false;\n\n this.updateLink();\n }\n\n getCompleter(query) {\n return new PromCompleter(this.datasource, this.templateSrv);\n }\n\n getDefaultFormat() {\n if (this.panelCtrl.panel.type === 'table') {\n return 'table';\n } else if (this.panelCtrl.panel.type === 'heatmap') {\n return 'heatmap';\n }\n\n return 'time_series';\n }\n\n refreshMetricData() {\n if (!_.isEqual(this.oldTarget, this.target)) {\n this.oldTarget = angular.copy(this.target);\n this.panelCtrl.refresh();\n this.updateLink();\n }\n }\n\n updateLink() {\n const range = this.panelCtrl.range;\n if (!range) {\n return;\n }\n\n const rangeDiff = Math.ceil((range.to.valueOf() - range.from.valueOf()) / 1000);\n const endTime = range.to.utc().format('YYYY-MM-DD HH:mm');\n const expr = {\n 'g0.expr': this.templateSrv.replace(\n this.target.expr,\n this.panelCtrl.panel.scopedVars,\n this.datasource.interpolateQueryExpr\n ),\n 'g0.range_input': rangeDiff + 's',\n 'g0.end_input': endTime,\n 'g0.step_input': this.target.step,\n 'g0.stacked': this.panelCtrl.panel.stack ? 1 : 0,\n 'g0.tab': 0,\n };\n const args = _.map(expr, (v, k) => {\n return k + '=' + encodeURIComponent(v);\n }).join('&');\n this.linkToPrometheus = this.datasource.directUrl + '/graph?' + args;\n }\n\n getCollapsedText() {\n return this.target.expr;\n }\n}\n\nexport { PrometheusQueryCtrl };\n","export class PrometheusConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/prometheus/partials/config.html';\n current: any;\n\n /** @ngInject */\n constructor($scope) {\n this.current.jsonData.httpMethod = this.current.jsonData.httpMethod || 'GET';\n }\n}\n","import React from 'react';\n\nconst CHEAT_SHEET_ITEMS = [\n {\n title: 'Request Rate',\n expression: 'rate(http_request_total[5m])',\n label:\n 'Given an HTTP request counter, this query calculates the per-second average request rate over the last 5 minutes.',\n },\n {\n title: '95th Percentile of Request Latencies',\n expression: 'histogram_quantile(0.95, sum(rate(prometheus_http_request_duration_seconds_bucket[5m])) by (le))',\n label: 'Calculates the 95th percentile of HTTP request rate over 5 minute windows.',\n },\n {\n title: 'Alerts Firing',\n expression: 'sort_desc(sum(sum_over_time(ALERTS{alertstate=\"firing\"}[24h])) by (alertname))',\n label: 'Sums up the alerts that have been firing over the last 24 hours.',\n },\n];\n\nexport default (props: any) => (\n
    \n

    PromQL Cheat Sheet

    \n {CHEAT_SHEET_ITEMS.map(item => (\n
    \n
    {item.title}
    \n props.onClickExample({ refId: '1', expr: item.expression })}\n >\n {item.expression}\n
    \n
    {item.label}
    \n
    \n ))}\n \n);\n","import _ from 'lodash';\nimport React from 'react';\nimport Cascader from 'rc-cascader';\nimport PluginPrism from 'slate-prism';\nimport Prism from 'prismjs';\n\nimport { TypeaheadOutput, HistoryItem } from 'app/types/explore';\n\n// dom also includes Element polyfills\nimport { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/dom';\nimport BracesPlugin from 'app/features/explore/slate-plugins/braces';\nimport RunnerPlugin from 'app/features/explore/slate-plugins/runner';\nimport QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explore/QueryField';\nimport { PromQuery } from '../types';\nimport { CancelablePromise, makePromiseCancelable } from 'app/core/utils/CancelablePromise';\nimport { ExploreDataSourceApi, ExploreQueryFieldProps } from '@grafana/ui';\n\nconst HISTOGRAM_GROUP = '__histograms__';\nconst METRIC_MARK = 'metric';\nconst PRISM_SYNTAX = 'promql';\nexport const RECORDING_RULES_GROUP = '__recording_rules__';\n\nexport function groupMetricsByPrefix(metrics: string[], delimiter = '_'): CascaderOption[] {\n // Filter out recording rules and insert as first option\n const ruleRegex = /:\\w+:/;\n const ruleNames = metrics.filter(metric => ruleRegex.test(metric));\n const rulesOption = {\n label: 'Recording rules',\n value: RECORDING_RULES_GROUP,\n children: ruleNames\n .slice()\n .sort()\n .map(name => ({ label: name, value: name })),\n };\n\n const options = ruleNames.length > 0 ? [rulesOption] : [];\n\n const metricsOptions = _.chain(metrics)\n .filter(metric => !ruleRegex.test(metric))\n .groupBy(metric => metric.split(delimiter)[0])\n .map(\n (metricsForPrefix: string[], prefix: string): CascaderOption => {\n const prefixIsMetric = metricsForPrefix.length === 1 && metricsForPrefix[0] === prefix;\n const children = prefixIsMetric ? [] : metricsForPrefix.sort().map(m => ({ label: m, value: m }));\n return {\n children,\n label: prefix,\n value: prefix,\n };\n }\n )\n .sortBy('label')\n .value();\n\n return [...options, ...metricsOptions];\n}\n\nexport function willApplySuggestion(suggestion: string, { typeaheadContext, typeaheadText }: QueryFieldState): string {\n // Modify suggestion based on context\n switch (typeaheadContext) {\n case 'context-labels': {\n const nextChar = getNextCharacter();\n if (!nextChar || nextChar === '}' || nextChar === ',') {\n suggestion += '=';\n }\n break;\n }\n\n case 'context-label-values': {\n // Always add quotes and remove existing ones instead\n if (!typeaheadText.match(/^(!?=~?\"|\")/)) {\n suggestion = `\"${suggestion}`;\n }\n if (getNextCharacter() !== '\"') {\n suggestion = `${suggestion}\"`;\n }\n break;\n }\n\n default:\n }\n return suggestion;\n}\n\ninterface CascaderOption {\n label: string;\n value: string;\n children?: CascaderOption[];\n disabled?: boolean;\n}\n\ninterface PromQueryFieldProps extends ExploreQueryFieldProps {\n history: HistoryItem[];\n}\n\ninterface PromQueryFieldState {\n metricsOptions: any[];\n syntaxLoaded: boolean;\n}\n\nclass PromQueryField extends React.PureComponent {\n plugins: any[];\n languageProvider: any;\n languageProviderInitializationPromise: CancelablePromise;\n\n constructor(props: PromQueryFieldProps, context) {\n super(props, context);\n\n if (props.datasource.languageProvider) {\n this.languageProvider = props.datasource.languageProvider;\n }\n\n this.plugins = [\n BracesPlugin(),\n RunnerPlugin({ handler: props.onExecuteQuery }),\n PluginPrism({\n onlyIn: node => node.type === 'code_block',\n getSyntax: node => 'promql',\n }),\n ];\n\n this.state = {\n metricsOptions: [],\n syntaxLoaded: false,\n };\n }\n\n componentDidMount() {\n if (this.languageProvider) {\n this.languageProviderInitializationPromise = makePromiseCancelable(this.languageProvider.start());\n this.languageProviderInitializationPromise.promise\n .then(remaining => {\n remaining.map(task => task.then(this.onUpdateLanguage).catch(() => {}));\n })\n .then(() => this.onUpdateLanguage())\n .catch(({ isCanceled }) => {\n if (isCanceled) {\n console.warn('PromQueryField has unmounted, language provider intialization was canceled');\n }\n });\n }\n }\n\n componentWillUnmount() {\n if (this.languageProviderInitializationPromise) {\n this.languageProviderInitializationPromise.cancel();\n }\n }\n\n onChangeMetrics = (values: string[], selectedOptions: CascaderOption[]) => {\n let query;\n if (selectedOptions.length === 1) {\n if (selectedOptions[0].children.length === 0) {\n query = selectedOptions[0].value;\n } else {\n // Ignore click on group\n return;\n }\n } else {\n const prefix = selectedOptions[0].value;\n const metric = selectedOptions[1].value;\n if (prefix === HISTOGRAM_GROUP) {\n query = `histogram_quantile(0.95, sum(rate(${metric}[5m])) by (le))`;\n } else {\n query = metric;\n }\n }\n this.onChangeQuery(query, true);\n };\n\n onChangeQuery = (value: string, override?: boolean) => {\n // Send text change to parent\n const { query, onQueryChange, onExecuteQuery } = this.props;\n if (onQueryChange) {\n const nextQuery: PromQuery = { ...query, expr: value };\n onQueryChange(nextQuery);\n\n if (override && onExecuteQuery) {\n onExecuteQuery();\n }\n }\n };\n\n onClickHintFix = () => {\n const { hint, onExecuteHint } = this.props;\n if (onExecuteHint && hint && hint.fix) {\n onExecuteHint(hint.fix.action);\n }\n };\n\n onUpdateLanguage = () => {\n const { histogramMetrics, metrics } = this.languageProvider;\n if (!metrics) {\n return;\n }\n\n Prism.languages[PRISM_SYNTAX] = this.languageProvider.getSyntax();\n Prism.languages[PRISM_SYNTAX][METRIC_MARK] = {\n alias: 'variable',\n pattern: new RegExp(`(?:^|\\\\s)(${metrics.join('|')})(?:$|\\\\s)`),\n };\n\n // Build metrics tree\n const metricsByPrefix = groupMetricsByPrefix(metrics);\n const histogramOptions = histogramMetrics.map(hm => ({ label: hm, value: hm }));\n const metricsOptions =\n histogramMetrics.length > 0\n ? [\n { label: 'Histograms', value: HISTOGRAM_GROUP, children: histogramOptions, isLeaf: false },\n ...metricsByPrefix,\n ]\n : metricsByPrefix;\n\n this.setState({ metricsOptions, syntaxLoaded: true });\n };\n\n onTypeahead = (typeahead: TypeaheadInput): TypeaheadOutput => {\n if (!this.languageProvider) {\n return { suggestions: [] };\n }\n\n const { history } = this.props;\n const { prefix, text, value, wrapperNode } = typeahead;\n\n // Get DOM-dependent context\n const wrapperClasses = Array.from(wrapperNode.classList);\n const labelKeyNode = getPreviousCousin(wrapperNode, '.attr-name');\n const labelKey = labelKeyNode && labelKeyNode.textContent;\n const nextChar = getNextCharacter();\n\n const result = this.languageProvider.provideCompletionItems(\n { text, value, prefix, wrapperClasses, labelKey },\n { history }\n );\n\n console.log('handleTypeahead', wrapperClasses, text, prefix, nextChar, labelKey, result.context);\n\n return result;\n };\n\n render() {\n const { error, hint, query } = this.props;\n const { metricsOptions, syntaxLoaded } = this.state;\n const cleanText = this.languageProvider ? this.languageProvider.cleanText : undefined;\n const chooserText = syntaxLoaded ? 'Metrics' : 'Loading metrics...';\n\n return (\n <>\n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n {error ?
    {error}
    : null}\n {hint ? (\n
    \n {hint.label}{' '}\n {hint.fix ? (\n \n {hint.fix.label}\n \n ) : null}\n
    \n ) : null}\n \n );\n }\n}\n\nexport default PromQueryField;\n","import React, { PureComponent } from 'react';\nimport PromCheatSheet from './PromCheatSheet';\nimport { ExploreStartPageProps } from '@grafana/ui';\n\nexport default class PromStart extends PureComponent {\n render() {\n return (\n
    \n \n
    \n );\n }\n}\n","// https://github.com/facebook/react/issues/5465\n\nexport interface CancelablePromise {\n promise: Promise;\n cancel: () => void;\n}\n\nexport const makePromiseCancelable = (promise: Promise): CancelablePromise => {\n let hasCanceled_ = false;\n\n const wrappedPromise = new Promise((resolve, reject) => {\n promise.then(val => (hasCanceled_ ? reject({ isCanceled: true }) : resolve(val)));\n promise.catch(error => (hasCanceled_ ? reject({ isCanceled: true }) : reject(error)));\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled_ = true;\n },\n };\n};\n","import _ from 'lodash';\n\nexport default class ResponseParser {\n constructor(private $q) {}\n\n processQueryResult(res) {\n const data = [];\n\n if (!res.data.results) {\n return { data: data };\n }\n\n for (const key in res.data.results) {\n const queryRes = res.data.results[key];\n\n if (queryRes.series) {\n for (const series of queryRes.series) {\n data.push({\n target: series.name,\n datapoints: series.points,\n refId: queryRes.refId,\n meta: queryRes.meta,\n });\n }\n }\n\n if (queryRes.tables) {\n for (const table of queryRes.tables) {\n table.type = 'table';\n table.refId = queryRes.refId;\n table.meta = queryRes.meta;\n data.push(table);\n }\n }\n }\n\n return { data: data };\n }\n\n parseMetricFindQueryResult(refId, results) {\n if (!results || results.data.length === 0 || results.data.results[refId].meta.rowCount === 0) {\n return [];\n }\n\n const columns = results.data.results[refId].tables[0].columns;\n const rows = results.data.results[refId].tables[0].rows;\n const textColIndex = this.findColIndex(columns, '__text');\n const valueColIndex = this.findColIndex(columns, '__value');\n\n if (columns.length === 2 && textColIndex !== -1 && valueColIndex !== -1) {\n return this.transformToKeyValueList(rows, textColIndex, valueColIndex);\n }\n\n return this.transformToSimpleList(rows);\n }\n\n transformToKeyValueList(rows, textColIndex, valueColIndex) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n if (!this.containsKey(res, rows[i][textColIndex])) {\n res.push({ text: rows[i][textColIndex], value: rows[i][valueColIndex] });\n }\n }\n\n return res;\n }\n\n transformToSimpleList(rows) {\n const res = [];\n\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < rows[i].length; j++) {\n const value = rows[i][j];\n if (res.indexOf(value) === -1) {\n res.push(value);\n }\n }\n }\n\n return _.map(res, value => {\n return { text: value };\n });\n }\n\n findColIndex(columns, colName) {\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].text === colName) {\n return i;\n }\n }\n\n return -1;\n }\n\n containsKey(res, key) {\n for (let i = 0; i < res.length; i++) {\n if (res[i].text === key) {\n return true;\n }\n }\n return false;\n }\n\n transformAnnotationResponse(options, data) {\n const table = data.data.results[options.annotation.name].tables[0];\n\n let timeColumnIndex = -1;\n let textColumnIndex = -1;\n let tagsColumnIndex = -1;\n\n for (let i = 0; i < table.columns.length; i++) {\n if (table.columns[i].text === 'time') {\n timeColumnIndex = i;\n } else if (table.columns[i].text === 'text') {\n textColumnIndex = i;\n } else if (table.columns[i].text === 'tags') {\n tagsColumnIndex = i;\n }\n }\n\n if (timeColumnIndex === -1) {\n return this.$q.reject({ message: 'Missing mandatory time column (with time column alias) in annotation query.' });\n }\n\n const list = [];\n for (let i = 0; i < table.rows.length; i++) {\n const row = table.rows[i];\n list.push({\n annotation: options.annotation,\n time: Math.floor(row[timeColumnIndex]),\n text: row[textColumnIndex],\n tags: row[tagsColumnIndex] ? row[tagsColumnIndex].trim().split(/\\s*,\\s*/) : [],\n });\n }\n\n return list;\n }\n}\n","import { PrometheusDatasource } from './datasource';\nimport { PrometheusQueryCtrl } from './query_ctrl';\nimport { PrometheusConfigCtrl } from './config_ctrl';\n\nimport PrometheusStartPage from './components/PromStart';\nimport PromQueryField from './components/PromQueryField';\n\nclass PrometheusAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n}\n\nexport {\n PrometheusDatasource as Datasource,\n PrometheusQueryCtrl as QueryCtrl,\n PrometheusConfigCtrl as ConfigCtrl,\n PrometheusAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n PromQueryField as ExploreQueryField,\n PrometheusStartPage as ExploreStartPage,\n};\n","import _ from 'lodash';\nimport ResponseParser from './response_parser';\n\nexport class MssqlDatasource {\n id: any;\n name: any;\n responseParser: ResponseParser;\n interval: string;\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private $q, private templateSrv, private timeSrv) {\n this.name = instanceSettings.name;\n this.id = instanceSettings.id;\n this.responseParser = new ResponseParser(this.$q);\n this.interval = (instanceSettings.jsonData || {}).timeInterval || '1m';\n }\n\n interpolateVariable(value, variable) {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return \"'\" + value.replace(/'/g, `''`) + \"'\";\n } else {\n return value;\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const quotedValues = _.map(value, val => {\n if (typeof value === 'number') {\n return value;\n }\n\n return \"'\" + val.replace(/'/g, `''`) + \"'\";\n });\n return quotedValues.join(',');\n }\n\n query(options) {\n const queries = _.filter(options.targets, item => {\n return item.hide !== true;\n }).map(item => {\n return {\n refId: item.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(item.rawSql, options.scopedVars, this.interpolateVariable),\n format: item.format,\n };\n });\n\n if (queries.length === 0) {\n return this.$q.when({ data: [] });\n }\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: queries,\n },\n })\n .then(this.responseParser.processQueryResult);\n }\n\n annotationQuery(options) {\n if (!options.annotation.rawQuery) {\n return this.$q.reject({ message: 'Query missing in annotation definition' });\n }\n\n const query = {\n refId: options.annotation.name,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(options.annotation.rawQuery, options.scopedVars, this.interpolateVariable),\n format: 'table',\n };\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [query],\n },\n })\n .then(data => this.responseParser.transformAnnotationResponse(options, data));\n }\n\n metricFindQuery(query, optionalOptions) {\n let refId = 'tempvar';\n if (optionalOptions && optionalOptions.variable && optionalOptions.variable.name) {\n refId = optionalOptions.variable.name;\n }\n\n const interpolatedQuery = {\n refId: refId,\n datasourceId: this.id,\n rawSql: this.templateSrv.replace(query, {}, this.interpolateVariable),\n format: 'table',\n };\n\n const range = this.timeSrv.timeRange();\n const data = {\n queries: [interpolatedQuery],\n from: range.from.valueOf().toString(),\n to: range.to.valueOf().toString(),\n };\n\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: data,\n })\n .then(data => this.responseParser.parseMetricFindQueryResult(refId, data));\n }\n\n testDatasource() {\n return this.backendSrv\n .datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: '5m',\n to: 'now',\n queries: [\n {\n refId: 'A',\n intervalMs: 1,\n maxDataPoints: 1,\n datasourceId: this.id,\n rawSql: 'SELECT 1',\n format: 'table',\n },\n ],\n },\n })\n .then(res => {\n return { status: 'success', message: 'Database Connection OK' };\n })\n .catch(err => {\n console.log(err);\n if (err.data && err.data.message) {\n return { status: 'error', message: err.data.message };\n } else {\n return { status: 'error', message: err.status };\n }\n });\n }\n}\n","import _ from 'lodash';\nimport { QueryCtrl } from 'app/plugins/sdk';\n\nexport interface MssqlQuery {\n refId: string;\n format: string;\n alias: string;\n rawSql: string;\n}\n\nexport interface QueryMeta {\n sql: string;\n}\n\nconst defaultQuery = `SELECT\n $__timeEpoch(),\n as value,\n as metric\nFROM\n
    \nWHERE\n $__timeFilter(time_column)\nORDER BY\n ASC`;\n\nexport class MssqlQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n showLastQuerySQL: boolean;\n formats: any[];\n target: MssqlQuery;\n lastQueryMeta: QueryMeta;\n lastQueryError: string;\n showHelp: boolean;\n\n /** @ngInject */\n constructor($scope, $injector) {\n super($scope, $injector);\n\n this.target.format = this.target.format || 'time_series';\n this.target.alias = '';\n this.formats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];\n\n if (!this.target.rawSql) {\n // special handling when in table panel\n if (this.panelCtrl.panel.type === 'table') {\n this.target.format = 'table';\n this.target.rawSql = 'SELECT 1';\n } else {\n this.target.rawSql = defaultQuery;\n }\n }\n\n this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);\n this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);\n }\n\n onDataReceived(dataList) {\n this.lastQueryMeta = null;\n this.lastQueryError = null;\n\n const anySeriesFromQuery = _.find(dataList, { refId: this.target.refId });\n if (anySeriesFromQuery) {\n this.lastQueryMeta = anySeriesFromQuery.meta;\n }\n }\n\n onDataError(err) {\n if (err.data && err.data.results) {\n const queryRes = err.data.results[this.target.refId];\n if (queryRes) {\n this.lastQueryMeta = queryRes.meta;\n this.lastQueryError = queryRes.error;\n }\n }\n }\n}\n","import { SyntheticEvent } from 'react';\n\nexport class MssqlConfigCtrl {\n static templateUrl = 'partials/config.html';\n\n current: any;\n\n /** @ngInject */\n constructor($scope) {\n this.current.jsonData.encrypt = this.current.jsonData.encrypt || 'false';\n }\n\n onPasswordReset = (event: SyntheticEvent) => {\n event.preventDefault();\n this.current.secureJsonFields.password = false;\n this.current.secureJsonData = this.current.secureJsonData || {};\n this.current.secureJsonData.password = '';\n };\n\n onPasswordChange = (event: SyntheticEvent) => {\n this.current.secureJsonData = this.current.secureJsonData || {};\n this.current.secureJsonData.password = event.currentTarget.value;\n };\n}\n","import { MssqlDatasource } from './datasource';\nimport { MssqlQueryCtrl } from './query_ctrl';\nimport { MssqlConfigCtrl } from './config_ctrl';\n\nconst defaultQuery = `SELECT\n as time,\n as text,\n as tags\n FROM\n
    \n WHERE\n $__timeFilter(time_column)\n ORDER BY\n ASC`;\n\nclass MssqlAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n\n annotation: any;\n\n /** @ngInject */\n constructor() {\n this.annotation.rawQuery = this.annotation.rawQuery || defaultQuery;\n }\n}\n\nexport {\n MssqlDatasource,\n MssqlDatasource as Datasource,\n MssqlQueryCtrl as QueryCtrl,\n MssqlConfigCtrl as ConfigCtrl,\n MssqlAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\nimport { DataSourceApi, DataQueryOptions, TableData, TimeSeries } from '@grafana/ui';\nimport { TestDataQuery, Scenario } from './types';\n\ntype TestData = TimeSeries | TableData;\n\nexport interface TestDataRegistry {\n [key: string]: TestData[];\n}\n\nexport class TestDataDatasource implements DataSourceApi {\n id: number;\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private $q) {\n this.id = instanceSettings.id;\n }\n\n query(options: DataQueryOptions) {\n const queries = _.filter(options.targets, item => {\n return item.hide !== true;\n }).map(item => {\n return {\n refId: item.refId,\n scenarioId: item.scenarioId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n stringInput: item.stringInput,\n points: item.points,\n alias: item.alias,\n datasourceId: this.id,\n };\n });\n\n if (queries.length === 0) {\n return this.$q.when({ data: [] });\n }\n\n return this.backendSrv\n .datasourceRequest({\n method: 'POST',\n url: '/api/tsdb/query',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: queries,\n },\n })\n .then(res => {\n const data: TestData[] = [];\n\n // Returns data in the order it was asked for.\n // if the response has data with different refId, it is ignored\n for (const query of queries) {\n const results = res.data.results[query.refId];\n if (!results) {\n console.warn('No Results for:', query);\n continue;\n }\n\n for (const table of results.tables || []) {\n data.push(table as TableData);\n }\n\n for (const series of results.series || []) {\n data.push({ target: series.name, datapoints: series.points });\n }\n }\n\n return { data: data };\n });\n }\n\n annotationQuery(options) {\n let timeWalker = options.range.from.valueOf();\n const to = options.range.to.valueOf();\n const events = [];\n const eventCount = 10;\n const step = (to - timeWalker) / eventCount;\n\n for (let i = 0; i < eventCount; i++) {\n events.push({\n annotation: options.annotation,\n time: timeWalker,\n text: 'This is the text, Grafana.com',\n tags: ['text', 'server'],\n });\n timeWalker += step;\n }\n return this.$q.when(events);\n }\n\n testDatasource() {\n return Promise.resolve({\n status: 'success',\n message: 'Data source is working',\n });\n }\n\n getScenarios(): Promise {\n return this.backendSrv.get('/api/tsdb/testdata/scenarios');\n }\n}\n","import { DataQuery } from '@grafana/ui/src/types';\n\nexport enum MetricFindQueryTypes {\n Services = 'services',\n MetricTypes = 'metricTypes',\n LabelKeys = 'labelKeys',\n LabelValues = 'labelValues',\n ResourceTypes = 'resourceTypes',\n Aggregations = 'aggregations',\n Aligners = 'aligners',\n AlignmentPeriods = 'alignmentPeriods',\n}\n\nexport interface VariableQueryData {\n selectedQueryType: string;\n metricDescriptors: any[];\n selectedService: string;\n selectedMetricType: string;\n labels: string[];\n labelKey: string;\n metricTypes: Array<{ value: string; name: string }>;\n services: Array<{ value: string; name: string }>;\n}\n\nexport interface StackdriverQuery extends DataQuery {\n defaultProject?: string;\n unit?: string;\n metricType: string;\n service?: string;\n refId: string;\n crossSeriesReducer: string;\n alignmentPeriod?: string;\n perSeriesAligner: string;\n groupBys?: string[];\n filters?: string[];\n aliasBy?: string;\n metricKind: string;\n valueType: string;\n datasourceId?: number;\n view?: string;\n}\n\nexport interface AnnotationTarget {\n defaultProject: string;\n metricType: string;\n refId: string;\n filters: string[];\n metricKind: string;\n valueType: string;\n title: string;\n text: string;\n}\n\nexport interface QueryMeta {\n alignmentPeriod: string;\n rawQuery: string;\n rawQueryString: string;\n metricLabels: { [key: string]: string[] };\n resourceLabels: { [key: string]: string[] };\n resourceTypes: string[];\n}\n\nexport interface MetricDescriptor {\n valueType: string;\n metricKind: string;\n type: string;\n unit: string;\n service: string;\n serviceShortName: string;\n displayName: string;\n description: string;\n}\n","import _ from 'lodash';\n\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport moment from 'moment';\n\nexport class TestDataQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n scenarioList: any;\n scenario: any;\n newPointValue: number;\n newPointTime: any;\n selectedPoint: any;\n\n /** @ngInject */\n constructor($scope, $injector, private backendSrv) {\n super($scope, $injector);\n\n this.target.scenarioId = this.target.scenarioId || 'random_walk';\n this.scenarioList = [];\n this.newPointTime = moment();\n this.selectedPoint = { text: 'Select point', value: null };\n }\n\n getPoints() {\n return _.map(this.target.points, (point, index) => {\n return {\n text: moment(point[1]).format('MMMM Do YYYY, H:mm:ss') + ' : ' + point[0],\n value: index,\n };\n });\n }\n\n pointSelected(option) {\n this.selectedPoint = option;\n }\n\n deletePoint() {\n this.target.points.splice(this.selectedPoint.value, 1);\n this.selectedPoint = { text: 'Select point', value: null };\n this.refresh();\n }\n\n addPoint() {\n this.target.points = this.target.points || [];\n this.target.points.push([this.newPointValue, this.newPointTime.valueOf()]);\n this.target.points = _.sortBy(this.target.points, p => p[1]);\n this.refresh();\n }\n\n $onInit() {\n return this.backendSrv.get('/api/tsdb/testdata/scenarios').then(res => {\n this.scenarioList = res;\n this.scenario = _.find(this.scenarioList, { id: this.target.scenarioId });\n });\n }\n\n scenarioChanged() {\n this.scenario = _.find(this.scenarioList, { id: this.target.scenarioId });\n this.target.stringInput = this.scenario.stringInput;\n\n if (this.target.scenarioId === 'manual_entry') {\n this.target.points = this.target.points || [];\n } else {\n delete this.target.points;\n }\n\n this.refresh();\n }\n}\n","import { TestDataDatasource } from './datasource';\nimport { TestDataQueryCtrl } from './query_ctrl';\n// import { QueryEditor } from './QueryEditor';\n\nclass TestDataAnnotationsQueryCtrl {\n annotation: any;\n\n constructor() {}\n\n static template = '

    Annotation scenario

    ';\n}\n\nexport {\n // QueryEditor,\n TestDataDatasource as Datasource,\n TestDataQueryCtrl as QueryCtrl,\n TestDataAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import isString from 'lodash/isString';\nimport { alignmentPeriods } from './constants';\nimport { MetricFindQueryTypes } from './types';\nimport {\n getMetricTypesByService,\n getAlignmentOptionsByMetric,\n getAggregationOptionsByMetric,\n extractServicesFromMetricDescriptors,\n getLabelKeys,\n} from './functions';\n\nexport default class StackdriverMetricFindQuery {\n constructor(private datasource) {}\n\n async execute(query: any) {\n try {\n switch (query.selectedQueryType) {\n case MetricFindQueryTypes.Services:\n return this.handleServiceQuery();\n case MetricFindQueryTypes.MetricTypes:\n return this.handleMetricTypesQuery(query);\n case MetricFindQueryTypes.LabelKeys:\n return this.handleLabelKeysQuery(query);\n case MetricFindQueryTypes.LabelValues:\n return this.handleLabelValuesQuery(query);\n case MetricFindQueryTypes.ResourceTypes:\n return this.handleResourceTypeQuery(query);\n case MetricFindQueryTypes.Aligners:\n return this.handleAlignersQuery(query);\n case MetricFindQueryTypes.AlignmentPeriods:\n return this.handleAlignmentPeriodQuery();\n case MetricFindQueryTypes.Aggregations:\n return this.handleAggregationQuery(query);\n default:\n return [];\n }\n } catch (error) {\n console.error(`Could not run StackdriverMetricFindQuery ${query}`, error);\n return [];\n }\n }\n\n async handleServiceQuery() {\n const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);\n const services = extractServicesFromMetricDescriptors(metricDescriptors);\n return services.map(s => ({\n text: s.serviceShortName,\n value: s.service,\n expandable: true,\n }));\n }\n\n async handleMetricTypesQuery({ selectedService }) {\n if (!selectedService) {\n return [];\n }\n const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);\n return getMetricTypesByService(metricDescriptors, this.datasource.templateSrv.replace(selectedService)).map(s => ({\n text: s.displayName,\n value: s.type,\n expandable: true,\n }));\n }\n\n async handleLabelKeysQuery({ selectedMetricType }) {\n if (!selectedMetricType) {\n return [];\n }\n const labelKeys = await getLabelKeys(this.datasource, selectedMetricType);\n return labelKeys.map(this.toFindQueryResult);\n }\n\n async handleLabelValuesQuery({ selectedMetricType, labelKey }) {\n if (!selectedMetricType) {\n return [];\n }\n const refId = 'handleLabelValuesQuery';\n const response = await this.datasource.getLabels(selectedMetricType, refId);\n const interpolatedKey = this.datasource.templateSrv.replace(labelKey);\n const [name] = interpolatedKey.split('.').reverse();\n let values = [];\n if (response.meta && response.meta.metricLabels && response.meta.metricLabels.hasOwnProperty(name)) {\n values = response.meta.metricLabels[name];\n } else if (response.meta && response.meta.resourceLabels && response.meta.resourceLabels.hasOwnProperty(name)) {\n values = response.meta.resourceLabels[name];\n }\n\n return values.map(this.toFindQueryResult);\n }\n\n async handleResourceTypeQuery({ selectedMetricType }) {\n if (!selectedMetricType) {\n return [];\n }\n const refId = 'handleResourceTypeQueryQueryType';\n const response = await this.datasource.getLabels(selectedMetricType, refId);\n return response.meta.resourceTypes ? response.meta.resourceTypes.map(this.toFindQueryResult) : [];\n }\n\n async handleAlignersQuery({ selectedMetricType }) {\n if (!selectedMetricType) {\n return [];\n }\n const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);\n const { valueType, metricKind } = metricDescriptors.find(\n m => m.type === this.datasource.templateSrv.replace(selectedMetricType)\n );\n return getAlignmentOptionsByMetric(valueType, metricKind).map(this.toFindQueryResult);\n }\n\n async handleAggregationQuery({ selectedMetricType }) {\n if (!selectedMetricType) {\n return [];\n }\n const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);\n const { valueType, metricKind } = metricDescriptors.find(\n m => m.type === this.datasource.templateSrv.replace(selectedMetricType)\n );\n return getAggregationOptionsByMetric(valueType, metricKind).map(this.toFindQueryResult);\n }\n\n handleAlignmentPeriodQuery() {\n return alignmentPeriods.map(this.toFindQueryResult);\n }\n\n toFindQueryResult(x) {\n return isString(x) ? { text: x, expandable: true } : { ...x, expandable: true };\n }\n}\n","import { stackdriverUnitMappings } from './constants';\nimport appEvents from 'app/core/app_events';\nimport _ from 'lodash';\nimport StackdriverMetricFindQuery from './StackdriverMetricFindQuery';\nimport { StackdriverQuery, MetricDescriptor } from './types';\nimport { DataSourceApi, DataQueryOptions } from '@grafana/ui/src/types';\n\nexport default class StackdriverDatasource implements DataSourceApi {\n id: number;\n url: string;\n baseUrl: string;\n projectName: string;\n authenticationType: string;\n queryPromise: Promise;\n metricTypes: any[];\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private templateSrv, private timeSrv) {\n this.baseUrl = `/stackdriver/`;\n this.url = instanceSettings.url;\n this.id = instanceSettings.id;\n this.projectName = instanceSettings.jsonData.defaultProject || '';\n this.authenticationType = instanceSettings.jsonData.authenticationType || 'jwt';\n this.metricTypes = [];\n }\n\n async getTimeSeries(options) {\n const queries = options.targets\n .filter(target => {\n return !target.hide && target.metricType;\n })\n .map(t => {\n return {\n refId: t.refId,\n intervalMs: options.intervalMs,\n datasourceId: this.id,\n metricType: this.templateSrv.replace(t.metricType, options.scopedVars || {}),\n crossSeriesReducer: this.templateSrv.replace(t.crossSeriesReducer || 'REDUCE_MEAN', options.scopedVars || {}),\n perSeriesAligner: this.templateSrv.replace(t.perSeriesAligner, options.scopedVars || {}),\n alignmentPeriod: this.templateSrv.replace(t.alignmentPeriod, options.scopedVars || {}),\n groupBys: this.interpolateGroupBys(t.groupBys, options.scopedVars),\n view: t.view || 'FULL',\n filters: this.interpolateFilters(t.filters, options.scopedVars),\n aliasBy: this.templateSrv.replace(t.aliasBy, options.scopedVars || {}),\n type: 'timeSeriesQuery',\n };\n });\n\n if (queries.length > 0) {\n const { data } = await this.backendSrv.datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries,\n },\n });\n return data;\n } else {\n return { results: [] };\n }\n }\n\n interpolateFilters(filters: string[], scopedVars: object) {\n return (filters || []).map(f => {\n return this.templateSrv.replace(f, scopedVars || {}, 'regex');\n });\n }\n\n async getLabels(metricType: string, refId: string) {\n const response = await this.getTimeSeries({\n targets: [\n {\n refId: refId,\n datasourceId: this.id,\n metricType: this.templateSrv.replace(metricType),\n crossSeriesReducer: 'REDUCE_NONE',\n view: 'HEADERS',\n },\n ],\n range: this.timeSrv.timeRange(),\n });\n\n return response.results[refId];\n }\n\n interpolateGroupBys(groupBys: string[], scopedVars): string[] {\n let interpolatedGroupBys = [];\n (groupBys || []).forEach(gb => {\n const interpolated = this.templateSrv.replace(gb, scopedVars || {}, 'csv').split(',');\n if (Array.isArray(interpolated)) {\n interpolatedGroupBys = interpolatedGroupBys.concat(interpolated);\n } else {\n interpolatedGroupBys.push(interpolated);\n }\n });\n return interpolatedGroupBys;\n }\n\n resolvePanelUnitFromTargets(targets: any[]) {\n let unit;\n if (targets.length > 0 && targets.every(t => t.unit === targets[0].unit)) {\n if (stackdriverUnitMappings.hasOwnProperty(targets[0].unit)) {\n unit = stackdriverUnitMappings[targets[0].unit];\n }\n }\n return unit;\n }\n\n async query(options: DataQueryOptions) {\n const result = [];\n const data = await this.getTimeSeries(options);\n if (data.results) {\n Object['values'](data.results).forEach(queryRes => {\n if (!queryRes.series) {\n return;\n }\n const unit = this.resolvePanelUnitFromTargets(options.targets);\n queryRes.series.forEach(series => {\n let timeSerie: any = {\n target: series.name,\n datapoints: series.points,\n refId: queryRes.refId,\n meta: queryRes.meta,\n };\n if (unit) {\n timeSerie = { ...timeSerie, unit };\n }\n result.push(timeSerie);\n });\n });\n return { data: result };\n } else {\n return { data: [] };\n }\n }\n\n async annotationQuery(options) {\n const annotation = options.annotation;\n const queries = [\n {\n refId: 'annotationQuery',\n datasourceId: this.id,\n metricType: this.templateSrv.replace(annotation.target.metricType, options.scopedVars || {}),\n crossSeriesReducer: 'REDUCE_NONE',\n perSeriesAligner: 'ALIGN_NONE',\n title: this.templateSrv.replace(annotation.target.title, options.scopedVars || {}),\n text: this.templateSrv.replace(annotation.target.text, options.scopedVars || {}),\n tags: this.templateSrv.replace(annotation.target.tags, options.scopedVars || {}),\n view: 'FULL',\n filters: (annotation.target.filters || []).map(f => {\n return this.templateSrv.replace(f, options.scopedVars || {});\n }),\n type: 'annotationQuery',\n },\n ];\n\n const { data } = await this.backendSrv.datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries,\n },\n });\n\n const results = data.results['annotationQuery'].tables[0].rows.map(v => {\n return {\n annotation: annotation,\n time: Date.parse(v[0]),\n title: v[1],\n tags: [],\n text: v[3],\n };\n });\n\n return results;\n }\n\n async metricFindQuery(query) {\n const stackdriverMetricFindQuery = new StackdriverMetricFindQuery(this);\n return stackdriverMetricFindQuery.execute(query);\n }\n\n async testDatasource() {\n let status, message;\n const defaultErrorMessage = 'Cannot connect to Stackdriver API';\n try {\n const projectName = await this.getDefaultProject();\n const path = `v3/projects/${projectName}/metricDescriptors`;\n const response = await this.doRequest(`${this.baseUrl}${path}`);\n if (response.status === 200) {\n status = 'success';\n message = 'Successfully queried the Stackdriver API.';\n } else {\n status = 'error';\n message = response.statusText ? response.statusText : defaultErrorMessage;\n }\n } catch (error) {\n status = 'error';\n if (_.isString(error)) {\n message = error;\n } else {\n message = 'Stackdriver: ';\n message += error.statusText ? error.statusText : defaultErrorMessage;\n if (error.data && error.data.error && error.data.error.code) {\n message += ': ' + error.data.error.code + '. ' + error.data.error.message;\n }\n }\n } finally {\n return {\n status,\n message,\n };\n }\n }\n\n formatStackdriverError(error) {\n let message = 'Stackdriver: ';\n message += error.statusText ? error.statusText + ': ' : '';\n if (error.data && error.data.error) {\n try {\n const res = JSON.parse(error.data.error);\n message += res.error.code + '. ' + res.error.message;\n } catch (err) {\n message += error.data.error;\n }\n } else {\n message += 'Cannot connect to Stackdriver API';\n }\n return message;\n }\n\n async getDefaultProject() {\n try {\n if (this.authenticationType === 'gce' || !this.projectName) {\n const { data } = await this.backendSrv.datasourceRequest({\n url: '/api/tsdb/query',\n method: 'POST',\n data: {\n queries: [\n {\n refId: 'ensureDefaultProjectQuery',\n type: 'ensureDefaultProjectQuery',\n datasourceId: this.id,\n },\n ],\n },\n });\n this.projectName = data.results.ensureDefaultProjectQuery.meta.defaultProject;\n return this.projectName;\n } else {\n return this.projectName;\n }\n } catch (error) {\n throw this.formatStackdriverError(error);\n }\n }\n\n async getMetricTypes(projectName: string): Promise {\n try {\n if (this.metricTypes.length === 0) {\n const metricsApiPath = `v3/projects/${projectName}/metricDescriptors`;\n const { data } = await this.doRequest(`${this.baseUrl}${metricsApiPath}`);\n\n this.metricTypes = data.metricDescriptors.map(m => {\n const [service] = m.type.split('/');\n const [serviceShortName] = service.split('.');\n m.service = service;\n m.serviceShortName = serviceShortName;\n m.displayName = m.displayName || m.type;\n\n return m;\n });\n }\n\n return this.metricTypes;\n } catch (error) {\n appEvents.emit('ds-request-error', this.formatStackdriverError(error));\n return [];\n }\n }\n\n async doRequest(url, maxRetries = 1) {\n return this.backendSrv\n .datasourceRequest({\n url: this.url + url,\n method: 'GET',\n })\n .catch(error => {\n if (maxRetries > 0) {\n return this.doRequest(url, maxRetries - 1);\n }\n\n throw error;\n });\n }\n}\n","export class StackdriverConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/stackdriver/partials/config.html';\n datasourceSrv: any;\n current: any;\n jsonText: string;\n validationErrors: string[] = [];\n inputDataValid: boolean;\n authenticationTypes: any[];\n defaultAuthenticationType: string;\n\n /** @ngInject */\n constructor(datasourceSrv) {\n this.defaultAuthenticationType = 'jwt';\n this.datasourceSrv = datasourceSrv;\n this.current.jsonData = this.current.jsonData || {};\n this.current.jsonData.authenticationType = this.current.jsonData.authenticationType\n ? this.current.jsonData.authenticationType\n : this.defaultAuthenticationType;\n this.current.secureJsonData = this.current.secureJsonData || {};\n this.current.secureJsonFields = this.current.secureJsonFields || {};\n this.authenticationTypes = [\n { key: this.defaultAuthenticationType, value: 'Google JWT File' },\n { key: 'gce', value: 'GCE Default Service Account' },\n ];\n }\n\n save(jwt) {\n this.current.secureJsonData.privateKey = jwt.private_key;\n this.current.jsonData.tokenUri = jwt.token_uri;\n this.current.jsonData.clientEmail = jwt.client_email;\n this.current.jsonData.defaultProject = jwt.project_id;\n }\n\n validateJwt(jwt) {\n this.resetValidationMessages();\n if (!jwt.private_key || jwt.private_key.length === 0) {\n this.validationErrors.push('Private key field missing in JWT file.');\n }\n\n if (!jwt.token_uri || jwt.token_uri.length === 0) {\n this.validationErrors.push('Token URI field missing in JWT file.');\n }\n\n if (!jwt.client_email || jwt.client_email.length === 0) {\n this.validationErrors.push('Client Email field missing in JWT file.');\n }\n\n if (!jwt.project_id || jwt.project_id.length === 0) {\n this.validationErrors.push('Project Id field missing in JWT file.');\n }\n\n if (this.validationErrors.length === 0) {\n this.inputDataValid = true;\n return true;\n }\n\n return false;\n }\n\n onUpload(json) {\n this.jsonText = '';\n if (this.validateJwt(json)) {\n this.save(json);\n }\n }\n\n onPasteJwt(e) {\n try {\n const json = JSON.parse(e.originalEvent.clipboardData.getData('text/plain') || this.jsonText);\n if (this.validateJwt(json)) {\n this.save(json);\n }\n } catch (error) {\n this.resetValidationMessages();\n this.validationErrors.push(`Invalid json: ${error.message}`);\n }\n }\n\n resetValidationMessages() {\n this.validationErrors = [];\n this.inputDataValid = false;\n this.jsonText = '';\n\n this.current.jsonData = Object.assign({}, { authenticationType: this.current.jsonData.authenticationType });\n this.current.secureJsonData = {};\n this.current.secureJsonFields = {};\n }\n}\n","import _ from 'lodash';\n\nimport { QueryCtrl } from 'app/plugins/sdk';\nimport { StackdriverQuery } from './types';\nimport { TemplateSrv } from 'app/features/templating/template_srv';\n\nexport class StackdriverQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n templateSrv: TemplateSrv;\n\n /** @ngInject */\n constructor($scope, $injector, templateSrv) {\n super($scope, $injector);\n this.templateSrv = templateSrv;\n this.onQueryChange = this.onQueryChange.bind(this);\n this.onExecuteQuery = this.onExecuteQuery.bind(this);\n }\n\n onQueryChange(target: StackdriverQuery) {\n Object.assign(this.target, target);\n }\n\n onExecuteQuery() {\n this.$scope.ctrl.refresh();\n }\n}\n","import { TemplateSrv } from 'app/features/templating/template_srv';\n\nexport class StackdriverAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n annotation: any;\n templateSrv: TemplateSrv;\n\n /** @ngInject */\n constructor(templateSrv) {\n this.templateSrv = templateSrv;\n this.annotation.target = this.annotation.target || {};\n this.onQueryChange = this.onQueryChange.bind(this);\n }\n\n onQueryChange(target) {\n Object.assign(this.annotation.target, target);\n }\n}\n","import React, { FC } from 'react';\n\ninterface Props {\n onValueChange: (e) => void;\n options: any[];\n value: string;\n label: string;\n}\n\nconst SimpleSelect: FC = props => {\n const { label, onValueChange, value, options } = props;\n return (\n
    \n {label}\n
    \n \n
    \n
    \n );\n};\n\nexport default SimpleSelect;\n","import React, { PureComponent } from 'react';\nimport { VariableQueryProps } from 'app/types/plugins';\nimport SimpleSelect from './SimpleSelect';\nimport { getMetricTypes, getLabelKeys, extractServicesFromMetricDescriptors } from '../functions';\nimport { MetricFindQueryTypes, VariableQueryData } from '../types';\n\nexport class StackdriverVariableQueryEditor extends PureComponent {\n queryTypes: Array<{ value: string; name: string }> = [\n { value: MetricFindQueryTypes.Services, name: 'Services' },\n { value: MetricFindQueryTypes.MetricTypes, name: 'Metric Types' },\n { value: MetricFindQueryTypes.LabelKeys, name: 'Label Keys' },\n { value: MetricFindQueryTypes.LabelValues, name: 'Label Values' },\n { value: MetricFindQueryTypes.ResourceTypes, name: 'Resource Types' },\n { value: MetricFindQueryTypes.Aggregations, name: 'Aggregations' },\n { value: MetricFindQueryTypes.Aligners, name: 'Aligners' },\n { value: MetricFindQueryTypes.AlignmentPeriods, name: 'Alignment Periods' },\n ];\n\n defaults: VariableQueryData = {\n selectedQueryType: this.queryTypes[0].value,\n metricDescriptors: [],\n selectedService: '',\n selectedMetricType: '',\n labels: [],\n labelKey: '',\n metricTypes: [],\n services: [],\n };\n\n constructor(props: VariableQueryProps) {\n super(props);\n this.state = Object.assign(this.defaults, this.props.query);\n }\n\n async componentDidMount() {\n const metricDescriptors = await this.props.datasource.getMetricTypes(this.props.datasource.projectName);\n const services = extractServicesFromMetricDescriptors(metricDescriptors).map(m => ({\n value: m.service,\n name: m.serviceShortName,\n }));\n\n let selectedService = '';\n if (services.some(s => s.value === this.props.templateSrv.replace(this.state.selectedService))) {\n selectedService = this.state.selectedService;\n } else if (services && services.length > 0) {\n selectedService = services[0].value;\n }\n\n const { metricTypes, selectedMetricType } = getMetricTypes(\n metricDescriptors,\n this.state.selectedMetricType,\n this.props.templateSrv.replace(this.state.selectedMetricType),\n this.props.templateSrv.replace(selectedService)\n );\n const state: any = {\n services,\n selectedService,\n metricTypes,\n selectedMetricType,\n metricDescriptors,\n ...(await this.getLabels(selectedMetricType)),\n };\n this.setState(state);\n }\n\n async onQueryTypeChange(event) {\n const state: any = {\n selectedQueryType: event.target.value,\n ...(await this.getLabels(this.state.selectedMetricType, event.target.value)),\n };\n this.setState(state);\n }\n\n async onServiceChange(event) {\n const { metricTypes, selectedMetricType } = getMetricTypes(\n this.state.metricDescriptors,\n this.state.selectedMetricType,\n this.props.templateSrv.replace(this.state.selectedMetricType),\n this.props.templateSrv.replace(event.target.value)\n );\n const state: any = {\n selectedService: event.target.value,\n metricTypes,\n selectedMetricType,\n ...(await this.getLabels(selectedMetricType)),\n };\n this.setState(state);\n }\n\n async onMetricTypeChange(event) {\n const state: any = { selectedMetricType: event.target.value, ...(await this.getLabels(event.target.value)) };\n this.setState(state);\n }\n\n onLabelKeyChange(event) {\n this.setState({ labelKey: event.target.value });\n }\n\n componentDidUpdate() {\n const { metricDescriptors, labels, metricTypes, services, ...queryModel } = this.state;\n const query = this.queryTypes.find(q => q.value === this.state.selectedQueryType);\n this.props.onChange(queryModel, `Stackdriver - ${query.name}`);\n }\n\n async getLabels(selectedMetricType, selectedQueryType = this.state.selectedQueryType) {\n let result = { labels: this.state.labels, labelKey: this.state.labelKey };\n if (selectedMetricType && selectedQueryType === MetricFindQueryTypes.LabelValues) {\n const labels = await getLabelKeys(this.props.datasource, selectedMetricType);\n const labelKey = labels.some(l => l === this.props.templateSrv.replace(this.state.labelKey))\n ? this.state.labelKey\n : labels[0];\n result = { labels, labelKey };\n }\n return result;\n }\n\n insertTemplateVariables(options) {\n const templateVariables = this.props.templateSrv.variables.map(v => ({ name: `$${v.name}`, value: `$${v.name}` }));\n return [...templateVariables, ...options];\n }\n\n renderQueryTypeSwitch(queryType) {\n switch (queryType) {\n case MetricFindQueryTypes.MetricTypes:\n return (\n this.onServiceChange(e)}\n label=\"Service\"\n />\n );\n case MetricFindQueryTypes.LabelKeys:\n case MetricFindQueryTypes.LabelValues:\n case MetricFindQueryTypes.ResourceTypes:\n return (\n <>\n this.onServiceChange(e)}\n label=\"Service\"\n />\n this.onMetricTypeChange(e)}\n label=\"Metric Type\"\n />\n {queryType === MetricFindQueryTypes.LabelValues && (\n ({ value: l, name: l })))}\n onValueChange={e => this.onLabelKeyChange(e)}\n label=\"Label Key\"\n />\n )}\n \n );\n case MetricFindQueryTypes.Aligners:\n case MetricFindQueryTypes.Aggregations:\n return (\n <>\n this.onServiceChange(e)}\n label=\"Service\"\n />\n this.onMetricTypeChange(e)}\n label=\"Metric Type\"\n />\n \n );\n default:\n return '';\n }\n }\n\n render() {\n return (\n <>\n this.onQueryTypeChange(e)}\n label=\"Query Type\"\n />\n {this.renderQueryTypeSwitch(this.state.selectedQueryType)}\n \n );\n }\n}\n","import _ from 'lodash';\nimport kbn from 'app/core/utils/kbn';\n\nexport default class TimeGrainConverter {\n static createISO8601Duration(timeGrain, timeGrainUnit) {\n const timeIntervals = ['hour', 'minute', 'h', 'm'];\n if (_.includes(timeIntervals, timeGrainUnit)) {\n return `PT${timeGrain}${timeGrainUnit[0].toUpperCase()}`;\n }\n\n return `P${timeGrain}${timeGrainUnit[0].toUpperCase()}`;\n }\n\n static createISO8601DurationFromInterval(interval: string) {\n const timeGrain = +interval.slice(0, interval.length - 1);\n const unit = interval[interval.length - 1];\n\n if (interval.indexOf('ms') > -1) {\n return TimeGrainConverter.createISO8601Duration(1, 'm');\n }\n\n if (interval[interval.length - 1] === 's') {\n let toMinutes = (timeGrain * 60) % 60;\n\n if (toMinutes < 1) {\n toMinutes = 1;\n }\n\n return TimeGrainConverter.createISO8601Duration(toMinutes, 'm');\n }\n\n return TimeGrainConverter.createISO8601Duration(timeGrain, unit);\n }\n\n static findClosestTimeGrain(interval, allowedTimeGrains) {\n const timeGrains = _.filter(allowedTimeGrains, o => o !== 'auto');\n\n let closest = timeGrains[0];\n const intervalMs = kbn.interval_to_ms(interval);\n\n for (let i = 0; i < timeGrains.length; i++) {\n // abs (num - val) < abs (num - curr):\n if (intervalMs > kbn.interval_to_ms(timeGrains[i])) {\n if (i + 1 < timeGrains.length) {\n closest = timeGrains[i + 1];\n } else {\n closest = timeGrains[i];\n }\n }\n }\n\n return closest;\n }\n\n static createTimeGrainFromISO8601Duration(duration: string) {\n let offset = 1;\n if (duration.substring(0, 2) === 'PT') {\n offset = 2;\n }\n\n const value = duration.substring(offset, duration.length - 1);\n const unit = duration.substring(duration.length - 1);\n\n return value + ' ' + TimeGrainConverter.timeUnitToText(+value, unit);\n }\n\n static timeUnitToText(value: number, unit: string) {\n let text = '';\n\n if (unit === 'S') {\n text = 'second';\n }\n if (unit === 'M') {\n text = 'minute';\n }\n if (unit === 'H') {\n text = 'hour';\n }\n if (unit === 'D') {\n text = 'day';\n }\n\n if (value > 1) {\n return text + 's';\n }\n\n return text;\n }\n\n static createKbnUnitFromISO8601Duration(duration: string) {\n if (duration === 'auto') {\n return 'auto';\n }\n\n let offset = 1;\n if (duration.substring(0, 2) === 'PT') {\n offset = 2;\n }\n\n const value = duration.substring(offset, duration.length - 1);\n const unit = duration.substring(duration.length - 1);\n\n return value + TimeGrainConverter.timeUnitToKbn(+value, unit);\n }\n\n static timeUnitToKbn(value: number, unit: string) {\n if (unit === 'S') {\n return 's';\n }\n if (unit === 'M') {\n return 'm';\n }\n if (unit === 'H') {\n return 'h';\n }\n if (unit === 'D') {\n return 'd';\n }\n\n return '';\n }\n}\n","import StackdriverDatasource from './datasource';\nimport { StackdriverQueryCtrl } from './query_ctrl';\nimport { StackdriverConfigCtrl } from './config_ctrl';\nimport { StackdriverAnnotationsQueryCtrl } from './annotations_query_ctrl';\nimport { StackdriverVariableQueryEditor } from './components/VariableQueryEditor';\n\nexport {\n StackdriverDatasource as Datasource,\n StackdriverQueryCtrl as QueryCtrl,\n StackdriverConfigCtrl as ConfigCtrl,\n StackdriverAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n StackdriverVariableQueryEditor as VariableQueryEditor,\n};\n","import moment from 'moment';\nimport _ from 'lodash';\nimport TimeGrainConverter from '../time_grain_converter';\n\nexport default class ResponseParser {\n constructor(private results) {}\n\n parseQueryResult() {\n const data: any[] = [];\n for (let i = 0; i < this.results.length; i++) {\n for (let j = 0; j < this.results[i].result.data.value.length; j++) {\n for (let k = 0; k < this.results[i].result.data.value[j].timeseries.length; k++) {\n const alias = this.results[i].query.alias;\n data.push({\n target: ResponseParser.createTarget(\n this.results[i].result.data.value[j],\n this.results[i].result.data.value[j].timeseries[k].metadatavalues,\n alias\n ),\n datapoints: ResponseParser.convertDataToPoints(this.results[i].result.data.value[j].timeseries[k].data),\n });\n }\n }\n }\n return data;\n }\n\n static createTarget(data, metadatavalues, alias: string) {\n const resourceGroup = ResponseParser.parseResourceGroupFromId(data.id);\n const resourceName = ResponseParser.parseResourceNameFromId(data.id);\n const namespace = ResponseParser.parseNamespaceFromId(data.id, resourceName);\n if (alias) {\n const regex = /\\{\\{([\\s\\S]+?)\\}\\}/g;\n return alias.replace(regex, (match, g1, g2) => {\n const group = g1 || g2;\n\n if (group === 'resourcegroup') {\n return resourceGroup;\n } else if (group === 'namespace') {\n return namespace;\n } else if (group === 'resourcename') {\n return resourceName;\n } else if (group === 'metric') {\n return data.name.value;\n } else if (group === 'dimensionname') {\n return metadatavalues && metadatavalues.length > 0 ? metadatavalues[0].name.value : '';\n } else if (group === 'dimensionvalue') {\n return metadatavalues && metadatavalues.length > 0 ? metadatavalues[0].value : '';\n }\n\n return match;\n });\n }\n\n if (metadatavalues && metadatavalues.length > 0) {\n return `${resourceName}{${metadatavalues[0].name.value}=${metadatavalues[0].value}}.${data.name.value}`;\n }\n\n return `${resourceName}.${data.name.value}`;\n }\n\n static parseResourceGroupFromId(id: string) {\n const startIndex = id.indexOf('/resourceGroups/') + 16;\n const endIndex = id.indexOf('/providers');\n\n return id.substring(startIndex, endIndex);\n }\n\n static parseNamespaceFromId(id: string, resourceName: string) {\n const startIndex = id.indexOf('/providers/') + 11;\n const endIndex = id.indexOf('/' + resourceName);\n\n return id.substring(startIndex, endIndex);\n }\n\n static parseResourceNameFromId(id: string) {\n const endIndex = id.lastIndexOf('/providers');\n const startIndex = id.slice(0, endIndex).lastIndexOf('/') + 1;\n\n return id.substring(startIndex, endIndex);\n }\n\n static convertDataToPoints(timeSeriesData) {\n const dataPoints: any[] = [];\n\n for (let k = 0; k < timeSeriesData.length; k++) {\n const epoch = ResponseParser.dateTimeToEpoch(timeSeriesData[k].timeStamp);\n const aggKey = ResponseParser.getKeyForAggregationField(timeSeriesData[k]);\n\n if (aggKey) {\n dataPoints.push([timeSeriesData[k][aggKey], epoch]);\n }\n }\n\n return dataPoints;\n }\n\n static dateTimeToEpoch(dateTime) {\n return moment(dateTime).valueOf();\n }\n\n static getKeyForAggregationField(dataObj): string {\n const keys = _.keys(dataObj);\n if (keys.length < 2) {\n return '';\n }\n\n return _.intersection(keys, ['total', 'average', 'maximum', 'minimum', 'count'])[0];\n }\n\n static parseResponseValues(result: any, textFieldName: string, valueFieldName: string) {\n const list: any[] = [];\n for (let i = 0; i < result.data.value.length; i++) {\n if (!_.find(list, ['value', _.get(result.data.value[i], valueFieldName)])) {\n list.push({\n text: _.get(result.data.value[i], textFieldName),\n value: _.get(result.data.value[i], valueFieldName),\n });\n }\n }\n return list;\n }\n\n static parseResourceNames(result: any, metricDefinition: string) {\n const list: any[] = [];\n for (let i = 0; i < result.data.value.length; i++) {\n if (result.data.value[i].type === metricDefinition) {\n list.push({\n text: result.data.value[i].name,\n value: result.data.value[i].name,\n });\n }\n }\n\n return list;\n }\n\n static parseMetadata(result: any, metricName: string) {\n const metricData = _.find(result.data.value, o => {\n return _.get(o, 'name.value') === metricName;\n });\n\n const defaultAggTypes = ['None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'];\n\n return {\n primaryAggType: metricData.primaryAggregationType,\n supportedAggTypes: metricData.supportedAggregationTypes || defaultAggTypes,\n supportedTimeGrains: ResponseParser.parseTimeGrains(metricData.metricAvailabilities || []),\n dimensions: ResponseParser.parseDimensions(metricData),\n };\n }\n\n static parseTimeGrains(metricAvailabilities) {\n const timeGrains: any[] = [];\n metricAvailabilities.forEach(avail => {\n if (avail.timeGrain) {\n timeGrains.push({\n text: TimeGrainConverter.createTimeGrainFromISO8601Duration(avail.timeGrain),\n value: avail.timeGrain,\n });\n }\n });\n return timeGrains;\n }\n\n static parseDimensions(metricData: any) {\n const dimensions: any[] = [];\n if (!metricData.dimensions || metricData.dimensions.length === 0) {\n return dimensions;\n }\n\n if (!metricData.isDimensionRequired) {\n dimensions.push({ text: 'None', value: 'None' });\n }\n\n for (let i = 0; i < metricData.dimensions.length; i++) {\n dimensions.push({\n text: metricData.dimensions[i].localizedValue,\n value: metricData.dimensions[i].value,\n });\n }\n return dimensions;\n }\n}\n","import TimegrainConverter from '../time_grain_converter';\n\nexport default class AzureMonitorFilterBuilder {\n aggregation: string;\n timeGrainInterval = '';\n dimension: string;\n dimensionFilter: string;\n allowedTimeGrains = ['1m', '5m', '15m', '30m', '1h', '6h', '12h', '1d'];\n\n constructor(\n private metricName: string,\n private from,\n private to,\n public timeGrain: string,\n public grafanaInterval: string\n ) {}\n\n setAllowedTimeGrains(timeGrains) {\n this.allowedTimeGrains = [];\n timeGrains.forEach(tg => {\n if (tg.value === 'auto') {\n this.allowedTimeGrains.push(tg.value);\n } else {\n this.allowedTimeGrains.push(TimegrainConverter.createKbnUnitFromISO8601Duration(tg.value));\n }\n });\n }\n\n setAggregation(agg) {\n this.aggregation = agg;\n }\n\n setDimensionFilter(dimension, dimensionFilter) {\n this.dimension = dimension;\n this.dimensionFilter = dimensionFilter;\n }\n\n generateFilter() {\n let filter = this.createDatetimeAndTimeGrainConditions();\n\n if (this.aggregation) {\n filter += `&aggregation=${this.aggregation}`;\n }\n\n if (this.metricName && this.metricName.trim().length > 0) {\n filter += `&metricnames=${this.metricName}`;\n }\n\n if (this.dimension && this.dimensionFilter && this.dimensionFilter.trim().length > 0) {\n filter += `&$filter=${this.dimension} eq '${this.dimensionFilter}'`;\n }\n\n return filter;\n }\n\n createDatetimeAndTimeGrainConditions() {\n const dateTimeCondition = `timespan=${this.from.utc().format()}/${this.to.utc().format()}`;\n\n if (this.timeGrain === 'auto') {\n this.timeGrain = this.calculateAutoTimeGrain();\n }\n const timeGrainCondition = `&interval=${this.timeGrain}`;\n\n return dateTimeCondition + timeGrainCondition;\n }\n\n calculateAutoTimeGrain() {\n const roundedInterval = TimegrainConverter.findClosestTimeGrain(this.grafanaInterval, this.allowedTimeGrains);\n\n return TimegrainConverter.createISO8601DurationFromInterval(roundedInterval);\n }\n}\n","export default class UrlBuilder {\n static buildAzureMonitorQueryUrl(\n baseUrl: string,\n resourceGroup: string,\n metricDefinition: string,\n resourceName: string,\n apiVersion: string,\n filter: string\n ) {\n if ((metricDefinition.match(/\\//g) || []).length > 1) {\n const rn = resourceName.split('/');\n const service = metricDefinition.substring(metricDefinition.lastIndexOf('/') + 1);\n const md = metricDefinition.substring(0, metricDefinition.lastIndexOf('/'));\n return (\n `${baseUrl}/${resourceGroup}/providers/${md}/${rn[0]}/${service}/${rn[1]}` +\n `/providers/microsoft.insights/metrics?api-version=${apiVersion}&${filter}`\n );\n }\n\n return (\n `${baseUrl}/${resourceGroup}/providers/${metricDefinition}/${resourceName}` +\n `/providers/microsoft.insights/metrics?api-version=${apiVersion}&${filter}`\n );\n }\n\n static buildAzureMonitorGetMetricNamesUrl(\n baseUrl: string,\n resourceGroup: string,\n metricDefinition: string,\n resourceName: string,\n apiVersion: string\n ) {\n if ((metricDefinition.match(/\\//g) || []).length > 1) {\n const rn = resourceName.split('/');\n const service = metricDefinition.substring(metricDefinition.lastIndexOf('/') + 1);\n const md = metricDefinition.substring(0, metricDefinition.lastIndexOf('/'));\n return (\n `${baseUrl}/${resourceGroup}/providers/${md}/${rn[0]}/${service}/${rn[1]}` +\n `/providers/microsoft.insights/metricdefinitions?api-version=${apiVersion}`\n );\n }\n\n return (\n `${baseUrl}/${resourceGroup}/providers/${metricDefinition}/${resourceName}` +\n `/providers/microsoft.insights/metricdefinitions?api-version=${apiVersion}`\n );\n }\n}\n","export default class SupportedNamespaces {\n supportedMetricNamespaces = {\n azuremonitor: [\n 'Microsoft.AnalysisServices/servers',\n 'Microsoft.ApiManagement/service',\n 'Microsoft.Automation/automationAccounts',\n 'Microsoft.Batch/batchAccounts',\n 'Microsoft.Cache/redis',\n 'Microsoft.ClassicCompute/virtualMachines',\n 'Microsoft.ClassicCompute/domainNames/slots/roles',\n 'Microsoft.CognitiveServices/accounts',\n 'Microsoft.Compute/virtualMachines',\n 'Microsoft.Compute/virtualMachineScaleSets',\n 'Microsoft.ContainerInstance/containerGroups',\n 'Microsoft.ContainerRegistry/registries',\n 'Microsoft.ContainerService/managedClusters',\n 'Microsoft.CustomerInsights/hubs',\n 'Microsoft.DataBoxEdge/dataBoxEdgeDevices',\n 'Microsoft.DataFactory/datafactories',\n 'Microsoft.DataFactory/factories',\n 'Microsoft.DataLakeAnalytics/accounts',\n 'Microsoft.DataLakeStore/accounts',\n 'Microsoft.DBforMariaDB/servers',\n 'Microsoft.DBforMySQL/servers',\n 'Microsoft.DBforPostgreSQL/servers',\n 'Microsoft.Devices/IotHubs',\n 'Microsoft.Devices/provisioningServices',\n 'Microsoft.DocumentDB/databaseAccounts',\n 'Microsoft.EventGrid/topics',\n 'Microsoft.EventGrid/eventSubscriptions',\n 'Microsoft.EventGrid/extensionTopics',\n 'Microsoft.EventHub/namespaces',\n 'Microsoft.EventHub/clusters',\n 'Microsoft.HDInsight/clusters',\n 'Microsoft.Insights/AutoscaleSettings',\n 'Microsoft.Insights/components',\n 'Microsoft.KeyVault/vaults',\n 'Microsoft.Kusto/clusters',\n 'Microsoft.LocationBasedServices/accounts',\n 'Microsoft.Logic/workflows',\n 'Microsoft.Logic/integrationServiceEnvironments',\n 'Microsoft.NetApp/netAppAccounts/capacityPools',\n 'Microsoft.NetApp/netAppAccounts/capacityPools/Volumes',\n 'Microsoft.Network/networkInterfaces',\n 'Microsoft.Network/loadBalancers',\n 'Microsoft.Network/dnsZones',\n 'Microsoft.Network/publicIPAddresses',\n 'Microsoft.Network/azureFirewalls',\n 'Microsoft.Network/applicationGateways',\n 'Microsoft.Network/virtualNetworkGateways',\n 'Microsoft.Network/expressRouteCircuits',\n 'Microsoft.Network/expressRouteCircuits/Peerings',\n 'Microsoft.Network/connections',\n 'Microsoft.Network/trafficManagerProfiles',\n 'Microsoft.Network/networkWatchers/connectionMonitors',\n 'Microsoft.Network/frontdoors',\n 'Microsoft.NotificationHubs/namespaces/notificationHubs',\n 'Microsoft.PowerBIDedicated/capacities',\n 'Microsoft.Relay/namespaces',\n 'Microsoft.Search/searchServices',\n 'Microsoft.ServiceBus/namespaces',\n 'Microsoft.Sql/servers/databases',\n 'Microsoft.Sql/servers/elasticPools',\n 'Microsoft.Sql/managedInstances',\n 'Microsoft.Storage/storageAccounts',\n 'Microsoft.Storage/storageAccounts/blobServices',\n 'Microsoft.Storage/storageAccounts/fileServices',\n 'Microsoft.Storage/storageAccounts/queueServices',\n 'Microsoft.Storage/storageAccounts/tableServices',\n 'Microsoft.StorageSync/storageSyncServices',\n 'Microsoft.StorageSync/storageSyncServices/syncGroups',\n 'Microsoft.StorageSync/storageSyncServices/syncGroups/serverEndpoints',\n 'Microsoft.StorageSync/storageSyncServices/registeredServers',\n 'Microsoft.StreamAnalytics/streamingJobs',\n 'Microsoft.Web/serverfarms',\n 'Microsoft.Web/sites',\n 'Microsoft.Web/sites/slots',\n 'Microsoft.Web/hostingEnvironments/multiRolePools',\n 'Microsoft.Web/hostingEnvironments/workerPools',\n ],\n govazuremonitor: [\n 'Microsoft.AnalysisServices/servers',\n 'Microsoft.ApiManagement/service',\n 'Microsoft.Batch/batchAccounts',\n 'Microsoft.Cache/redis',\n 'Microsoft.ClassicCompute/virtualMachines',\n 'Microsoft.ClassicCompute/domainNames/slots/roles',\n 'Microsoft.CognitiveServices/accounts',\n 'Microsoft.Compute/virtualMachines',\n 'Microsoft.Compute/virtualMachineScaleSets',\n 'Microsoft.ContainerRegistry/registries',\n 'Microsoft.DBforMySQL/servers',\n 'Microsoft.DBforPostgreSQL/servers',\n 'Microsoft.Devices/IotHubs',\n 'Microsoft.Devices/provisioningServices',\n 'Microsoft.EventGrid/topics',\n 'Microsoft.EventGrid/eventSubscriptions',\n 'Microsoft.EventGrid/extensionTopics',\n 'Microsoft.EventHub/namespaces',\n 'Microsoft.EventHub/clusters',\n 'Microsoft.Insights/AutoscaleSettings',\n 'Microsoft.KeyVault/vaults',\n 'Microsoft.Logic/workflows',\n 'Microsoft.Network/networkInterfaces',\n 'Microsoft.Network/loadBalancers',\n 'Microsoft.Network/dnsZones',\n 'Microsoft.Network/publicIPAddresses',\n 'Microsoft.Network/azureFirewalls',\n 'Microsoft.Network/applicationGateways',\n 'Microsoft.Network/virtualNetworkGateways',\n 'Microsoft.Network/expressRouteCircuits',\n 'Microsoft.Network/expressRouteCircuits/Peerings',\n 'Microsoft.Network/connections',\n 'Microsoft.Network/trafficManagerProfiles',\n 'Microsoft.Network/networkWatchers/connectionMonitors',\n 'Microsoft.Network/frontdoors',\n 'Microsoft.NotificationHubs/namespaces/notificationHubs',\n 'Microsoft.OperationalInsights/workspaces',\n 'Microsoft.PowerBIDedicated/capacities',\n 'Microsoft.Relay/namespaces',\n 'Microsoft.ServiceBus/namespaces',\n 'Microsoft.Sql/servers/databases',\n 'Microsoft.Sql/servers/elasticPools',\n 'Microsoft.Sql/managedInstances',\n 'Microsoft.Storage/storageAccounts',\n 'Microsoft.Storage/storageAccounts/blobServices',\n 'Microsoft.Storage/storageAccounts/fileServices',\n 'Microsoft.Storage/storageAccounts/queueServices',\n 'Microsoft.Storage/storageAccounts/tableServices',\n 'Microsoft.Web/serverfarms',\n 'Microsoft.Web/sites',\n 'Microsoft.Web/sites/slots',\n 'Microsoft.Web/hostingEnvironments/multiRolePools',\n 'Microsoft.Web/hostingEnvironments/workerPools',\n ],\n germanyazuremonitor: [\n 'Microsoft.AnalysisServices/servers',\n 'Microsoft.Batch/batchAccounts',\n 'Microsoft.Cache/redis',\n 'Microsoft.ClassicCompute/virtualMachines',\n 'Microsoft.ClassicCompute/domainNames/slots/roles',\n 'Microsoft.Compute/virtualMachines',\n 'Microsoft.Compute/virtualMachineScaleSets',\n 'Microsoft.DBforMySQL/servers',\n 'Microsoft.DBforPostgreSQL/servers',\n 'Microsoft.Devices/IotHubs',\n 'Microsoft.Devices/provisioningServices',\n 'Microsoft.EventHub/namespaces',\n 'Microsoft.EventHub/clusters',\n 'Microsoft.Insights/AutoscaleSettings',\n 'Microsoft.KeyVault/vaults',\n 'Microsoft.Network/networkInterfaces',\n 'Microsoft.Network/loadBalancers',\n 'Microsoft.Network/dnsZones',\n 'Microsoft.Network/publicIPAddresses',\n 'Microsoft.Network/azureFirewalls',\n 'Microsoft.Network/applicationGateways',\n 'Microsoft.Network/virtualNetworkGateways',\n 'Microsoft.Network/expressRouteCircuits',\n 'Microsoft.Network/expressRouteCircuits/Peerings',\n 'Microsoft.Network/connections',\n 'Microsoft.Network/trafficManagerProfiles',\n 'Microsoft.Network/networkWatchers/connectionMonitors',\n 'Microsoft.Network/frontdoors',\n 'Microsoft.NotificationHubs/namespaces/notificationHubs',\n 'Microsoft.PowerBIDedicated/capacities',\n 'Microsoft.Relay/namespaces',\n 'Microsoft.ServiceBus/namespaces',\n 'Microsoft.Sql/servers/databases',\n 'Microsoft.Sql/servers/elasticPools',\n 'Microsoft.Sql/managedInstances',\n 'Microsoft.Storage/storageAccounts',\n 'Microsoft.Storage/storageAccounts/blobServices',\n 'Microsoft.Storage/storageAccounts/fileServices',\n 'Microsoft.Storage/storageAccounts/queueServices',\n 'Microsoft.Storage/storageAccounts/tableServices',\n 'Microsoft.StreamAnalytics/streamingJobs',\n 'Microsoft.Web/serverfarms',\n 'Microsoft.Web/sites',\n 'Microsoft.Web/sites/slots',\n 'Microsoft.Web/hostingEnvironments/multiRolePools',\n 'Microsoft.Web/hostingEnvironments/workerPools',\n ],\n chinaazuremonitor: [\n 'Microsoft.AnalysisServices/servers',\n 'Microsoft.Batch/batchAccounts',\n 'Microsoft.Cache/redis',\n 'Microsoft.ClassicCompute/virtualMachines',\n 'Microsoft.ClassicCompute/domainNames/slots/roles',\n 'Microsoft.CognitiveServices/accounts',\n 'Microsoft.Compute/virtualMachines',\n 'Microsoft.Compute/virtualMachineScaleSets',\n 'Microsoft.ContainerRegistry/registries',\n 'Microsoft.DBforMySQL/servers',\n 'Microsoft.DBforPostgreSQL/servers',\n 'Microsoft.Devices/IotHubs',\n 'Microsoft.Devices/provisioningServices',\n 'Microsoft.EventHub/namespaces',\n 'Microsoft.Insights/AutoscaleSettings',\n 'Microsoft.KeyVault/vaults',\n 'Microsoft.Logic/workflows',\n 'Microsoft.Network/networkInterfaces',\n 'Microsoft.Network/loadBalancers',\n 'Microsoft.Network/dnsZones',\n 'Microsoft.Network/publicIPAddresses',\n 'Microsoft.Network/azureFirewalls',\n 'Microsoft.Network/applicationGateways',\n 'Microsoft.Network/virtualNetworkGateways',\n 'Microsoft.Network/expressRouteCircuits',\n 'Microsoft.Network/expressRouteCircuits/Peerings',\n 'Microsoft.Network/connections',\n 'Microsoft.Network/trafficManagerProfiles',\n 'Microsoft.Network/networkWatchers/connectionMonitors',\n 'Microsoft.Network/frontdoors',\n 'Microsoft.NotificationHubs/namespaces/notificationHubs',\n 'Microsoft.PowerBIDedicated/capacities',\n 'Microsoft.Relay/namespaces',\n 'Microsoft.ServiceBus/namespaces',\n 'Microsoft.Sql/servers/databases',\n 'Microsoft.Sql/servers/elasticPools',\n 'Microsoft.Sql/managedInstances',\n 'Microsoft.Storage/storageAccounts',\n 'Microsoft.Storage/storageAccounts/blobServices',\n 'Microsoft.Storage/storageAccounts/fileServices',\n 'Microsoft.Storage/storageAccounts/queueServices',\n 'Microsoft.Storage/storageAccounts/tableServices',\n 'Microsoft.StreamAnalytics/streamingJobs',\n 'Microsoft.Web/serverfarms',\n 'Microsoft.Web/sites',\n 'Microsoft.Web/sites/slots',\n 'Microsoft.Web/hostingEnvironments/multiRolePools',\n 'Microsoft.Web/hostingEnvironments/workerPools',\n ],\n };\n\n constructor(private cloudName: string) {}\n\n get() {\n return this.supportedMetricNamespaces[this.cloudName];\n }\n}\n","import _ from 'lodash';\nimport AzureMonitorFilterBuilder from './azure_monitor_filter_builder';\nimport UrlBuilder from './url_builder';\nimport ResponseParser from './response_parser';\nimport SupportedNamespaces from './supported_namespaces';\nimport TimegrainConverter from '../time_grain_converter';\n\nexport default class AzureMonitorDatasource {\n apiVersion = '2018-01-01';\n id: number;\n subscriptionId: string;\n baseUrl: string;\n resourceGroup: string;\n resourceName: string;\n url: string;\n defaultDropdownValue = 'select';\n cloudName: string;\n supportedMetricNamespaces: any[] = [];\n\n /** @ngInject */\n constructor(private instanceSettings, private backendSrv, private templateSrv, private $q) {\n this.id = instanceSettings.id;\n this.subscriptionId = instanceSettings.jsonData.subscriptionId;\n this.cloudName = instanceSettings.jsonData.cloudName || 'azuremonitor';\n this.baseUrl = `/${this.cloudName}/subscriptions/${this.subscriptionId}/resourceGroups`;\n this.url = instanceSettings.url;\n\n this.supportedMetricNamespaces = new SupportedNamespaces(this.cloudName).get();\n }\n\n isConfigured(): boolean {\n return !!this.subscriptionId && this.subscriptionId.length > 0;\n }\n\n query(options) {\n const queries = _.filter(options.targets, item => {\n return (\n item.hide !== true &&\n item.azureMonitor.resourceGroup &&\n item.azureMonitor.resourceGroup !== this.defaultDropdownValue &&\n item.azureMonitor.resourceName &&\n item.azureMonitor.resourceName !== this.defaultDropdownValue &&\n item.azureMonitor.metricDefinition &&\n item.azureMonitor.metricDefinition !== this.defaultDropdownValue &&\n item.azureMonitor.metricName &&\n item.azureMonitor.metricName !== this.defaultDropdownValue\n );\n }).map(target => {\n const item = target.azureMonitor;\n\n if (item.timeGrainUnit && item.timeGrain !== 'auto') {\n item.timeGrain = TimegrainConverter.createISO8601Duration(item.timeGrain, item.timeGrainUnit);\n }\n\n const resourceGroup = this.templateSrv.replace(item.resourceGroup, options.scopedVars);\n const resourceName = this.templateSrv.replace(item.resourceName, options.scopedVars);\n const metricDefinition = this.templateSrv.replace(item.metricDefinition, options.scopedVars);\n const timeGrain = this.templateSrv.replace((item.timeGrain || '').toString(), options.scopedVars);\n\n const filterBuilder = new AzureMonitorFilterBuilder(\n item.metricName,\n options.range.from,\n options.range.to,\n timeGrain,\n options.interval\n );\n\n if (item.timeGrains) {\n filterBuilder.setAllowedTimeGrains(item.timeGrains);\n }\n\n if (item.aggregation) {\n filterBuilder.setAggregation(item.aggregation);\n }\n\n if (item.dimension && item.dimension !== 'None') {\n filterBuilder.setDimensionFilter(item.dimension, item.dimensionFilter);\n }\n\n const filter = this.templateSrv.replace(filterBuilder.generateFilter(), options.scopedVars);\n\n const url = UrlBuilder.buildAzureMonitorQueryUrl(\n this.baseUrl,\n resourceGroup,\n metricDefinition,\n resourceName,\n this.apiVersion,\n filter\n );\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n url: url,\n format: options.format,\n alias: item.alias,\n raw: false,\n };\n });\n\n if (!queries || queries.length === 0) {\n return;\n }\n\n const promises = this.doQueries(queries);\n\n return this.$q.all(promises).then(results => {\n return new ResponseParser(results).parseQueryResult();\n });\n }\n\n doQueries(queries) {\n return _.map(queries, query => {\n return this.doRequest(query.url)\n .then(result => {\n return {\n result: result,\n query: query,\n };\n })\n .catch(err => {\n throw {\n error: err,\n query: query,\n };\n });\n });\n }\n\n annotationQuery(options) {}\n\n metricFindQuery(query: string) {\n const resourceGroupsQuery = query.match(/^ResourceGroups\\(\\)/i);\n if (resourceGroupsQuery) {\n return this.getResourceGroups();\n }\n\n const metricDefinitionsQuery = query.match(/^Namespaces\\(([^\\)]+?)(,\\s?([^,]+?))?\\)/i);\n if (metricDefinitionsQuery) {\n return this.getMetricDefinitions(this.toVariable(metricDefinitionsQuery[1]));\n }\n\n const resourceNamesQuery = query.match(/^ResourceNames\\(([^,]+?),\\s?([^,]+?)\\)/i);\n if (resourceNamesQuery) {\n const resourceGroup = this.toVariable(resourceNamesQuery[1]);\n const metricDefinition = this.toVariable(resourceNamesQuery[2]);\n return this.getResourceNames(resourceGroup, metricDefinition);\n }\n\n const metricNamesQuery = query.match(/^MetricNames\\(([^,]+?),\\s?([^,]+?),\\s?(.+?)\\)/i);\n\n if (metricNamesQuery) {\n const resourceGroup = this.toVariable(metricNamesQuery[1]);\n const metricDefinition = this.toVariable(metricNamesQuery[2]);\n const resourceName = this.toVariable(metricNamesQuery[3]);\n return this.getMetricNames(resourceGroup, metricDefinition, resourceName);\n }\n\n return undefined;\n }\n\n toVariable(metric: string) {\n return this.templateSrv.replace((metric || '').trim());\n }\n\n getResourceGroups() {\n const url = `${this.baseUrl}?api-version=${this.apiVersion}`;\n return this.doRequest(url).then(result => {\n return ResponseParser.parseResponseValues(result, 'name', 'name');\n });\n }\n\n getMetricDefinitions(resourceGroup: string) {\n const url = `${this.baseUrl}/${resourceGroup}/resources?api-version=${this.apiVersion}`;\n return this.doRequest(url)\n .then(result => {\n return ResponseParser.parseResponseValues(result, 'type', 'type');\n })\n .then(result => {\n return _.filter(result, t => {\n for (let i = 0; i < this.supportedMetricNamespaces.length; i++) {\n if (t.value.toLowerCase() === this.supportedMetricNamespaces[i].toLowerCase()) {\n return true;\n }\n }\n\n return false;\n });\n })\n .then(result => {\n let shouldHardcodeBlobStorage = false;\n for (let i = 0; i < result.length; i++) {\n if (result[i].value === 'Microsoft.Storage/storageAccounts') {\n shouldHardcodeBlobStorage = true;\n break;\n }\n }\n\n if (shouldHardcodeBlobStorage) {\n result.push({\n text: 'Microsoft.Storage/storageAccounts/blobServices',\n value: 'Microsoft.Storage/storageAccounts/blobServices',\n });\n result.push({\n text: 'Microsoft.Storage/storageAccounts/fileServices',\n value: 'Microsoft.Storage/storageAccounts/fileServices',\n });\n result.push({\n text: 'Microsoft.Storage/storageAccounts/tableServices',\n value: 'Microsoft.Storage/storageAccounts/tableServices',\n });\n result.push({\n text: 'Microsoft.Storage/storageAccounts/queueServices',\n value: 'Microsoft.Storage/storageAccounts/queueServices',\n });\n }\n\n return result;\n });\n }\n\n getResourceNames(resourceGroup: string, metricDefinition: string) {\n const url = `${this.baseUrl}/${resourceGroup}/resources?api-version=${this.apiVersion}`;\n\n return this.doRequest(url).then(result => {\n if (!_.startsWith(metricDefinition, 'Microsoft.Storage/storageAccounts/')) {\n return ResponseParser.parseResourceNames(result, metricDefinition);\n }\n\n const list = ResponseParser.parseResourceNames(result, 'Microsoft.Storage/storageAccounts');\n for (let i = 0; i < list.length; i++) {\n list[i].text += '/default';\n list[i].value += '/default';\n }\n\n return list;\n });\n }\n\n getMetricNames(resourceGroup: string, metricDefinition: string, resourceName: string) {\n const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl(\n this.baseUrl,\n resourceGroup,\n metricDefinition,\n resourceName,\n this.apiVersion\n );\n\n return this.doRequest(url).then(result => {\n return ResponseParser.parseResponseValues(result, 'name.localizedValue', 'name.value');\n });\n }\n\n getMetricMetadata(resourceGroup: string, metricDefinition: string, resourceName: string, metricName: string) {\n const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl(\n this.baseUrl,\n resourceGroup,\n metricDefinition,\n resourceName,\n this.apiVersion\n );\n\n return this.doRequest(url).then(result => {\n return ResponseParser.parseMetadata(result, metricName);\n });\n }\n\n testDatasource() {\n if (!this.isValidConfigField(this.instanceSettings.jsonData.tenantId)) {\n return {\n status: 'error',\n message: 'The Tenant Id field is required.',\n };\n }\n\n if (!this.isValidConfigField(this.instanceSettings.jsonData.clientId)) {\n return {\n status: 'error',\n message: 'The Client Id field is required.',\n };\n }\n\n const url = `${this.baseUrl}?api-version=${this.apiVersion}`;\n return this.doRequest(url)\n .then(response => {\n if (response.status === 200) {\n return {\n status: 'success',\n message: 'Successfully queried the Azure Monitor service.',\n title: 'Success',\n };\n }\n\n return {\n status: 'error',\n message: 'Returned http status code ' + response.status,\n };\n })\n .catch(error => {\n let message = 'Azure Monitor: ';\n message += error.statusText ? error.statusText + ': ' : '';\n\n if (error.data && error.data.error && error.data.error.code) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (error.data && error.data.error) {\n message += error.data.error;\n } else if (error.data) {\n message += error.data;\n } else {\n message += 'Cannot connect to Azure Monitor REST API.';\n }\n return {\n status: 'error',\n message: message,\n };\n });\n }\n\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n doRequest(url, maxRetries = 1) {\n return this.backendSrv\n .datasourceRequest({\n url: this.url + url,\n method: 'GET',\n })\n .catch(error => {\n if (maxRetries > 0) {\n return this.doRequest(url, maxRetries - 1);\n }\n\n throw error;\n });\n }\n}\n","import moment from 'moment';\n\nexport default class LogAnalyticsQuerystringBuilder {\n constructor(public rawQueryString, public options, public defaultTimeField) {}\n\n generate() {\n let queryString = this.rawQueryString;\n const macroRegexp = /\\$__([_a-zA-Z0-9]+)\\(([^\\)]*)\\)/gi;\n queryString = queryString.replace(macroRegexp, (match, p1, p2) => {\n if (p1 === 'contains') {\n return this.getMultiContains(p2);\n }\n\n return match;\n });\n\n queryString = queryString.replace(/\\$__escapeMulti\\(('[^]*')\\)/gi, (match, p1) => this.escape(p1));\n\n if (this.options) {\n queryString = queryString.replace(macroRegexp, (match, p1, p2) => {\n if (p1 === 'timeFilter') {\n return this.getTimeFilter(p2, this.options);\n }\n\n return match;\n });\n queryString = queryString.replace(/\\$__interval/gi, this.options.interval);\n queryString = queryString.replace(/\\$__from/gi, this.getFrom(this.options));\n queryString = queryString.replace(/\\$__to/gi, this.getUntil(this.options));\n }\n const rawQuery = queryString;\n queryString = encodeURIComponent(queryString);\n const uriString = `query=${queryString}`;\n\n return { uriString, rawQuery };\n }\n\n getFrom(options) {\n const from = options.range.from;\n return `datetime(${moment(from)\n .startOf('minute')\n .toISOString()})`;\n }\n\n getUntil(options) {\n if (options.rangeRaw.to === 'now') {\n return 'now()';\n } else {\n const until = options.range.to;\n return `datetime(${moment(until)\n .startOf('minute')\n .toISOString()})`;\n }\n }\n\n getTimeFilter(timeFieldArg, options) {\n const timeField = timeFieldArg || this.defaultTimeField;\n if (options.rangeRaw.to === 'now') {\n return `${timeField} >= ${this.getFrom(options)}`;\n } else {\n return `${timeField} >= ${this.getFrom(options)} and ${timeField} <= ${this.getUntil(options)}`;\n }\n }\n\n getMultiContains(inputs: string) {\n const firstCommaIndex = inputs.indexOf(',');\n const field = inputs.substring(0, firstCommaIndex);\n const templateVar = inputs.substring(inputs.indexOf(',') + 1);\n\n if (templateVar && templateVar.toLowerCase().trim() === 'all') {\n return '1 == 1';\n }\n\n return `${field.trim()} in (${templateVar.trim()})`;\n }\n\n escape(inputs: string) {\n return inputs\n .substring(1, inputs.length - 1)\n .split(`','`)\n .map(v => `@'${v}'`)\n .join(', ');\n }\n}\n","import TimeGrainConverter from '../time_grain_converter';\n\nexport default class AppInsightsQuerystringBuilder {\n aggregation = '';\n groupBy = '';\n timeGrainType = '';\n timeGrain = '';\n timeGrainUnit = '';\n filter = '';\n\n constructor(private from, private to, public grafanaInterval) {}\n\n setAggregation(aggregation) {\n this.aggregation = aggregation;\n }\n\n setGroupBy(groupBy) {\n this.groupBy = groupBy;\n }\n\n setInterval(timeGrainType, timeGrain, timeGrainUnit) {\n this.timeGrainType = timeGrainType;\n this.timeGrain = timeGrain;\n this.timeGrainUnit = timeGrainUnit;\n }\n\n setFilter(filter: string) {\n this.filter = filter;\n }\n\n generate() {\n let querystring = `timespan=${this.from.utc().format()}/${this.to.utc().format()}`;\n\n if (this.aggregation && this.aggregation.length > 0) {\n querystring += `&aggregation=${this.aggregation}`;\n }\n\n if (this.groupBy && this.groupBy.length > 0) {\n querystring += `&segment=${this.groupBy}`;\n }\n\n if (this.timeGrainType === 'specific' && this.timeGrain && this.timeGrainUnit) {\n querystring += `&interval=${TimeGrainConverter.createISO8601Duration(this.timeGrain, this.timeGrainUnit)}`;\n }\n\n if (this.timeGrainType === 'auto') {\n querystring += `&interval=${TimeGrainConverter.createISO8601DurationFromInterval(this.grafanaInterval)}`;\n }\n\n if (this.filter) {\n querystring += `&filter=${this.filter}`;\n }\n\n return querystring;\n }\n}\n","import moment from 'moment';\nimport _ from 'lodash';\n\nexport default class ResponseParser {\n constructor(private results) {}\n\n parseQueryResult() {\n let data: any = [];\n let columns: any = [];\n for (let i = 0; i < this.results.length; i++) {\n if (this.results[i].query.raw) {\n const xaxis = this.results[i].query.xaxis;\n const yaxises = this.results[i].query.yaxis;\n const spliton = this.results[i].query.spliton;\n columns = this.results[i].result.data.Tables[0].Columns;\n const rows = this.results[i].result.data.Tables[0].Rows;\n data = _.concat(\n data,\n this.parseRawQueryResultRow(this.results[i].query, columns, rows, xaxis, yaxises, spliton)\n );\n } else {\n const value = this.results[i].result.data.value;\n const alias = this.results[i].query.alias;\n data = _.concat(data, this.parseQueryResultRow(this.results[i].query, value, alias));\n }\n }\n return data;\n }\n\n parseRawQueryResultRow(query: any, columns, rows, xaxis: string, yaxises: string, spliton: string) {\n const data: any[] = [];\n const columnsForDropdown = _.map(columns, column => ({ text: column.ColumnName, value: column.ColumnName }));\n\n const xaxisColumn = columns.findIndex(column => column.ColumnName === xaxis);\n const yaxisesSplit = yaxises.split(',');\n const yaxisColumns = {};\n _.forEach(yaxisesSplit, yaxis => {\n yaxisColumns[yaxis] = columns.findIndex(column => column.ColumnName === yaxis);\n });\n const splitonColumn = columns.findIndex(column => column.ColumnName === spliton);\n const convertTimestamp = xaxis === 'timestamp';\n\n _.forEach(rows, row => {\n _.forEach(yaxisColumns, (yaxisColumn, yaxisName) => {\n const bucket =\n splitonColumn === -1\n ? ResponseParser.findOrCreateBucket(data, yaxisName)\n : ResponseParser.findOrCreateBucket(data, row[splitonColumn]);\n const epoch = convertTimestamp ? ResponseParser.dateTimeToEpoch(row[xaxisColumn]) : row[xaxisColumn];\n bucket.datapoints.push([row[yaxisColumn], epoch]);\n bucket.refId = query.refId;\n bucket.query = query.query;\n bucket.columnsForDropdown = columnsForDropdown;\n });\n });\n\n return data;\n }\n\n parseQueryResultRow(query: any, value, alias: string) {\n const data: any[] = [];\n\n if (ResponseParser.isSingleValue(value)) {\n const metricName = ResponseParser.getMetricFieldKey(value);\n const aggField = ResponseParser.getKeyForAggregationField(value[metricName]);\n const epoch = ResponseParser.dateTimeToEpoch(value.end);\n data.push({\n target: metricName,\n datapoints: [[value[metricName][aggField], epoch]],\n refId: query.refId,\n query: query.query,\n });\n return data;\n }\n\n const groupedBy = ResponseParser.hasSegmentsField(value.segments[0]);\n if (!groupedBy) {\n const metricName = ResponseParser.getMetricFieldKey(value.segments[0]);\n const dataTarget = ResponseParser.findOrCreateBucket(data, metricName);\n\n for (let i = 0; i < value.segments.length; i++) {\n const epoch = ResponseParser.dateTimeToEpoch(value.segments[i].end);\n const aggField: string = ResponseParser.getKeyForAggregationField(value.segments[i][metricName]);\n\n dataTarget.datapoints.push([value.segments[i][metricName][aggField], epoch]);\n }\n dataTarget.refId = query.refId;\n dataTarget.query = query.query;\n } else {\n for (let i = 0; i < value.segments.length; i++) {\n const epoch = ResponseParser.dateTimeToEpoch(value.segments[i].end);\n\n for (let j = 0; j < value.segments[i].segments.length; j++) {\n const metricName = ResponseParser.getMetricFieldKey(value.segments[i].segments[j]);\n const aggField = ResponseParser.getKeyForAggregationField(value.segments[i].segments[j][metricName]);\n const target = this.getTargetName(value.segments[i].segments[j], alias);\n\n const bucket = ResponseParser.findOrCreateBucket(data, target);\n bucket.datapoints.push([value.segments[i].segments[j][metricName][aggField], epoch]);\n bucket.refId = query.refId;\n bucket.query = query.query;\n }\n }\n }\n\n return data;\n }\n\n getTargetName(segment, alias: string) {\n let metric = '';\n let segmentName = '';\n let segmentValue = '';\n for (const prop in segment) {\n if (_.isObject(segment[prop])) {\n metric = prop;\n } else {\n segmentName = prop;\n segmentValue = segment[prop];\n }\n }\n\n if (alias) {\n const regex = /\\{\\{([\\s\\S]+?)\\}\\}/g;\n return alias.replace(regex, (match, g1, g2) => {\n const group = g1 || g2;\n\n if (group === 'metric') {\n return metric;\n } else if (group === 'groupbyname') {\n return segmentName;\n } else if (group === 'groupbyvalue') {\n return segmentValue;\n }\n\n return match;\n });\n }\n\n return metric + `{${segmentName}=\"${segmentValue}\"}`;\n }\n\n static isSingleValue(value) {\n return !ResponseParser.hasSegmentsField(value);\n }\n\n static findOrCreateBucket(data, target) {\n let dataTarget = _.find(data, ['target', target]);\n if (!dataTarget) {\n dataTarget = { target: target, datapoints: [] };\n data.push(dataTarget);\n }\n\n return dataTarget;\n }\n\n static hasSegmentsField(obj) {\n const keys = _.keys(obj);\n return _.indexOf(keys, 'segments') > -1;\n }\n\n static getMetricFieldKey(segment) {\n const keys = _.keys(segment);\n\n return _.filter(_.without(keys, 'start', 'end'), key => {\n return _.isObject(segment[key]);\n })[0];\n }\n\n static getKeyForAggregationField(dataObj): string {\n const keys = _.keys(dataObj);\n return _.intersection(keys, ['sum', 'avg', 'min', 'max', 'count', 'unique'])[0];\n }\n\n static dateTimeToEpoch(dateTime) {\n return moment(dateTime).valueOf();\n }\n\n static parseMetricNames(result) {\n const keys = _.keys(result.data.metrics);\n\n return ResponseParser.toTextValueList(keys);\n }\n\n parseMetadata(metricName: string) {\n const metric = this.results.data.metrics[metricName];\n\n if (!metric) {\n throw Error('No data found for metric: ' + metricName);\n }\n\n return {\n primaryAggType: metric.defaultAggregation,\n supportedAggTypes: metric.supportedAggregations,\n supportedGroupBy: metric.supportedGroupBy.all,\n };\n }\n\n parseGroupBys() {\n return ResponseParser.toTextValueList(this.results.supportedGroupBy);\n }\n\n parseQuerySchema() {\n const result = {\n Type: 'AppInsights',\n Tables: {},\n };\n if (this.results && this.results.data && this.results.data.Tables) {\n for (let i = 0; i < this.results.data.Tables[0].Rows.length; i++) {\n const column = this.results.data.Tables[0].Rows[i];\n const columnTable = column[0];\n const columnName = column[1];\n const columnType = column[2];\n if (result.Tables[columnTable]) {\n result.Tables[columnTable].OrderedColumns.push({ Name: columnName, Type: columnType });\n } else {\n result.Tables[columnTable] = {\n Name: columnTable,\n OrderedColumns: [{ Name: columnName, Type: columnType }],\n };\n }\n }\n }\n return result;\n }\n\n static toTextValueList(values) {\n const list: any[] = [];\n for (let i = 0; i < values.length; i++) {\n list.push({\n text: values[i],\n value: values[i],\n });\n }\n return list;\n }\n}\n","import _ from 'lodash';\nimport AppInsightsQuerystringBuilder from './app_insights_querystring_builder';\nimport LogAnalyticsQuerystringBuilder from '../log_analytics/querystring_builder';\nimport ResponseParser from './response_parser';\n\nexport interface LogAnalyticsColumn {\n text: string;\n value: string;\n}\nexport default class AppInsightsDatasource {\n id: number;\n url: string;\n baseUrl: string;\n version = 'beta';\n applicationId: string;\n logAnalyticsColumns: { [key: string]: LogAnalyticsColumn[] } = {};\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private templateSrv, private $q) {\n this.id = instanceSettings.id;\n this.applicationId = instanceSettings.jsonData.appInsightsAppId;\n this.baseUrl = `/appinsights/${this.version}/apps/${this.applicationId}`;\n this.url = instanceSettings.url;\n }\n\n isConfigured(): boolean {\n return !!this.applicationId && this.applicationId.length > 0;\n }\n\n query(options) {\n const queries = _.filter(options.targets, item => {\n return item.hide !== true;\n }).map(target => {\n const item = target.appInsights;\n if (item.rawQuery) {\n const querystringBuilder = new LogAnalyticsQuerystringBuilder(\n this.templateSrv.replace(item.rawQueryString, options.scopedVars),\n options,\n 'timestamp'\n );\n const generated = querystringBuilder.generate();\n\n const url = `${this.baseUrl}/query?${generated.uriString}`;\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n url: url,\n format: options.format,\n alias: item.alias,\n query: generated.rawQuery,\n xaxis: item.xaxis,\n yaxis: item.yaxis,\n spliton: item.spliton,\n raw: true,\n };\n } else {\n const querystringBuilder = new AppInsightsQuerystringBuilder(\n options.range.from,\n options.range.to,\n options.interval\n );\n\n if (item.groupBy !== 'none') {\n querystringBuilder.setGroupBy(this.templateSrv.replace(item.groupBy, options.scopedVars));\n }\n querystringBuilder.setAggregation(item.aggregation);\n querystringBuilder.setInterval(\n item.timeGrainType,\n this.templateSrv.replace(item.timeGrain, options.scopedVars),\n item.timeGrainUnit\n );\n\n querystringBuilder.setFilter(this.templateSrv.replace(item.filter || ''));\n\n const url = `${this.baseUrl}/metrics/${this.templateSrv.replace(\n encodeURI(item.metricName),\n options.scopedVars\n )}?${querystringBuilder.generate()}`;\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n url: url,\n format: options.format,\n alias: item.alias,\n xaxis: '',\n yaxis: '',\n spliton: '',\n raw: false,\n };\n }\n });\n\n if (!queries || queries.length === 0) {\n return;\n }\n\n const promises = this.doQueries(queries);\n\n return this.$q\n .all(promises)\n .then(results => {\n return new ResponseParser(results).parseQueryResult();\n })\n .then(results => {\n const flattened: any[] = [];\n\n for (let i = 0; i < results.length; i++) {\n if (results[i].columnsForDropdown) {\n this.logAnalyticsColumns[results[i].refId] = results[i].columnsForDropdown;\n }\n flattened.push(results[i]);\n }\n\n return flattened;\n });\n }\n\n doQueries(queries) {\n return _.map(queries, query => {\n return this.doRequest(query.url)\n .then(result => {\n return {\n result: result,\n query: query,\n };\n })\n .catch(err => {\n throw {\n error: err,\n query: query,\n };\n });\n });\n }\n\n annotationQuery(options) {}\n\n metricFindQuery(query: string) {\n const appInsightsMetricNameQuery = query.match(/^AppInsightsMetricNames\\(\\)/i);\n if (appInsightsMetricNameQuery) {\n return this.getMetricNames();\n }\n\n const appInsightsGroupByQuery = query.match(/^AppInsightsGroupBys\\(([^\\)]+?)(,\\s?([^,]+?))?\\)/i);\n if (appInsightsGroupByQuery) {\n const metricName = appInsightsGroupByQuery[1];\n return this.getGroupBys(this.templateSrv.replace(metricName));\n }\n\n return undefined;\n }\n\n testDatasource() {\n const url = `${this.baseUrl}/metrics/metadata`;\n return this.doRequest(url)\n .then(response => {\n if (response.status === 200) {\n return {\n status: 'success',\n message: 'Successfully queried the Application Insights service.',\n title: 'Success',\n };\n }\n\n return {\n status: 'error',\n message: 'Returned http status code ' + response.status,\n };\n })\n .catch(error => {\n let message = 'Application Insights: ';\n message += error.statusText ? error.statusText + ': ' : '';\n\n if (error.data && error.data.error && error.data.error.code === 'PathNotFoundError') {\n message += 'Invalid Application Id for Application Insights service.';\n } else if (error.data && error.data.error) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else {\n message += 'Cannot connect to Application Insights REST API.';\n }\n\n return {\n status: 'error',\n message: message,\n };\n });\n }\n\n doRequest(url, maxRetries = 1) {\n return this.backendSrv\n .datasourceRequest({\n url: this.url + url,\n method: 'GET',\n })\n .catch(error => {\n if (maxRetries > 0) {\n return this.doRequest(url, maxRetries - 1);\n }\n\n throw error;\n });\n }\n\n getMetricNames() {\n const url = `${this.baseUrl}/metrics/metadata`;\n return this.doRequest(url).then(ResponseParser.parseMetricNames);\n }\n\n getMetricMetadata(metricName: string) {\n const url = `${this.baseUrl}/metrics/metadata`;\n return this.doRequest(url).then(result => {\n return new ResponseParser(result).parseMetadata(metricName);\n });\n }\n\n getGroupBys(metricName: string) {\n return this.getMetricMetadata(metricName).then(result => {\n return new ResponseParser(result).parseGroupBys();\n });\n }\n\n getQuerySchema() {\n const url = `${this.baseUrl}/query/schema`;\n return this.doRequest(url).then(result => {\n const schema = new ResponseParser(result).parseQuerySchema();\n // console.log(schema);\n return schema;\n });\n }\n}\n","import _ from 'lodash';\nimport moment from 'moment';\n\nexport interface DataTarget {\n target: string;\n datapoints: any[];\n refId: string;\n query: any;\n}\nexport interface TableResult {\n columns: TableColumn[];\n rows: any[];\n type: string;\n refId: string;\n query: string;\n}\n\nexport interface TableColumn {\n text: string;\n type: string;\n}\n\nexport interface KustoSchema {\n Databases: { [key: string]: KustoDatabase };\n Plugins: any[];\n}\nexport interface KustoDatabase {\n Name: string;\n Tables: { [key: string]: KustoTable };\n Functions: { [key: string]: KustoFunction };\n}\n\nexport interface KustoTable {\n Name: string;\n OrderedColumns: KustoColumn[];\n}\n\nexport interface KustoColumn {\n Name: string;\n Type: string;\n}\n\nexport interface KustoFunction {\n Name: string;\n DocString: string;\n Body: string;\n Folder: string;\n FunctionKind: string;\n InputParameters: any[];\n OutputColumns: any[];\n}\n\nexport interface Variable {\n text: string;\n value: string;\n}\n\nexport interface AnnotationItem {\n annotation: any;\n time: number;\n text: string;\n tags: string[];\n}\n\nexport default class ResponseParser {\n columns: string[];\n constructor(private results) {}\n\n parseQueryResult(): any {\n let data: any[] = [];\n let columns: any[] = [];\n for (let i = 0; i < this.results.length; i++) {\n if (this.results[i].result.data.tables.length === 0) {\n continue;\n }\n columns = this.results[i].result.data.tables[0].columns;\n const rows = this.results[i].result.data.tables[0].rows;\n\n if (this.results[i].query.resultFormat === 'time_series') {\n data = _.concat(data, this.parseTimeSeriesResult(this.results[i].query, columns, rows));\n } else {\n data = _.concat(data, this.parseTableResult(this.results[i].query, columns, rows));\n }\n }\n\n return data;\n }\n\n parseTimeSeriesResult(query, columns, rows): DataTarget[] {\n const data: DataTarget[] = [];\n let timeIndex = -1;\n let metricIndex = -1;\n let valueIndex = -1;\n\n for (let i = 0; i < columns.length; i++) {\n if (timeIndex === -1 && columns[i].type === 'datetime') {\n timeIndex = i;\n }\n\n if (metricIndex === -1 && columns[i].type === 'string') {\n metricIndex = i;\n }\n\n if (valueIndex === -1 && ['int', 'long', 'real', 'double'].indexOf(columns[i].type) > -1) {\n valueIndex = i;\n }\n }\n\n if (timeIndex === -1) {\n throw new Error('No datetime column found in the result. The Time Series format requires a time column.');\n }\n\n _.forEach(rows, row => {\n const epoch = ResponseParser.dateTimeToEpoch(row[timeIndex]);\n const metricName = metricIndex > -1 ? row[metricIndex] : columns[valueIndex].name;\n const bucket = ResponseParser.findOrCreateBucket(data, metricName);\n bucket.datapoints.push([row[valueIndex], epoch]);\n bucket.refId = query.refId;\n bucket.query = query.query;\n });\n\n return data;\n }\n\n parseTableResult(query, columns, rows): TableResult {\n const tableResult: TableResult = {\n type: 'table',\n columns: _.map(columns, col => {\n return { text: col.name, type: col.type };\n }),\n rows: rows,\n refId: query.refId,\n query: query.query,\n };\n\n return tableResult;\n }\n\n parseToVariables(): Variable[] {\n const queryResult = this.parseQueryResult();\n\n const variables: Variable[] = [];\n _.forEach(queryResult, result => {\n _.forEach(_.flattenDeep(result.rows), row => {\n variables.push({\n text: row,\n value: row,\n } as Variable);\n });\n });\n\n return variables;\n }\n\n transformToAnnotations(options: any) {\n const queryResult = this.parseQueryResult();\n\n const list: AnnotationItem[] = [];\n\n _.forEach(queryResult, result => {\n let timeIndex = -1;\n let textIndex = -1;\n let tagsIndex = -1;\n\n for (let i = 0; i < result.columns.length; i++) {\n if (timeIndex === -1 && result.columns[i].type === 'datetime') {\n timeIndex = i;\n }\n\n if (textIndex === -1 && result.columns[i].text.toLowerCase() === 'text') {\n textIndex = i;\n }\n\n if (tagsIndex === -1 && result.columns[i].text.toLowerCase() === 'tags') {\n tagsIndex = i;\n }\n }\n\n _.forEach(result.rows, row => {\n list.push({\n annotation: options.annotation,\n time: Math.floor(ResponseParser.dateTimeToEpoch(row[timeIndex])),\n text: row[textIndex] ? row[textIndex].toString() : '',\n tags: row[tagsIndex] ? row[tagsIndex].trim().split(/\\s*,\\s*/) : [],\n });\n });\n });\n\n return list;\n }\n\n parseSchemaResult(): KustoSchema {\n return {\n Plugins: [\n {\n Name: 'pivot',\n },\n ],\n Databases: this.createSchemaDatabaseWithTables(),\n };\n }\n\n createSchemaDatabaseWithTables(): { [key: string]: KustoDatabase } {\n const databases = {\n Default: {\n Name: 'Default',\n Tables: this.createSchemaTables(),\n Functions: this.createSchemaFunctions(),\n },\n };\n\n return databases;\n }\n\n createSchemaTables(): { [key: string]: KustoTable } {\n const tables: { [key: string]: KustoTable } = {};\n\n for (const table of this.results.tables) {\n tables[table.name] = {\n Name: table.name,\n OrderedColumns: [],\n };\n for (const col of table.columns) {\n tables[table.name].OrderedColumns.push(this.convertToKustoColumn(col));\n }\n }\n\n return tables;\n }\n\n convertToKustoColumn(col: any): KustoColumn {\n return {\n Name: col.name,\n Type: col.type,\n };\n }\n\n createSchemaFunctions(): { [key: string]: KustoFunction } {\n const functions: { [key: string]: KustoFunction } = {};\n\n for (const func of this.results.functions) {\n functions[func.name] = {\n Name: func.name,\n Body: func.body,\n DocString: func.displayName,\n Folder: func.category,\n FunctionKind: 'Unknown',\n InputParameters: [],\n OutputColumns: [],\n };\n }\n\n return functions;\n }\n\n static findOrCreateBucket(data, target): DataTarget {\n let dataTarget = _.find(data, ['target', target]);\n if (!dataTarget) {\n dataTarget = { target: target, datapoints: [], refId: '', query: '' };\n data.push(dataTarget);\n }\n\n return dataTarget;\n }\n\n static dateTimeToEpoch(dateTime) {\n return moment(dateTime).valueOf();\n }\n}\n","import _ from 'lodash';\nimport LogAnalyticsQuerystringBuilder from '../log_analytics/querystring_builder';\nimport ResponseParser from './response_parser';\n\nexport default class AzureLogAnalyticsDatasource {\n id: number;\n url: string;\n baseUrl: string;\n applicationId: string;\n azureMonitorUrl: string;\n defaultOrFirstWorkspace: string;\n subscriptionId: string;\n\n /** @ngInject */\n constructor(private instanceSettings, private backendSrv, private templateSrv, private $q) {\n this.id = instanceSettings.id;\n this.baseUrl = this.instanceSettings.jsonData.azureLogAnalyticsSameAs\n ? '/sameasloganalyticsazure'\n : `/loganalyticsazure`;\n this.url = instanceSettings.url;\n this.defaultOrFirstWorkspace = this.instanceSettings.jsonData.logAnalyticsDefaultWorkspace;\n\n this.setWorkspaceUrl();\n }\n\n isConfigured(): boolean {\n return (\n (!!this.instanceSettings.jsonData.logAnalyticsSubscriptionId &&\n this.instanceSettings.jsonData.logAnalyticsSubscriptionId.length > 0) ||\n !!this.instanceSettings.jsonData.azureLogAnalyticsSameAs\n );\n }\n\n setWorkspaceUrl() {\n if (!!this.instanceSettings.jsonData.subscriptionId || !!this.instanceSettings.jsonData.azureLogAnalyticsSameAs) {\n this.subscriptionId = this.instanceSettings.jsonData.subscriptionId;\n const azureCloud = this.instanceSettings.jsonData.cloudName || 'azuremonitor';\n this.azureMonitorUrl = `/${azureCloud}/subscriptions/${this.subscriptionId}`;\n } else {\n this.subscriptionId = this.instanceSettings.jsonData.logAnalyticsSubscriptionId;\n this.azureMonitorUrl = `/workspacesloganalytics/subscriptions/${this.subscriptionId}`;\n }\n }\n\n getWorkspaces() {\n const workspaceListUrl =\n this.azureMonitorUrl + '/providers/Microsoft.OperationalInsights/workspaces?api-version=2017-04-26-preview';\n return this.doRequest(workspaceListUrl).then(response => {\n return (\n _.map(response.data.value, val => {\n return { text: val.name, value: val.properties.customerId };\n }) || []\n );\n });\n }\n\n getSchema(workspace) {\n if (!workspace) {\n return Promise.resolve();\n }\n const url = `${this.baseUrl}/${workspace}/metadata`;\n\n return this.doRequest(url).then(response => {\n return new ResponseParser(response.data).parseSchemaResult();\n });\n }\n\n query(options) {\n const queries = _.filter(options.targets, item => {\n return item.hide !== true;\n }).map(target => {\n const item = target.azureLogAnalytics;\n\n const querystringBuilder = new LogAnalyticsQuerystringBuilder(\n this.templateSrv.replace(item.query, options.scopedVars, this.interpolateVariable),\n options,\n 'TimeGenerated'\n );\n const generated = querystringBuilder.generate();\n\n const url = `${this.baseUrl}/${item.workspace}/query?${generated.uriString}`;\n\n return {\n refId: target.refId,\n intervalMs: options.intervalMs,\n maxDataPoints: options.maxDataPoints,\n datasourceId: this.id,\n url: url,\n query: generated.rawQuery,\n format: options.format,\n resultFormat: item.resultFormat,\n };\n });\n\n if (!queries || queries.length === 0) {\n return;\n }\n\n const promises = this.doQueries(queries);\n\n return this.$q.all(promises).then(results => {\n return new ResponseParser(results).parseQueryResult();\n });\n }\n\n metricFindQuery(query: string) {\n return this.getDefaultOrFirstWorkspace().then(workspace => {\n const queries: any[] = this.buildQuery(query, null, workspace);\n\n const promises = this.doQueries(queries);\n\n return this.$q\n .all(promises)\n .then(results => {\n return new ResponseParser(results).parseToVariables();\n })\n .catch(err => {\n if (\n err.error &&\n err.error.data &&\n err.error.data.error &&\n err.error.data.error.innererror &&\n err.error.data.error.innererror.innererror\n ) {\n throw { message: err.error.data.error.innererror.innererror.message };\n } else if (err.error && err.error.data && err.error.data.error) {\n throw { message: err.error.data.error.message };\n }\n });\n });\n }\n\n private buildQuery(query: string, options: any, workspace: any) {\n const querystringBuilder = new LogAnalyticsQuerystringBuilder(\n this.templateSrv.replace(query, {}, this.interpolateVariable),\n options,\n 'TimeGenerated'\n );\n const querystring = querystringBuilder.generate().uriString;\n const url = `${this.baseUrl}/${workspace}/query?${querystring}`;\n const queries: any[] = [];\n queries.push({\n datasourceId: this.id,\n url: url,\n resultFormat: 'table',\n });\n return queries;\n }\n\n interpolateVariable(value, variable) {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return \"'\" + value + \"'\";\n } else {\n return value;\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const quotedValues = _.map(value, val => {\n if (typeof value === 'number') {\n return value;\n }\n\n return \"'\" + val + \"'\";\n });\n return quotedValues.join(',');\n }\n\n getDefaultOrFirstWorkspace() {\n if (this.defaultOrFirstWorkspace) {\n return Promise.resolve(this.defaultOrFirstWorkspace);\n }\n\n return this.getWorkspaces().then(workspaces => {\n this.defaultOrFirstWorkspace = workspaces[0].value;\n return this.defaultOrFirstWorkspace;\n });\n }\n\n annotationQuery(options) {\n if (!options.annotation.rawQuery) {\n return this.$q.reject({\n message: 'Query missing in annotation definition',\n });\n }\n\n const queries: any[] = this.buildQuery(options.annotation.rawQuery, options, options.annotation.workspace);\n\n const promises = this.doQueries(queries);\n\n return this.$q.all(promises).then(results => {\n const annotations = new ResponseParser(results).transformToAnnotations(options);\n return annotations;\n });\n }\n\n doQueries(queries) {\n return _.map(queries, query => {\n return this.doRequest(query.url)\n .then(result => {\n return {\n result: result,\n query: query,\n };\n })\n .catch(err => {\n throw {\n error: err,\n query: query,\n };\n });\n });\n }\n\n doRequest(url, maxRetries = 1) {\n return this.backendSrv\n .datasourceRequest({\n url: this.url + url,\n method: 'GET',\n })\n .catch(error => {\n if (maxRetries > 0) {\n return this.doRequest(url, maxRetries - 1);\n }\n\n throw error;\n });\n }\n\n testDatasource() {\n const validationError = this.isValidConfig();\n if (validationError) {\n return validationError;\n }\n\n return this.getDefaultOrFirstWorkspace()\n .then(ws => {\n const url = `${this.baseUrl}/${ws}/metadata`;\n\n return this.doRequest(url);\n })\n .then(response => {\n if (response.status === 200) {\n return {\n status: 'success',\n message: 'Successfully queried the Azure Log Analytics service.',\n title: 'Success',\n };\n }\n\n return {\n status: 'error',\n message: 'Returned http status code ' + response.status,\n };\n })\n .catch(error => {\n let message = 'Azure Log Analytics: ';\n if (error.config && error.config.url && error.config.url.indexOf('workspacesloganalytics') > -1) {\n message = 'Azure Log Analytics requires access to Azure Monitor but had the following error: ';\n }\n\n message = this.getErrorMessage(message, error);\n\n return {\n status: 'error',\n message: message,\n };\n });\n }\n\n private getErrorMessage(message: string, error: any) {\n message += error.statusText ? error.statusText + ': ' : '';\n if (error.data && error.data.error && error.data.error.code) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (error.data && error.data.error) {\n message += error.data.error;\n } else if (error.data) {\n message += error.data;\n } else {\n message += 'Cannot connect to Azure Log Analytics REST API.';\n }\n return message;\n }\n\n isValidConfig() {\n if (this.instanceSettings.jsonData.azureLogAnalyticsSameAs) {\n return undefined;\n }\n\n if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsSubscriptionId)) {\n return {\n status: 'error',\n message: 'The Subscription Id field is required.',\n };\n }\n\n if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsTenantId)) {\n return {\n status: 'error',\n message: 'The Tenant Id field is required.',\n };\n }\n\n if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsClientId)) {\n return {\n status: 'error',\n message: 'The Client Id field is required.',\n };\n }\n\n return undefined;\n }\n\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n}\n","import _ from 'lodash';\nimport AzureMonitorDatasource from './azure_monitor/azure_monitor_datasource';\nimport AppInsightsDatasource from './app_insights/app_insights_datasource';\nimport AzureLogAnalyticsDatasource from './azure_log_analytics/azure_log_analytics_datasource';\n\nexport default class Datasource {\n id: number;\n name: string;\n azureMonitorDatasource: AzureMonitorDatasource;\n appInsightsDatasource: AppInsightsDatasource;\n azureLogAnalyticsDatasource: AzureLogAnalyticsDatasource;\n\n /** @ngInject */\n constructor(instanceSettings, private backendSrv, private templateSrv, private $q) {\n this.name = instanceSettings.name;\n this.id = instanceSettings.id;\n this.azureMonitorDatasource = new AzureMonitorDatasource(\n instanceSettings,\n this.backendSrv,\n this.templateSrv,\n this.$q\n );\n this.appInsightsDatasource = new AppInsightsDatasource(\n instanceSettings,\n this.backendSrv,\n this.templateSrv,\n this.$q\n );\n\n this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource(\n instanceSettings,\n this.backendSrv,\n this.templateSrv,\n this.$q\n );\n }\n\n query(options) {\n const promises: any[] = [];\n const azureMonitorOptions = _.cloneDeep(options);\n const appInsightsTargets = _.cloneDeep(options);\n const azureLogAnalyticsTargets = _.cloneDeep(options);\n\n azureMonitorOptions.targets = _.filter(azureMonitorOptions.targets, ['queryType', 'Azure Monitor']);\n appInsightsTargets.targets = _.filter(appInsightsTargets.targets, ['queryType', 'Application Insights']);\n azureLogAnalyticsTargets.targets = _.filter(azureLogAnalyticsTargets.targets, ['queryType', 'Azure Log Analytics']);\n\n if (azureMonitorOptions.targets.length > 0) {\n const amPromise = this.azureMonitorDatasource.query(azureMonitorOptions);\n if (amPromise) {\n promises.push(amPromise);\n }\n }\n\n if (appInsightsTargets.targets.length > 0) {\n const aiPromise = this.appInsightsDatasource.query(appInsightsTargets);\n if (aiPromise) {\n promises.push(aiPromise);\n }\n }\n\n if (azureLogAnalyticsTargets.targets.length > 0) {\n const alaPromise = this.azureLogAnalyticsDatasource.query(azureLogAnalyticsTargets);\n if (alaPromise) {\n promises.push(alaPromise);\n }\n }\n\n if (promises.length === 0) {\n return this.$q.when({ data: [] });\n }\n\n return Promise.all(promises).then(results => {\n return { data: _.flatten(results) };\n });\n }\n\n annotationQuery(options) {\n return this.azureLogAnalyticsDatasource.annotationQuery(options);\n }\n\n metricFindQuery(query: string) {\n if (!query) {\n return Promise.resolve([]);\n }\n\n const aiResult = this.appInsightsDatasource.metricFindQuery(query);\n if (aiResult) {\n return aiResult;\n }\n\n const amResult = this.azureMonitorDatasource.metricFindQuery(query);\n if (amResult) {\n return amResult;\n }\n\n const alaResult = this.azureLogAnalyticsDatasource.metricFindQuery(query);\n if (alaResult) {\n return alaResult;\n }\n\n return Promise.resolve([]);\n }\n\n testDatasource() {\n const promises: any[] = [];\n\n if (this.azureMonitorDatasource.isConfigured()) {\n promises.push(this.azureMonitorDatasource.testDatasource());\n }\n\n if (this.appInsightsDatasource.isConfigured()) {\n promises.push(this.appInsightsDatasource.testDatasource());\n }\n\n if (this.azureLogAnalyticsDatasource.isConfigured()) {\n promises.push(this.azureLogAnalyticsDatasource.testDatasource());\n }\n\n if (promises.length === 0) {\n return {\n status: 'error',\n message: `Nothing configured. At least one of the API's must be configured.`,\n title: 'Error',\n };\n }\n\n return this.$q.all(promises).then(results => {\n let status = 'success';\n let message = '';\n\n for (let i = 0; i < results.length; i++) {\n if (results[i].status !== 'success') {\n status = results[i].status;\n }\n message += `${i + 1}. ${results[i].message} `;\n }\n\n return {\n status: status,\n message: message,\n title: _.upperFirst(status),\n };\n });\n }\n\n /* Azure Monitor REST API methods */\n getResourceGroups() {\n return this.azureMonitorDatasource.getResourceGroups();\n }\n\n getMetricDefinitions(resourceGroup: string) {\n return this.azureMonitorDatasource.getMetricDefinitions(resourceGroup);\n }\n\n getResourceNames(resourceGroup: string, metricDefinition: string) {\n return this.azureMonitorDatasource.getResourceNames(resourceGroup, metricDefinition);\n }\n\n getMetricNames(resourceGroup: string, metricDefinition: string, resourceName: string) {\n return this.azureMonitorDatasource.getMetricNames(resourceGroup, metricDefinition, resourceName);\n }\n\n getMetricMetadata(resourceGroup: string, metricDefinition: string, resourceName: string, metricName: string) {\n return this.azureMonitorDatasource.getMetricMetadata(resourceGroup, metricDefinition, resourceName, metricName);\n }\n\n /* Application Insights API method */\n getAppInsightsMetricNames() {\n return this.appInsightsDatasource.getMetricNames();\n }\n\n getAppInsightsMetricMetadata(metricName) {\n return this.appInsightsDatasource.getMetricMetadata(metricName);\n }\n\n getAppInsightsColumns(refId) {\n return this.appInsightsDatasource.logAnalyticsColumns[refId];\n }\n\n /*Azure Log Analytics */\n getAzureLogAnalyticsWorkspaces() {\n return this.azureLogAnalyticsDatasource.getWorkspaces();\n }\n}\n","import React from 'react';\nimport Prism from 'prismjs';\n\nconst TOKEN_MARK = 'prism-token';\n\nexport function setPrismTokens(language, field, values, alias = 'variable') {\n Prism.languages[language][field] = {\n alias,\n pattern: new RegExp(`(?:^|\\\\s)(${values.join('|')})(?:$|\\\\s)`),\n };\n}\n\n/**\n * Code-highlighting plugin based on Prism and\n * https://github.com/ianstormtaylor/slate/blob/master/examples/code-highlighting/index.js\n *\n * (Adapted to handle nested grammar definitions.)\n */\n\nexport default function PrismPlugin({ definition, language }) {\n if (definition) {\n // Don't override exising modified definitions\n Prism.languages[language] = Prism.languages[language] || definition;\n }\n\n return {\n /**\n * Render a Slate mark with appropiate CSS class names\n *\n * @param {Object} props\n * @return {Element}\n */\n\n renderMark(props) {\n const { children, mark } = props;\n // Only apply spans to marks identified by this plugin\n if (mark.type !== TOKEN_MARK) {\n return undefined;\n }\n const className = `token ${mark.data.get('types')}`;\n return {children};\n },\n\n /**\n * Decorate code blocks with Prism.js highlighting.\n *\n * @param {Node} node\n * @return {Array}\n */\n\n decorateNode(node) {\n if (node.type !== 'paragraph') {\n return [];\n }\n\n const texts = node.getTexts().toArray();\n const tstring = texts.map(t => t.text).join('\\n');\n const grammar = Prism.languages[language];\n const tokens = Prism.tokenize(tstring, grammar);\n const decorations: any[] = [];\n let startText = texts.shift();\n let endText = startText;\n let startOffset = 0;\n let endOffset = 0;\n let start = 0;\n\n function processToken(token, acc?) {\n // Accumulate token types down the tree\n const types = `${acc || ''} ${token.type || ''} ${token.alias || ''}`;\n\n // Add mark for token node\n if (typeof token === 'string' || typeof token.content === 'string') {\n startText = endText;\n startOffset = endOffset;\n\n const content = typeof token === 'string' ? token : token.content;\n const newlines = content.split('\\n').length - 1;\n const length = content.length - newlines;\n const end = start + length;\n\n let available = startText.text.length - startOffset;\n let remaining = length;\n\n endOffset = startOffset + remaining;\n\n while (available < remaining) {\n endText = texts.shift();\n remaining = length - available;\n available = endText.text.length;\n endOffset = remaining;\n }\n\n // Inject marks from up the tree (acc) as well\n if (typeof token !== 'string' || acc) {\n const range = {\n anchorKey: startText.key,\n anchorOffset: startOffset,\n focusKey: endText.key,\n focusOffset: endOffset,\n marks: [{ type: TOKEN_MARK, data: { types } }],\n };\n\n decorations.push(range);\n }\n\n start = end;\n } else if (token.content && token.content.length) {\n // Tokens can be nested\n for (const subToken of token.content) {\n processToken(subToken, types);\n }\n }\n }\n\n // Process top-level tokens\n for (const token of tokens) {\n processToken(token);\n }\n\n return decorations;\n },\n };\n}\n","import React from 'react';\n\nfunction scrollIntoView(el) {\n if (!el || !el.offsetParent) {\n return;\n }\n const container = el.offsetParent;\n if (el.offsetTop > container.scrollTop + container.offsetHeight || el.offsetTop < container.scrollTop) {\n container.scrollTop = el.offsetTop - container.offsetTop;\n }\n}\n\nclass TypeaheadItem extends React.PureComponent {\n el: any;\n componentDidUpdate(prevProps) {\n if (this.props.isSelected && !prevProps.isSelected) {\n scrollIntoView(this.el);\n }\n }\n\n getRef = el => {\n this.el = el;\n };\n\n render() {\n const { hint, isSelected, label, onClickItem } = this.props;\n const className = isSelected ? 'typeahead-item typeahead-item__selected' : 'typeahead-item';\n const onClick = () => onClickItem(label);\n return (\n
  • \n {label}\n {hint && isSelected ?
    {hint}
    : null}\n
  • \n );\n }\n}\n\nclass TypeaheadGroup extends React.PureComponent {\n render() {\n const { items, label, selected, onClickItem } = this.props;\n return (\n
  • \n
    {label}
    \n
      \n {items.map(item => {\n const text = typeof item === 'object' ? item.text : item;\n const label = typeof item === 'object' ? item.display || item.text : item;\n return (\n -1}\n hint={item.hint}\n label={label}\n />\n );\n })}\n
    \n
  • \n );\n }\n}\n\nclass Typeahead extends React.PureComponent {\n render() {\n const { groupedItems, menuRef, selectedItems, onClickItem } = this.props;\n return (\n
      \n {groupedItems.map(g => (\n \n ))}\n
    \n );\n }\n}\n\nexport default Typeahead;\n","import PluginPrism from 'app/features/explore/slate-plugins/prism';\nimport BracesPlugin from 'app/features/explore/slate-plugins/braces';\nimport ClearPlugin from 'app/features/explore/slate-plugins/clear';\nimport NewlinePlugin from 'app/features/explore/slate-plugins/newline';\nimport RunnerPlugin from 'app/features/explore/slate-plugins/runner';\n\nimport Typeahead from './typeahead';\nimport { getKeybindingSrv, KeybindingSrv } from 'app/core/services/keybindingSrv';\n\nimport { Block, Document, Text, Value } from 'slate';\nimport { Editor } from 'slate-react';\nimport Plain from 'slate-plain-serializer';\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport _ from 'lodash';\n\nfunction flattenSuggestions(s) {\n return s ? s.reduce((acc, g) => acc.concat(g.items), []) : [];\n}\n\nexport const makeFragment = text => {\n const lines = text.split('\\n').map(line =>\n Block.create({\n type: 'paragraph',\n nodes: [Text.create(line)],\n })\n );\n\n const fragment = Document.create({\n nodes: lines,\n });\n return fragment;\n};\n\nexport const getInitialValue = query => Value.create({ document: makeFragment(query) });\n\nclass Portal extends React.Component {\n node: any;\n\n constructor(props) {\n super(props);\n const { index = 0, prefix = 'query' } = props;\n this.node = document.createElement('div');\n this.node.classList.add(`slate-typeahead`, `slate-typeahead-${prefix}-${index}`);\n document.body.appendChild(this.node);\n }\n\n componentWillUnmount() {\n document.body.removeChild(this.node);\n }\n\n render() {\n return ReactDOM.createPortal(this.props.children, this.node);\n }\n}\n\nclass QueryField extends React.Component {\n menuEl: any;\n plugins: any;\n resetTimer: any;\n keybindingSrv: KeybindingSrv = getKeybindingSrv();\n\n constructor(props, context) {\n super(props, context);\n\n const { prismDefinition = {}, prismLanguage = 'kusto' } = props;\n\n this.plugins = [\n BracesPlugin(),\n ClearPlugin(),\n RunnerPlugin({ handler: props.onPressEnter }),\n NewlinePlugin(),\n PluginPrism({ definition: prismDefinition, language: prismLanguage }),\n ];\n\n this.state = {\n labelKeys: {},\n labelValues: {},\n suggestions: [],\n typeaheadIndex: 0,\n typeaheadPrefix: '',\n value: getInitialValue(props.initialQuery || ''),\n };\n }\n\n componentDidMount() {\n this.updateMenu();\n }\n\n componentWillUnmount() {\n this.restoreEscapeKeyBinding();\n clearTimeout(this.resetTimer);\n }\n\n componentDidUpdate() {\n this.updateMenu();\n }\n\n onChange = ({ value }) => {\n const changed = value.document !== this.state.value.document;\n this.setState({ value }, () => {\n if (changed) {\n // call typeahead only if query changed\n requestAnimationFrame(() => this.onTypeahead());\n this.onChangeQuery();\n }\n });\n };\n\n request = (url?) => {\n if (this.props.request) {\n return this.props.request(url);\n }\n return fetch(url);\n };\n\n onChangeQuery = () => {\n // Send text change to parent\n const { onQueryChange } = this.props;\n if (onQueryChange) {\n onQueryChange(Plain.serialize(this.state.value));\n }\n };\n\n onKeyDown = (event, change) => {\n const { typeaheadIndex, suggestions } = this.state;\n\n switch (event.key) {\n case 'Escape': {\n if (this.menuEl) {\n event.preventDefault();\n event.stopPropagation();\n this.resetTypeahead();\n return true;\n }\n break;\n }\n\n case ' ': {\n if (event.ctrlKey) {\n event.preventDefault();\n this.onTypeahead(true);\n return true;\n }\n break;\n }\n\n case 'Tab':\n case 'Enter': {\n if (this.menuEl) {\n // Dont blur input\n event.preventDefault();\n if (!suggestions || suggestions.length === 0) {\n return undefined;\n }\n\n // Get the currently selected suggestion\n const flattenedSuggestions = flattenSuggestions(suggestions);\n const selected = Math.abs(typeaheadIndex);\n const selectedIndex = selected % flattenedSuggestions.length || 0;\n const suggestion = flattenedSuggestions[selectedIndex];\n\n this.applyTypeahead(change, suggestion);\n return true;\n }\n break;\n }\n\n case 'ArrowDown': {\n if (this.menuEl) {\n // Select next suggestion\n event.preventDefault();\n this.setState({ typeaheadIndex: typeaheadIndex + 1 });\n }\n break;\n }\n\n case 'ArrowUp': {\n if (this.menuEl) {\n // Select previous suggestion\n event.preventDefault();\n this.setState({ typeaheadIndex: Math.max(0, typeaheadIndex - 1) });\n }\n break;\n }\n\n default: {\n // console.log('default key', event.key, event.which, event.charCode, event.locale, data.key);\n break;\n }\n }\n return undefined;\n };\n\n onTypeahead = (change?, item?) => {\n return change || this.state.value.change();\n };\n\n applyTypeahead(change?, suggestion?): { value: object } {\n return { value: {} };\n }\n\n resetTypeahead = () => {\n this.setState({\n suggestions: [],\n typeaheadIndex: 0,\n typeaheadPrefix: '',\n typeaheadContext: null,\n });\n };\n\n handleBlur = () => {\n const { onBlur } = this.props;\n // If we dont wait here, menu clicks wont work because the menu\n // will be gone.\n this.resetTimer = setTimeout(this.resetTypeahead, 100);\n if (onBlur) {\n onBlur();\n }\n this.restoreEscapeKeyBinding();\n };\n\n handleFocus = () => {\n const { onFocus } = this.props;\n if (onFocus) {\n onFocus();\n }\n // Don't go back to dashboard if Escape pressed inside the editor.\n this.removeEscapeKeyBinding();\n };\n\n removeEscapeKeyBinding() {\n this.keybindingSrv.unbind('esc', 'keydown');\n }\n\n restoreEscapeKeyBinding() {\n this.keybindingSrv.setupGlobal();\n }\n\n onClickItem = item => {\n const { suggestions } = this.state;\n if (!suggestions || suggestions.length === 0) {\n return;\n }\n\n // Get the currently selected suggestion\n const flattenedSuggestions = flattenSuggestions(suggestions);\n const suggestion = _.find(\n flattenedSuggestions,\n suggestion => suggestion.display === item || suggestion.text === item\n );\n\n // Manually triggering change\n const change = this.applyTypeahead(this.state.value.change(), suggestion);\n this.onChange(change);\n };\n\n updateMenu = () => {\n const { suggestions } = this.state;\n const menu = this.menuEl;\n const selection = window.getSelection();\n const node = selection.anchorNode;\n\n // No menu, nothing to do\n if (!menu) {\n return;\n }\n\n // No suggestions or blur, remove menu\n const hasSuggesstions = suggestions && suggestions.length > 0;\n if (!hasSuggesstions) {\n menu.removeAttribute('style');\n return;\n }\n\n // Align menu overlay to editor node\n if (node && node.parentElement) {\n // Read from DOM\n const rect = node.parentElement.getBoundingClientRect();\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n const screenHeight = window.innerHeight;\n\n const menuLeft = rect.left + scrollX - 2;\n const menuTop = rect.top + scrollY + rect.height + 4;\n const menuHeight = screenHeight - menuTop - 10;\n\n // Write DOM\n requestAnimationFrame(() => {\n menu.style.opacity = 1;\n menu.style.top = `${menuTop}px`;\n menu.style.left = `${menuLeft}px`;\n menu.style.maxHeight = `${menuHeight}px`;\n });\n }\n };\n\n menuRef = el => {\n this.menuEl = el;\n };\n\n renderMenu = () => {\n const { portalPrefix } = this.props;\n const { suggestions } = this.state;\n const hasSuggesstions = suggestions && suggestions.length > 0;\n if (!hasSuggesstions) {\n return null;\n }\n\n // Guard selectedIndex to be within the length of the suggestions\n let selectedIndex = Math.max(this.state.typeaheadIndex, 0);\n const flattenedSuggestions = flattenSuggestions(suggestions);\n selectedIndex = selectedIndex % flattenedSuggestions.length || 0;\n const selectedKeys = (flattenedSuggestions.length > 0 ? [flattenedSuggestions[selectedIndex]] : []).map(i =>\n typeof i === 'object' ? i.text : i\n );\n\n // Create typeahead in DOM root so we can later position it absolutely\n return (\n \n \n \n );\n };\n\n render() {\n return (\n
    \n {this.renderMenu()}\n \n
    \n );\n }\n}\n\nexport default QueryField;\n","/* tslint:disable:max-line-length */\nexport const operatorTokens = [\n { text: '!between', hint: 'Matches the input that is outside the inclusive range.' },\n { text: 'as', hint: \"Binds a name to the operator's input tabular expression.\" },\n { text: 'between', hint: 'Matches the input that is inside the inclusive range.' },\n {\n text: 'consume',\n hint:\n 'The `consume` operator consumes the tabular data stream handed to it. It is\\r\\nmostly used for triggering the query side-effect without actually returning\\r\\nthe results back to the caller.',\n },\n { text: 'count', hint: 'Returns the number of records in the input record set.' },\n { text: 'datatable', hint: 'Returns a table whose schema and values are defined in the query itself.' },\n {\n text: 'distinct',\n hint: 'Produces a table with the distinct combination of the provided columns of the input table.',\n },\n { text: 'evaluate', hint: 'Invokes a service-side query extension (plugin).' },\n { text: 'extend', hint: 'Create calculated columns and append them to the result set.' },\n {\n text: 'externaldata',\n hint:\n 'Returns a table whose schema is defined in the query itself, and whose data is read from an external raw file.',\n },\n {\n text: 'facet',\n hint:\n 'Returns a set of tables, one for each specified column.\\r\\nEach table specifies the list of values taken by its column.\\r\\nAn additional table can be created by using the `with` clause.',\n },\n { text: 'find', hint: 'Finds rows that match a predicate across a set of tables.' },\n { text: 'fork', hint: 'Runs multiple consumer operators in parallel.' },\n { text: 'getschema', hint: 'Produce a table that represents a tabular schema of the input.' },\n { text: 'in', hint: 'Filters a recordset based on the provided set of values.' },\n { text: 'invoke', hint: 'Invokes lambda that receives the source of `invoke` as tabular parameter argument.' },\n {\n text: 'join',\n hint:\n 'Merge the rows of two tables to form a new table by matching values of the specified column(s) from each table.',\n },\n { text: 'limit', hint: 'Return up to the specified number of rows.' },\n { text: 'make-series', hint: 'Create series of specified aggregated values along specified axis.' },\n { text: 'mvexpand', hint: 'Expands multi-value array or property bag.' },\n { text: 'order', hint: 'Sort the rows of the input table into order by one or more columns.' },\n { text: 'parse', hint: 'Evaluates a string expression and parses its value into one or more calculated columns.' },\n {\n text: 'print',\n hint:\n 'Evaluates one or more scalar expressions and inserts the results (as a single-row table with as many columns as there are expressions) into the output.',\n },\n { text: 'project', hint: 'Select the columns to include, rename or drop, and insert new computed columns.' },\n { text: 'project-away', hint: 'Select what columns to exclude from the input.' },\n { text: 'project-rename', hint: 'Renames columns in the result output.' },\n { text: 'range', hint: 'Generates a single-column table of values.' },\n { text: 'reduce', hint: 'Groups a set of strings together based on values similarity.' },\n { text: 'render', hint: 'Instructs the user agent to render the results of the query in a particular way.' },\n { text: 'sample', hint: 'Returns up to the specified number of random rows from the input table.' },\n {\n text: 'sample-distinct',\n hint:\n 'Returns a single column that contains up to the specified number of distinct values of the requested column.',\n },\n { text: 'search', hint: 'The search operator provides a multi-table/multi-column search experience.' },\n { text: 'serialize', hint: 'Marks that order of the input row set is safe for window functions usage.' },\n { text: 'sort', hint: 'Sort the rows of the input table into order by one or more columns.' },\n { text: 'summarize', hint: 'Produces a table that aggregates the content of the input table.' },\n { text: 'take', hint: 'Return up to the specified number of rows.' },\n { text: 'top', hint: 'Returns the first *N* records sorted by the specified columns.' },\n {\n text: 'top-hitters',\n hint: 'Returns an approximation of the first *N* results (assuming skewed distribution of the input).',\n },\n {\n text: 'top-nested',\n hint: 'Produces hierarchical top results, where each level is a drill-down based on previous level values.',\n },\n { text: 'union', hint: 'Takes two or more tables and returns the rows of all of them.' },\n { text: 'where', hint: 'Filters a table to the subset of rows that satisfy a predicate.' },\n];\n\nexport const functionTokens = [\n { text: 'abs', hint: 'Calculates the absolute value of the input.' },\n {\n text: 'acos',\n hint:\n 'Returns the angle whose cosine is the specified number (the inverse operation of [`cos()`](cosfunction.md)) .',\n },\n { text: 'ago', hint: 'Subtracts the given timespan from the current UTC clock time.' },\n { text: 'any', hint: 'Returns random non-empty value from the specified expression values.' },\n {\n text: 'arg_max',\n hint:\n 'Finds a row in the group that maximizes *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).',\n },\n {\n text: 'arg_min',\n hint:\n 'Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).',\n },\n {\n text: 'argmax',\n hint:\n 'Finds a row in the group that maximizes *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).',\n },\n {\n text: 'argmin',\n hint:\n 'Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).',\n },\n { text: 'array_concat', hint: 'Concatenates a number of dynamic arrays to a single array.' },\n { text: 'array_length', hint: 'Calculates the number of elements in a dynamic array.' },\n { text: 'array_slice', hint: 'Extracts a slice of a dynamic array.' },\n {\n text: 'array_split',\n hint:\n 'Splits an array to multiple arrays according to the split indices and packs the generated array in a dynamic array.',\n },\n {\n text: 'asin',\n hint: 'Returns the angle whose sine is the specified number (the inverse operation of [`sin()`](sinfunction.md)) .',\n },\n {\n text: 'assert',\n hint: 'Checks for a condition; if the condition is false, outputs error messages and fails the query.',\n },\n {\n text: 'atan',\n hint:\n 'Returns the angle whose tangent is the specified number (the inverse operation of [`tan()`](tanfunction.md)) .',\n },\n {\n text: 'atan2',\n hint:\n 'Calculates the angle, in radians, between the positive x-axis and the ray from the origin to the point (y, x).',\n },\n { text: 'avg', hint: 'Calculates the average of *Expr* across the group.' },\n {\n text: 'avgif',\n hint:\n 'Calculates the [average](avg-aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.',\n },\n { text: 'bag_keys', hint: 'Enumerates all the root keys in a dynamic property-bag object.' },\n { text: 'base64_decodestring', hint: 'Decodes a base64 string to a UTF-8 string' },\n { text: 'base64_encodestring', hint: 'Encodes a string as base64 string' },\n { text: 'beta_cdf', hint: 'Returns the standard cumulative beta distribution function.' },\n { text: 'beta_inv', hint: 'Returns the inverse of the beta cumulative probability beta density function.' },\n { text: 'beta_pdf', hint: 'Returns the probability density beta function.' },\n { text: 'bin', hint: 'Rounds values down to an integer multiple of a given bin size.' },\n {\n text: 'bin_at',\n hint:\n \"Rounds values down to a fixed-size 'bin', with control over the bin's starting point.\\r\\n(See also [`bin function`](./binfunction.md).)\",\n },\n {\n text: 'bin_auto',\n hint:\n \"Rounds values down to a fixed-size 'bin', with control over the bin size and starting point provided by a query property.\",\n },\n { text: 'binary_and', hint: 'Returns a result of the bitwise `and` operation between two values.' },\n { text: 'binary_not', hint: 'Returns a bitwise negation of the input value.' },\n { text: 'binary_or', hint: 'Returns a result of the bitwise `or` operation of the two values.' },\n { text: 'binary_shift_left', hint: 'Returns binary shift left operation on a pair of numbers.' },\n { text: 'binary_shift_right', hint: 'Returns binary shift right operation on a pair of numbers.' },\n { text: 'binary_xor', hint: 'Returns a result of the bitwise `xor` operation of the two values.' },\n { text: 'buildschema', hint: 'Returns the minimal schema that admits all values of *DynamicExpr*.' },\n {\n text: 'case',\n hint: 'Evaluates a list of predicates and returns the first result expression whose predicate is satisfied.',\n },\n {\n text: 'ceiling',\n hint: 'Calculates the smallest integer greater than, or equal to, the specified numeric expression.',\n },\n { text: 'cluster', hint: 'Changes the reference of the query to a remote cluster.' },\n {\n text: 'coalesce',\n hint: 'Evaluates a list of expressions and returns the first non-null (or non-empty for string) expression.',\n },\n { text: 'cos', hint: 'Returns the cosine function.' },\n { text: 'cot', hint: 'Calculates the trigonometric cotangent of the specified angle, in radians.' },\n {\n text: 'count',\n hint:\n 'Returns a count of the records per summarization group (or in total if summarization is done without grouping).',\n },\n { text: 'countif', hint: 'Returns a count of rows for which *Predicate* evaluates to `true`.' },\n {\n text: 'countof',\n hint: 'Counts occurrences of a substring in a string. Plain string matches may overlap; regex matches do not.',\n },\n { text: 'current_principal', hint: 'Returns the current principal running this query.' },\n {\n text: 'cursor_after',\n hint: 'A predicate over the records of a table to compare their ingestion time\\r\\nagainst a database cursor.',\n },\n {\n text: 'cursor_before_or_at',\n hint: 'A predicate over the records of a table to compare their ingestion time\\r\\nagainst a database cursor.',\n },\n { text: 'database', hint: 'Changes the reference of the query to a specific database within the cluster scope.' },\n {\n text: 'datetime_add',\n hint:\n 'Calculates a new [datetime](./scalar-data-types/datetime.md) from a specified datepart multiplied by a specified amount, added to a specified [datetime](./scalar-data-types/datetime.md).',\n },\n {\n text: 'datetime_diff',\n hint: 'Calculates calendarian difference between two [datetime](./scalar-data-types/datetime.md) values.',\n },\n { text: 'datetime_part', hint: 'Extracts the requested date part as an integer value.' },\n { text: 'dayofmonth', hint: 'Returns the integer number representing the day number of the given month' },\n { text: 'dayofweek', hint: 'Returns the integer number of days since the preceding Sunday, as a `timespan`.' },\n { text: 'dayofyear', hint: 'Returns the integer number represents the day number of the given year.' },\n { text: 'dcount', hint: 'Returns an estimate of the number of distinct values of *Expr* in the group.' },\n {\n text: 'dcount_hll',\n hint:\n 'Calculates the dcount from hll results (which was generated by [hll](hll-aggfunction.md) or [hll_merge](hll-merge-aggfunction.md)).',\n },\n {\n text: 'dcountif',\n hint:\n 'Returns an estimate of the number of distinct values of *Expr* of rows for which *Predicate* evaluates to `true`.',\n },\n {\n text: 'degrees',\n hint:\n 'Converts angle value in radians into value in degrees, using formula `degrees = (180 / PI ) * angle_in_radians`',\n },\n { text: 'distance', hint: 'Returns the distance between two points in meters.' },\n { text: 'endofday', hint: 'Returns the end of the day containing the date, shifted by an offset, if provided.' },\n { text: 'endofmonth', hint: 'Returns the end of the month containing the date, shifted by an offset, if provided.' },\n { text: 'endofweek', hint: 'Returns the end of the week containing the date, shifted by an offset, if provided.' },\n { text: 'endofyear', hint: 'Returns the end of the year containing the date, shifted by an offset, if provided.' },\n {\n text: 'estimate_data_size',\n hint: 'Returns an estimated data size of the selected columns of the tabular expression.',\n },\n { text: 'exp', hint: 'The base-e exponential function of x, which is e raised to the power x: e^x.' },\n {\n text: 'exp10',\n hint: 'The base-10 exponential function of x, which is 10 raised to the power x: 10^x. \\r\\n**Syntax**',\n },\n { text: 'exp2', hint: 'The base-2 exponential function of x, which is 2 raised to the power x: 2^x.' },\n {\n text: 'extent_id',\n hint: 'Returns a unique identifier that identifies the data shard (\"extent\") that the current record resides in.',\n },\n {\n text: 'extent_tags',\n hint:\n 'Returns a dynamic array with the [tags](../management/extents-overview.md#extent-tagging) of the data shard (\"extent\") that the current record resides in.',\n },\n { text: 'extract', hint: 'Get a match for a [regular expression](./re2.md) from a text string.' },\n { text: 'extract_all', hint: 'Get all matches for a [regular expression](./re2.md) from a text string.' },\n { text: 'extractjson', hint: 'Get a specified element out of a JSON text using a path expression.' },\n { text: 'floor', hint: 'An alias for [`bin()`](binfunction.md).' },\n { text: 'format_datetime', hint: 'Formats a datetime parameter based on the format pattern parameter.' },\n { text: 'format_timespan', hint: 'Formats a timespan parameter based on the format pattern parameter.' },\n { text: 'gamma', hint: 'Computes [gamma function](https://en.wikipedia.org/wiki/Gamma_function)' },\n { text: 'getmonth', hint: 'Get the month number (1-12) from a datetime.' },\n { text: 'gettype', hint: 'Returns the runtime type of its single argument.' },\n { text: 'getyear', hint: 'Returns the year part of the `datetime` argument.' },\n { text: 'hash', hint: 'Returns a hash value for the input value.' },\n { text: 'hash_sha256', hint: 'Returns a sha256 hash value for the input value.' },\n { text: 'hll', hint: 'Calculates the Intermediate results of [dcount](dcount-aggfunction.md) across the group.' },\n {\n text: 'hll_merge',\n hint: 'Merges hll results (scalar version of the aggregate version [`hll_merge()`](hll-merge-aggfunction.md)).',\n },\n { text: 'hourofday', hint: 'Returns the integer number representing the hour number of the given date' },\n {\n text: 'iff',\n hint:\n 'Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).',\n },\n {\n text: 'iif',\n hint:\n 'Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).',\n },\n {\n text: 'indexof',\n hint: 'Function reports the zero-based index of the first occurrence of a specified string within input string.',\n },\n { text: 'ingestion_time', hint: \"Retrieves the record's `$IngestionTime` hidden `datetime` column, or null.\" },\n {\n text: 'iscolumnexists',\n hint:\n 'Returns a boolean value indicating if the given string argument exists in the schema produced by the preceding tabular operator.',\n },\n { text: 'isempty', hint: 'Returns `true` if the argument is an empty string or is null.' },\n { text: 'isfinite', hint: 'Returns whether input is a finite value (is neither infinite nor NaN).' },\n { text: 'isinf', hint: 'Returns whether input is an infinite (positive or negative) value.' },\n { text: 'isnan', hint: 'Returns whether input is Not-a-Number (NaN) value.' },\n { text: 'isnotempty', hint: 'Returns `true` if the argument is not an empty string nor it is a null.' },\n { text: 'isnotnull', hint: 'Returns `true` if the argument is not null.' },\n {\n text: 'isnull',\n hint:\n 'Evaluates its sole argument and returns a `bool` value indicating if the argument evaluates to a null value.',\n },\n { text: 'log', hint: 'Returns the natural logarithm function.' },\n { text: 'log10', hint: 'Returns the common (base-10) logarithm function.' },\n { text: 'log2', hint: 'Returns the base-2 logarithm function.' },\n {\n text: 'loggamma',\n hint: 'Computes log of absolute value of the [gamma function](https://en.wikipedia.org/wiki/Gamma_function)',\n },\n {\n text: 'make_datetime',\n hint: 'Creates a [datetime](./scalar-data-types/datetime.md) scalar value from the specified date and time.',\n },\n {\n text: 'make_dictionary',\n hint: 'Returns a `dynamic` (JSON) property-bag (dictionary) of all the values of *Expr* in the group.',\n },\n { text: 'make_string', hint: 'Returns the string generated by the Unicode characters.' },\n {\n text: 'make_timespan',\n hint: 'Creates a [timespan](./scalar-data-types/timespan.md) scalar value from the specified time period.',\n },\n { text: 'makelist', hint: 'Returns a `dynamic` (JSON) array of all the values of *Expr* in the group.' },\n {\n text: 'makeset',\n hint: 'Returns a `dynamic` (JSON) array of the set of distinct values that *Expr* takes in the group.',\n },\n {\n text: 'materialize',\n hint:\n 'Allows caching a sub-query result during the time of query execution in a way that other subqueries can reference the partial result.',\n },\n { text: 'max', hint: 'Returns the maximum value across the group.' },\n { text: 'max_of', hint: 'Returns the maximum value of several evaluated numeric expressions.' },\n {\n text: 'merge_tdigests',\n hint:\n 'Merges tdigest results (scalar version of the aggregate version [`merge_tdigests()`](merge-tdigests-aggfunction.md)).',\n },\n { text: 'min', hint: 'Returns the minimum value agross the group.' },\n { text: 'min_of', hint: 'Returns the minimum value of several evaluated numeric expressions.' },\n { text: 'monthofyear', hint: 'Returns the integer number represents the month number of the given year.' },\n {\n text: 'next',\n hint:\n 'Returns the value of a column in a row that it at some offset following the\\r\\ncurrent row in a [serialized row set](./windowsfunctions.md#serialized-row-set).',\n },\n { text: 'not', hint: 'Reverses the value of its `bool` argument.' },\n {\n text: 'now',\n hint:\n 'Returns the current UTC clock time, optionally offset by a given timespan.\\r\\nThis function can be used multiple times in a statement and the clock time being referenced will be the same for all instances.',\n },\n { text: 'pack', hint: 'Creates a `dynamic` object (property bag) from a list of names and values.' },\n {\n text: 'pack_all',\n hint: 'Creates a `dynamic` object (property bag) from all the columns of the tabular expression.',\n },\n { text: 'pack_array', hint: 'Packs all input values into a dynamic array.' },\n { text: 'parse_ipv4', hint: 'Converts input to integer (signed 64-bit) number representation.' },\n {\n text: 'parse_json',\n hint:\n 'Interprets a `string` as a [JSON value](https://json.org/)) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md). \\r\\nIt is superior to using [extractjson() function](./extractjsonfunction.md)\\r\\nwhen you need to extract more than one element of a JSON compound object.',\n },\n {\n text: 'parse_path',\n hint:\n 'Parses a file path `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object that contains the following parts of the path: \\r\\nScheme, RootPath, DirectoryPath, DirectoryName, FileName, Extension, AlternateDataStreamName.\\r\\nIn addition to the simple paths with both types of slashes, supports paths with schemas (e.g. \"file://...\"), shared paths (e.g. \"\\\\\\\\shareddrive\\\\users...\"), long paths (e.g \"\\\\\\\\?\\\\C:...\"\"), alternate data streams (e.g. \"file1.exe:file2.exe\")',\n },\n {\n text: 'parse_url',\n hint:\n 'Parses an absolute URL `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains all parts of the URL (Scheme, Host, Port, Path, Username, Password, Query Parameters, Fragment).',\n },\n {\n text: 'parse_urlquery',\n hint:\n 'Parses a url query `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains the Query parameters.',\n },\n {\n text: 'parse_user_agent',\n hint:\n \"Interprets a user-agent string, which identifies the user's browser and provides certain system details to servers hosting the websites the user visits. The result is returned as [`dynamic`](./scalar-data-types/dynamic.md).\",\n },\n { text: 'parse_version', hint: 'Converts input string representation of version to a comparable decimal number.' },\n {\n text: 'parse_xml',\n hint:\n 'Interprets a `string` as a XML value, converts the value to a [JSON value](https://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).',\n },\n {\n text: 'percentile',\n hint:\n 'Returns an estimate for the specified [nearest-rank percentile](#nearest-rank-percentile) of the population defined by *Expr*. \\r\\nThe accuracy depends on the density of population in the region of the percentile.',\n },\n {\n text: 'percentile_tdigest',\n hint:\n 'Calculates the percentile result from tdigest results (which was generated by [tdigest](tdigest-aggfunction.md) or [merge-tdigests](merge-tdigests-aggfunction.md))',\n },\n {\n text: 'percentrank_tdigest',\n hint:\n \"Calculates the approximate rank of the value in a set where rank is expressed as percentage of set's size. \\r\\nThis function can be viewed as the inverse of the percentile.\",\n },\n { text: 'pi', hint: 'Returns the constant value of Pi (π).' },\n { text: 'point', hint: 'Returns a dynamic array representation of a point.' },\n { text: 'pow', hint: 'Returns a result of raising to power' },\n {\n text: 'prev',\n hint:\n 'Returns the value of a column in a row that it at some offset prior to the\\r\\ncurrent row in a [serialized row set](./windowsfunctions.md#serialized-row-set).',\n },\n {\n text: 'radians',\n hint:\n 'Converts angle value in degrees into value in radians, using formula `radians = (PI / 180 ) * angle_in_degrees`',\n },\n { text: 'rand', hint: 'Returns a random number.' },\n { text: 'range', hint: 'Generates a dynamic array holding a series of equally-spaced values.' },\n { text: 'repeat', hint: 'Generates a dynamic array holding a series of equal values.' },\n { text: 'replace', hint: 'Replace all regex matches with another string.' },\n { text: 'reverse', hint: 'Function makes reverse of input string.' },\n { text: 'round', hint: 'Returns the rounded source to the specified precision.' },\n {\n text: 'row_cumsum',\n hint:\n 'Calculates the cumulative sum of a column in a [serialized row set](./windowsfunctions.md#serialized-row-set).',\n },\n {\n text: 'row_number',\n hint:\n \"Returns the current row's index in a [serialized row set](./windowsfunctions.md#serialized-row-set).\\r\\nThe row index starts by default at `1` for the first row, and is incremented by `1` for each additional row.\\r\\nOptionally, the row index can start at a different value than `1`.\\r\\nAdditionally, the row index may be reset according to some provided predicate.\",\n },\n { text: 'series_add', hint: 'Calculates the element-wise addition of two numeric series inputs.' },\n { text: 'series_decompose', hint: 'Applies a decomposition transformation on a series.' },\n {\n text: 'series_decompose_anomalies',\n hint:\n 'Anomaly Detection based on series decomposition (refer to [series_decompose()](series-decomposefunction.md))',\n },\n { text: 'series_decompose_forecast', hint: 'Forecast based on series decomposition.' },\n { text: 'series_divide', hint: 'Calculates the element-wise division of two numeric series inputs.' },\n {\n text: 'series_equals',\n hint: 'Calculates the element-wise equals (`==`) logic operation of two numeric series inputs.',\n },\n { text: 'series_fill_backward', hint: 'Performs backward fill interpolation of missing values in a series.' },\n { text: 'series_fill_const', hint: 'Replaces missing values in a series with a specified constant value.' },\n { text: 'series_fill_forward', hint: 'Performs forward fill interpolation of missing values in a series.' },\n { text: 'series_fill_linear', hint: 'Performs linear interpolation of missing values in a series.' },\n { text: 'series_fir', hint: 'Applies a Finite Impulse Response filter on a series.' },\n {\n text: 'series_fit_2lines',\n hint: 'Applies two segments linear regression on a series, returning multiple columns.',\n },\n {\n text: 'series_fit_2lines_dynamic',\n hint: 'Applies two segments linear regression on a series, returning dynamic object.',\n },\n { text: 'series_fit_line', hint: 'Applies linear regression on a series, returning multiple columns.' },\n { text: 'series_fit_line_dynamic', hint: 'Applies linear regression on a series, returning dynamic object.' },\n {\n text: 'series_greater',\n hint: 'Calculates the element-wise greater (`>`) logic operation of two numeric series inputs.',\n },\n {\n text: 'series_greater_equals',\n hint: 'Calculates the element-wise greater or equals (`>=`) logic operation of two numeric series inputs.',\n },\n { text: 'series_iir', hint: 'Applies a Infinite Impulse Response filter on a series.' },\n { text: 'series_less', hint: 'Calculates the element-wise less (`<`) logic operation of two numeric series inputs.' },\n {\n text: 'series_less_equals',\n hint: 'Calculates the element-wise less or equal (`<=`) logic operation of two numeric series inputs.',\n },\n { text: 'series_multiply', hint: 'Calculates the element-wise multiplication of two numeric series inputs.' },\n {\n text: 'series_not_equals',\n hint: 'Calculates the element-wise not equals (`!=`) logic operation of two numeric series inputs.',\n },\n { text: 'series_outliers', hint: 'Scores anomaly points in a series.' },\n { text: 'series_periods_detect', hint: 'Finds the most significant periods that exist in a time series.' },\n {\n text: 'series_periods_validate',\n hint: 'Checks whether a time series contains periodic patterns of given lengths.',\n },\n {\n text: 'series_seasonal',\n hint: 'Calculates the seasonal component of a series according to the detected or given seasonal period.',\n },\n { text: 'series_stats', hint: 'Returns statistics for a series in multiple columns.' },\n { text: 'series_stats_dynamic', hint: 'Returns statistics for a series in dynamic object.' },\n { text: 'series_subtract', hint: 'Calculates the element-wise subtraction of two numeric series inputs.' },\n { text: 'sign', hint: 'Sign of a numeric expression' },\n { text: 'sin', hint: 'Returns the sine function.' },\n {\n text: 'split',\n hint:\n 'Splits a given string according to a given delimiter and returns a string array with the contained substrings.',\n },\n { text: 'sqrt', hint: 'Returns the square root function.' },\n { text: 'startofday', hint: 'Returns the start of the day containing the date, shifted by an offset, if provided.' },\n {\n text: 'startofmonth',\n hint: 'Returns the start of the month containing the date, shifted by an offset, if provided.',\n },\n {\n text: 'startofweek',\n hint: 'Returns the start of the week containing the date, shifted by an offset, if provided.',\n },\n {\n text: 'startofyear',\n hint: 'Returns the start of the year containing the date, shifted by an offset, if provided.',\n },\n {\n text: 'stdev',\n hint:\n 'Calculates the standard deviation of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).',\n },\n {\n text: 'stdevif',\n hint:\n 'Calculates the [stdev](stdev-aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.',\n },\n {\n text: 'stdevp',\n hint:\n 'Calculates the standard deviation of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).',\n },\n { text: 'strcat', hint: 'Concatenates between 1 and 64 arguments.' },\n { text: 'strcat_array', hint: 'Creates a concatenated string of array values using specified delimiter.' },\n {\n text: 'strcat_delim',\n hint: 'Concatenates between 2 and 64 arguments, with delimiter, provided as first argument.',\n },\n { text: 'strcmp', hint: 'Compares two strings.' },\n { text: 'string_size', hint: 'Returns the size, in bytes, of the input string.' },\n { text: 'strlen', hint: 'Returns the length, in characters, of the input string.' },\n { text: 'strrep', hint: 'Repeats given [string](./scalar-data-types/string.md) provided amount of times.' },\n {\n text: 'substring',\n hint: 'Extracts a substring from a source string starting from some index to the end of the string.',\n },\n { text: 'sum', hint: 'Calculates the sum of *Expr* across the group.' },\n { text: 'sumif', hint: 'Returns a sum of *Expr* for which *Predicate* evaluates to `true`.' },\n { text: 'table', hint: 'References specific table using an query-time evaluated string-expression.' },\n { text: 'tan', hint: 'Returns the tangent function.' },\n {\n text: 'tdigest',\n hint: 'Calculates the Intermediate results of [`percentiles()`](percentiles-aggfunction.md) across the group.',\n },\n {\n text: 'tdigest_merge',\n hint:\n 'Merges tdigest results (scalar version of the aggregate version [`tdigest_merge()`](tdigest-merge-aggfunction.md)).',\n },\n { text: 'tobool', hint: 'Converts input to boolean (signed 8-bit) representation.' },\n { text: 'todatetime', hint: 'Converts input to [datetime](./scalar-data-types/datetime.md) scalar.' },\n { text: 'todecimal', hint: 'Converts input to decimal number representation.' },\n {\n text: 'todouble',\n hint: 'Converts the input to a value of type `real`. (`todouble()` and `toreal()` are synonyms.)',\n },\n {\n text: 'todynamic',\n hint:\n 'Interprets a `string` as a [JSON value](https://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).',\n },\n { text: 'toguid', hint: 'Converts input to [`guid`](./scalar-data-types/guid.md) representation.' },\n { text: 'tohex', hint: 'Converts input to a hexadecimal string.' },\n { text: 'toint', hint: 'Converts input to integer (signed 32-bit) number representation.' },\n { text: 'tolong', hint: 'Converts input to long (signed 64-bit) number representation.' },\n { text: 'tolower', hint: 'Converts input string to lower case.' },\n { text: 'toscalar', hint: 'Returns a scalar constant value of the evaluated expression.' },\n { text: 'tostring', hint: 'Converts input to a string representation.' },\n { text: 'totimespan', hint: 'Converts input to [timespan](./scalar-data-types/timespan.md) scalar.' },\n { text: 'toupper', hint: 'Converts a string to upper case.' },\n {\n text: 'translate',\n hint:\n \"Replaces a set of characters ('searchList') with another set of characters ('replacementList') in a given a string.\\r\\nThe function searches for characters in the 'searchList' and replaces them with the corresponding characters in 'replacementList'\",\n },\n { text: 'treepath', hint: 'Enumerates all the path expressions that identify leaves in a dynamic object.' },\n { text: 'trim', hint: 'Removes all leading and trailing matches of the specified regular expression.' },\n { text: 'trim_end', hint: 'Removes trailing match of the specified regular expression.' },\n { text: 'trim_start', hint: 'Removes leading match of the specified regular expression.' },\n { text: 'url_decode', hint: 'The function converts encoded URL into a to regular URL representation.' },\n {\n text: 'url_encode',\n hint: 'The function converts characters of the input URL into a format that can be transmitted over the Internet.',\n },\n {\n text: 'variance',\n hint:\n 'Calculates the variance of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).',\n },\n {\n text: 'varianceif',\n hint:\n 'Calculates the [variance](variance-aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.',\n },\n {\n text: 'variancep',\n hint:\n 'Calculates the variance of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).',\n },\n { text: 'weekofyear', hint: 'Returns the integer number represents the week number.' },\n {\n text: 'welch_test',\n hint: 'Computes the p_value of the [Welch-test function](https://en.wikipedia.org/wiki/Welch%27s_t-test)',\n },\n {\n text: 'zip',\n hint:\n 'The `zip` function accepts any number of `dynamic` arrays, and returns an\\r\\narray whose elements are each an array holding the elements of the input\\r\\narrays of the same index.',\n },\n];\n\nexport const KEYWORDS = [\n 'by',\n 'on',\n 'contains',\n 'notcontains',\n 'containscs',\n 'notcontainscs',\n 'startswith',\n 'has',\n 'matches',\n 'regex',\n 'true',\n 'false',\n 'and',\n 'or',\n 'typeof',\n 'int',\n 'string',\n 'date',\n 'datetime',\n 'time',\n 'long',\n 'real',\n '​boolean',\n 'bool',\n];\n\nexport const grafanaMacros = [\n {\n text: '$__timeFilter',\n display: '$__timeFilter()',\n hint: 'Macro that uses the selected timerange in Grafana to filter the query.',\n },\n {\n text: '$__escapeMulti',\n display: '$__escapeMulti()',\n hint: 'Macro to escape multi-value template variables that contain illegal characters.',\n },\n { text: '$__contains', display: '$__contains()', hint: 'Macro for multi-value template variables.' },\n];\n\n// Kusto operators\n// export const OPERATORS = ['+', '-', '*', '/', '>', '<', '==', '<>', '<=', '>=', '~', '!~'];\n\nexport const DURATION = ['SECONDS', 'MINUTES', 'HOURS', 'DAYS', 'WEEKS', 'MONTHS', 'YEARS'];\n\nconst tokenizer = {\n comment: {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true,\n },\n 'function-context': {\n pattern: /[a-z0-9_]+\\([^)]*\\)?/i,\n inside: {},\n },\n duration: {\n pattern: new RegExp(`${DURATION.join('?|')}?`, 'i'),\n alias: 'number',\n },\n builtin: new RegExp(`\\\\b(?:${functionTokens.map(f => f.text).join('|')})(?=\\\\s*\\\\()`, 'i'),\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n },\n keyword: new RegExp(`\\\\b(?:${KEYWORDS.join('|')}|${operatorTokens.map(f => f.text).join('|')}|\\\\*)\\\\b`, 'i'),\n boolean: /\\b(?:true|false)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /-|\\+|\\*|\\/|>|<|==|<=?|>=?|<>|!~|~|=|\\|/,\n punctuation: /[{};(),.:]/,\n variable: /(\\[\\[(.+?)\\]\\])|(\\$(.+?))\\b/,\n};\n\ntokenizer['function-context'].inside = {\n argument: {\n pattern: /[a-z0-9_]+(?=:)/i,\n alias: 'symbol',\n },\n duration: tokenizer.duration,\n number: tokenizer.number,\n builtin: tokenizer.builtin,\n string: tokenizer.string,\n variable: tokenizer.variable,\n};\n\n// console.log(tokenizer.builtin);\n\nexport default tokenizer;\n\n// function escapeRegExp(str: string): string {\n// return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n// }\n","// Based on underscore.js debounce()\nexport default function debounce(func, wait) {\n let timeout;\n return function(this: any) {\n const context = this;\n const args = arguments;\n const later = () => {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n","import _ from 'lodash';\nimport Plain from 'slate-plain-serializer';\n\nimport QueryField from './query_field';\n// import debounce from './utils/debounce';\n// import {getNextCharacter} from './utils/dom';\nimport debounce from 'app/features/explore/utils/debounce';\nimport { getNextCharacter } from 'app/features/explore/utils/dom';\n\nimport { KEYWORDS, functionTokens, operatorTokens, grafanaMacros } from './kusto/kusto';\n// import '../sass/editor.base.scss';\n\nconst TYPEAHEAD_DELAY = 100;\n\ninterface Suggestion {\n text: string;\n deleteBackwards?: number;\n type?: string;\n}\n\ninterface SuggestionGroup {\n label: string;\n items: Suggestion[];\n prefixMatch?: boolean;\n skipFilter?: boolean;\n}\n\ninterface KustoSchema {\n Databases: {\n Default?: KustoDBSchema;\n };\n Plugins?: any[];\n}\n\ninterface KustoDBSchema {\n Name?: string;\n Functions?: any;\n Tables?: any;\n}\n\nconst defaultSchema = () => ({\n Databases: {\n Default: {},\n },\n});\n\nconst cleanText = s => s.replace(/[{}[\\]=\"(),!~+\\-*/^%]/g, '').trim();\nconst wrapText = text => ({ text });\n\nexport default class KustoQueryField extends QueryField {\n fields: any;\n events: any;\n schema: KustoSchema;\n\n constructor(props, context) {\n super(props, context);\n this.schema = defaultSchema();\n\n this.onTypeahead = debounce(this.onTypeahead, TYPEAHEAD_DELAY);\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.fetchSchema();\n }\n\n onTypeahead = (force?: boolean) => {\n const selection = window.getSelection();\n if (selection.anchorNode) {\n const wrapperNode = selection.anchorNode.parentElement;\n if (wrapperNode === null) {\n return;\n }\n const editorNode = wrapperNode.closest('.slate-query-field');\n if (!editorNode || this.state.value.isBlurred) {\n // Not inside this editor\n return;\n }\n\n // DOM ranges\n const range = selection.getRangeAt(0);\n const text = selection.anchorNode.textContent;\n if (text === null) {\n return;\n }\n const offset = range.startOffset;\n let prefix = cleanText(text.substr(0, offset));\n\n // Model ranges\n const modelOffset = this.state.value.anchorOffset;\n const modelPrefix = this.state.value.anchorText.text.slice(0, modelOffset);\n\n // Determine candidates by context\n let suggestionGroups: SuggestionGroup[] = [];\n const wrapperClasses = wrapperNode.classList;\n let typeaheadContext: string | null = null;\n\n // Built-in functions\n if (wrapperClasses.contains('function-context')) {\n typeaheadContext = 'context-function';\n suggestionGroups = this.getColumnSuggestions();\n\n // where\n } else if (modelPrefix.match(/(where\\s(\\w+\\b)?$)/i)) {\n typeaheadContext = 'context-where';\n suggestionGroups = this.getColumnSuggestions();\n\n // summarize by\n } else if (modelPrefix.match(/(summarize\\s(\\w+\\b)?$)/i)) {\n typeaheadContext = 'context-summarize';\n suggestionGroups = this.getFunctionSuggestions();\n } else if (modelPrefix.match(/(summarize\\s(.+\\s)?by\\s+([^,\\s]+,\\s*)*([^,\\s]+\\b)?$)/i)) {\n typeaheadContext = 'context-summarize-by';\n suggestionGroups = this.getColumnSuggestions();\n\n // order by, top X by, ... by ...\n } else if (modelPrefix.match(/(by\\s+([^,\\s]+,\\s*)*([^,\\s]+\\b)?$)/i)) {\n typeaheadContext = 'context-by';\n suggestionGroups = this.getColumnSuggestions();\n\n // join\n } else if (modelPrefix.match(/(on\\s(.+\\b)?$)/i)) {\n typeaheadContext = 'context-join-on';\n suggestionGroups = this.getColumnSuggestions();\n } else if (modelPrefix.match(/(join\\s+(\\(\\s+)?(\\w+\\b)?$)/i)) {\n typeaheadContext = 'context-join';\n suggestionGroups = this.getTableSuggestions();\n\n // distinct\n } else if (modelPrefix.match(/(distinct\\s(.+\\b)?$)/i)) {\n typeaheadContext = 'context-distinct';\n suggestionGroups = this.getColumnSuggestions();\n\n // database()\n } else if (modelPrefix.match(/(database\\(\\\"(\\w+)\\\"\\)\\.(.+\\b)?$)/i)) {\n typeaheadContext = 'context-database-table';\n const db = this.getDBFromDatabaseFunction(modelPrefix);\n console.log(db);\n suggestionGroups = this.getTableSuggestions(db);\n prefix = prefix.replace('.', '');\n\n // new\n } else if (normalizeQuery(Plain.serialize(this.state.value)).match(/^\\s*\\w*$/i)) {\n typeaheadContext = 'context-new';\n if (this.schema) {\n suggestionGroups = this.getInitialSuggestions();\n } else {\n this.fetchSchema();\n setTimeout(this.onTypeahead, 0);\n return;\n }\n\n // built-in\n } else if (prefix && !wrapperClasses.contains('argument') && !force) {\n // Use only last typed word as a prefix for searching\n if (modelPrefix.match(/\\s$/i)) {\n prefix = '';\n return;\n }\n prefix = getLastWord(prefix);\n typeaheadContext = 'context-builtin';\n suggestionGroups = this.getKeywordSuggestions();\n } else if (force === true) {\n typeaheadContext = 'context-builtin-forced';\n if (modelPrefix.match(/\\s$/i)) {\n prefix = '';\n }\n suggestionGroups = this.getKeywordSuggestions();\n }\n\n let results = 0;\n prefix = prefix.toLowerCase();\n const filteredSuggestions = suggestionGroups\n .map(group => {\n if (group.items && prefix && !group.skipFilter) {\n group.items = group.items.filter(c => c.text.length >= prefix.length);\n if (group.prefixMatch) {\n group.items = group.items.filter(c => c.text.toLowerCase().indexOf(prefix) === 0);\n } else {\n group.items = group.items.filter(c => c.text.toLowerCase().indexOf(prefix) > -1);\n }\n }\n results += group.items.length;\n return group;\n })\n .filter(group => group.items.length > 0);\n\n // console.log('onTypeahead', selection.anchorNode, wrapperClasses, text, offset, prefix, typeaheadContext);\n // console.log('onTypeahead', prefix, typeaheadContext, force);\n\n this.setState({\n typeaheadPrefix: prefix,\n typeaheadContext,\n typeaheadText: text,\n suggestions: results > 0 ? filteredSuggestions : [],\n });\n }\n };\n\n applyTypeahead(change, suggestion) {\n const { typeaheadPrefix, typeaheadContext, typeaheadText } = this.state;\n let suggestionText = suggestion.text || suggestion;\n const move = 0;\n\n // Modify suggestion based on context\n\n const nextChar = getNextCharacter();\n if (suggestion.type === 'function') {\n if (!nextChar || nextChar !== '(') {\n suggestionText += '(';\n }\n } else if (typeaheadContext === 'context-function') {\n if (!nextChar || nextChar !== ')') {\n suggestionText += ')';\n }\n } else {\n if (!nextChar || nextChar !== ' ') {\n suggestionText += ' ';\n }\n }\n\n this.resetTypeahead();\n\n // Remove the current, incomplete text and replace it with the selected suggestion\n const backward = suggestion.deleteBackwards || typeaheadPrefix.length;\n const text = cleanText(typeaheadText);\n const suffixLength = text.length - typeaheadPrefix.length;\n const offset = typeaheadText.indexOf(typeaheadPrefix);\n const midWord = typeaheadPrefix && ((suffixLength > 0 && offset > -1) || suggestionText === typeaheadText);\n const forward = midWord ? suffixLength + offset : 0;\n\n return change\n .deleteBackward(backward)\n .deleteForward(forward)\n .insertText(suggestionText)\n .move(move)\n .focus();\n }\n\n // private _getFieldsSuggestions(): SuggestionGroup[] {\n // return [\n // {\n // prefixMatch: true,\n // label: 'Fields',\n // items: this.fields.map(wrapText)\n // },\n // {\n // prefixMatch: true,\n // label: 'Variables',\n // items: this.props.templateVariables.map(wrapText)\n // }\n // ];\n // }\n\n // private _getAfterFromSuggestions(): SuggestionGroup[] {\n // return [\n // {\n // skipFilter: true,\n // label: 'Events',\n // items: this.events.map(wrapText)\n // },\n // {\n // prefixMatch: true,\n // label: 'Variables',\n // items: this.props.templateVariables\n // .map(wrapText)\n // .map(suggestion => {\n // suggestion.deleteBackwards = 0;\n // return suggestion;\n // })\n // }\n // ];\n // }\n\n // private _getAfterSelectSuggestions(): SuggestionGroup[] {\n // return [\n // {\n // prefixMatch: true,\n // label: 'Fields',\n // items: this.fields.map(wrapText)\n // },\n // {\n // prefixMatch: true,\n // label: 'Functions',\n // items: FUNCTIONS.map((s: any) => { s.type = 'function'; return s; })\n // },\n // {\n // prefixMatch: true,\n // label: 'Variables',\n // items: this.props.templateVariables.map(wrapText)\n // }\n // ];\n // }\n\n private getInitialSuggestions(): SuggestionGroup[] {\n return this.getTableSuggestions();\n }\n\n private getKeywordSuggestions(): SuggestionGroup[] {\n return [\n {\n prefixMatch: true,\n label: 'Keywords',\n items: KEYWORDS.map(wrapText),\n },\n {\n prefixMatch: true,\n label: 'Operators',\n items: operatorTokens,\n },\n {\n prefixMatch: true,\n label: 'Functions',\n items: functionTokens.map((s: any) => {\n s.type = 'function';\n return s;\n }),\n },\n {\n prefixMatch: true,\n label: 'Macros',\n items: grafanaMacros.map((s: any) => {\n s.type = 'function';\n return s;\n }),\n },\n {\n prefixMatch: true,\n label: 'Tables',\n items: _.map(this.schema.Databases.Default.Tables, (t: any) => ({ text: t.Name })),\n },\n ];\n }\n\n private getFunctionSuggestions(): SuggestionGroup[] {\n return [\n {\n prefixMatch: true,\n label: 'Functions',\n items: functionTokens.map((s: any) => {\n s.type = 'function';\n return s;\n }),\n },\n {\n prefixMatch: true,\n label: 'Macros',\n items: grafanaMacros.map((s: any) => {\n s.type = 'function';\n return s;\n }),\n },\n ];\n }\n\n getTableSuggestions(db = 'Default'): SuggestionGroup[] {\n if (this.schema.Databases[db]) {\n return [\n {\n prefixMatch: true,\n label: 'Tables',\n items: _.map(this.schema.Databases[db].Tables, (t: any) => ({ text: t.Name })),\n },\n ];\n } else {\n return [];\n }\n }\n\n private getColumnSuggestions(): SuggestionGroup[] {\n const table = this.getTableFromContext();\n if (table) {\n const tableSchema = this.schema.Databases.Default.Tables[table];\n if (tableSchema) {\n return [\n {\n prefixMatch: true,\n label: 'Fields',\n items: _.map(tableSchema.OrderedColumns, (f: any) => ({\n text: f.Name,\n hint: f.Type,\n })),\n },\n ];\n }\n }\n return [];\n }\n\n private getTableFromContext() {\n const query = Plain.serialize(this.state.value);\n const tablePattern = /^\\s*(\\w+)\\s*|/g;\n const normalizedQuery = normalizeQuery(query);\n const match = tablePattern.exec(normalizedQuery);\n if (match && match.length > 1 && match[0] && match[1]) {\n return match[1];\n } else {\n return null;\n }\n }\n\n private getDBFromDatabaseFunction(prefix: string) {\n const databasePattern = /database\\(\\\"(\\w+)\\\"\\)/gi;\n const match = databasePattern.exec(prefix);\n if (match && match.length > 1 && match[0] && match[1]) {\n return match[1];\n } else {\n return null;\n }\n }\n\n private async fetchSchema() {\n let schema = await this.props.getSchema();\n if (schema) {\n if (schema.Type === 'AppInsights') {\n schema = castSchema(schema);\n }\n this.schema = schema;\n } else {\n this.schema = defaultSchema();\n }\n }\n}\n\n/**\n * Cast schema from App Insights to default Kusto schema\n */\nfunction castSchema(schema) {\n const defaultSchemaTemplate = defaultSchema();\n defaultSchemaTemplate.Databases.Default = schema;\n return defaultSchemaTemplate;\n}\n\nfunction normalizeQuery(query: string): string {\n const commentPattern = /\\/\\/.*$/gm;\n let normalizedQuery = query.replace(commentPattern, '');\n normalizedQuery = normalizedQuery.replace('\\n', ' ');\n return normalizedQuery;\n}\n\nfunction getLastWord(str: string): string {\n const lastWordPattern = /(?:.*\\s)?([^\\s]+\\s*)$/gi;\n const match = lastWordPattern.exec(str);\n if (match && match.length > 1) {\n return match[1];\n }\n return '';\n}\n","import _ from 'lodash';\nimport { QueryCtrl } from 'app/plugins/sdk';\n// import './css/query_editor.css';\nimport TimegrainConverter from './time_grain_converter';\n// import './monaco/kusto_monaco_editor';\nimport './editor/editor_component';\n\nexport interface ResultFormat {\n text: string;\n value: string;\n}\n\nexport class AzureMonitorQueryCtrl extends QueryCtrl {\n static templateUrl = 'partials/query.editor.html';\n\n defaultDropdownValue = 'select';\n\n target: {\n refId: string;\n queryType: string;\n azureMonitor: {\n resourceGroup: string;\n resourceName: string;\n metricDefinition: string;\n metricName: string;\n dimensionFilter: string;\n timeGrain: string;\n timeGrainUnit: string;\n timeGrains: any[];\n dimensions: any[];\n dimension: any;\n aggregation: string;\n aggOptions: string[];\n };\n azureLogAnalytics: {\n query: string;\n resultFormat: string;\n workspace: string;\n };\n appInsights: {\n metricName: string;\n rawQuery: boolean;\n rawQueryString: string;\n groupBy: string;\n timeGrainType: string;\n xaxis: string;\n yaxis: string;\n spliton: string;\n aggOptions: string[];\n aggregation: string;\n groupByOptions: string[];\n timeGrainUnit: string;\n timeGrain: string;\n };\n };\n\n defaults = {\n queryType: 'Azure Monitor',\n azureMonitor: {\n resourceGroup: this.defaultDropdownValue,\n metricDefinition: this.defaultDropdownValue,\n resourceName: this.defaultDropdownValue,\n metricName: this.defaultDropdownValue,\n dimensionFilter: '*',\n timeGrain: 'auto',\n },\n azureLogAnalytics: {\n query: [\n '//change this example to create your own time series query',\n '
    ' +\n '//the table to query (e.g. Usage, Heartbeat, Perf)',\n '| where $__timeFilter(TimeGenerated) ' +\n '//this is a macro used to show the full chart’s time range, choose the datetime column here',\n '| summarize count() by , bin(TimeGenerated, $__interval) ' +\n '//change “group by column” to a column in your table, such as “Computer”. ' +\n 'The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.',\n '| order by TimeGenerated asc',\n ].join('\\n'),\n resultFormat: 'time_series',\n workspace:\n this.datasource && this.datasource.azureLogAnalyticsDatasource\n ? this.datasource.azureLogAnalyticsDatasource.defaultOrFirstWorkspace\n : '',\n },\n appInsights: {\n metricName: this.defaultDropdownValue,\n rawQuery: false,\n rawQueryString: '',\n groupBy: 'none',\n timeGrainType: 'auto',\n xaxis: 'timestamp',\n yaxis: '',\n spliton: '',\n },\n };\n\n resultFormats: ResultFormat[];\n workspaces: any[];\n showHelp: boolean;\n showLastQuery: boolean;\n lastQuery: string;\n lastQueryError?: string;\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv) {\n super($scope, $injector);\n\n _.defaultsDeep(this.target, this.defaults);\n\n this.migrateTimeGrains();\n\n this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope);\n this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope);\n this.resultFormats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];\n if (this.target.queryType === 'Azure Log Analytics') {\n this.getWorkspaces();\n }\n }\n\n onDataReceived(dataList) {\n this.lastQueryError = undefined;\n this.lastQuery = '';\n\n const anySeriesFromQuery: any = _.find(dataList, { refId: this.target.refId });\n if (anySeriesFromQuery) {\n this.lastQuery = anySeriesFromQuery.query;\n }\n }\n\n onDataError(err) {\n this.handleQueryCtrlError(err);\n }\n\n handleQueryCtrlError(err) {\n if (err.query && err.query.refId && err.query.refId !== this.target.refId) {\n return;\n }\n\n if (err.error && err.error.data && err.error.data.error && err.error.data.error.innererror) {\n if (err.error.data.error.innererror.innererror) {\n this.lastQueryError = err.error.data.error.innererror.innererror.message;\n } else {\n this.lastQueryError = err.error.data.error.innererror.message;\n }\n } else if (err.error && err.error.data && err.error.data.error) {\n this.lastQueryError = err.error.data.error.message;\n } else if (err.error && err.error.data) {\n this.lastQueryError = err.error.data.message;\n } else if (err.data && err.data.error) {\n this.lastQueryError = err.data.error.message;\n } else if (err.data && err.data.message) {\n this.lastQueryError = err.data.message;\n } else {\n this.lastQueryError = err;\n }\n }\n\n migrateTimeGrains() {\n if (this.target.azureMonitor.timeGrainUnit) {\n if (this.target.azureMonitor.timeGrain !== 'auto') {\n this.target.azureMonitor.timeGrain = TimegrainConverter.createISO8601Duration(\n this.target.azureMonitor.timeGrain,\n this.target.azureMonitor.timeGrainUnit\n );\n }\n\n delete this.target.azureMonitor.timeGrainUnit;\n this.onMetricNameChange();\n }\n }\n\n replace(variable: string) {\n return this.templateSrv.replace(variable, this.panelCtrl.panel.scopedVars);\n }\n\n onQueryTypeChange() {\n if (this.target.queryType === 'Azure Log Analytics') {\n return this.getWorkspaces();\n }\n }\n\n /* Azure Monitor Section */\n getResourceGroups(query) {\n if (this.target.queryType !== 'Azure Monitor' || !this.datasource.azureMonitorDatasource.isConfigured()) {\n return;\n }\n\n return this.datasource.getResourceGroups().catch(this.handleQueryCtrlError.bind(this));\n }\n\n getMetricDefinitions(query) {\n if (\n this.target.queryType !== 'Azure Monitor' ||\n !this.target.azureMonitor.resourceGroup ||\n this.target.azureMonitor.resourceGroup === this.defaultDropdownValue\n ) {\n return;\n }\n return this.datasource\n .getMetricDefinitions(this.replace(this.target.azureMonitor.resourceGroup))\n .catch(this.handleQueryCtrlError.bind(this));\n }\n\n getResourceNames(query) {\n if (\n this.target.queryType !== 'Azure Monitor' ||\n !this.target.azureMonitor.resourceGroup ||\n this.target.azureMonitor.resourceGroup === this.defaultDropdownValue ||\n !this.target.azureMonitor.metricDefinition ||\n this.target.azureMonitor.metricDefinition === this.defaultDropdownValue\n ) {\n return;\n }\n\n return this.datasource\n .getResourceNames(\n this.replace(this.target.azureMonitor.resourceGroup),\n this.replace(this.target.azureMonitor.metricDefinition)\n )\n .catch(this.handleQueryCtrlError.bind(this));\n }\n\n getMetricNames(query) {\n if (\n this.target.queryType !== 'Azure Monitor' ||\n !this.target.azureMonitor.resourceGroup ||\n this.target.azureMonitor.resourceGroup === this.defaultDropdownValue ||\n !this.target.azureMonitor.metricDefinition ||\n this.target.azureMonitor.metricDefinition === this.defaultDropdownValue ||\n !this.target.azureMonitor.resourceName ||\n this.target.azureMonitor.resourceName === this.defaultDropdownValue\n ) {\n return;\n }\n\n return this.datasource\n .getMetricNames(\n this.replace(this.target.azureMonitor.resourceGroup),\n this.replace(this.target.azureMonitor.metricDefinition),\n this.replace(this.target.azureMonitor.resourceName)\n )\n .catch(this.handleQueryCtrlError.bind(this));\n }\n\n onResourceGroupChange() {\n this.target.azureMonitor.metricDefinition = this.defaultDropdownValue;\n this.target.azureMonitor.resourceName = this.defaultDropdownValue;\n this.target.azureMonitor.metricName = this.defaultDropdownValue;\n this.target.azureMonitor.dimensions = [];\n this.target.azureMonitor.dimension = '';\n }\n\n onMetricDefinitionChange() {\n this.target.azureMonitor.resourceName = this.defaultDropdownValue;\n this.target.azureMonitor.metricName = this.defaultDropdownValue;\n this.target.azureMonitor.dimensions = [];\n this.target.azureMonitor.dimension = '';\n }\n\n onResourceNameChange() {\n this.target.azureMonitor.metricName = this.defaultDropdownValue;\n this.target.azureMonitor.dimensions = [];\n this.target.azureMonitor.dimension = '';\n }\n\n onMetricNameChange() {\n if (!this.target.azureMonitor.metricName || this.target.azureMonitor.metricName === this.defaultDropdownValue) {\n return;\n }\n\n return this.datasource\n .getMetricMetadata(\n this.replace(this.target.azureMonitor.resourceGroup),\n this.replace(this.target.azureMonitor.metricDefinition),\n this.replace(this.target.azureMonitor.resourceName),\n this.replace(this.target.azureMonitor.metricName)\n )\n .then(metadata => {\n this.target.azureMonitor.aggOptions = metadata.supportedAggTypes || [metadata.primaryAggType];\n this.target.azureMonitor.aggregation = metadata.primaryAggType;\n this.target.azureMonitor.timeGrains = [{ text: 'auto', value: 'auto' }].concat(metadata.supportedTimeGrains);\n\n this.target.azureMonitor.dimensions = metadata.dimensions;\n if (metadata.dimensions.length > 0) {\n this.target.azureMonitor.dimension = metadata.dimensions[0].value;\n }\n return this.refresh();\n })\n .catch(this.handleQueryCtrlError.bind(this));\n }\n\n getAutoInterval() {\n if (this.target.azureMonitor.timeGrain === 'auto') {\n return TimegrainConverter.findClosestTimeGrain(\n this.templateSrv.builtIns.__interval.value,\n _.map(this.target.azureMonitor.timeGrains, o =>\n TimegrainConverter.createKbnUnitFromISO8601Duration(o.value)\n ) || ['1m', '5m', '15m', '30m', '1h', '6h', '12h', '1d']\n );\n }\n\n return '';\n }\n\n /* Azure Log Analytics */\n\n getWorkspaces = () => {\n return this.datasource.azureLogAnalyticsDatasource\n .getWorkspaces()\n .then(list => {\n this.workspaces = list;\n if (list.length > 0 && !this.target.azureLogAnalytics.workspace) {\n this.target.azureLogAnalytics.workspace = list[0].value;\n }\n })\n .catch(this.handleQueryCtrlError.bind(this));\n };\n\n getAzureLogAnalyticsSchema = () => {\n return this.getWorkspaces()\n .then(() => {\n return this.datasource.azureLogAnalyticsDatasource.getSchema(this.target.azureLogAnalytics.workspace);\n })\n .catch(this.handleQueryCtrlError.bind(this));\n };\n\n onLogAnalyticsQueryChange = (nextQuery: string) => {\n this.target.azureLogAnalytics.query = nextQuery;\n };\n\n onLogAnalyticsQueryExecute = () => {\n this.panelCtrl.refresh();\n };\n\n get templateVariables() {\n return this.templateSrv.variables.map(t => '$' + t.name);\n }\n\n /* Application Insights Section */\n\n getAppInsightsAutoInterval() {\n const interval = this.templateSrv.builtIns.__interval.value;\n if (interval[interval.length - 1] === 's') {\n return '1m';\n }\n return interval;\n }\n\n getAppInsightsMetricNames() {\n if (!this.datasource.appInsightsDatasource.isConfigured()) {\n return;\n }\n\n return this.datasource.getAppInsightsMetricNames().catch(this.handleQueryCtrlError.bind(this));\n }\n\n getAppInsightsColumns() {\n return this.datasource.getAppInsightsColumns(this.target.refId);\n }\n\n onAppInsightsColumnChange() {\n return this.refresh();\n }\n\n onAppInsightsMetricNameChange() {\n if (!this.target.appInsights.metricName || this.target.appInsights.metricName === this.defaultDropdownValue) {\n return;\n }\n\n return this.datasource\n .getAppInsightsMetricMetadata(this.replace(this.target.appInsights.metricName))\n .then(aggData => {\n this.target.appInsights.aggOptions = aggData.supportedAggTypes;\n this.target.appInsights.groupByOptions = aggData.supportedGroupBy;\n this.target.appInsights.aggregation = aggData.primaryAggType;\n return this.refresh();\n })\n .catch(this.handleQueryCtrlError.bind(this));\n }\n\n onAppInsightsQueryChange = (nextQuery: string) => {\n this.target.appInsights.rawQueryString = nextQuery;\n };\n\n onAppInsightsQueryExecute = () => {\n return this.refresh();\n };\n\n getAppInsightsQuerySchema = () => {\n return this.datasource.appInsightsDatasource.getQuerySchema().catch(this.handleQueryCtrlError.bind(this));\n };\n\n getAppInsightsGroupBySegments(query) {\n return _.map(this.target.appInsights.groupByOptions, option => {\n return { text: option, value: option };\n });\n }\n\n resetAppInsightsGroupBy() {\n this.target.appInsights.groupBy = 'none';\n this.refresh();\n }\n\n updateTimeGrainType() {\n if (this.target.appInsights.timeGrainType === 'specific') {\n this.target.appInsights.timeGrain = '1';\n this.target.appInsights.timeGrainUnit = 'minute';\n } else {\n this.target.appInsights.timeGrain = '';\n }\n this.refresh();\n }\n\n toggleEditorMode() {\n this.target.appInsights.rawQuery = !this.target.appInsights.rawQuery;\n }\n}\n","import KustoQueryField from './KustoQueryField';\nimport Kusto from './kusto/kusto';\n\nimport React, { Component } from 'react';\nimport coreModule from 'app/core/core_module';\n\ninterface EditorProps {\n index: number;\n placeholder?: string;\n change: (value: string, index: number) => void;\n variables: () => string[] | string[];\n getSchema?: () => Promise;\n execute?: () => void;\n}\n\nclass Editor extends Component {\n static defaultProps = {\n placeholder: 'Enter a query',\n };\n\n constructor(props) {\n super(props);\n this.state = {\n edited: false,\n query: props.query || '',\n };\n }\n\n onChangeQuery = value => {\n const { index, change } = this.props;\n const { query } = this.state;\n const edited = query !== value;\n this.setState({ edited, query: value });\n if (change) {\n change(value, index);\n }\n };\n\n onPressEnter = () => {\n const { execute } = this.props;\n if (execute) {\n execute();\n }\n };\n\n render() {\n const { variables, getSchema, placeholder } = this.props;\n const { edited, query } = this.state;\n\n return (\n
    \n \n
    \n );\n }\n}\n\ncoreModule.directive('kustoEditor', [\n 'reactDirective',\n reactDirective => {\n return reactDirective(Editor, [\n 'change',\n 'database',\n 'execute',\n 'query',\n 'variables',\n 'placeholder',\n ['getSchema', { watchDepth: 'reference' }],\n ]);\n },\n]);\n","export class AzureMonitorAnnotationsQueryCtrl {\n static templateUrl = 'partials/annotations.editor.html';\n datasource: any;\n annotation: any;\n workspaces: any[];\n\n defaultQuery =\n '\\n| where $__timeFilter() \\n| project TimeGenerated, Text=YourTitleColumn, Tags=\"tag1,tag2\"';\n\n /** @ngInject */\n constructor() {\n this.annotation.queryType = this.annotation.queryType || 'Azure Log Analytics';\n this.annotation.rawQuery = this.annotation.rawQuery || this.defaultQuery;\n this.getWorkspaces();\n }\n\n getWorkspaces() {\n if (this.workspaces && this.workspaces.length > 0) {\n return this.workspaces;\n }\n\n return this.datasource\n .getAzureLogAnalyticsWorkspaces()\n .then(list => {\n this.workspaces = list;\n if (list.length > 0 && !this.annotation.workspace) {\n this.annotation.workspace = list[0].value;\n }\n return this.workspaces;\n })\n .catch(() => {});\n }\n}\n","import AzureLogAnalyticsDatasource from './azure_log_analytics/azure_log_analytics_datasource';\nimport config from 'app/core/config';\nimport { isVersionGtOrEq } from 'app/core/utils/version';\n\nexport class AzureMonitorConfigCtrl {\n static templateUrl = 'public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html';\n current: any;\n azureLogAnalyticsDatasource: any;\n workspaces: any[];\n hasRequiredGrafanaVersion: boolean;\n\n /** @ngInject */\n constructor($scope, backendSrv, $q) {\n this.hasRequiredGrafanaVersion = this.hasMinVersion();\n this.current.jsonData.cloudName = this.current.jsonData.cloudName || 'azuremonitor';\n this.current.jsonData.azureLogAnalyticsSameAs = this.current.jsonData.azureLogAnalyticsSameAs || false;\n\n if (this.current.id) {\n this.current.url = '/api/datasources/proxy/' + this.current.id;\n this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource(this.current, backendSrv, null, $q);\n this.getWorkspaces();\n }\n }\n\n hasMinVersion(): boolean {\n return isVersionGtOrEq(config.buildInfo.version, '5.2');\n }\n\n showMinVersionWarning() {\n return !this.hasRequiredGrafanaVersion && this.current.secureJsonFields.logAnalyticsClientSecret;\n }\n\n getWorkspaces() {\n if (!this.azureLogAnalyticsDatasource.isConfigured()) {\n return;\n }\n\n return this.azureLogAnalyticsDatasource.getWorkspaces().then(workspaces => {\n this.workspaces = workspaces;\n if (this.workspaces.length > 0) {\n this.current.jsonData.logAnalyticsDefaultWorkspace =\n this.current.jsonData.logAnalyticsDefaultWorkspace || this.workspaces[0].value;\n }\n });\n }\n}\n","import Datasource from './datasource';\nimport { AzureMonitorQueryCtrl } from './query_ctrl';\nimport { AzureMonitorAnnotationsQueryCtrl } from './annotations_query_ctrl';\nimport { AzureMonitorConfigCtrl } from './config_ctrl';\n\nexport {\n Datasource,\n AzureMonitorQueryCtrl as QueryCtrl,\n AzureMonitorConfigCtrl as ConfigCtrl,\n AzureMonitorAnnotationsQueryCtrl as AnnotationsQueryCtrl,\n};\n","import _ from 'lodash';\nimport { PanelCtrl } from 'app/plugins/sdk';\nimport Remarkable from 'remarkable';\nimport { sanitize } from 'app/core/utils/text';\nimport config from 'app/core/config';\n\nconst defaultContent = `\n# Title\n\nFor markdown syntax help: [commonmark.org/help](https://commonmark.org/help/)\n\n\n\n`;\n\nexport class TextPanelCtrl extends PanelCtrl {\n static templateUrl = `public/app/plugins/panel/text/module.html`;\n static scrollable = true;\n\n remarkable: any;\n content: string;\n // Set and populate defaults\n panelDefaults = {\n mode: 'markdown', // 'html', 'markdown', 'text'\n content: defaultContent,\n };\n\n /** @ngInject */\n constructor($scope, $injector, private templateSrv, private $sce) {\n super($scope, $injector);\n\n _.defaults(this.panel, this.panelDefaults);\n\n this.events.on('init-edit-mode', this.onInitEditMode.bind(this));\n this.events.on('refresh', this.onRefresh.bind(this));\n this.events.on('render', this.onRender.bind(this));\n\n const renderWhenChanged = (scope: any) => {\n const { panel } = scope.ctrl;\n return [panel.content, panel.mode].join();\n };\n\n $scope.$watch(\n renderWhenChanged,\n _.throttle(() => {\n this.render();\n }, 100)\n );\n }\n\n onInitEditMode() {\n this.addEditorTab('Options', 'public/app/plugins/panel/text/editor.html');\n\n if (this.panel.mode === 'text') {\n this.panel.mode = 'markdown';\n }\n }\n\n onRefresh() {\n this.render();\n }\n\n onRender() {\n if (this.panel.mode === 'markdown') {\n this.renderMarkdown(this.panel.content);\n } else if (this.panel.mode === 'html') {\n this.updateContent(this.panel.content);\n }\n this.renderingCompleted();\n }\n\n renderText(content: string) {\n content = content\n .replace(/&/g, '&')\n .replace(/>/g, '>')\n .replace(/');\n this.updateContent(content);\n }\n\n renderMarkdown(content: string) {\n if (!this.remarkable) {\n this.remarkable = new Remarkable();\n }\n\n this.$scope.$applyAsync(() => {\n this.updateContent(this.remarkable.render(content));\n });\n }\n\n updateContent(html: string) {\n html = config.disableSanitizeHtml ? html : sanitize(html);\n try {\n this.content = this.$sce.trustAsHtml(this.templateSrv.replace(html, this.panel.scopedVars));\n } catch (e) {\n console.log('Text panel error: ', e);\n this.content = this.$sce.trustAsHtml(html);\n }\n }\n}\n\nexport { TextPanelCtrl as PanelCtrl };\n","// Libraries\nimport React, { PureComponent, ChangeEvent } from 'react';\n\n// Components\nimport { PanelEditorProps, PanelOptionsGroup, Select, SelectOptionItem } from '@grafana/ui';\n\n// Types\nimport { TextOptions } from './types';\n\nexport class TextPanelEditor extends PureComponent> {\n modes: SelectOptionItem[] = [\n { value: 'markdown', label: 'Markdown' },\n { value: 'text', label: 'Text' },\n { value: 'html', label: 'HTML' },\n ];\n\n onModeChange = (item: SelectOptionItem) => this.props.onOptionsChange({ ...this.props.options, mode: item.value });\n\n onContentChange = (evt: ChangeEvent) => {\n this.props.onOptionsChange({ ...this.props.options, content: (event.target as any).value });\n };\n\n render() {\n const { mode, content } = this.props.options;\n\n return (\n \n
    \n
    \n Mode\n \\n
    \\n
    \\n \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/alerting/partials/notification_edit.html';\nvar html = \"\\n\\n
    \\n\\n

    Edit Notification Channel

    \\n

    New Notification Channel

    \\n\\n
    \\n
    \\n
    \\n Name\\n \\n
    \\n
    \\n Type\\n
    \\n \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n Send reminder every\\n \\n Specify how often reminders should be sent, e.g. every 30s, 1m, 10m, 30m or 1h etc.\\n \\n \\n \\n
    \\n
    \\n
    \\n \\n Alert reminders are sent after rules are evaluated. Therefore a reminder can never be sent more frequently than a configured alert rule evaluation interval.\\n \\n
    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\tBack\\n
    \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/alerting/partials/notifications_list.html';\nvar html = \"\\n\\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n \\n New channel\\n \\n
    \\n\\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n Name\\n Type
    \\n \\n default\\n \\n \\n \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/annotations/partials/editor.html';\nvar html = \"\\n
    \\n\\t

    \\n\\t\\tAnnotations\\n\\t\\t> New\\n\\t\\t> Edit\\n\\t

    \\n\\n\\t
    \\n\\t\\t
    1\\\">\\n\\t\\t\\t
    \\n\\t\\t\\t New\\n\\t\\t
    \\n\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    Query nameData source
    \\n\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t{{annotation.name}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t{{annotation.name}} (Built-in)\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{annotation.datasource || 'Default'}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    There are no custom annotation queries added yet
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tAdd Annotation Query\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    What are Annotations?
    \\n\\t\\t\\t\\t\\t

    \\n\\t\\t\\t\\t\\tAnnotations provide a way to integrate event data into your graphs. They are visualized as vertical lines and icons\\n\\t\\t\\t\\t\\ton all graph panels. When you hover over an annotation icon you can get event text & tags for the event. You can add annotation events\\n\\t\\t\\t\\t\\tdirectly from grafana by holding CTRL or CMD + click on graph (or drag region). These will be stored in Grafana's annotation database.\\n\\t\\t\\t\\t\\t

    \\n\\t\\t\\t\\t\\tCheckout the Annotations documentation for more information.\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    General
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tName\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tData source\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    Query
    \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/annotations/partials/event_editor.html';\nvar html = \"\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tAdd Annotation\\n\\t\\t\\tEdit Annotation\\n\\t\\t
    \\n\\n
    {{ctrl.timeFormated}}
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tDescription\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\tTags\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\tCancel\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/DashExportModal/template.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/DashLinks/editor.html';\nvar html = \"

    \\n Dashboard Links\\n > New\\n > Edit\\n

    \\n\\n
    \\n
    \\n
    \\n
    \\n There are no dashboard links added yet\\n
    \\n \\n \\n Add Dashboard Link\\n \\n
    \\n
    What are Dashboard Links?
    \\n

    \\n\\t\\t\\t\\t\\tDashboard Links allow you to place links to other dashboards and web sites directly in below the dashboard header.\\n

    \\n
    \\n
    \\n
    \\n\\n
    0\\\">\\n
    \\n
    \\n \\n New\\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    TypeInfo
    \\n \\n {{link.type}}\\n \\n
    \\n {{link.title}}\\n
    \\n
    \\n {{link.url}}\\n
    \\n \\n {{tag}}\\n \\n
    \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n Type\\n
    \\n \\n
    \\n
    \\n\\n
    \\n With tags\\n \\n
    \\n\\n \\n
    \\n Title\\n \\n
    \\n
    \\n
    \\n
  • Url
  • \\n \\n
    \\n\\n
    \\n Title\\n \\n
    \\n\\n
    \\n Tooltip\\n \\n
    \\n\\n
    \\n Icon\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    Include
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/DashboardSettings/template.html';\nvar html = \"\\n\\n
    \\n\\t

    \\n\\t\\tGeneral\\n\\t

    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t\\n\\n\\t
    Panel Options
    \\n\\t
    \\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\t
    \\n\\t \\n
    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\\t\\n
    \\n\\n
    \\n\\t\\n
    \\n\\n
    \\n\\t

    JSON Model

    \\n
    \\n The JSON Model below is data structure that defines the dashboard. Including settings, panel settings & layout,\\n queries etc.\\n
    \\n\\n\\t
    \\n\\t\\t\\n\\t
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    You have changed folder, please save to view permissions.
    \\n
    \\n
    \\n\\n
    \\n

    Settings view not found

    \\n\\n
    \\n
    The settings page could not be found or you do not have permission to access it
    \\n
    \\n
    \\n\\n
    \\n

    Make Editable

    \\n\\n \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/ExportDataModal/template.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/FolderPicker/template.html';\nvar html = \"
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/RowOptions/template.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/ShareModal/template.html';\nvar html = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/SubMenu/template.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/TimePicker/settings.html';\nvar html = \"
    \\n\\t
    Time Options
    \\n\\n
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tAuto-refresh\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tNow delay now-\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t\\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/TimePicker/template.html';\nvar html = \"\\n\\n
    \\n
    \\n
    \\n Quick ranges\\n
    \\n
    \\n
      \\n
    • \\n \\n
    • \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n Custom range\\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n\\n\\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n\\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/dashboard/components/VersionHistory/template.html';\nvar html = \"

    \\n Versions\\n \\n > Comparing {{ctrl.baseInfo.version}}\\n \\n {{ctrl.newInfo.version}}\\n (Latest)\\n \\n

    \\n\\n
    \\n
    \\n \\n Fetching history list…\\n
    \\n\\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    VersionDateUpdated ByNotes
    \\n \\n \\n {{revision.version}}{{revision.createdDateString}}{{revision.createdBy}}{{revision.message}}\\n \\n   Restore\\n \\n \\n   Latest\\n \\n
    \\n\\n
    \\n \\n Fetching more entries…\\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n Fetching changes…\\n
    \\n\\n
    \\n \\n
    \\n

    \\n Version {{ctrl.newInfo.version}} updated by\\n {{ctrl.newInfo.createdBy}} \\n {{ctrl.newInfo.ageString}}\\n - {{ctrl.newInfo.message}}\\n

    \\n

    \\n Version {{ctrl.baseInfo.version}} updated by\\n {{ctrl.baseInfo.createdBy}} \\n {{ctrl.baseInfo.ageString}}\\n - {{ctrl.baseInfo.message}}\\n

    \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/datasources/partials/http_settings.html';\nvar html = \"
    \\n\\t

    HTTP

    \\n
    \\n
    \\n
    \\n URL\\n \\n \\n

    Specify a complete HTTP URL (for example http://your_server:8080)

    \\n \\n Your access method is Browser, this means the URL\\n needs to be accessible from the browser.\\n \\n \\n Your access method is Server, this means the URL\\n needs to be accessible from the grafana backend/server.\\n \\n
    \\n
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tAccess\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t

    \\n\\t\\t\\tAccess mode controls how requests to the data source will be handled.\\n\\t\\t\\tServer should be the preferred way if nothing else stated.\\n\\t\\t\\t

    \\n\\t\\t\\t
    Server access mode (Default):
    \\n\\t\\t\\t

    \\n\\t\\t\\tAll requests will be made from the browser to Grafana backend/server which in turn will forward the requests to the data source\\n\\t\\t\\tand by that circumvent possible Cross-Origin Resource Sharing (CORS) requirements.\\n\\t\\t\\tThe URL needs to be accessible from the grafana backend/server if you select this access mode.\\n\\t\\t\\t

    \\n\\t\\t\\t
    Browser access mode:
    \\n\\t\\t\\t

    \\n\\t\\t\\tAll requests will be made from the browser directly to the data source and may be subject to\\n\\t\\t\\tCross-Origin Resource Sharing (CORS) requirements. The URL needs to be accessible from the browser if you select this\\n\\t\\t\\taccess mode.\\n\\t\\t

    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tWhitelisted Cookies\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tGrafana Proxy deletes forwarded cookies by default. Specify cookies by name that should be forwarded to the data source.\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t

    Auth

    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    Basic Auth Details
    \\n\\t\\t
    \\n\\t\\t\\tUser\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tPassword\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\n\\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/datasources/partials/tls_auth_settings.html';\nvar html = \"
    \\n
    \\n
    TLS Auth Details
    \\n TLS Certs are encrypted and stored in the Grafana database.\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n reset\\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n reset\\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n reset\\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/folders/partials/create_folder.html';\nvar html = \"\\n\\n
    \\n\\n\\t

    New Dashboard Folder

    \\n\\n
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/folders/partials/folder_dashboards.html';\nvar html = \"\\n\\n
    \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/manage-dashboards/components/MoveToFolderModal/template.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/manage-dashboards/partials/dashboard_import.html';\nvar html = \"\\n\\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    Grafana.com Dashboard
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    Or paste JSON
    \\n\\n
    \\n
    \\n \\n
    \\n \\n \\n \\n {{ctrl.parseError}}\\n \\n
    \\n
    \\n\\n
    \\n
    \\n

    \\n Importing Dashboard from\\n Grafana.com\\n

    \\n\\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n

    \\n Options\\n

    \\n\\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n Unique identifier (uid)\\n \\n The unique identifier (uid) of a dashboard can be used for uniquely identify a dashboard between multiple Grafana installs.\\n The uid allows having consistent URL’s for accessing dashboards so changing the title of a dashboard will not break any\\n bookmarked links to that dashboard.\\n \\n \\n \\n change\\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n \\n \\n Cancel\\n
    \\n\\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/manage-dashboards/partials/dashboard_list.html';\nvar html = \"\\n\\n
    \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/manage-dashboards/partials/snapshot_list.html';\nvar html = \"\\n\\n
    \\n \\n \\n \\n \\n \\n \\n \\n\\t\\t\\n\\t\\t\\n \\n \\n \\n \\n \\n \\n
    NameSnapshot url
    \\n {{snapshot.name}}\\n \\n {{snapshot.url}}\\n \\n External\\n \\n \\n \\n View\\n \\n \\n \\n \\n \\n
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/org/partials/invite.html';\nvar html = \"\\n\\n
    \\n\\n\\t

    Invite User

    \\n\\n\\t
    \\n\\t\\tSend invite or add existing Grafana user to the organization\\n\\t\\t{{contextSrv.user.orgName}}\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tEmail or Username\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tName\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n Role\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t\\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\tBack\\n\\t\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/org/partials/newOrg.html';\nvar html = \"\\n\\n
    \\n\\t

    \\n\\t\\tNew Organization\\n\\t

    \\n\\n\\t

    Each organization contains their own dashboards, data sources and configuration, and cannot be shared between orgs. While users may belong to more than one, multiple organization are most frequently used in multi-tenant deployments.

    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tOrg. name\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/org/partials/select_org.html';\nvar html = \"\\n\\n
    \\n\\n\\t\\n
    \\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/panel/panellinks/module.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tType\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\tDashboard\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\tUrl\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    Title
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tUrl params\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/panel/partials/general_tab.html';\nvar html = \"
    \\n \\n
    \\n
    \\n
    \\n Title\\n \\n
    \\n \\n
    \\n
    \\n
    \\n Description\\n \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    Repeating
    \\n
    \\n
    \\n
    \\n Repeat\\n \\n
    \\n
    \\n Direction\\n \\n
    \\n
    \\n Max per row\\n \\n
    \\n
    \\n
    \\n Note: You may need to change the variable selection to see this in action.\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    Drilldown Links
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/panel/partials/panelTime.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\tOverride relative time\\n\\t\\tLast\\n\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\tAdd time shift\\n\\t\\tAmount\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/panel/partials/query_editor_row.html';\nvar html = \"
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/playlist/partials/playlist.html';\nvar html = \"\\n\\n
    \\n\\n\\t

    Edit Playlist

    \\n\\t

    New Playlist

    \\n\\n\\t

    A playlist rotates through a pre-selected list of Dashboards. A Playlist can be a great way to build situational awareness, or just show off your metrics to your team or visitors.

    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tName\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tInterval\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t

    Dashboards

    \\n\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\t\\t  {{playlistItem.title}}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{playlistItem.title}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    Playlist is empty, add dashboards below.
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t

    Add dashboards

    \\n\\t\\t\\n\\n\\t\\t
    0\\\">\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t  {{playlistItem.title}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    0;\\\">\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{tag.term}}  ({{tag.count}})\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\n\\t
    \\n\\t\\tCreate\\n\\t\\tSave\\n\\t\\tCancel\\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/playlist/partials/playlist_search.html';\nvar html = \"
    \\n \\n \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\tstarred\\n\\t\\t\\t |\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\ttags\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t|\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{tagName}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/playlist/partials/playlists.html';\nvar html = \"\\n\\n
    \\n
    0\\\">\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    Name
    \\n \\n \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/plugins/import_list/import_list.html';\nvar html = \"
    \\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{dash.title}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{dash.title}}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/plugins/partials/plugin_edit.html';\nvar html = \"
    \\n \\n\\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/plugins/partials/plugin_page.html';\nvar html = \"
    \\n \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/plugins/partials/update_instructions.html';\nvar html = \"\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/profile/partials/change_password.html';\nvar html = \"\\n\\n
    \\n\\t

    \\n\\t\\tChange your password\\n\\t

    \\n\\n\\t
    \\n\\t\\tYou cannot change password when ldap or auth proxy authentication is enabled.\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tOld Password\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tNew Password\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tConfirm Password\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\tCancel\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/profile/partials/profile.html';\nvar html = \"\\n\\n
    \\n

    User Profile

    \\n\\n
    \\n\\n
    \\n Name\\n \\n
    \\n
    \\n Email\\n \\n \\n
    \\n
    \\n Username\\n \\n \\n
    \\n
    \\n \\n
    \\n
    \\n\\n \\n\\n

    Teams

    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    NameEmailMembers
    {{team.name}}{{team.email}}{{team.memberCount}}
    \\n
    \\n\\n

    Organizations

    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    NameRole
    {{org.name}}{{org.role}}\\n \\n Current\\n \\n \\n Select\\n \\n
    \\n
    \\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/teams/partials/create_team.html';\nvar html = \"\\n\\n
    \\n\\t

    New Team

    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tName\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\tEmail\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tThis is optional and is primarily used for allowing custom team avatars.\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/features/templating/partials/editor.html';\nvar html = \"
    \\n\\n\\t

    \\n\\t\\tVariables\\n\\t\\t> New\\n\\t\\t> Edit\\n\\t

    \\n\\n\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    There are no variables added yet
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tAdd variable\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    What do variables do?
    \\n\\t\\t\\t\\t\\t

    Variables enable more interactive and dynamic dashboards. Instead of hard-coding things like server or sensor\\n\\t\\t\\t\\t\\t\\tnames\\n\\t\\t\\t\\t\\t\\tin your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the\\n\\t\\t\\t\\t\\t\\ttop of\\n\\t\\t\\t\\t\\t\\tthe dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.\\n\\n\\t\\t\\t\\t\\t\\tCheck out the\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\tTemplating documentation\\n\\t\\t\\t\\t\\t\\t for more information.\\n\\t\\t\\t\\t

    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t New\\n\\t\\t\\t
    \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    VariableDefinition
    \\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t${{variable.name}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{variable.definition ? variable.definition : variable.query}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\tDuplicate\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    General
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tName\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tType\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{variableTypes[current.type].description}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\tTemplate names cannot begin with '__', that's reserved for\\n\\t\\t\\t\\t\\tGrafana's global variables\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tLabel\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tHide\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Interval Options
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\tValues\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tStep count How many times should the current time range be divided to calculate the value\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tMin interval The calculated value will not go below this threshold\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Custom Options
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tValues separated by comma\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Constant options
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tValue\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Text options
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tDefault value\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Query Options
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\tData source\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tRefresh\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\tWhen to update the values of this variable.\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tRegex\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tOptional, if you want to extract part of a series name or metric node segment.\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tSort\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tHow to sort the values of this variable.\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Data source options
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Options
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tData source\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Selection Options
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tCustom all value\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Value groups/tags (Experimental feature)
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\tTags query\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
  • Tag values query
  • \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    Preview of values
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t{{option.text}}\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    optionsLimit\\\">\\n\\t\\t\\t\\t\\tShow more\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t{{infoText}}\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t
    \\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/confirm_modal.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/edit_json.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t

    \\n\\t\\t\\tJSON\\n\\t\\t

    \\n\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/error.html';\nvar html = \"\\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n

    100%

    \\n

    80%

    \\n

    60%

    \\n

    40%

    \\n

    20%

    \\n

    0%

    \\n
    \\n
    \\n \\n
    \\n

    Then

    \\n

    Now

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n

    current

    \\n
    \\n
    \\n \\n
    \\n
    \\n

    Chances you are on the page you are looking for.

    \\n

    0%

    \\n
    \\n
    \\n

    Sorry for the inconvenience

    \\n

    Please go back to your\\n home dashboard and try again.

    \\n

    If the error persists, seek help on the\\n community site.

    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/login.html';\nvar html = \"
    \\n \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/modal.html';\nvar html = \"\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/reset_password.html';\nvar html = \"\\n\\n
    \\n\\t\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/signup_invited.html';\nvar html = \"\\n\\n
    \\n\\t

    Hello {{greeting}}.

    \\n\\n\\t
    \\n\\t\\t{{invitedBy}} has invited you to join Grafana and the organization {{contextSrv.user.orgName}}
    Please complete the following to accept your invitation and continue:\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tEmail\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tName\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tUsername\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tPassword\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/signup_step2.html';\nvar html = \"\\n\\n
    \\n \\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/partials/valueSelectDropdown.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/cloudwatch/partials/annotations.editor.html';\nvar html = \"\\n\\n
    \\n\\t
    \\n\\t\\t
    Prefix matching
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\tAction\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tAlarm Name\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/cloudwatch/partials/config.html';\nvar html = \"

    CloudWatch details

    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n \\n Credentials profile name, as specified in ~/.aws/credentials, leave blank for default\\n \\n
    \\n\\n
    \\n \\n \\n Reset\\n \\n
    \\n\\n
    \\n \\n \\n Reset\\n \\n
    \\n\\n
    \\n \\n \\n \\n ARN of Assume Role\\n \\n
    \\n\\n
    \\n \\n
    \\n \\n \\n Specify the region, such as for US West (Oregon) use ` us-west-2 ` as the region.\\n \\n
    \\n
    \\n
    \\n \\n \\n \\n Namespaces of Custom Metrics\\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/cloudwatch/partials/query.editor.html';\nvar html = \"\\n\\t\\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/cloudwatch/partials/query.parameter.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tAlias replacement variables:\\n\\t\\t\\t
      \\n\\t\\t\\t\\t
    • {{metric}}
    • \\n\\t\\t\\t\\t
    • {{stat}}
    • \\n\\t\\t\\t\\t
    • {{namespace}}
    • \\n\\t\\t\\t\\t
    • {{region}}
    • \\n\\t\\t\\t\\t
    • {{period}}
    • \\n\\t\\t\\t\\t
    • {{YOUR_DIMENSION_NAME}}
    • \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/annotations.editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\tIndex name\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    Field mappings
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tTime\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tText\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTags\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTitle (deprecated)\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t\\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/config.html';\nvar html = \"\\n\\n\\n

    Elasticsearch details

    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tIndex name\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n Pattern\\n \\n \\n \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\tTime field name\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n Version\\n \\n \\n \\n\\t
    \\n
    =56\\\">\\n Max concurrent Shard Requests\\n \\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMin time interval\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\\n\\t\\t\\t\\tfor example 1m if your data is written every minute.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/metric_agg.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n \\n\\n\\t\\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\\n
    \\n\\t\\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n\\n
    \\n \\n \\n
    \\n\\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n\\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n\\t\\t\\n\\t\\t\\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/pipeline_variables.html';\nvar html = \"
    \\n
    \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/elasticsearch/partials/query.editor.html';\nvar html = \"\\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/annotations.editor.html';\nvar html = \"
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    Annotation Query Format
    \\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the datetime column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\\n\\n- column with the datetime type.\\n- column with alias: Text or text for the annotation text\\n- column with alias: Tags or tags for annotation tags. This is should return a comma separated string of tags e.g. 'tag1,tag2'\\n\\nMacros:\\n - $__timeFilter() -> TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)\\n - $__timeFilter(datetimeColumn) -> datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)\\n\\n Or build your own conditionals using these built-in variables which just return the values:\\n - $__from -> datetime(2018-06-05T18:09:58.907Z)\\n - $__to -> datetime(2018-06-05T20:09:58.907Z)\\n - $__interval -> 5m\\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html';\nvar html = \"

    Azure Monitor API Details

    \\n\\n
    \\n
    \\n
    \\n Azure Cloud\\n
    \\n \\n
    \\n \\n

    Choose an Azure Cloud.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n Subscription Id\\n \\n \\n

    In the Azure Portal, navigate to Subscriptions -> Choose subscription -> Overview -> Subscription ID.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Tenant Id\\n \\n \\n

    In the Azure Portal, navigate to Azure Active Directory -> Properties -> Directory ID.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Client Id\\n \\n \\n

    In the Azure Portal, navigate to Azure Active Directory -> App Registrations -> Choose your app ->\\n Application ID.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Client Secret\\n \\n \\n

    To create a new key, log in to Azure Portal, navigate to Azure Active Directory -> App Registrations ->\\n Choose your\\n app -> Keys.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n Client Secret\\n \\n reset\\n
    \\n
    \\n\\n

    Azure Log Analytics API Details

    \\n\\n
    \\n The Azure Log Analytics support is marked as being in a preview development state. This means it is in currently in active development and major changes might be made - depending on feedback from users.\\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n Subscription Id\\n \\n \\n

    In the Azure Portal, navigate to Subscriptions -> Choose subscription -> Overview -> Subscription ID.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Tenant Id\\n \\n \\n

    In the Azure Portal, navigate to Azure Active Directory -> Properties -> Directory ID.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Client Id\\n \\n \\n

    In the Azure Portal, navigate to Azure Active Directory -> App Registrations -> Choose your app ->\\n Application ID.\\n

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n
    \\n Client Secret\\n \\n \\n

    To create a new key, log in to Azure Portal, navigate to Azure Active Directory -> App Registrations ->\\n Choose your\\n app -> Keys.

    \\n **Click\\n here for detailed instructions on setting up an Azure Active Directory (AD) application.**\\n
    \\n
    \\n
    \\n
    \\n Client Secret\\n \\n reset\\n
    \\n
    \\n
    \\n
    \\n
    \\n Default Workspace\\n
    \\n \\n
    \\n \\n

    Choose the default/preferred Workspace for Azure Log Analytics queries.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n

    \\n The Azure Log Analytics feature requires Grafana 5.2.0 or greater. Download a new version of\\n Grafana\\n here.\\n

    \\n
    \\n
    \\n\\n

    Application Insights Details

    \\n\\n
    \\n
    \\n
    \\n API Key\\n \\n \\n

    Section 2 of the Quickstart guide shows where to find/create the API Key:

    \\n **Click here to open the Application\\n Insights Quickstart.**\\n
    \\n
    \\n
    \\n
    \\n API Key\\n \\n reset\\n
    \\n
    \\n
    \\n Application Id\\n \\n \\n

    Section 2 of the Quickstart guide shows where to find the Application ID:

    \\n **Click here to open the Application\\n Insights Quickstart.**\\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/query.editor.html';\nvar html = \"\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    0\\\">\\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    {{ctrl.lastQuery}}
    \\n
    \\n
    \\n
    \\n    Format as Table:\\n    - return any set of columns\\n\\n    Format as Time series:\\n    - Requires a column of type datetime\\n    - returns the first column with a numeric datatype as the value\\n    - (Optional: returns the first column with type string to represent the series name. If no column is found the column name of the value column is used as series name)\\n\\n    Example Time Series Query:\\n\\n    AzureActivity\\n    | where $__timeFilter()\\n    | summarize count() by Category, bin(TimeGenerated, 60min)\\n    | order by TimeGenerated asc\\n\\n    Macros:\\n    - $__timeFilter() -> TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)\\n    - $__timeFilter(datetimeColumn) ->  datetimeColumn  ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)\\n    - $__escapeMulti($myTemplateVar) -> $myTemplateVar should be a multi-value template variables that contains illegal characters\\n    - $__contains(aColumn, $myTemplateVar) -> aColumn in ($myTemplateVar)\\n      If using the All option, then check the Include All Option checkbox and in the Custom all value field type in: all. If All is chosen -> 1 == 1\\n\\n    Or build your own conditionals using these built-in variables which just return the values:\\n    - $__from ->  datetime(2018-06-05T18:09:58.907Z)\\n    - $__to -> datetime(2018-06-05T20:09:58.907Z)\\n    - $__interval -> 5m\\n\\n    Examples:\\n    - ¡ where $__timeFilter\\n    - | where TimeGenerated ≥ $__from and TimeGenerated ≤ $__to\\n    - | summarize count() by Category, bin(TimeGenerated, $__interval)\\n      
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    {{ctrl.lastQueryError}}
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana-live/partials/query.editor.html';\nvar html = \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana/partials/annotations.editor.html';\nvar html = \"\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\tFilter by\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t
    • Dashboard: This will fetch annotation and alert state changes for whole dashboard and show them only on the event's originating panel.
    • \\n\\t\\t\\t\\t\\t\\t
    • All: This will fetch any annotation events that match the tags filter.
    • \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tMax limit\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTags\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/grafana/partials/query.editor.html';\nvar html = \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/graphite/partials/annotations.editor.html';\nvar html = \"
    \\n
    \\n Graphite query\\n \\n
    \\n\\n\\t
    Or
    \\n\\n
    \\n Graphite events tags\\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/graphite/partials/config.html';\nvar html = \"\\n\\n\\n

    Graphite details

    \\n\\n
    \\n\\t
    \\n\\t\\t\\n Version\\n \\n This option controls what functions are available in the Graphite query editor.\\n \\n \\n \\n \\n \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/graphite/partials/query.editor.html';\nvar html = \"\\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n \\n\\n \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/influxdb/partials/annotations.editor.html';\nvar html = \"\\n
    \\n\\t
    \\n\\t\\t\\n\\t
    \\n
    \\n\\n
    Field mappings If your influxdb query returns more than one field you need to specify the column names below. An annotation event is composed of a title, tags, and an additional text field.
    \\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tText\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTags\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTitle (deprecated)\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/influxdb/partials/config.html';\nvar html = \"\\n\\n\\n

    InfluxDB Details

    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tDatabase\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tUser\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tPassword\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n\\n
    \\n\\t
    \\n\\t\\t
    Database Access
    \\n\\t\\t

    \\n\\t\\t\\tSetting the database for this datasource does not deny access to other databases. The InfluxDB query syntax allows\\n\\t\\t\\tswitching the database in the query. For example:\\n\\t\\t\\tSHOW MEASUREMENTS ON _internal or SELECT * FROM \\\"_internal\\\"..\\\"database\\\" LIMIT 10\\n\\t\\t\\t

    \\n\\t\\t\\tTo support data isolation and security, make sure appropriate permissions are configured in InfluxDB.\\n\\t\\t

    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMin time interval\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\\n\\t\\t\\t\\tfor example 1m if your data is written every minute.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/influxdb/partials/query.editor.html';\nvar html = \"\\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/loki/partials/config.html';\nvar html = \"\\n\\n\\n
    \\n
    \\n
    \\n Maximum lines\\n \\n \\n Loki queries must contain a limit of the maximum number of lines returned (default: 1000).\\n Increase this limit to have a bigger result set for ad-hoc analysis.\\n Decrease this limit if your browser becomes sluggish when displaying the log results.\\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mssql/partials/annotations.editor.html';\nvar html = \"\\n
    \\n
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n
    \\n \\n\\t\\t
    \\n
    \\n\\n
    \\n\\t\\t
    Annotation Query Format
    \\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the time column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\\n\\n- column with alias: time for the annotation event time. Use epoch time or any native date data type.\\n- column with alias: text for the annotation text.\\n- column with alias: tags for annotation tags. This is a comma separated string of tags e.g. 'tag1,tag2'.\\n\\n\\nMacros:\\n- $__time(column) -> column AS time\\n- $__timeEpoch(column) -> DATEDIFF(second, '1970-01-01', column) AS time\\n- $__timeFilter(column) -> column BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:01:17Z'\\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\\n- $__unixEpochNanoFilter(column) -> column >= 1494410783152415214 AND column <= 1494497183142514872\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() -> '2017-04-21T05:01:17Z'\\n- $__timeTo() -> '2017-04-21T05:01:17Z'\\n- $__unixEpochFrom() -> 1492750877\\n- $__unixEpochTo() -> 1492750877\\n- $__unixEpochNanoFrom() -> 1494410783152415214\\n- $__unixEpochNanoTo() -> 1494497183142514872\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mssql/partials/config.html';\nvar html = \"\\n

    MSSQL Connection

    \\n\\n
    \\n\\t
    \\n\\t\\tHost\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\tDatabase\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tUser\\n\\t\\t\\t\\n\\t\\t
    \\n
    \\n \\n
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tDetermines whether or to which extent a secure SSL TCP/IP connection will be negotiated with the server.\\n\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t
    • disable - Data sent between client and server is not encrypted.
    • \\n\\t\\t\\t\\t\\t
    • false - Data sent between client and server is not encrypted beyond the login packet. (default)
    • \\n\\t\\t\\t\\t\\t
    • true - Data sent between client and server is encrypted.
    • \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\tIf you're using an older version of Microsoft SQL Server like 2008 and 2008R2 you may need to disable encryption to be able to connect.\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\\nConnection limits\\n\\n
    \\n\\t
    \\n\\t\\tMax open\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of open connections to the database. If Max idle connections is greater than 0 and the\\n\\t\\t\\tMax open connections is less than Max idle connections, then Max idle connections will be\\n\\t\\t\\treduced to match the Max open connections limit. If set to 0, there is no limit on the number of open\\n\\t\\t\\tconnections.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax idle\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of connections in the idle connection pool. If Max open connections is greater than 0 but\\n\\t\\t\\tless than the Max idle connections, then the Max idle connections will be reduced to match the\\n\\t\\t\\tMax open connections limit. If set to 0, no idle connections are retained.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax lifetime\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum amount of time in seconds a connection may be reused. If set to 0, connections are reused forever.\\n\\t\\t\\n\\t
    \\n
    \\n\\n

    MSSQL details

    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMin time interval\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\\n\\t\\t\\t\\tfor example 1m if your data is written every minute.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t
    User Permission
    \\n\\t\\t

    \\n\\t\\t\\tThe database user should only be granted SELECT permissions on the specified database & tables you want to query.\\n\\t\\t\\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\\n\\t\\t\\tlike USE otherdb; and DROP TABLE user; would be executed. To protect against this we\\n\\t\\t\\tHighly recommmend you create a specific MSSQL user with restricted permissions.\\n\\t\\t

    \\n\\t
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mssql/partials/query.editor.html';\nvar html = \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n \\n\\t\\t
    \\n\\t\\t
    \\n \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    {{ctrl.lastQueryMeta.sql}}
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    Time series:\\n- return column named time (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below.\\n- any other columns returned will be the time point values.\\nOptional:\\n  - return column named metric to represent the series name.\\n  - If multiple value columns are returned the metric column is used as prefix.\\n  - If no column named metric is found the column name of the value column is used as series name\\n\\nResultsets of time series queries need to be sorted by time.\\n\\nTable:\\n- return any set of columns\\n\\nMacros:\\n- $__time(column) -> column AS time\\n- $__timeEpoch(column) -> DATEDIFF(second, '1970-01-01', column) AS time\\n- $__timeFilter(column) -> column BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:01:17Z'\\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\\n- $__unixEpochNanoFilter(column) ->  column >= 1494410783152415214 AND column <= 1494497183142514872\\n- $__timeGroup(column, '5m'[, fillvalue]) -> CAST(ROUND(DATEDIFF(second, '1970-01-01', column)/300.0, 0) as bigint)*300.\\n     by setting fillvalue grafana will fill in missing values according to the interval\\n     fillvalue can be either a literal value, NULL or previous; previous will fill in the previous seen value or NULL if none has been seen yet\\n- $__timeGroupAlias(column, '5m'[, fillvalue]) -> CAST(ROUND(DATEDIFF(second, '1970-01-01', column)/300.0, 0) as bigint)*300 AS [time]\\n- $__unixEpochGroup(column,'5m') -> FLOOR(column/300)*300\\n- $__unixEpochGroupAlias(column,'5m') -> FLOOR(column/300)*300 AS [time]\\n\\nExample of group by and order by with $__timeGroup:\\nSELECT\\n  $__timeGroup(date_time_col, '1h') AS time,\\n  sum(value) as value\\nFROM yourtable\\nGROUP BY $__timeGroup(date_time_col, '1h')\\nORDER BY 1\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() ->  '2017-04-21T05:01:17Z'\\n- $__timeTo() ->  '2017-04-21T05:01:17Z'\\n- $__unixEpochFrom() -> 1492750877\\n- $__unixEpochTo() -> 1492750877\\n- $__unixEpochNanoFrom() ->  1494410783152415214\\n- $__unixEpochNanoTo() ->  1494497183142514872\\n\\t\\t
    \\n\\t
    \\n\\n\\t\\n\\n\\t
    \\n\\t\\t
    {{ctrl.lastQueryError}}
    \\n\\t
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mysql/partials/annotations.editor.html';\nvar html = \"\\n
    \\n
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n
    \\n \\n\\t\\t
    \\n
    \\n\\n
    \\n\\t\\t
    Annotation Query Format
    \\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the time or time_sec column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\\n\\n- column with alias: time or time_sec for the annotation event time. Use epoch time or any native date data type.\\n- column with alias: text for the annotation text\\n- column with alias: tags for annotation tags. This is a comma separated string of tags e.g. 'tag1,tag2'\\n\\n\\nMacros:\\n- $__time(column) -> UNIX_TIMESTAMP(column) as time (or as time_sec)\\n- $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time (or as time_sec)\\n- $__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877)\\n- $__unixEpochFilter(column) -> time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877\\n- $__unixEpochNanoFilter(column) -> column >= 1494410783152415214 AND column <= 1494497183142514872\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() -> FROM_UNIXTIME(1492750877)\\n- $__timeTo() -> FROM_UNIXTIME(1492750877)\\n- $__unixEpochFrom() -> 1492750877\\n- $__unixEpochTo() -> 1492750877\\n- $__unixEpochNanoFrom() -> 1494410783152415214\\n- $__unixEpochNanoTo() -> 1494497183142514872\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mysql/partials/config.html';\nvar html = \"

    MySQL Connection

    \\n\\n
    \\n\\t
    \\n\\t\\tHost\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\tDatabase\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tUser\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tPassword\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\n\\n\\nConnection limits\\n\\n
    \\n\\t
    \\n\\t\\tMax open\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of open connections to the database. If Max idle connections is greater than 0 and the\\n\\t\\t\\tMax open connections is less than Max idle connections, then Max idle connections will be\\n\\t\\t\\treduced to match the Max open connections limit. If set to 0, there is no limit on the number of open\\n\\t\\t\\tconnections.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax idle\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of connections in the idle connection pool. If Max open connections is greater than 0 but\\n\\t\\t\\tless than the Max idle connections, then the Max idle connections will be reduced to match the\\n\\t\\t\\tMax open connections limit. If set to 0, no idle connections are retained.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax lifetime\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum amount of time in seconds a connection may be reused. If set to 0, connections are reused forever.

    \\n\\t\\t\\tThis should always be lower than configured wait_timeout in MySQL.\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n

    MySQL details

    \\n\\n
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMin time interval\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\\n\\t\\t\\t\\tfor example 1m if your data is written every minute.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t
    User Permission
    \\n\\t\\t

    \\n\\t\\t\\tThe database user should only be granted SELECT permissions on the specified database & tables you want to query.\\n\\t\\t\\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\\n\\t\\t\\tlike USE otherdb; and DROP TABLE user; would be executed. To protect against this we\\n\\t\\t\\tHighly recommmend you create a specific MySQL user with restricted permissions.\\n\\n\\t\\t\\tCheckout the MySQL Data Source Docs for more information.\\n\\t\\t

    \\n\\t
    \\n
    \\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/mysql/partials/query.editor.html';\nvar html = \"\\n\\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n \\n\\n \\n \\n\\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    {{ctrl.lastQueryMeta.sql}}
    \\n
    \\n\\n
    \\n
    Time series:\\n- return column named time or time_sec (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below.\\n- return column(s) with numeric datatype as values\\nOptional:\\n  - return column named metric to represent the series name.\\n  - If multiple value columns are returned the metric column is used as prefix.\\n  - If no column named metric is found the column name of the value column is used as series name\\n\\nResultsets of time series queries need to be sorted by time.\\n\\nTable:\\n- return any set of columns\\n\\nMacros:\\n- $__time(column) -> UNIX_TIMESTAMP(column) as time_sec\\n- $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time_sec\\n- $__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877)\\n- $__unixEpochFilter(column) ->  time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877\\n- $__unixEpochNanoFilter(column) ->  column >= 1494410783152415214 AND column <= 1494497183142514872\\n- $__timeGroup(column,'5m'[, fillvalue]) -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed)\\n     by setting fillvalue grafana will fill in missing values according to the interval\\n     fillvalue can be either a literal value, NULL or previous; previous will fill in the previous seen value or NULL if none has been seen yet\\n- $__timeGroupAlias(column,'5m') -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed) AS \\\"time\\\"\\n- $__unixEpochGroup(column,'5m') -> column DIV 300 * 300\\n- $__unixEpochGroupAlias(column,'5m') -> column DIV 300 * 300 AS \\\"time\\\"\\n\\nExample of group by and order by with $__timeGroup:\\nSELECT\\n  $__timeGroupAlias(timestamp_col, '1h'),\\n  sum(value_double) as value\\nFROM yourtable\\nGROUP BY 1\\nORDER BY 1\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() -> FROM_UNIXTIME(1492750877)\\n- $__timeTo() ->  FROM_UNIXTIME(1492750877)\\n- $__unixEpochFrom() ->  1492750877\\n- $__unixEpochTo() ->  1492750877\\n- $__unixEpochNanoFrom() ->  1494410783152415214\\n- $__unixEpochNanoTo() ->  1494497183142514872\\n    
    \\n
    \\n\\n \\n\\n
    \\n
    {{ctrl.lastQueryError}}
    \\n
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/opentsdb/partials/annotations.editor.html';\nvar html = \"
    \\n
    \\n OpenTSDB metrics query\\n \\n
    \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/opentsdb/partials/config.html';\nvar html = \"\\n\\n
    OpenTSDB settings
    \\n
    \\n \\n Version\\n \\n \\n \\n \\n
    \\n
    \\n \\n Resolution\\n \\n \\n \\n \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/opentsdb/partials/query.editor.html';\nvar html = \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tblank for auto, or for example 1m\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    = 2\\\">\\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    = 2\\\">\\n\\t\\t
    \\n\\n\\t\\t\\t\\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t{{fil.tagk}} = {{fil.type}}({{fil.filter}}) , groupBy = {{fil.groupBy}}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\n \\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n \\n\\t\\t\\t\\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    2\\\">\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/postgres/partials/annotations.editor.html';\nvar html = \"\\n
    \\n
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n
    \\n
    \\n \\n\\t\\t
    \\n
    \\n\\n
    \\n\\t\\t
    Annotation Query Format
    \\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the time column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\\n\\n- column with alias: time for the annotation event time. Use epoch time or any native date data type.\\n- column with alias: text for the annotation text\\n- column with alias: tags for annotation tags. This is a comma separated string of tags e.g. 'tag1,tag2'\\n\\n\\nMacros:\\n- $__time(column) -> column as \\\"time\\\"\\n- $__timeEpoch -> extract(epoch from column) as \\\"time\\\"\\n- $__timeFilter(column) -> column BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:01:17Z'\\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\\n- $__unixEpochNanoFilter(column) -> column >= 1494410783152415214 AND column <= 1494497183142514872\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() -> '2017-04-21T05:01:17Z'\\n- $__timeTo() -> '2017-04-21T05:01:17Z'\\n- $__unixEpochFrom() -> 1492750877\\n- $__unixEpochTo() -> 1492750877\\n- $__unixEpochNanoFrom() -> 1494410783152415214\\n- $__unixEpochNanoTo() -> 1494497183142514872\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/postgres/partials/config.html';\nvar html = \"\\n

    PostgreSQL Connection

    \\n\\n
    \\n\\t
    \\n\\t\\tHost\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\tDatabase\\n\\t\\t\\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tUser\\n\\t\\t\\t\\n\\t\\t
    \\n
    \\n \\n
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tThis option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\nConnection limits\\n\\n
    \\n\\t
    \\n\\t\\tMax open\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of open connections to the database. If Max idle connections is greater than 0 and the\\n\\t\\t\\tMax open connections is less than Max idle connections, then Max idle connections will be\\n\\t\\t\\treduced to match the Max open connections limit. If set to 0, there is no limit on the number of open\\n\\t\\t\\tconnections.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax idle\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum number of connections in the idle connection pool. If Max open connections is greater than 0 but\\n\\t\\t\\tless than the Max idle connections, then the Max idle connections will be reduced to match the\\n\\t\\t\\tMax open connections limit. If set to 0, no idle connections are retained.\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tMax lifetime\\n\\t\\t\\n\\t\\t\\n\\t\\t\\tThe maximum amount of time in seconds a connection may be reused. If set to 0, connections are reused forever.\\n\\t\\t\\n\\t
    \\n
    \\n\\n

    PostgreSQL details

    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\tVersion\\n\\t\\t\\t\\n\\t\\t\\t\\tThis option controls what functions are available in the PostgreSQL query builder.\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\t\\n \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMin time interval\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\\n\\t\\t\\t\\tfor example 1m if your data is written every minute.\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n
    \\n

    \\n\\t\\t\\tTimescaleDB is a time-series database built as a PostgreSQL extension. If enabled, Grafana will use time_bucket in the $__timeGroup macro and display TimescaleDB specific aggregate functions in the query builder.\\n

    \\n
    \\n
    \\n\\n
    \\n\\n\\n
    \\n\\t
    \\n\\t\\t
    User Permission
    \\n\\t\\t

    \\n\\t\\t\\tThe database user should only be granted SELECT permissions on the specified database & tables you want to query.\\n\\t\\t\\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\\n\\t\\t\\tlike DELETE FROM user; and DROP TABLE user; would be executed. To protect against this we\\n\\t\\t\\tHighly recommmend you create a specific PostgreSQL user with restricted permissions.\\n\\t\\t

    \\n\\t
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/postgres/partials/query.editor.html';\nvar html = \"\\n\\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n \\n\\n \\n \\n\\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    {{ctrl.lastQueryMeta.sql}}
    \\n
    \\n\\n
    \\n
    Time series:\\n- return column named time (UTC in seconds or timestamp)\\n- return column(s) with numeric datatype as values\\nOptional:\\n  - return column named metric to represent the series name.\\n  - If multiple value columns are returned the metric column is used as prefix.\\n  - If no column named metric is found the column name of the value column is used as series name\\n\\nResultsets of time series queries need to be sorted by time.\\n\\nTable:\\n- return any set of columns\\n\\nMacros:\\n- $__time(column) -> column as \\\"time\\\"\\n- $__timeEpoch -> extract(epoch from column) as \\\"time\\\"\\n- $__timeFilter(column) -> column BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:01:17Z'\\n- $__unixEpochFilter(column) ->  column >= 1492750877 AND column <= 1492750877\\n- $__unixEpochNanoFilter(column) ->  column >= 1494410783152415214 AND column <= 1494497183142514872\\n- $__timeGroup(column,'5m'[, fillvalue]) -> (extract(epoch from column)/300)::bigint*300\\n     by setting fillvalue grafana will fill in missing values according to the interval\\n     fillvalue can be either a literal value, NULL or previous; previous will fill in the previous seen value or NULL if none has been seen yet\\n- $__timeGroupAlias(column,'5m') -> (extract(epoch from column)/300)::bigint*300 AS \\\"time\\\"\\n- $__unixEpochGroup(column,'5m') -> floor(column/300)*300\\n- $__unixEpochGroupAlias(column,'5m') -> floor(column/300)*300 AS \\\"time\\\"\\n\\nExample of group by and order by with $__timeGroup:\\nSELECT\\n  $__timeGroup(date_time_col, '1h'),\\n  sum(value) as value\\nFROM yourtable\\nGROUP BY time\\nORDER BY time\\n\\nOr build your own conditionals using these macros which just return the values:\\n- $__timeFrom() ->  '2017-04-21T05:01:17Z'\\n- $__timeTo() ->  '2017-04-21T05:01:17Z'\\n- $__unixEpochFrom() ->  1492750877\\n- $__unixEpochTo() ->  1492750877\\n- $__unixEpochNanoFrom() ->  1494410783152415214\\n- $__unixEpochNanoTo() ->  1494497183142514872\\n    
    \\n
    \\n\\n \\n\\n
    \\n
    {{ctrl.lastQueryError}}
    \\n
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/prometheus/partials/annotations.editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\tSearch expression\\n\\t\\t\\n\\t
    \\n\\t
    \\n\\t\\tstep\\n\\t\\t\\n\\t
    \\n
    \\n\\n
    \\n\\t
    Field formats
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tTitle\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\tTags\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\tText\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    Other options
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/prometheus/partials/config.html';\nvar html = \"\\n\\n\\n
    \\n
    \\n
    \\n Scrape interval\\n \\n \\n Set this to your global scrape interval defined in your Prometheus config file. This will be used as a lower limit for the\\n Prometheus step query parameter.\\n \\n
    \\n
    \\n\\n
    \\n
    \\n Query timeout\\n \\n \\n Set the Prometheus query timeout.\\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n \\n \\n Specify the HTTP Method to query Prometheus. (POST is only available in Prometheus >= v2.1.0)\\n \\n
    \\n
    \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/prometheus/partials/query.editor.html';\nvar html = \"\\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n \\n \\n Controls the name of the time series, using name or pattern. For example\\n {{hostname}} will be replaced with label value for the label hostname.\\n \\n
    \\n\\n
    \\n \\n \\n \\n Leave blank for auto handling based on time range and panel width. Note that the actual dates used in the query will be adjusted\\n to a multiple of the interval step.\\n \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/stackdriver/partials/annotations.editor.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/stackdriver/partials/config.html';\nvar html = \"
    \\n
    \\n

    Stackdriver Authentication

    \\n

    There are two ways to authenticate the Stackdriver plugin - either by uploading a Service Account key file, or by\\n automatically retrieving credentials from the Google metadata server. The latter option is only available\\n when running Grafana on a GCE virtual machine.

    \\n\\n
    Uploading a Service Account Key File
    \\n

    \\n First you need to create a Google Cloud Platform (GCP) Service Account for\\n the Project you want to show data for. A Grafana datasource integrates with one GCP Project. If you want to\\n visualize data from multiple GCP Projects then you need to create one datasource per GCP Project.\\n

    \\n

    \\n The Monitoring Viewer role provides all the permissions that Grafana needs. The following API\\n needs to be enabled on GCP for the datasource to work: Monitoring\\n API\\n

    \\n\\n
    GCE Default Service Account
    \\n

    \\n If Grafana is running on a Google Compute Engine (GCE) virtual machine, it is possible for Grafana to\\n automatically retrieve the default project id and authentication token from the metadata server. In order for this to\\n work, you need to make sure that you have a service account that is setup as the default account for the virtual\\n machine and that the service account has been given read access to the Stackdriver Monitoring API.\\n

    \\n\\n

    Detailed instructions on how to create a Service Account can be found in\\n the documentation.\\n

    \\n
    \\n
    \\n\\n
    \\n
    \\n

    Authentication

    \\n Upload your Service Account key file or paste in the contents of the file. The file\\n contents will be encrypted and saved in the Grafana database.\\n
    \\n\\n
    \\n
    \\n Authentication Type\\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    Or paste Service Account key JSON
    \\n
    \\n \\n
    \\n
    \\n \\n {{valError}}\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    Uploaded Key Details
    \\n\\n
    \\n Project\\n \\n
    \\n
    \\n Client Email\\n \\n
    \\n
    \\n Token URI\\n \\n
    \\n
    \\n Private Key\\n \\n
    \\n\\n
    \\n Reset Service\\n Account Key \\n \\n Reset to clear the uploaded key and upload a new file.\\n \\n
    \\n
    \\n\\n

    Do not forget to save your changes after uploading a file.

    \\n\\n

    \\n Verify GCE default service account by clicking Save & Test

    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/stackdriver/partials/query.editor.html';\nvar html = \"\\n \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/stackdriver/partials/query.filter.html';\nvar html = \"
    \\n
    \\n Filter\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n Group By\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/datasource/testdata/partials/query.editor.html';\nvar html = \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n \\n\\t\\t\\t\\n \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/alertlist/editor.html';\nvar html = \"
    \\n
    \\n
    Options
    \\n
    \\n Show\\n
    \\n \\n
    \\n
    \\n
    \\n Max items\\n \\n
    \\n
    \\n Sort order\\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    Filter
    \\n
    \\n Alert name\\n \\n
    \\n
    \\n Dashboard title\\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n Dashboard tags\\n \\n \\n
    \\n
    \\n
    \\n
    State filter
    \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/alertlist/module.html';\nvar html = \"
    \\n
    \\n {{ctrl.noAlertsMessage}}\\n
    \\n\\n
    \\n
      \\n
    1. \\n
      \\n \\n
      \\n
      \\n
      \\n

      \\n \\n {{alert.name}}\\n \\n

      \\n
      \\n {{alert.stateModel.text}}\\n for {{alert.newStateDateAgo}}\\n
      \\n
      \\n
      \\n
    2. \\n
    \\n
    \\n\\n
    \\n
      \\n
    1. \\n
      \\n \\n
      \\n
      \\n
      \\n

      {{al.alertName}}

      \\n
      \\n {{al.stateModel.text}}\\n
      \\n
      \\n {{al.info}}\\n
      \\n
      \\n {{al.time}}\\n
      \\n
    2. \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/dashlist/editor.html';\nvar html = \"
    \\n
    \\n
    Options
    \\n\\n \\n \\n \\n\\n \\n\\n
    \\n Max items\\n \\n
    \\n
    \\n\\n
    \\n
    Search
    \\n\\n
    \\n Query\\n \\n
    \\n\\n
    \\n \\n\\t\\t\\t\\n
    \\n\\n
    \\n Tags\\n \\n \\n
    \\n
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/dashlist/module.html';\nvar html = \"
    \\n
    \\n
    \\n
    \\n {{group.header}}\\n
    \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/gettingstarted/editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMode\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tSearch options\\n\\t\\t\\tQuery\\n\\n\\t\\t\\t\\n\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tTags\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tLimit number to\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/gettingstarted/module.html';\nvar html = \"
    \\n
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/axes_editor.html';\nvar html = \"
    \\n\\t
    \\n\\n\\t\\t
    Left Y
    \\n\\t\\t
    Right Y
    \\n\\n\\t\\t\\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    X-Axis
    \\n\\t\\t\\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n \\n\\t\\t
    \\n\\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t
    Y-Axes
    \\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\n\\t
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/tab_display.html';\nvar html = \"
    \\n
    \\n
    Draw Modes
    \\n \\n \\n \\n
    \\n
    \\n
    Mode Options
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    Hover tooltip
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    Stacking & Null value
    \\n \\n \\n \\n \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/tab_legend.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t
    Options
    \\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    Values
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    Hide series
    \\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/tab_thresholds_time_regions.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/thresholds_form.html';\nvar html = \"
    \\n

    \\n Visual thresholds options disabled.\\n Visit the Alert tab update your thresholds.
    \\n To re-enable thresholds, the alert rule must be deleted from this panel.\\n

    \\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/graph/time_regions_form.html';\nvar html = \"
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/heatmap/module.html';\nvar html = \"
    \\n\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\t{{ctrl.dataWarning.title}}\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/heatmap/partials/axes_editor.html';\nvar html = \"
    \\n
    \\n
    Y Axis
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n
    Buckets
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    Data format
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/heatmap/partials/display_editor.html';\nvar html = \"
    \\n
    \\n
    Colors
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    Color scale
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    Legend
    \\n \\n \\n
    \\n\\n
    \\n
    Buckets
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    Tooltip
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/pluginlist/editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tMode\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tSearch options\\n\\t\\t\\tQuery\\n\\n\\t\\t\\t\\n\\n\\t\\t
    \\n\\n\\t\\t
    \\n\\t\\t\\tTags\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\tLimit number to\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/pluginlist/module.html';\nvar html = \"\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/singlestat/editor.html';\nvar html = \"
    \\n
    \\n
    Value
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n \\n \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    Coloring
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n Invert\\n \\n \\n
    \\n
    \\n\\n
    \\n
    Spark lines
    \\n \\n
    \\n \\n
    \\n \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    Gauge
    \\n \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/singlestat/mappings.html';\nvar html = \"
    \\n
    \\n
    \\n \\n Type\\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    Set value mappings
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    Set range mappings
    \\n
    \\n
    \\n \\n \\n \\n From\\n \\n To\\n \\n Text\\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/singlestat/module.html';\nvar html = \"
    \\n\\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/table/column_options.html';\nvar html = \"
    \\n
    \\n
    Options
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n \\n
    \\n\\n
    \\n
    Type
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    Value Mappings
    \\n
    \\n
    \\n
    \\n \\n Type\\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n From\\n \\n To\\n \\n Text\\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    Thresholds
    \\n
    \\n \\n \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n Invert\\n
    \\n
    \\n
    \\n\\n
    \\n
    Link
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n
    \\n\\n
    \\n \\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/table/editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\t
    Data
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n\\n\\t
    \\n\\t\\t
    Paging
    \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/table/module.html';\nvar html = \"\\n
    \\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t{{col.title}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    \\n\\t
    \\n
    \\n
    \\n\\t\\n\\t\\tNo data to show Nothing returned by data query\\n\\t\\n
    \\n\\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/text/editor.html';\nvar html = \"
    \\n\\t
    \\n\\t\\tMode\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\n\\t
    \\n
    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","var path = 'public/app/plugins/panel/text/module.html';\nvar html = \"

    \\n

    \\n\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;","/* jshint ignore:start */\n\nace.define(\"ace/theme/grafana-dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n \"use strict\";\n\n exports.isDark = true;\n exports.cssClass = \"gf-code-dark\";\n exports.cssText = \".gf-code-dark .ace_gutter {\\\n background: #2f3129;\\\n color: #8f908a\\\n }\\\n .gf-code-dark .ace_print-margin {\\\n width: 1px;\\\n background: #555651\\\n }\\\n .gf-code-dark {\\\n background-color: #09090b;\\\n color: #e0e0e0\\\n }\\\n .gf-code-dark .ace_cursor {\\\n color: #f8f8f0\\\n }\\\n .gf-code-dark .ace_marker-layer .ace_selection {\\\n background: #49483e\\\n }\\\n .gf-code-dark.ace_multiselect .ace_selection.ace_start {\\\n box-shadow: 0 0 3px 0px #272822;\\\n }\\\n .gf-code-dark .ace_marker-layer .ace_step {\\\n background: rgb(102, 82, 0)\\\n }\\\n .gf-code-dark .ace_marker-layer .ace_bracket {\\\n margin: -1px 0 0 -1px;\\\n border: 1px solid #49483e\\\n }\\\n .gf-code-dark .ace_marker-layer .ace_active-line {\\\n background: #202020\\\n }\\\n .gf-code-dark .ace_gutter-active-line {\\\n background-color: #272727\\\n }\\\n .gf-code-dark .ace_marker-layer .ace_selected-word {\\\n border: 1px solid #49483e\\\n }\\\n .gf-code-dark .ace_invisible {\\\n color: #52524d\\\n }\\\n .gf-code-dark .ace_entity.ace_name.ace_tag,\\\n .gf-code-dark .ace_keyword,\\\n .gf-code-dark .ace_meta.ace_tag,\\\n .gf-code-dark .ace_storage {\\\n color: #66d9ef\\\n }\\\n .gf-code-dark .ace_punctuation,\\\n .gf-code-dark .ace_punctuation.ace_tag {\\\n color: #fff\\\n }\\\n .gf-code-dark .ace_constant.ace_character,\\\n .gf-code-dark .ace_constant.ace_language,\\\n .gf-code-dark .ace_constant.ace_numeric,\\\n .gf-code-dark .ace_constant.ace_other {\\\n color: #fe85fc\\\n }\\\n .gf-code-dark .ace_invalid {\\\n color: #f8f8f0;\\\n background-color: #f92672\\\n }\\\n .gf-code-dark .ace_invalid.ace_deprecated {\\\n color: #f8f8f0;\\\n background-color: #ae81ff\\\n }\\\n .gf-code-dark .ace_support.ace_constant,\\\n .gf-code-dark .ace_support.ace_function {\\\n color: #59e6e3\\\n }\\\n .gf-code-dark .ace_fold {\\\n background-color: #a6e22e;\\\n border-color: #f8f8f2\\\n }\\\n .gf-code-dark .ace_storage.ace_type,\\\n .gf-code-dark .ace_support.ace_class,\\\n .gf-code-dark .ace_support.ace_type {\\\n font-style: italic;\\\n color: #66d9ef\\\n }\\\n .gf-code-dark .ace_entity.ace_name.ace_function,\\\n .gf-code-dark .ace_entity.ace_other,\\\n .gf-code-dark .ace_entity.ace_other.ace_attribute-name,\\\n .gf-code-dark .ace_variable {\\\n color: #a6e22e\\\n }\\\n .gf-code-dark .ace_variable.ace_parameter {\\\n font-style: italic;\\\n color: #fd971f\\\n }\\\n .gf-code-dark .ace_string {\\\n color: #74e680\\\n }\\\n .gf-code-dark .ace_paren {\\\n color: #f0a842\\\n }\\\n .gf-code-dark .ace_operator {\\\n color: #FFF\\\n }\\\n .gf-code-dark .ace_comment {\\\n color: #75715e\\\n }\\\n .gf-code-dark .ace_indent-guide {\\\n background: url(data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaaccayaaaczgbynaaaaekleqvqimwpq0fd0zxbzd/wpaajvaoxesgneaaaaaelftksuqmcc) right repeat-y\\\n }\";\n\n var dom = acequire(\"../lib/dom\");\n dom.importCssString(exports.cssText, exports.cssClass);\n});\n\n/* jshint ignore:end */\n","// based on http://www.paciellogroup.com/blog/2012/04/how-to-remove-css-outlines-in-an-accessible-manner/\nfunction outlineFixer() {\n const d: any = document;\n\n const styleElement = d.createElement('STYLE');\n const domEvents = 'addEventListener' in d;\n\n const addEventListener = (type, callback) => {\n // Basic cross-browser event handling\n if (domEvents) {\n d.addEventListener(type, callback);\n } else {\n d.attachEvent('on' + type, callback);\n }\n };\n\n const setCss = cssText => {\n // Handle setting of