Inhaltsverzeichnis
Icinga2 - Grafana
Icinga ist eine vollständig auf Open-Source-Basis basierende, skalierbare und erweiterbare Monitoring-Lösung welche die Verfügbarkeit von definierten Ressource überprüft und über eine Benachrichtigungssystem verfügt.
Zur Einbindung von Grafana in Icinga, wird ein Modul namens
icingaweb2-module-grafana
benötigt.
Beschreibung | Externer Link |
---|---|
Download | https://github.com/Mikesch-mp/icingaweb2-module-grafana |
Grafana ist das Visualisierungswerkzeug, daher benötigt es Datenquellen aus Datenbanksystemen wie Graphite, Prometheus, Elasticsearch, InfluxDB, OpenTSDB, AWS Cloudwatch, MySQL, PostgreSQL.
WICHTIG - Die Datenbasis für Grafana soll in dieser Beschreibung Graphite sein, wie unter nachfolgendem Link beschrieben:
Beschreibung | Externer Link |
---|---|
Homepage | https://grafana.com/ |
Dokumentation | http://docs.grafana.org/ |
Plugin-Download | https://grafana.com/grafana/plugins/grafana-image-renderer |
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Voraussetzungen
Als Voraussetzung für die Installation von Icinga und Grafana in Kombination mit Icinga sind folgende Komponenten erforderlich:
- Lauffähiger Datenbank-Server z.B. MariaDB
- Siehe auch den internen Link: MariaDB CentOS 7
- Lauffähiger Web-Server z.B. Apache HTTP Server
- Siehe auch den internen Link: Apache HTTP Server CentOS 7
- Graphite Installation in Kombination mit Icinga
- Siehe auch den internen Link: Icinga2 - Graphite
Vorbereitung
Zur Installation von Grafana aus rpm
-Paketen, kann ein genutzt bzw. eingebunden werden.
Nachfolgender Befehl erstellt einen neuen Repository-Eintrag im Verzeichnis
/etc/yum.repos.d/
mit dem Namen
/etc/yum.repos.d/grafana.repo
# touch /etc/yum.repos.d/grafana.repo
Dieser neue Repository-Eintrag muss anschließend mit einem Editor der Wahl mit nachfolgendem Inhalt gefüllt werden:
[grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Anschliessend kann Grafana aus dessen Repository installiert werden.
icingaweb2-module-grafana
Mit nachfolgendem Befehl kann direkt von GitHub eine gepackte Datei als Archiv direkt in das temporäre Verzeichnis /tmp
heruntergeladen werden:
# wget -P /tmp https://github.com/Mikesch-mp/icingaweb2-module-grafana/archive/master.zip --2018-11-13 13:16:45-- https://github.com/Mikesch-mp/icingaweb2-module-grafana/archive/master.zip Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113 Connecting to github.com (github.com)|192.30.253.112|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/Mikesch-mp/icingaweb2-module-grafana/zip/master [following] --2018-11-13 13:16:45-- https://codeload.github.com/Mikesch-mp/icingaweb2-module-grafana/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120 Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/zip] Saving to: ‘/tmp/master.zip’ [ <=> ] 1,858,277 1.08MB/s in 1.6s 2018-11-13 13:16:48 (1.08 MB/s) - ‘/tmp/master.zip’ saved [1858277]
Installation
Nachdem das Drittanbieter-Repository Grafana erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das rpm
-Paket
grafana
falls nicht bereits geschehen, müssen nachfolgende rpm
-Pakete ebenfalls noch installiert werden
initscripts
fontconfig
installiert werden:
# yum install grafana Loaded plugins: changelog, priorities 343 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package grafana.x86_64 0:5.3.2-1 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: grafana x86_64 5.3.2-1 grafana 52 M Transaction Summary ================================================================================ Install 1 Package Total download size: 52 M Installed size: 149 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : grafana-5.3.2-1.x86_64 1/1 ### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable grafana-server.service ### You can start grafana-server by executing sudo /bin/systemctl start grafana-server.service POSTTRANS: Running script Verifying : grafana-5.3.2-1.x86_64 1/1 Installed: grafana.x86_64 0:5.3.2-1 Complete!
grafana
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket grafana
installiert wurden.
# rpm -qil grafana Name : grafana Version : 5.3.2 Release : 1 Architecture: x86_64 Install Date: Tue 13 Nov 2018 01:03:15 PM CET Group : default Size : 156153401 License : "Apache 2.0" Signature : RSA/SHA1, Wed 24 Oct 2018 02:19:00 PM CEST, Key ID 8c8c34c524098cb6 Source RPM : grafana-5.3.2-1.src.rpm Build Date : Wed 24 Oct 2018 02:17:31 PM CEST Build Host : b678f59b192d Relocations : / Packager : contact@grafana.com Vendor : Grafana URL : https://grafana.com Summary : Grafana Description : Grafana /etc/grafana /etc/init.d/grafana-server /etc/sysconfig/grafana-server /usr/lib/systemd/system/grafana-server.service /usr/sbin/grafana-cli /usr/sbin/grafana-server /usr/share/grafana/VERSION /usr/share/grafana/conf/defaults.ini /usr/share/grafana/conf/ldap.toml /usr/share/grafana/conf/provisioning/dashboards/sample.yaml /usr/share/grafana/conf/provisioning/datasources/sample.yaml /usr/share/grafana/conf/sample.ini /usr/share/grafana/public/app/app.ts /usr/share/grafana/public/app/core/actions/index.ts /usr/share/grafana/public/app/core/actions/location.ts /usr/share/grafana/public/app/core/actions/navModel.ts /usr/share/grafana/public/app/core/angular_wrappers.ts /usr/share/grafana/public/app/core/app_events.ts /usr/share/grafana/public/app/core/components/Animations/SlideDown.tsx /usr/share/grafana/public/app/core/components/CustomScrollbar/CustomScrollbar.test.tsx /usr/share/grafana/public/app/core/components/CustomScrollbar/CustomScrollbar.tsx /usr/share/grafana/public/app/core/components/CustomScrollbar/__snapshots__/CustomScrollbar.test.tsx.snap /usr/share/grafana/public/app/core/components/DeleteButton/DeleteButton.test.tsx /usr/share/grafana/public/app/core/components/DeleteButton/DeleteButton.tsx /usr/share/grafana/public/app/core/components/EmptyListCTA/EmptyListCTA.test.tsx /usr/share/grafana/public/app/core/components/EmptyListCTA/EmptyListCTA.tsx /usr/share/grafana/public/app/core/components/EmptyListCTA/__snapshots__/EmptyListCTA.test.tsx.snap /usr/share/grafana/public/app/core/components/Forms/Forms.tsx /usr/share/grafana/public/app/core/components/LayoutSelector/LayoutSelector.tsx /usr/share/grafana/public/app/core/components/PageHeader/PageHeader.test.tsx /usr/share/grafana/public/app/core/components/PageHeader/PageHeader.tsx /usr/share/grafana/public/app/core/components/PasswordStrength.tsx /usr/share/grafana/public/app/core/components/PermissionList/AddPermission.tsx /usr/share/grafana/public/app/core/components/PermissionList/DisabledPermissionListItem.tsx /usr/share/grafana/public/app/core/components/PermissionList/PermissionList.tsx /usr/share/grafana/public/app/core/components/PermissionList/PermissionListItem.tsx /usr/share/grafana/public/app/core/components/PermissionList/PermissionsInfo.tsx /usr/share/grafana/public/app/core/components/Picker/DescriptionOption.tsx /usr/share/grafana/public/app/core/components/Picker/DescriptionPicker.tsx /usr/share/grafana/public/app/core/components/Picker/PickerOption.test.tsx /usr/share/grafana/public/app/core/components/Picker/PickerOption.tsx /usr/share/grafana/public/app/core/components/Picker/TeamPicker.test.tsx /usr/share/grafana/public/app/core/components/Picker/TeamPicker.tsx /usr/share/grafana/public/app/core/components/Picker/UserPicker.test.tsx /usr/share/grafana/public/app/core/components/Picker/UserPicker.tsx /usr/share/grafana/public/app/core/components/Picker/__snapshots__/PickerOption.test.tsx.snap /usr/share/grafana/public/app/core/components/Picker/__snapshots__/TeamPicker.test.tsx.snap /usr/share/grafana/public/app/core/components/Picker/__snapshots__/UserPicker.test.tsx.snap /usr/share/grafana/public/app/core/components/ScrollBar/ScrollBar.tsx /usr/share/grafana/public/app/core/components/TagFilter/TagBadge.tsx /usr/share/grafana/public/app/core/components/TagFilter/TagFilter.tsx /usr/share/grafana/public/app/core/components/TagFilter/TagOption.tsx /usr/share/grafana/public/app/core/components/TagFilter/TagValue.tsx /usr/share/grafana/public/app/core/components/Tooltip/Popover.test.tsx /usr/share/grafana/public/app/core/components/Tooltip/Popover.tsx /usr/share/grafana/public/app/core/components/Tooltip/Tooltip.test.tsx /usr/share/grafana/public/app/core/components/Tooltip/Tooltip.tsx /usr/share/grafana/public/app/core/components/Tooltip/__snapshots__/Popover.test.tsx.snap /usr/share/grafana/public/app/core/components/Tooltip/__snapshots__/Tooltip.test.tsx.snap /usr/share/grafana/public/app/core/components/Tooltip/withTooltip.tsx /usr/share/grafana/public/app/core/components/code_editor/code_editor.ts /usr/share/grafana/public/app/core/components/code_editor/theme-grafana-dark.js /usr/share/grafana/public/app/core/components/colorpicker/ColorPalette.tsx /usr/share/grafana/public/app/core/components/colorpicker/ColorPicker.tsx /usr/share/grafana/public/app/core/components/colorpicker/ColorPickerPopover.tsx /usr/share/grafana/public/app/core/components/colorpicker/SeriesColorPicker.tsx /usr/share/grafana/public/app/core/components/colorpicker/SpectrumPicker.tsx /usr/share/grafana/public/app/core/components/colorpicker/spectrum_picker.ts /usr/share/grafana/public/app/core/components/dashboard_selector.ts /usr/share/grafana/public/app/core/components/form_dropdown/form_dropdown.ts /usr/share/grafana/public/app/core/components/gf_page.ts /usr/share/grafana/public/app/core/components/grafana_app.ts /usr/share/grafana/public/app/core/components/help/help.html /usr/share/grafana/public/app/core/components/help/help.ts /usr/share/grafana/public/app/core/components/info_popover.ts /usr/share/grafana/public/app/core/components/json_explorer/helpers.ts /usr/share/grafana/public/app/core/components/json_explorer/json_explorer.ts /usr/share/grafana/public/app/core/components/jsontree/jsontree.ts /usr/share/grafana/public/app/core/components/layout_selector/layout_selector.ts /usr/share/grafana/public/app/core/components/manage_dashboards/manage_dashboards.html /usr/share/grafana/public/app/core/components/manage_dashboards/manage_dashboards.ts /usr/share/grafana/public/app/core/components/navbar/navbar.html /usr/share/grafana/public/app/core/components/navbar/navbar.ts /usr/share/grafana/public/app/core/components/org_switcher.ts /usr/share/grafana/public/app/core/components/query_part/query_part.ts /usr/share/grafana/public/app/core/components/query_part/query_part_editor.ts /usr/share/grafana/public/app/core/components/scroll/page_scroll.ts /usr/share/grafana/public/app/core/components/scroll/scroll.ts /usr/share/grafana/public/app/core/components/search/SearchResult.tsx /usr/share/grafana/public/app/core/components/search/search.html /usr/share/grafana/public/app/core/components/search/search.ts /usr/share/grafana/public/app/core/components/search/search_results.html /usr/share/grafana/public/app/core/components/search/search_results.ts /usr/share/grafana/public/app/core/components/sidemenu/BottomNavLinks.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/BottomNavLinks.tsx /usr/share/grafana/public/app/core/components/sidemenu/BottomSection.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/BottomSection.tsx /usr/share/grafana/public/app/core/components/sidemenu/DropDownChild.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/DropDownChild.tsx /usr/share/grafana/public/app/core/components/sidemenu/SideMenu.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/SideMenu.tsx /usr/share/grafana/public/app/core/components/sidemenu/SideMenuDropDown.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/SideMenuDropDown.tsx /usr/share/grafana/public/app/core/components/sidemenu/SignIn.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/SignIn.tsx /usr/share/grafana/public/app/core/components/sidemenu/TopSection.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/TopSection.tsx /usr/share/grafana/public/app/core/components/sidemenu/TopSectionItem.test.tsx /usr/share/grafana/public/app/core/components/sidemenu/TopSectionItem.tsx /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/BottomNavLinks.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/BottomSection.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/DropDownChild.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/SideMenu.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/SideMenuDropDown.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/SignIn.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/TopSection.test.tsx.snap /usr/share/grafana/public/app/core/components/sidemenu/__snapshots__/TopSectionItem.test.tsx.snap /usr/share/grafana/public/app/core/components/sql_part/sql_part.ts /usr/share/grafana/public/app/core/components/sql_part/sql_part_editor.ts /usr/share/grafana/public/app/core/components/switch.ts /usr/share/grafana/public/app/core/config.ts /usr/share/grafana/public/app/core/constants.ts /usr/share/grafana/public/app/core/controllers/all.ts /usr/share/grafana/public/app/core/controllers/error_ctrl.ts /usr/share/grafana/public/app/core/controllers/inspect_ctrl.ts /usr/share/grafana/public/app/core/controllers/invited_ctrl.ts /usr/share/grafana/public/app/core/controllers/json_editor_ctrl.ts /usr/share/grafana/public/app/core/controllers/login_ctrl.ts /usr/share/grafana/public/app/core/controllers/reset_password_ctrl.ts /usr/share/grafana/public/app/core/controllers/signup_ctrl.ts /usr/share/grafana/public/app/core/core.ts /usr/share/grafana/public/app/core/core_module.ts /usr/share/grafana/public/app/core/directives/array_join.ts /usr/share/grafana/public/app/core/directives/dash_class.ts /usr/share/grafana/public/app/core/directives/diff-view.ts /usr/share/grafana/public/app/core/directives/dropdown_typeahead.ts /usr/share/grafana/public/app/core/directives/give_focus.ts /usr/share/grafana/public/app/core/directives/metric_segment.ts /usr/share/grafana/public/app/core/directives/misc.ts /usr/share/grafana/public/app/core/directives/ng_model_on_blur.ts /usr/share/grafana/public/app/core/directives/rebuild_on_change.ts /usr/share/grafana/public/app/core/directives/tags.ts /usr/share/grafana/public/app/core/directives/value_select_dropdown.ts /usr/share/grafana/public/app/core/filters/filters.ts /usr/share/grafana/public/app/core/jquery_extended.ts /usr/share/grafana/public/app/core/live/live_srv.ts /usr/share/grafana/public/app/core/lodash_extended.ts /usr/share/grafana/public/app/core/logs_model.ts /usr/share/grafana/public/app/core/mod_defs.d.ts /usr/share/grafana/public/app/core/nav_model_srv.ts /usr/share/grafana/public/app/core/partials.ts /usr/share/grafana/public/app/core/profiler.ts /usr/share/grafana/public/app/core/reducers/index.ts /usr/share/grafana/public/app/core/reducers/location.ts /usr/share/grafana/public/app/core/reducers/navModel.ts /usr/share/grafana/public/app/core/reducers/processsAclItems.ts /usr/share/grafana/public/app/core/selectors/location.ts /usr/share/grafana/public/app/core/selectors/navModel.ts /usr/share/grafana/public/app/core/services/alert_srv.ts /usr/share/grafana/public/app/core/services/all.ts /usr/share/grafana/public/app/core/services/analytics.ts /usr/share/grafana/public/app/core/services/backend_srv.ts /usr/share/grafana/public/app/core/services/bridge_srv.ts /usr/share/grafana/public/app/core/services/context_srv.ts /usr/share/grafana/public/app/core/services/dynamic_directive_srv.ts /usr/share/grafana/public/app/core/services/impression_srv.ts /usr/share/grafana/public/app/core/services/keybindingSrv.ts /usr/share/grafana/public/app/core/services/ng_react.ts /usr/share/grafana/public/app/core/services/popover_srv.ts /usr/share/grafana/public/app/core/services/search_srv.ts /usr/share/grafana/public/app/core/services/segment_srv.ts /usr/share/grafana/public/app/core/services/timer.ts /usr/share/grafana/public/app/core/services/util_srv.ts /usr/share/grafana/public/app/core/specs/ColorPalette.test.tsx /usr/share/grafana/public/app/core/specs/PasswordStrength.test.tsx /usr/share/grafana/public/app/core/specs/__snapshots__/ColorPalette.test.tsx.snap /usr/share/grafana/public/app/core/specs/backend_srv.test.ts /usr/share/grafana/public/app/core/specs/datemath.test.ts /usr/share/grafana/public/app/core/specs/emitter.test.ts /usr/share/grafana/public/app/core/specs/file_export.test.ts /usr/share/grafana/public/app/core/specs/flatten.test.ts /usr/share/grafana/public/app/core/specs/kbn.test.ts /usr/share/grafana/public/app/core/specs/location_util.test.ts /usr/share/grafana/public/app/core/specs/manage_dashboards.test.ts /usr/share/grafana/public/app/core/specs/org_switcher.test.ts /usr/share/grafana/public/app/core/specs/rangeutil.test.ts /usr/share/grafana/public/app/core/specs/search.test.ts /usr/share/grafana/public/app/core/specs/search_results.test.ts /usr/share/grafana/public/app/core/specs/search_srv.test.ts /usr/share/grafana/public/app/core/specs/store.test.ts /usr/share/grafana/public/app/core/specs/table_model.test.ts /usr/share/grafana/public/app/core/specs/ticks.test.ts /usr/share/grafana/public/app/core/specs/time_series.test.ts /usr/share/grafana/public/app/core/specs/url.test.ts /usr/share/grafana/public/app/core/specs/value_select_dropdown.test.ts /usr/share/grafana/public/app/core/store.ts /usr/share/grafana/public/app/core/table_model.ts /usr/share/grafana/public/app/core/time_series2.ts /usr/share/grafana/public/app/core/utils/acl.ts /usr/share/grafana/public/app/core/utils/colors.ts /usr/share/grafana/public/app/core/utils/css_loader.ts /usr/share/grafana/public/app/core/utils/dag.test.ts /usr/share/grafana/public/app/core/utils/dag.ts /usr/share/grafana/public/app/core/utils/datemath.ts /usr/share/grafana/public/app/core/utils/emitter.ts /usr/share/grafana/public/app/core/utils/explore.test.ts /usr/share/grafana/public/app/core/utils/explore.ts /usr/share/grafana/public/app/core/utils/file_export.ts /usr/share/grafana/public/app/core/utils/flatten.ts /usr/share/grafana/public/app/core/utils/kbn.ts /usr/share/grafana/public/app/core/utils/location_util.ts /usr/share/grafana/public/app/core/utils/model_utils.ts /usr/share/grafana/public/app/core/utils/outline.ts /usr/share/grafana/public/app/core/utils/rangeutil.ts /usr/share/grafana/public/app/core/utils/react2angular.ts /usr/share/grafana/public/app/core/utils/sort_by_keys.ts /usr/share/grafana/public/app/core/utils/tags.ts /usr/share/grafana/public/app/core/utils/ticks.ts /usr/share/grafana/public/app/core/utils/url.ts /usr/share/grafana/public/app/core/utils/version.ts /usr/share/grafana/public/app/dev.ts /usr/share/grafana/public/app/features/admin/AdminEditOrgCtrl.ts /usr/share/grafana/public/app/features/admin/AdminEditUserCtrl.ts /usr/share/grafana/public/app/features/admin/AdminListOrgsCtrl.ts /usr/share/grafana/public/app/features/admin/AdminListUsersCtrl.ts /usr/share/grafana/public/app/features/admin/ServerStats.test.tsx /usr/share/grafana/public/app/features/admin/ServerStats.tsx /usr/share/grafana/public/app/features/admin/StyleGuideCtrl.ts /usr/share/grafana/public/app/features/admin/__snapshots__/ServerStats.test.tsx.snap /usr/share/grafana/public/app/features/admin/index.ts /usr/share/grafana/public/app/features/admin/partials/admin_home.html /usr/share/grafana/public/app/features/admin/partials/edit_org.html /usr/share/grafana/public/app/features/admin/partials/edit_user.html /usr/share/grafana/public/app/features/admin/partials/new_user.html /usr/share/grafana/public/app/features/admin/partials/orgs.html /usr/share/grafana/public/app/features/admin/partials/settings.html /usr/share/grafana/public/app/features/admin/partials/stats.html /usr/share/grafana/public/app/features/admin/partials/styleguide.html /usr/share/grafana/public/app/features/admin/partials/users.html /usr/share/grafana/public/app/features/admin/state/apis.ts /usr/share/grafana/public/app/features/alerting/AlertRuleItem.test.tsx /usr/share/grafana/public/app/features/alerting/AlertRuleItem.tsx /usr/share/grafana/public/app/features/alerting/AlertRuleList.test.tsx /usr/share/grafana/public/app/features/alerting/AlertRuleList.tsx /usr/share/grafana/public/app/features/alerting/AlertTabCtrl.ts /usr/share/grafana/public/app/features/alerting/NotificationsEditCtrl.ts /usr/share/grafana/public/app/features/alerting/NotificationsListCtrl.ts /usr/share/grafana/public/app/features/alerting/__snapshots__/AlertRuleItem.test.tsx.snap /usr/share/grafana/public/app/features/alerting/__snapshots__/AlertRuleList.test.tsx.snap /usr/share/grafana/public/app/features/alerting/partials/alert_howto.html /usr/share/grafana/public/app/features/alerting/partials/alert_tab.html /usr/share/grafana/public/app/features/alerting/partials/notification_edit.html /usr/share/grafana/public/app/features/alerting/partials/notifications_list.html /usr/share/grafana/public/app/features/alerting/state/ThresholdMapper.test.ts /usr/share/grafana/public/app/features/alerting/state/ThresholdMapper.ts /usr/share/grafana/public/app/features/alerting/state/actions.ts /usr/share/grafana/public/app/features/alerting/state/alertDef.ts /usr/share/grafana/public/app/features/alerting/state/reducers.test.ts /usr/share/grafana/public/app/features/alerting/state/reducers.ts /usr/share/grafana/public/app/features/alerting/state/selectors.test.ts /usr/share/grafana/public/app/features/alerting/state/selectors.ts /usr/share/grafana/public/app/features/all.ts /usr/share/grafana/public/app/features/annotations/all.ts /usr/share/grafana/public/app/features/annotations/annotation_tooltip.ts /usr/share/grafana/public/app/features/annotations/annotations_srv.ts /usr/share/grafana/public/app/features/annotations/editor_ctrl.ts /usr/share/grafana/public/app/features/annotations/event.ts /usr/share/grafana/public/app/features/annotations/event_editor.ts /usr/share/grafana/public/app/features/annotations/event_manager.ts /usr/share/grafana/public/app/features/annotations/events_processing.ts /usr/share/grafana/public/app/features/annotations/partials/editor.html /usr/share/grafana/public/app/features/annotations/partials/event_editor.html /usr/share/grafana/public/app/features/annotations/specs/annotations_srv.test.ts /usr/share/grafana/public/app/features/annotations/specs/annotations_srv_specs.test.ts /usr/share/grafana/public/app/features/api-keys/ApiKeysAddedModal.test.tsx /usr/share/grafana/public/app/features/api-keys/ApiKeysAddedModal.tsx /usr/share/grafana/public/app/features/api-keys/ApiKeysPage.test.tsx /usr/share/grafana/public/app/features/api-keys/ApiKeysPage.tsx /usr/share/grafana/public/app/features/api-keys/__mocks__/apiKeysMock.ts /usr/share/grafana/public/app/features/api-keys/__snapshots__/ApiKeysAddedModal.test.tsx.snap /usr/share/grafana/public/app/features/api-keys/__snapshots__/ApiKeysPage.test.tsx.snap /usr/share/grafana/public/app/features/api-keys/state/actions.ts /usr/share/grafana/public/app/features/api-keys/state/reducers.test.ts /usr/share/grafana/public/app/features/api-keys/state/reducers.ts /usr/share/grafana/public/app/features/api-keys/state/selectors.test.ts /usr/share/grafana/public/app/features/api-keys/state/selectors.ts /usr/share/grafana/public/app/features/dashboard/ad_hoc_filters.ts /usr/share/grafana/public/app/features/dashboard/alerting_srv.ts /usr/share/grafana/public/app/features/dashboard/all.ts /usr/share/grafana/public/app/features/dashboard/change_tracker.ts /usr/share/grafana/public/app/features/dashboard/create_folder_ctrl.ts /usr/share/grafana/public/app/features/dashboard/dashboard_ctrl.ts /usr/share/grafana/public/app/features/dashboard/dashboard_import_ctrl.ts /usr/share/grafana/public/app/features/dashboard/dashboard_loader_srv.ts /usr/share/grafana/public/app/features/dashboard/dashboard_migration.ts /usr/share/grafana/public/app/features/dashboard/dashboard_model.ts /usr/share/grafana/public/app/features/dashboard/dashboard_srv.ts /usr/share/grafana/public/app/features/dashboard/dashgrid/AddPanelPanel.tsx /usr/share/grafana/public/app/features/dashboard/dashgrid/DashboardGrid.tsx /usr/share/grafana/public/app/features/dashboard/dashgrid/DashboardGridDirective.ts /usr/share/grafana/public/app/features/dashboard/dashgrid/DashboardPanel.tsx /usr/share/grafana/public/app/features/dashboard/dashgrid/DashboardRow.tsx /usr/share/grafana/public/app/features/dashboard/dashgrid/PanelContainer.ts /usr/share/grafana/public/app/features/dashboard/dashgrid/PanelLoader.ts /usr/share/grafana/public/app/features/dashboard/dashgrid/RowOptions.ts /usr/share/grafana/public/app/features/dashboard/dashlinks/editor.html /usr/share/grafana/public/app/features/dashboard/dashlinks/editor.ts /usr/share/grafana/public/app/features/dashboard/dashlinks/module.ts /usr/share/grafana/public/app/features/dashboard/dashnav/dashnav.html /usr/share/grafana/public/app/features/dashboard/dashnav/dashnav.ts /usr/share/grafana/public/app/features/dashboard/export/export_modal.html /usr/share/grafana/public/app/features/dashboard/export/export_modal.ts /usr/share/grafana/public/app/features/dashboard/export/exporter.ts /usr/share/grafana/public/app/features/dashboard/export_data/export_data_modal.html /usr/share/grafana/public/app/features/dashboard/export_data/export_data_modal.ts /usr/share/grafana/public/app/features/dashboard/folder_dashboards_ctrl.ts /usr/share/grafana/public/app/features/dashboard/folder_page_loader.ts /usr/share/grafana/public/app/features/dashboard/folder_permissions_ctrl.ts /usr/share/grafana/public/app/features/dashboard/folder_picker/folder_picker.html /usr/share/grafana/public/app/features/dashboard/folder_picker/folder_picker.ts /usr/share/grafana/public/app/features/dashboard/history/history.html /usr/share/grafana/public/app/features/dashboard/history/history.ts /usr/share/grafana/public/app/features/dashboard/history/history_srv.ts /usr/share/grafana/public/app/features/dashboard/move_to_folder_modal/move_to_folder.html /usr/share/grafana/public/app/features/dashboard/move_to_folder_modal/move_to_folder.ts /usr/share/grafana/public/app/features/dashboard/panel_model.ts /usr/share/grafana/public/app/features/dashboard/panellinks/link_srv.ts /usr/share/grafana/public/app/features/dashboard/panellinks/module.html /usr/share/grafana/public/app/features/dashboard/panellinks/module.ts /usr/share/grafana/public/app/features/dashboard/panellinks/specs/link_srv.test.ts /usr/share/grafana/public/app/features/dashboard/partials/create_folder.html /usr/share/grafana/public/app/features/dashboard/partials/dashboard_import.html /usr/share/grafana/public/app/features/dashboard/partials/folder_dashboards.html /usr/share/grafana/public/app/features/dashboard/partials/folder_permissions.html /usr/share/grafana/public/app/features/dashboard/partials/folder_settings.html /usr/share/grafana/public/app/features/dashboard/partials/inspector.html /usr/share/grafana/public/app/features/dashboard/partials/row_options.html /usr/share/grafana/public/app/features/dashboard/partials/shareModal.html /usr/share/grafana/public/app/features/dashboard/permissions/DashboardPermissions.tsx /usr/share/grafana/public/app/features/dashboard/repeat_option/repeat_option.ts /usr/share/grafana/public/app/features/dashboard/save_as_modal.ts /usr/share/grafana/public/app/features/dashboard/save_modal.ts /usr/share/grafana/public/app/features/dashboard/save_provisioned_modal.ts /usr/share/grafana/public/app/features/dashboard/settings/settings.html /usr/share/grafana/public/app/features/dashboard/settings/settings.ts /usr/share/grafana/public/app/features/dashboard/shareModalCtrl.ts /usr/share/grafana/public/app/features/dashboard/share_snapshot_ctrl.ts /usr/share/grafana/public/app/features/dashboard/specs/AddPanelPanel.test.tsx /usr/share/grafana/public/app/features/dashboard/specs/DashboardRow.test.tsx /usr/share/grafana/public/app/features/dashboard/specs/change_tracker.test.ts /usr/share/grafana/public/app/features/dashboard/specs/dashboard_import_ctrl.test.ts /usr/share/grafana/public/app/features/dashboard/specs/dashboard_migration.test.ts /usr/share/grafana/public/app/features/dashboard/specs/dashboard_model.test.ts /usr/share/grafana/public/app/features/dashboard/specs/exporter.test.ts /usr/share/grafana/public/app/features/dashboard/specs/history_ctrl.test.ts /usr/share/grafana/public/app/features/dashboard/specs/history_mocks.ts /usr/share/grafana/public/app/features/dashboard/specs/history_srv.test.ts /usr/share/grafana/public/app/features/dashboard/specs/repeat.test.ts /usr/share/grafana/public/app/features/dashboard/specs/save_as_modal.test.ts /usr/share/grafana/public/app/features/dashboard/specs/save_modal.test.ts /usr/share/grafana/public/app/features/dashboard/specs/save_provisioned_modal.test.ts /usr/share/grafana/public/app/features/dashboard/specs/share_modal_ctrl.test.ts /usr/share/grafana/public/app/features/dashboard/specs/time_srv.test.ts /usr/share/grafana/public/app/features/dashboard/specs/viewstate_srv.test.ts /usr/share/grafana/public/app/features/dashboard/state/actions.ts /usr/share/grafana/public/app/features/dashboard/state/reducers.test.ts /usr/share/grafana/public/app/features/dashboard/state/reducers.ts /usr/share/grafana/public/app/features/dashboard/submenu/submenu.html /usr/share/grafana/public/app/features/dashboard/submenu/submenu.ts /usr/share/grafana/public/app/features/dashboard/time_srv.ts /usr/share/grafana/public/app/features/dashboard/timepicker/input_date.ts /usr/share/grafana/public/app/features/dashboard/timepicker/settings.html /usr/share/grafana/public/app/features/dashboard/timepicker/timepicker.html /usr/share/grafana/public/app/features/dashboard/timepicker/timepicker.ts /usr/share/grafana/public/app/features/dashboard/unsaved_changes_modal.ts /usr/share/grafana/public/app/features/dashboard/unsaved_changes_srv.ts /usr/share/grafana/public/app/features/dashboard/upload.ts /usr/share/grafana/public/app/features/dashboard/validation_srv.ts /usr/share/grafana/public/app/features/dashboard/view_state_srv.ts /usr/share/grafana/public/app/features/datasources/DataSourceList.test.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesActionBar.test.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesActionBar.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesList.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesListItem.test.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesListItem.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesListPage.test.tsx /usr/share/grafana/public/app/features/datasources/DataSourcesListPage.tsx /usr/share/grafana/public/app/features/datasources/__mocks__/dataSourcesMocks.ts /usr/share/grafana/public/app/features/datasources/__snapshots__/DataSourceList.test.tsx.snap /usr/share/grafana/public/app/features/datasources/__snapshots__/DataSourcesActionBar.test.tsx.snap /usr/share/grafana/public/app/features/datasources/__snapshots__/DataSourcesListItem.test.tsx.snap /usr/share/grafana/public/app/features/datasources/__snapshots__/DataSourcesListPage.test.tsx.snap /usr/share/grafana/public/app/features/datasources/state/actions.ts /usr/share/grafana/public/app/features/datasources/state/reducers.ts /usr/share/grafana/public/app/features/datasources/state/selectors.ts /usr/share/grafana/public/app/features/explore/ElapsedTime.tsx /usr/share/grafana/public/app/features/explore/Explore.tsx /usr/share/grafana/public/app/features/explore/Graph.test.tsx /usr/share/grafana/public/app/features/explore/Graph.tsx /usr/share/grafana/public/app/features/explore/JSONViewer.tsx /usr/share/grafana/public/app/features/explore/Legend.tsx /usr/share/grafana/public/app/features/explore/Logs.tsx /usr/share/grafana/public/app/features/explore/PromQueryField.test.tsx /usr/share/grafana/public/app/features/explore/PromQueryField.tsx /usr/share/grafana/public/app/features/explore/QueryField.tsx /usr/share/grafana/public/app/features/explore/QueryRows.tsx /usr/share/grafana/public/app/features/explore/Table.tsx /usr/share/grafana/public/app/features/explore/TimePicker.test.tsx /usr/share/grafana/public/app/features/explore/TimePicker.tsx /usr/share/grafana/public/app/features/explore/Typeahead.tsx /usr/share/grafana/public/app/features/explore/Value.ts /usr/share/grafana/public/app/features/explore/Wrapper.tsx /usr/share/grafana/public/app/features/explore/__mocks__/mockData.ts /usr/share/grafana/public/app/features/explore/__snapshots__/Graph.test.tsx.snap /usr/share/grafana/public/app/features/explore/slate-plugins/braces.test.ts /usr/share/grafana/public/app/features/explore/slate-plugins/braces.ts /usr/share/grafana/public/app/features/explore/slate-plugins/clear.test.ts /usr/share/grafana/public/app/features/explore/slate-plugins/clear.ts /usr/share/grafana/public/app/features/explore/slate-plugins/newline.ts /usr/share/grafana/public/app/features/explore/slate-plugins/prism/promql.ts /usr/share/grafana/public/app/features/explore/slate-plugins/runner.ts /usr/share/grafana/public/app/features/explore/utils/debounce.ts /usr/share/grafana/public/app/features/explore/utils/dom.ts /usr/share/grafana/public/app/features/explore/utils/prometheus.test.ts /usr/share/grafana/public/app/features/explore/utils/prometheus.ts /usr/share/grafana/public/app/features/explore/utils/query.ts /usr/share/grafana/public/app/features/folders/FolderPermissions.tsx /usr/share/grafana/public/app/features/folders/FolderSettingsPage.test.tsx /usr/share/grafana/public/app/features/folders/FolderSettingsPage.tsx /usr/share/grafana/public/app/features/folders/__snapshots__/FolderSettingsPage.test.tsx.snap /usr/share/grafana/public/app/features/folders/state/actions.ts /usr/share/grafana/public/app/features/folders/state/navModel.ts /usr/share/grafana/public/app/features/folders/state/reducers.test.ts /usr/share/grafana/public/app/features/folders/state/reducers.ts /usr/share/grafana/public/app/features/manage-dashboards/DashboardListCtrl.ts /usr/share/grafana/public/app/features/manage-dashboards/SnapshotListCtrl.ts /usr/share/grafana/public/app/features/manage-dashboards/index.ts /usr/share/grafana/public/app/features/manage-dashboards/partials/dashboard_list.html /usr/share/grafana/public/app/features/manage-dashboards/partials/snapshot_list.html /usr/share/grafana/public/app/features/org/all.ts /usr/share/grafana/public/app/features/org/change_password_ctrl.ts /usr/share/grafana/public/app/features/org/create_team_ctrl.ts /usr/share/grafana/public/app/features/org/new_org_ctrl.ts /usr/share/grafana/public/app/features/org/org_details_ctrl.ts /usr/share/grafana/public/app/features/org/org_users_ctrl.ts /usr/share/grafana/public/app/features/org/partials/change_password.html /usr/share/grafana/public/app/features/org/partials/create_team.html /usr/share/grafana/public/app/features/org/partials/invite.html /usr/share/grafana/public/app/features/org/partials/newOrg.html /usr/share/grafana/public/app/features/org/partials/orgDetails.html /usr/share/grafana/public/app/features/org/partials/orgUsers.html /usr/share/grafana/public/app/features/org/partials/profile.html /usr/share/grafana/public/app/features/org/partials/select_org.html /usr/share/grafana/public/app/features/org/prefs_control.ts /usr/share/grafana/public/app/features/org/profile_ctrl.ts /usr/share/grafana/public/app/features/org/select_org_ctrl.ts /usr/share/grafana/public/app/features/org/user_invite_ctrl.ts /usr/share/grafana/public/app/features/panel/all.ts /usr/share/grafana/public/app/features/panel/metrics_panel_ctrl.ts /usr/share/grafana/public/app/features/panel/metrics_tab.ts /usr/share/grafana/public/app/features/panel/panel_ctrl.ts /usr/share/grafana/public/app/features/panel/panel_directive.ts /usr/share/grafana/public/app/features/panel/panel_editor_tab.ts /usr/share/grafana/public/app/features/panel/panel_header.ts /usr/share/grafana/public/app/features/panel/partials/metrics_tab.html /usr/share/grafana/public/app/features/panel/partials/panelTime.html /usr/share/grafana/public/app/features/panel/partials/query_editor_row.html /usr/share/grafana/public/app/features/panel/partials/soloPanel.html /usr/share/grafana/public/app/features/panel/query_ctrl.ts /usr/share/grafana/public/app/features/panel/query_editor_row.ts /usr/share/grafana/public/app/features/panel/query_troubleshooter.ts /usr/share/grafana/public/app/features/panel/solo_panel_ctrl.ts /usr/share/grafana/public/app/features/panel/specs/metrics_panel_ctrl.test.ts /usr/share/grafana/public/app/features/playlist/all.ts /usr/share/grafana/public/app/features/playlist/partials/playlist.html /usr/share/grafana/public/app/features/playlist/partials/playlist_search.html /usr/share/grafana/public/app/features/playlist/partials/playlists.html /usr/share/grafana/public/app/features/playlist/playlist_edit_ctrl.ts /usr/share/grafana/public/app/features/playlist/playlist_routes.ts /usr/share/grafana/public/app/features/playlist/playlist_search.ts /usr/share/grafana/public/app/features/playlist/playlist_srv.ts /usr/share/grafana/public/app/features/playlist/playlists_ctrl.ts /usr/share/grafana/public/app/features/playlist/specs/playlist_edit_ctrl.test.ts /usr/share/grafana/public/app/features/plugins/PluginActionBar.test.tsx /usr/share/grafana/public/app/features/plugins/PluginActionBar.tsx /usr/share/grafana/public/app/features/plugins/PluginList.test.tsx /usr/share/grafana/public/app/features/plugins/PluginList.tsx /usr/share/grafana/public/app/features/plugins/PluginListItem.test.tsx /usr/share/grafana/public/app/features/plugins/PluginListItem.tsx /usr/share/grafana/public/app/features/plugins/PluginListPage.test.tsx /usr/share/grafana/public/app/features/plugins/PluginListPage.tsx /usr/share/grafana/public/app/features/plugins/__mocks__/pluginMocks.ts /usr/share/grafana/public/app/features/plugins/__snapshots__/PluginActionBar.test.tsx.snap /usr/share/grafana/public/app/features/plugins/__snapshots__/PluginList.test.tsx.snap /usr/share/grafana/public/app/features/plugins/__snapshots__/PluginListItem.test.tsx.snap /usr/share/grafana/public/app/features/plugins/__snapshots__/PluginListPage.test.tsx.snap /usr/share/grafana/public/app/features/plugins/all.ts /usr/share/grafana/public/app/features/plugins/built_in_plugins.ts /usr/share/grafana/public/app/features/plugins/datasource_srv.ts /usr/share/grafana/public/app/features/plugins/ds_dashboards_ctrl.ts /usr/share/grafana/public/app/features/plugins/ds_edit_ctrl.ts /usr/share/grafana/public/app/features/plugins/import_list/import_list.html /usr/share/grafana/public/app/features/plugins/import_list/import_list.ts /usr/share/grafana/public/app/features/plugins/partials/ds_dashboards.html /usr/share/grafana/public/app/features/plugins/partials/ds_edit.html /usr/share/grafana/public/app/features/plugins/partials/ds_http_settings.html /usr/share/grafana/public/app/features/plugins/partials/plugin_edit.html /usr/share/grafana/public/app/features/plugins/partials/plugin_page.html /usr/share/grafana/public/app/features/plugins/partials/update_instructions.html /usr/share/grafana/public/app/features/plugins/plugin_component.ts /usr/share/grafana/public/app/features/plugins/plugin_edit_ctrl.ts /usr/share/grafana/public/app/features/plugins/plugin_loader.ts /usr/share/grafana/public/app/features/plugins/plugin_page_ctrl.ts /usr/share/grafana/public/app/features/plugins/specs/datasource_srv.test.ts /usr/share/grafana/public/app/features/plugins/state/actions.ts /usr/share/grafana/public/app/features/plugins/state/navModel.ts /usr/share/grafana/public/app/features/plugins/state/reducers.ts /usr/share/grafana/public/app/features/plugins/state/selectors.test.ts /usr/share/grafana/public/app/features/plugins/state/selectors.ts /usr/share/grafana/public/app/features/teams/TeamGroupSync.test.tsx /usr/share/grafana/public/app/features/teams/TeamGroupSync.tsx /usr/share/grafana/public/app/features/teams/TeamList.test.tsx /usr/share/grafana/public/app/features/teams/TeamList.tsx /usr/share/grafana/public/app/features/teams/TeamMembers.test.tsx /usr/share/grafana/public/app/features/teams/TeamMembers.tsx /usr/share/grafana/public/app/features/teams/TeamPages.test.tsx /usr/share/grafana/public/app/features/teams/TeamPages.tsx /usr/share/grafana/public/app/features/teams/TeamSettings.test.tsx /usr/share/grafana/public/app/features/teams/TeamSettings.tsx /usr/share/grafana/public/app/features/teams/__mocks__/navModelMock.ts /usr/share/grafana/public/app/features/teams/__mocks__/teamMocks.ts /usr/share/grafana/public/app/features/teams/__snapshots__/TeamGroupSync.test.tsx.snap /usr/share/grafana/public/app/features/teams/__snapshots__/TeamList.test.tsx.snap /usr/share/grafana/public/app/features/teams/__snapshots__/TeamMembers.test.tsx.snap /usr/share/grafana/public/app/features/teams/__snapshots__/TeamPages.test.tsx.snap /usr/share/grafana/public/app/features/teams/__snapshots__/TeamSettings.test.tsx.snap /usr/share/grafana/public/app/features/teams/state/actions.ts /usr/share/grafana/public/app/features/teams/state/navModel.ts /usr/share/grafana/public/app/features/teams/state/reducers.test.ts /usr/share/grafana/public/app/features/teams/state/reducers.ts /usr/share/grafana/public/app/features/teams/state/selectors.test.ts /usr/share/grafana/public/app/features/teams/state/selectors.ts /usr/share/grafana/public/app/features/templating/TextBoxVariable.ts /usr/share/grafana/public/app/features/templating/adhoc_variable.ts /usr/share/grafana/public/app/features/templating/all.ts /usr/share/grafana/public/app/features/templating/constant_variable.ts /usr/share/grafana/public/app/features/templating/custom_variable.ts /usr/share/grafana/public/app/features/templating/datasource_variable.ts /usr/share/grafana/public/app/features/templating/editor_ctrl.ts /usr/share/grafana/public/app/features/templating/interval_variable.ts /usr/share/grafana/public/app/features/templating/partials/editor.html /usr/share/grafana/public/app/features/templating/query_variable.ts /usr/share/grafana/public/app/features/templating/specs/adhoc_variable.test.ts /usr/share/grafana/public/app/features/templating/specs/editor_ctrl.test.ts /usr/share/grafana/public/app/features/templating/specs/query_variable.test.ts /usr/share/grafana/public/app/features/templating/specs/template_srv.test.ts /usr/share/grafana/public/app/features/templating/specs/variable.test.ts /usr/share/grafana/public/app/features/templating/specs/variable_srv.test.ts /usr/share/grafana/public/app/features/templating/specs/variable_srv_init.test.ts /usr/share/grafana/public/app/features/templating/template_srv.ts /usr/share/grafana/public/app/features/templating/variable.ts /usr/share/grafana/public/app/features/templating/variable_srv.ts /usr/share/grafana/public/app/index.ts /usr/share/grafana/public/app/partials/confirm_modal.html /usr/share/grafana/public/app/partials/dashboard.html /usr/share/grafana/public/app/partials/edit_json.html /usr/share/grafana/public/app/partials/error.html /usr/share/grafana/public/app/partials/login.html /usr/share/grafana/public/app/partials/modal.html /usr/share/grafana/public/app/partials/panelgeneral.html /usr/share/grafana/public/app/partials/reset_password.html /usr/share/grafana/public/app/partials/signup_invited.html /usr/share/grafana/public/app/partials/signup_step2.html /usr/share/grafana/public/app/partials/valueSelectDropdown.html /usr/share/grafana/public/app/plugins/datasource/cloudwatch/README.md /usr/share/grafana/public/app/plugins/datasource/cloudwatch/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/datasource.d.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/datasource.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png /usr/share/grafana/public/app/plugins/datasource/cloudwatch/module.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/cloudwatch/partials/config.html /usr/share/grafana/public/app/plugins/datasource/cloudwatch/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/cloudwatch/partials/query.parameter.html /usr/share/grafana/public/app/plugins/datasource/cloudwatch/plugin.json /usr/share/grafana/public/app/plugins/datasource/cloudwatch/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/query_parameter_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/README.md /usr/share/grafana/public/app/plugins/datasource/elasticsearch/bucket_agg.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/datasource.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/elastic_response.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg /usr/share/grafana/public/app/plugins/datasource/elasticsearch/index_pattern.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/metric_agg.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/module.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html /usr/share/grafana/public/app/plugins/datasource/elasticsearch/partials/config.html /usr/share/grafana/public/app/plugins/datasource/elasticsearch/partials/metric_agg.html /usr/share/grafana/public/app/plugins/datasource/elasticsearch/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/elasticsearch/plugin.json /usr/share/grafana/public/app/plugins/datasource/elasticsearch/query_builder.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/query_def.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/query_help.md /usr/share/grafana/public/app/plugins/datasource/elasticsearch/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/specs/elastic_response.test.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/specs/index_pattern.test.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/specs/query_builder.test.ts /usr/share/grafana/public/app/plugins/datasource/elasticsearch/specs/query_def.test.ts /usr/share/grafana/public/app/plugins/datasource/grafana-live/_plugin.json /usr/share/grafana/public/app/plugins/datasource/grafana-live/datasource.ts /usr/share/grafana/public/app/plugins/datasource/grafana-live/module.ts /usr/share/grafana/public/app/plugins/datasource/grafana-live/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/grafana/README.md /usr/share/grafana/public/app/plugins/datasource/grafana/datasource.ts /usr/share/grafana/public/app/plugins/datasource/grafana/module.ts /usr/share/grafana/public/app/plugins/datasource/grafana/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/grafana/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/grafana/plugin.json /usr/share/grafana/public/app/plugins/datasource/grafana/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/README.md /usr/share/grafana/public/app/plugins/datasource/graphite/add_graphite_func.ts /usr/share/grafana/public/app/plugins/datasource/graphite/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/graphite/dashboards/carbon_metrics.json /usr/share/grafana/public/app/plugins/datasource/graphite/datasource.ts /usr/share/grafana/public/app/plugins/datasource/graphite/func_editor.ts /usr/share/grafana/public/app/plugins/datasource/graphite/gfunc.ts /usr/share/grafana/public/app/plugins/datasource/graphite/graphite_query.ts /usr/share/grafana/public/app/plugins/datasource/graphite/img/graphite_logo.png /usr/share/grafana/public/app/plugins/datasource/graphite/lexer.ts /usr/share/grafana/public/app/plugins/datasource/graphite/module.ts /usr/share/grafana/public/app/plugins/datasource/graphite/parser.ts /usr/share/grafana/public/app/plugins/datasource/graphite/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/graphite/partials/config.html /usr/share/grafana/public/app/plugins/datasource/graphite/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/graphite/plugin.json /usr/share/grafana/public/app/plugins/datasource/graphite/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/graphite/query_help.md /usr/share/grafana/public/app/plugins/datasource/graphite/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/specs/gfunc.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/specs/graphite_query.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/specs/lexer.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/specs/parser.test.ts /usr/share/grafana/public/app/plugins/datasource/graphite/specs/query_ctrl.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/README.md /usr/share/grafana/public/app/plugins/datasource/influxdb/datasource.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/img/influxdb_logo.svg /usr/share/grafana/public/app/plugins/datasource/influxdb/influx_query.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/influx_series.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/module.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/influxdb/partials/config.html /usr/share/grafana/public/app/plugins/datasource/influxdb/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/influxdb/plugin.json /usr/share/grafana/public/app/plugins/datasource/influxdb/query_builder.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/query_help.md /usr/share/grafana/public/app/plugins/datasource/influxdb/query_part.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/response_parser.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/influx_query.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/influx_series.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/query_builder.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/query_ctrl.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/query_part.test.ts /usr/share/grafana/public/app/plugins/datasource/influxdb/specs/response_parser.test.ts /usr/share/grafana/public/app/plugins/datasource/logging/README.md /usr/share/grafana/public/app/plugins/datasource/logging/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/logging/datasource.ts /usr/share/grafana/public/app/plugins/datasource/logging/img/grafana_icon.svg /usr/share/grafana/public/app/plugins/datasource/logging/module.ts /usr/share/grafana/public/app/plugins/datasource/logging/partials/config.html /usr/share/grafana/public/app/plugins/datasource/logging/plugin.json /usr/share/grafana/public/app/plugins/datasource/logging/result_transformer.test.ts /usr/share/grafana/public/app/plugins/datasource/logging/result_transformer.ts /usr/share/grafana/public/app/plugins/datasource/mixed/README.md /usr/share/grafana/public/app/plugins/datasource/mixed/datasource.ts /usr/share/grafana/public/app/plugins/datasource/mixed/module.ts /usr/share/grafana/public/app/plugins/datasource/mixed/plugin.json /usr/share/grafana/public/app/plugins/datasource/mssql/README.md /usr/share/grafana/public/app/plugins/datasource/mssql/datasource.ts /usr/share/grafana/public/app/plugins/datasource/mssql/img/sql_server_logo.svg /usr/share/grafana/public/app/plugins/datasource/mssql/module.ts /usr/share/grafana/public/app/plugins/datasource/mssql/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/mssql/partials/config.html /usr/share/grafana/public/app/plugins/datasource/mssql/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/mssql/plugin.json /usr/share/grafana/public/app/plugins/datasource/mssql/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/mssql/response_parser.ts /usr/share/grafana/public/app/plugins/datasource/mssql/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/mysql/README.md /usr/share/grafana/public/app/plugins/datasource/mysql/datasource.ts /usr/share/grafana/public/app/plugins/datasource/mysql/img/mysql_logo.svg /usr/share/grafana/public/app/plugins/datasource/mysql/module.ts /usr/share/grafana/public/app/plugins/datasource/mysql/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/mysql/partials/config.html /usr/share/grafana/public/app/plugins/datasource/mysql/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/mysql/plugin.json /usr/share/grafana/public/app/plugins/datasource/mysql/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/mysql/response_parser.ts /usr/share/grafana/public/app/plugins/datasource/mysql/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/README.md /usr/share/grafana/public/app/plugins/datasource/opentsdb/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/datasource.d.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/datasource.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png /usr/share/grafana/public/app/plugins/datasource/opentsdb/module.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/opentsdb/partials/config.html /usr/share/grafana/public/app/plugins/datasource/opentsdb/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/opentsdb/plugin.json /usr/share/grafana/public/app/plugins/datasource/opentsdb/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/opentsdb/specs/query_ctrl.test.ts /usr/share/grafana/public/app/plugins/datasource/postgres/README.md /usr/share/grafana/public/app/plugins/datasource/postgres/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/postgres/datasource.ts /usr/share/grafana/public/app/plugins/datasource/postgres/img/postgresql_logo.svg /usr/share/grafana/public/app/plugins/datasource/postgres/meta_query.ts /usr/share/grafana/public/app/plugins/datasource/postgres/mode-sql.js /usr/share/grafana/public/app/plugins/datasource/postgres/module.ts /usr/share/grafana/public/app/plugins/datasource/postgres/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/postgres/partials/config.html /usr/share/grafana/public/app/plugins/datasource/postgres/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/postgres/plugin.json /usr/share/grafana/public/app/plugins/datasource/postgres/postgres_query.ts /usr/share/grafana/public/app/plugins/datasource/postgres/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/postgres/response_parser.ts /usr/share/grafana/public/app/plugins/datasource/postgres/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/postgres/specs/postgres_query.test.ts /usr/share/grafana/public/app/plugins/datasource/postgres/sql_part.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/README.md /usr/share/grafana/public/app/plugins/datasource/prometheus/add_label_to_query.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/completer.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/dashboards/grafana_stats.json /usr/share/grafana/public/app/plugins/datasource/prometheus/dashboards/prometheus_2_stats.json /usr/share/grafana/public/app/plugins/datasource/prometheus/dashboards/prometheus_stats.json /usr/share/grafana/public/app/plugins/datasource/prometheus/datasource.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/img/prometheus_logo.svg /usr/share/grafana/public/app/plugins/datasource/prometheus/metric_find_query.d.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/metric_find_query.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/mode-prometheus.js /usr/share/grafana/public/app/plugins/datasource/prometheus/module.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/prometheus/partials/config.html /usr/share/grafana/public/app/plugins/datasource/prometheus/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/prometheus/plugin.json /usr/share/grafana/public/app/plugins/datasource/prometheus/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/result_transformer.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/snippets/prometheus.js /usr/share/grafana/public/app/plugins/datasource/prometheus/specs/add_label_to_query.test.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/specs/completer.test.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/specs/metric_find_query.test.ts /usr/share/grafana/public/app/plugins/datasource/prometheus/specs/result_transformer.test.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/README.md /usr/share/grafana/public/app/plugins/datasource/stackdriver/annotations_query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/config_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/constants.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/datasource.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/filter_segments.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.png /usr/share/grafana/public/app/plugins/datasource/stackdriver/module.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/partials/annotations.editor.html /usr/share/grafana/public/app/plugins/datasource/stackdriver/partials/config.html /usr/share/grafana/public/app/plugins/datasource/stackdriver/partials/query.aggregation.html /usr/share/grafana/public/app/plugins/datasource/stackdriver/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/stackdriver/partials/query.filter.html /usr/share/grafana/public/app/plugins/datasource/stackdriver/plugin.json /usr/share/grafana/public/app/plugins/datasource/stackdriver/query_aggregation_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/query_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/specs/datasource.test.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/specs/query_aggregation_ctrl.test.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/specs/query_filter_ctrl.test.ts /usr/share/grafana/public/app/plugins/datasource/stackdriver/specs/testData.ts /usr/share/grafana/public/app/plugins/datasource/testdata/datasource.ts /usr/share/grafana/public/app/plugins/datasource/testdata/module.ts /usr/share/grafana/public/app/plugins/datasource/testdata/partials/query.editor.html /usr/share/grafana/public/app/plugins/datasource/testdata/plugin.json /usr/share/grafana/public/app/plugins/datasource/testdata/query_ctrl.ts /usr/share/grafana/public/app/plugins/panel/alertlist/README.md /usr/share/grafana/public/app/plugins/panel/alertlist/editor.html /usr/share/grafana/public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg /usr/share/grafana/public/app/plugins/panel/alertlist/module.html /usr/share/grafana/public/app/plugins/panel/alertlist/module.ts /usr/share/grafana/public/app/plugins/panel/alertlist/plugin.json /usr/share/grafana/public/app/plugins/panel/dashlist/README.md /usr/share/grafana/public/app/plugins/panel/dashlist/editor.html /usr/share/grafana/public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg /usr/share/grafana/public/app/plugins/panel/dashlist/module.html /usr/share/grafana/public/app/plugins/panel/dashlist/module.ts /usr/share/grafana/public/app/plugins/panel/dashlist/plugin.json /usr/share/grafana/public/app/plugins/panel/gettingstarted/README.md /usr/share/grafana/public/app/plugins/panel/gettingstarted/editor.html /usr/share/grafana/public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg /usr/share/grafana/public/app/plugins/panel/gettingstarted/module.html /usr/share/grafana/public/app/plugins/panel/gettingstarted/module.ts /usr/share/grafana/public/app/plugins/panel/gettingstarted/plugin.json /usr/share/grafana/public/app/plugins/panel/graph/README.md /usr/share/grafana/public/app/plugins/panel/graph/align_yaxes.ts /usr/share/grafana/public/app/plugins/panel/graph/axes_editor.html /usr/share/grafana/public/app/plugins/panel/graph/axes_editor.ts /usr/share/grafana/public/app/plugins/panel/graph/data_processor.ts /usr/share/grafana/public/app/plugins/panel/graph/graph.ts /usr/share/grafana/public/app/plugins/panel/graph/graph_tooltip.d.ts /usr/share/grafana/public/app/plugins/panel/graph/graph_tooltip.ts /usr/share/grafana/public/app/plugins/panel/graph/histogram.ts /usr/share/grafana/public/app/plugins/panel/graph/img/icn-graph-panel.svg /usr/share/grafana/public/app/plugins/panel/graph/jquery.flot.events.ts /usr/share/grafana/public/app/plugins/panel/graph/legend.ts /usr/share/grafana/public/app/plugins/panel/graph/module.ts /usr/share/grafana/public/app/plugins/panel/graph/plugin.json /usr/share/grafana/public/app/plugins/panel/graph/series_overrides_ctrl.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/align_yaxes.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/data_processor.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/graph.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/graph_ctrl.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/graph_tooltip.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/histogram.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/series_override_ctrl.test.ts /usr/share/grafana/public/app/plugins/panel/graph/specs/threshold_manager.test.ts /usr/share/grafana/public/app/plugins/panel/graph/tab_display.html /usr/share/grafana/public/app/plugins/panel/graph/tab_legend.html /usr/share/grafana/public/app/plugins/panel/graph/template.ts /usr/share/grafana/public/app/plugins/panel/graph/threshold_manager.ts /usr/share/grafana/public/app/plugins/panel/graph/thresholds_form.ts /usr/share/grafana/public/app/plugins/panel/heatmap/README.md /usr/share/grafana/public/app/plugins/panel/heatmap/axes_editor.ts /usr/share/grafana/public/app/plugins/panel/heatmap/color_legend.ts /usr/share/grafana/public/app/plugins/panel/heatmap/color_scale.ts /usr/share/grafana/public/app/plugins/panel/heatmap/display_editor.ts /usr/share/grafana/public/app/plugins/panel/heatmap/heatmap_ctrl.ts /usr/share/grafana/public/app/plugins/panel/heatmap/heatmap_data_converter.ts /usr/share/grafana/public/app/plugins/panel/heatmap/heatmap_tooltip.ts /usr/share/grafana/public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg /usr/share/grafana/public/app/plugins/panel/heatmap/module.html /usr/share/grafana/public/app/plugins/panel/heatmap/module.ts /usr/share/grafana/public/app/plugins/panel/heatmap/partials/axes_editor.html /usr/share/grafana/public/app/plugins/panel/heatmap/partials/display_editor.html /usr/share/grafana/public/app/plugins/panel/heatmap/plugin.json /usr/share/grafana/public/app/plugins/panel/heatmap/rendering.ts /usr/share/grafana/public/app/plugins/panel/heatmap/specs/heatmap_ctrl.test.ts /usr/share/grafana/public/app/plugins/panel/heatmap/specs/heatmap_data_converter.test.ts /usr/share/grafana/public/app/plugins/panel/pluginlist/README.md /usr/share/grafana/public/app/plugins/panel/pluginlist/editor.html /usr/share/grafana/public/app/plugins/panel/pluginlist/img/icn-dashlist-panel.svg /usr/share/grafana/public/app/plugins/panel/pluginlist/module.html /usr/share/grafana/public/app/plugins/panel/pluginlist/module.ts /usr/share/grafana/public/app/plugins/panel/pluginlist/plugin.json /usr/share/grafana/public/app/plugins/panel/singlestat/README.md /usr/share/grafana/public/app/plugins/panel/singlestat/editor.html /usr/share/grafana/public/app/plugins/panel/singlestat/img/icn-singlestat-panel.svg /usr/share/grafana/public/app/plugins/panel/singlestat/mappings.html /usr/share/grafana/public/app/plugins/panel/singlestat/module.html /usr/share/grafana/public/app/plugins/panel/singlestat/module.ts /usr/share/grafana/public/app/plugins/panel/singlestat/plugin.json /usr/share/grafana/public/app/plugins/panel/singlestat/specs/singlestat.test.ts /usr/share/grafana/public/app/plugins/panel/singlestat/specs/singlestat_panel.test.ts /usr/share/grafana/public/app/plugins/panel/table/README.md /usr/share/grafana/public/app/plugins/panel/table/column_options.html /usr/share/grafana/public/app/plugins/panel/table/column_options.ts /usr/share/grafana/public/app/plugins/panel/table/editor.html /usr/share/grafana/public/app/plugins/panel/table/editor.ts /usr/share/grafana/public/app/plugins/panel/table/img/icn-table-panel.svg /usr/share/grafana/public/app/plugins/panel/table/module.html /usr/share/grafana/public/app/plugins/panel/table/module.ts /usr/share/grafana/public/app/plugins/panel/table/plugin.json /usr/share/grafana/public/app/plugins/panel/table/renderer.ts /usr/share/grafana/public/app/plugins/panel/table/specs/renderer.test.ts /usr/share/grafana/public/app/plugins/panel/table/specs/transformers.test.ts /usr/share/grafana/public/app/plugins/panel/table/transformers.ts /usr/share/grafana/public/app/plugins/panel/text/README.md /usr/share/grafana/public/app/plugins/panel/text/editor.html /usr/share/grafana/public/app/plugins/panel/text/img/icn-text-panel.svg /usr/share/grafana/public/app/plugins/panel/text/module.html /usr/share/grafana/public/app/plugins/panel/text/module.ts /usr/share/grafana/public/app/plugins/panel/text/plugin.json /usr/share/grafana/public/app/plugins/panel/unknown/module.html /usr/share/grafana/public/app/plugins/panel/unknown/module.ts /usr/share/grafana/public/app/plugins/sdk.ts /usr/share/grafana/public/app/routes/ReactContainer.tsx /usr/share/grafana/public/app/routes/dashboard_loaders.ts /usr/share/grafana/public/app/routes/routes.ts /usr/share/grafana/public/app/store/configureStore.ts /usr/share/grafana/public/app/types/acl.ts /usr/share/grafana/public/app/types/alerting.ts /usr/share/grafana/public/app/types/apiKeys.ts /usr/share/grafana/public/app/types/dashboard.ts /usr/share/grafana/public/app/types/datasources.ts /usr/share/grafana/public/app/types/explore.ts /usr/share/grafana/public/app/types/folders.ts /usr/share/grafana/public/app/types/index.ts /usr/share/grafana/public/app/types/location.ts /usr/share/grafana/public/app/types/navModel.ts /usr/share/grafana/public/app/types/plugins.ts /usr/share/grafana/public/app/types/teams.ts /usr/share/grafana/public/app/types/user.ts /usr/share/grafana/public/build/1.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/1.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/5.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/5.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/app.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/app.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/dark.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/dark.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/explore.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/explore.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/grafana.dark.css /usr/share/grafana/public/build/grafana.light.css /usr/share/grafana/public/build/light.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/light.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/build/vendor.4ad1072db19f1dad74f5.js /usr/share/grafana/public/build/vendor.4ad1072db19f1dad74f5.js.map /usr/share/grafana/public/dashboards/default.json /usr/share/grafana/public/dashboards/home.json /usr/share/grafana/public/dashboards/scripted.js /usr/share/grafana/public/dashboards/scripted_async.js /usr/share/grafana/public/dashboards/scripted_templated.js /usr/share/grafana/public/dashboards/template_vars.json /usr/share/grafana/public/emails/README.md /usr/share/grafana/public/emails/alert_notification.html /usr/share/grafana/public/emails/alert_notification_example.html /usr/share/grafana/public/emails/invited_to_org.html /usr/share/grafana/public/emails/new_user_invite.html /usr/share/grafana/public/emails/reset_password.html /usr/share/grafana/public/emails/signup_started.html /usr/share/grafana/public/emails/welcome_on_signup.html /usr/share/grafana/public/fonts/FontAwesome.otf /usr/share/grafana/public/fonts/fontawesome-webfont.eot /usr/share/grafana/public/fonts/fontawesome-webfont.svg /usr/share/grafana/public/fonts/fontawesome-webfont.ttf /usr/share/grafana/public/fonts/fontawesome-webfont.woff /usr/share/grafana/public/fonts/fontawesome-webfont.woff2 /usr/share/grafana/public/fonts/grafana-icons.eot /usr/share/grafana/public/fonts/grafana-icons.svg /usr/share/grafana/public/fonts/grafana-icons.ttf /usr/share/grafana/public/fonts/grafana-icons.woff /usr/share/grafana/public/fonts/opensans/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2 /usr/share/grafana/public/fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2 /usr/share/grafana/public/fonts/opensans/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/opensans/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2 /usr/share/grafana/public/fonts/opensans/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2 /usr/share/grafana/public/fonts/opensans/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/opensans/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2 /usr/share/grafana/public/fonts/opensans/k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2 /usr/share/grafana/public/fonts/opensans/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2 /usr/share/grafana/public/fonts/opensans/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2 /usr/share/grafana/public/fonts/opensans/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/1hZf02POANh32k2VkgEoUBTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/fonts/roboto/CWB0XYA8bzo0kSThX0UTuA.woff2 /usr/share/grafana/public/fonts/roboto/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/K23cxWVTrIFD6DJsEVi07RTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/fonts/roboto/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0SYE0-AqJ3nfInTTiDXDjU4.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TTOQ_MqJVwkKsUn0wKzc2I.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0TUj_cnvWIuuBMVgbX098Mw.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0UbcKLIaa1LC45dFaAfauRA.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Wo_sUJ8uO4YLWRInS22T3Y.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0Y4P5ICox8Kq3LLUNMylGO4.woff2 /usr/share/grafana/public/fonts/roboto/OLffGBTaF0XFOW1gnuHF0b6up8jxqWt8HVA3mDhkV_0.woff2 /usr/share/grafana/public/fonts/roboto/OpXUqTo0UgQQhGj_SFdLWBTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2 /usr/share/grafana/public/fonts/roboto/WxrXJa0C3KdtC7lMafG4dRTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/fonts/roboto/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/cDKhRaXnQTOVbaoxwdOr9xTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/fonts/roboto/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2 /usr/share/grafana/public/fonts/roboto/vPcynSL0qHq_6dX7lKVByfesZW2xOQ-xsNqO47m55DA.woff2 /usr/share/grafana/public/fonts/roboto/vSzulfKSK0LLjjfeaxcREhTbgVql8nDJpwnrE27mub0.woff2 /usr/share/grafana/public/img/alert_howto_new.png /usr/share/grafana/public/img/angle_gradient_light_rev.png /usr/share/grafana/public/img/angle_gradient_rev.png /usr/share/grafana/public/img/apple-touch-icon.png /usr/share/grafana/public/img/background_tease.jpg /usr/share/grafana/public/img/browserconfig.xml /usr/share/grafana/public/img/check_radio_sheet.png /usr/share/grafana/public/img/checkbox.png /usr/share/grafana/public/img/checkbox_white.png /usr/share/grafana/public/img/critical.svg /usr/share/grafana/public/img/cubes.png /usr/share/grafana/public/img/envelope.png /usr/share/grafana/public/img/fav32.png /usr/share/grafana/public/img/glyphicons-halflings-white.png /usr/share/grafana/public/img/glyphicons-halflings.png /usr/share/grafana/public/img/grab_dark.svg /usr/share/grafana/public/img/grab_light.svg /usr/share/grafana/public/img/grafana_com_auth_icon.svg /usr/share/grafana/public/img/grafana_icon.svg /usr/share/grafana/public/img/grafana_mask_icon.svg /usr/share/grafana/public/img/grafana_mask_icon_white.svg /usr/share/grafana/public/img/grafana_net_logo.svg /usr/share/grafana/public/img/graph404.svg /usr/share/grafana/public/img/heatmap_bg_test.svg /usr/share/grafana/public/img/icn-app.svg /usr/share/grafana/public/img/icn-dashboard-tiny.svg /usr/share/grafana/public/img/icn-dashboard.svg /usr/share/grafana/public/img/icn-datasource.svg /usr/share/grafana/public/img/icn-panel.svg /usr/share/grafana/public/img/icn-plugins-tiny.svg /usr/share/grafana/public/img/icn-row.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_annotation.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_annotation_alt.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_data_sources.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_folder.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_link.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_notification_channel.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_panel.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_team.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_user.svg /usr/share/grafana/public/img/icons_dark_theme/icon_add_variable.svg /usr/share/grafana/public/img/icons_dark_theme/icon_alert.svg /usr/share/grafana/public/img/icons_dark_theme/icon_alert_alt.svg /usr/share/grafana/public/img/icons_dark_theme/icon_alert_off.svg /usr/share/grafana/public/img/icons_dark_theme/icon_alert_rules.svg /usr/share/grafana/public/img/icons_dark_theme/icon_annotation.svg /usr/share/grafana/public/img/icons_dark_theme/icon_annotation_alt.svg /usr/share/grafana/public/img/icons_dark_theme/icon_apikeys.svg /usr/share/grafana/public/img/icons_dark_theme/icon_cog.svg /usr/share/grafana/public/img/icons_dark_theme/icon_dashboard.svg /usr/share/grafana/public/img/icons_dark_theme/icon_dashboard_fav.svg /usr/share/grafana/public/img/icons_dark_theme/icon_dashboard_list.svg /usr/share/grafana/public/img/icons_dark_theme/icon_data_sources.svg /usr/share/grafana/public/img/icons_dark_theme/icon_editor.svg /usr/share/grafana/public/img/icons_dark_theme/icon_home.svg /usr/share/grafana/public/img/icons_dark_theme/icon_import_dashboard.svg /usr/share/grafana/public/img/icons_dark_theme/icon_json.svg /usr/share/grafana/public/img/icons_dark_theme/icon_link.svg /usr/share/grafana/public/img/icons_dark_theme/icon_new_dashboard.svg /usr/share/grafana/public/img/icons_dark_theme/icon_notification_channels.svg /usr/share/grafana/public/img/icons_dark_theme/icon_org.svg /usr/share/grafana/public/img/icons_dark_theme/icon_playlist.svg /usr/share/grafana/public/img/icons_dark_theme/icon_plugins.svg /usr/share/grafana/public/img/icons_dark_theme/icon_preferences.svg /usr/share/grafana/public/img/icons_dark_theme/icon_question.svg /usr/share/grafana/public/img/icons_dark_theme/icon_shield.svg /usr/share/grafana/public/img/icons_dark_theme/icon_sitemap.svg /usr/share/grafana/public/img/icons_dark_theme/icon_snapshots.svg /usr/share/grafana/public/img/icons_dark_theme/icon_team.svg /usr/share/grafana/public/img/icons_dark_theme/icon_user.svg /usr/share/grafana/public/img/icons_dark_theme/icon_variable.svg /usr/share/grafana/public/img/icons_dark_theme/icon_viewer.svg /usr/share/grafana/public/img/icons_dark_theme/icon_zoom_out.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_annotation.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_annotation_alt.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_data_sources.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_folder.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_link.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_notification_channel.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_panel.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_team.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_user.svg /usr/share/grafana/public/img/icons_light_theme/icon_add_variable.svg /usr/share/grafana/public/img/icons_light_theme/icon_alert.svg /usr/share/grafana/public/img/icons_light_theme/icon_alert_alt.svg /usr/share/grafana/public/img/icons_light_theme/icon_alert_off.svg /usr/share/grafana/public/img/icons_light_theme/icon_alert_rules.svg /usr/share/grafana/public/img/icons_light_theme/icon_annotation.svg /usr/share/grafana/public/img/icons_light_theme/icon_annotation_alt.svg /usr/share/grafana/public/img/icons_light_theme/icon_apikeys.svg /usr/share/grafana/public/img/icons_light_theme/icon_cog.svg /usr/share/grafana/public/img/icons_light_theme/icon_dashboard.svg /usr/share/grafana/public/img/icons_light_theme/icon_dashboard_fav.svg /usr/share/grafana/public/img/icons_light_theme/icon_dashboard_list.svg /usr/share/grafana/public/img/icons_light_theme/icon_data_sources.svg /usr/share/grafana/public/img/icons_light_theme/icon_editor.svg /usr/share/grafana/public/img/icons_light_theme/icon_home.svg /usr/share/grafana/public/img/icons_light_theme/icon_import_dashboard.svg /usr/share/grafana/public/img/icons_light_theme/icon_json.svg /usr/share/grafana/public/img/icons_light_theme/icon_link.svg /usr/share/grafana/public/img/icons_light_theme/icon_new_dashboard.svg /usr/share/grafana/public/img/icons_light_theme/icon_notification_channels.svg /usr/share/grafana/public/img/icons_light_theme/icon_org.svg /usr/share/grafana/public/img/icons_light_theme/icon_playlist.svg /usr/share/grafana/public/img/icons_light_theme/icon_plugins.svg /usr/share/grafana/public/img/icons_light_theme/icon_preferences.svg /usr/share/grafana/public/img/icons_light_theme/icon_question.svg /usr/share/grafana/public/img/icons_light_theme/icon_shield.svg /usr/share/grafana/public/img/icons_light_theme/icon_sitemap.svg /usr/share/grafana/public/img/icons_light_theme/icon_snapshots.svg /usr/share/grafana/public/img/icons_light_theme/icon_team.svg /usr/share/grafana/public/img/icons_light_theme/icon_user.svg /usr/share/grafana/public/img/icons_light_theme/icon_variable.svg /usr/share/grafana/public/img/icons_light_theme/icon_viewer.svg /usr/share/grafana/public/img/icons_light_theme/icon_zoom_out.svg /usr/share/grafana/public/img/light.png /usr/share/grafana/public/img/load.gif /usr/share/grafana/public/img/load_big.gif /usr/share/grafana/public/img/loading-pulse.svg /usr/share/grafana/public/img/logo_transparent_200x.png /usr/share/grafana/public/img/logo_transparent_200x75.png /usr/share/grafana/public/img/logo_transparent_400x.png /usr/share/grafana/public/img/mixed_styles.png /usr/share/grafana/public/img/mstile-150x150.png /usr/share/grafana/public/img/online.svg /usr/share/grafana/public/img/page_header_line.png /usr/share/grafana/public/img/plugin-default-logo_dark.svg /usr/share/grafana/public/img/plugin-default-logo_light.svg /usr/share/grafana/public/img/rendering_error.png /usr/share/grafana/public/img/rendering_limit.png /usr/share/grafana/public/img/rendering_plugin_not_installed.png /usr/share/grafana/public/img/rendering_timeout.png /usr/share/grafana/public/img/transparent.png /usr/share/grafana/public/img/user_profile.png /usr/share/grafana/public/img/warn-tiny.svg /usr/share/grafana/public/img/warn.svg /usr/share/grafana/public/robots.txt /usr/share/grafana/public/sass/_grafana.scss /usr/share/grafana/public/sass/_old_responsive.scss /usr/share/grafana/public/sass/_variables.dark.scss /usr/share/grafana/public/sass/_variables.light.scss /usr/share/grafana/public/sass/_variables.scss /usr/share/grafana/public/sass/base/_code.scss /usr/share/grafana/public/sass/base/_font_awesome.scss /usr/share/grafana/public/sass/base/_fonts.scss /usr/share/grafana/public/sass/base/_forms.scss /usr/share/grafana/public/sass/base/_grafana_icons.scss /usr/share/grafana/public/sass/base/_grid.scss /usr/share/grafana/public/sass/base/_icons.scss /usr/share/grafana/public/sass/base/_normalize.scss /usr/share/grafana/public/sass/base/_reboot.scss /usr/share/grafana/public/sass/base/_type.scss /usr/share/grafana/public/sass/base/font-awesome/_animated.scss /usr/share/grafana/public/sass/base/font-awesome/_bordered-pulled.scss /usr/share/grafana/public/sass/base/font-awesome/_core.scss /usr/share/grafana/public/sass/base/font-awesome/_fixed-width.scss /usr/share/grafana/public/sass/base/font-awesome/_icons.scss /usr/share/grafana/public/sass/base/font-awesome/_larger.scss /usr/share/grafana/public/sass/base/font-awesome/_list.scss /usr/share/grafana/public/sass/base/font-awesome/_mixins.scss /usr/share/grafana/public/sass/base/font-awesome/_path.scss /usr/share/grafana/public/sass/base/font-awesome/_rotated-flipped.scss /usr/share/grafana/public/sass/base/font-awesome/_screen-reader.scss /usr/share/grafana/public/sass/base/font-awesome/_stacked.scss /usr/share/grafana/public/sass/base/font-awesome/_variables.scss /usr/share/grafana/public/sass/components/_alerts.scss /usr/share/grafana/public/sass/components/_buttons.scss /usr/share/grafana/public/sass/components/_cards.scss /usr/share/grafana/public/sass/components/_code_editor.scss /usr/share/grafana/public/sass/components/_color_picker.scss /usr/share/grafana/public/sass/components/_dashboard_grid.scss /usr/share/grafana/public/sass/components/_dashboard_list.scss /usr/share/grafana/public/sass/components/_dashboard_settings.scss /usr/share/grafana/public/sass/components/_delete_button.scss /usr/share/grafana/public/sass/components/_description-picker.scss /usr/share/grafana/public/sass/components/_drop.scss /usr/share/grafana/public/sass/components/_dropdown.scss /usr/share/grafana/public/sass/components/_empty_list_cta.scss /usr/share/grafana/public/sass/components/_filter-controls.scss /usr/share/grafana/public/sass/components/_filter-list.scss /usr/share/grafana/public/sass/components/_filter-table.scss /usr/share/grafana/public/sass/components/_footer.scss /usr/share/grafana/public/sass/components/_form_select_box.scss /usr/share/grafana/public/sass/components/_gf-form.scss /usr/share/grafana/public/sass/components/_infobox.scss /usr/share/grafana/public/sass/components/_json_explorer.scss /usr/share/grafana/public/sass/components/_jsontree.scss /usr/share/grafana/public/sass/components/_modals.scss /usr/share/grafana/public/sass/components/_navbar.scss /usr/share/grafana/public/sass/components/_navs.scss /usr/share/grafana/public/sass/components/_old_stuff.scss /usr/share/grafana/public/sass/components/_page_header.scss /usr/share/grafana/public/sass/components/_panel_add_panel.scss /usr/share/grafana/public/sass/components/_panel_alertlist.scss /usr/share/grafana/public/sass/components/_panel_dashlist.scss /usr/share/grafana/public/sass/components/_panel_gettingstarted.scss /usr/share/grafana/public/sass/components/_panel_graph.scss /usr/share/grafana/public/sass/components/_panel_heatmap.scss /usr/share/grafana/public/sass/components/_panel_pluginlist.scss /usr/share/grafana/public/sass/components/_panel_singlestat.scss /usr/share/grafana/public/sass/components/_panel_table.scss /usr/share/grafana/public/sass/components/_panel_text.scss /usr/share/grafana/public/sass/components/_popper.scss /usr/share/grafana/public/sass/components/_query_editor.scss /usr/share/grafana/public/sass/components/_query_part.scss /usr/share/grafana/public/sass/components/_row.scss /usr/share/grafana/public/sass/components/_scrollbar.scss /usr/share/grafana/public/sass/components/_search.scss /usr/share/grafana/public/sass/components/_settings_permissions.scss /usr/share/grafana/public/sass/components/_shortcuts.scss /usr/share/grafana/public/sass/components/_sidemenu.scss /usr/share/grafana/public/sass/components/_slate_editor.scss /usr/share/grafana/public/sass/components/_submenu.scss /usr/share/grafana/public/sass/components/_switch.scss /usr/share/grafana/public/sass/components/_tabbed_view.scss /usr/share/grafana/public/sass/components/_tables_lists.scss /usr/share/grafana/public/sass/components/_tabs.scss /usr/share/grafana/public/sass/components/_tags.scss /usr/share/grafana/public/sass/components/_tagsinput.scss /usr/share/grafana/public/sass/components/_timepicker.scss /usr/share/grafana/public/sass/components/_tooltip.scss /usr/share/grafana/public/sass/components/_typeahead.scss /usr/share/grafana/public/sass/components/_user-picker.scss /usr/share/grafana/public/sass/components/_view_states.scss /usr/share/grafana/public/sass/components/edit_sidemenu.scss /usr/share/grafana/public/sass/fonts.scss /usr/share/grafana/public/sass/grafana.dark.scss /usr/share/grafana/public/sass/grafana.light.scss /usr/share/grafana/public/sass/icons.json /usr/share/grafana/public/sass/layout/_lists.scss /usr/share/grafana/public/sass/layout/_page.scss /usr/share/grafana/public/sass/mixins/_animations.scss /usr/share/grafana/public/sass/mixins/_breakpoints.scss /usr/share/grafana/public/sass/mixins/_buttons.scss /usr/share/grafana/public/sass/mixins/_drop_element.scss /usr/share/grafana/public/sass/mixins/_forms.scss /usr/share/grafana/public/sass/mixins/_grid-framework.scss /usr/share/grafana/public/sass/mixins/_grid.scss /usr/share/grafana/public/sass/mixins/_hover.scss /usr/share/grafana/public/sass/mixins/_mixins.scss /usr/share/grafana/public/sass/pages/_admin.scss /usr/share/grafana/public/sass/pages/_alerting.scss /usr/share/grafana/public/sass/pages/_dashboard.scss /usr/share/grafana/public/sass/pages/_errorpage.scss /usr/share/grafana/public/sass/pages/_explore.scss /usr/share/grafana/public/sass/pages/_history.scss /usr/share/grafana/public/sass/pages/_login.scss /usr/share/grafana/public/sass/pages/_playlist.scss /usr/share/grafana/public/sass/pages/_plugins.scss /usr/share/grafana/public/sass/pages/_signup.scss /usr/share/grafana/public/sass/pages/_styleguide.scss /usr/share/grafana/public/sass/utils/_angular.scss /usr/share/grafana/public/sass/utils/_flex.scss /usr/share/grafana/public/sass/utils/_spacings.scss /usr/share/grafana/public/sass/utils/_utils.scss /usr/share/grafana/public/sass/utils/_validation.scss /usr/share/grafana/public/sass/utils/_widths.scss /usr/share/grafana/public/test/core/utils/version_test.ts /usr/share/grafana/public/test/index.ts /usr/share/grafana/public/test/jest-setup.ts /usr/share/grafana/public/test/jest-shim.ts /usr/share/grafana/public/test/lib/common.ts /usr/share/grafana/public/test/mocks/angular.ts /usr/share/grafana/public/test/mocks/backend_srv.ts /usr/share/grafana/public/test/mocks/common.ts /usr/share/grafana/public/test/mocks/dashboard-mock.js /usr/share/grafana/public/test/specs/helpers.ts /usr/share/grafana/public/vendor/angular-other/angular-strap.js /usr/share/grafana/public/vendor/angular-other/datepicker.js /usr/share/grafana/public/vendor/angular-other/timepicker.js /usr/share/grafana/public/vendor/angular-ui/ui-bootstrap-tpls.js /usr/share/grafana/public/vendor/bootstrap/bootstrap.js /usr/share/grafana/public/vendor/css/rc-cascader.scss /usr/share/grafana/public/vendor/css/spectrum.css /usr/share/grafana/public/vendor/css/timepicker.css /usr/share/grafana/public/vendor/flot/jquery.flot.crosshair.js /usr/share/grafana/public/vendor/flot/jquery.flot.dashes.js /usr/share/grafana/public/vendor/flot/jquery.flot.fillbelow.js /usr/share/grafana/public/vendor/flot/jquery.flot.fillbetween.js /usr/share/grafana/public/vendor/flot/jquery.flot.gauge.js /usr/share/grafana/public/vendor/flot/jquery.flot.js /usr/share/grafana/public/vendor/flot/jquery.flot.pie.js /usr/share/grafana/public/vendor/flot/jquery.flot.selection.js /usr/share/grafana/public/vendor/flot/jquery.flot.stack.js /usr/share/grafana/public/vendor/flot/jquery.flot.stackpercent.js /usr/share/grafana/public/vendor/flot/jquery.flot.time.js /usr/share/grafana/public/vendor/jquery-ui/custom.js /usr/share/grafana/public/vendor/plugin-css/css.js /usr/share/grafana/public/vendor/plugin-text/text.js /usr/share/grafana/public/vendor/spectrum.js /usr/share/grafana/public/vendor/tagsinput/bootstrap-tagsinput.js /usr/share/grafana/public/views/error.html /usr/share/grafana/public/views/index.html /usr/share/grafana/public/views/index.template.html /usr/share/grafana/scripts/build /usr/share/grafana/scripts/circle-test-backend.sh /usr/share/grafana/scripts/circle-test-frontend.sh /usr/share/grafana/scripts/grunt /usr/share/grafana/scripts/import_many_dashboards.sh /usr/share/grafana/scripts/tag_release.sh /usr/share/grafana/scripts/trigger_docker_build.sh /usr/share/grafana/scripts/trigger_grafana_packer.sh /usr/share/grafana/scripts/trigger_windows_build.sh /usr/share/grafana/scripts/webpack /usr/share/grafana/tools/phantomjs/phantomjs /usr/share/grafana/tools/phantomjs/render.js
grafana ab Version 7.x
Nachfolgende Abghängigkeiten sind ab Grafana Version 7.x zusätzlich noch zu installieren, damit das spätere plugin lauffähig ist:
# yum install libXcomposite libXdamage libXtst cups libXScrnSaver pango atk adwaita-cursor-theme adwaita-icon-theme at at-spi2-atk at-spi2-core cairo-gobject colord-libs dconf desktop-file-utils ed emacs-filesystem gdk-pixbuf2 glib-networking gnutls gsettings-desktop-schemas gtk-update-icon-cache gtk3 hicolor-icon-theme jasper-libs json-glib libappindicator-gtk3 libdbusmenu libdbusmenu-gtk3 libepoxy liberation-fonts liberation-narrow-fonts liberation-sans-fonts liberation-serif-fonts libgusb libindicator-gtk3 libmodman libproxy libsoup libwayland-cursor libwayland-egl libxkbcommon m4 mailx nettle patch psmisc redhat-lsb-core redhat-lsb-submod-security rest spax time trousers xdg-utils xkeyboard-config
HINWEIS - Möglicherweise sind viele der oben genannten rpm-Pakete bereits installiert!
HINWEIS - Der Vollständigkeit halber, sind hier alle Abhängigkeiten aufgelistet.
grafana-image-renderer ab Version 7.x
Das Plugin grafana-image-renderer muss ab der Grafana Version 7.x, mit nachfolgendem Befehl, installiert werden, damit Grafiken in Icinga gerendert werden können:
# grafana-cli plugins install grafana-image-renderer installing grafana-image-renderer @ 2.0.0 from: https://grafana.com/api/plugins/grafana-image-renderer/versions/2.0.0/download into: /var/lib/grafana/plugins ✔ Installed grafana-image-renderer successfully Restart grafana after installing plugins . <service grafana-server restart>
grafana.service: Dienst/Deamon-Start einrichten
Um Grafana, welches als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:
# systemctl daemon-reload
# systemctl enable grafana-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
Eine Überprüfung, ob beim Neustart des Server der grafana-server.service
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -e grafana-server.service grafana-server.service enabled
bzw.
# systemctl is-enabled grafana-server.service enabled
icingaweb2-module-graphite
Mit nachfolgendem Befehl kann die zuvor, wie unter nachfolgendem internen Link beschrieben
heruntergeladene Datei, in das Zielverzeichnis
- /usr/share/icingaweb2/modules
entpackt werden:
# unzip /tmp/master.zip -d /usr/share/icingaweb2/modules
Abschließend muss nun noch das durch das entpacken neu entstandene Verzeichnis mit nachfolgendem Befehl umbenannt werden:
# mv /usr/share/icingaweb2/modules/icingaweb2-module-grafana-master /usr/share/icingaweb2/modules/grafana
Konfiguration: grafana
Nachfolgende Konfigurationen basieren auf den Informationen unter nachfolgenden externen Links:
/etc/grafana/grafana.ini
Nachfolgende Konfigurationsdatei
/etc/grafana/grafana.ini
beinhaltete alle Konfigurationsdirektiven.
Nachfolgende die komplette Konfigurationsdatei:
##################### Grafana Configuration Example ##################### # # Everything has defaults so you only need to uncomment things you want to # change # possible values : production, development ;app_mode = production # instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty ;instance_name = ${HOSTNAME} #################################### Paths #################################### [paths] # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used) ;data = /var/lib/grafana # Temporary files in `data` directory older than given duration will be removed ;temp_data_lifetime = 24h # Directory where grafana can store logs ;logs = /var/log/grafana # Directory where grafana will automatically scan and look for plugins ;plugins = /var/lib/grafana/plugins # folder that contains provisioning config files that grafana will apply on startup and while running. ;provisioning = conf/provisioning #################################### Server #################################### [server] # Protocol (http, https, socket) ;protocol = http # The ip address to bind to, empty will bind to all interfaces ;http_addr = # The http port to use ;http_port = 3000 # The public facing domain name used to access grafana from a browser # Tachtler # default: ;domain = localhost domain = grafana.tachtler.net # Redirect to correct domain if host header does not match domain # Prevents DNS rebinding attacks ;enforce_domain = false # The full public facing url you use in browser, used for redirects and emails # If you use reverse proxy and sub path specify full url (with sub path) ;root_url = http://localhost:3000 # Log web requests ;router_logging = false # the path relative working path ;static_root_path = public # enable gzip ;enable_gzip = false # https certs & key file ;cert_file = ;cert_key = # Unix socket path ;socket = #################################### Database #################################### [database] # You can configure the database connection by specifying type, host, name, user and password # as separate properties or as on string using the url properties. # Either "mysql", "postgres" or "sqlite3", it's your choice ;type = sqlite3 ;host = 127.0.0.1:3306 ;name = grafana ;user = root # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""" ;password = # Use either URL or the previous fields to configure the database # Example: mysql://user:secret@host:port/database # Tachtler # default: ;url = url = mysql://grafanauser:geheim@db.idmz.tachtler.net:3306/grafana # For "postgres" only, either "disable", "require" or "verify-full" ;ssl_mode = disable # For "sqlite3" only, path relative to data_path setting ;path = grafana.db # Max idle conn setting default is 2 ;max_idle_conn = 2 # Max conn setting default is 0 (mean not set) ;max_open_conn = # Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours) ;conn_max_lifetime = 14400 # Set to true to log the sql calls and execution times. log_queries = #################################### Session #################################### [session] # Either "memory", "file", "redis", "mysql", "postgres", default is "file" ;provider = file # Provider config options # memory: not have any config yet # file: session dir path, is relative to grafana data_path # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana` # mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable ;provider_config = sessions # Session cookie name ;cookie_name = grafana_sess # If you use session in https only, default is false ;cookie_secure = false # Session life time, default is 86400 ;session_life_time = 86400 #################################### Data proxy ########################### [dataproxy] # This enables data proxy logging, default is false ;logging = false #################################### Analytics #################################### [analytics] # Server reporting, sends usage counters to stats.grafana.org every 24 hours. # No ip addresses are being tracked, only simple counters to track # running instances, dashboard and error counts. It is very helpful to us. # Change this option to false to disable reporting. ;reporting_enabled = true # Set to false to disable all checks to https://grafana.net # for new vesions (grafana itself and plugins), check is used # in some UI views to notify that grafana or plugin update exists # This option does not cause any auto updates, nor send any information # only a GET request to http://grafana.com to get latest versions ;check_for_updates = true # Google Analytics universal tracking code, only enabled if you specify an id here ;google_analytics_ua_id = #################################### Security #################################### [security] # default admin user, created on startup ;admin_user = admin # default admin password, can be changed before first start of grafana, or in profile settings ;admin_password = admin # used for signing ;secret_key = SW2YcwTIb9zpOOhoPsMm # Auto-login remember days ;login_remember_days = 7 ;cookie_username = grafana_user ;cookie_remember_name = grafana_remember # disable gravatar profile images ;disable_gravatar = false # data source proxy whitelist (ip_or_domain:port separated by spaces) ;data_source_proxy_whitelist = # disable protection against brute force login attempts ;disable_brute_force_login_protection = false #################################### Snapshots ########################### [snapshots] # snapshot sharing options ;external_enabled = true ;external_snapshot_url = https://snapshots-origin.raintank.io ;external_snapshot_name = Publish to snapshot.raintank.io # remove expired snapshot ;snapshot_remove_expired = true #################################### Dashboards History ################## [dashboards] # Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1 ;versions_to_keep = 20 #################################### Users ############################### [users] # disable user signup / registration ;allow_sign_up = true # Allow non admin users to create organizations ;allow_org_create = true # Set to true to automatically assign new users to the default organization (id 1) ;auto_assign_org = true # Default role new users will be automatically assigned (if disabled above is set to true) ;auto_assign_org_role = Viewer # Background text for the user field on the login page ;login_hint = email or username # Default UI theme ("dark" or "light") ;default_theme = dark # External user management, these options affect the organization users view ;external_manage_link_url = ;external_manage_link_name = ;external_manage_info = # Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard. ;viewers_can_edit = false [auth] # Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false ;disable_login_form = false # Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false ;disable_signout_menu = false # URL to redirect the user to after sign out ;signout_redirect_url = #################################### Anonymous Auth ########################## [auth.anonymous] # enable anonymous access # Tachtler # default: ;enabled = false enabled = true # specify organization name that should be used for unauthenticated users ;org_name = Main Org. # specify role for unauthenticated users ;org_role = Viewer #################################### Github Auth ########################## [auth.github] ;enabled = false ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email,read:org ;auth_url = https://github.com/login/oauth/authorize ;token_url = https://github.com/login/oauth/access_token ;api_url = https://api.github.com/user ;team_ids = ;allowed_organizations = #################################### Google Auth ########################## [auth.google] ;enabled = false ;allow_sign_up = true ;client_id = some_client_id ;client_secret = some_client_secret ;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email ;auth_url = https://accounts.google.com/o/oauth2/auth ;token_url = https://accounts.google.com/o/oauth2/token ;api_url = https://www.googleapis.com/oauth2/v1/userinfo ;allowed_domains = #################################### Generic OAuth ########################## [auth.generic_oauth] ;enabled = false ;name = OAuth ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email,read:org ;auth_url = https://foo.bar/login/oauth/authorize ;token_url = https://foo.bar/login/oauth/access_token ;api_url = https://foo.bar/user ;team_ids = ;allowed_organizations = ;tls_skip_verify_insecure = false ;tls_client_cert = ;tls_client_key = ;tls_client_ca = #################################### Grafana.com Auth #################### [auth.grafana_com] ;enabled = false ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email ;allowed_organizations = #################################### Auth Proxy ########################## [auth.proxy] ;enabled = false ;header_name = X-WEBAUTH-USER ;header_property = username ;auto_sign_up = true ;ldap_sync_ttl = 60 ;whitelist = 192.168.1.1, 192.168.2.1 #################################### Basic Auth ########################## [auth.basic] # Tachtler # default: ;enabled = true enabled = false #################################### Auth LDAP ########################## [auth.ldap] ;enabled = false ;config_file = /etc/grafana/ldap.toml ;allow_sign_up = true #################################### SMTP / Emailing ########################## [smtp] ;enabled = false ;host = localhost:25 ;user = # If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;""" ;password = ;cert_file = ;key_file = ;skip_verify = false ;from_address = admin@grafana.localhost ;from_name = Grafana # EHLO identity in SMTP dialog (defaults to instance_name) ;ehlo_identity = dashboard.example.com [emails] ;welcome_email_on_sign_up = false #################################### Logging ########################## [log] # Either "console", "file", "syslog". Default is console and file # Use space to separate multiple modes, e.g. "console file" ;mode = console file # Either "debug", "info", "warn", "error", "critical", default is "info" ;level = info # optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug ;filters = # For "console" mode only [log.console] ;level = # log line format, valid options are text, console and json ;format = console # For "file" mode only [log.file] ;level = # log line format, valid options are text, console and json ;format = text # This enables automated log rotate(switch of following options), default is true ;log_rotate = true # Max line number of single file, default is 1000000 ;max_lines = 1000000 # Max size shift of single file, default is 28 means 1 << 28, 256MB ;max_size_shift = 28 # Segment log daily, default is true ;daily_rotate = true # Expired days of log file(delete after max days), default is 7 ;max_days = 7 [log.syslog] ;level = # log line format, valid options are text, console and json ;format = text # Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used. ;network = ;address = # Syslog facility. user, daemon and local0 through local7 are valid. ;facility = # Syslog tag. By default, the process' argv[0] is used. ;tag = #################################### Alerting ############################ [alerting] # Disable alerting engine & UI features ;enabled = true # Makes it possible to turn off alert rule execution but alerting UI is visible ;execute_alerts = true # Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state) ;error_or_timeout = alerting # Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok) ;nodata_or_nullvalues = no_data # Alert notifications can include images, but rendering many images at the same time can overload the server # This limit will protect the server from render overloading and make sure notifications are sent out quickly ;concurrent_render_limit = 5 #################################### Explore ############################# [explore] # Enable the Explore section ;enabled = false #################################### Internal Grafana Metrics ########################## # Metrics available at HTTP API Url /metrics [metrics] # Disable / Enable internal metrics ;enabled = true # Publish interval ;interval_seconds = 10 # Send internal metrics to Graphite [metrics.graphite] # Enable by setting the address setting (ex localhost:2003) ;address = ;prefix = prod.grafana.%(instance_name)s. #################################### Distributed tracing ############ [tracing.jaeger] # Enable by setting the address sending traces to jaeger (ex localhost:6831) ;address = localhost:6831 # Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2) ;always_included_tag = tag1:value1 # Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote ;sampler_type = const # jaeger samplerconfig param # for "const" sampler, 0 or 1 for always false/true respectively # for "probabilistic" sampler, a probability between 0 and 1 # for "rateLimiting" sampler, the number of spans per second # for "remote" sampler, param is the same as for "probabilistic" # and indicates the initial sampling rate before the actual one # is received from the mothership ;sampler_param = 1 #################################### Grafana.com integration ########################## # Url used to import dashboards directly from Grafana.com [grafana_com] ;url = https://grafana.com #################################### External image storage ########################## [external_image_storage] # Used for uploading images to public servers so they can be included in slack/email messages. # you can choose between (s3, webdav, gcs, azure_blob, local) ;provider = [external_image_storage.s3] ;bucket = ;region = ;path = ;access_key = ;secret_key = [external_image_storage.webdav] ;url = ;public_url = ;username = ;password = [external_image_storage.gcs] ;key_file = ;bucket = ;path = [external_image_storage.azure_blob] ;account_name = ;account_key = ;container_name = [external_image_storage.local] # does not require any configuration [rendering] # Options to configure external image rendering server like https://github.com/grafana/grafana-image-renderer ;server_url = ;callback_url =
Erklärung zu den vorhergehenden Anpassugnen:
domain = grafana.tachtler.net
Im Bereich [server]
sollte eine Domäne für den Browser-Aufruf gesetzt werden.
url = mysql://grafanauser:geheim@db.idmz.tachtler.net:3306/grafana
Im Bereich [database]
soll die Nutzung von MariaDB anstelle von SQLite als direktes Datenbank-Backend für Grafana selbst gesetzt werden.
enabled = true
Im Bereich [auth.anonymous]
sollte für einen Zugriff aus der Web-Oberfläche von Icinga-Web ein anonymer Zugriff zugelassen werden.
enabled = false
Im Bereich [auth.basic]
sollte für einen Zugriff aus der Web-Oberfläche von Icinga-Web ein anonymer Zugriff zugelassen werden.
Konfiguration: MariaDB
grafana: Datenbank
Nachfolgende SQL-Datei kann z.B. im Verzeichnis /tmp
mit dem Namen
create_database_grafana.sql
erstellt werden, um die Neuanlage einer Datenbank mit dem Namen grafana
durchzuführen:
-- CREATE DATABASE grafana; CREATE DATABASE grafana;
Zur Ausführung der SQL-Datei kann nachfolgender Befehl genutzt werden, welcher jedoch die Kenntnis des root
-Passwort für die Datenbank voraussetzt!:
# /usr/bin/mysql -u root -p < create_database_grafana.sql Enter password:
* Das Erscheinen keiner Fehlermeldung, bedeutet die korrekte Ausführung des Befehls!
grafana: Benutzer/Rechte
Nachfolgende SQL-Datei kann z.B. im Verzeichnis /tmp
mit dem Namen
create_users_for_remote_access_to_database_grafana.sql
erstellt werden, um einen Benutzer für die Datenbank grafana
zu erstellen und diesen mit den benötigten rechten auszustatten:
-- Use database. USE mysql; -- Create new users. CREATE USER 'grafanauser'@'192.168.0.110' IDENTIFIED BY 'geheim'; CREATE USER 'grafanauser'@'server11.idmz.tachtler.net' IDENTIFIED BY 'geheim'; -- Grant privileges for database graphite to new users. GRANT ALL PRIVILEGES ON grafana.* TO 'grafanauser'@'192.168.0.110' IDENTIFIED BY 'geheim' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON grafana.* TO 'grafanauser'@'server11.idmz.tachtler.net' IDENTIFIED BY 'geheim' WITH GRANT OPTION; -- Make sure that priviliges are reloaded. FLUSH PRIVILEGES;
Zur Ausführung der SQL-Datei kann nachfolgender Befehl genutzt werden, welcher jedoch die Kenntnis des root
-Passwort für die Datenbank voraussetzt!:
# /usr/bin/mysql -u root -p < create_users_for_remote_access_to_database_grafana.sql Enter password:
* Das Erscheinen keiner Fehlermeldung, bedeutet die korrekte Ausführung des Befehls!
HINWEIS - Die Einrichtung der Tabellen erfolgt zu einem späteren Installationsschritt!
grafana: Erster Start
Der Grafana-Server kann mit nachfolgendem Befehle gestartet werden:
# systemctl start grafana-server.service
Mit nachfolgendem Befehl kann der Status des Grafana-Servers abgefragt werden:
# systemctl status grafana-server.service ● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-11-13 14:21:47 CET; 8s ago Docs: http://docs.grafana.org Main PID: 16687 (grafana-server) CGroup: /system.slice/grafana-server.service └─16687 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net systemd[1]: Started Grafana instance. Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Nov 13 14:21:47 server11.idmz.tachtler.net grafana-server[16687]: t=2018-11-1... Hint: Some lines were ellipsized, use -l to show in full.
icinga2: grafana
Bevor der Neustart von Icinga an dieser Stelle der Konfiguration durchgeführt werden soll, ist noch aktuell nachfolgendes inaktive Modul
grafana
mit nachfolgendem Befehl zu aktivieren:
# icingacli module enable grafana
grafana: Web-GUI
Zur Anmeldung an der Grafana-Web-GUI, muss diese im Browser wie folgt, durch Eingabe von nachfolgender URL aufgerufen werden:
Durch Auswahl des Symbols zur Anmeldung [Sign in], sollte nun nachfolgender Bildschirm erscheinen, in dem die Anmeldedaten eingegeben werden können:
Durch Eingabe der Standard-Zugangsdaten:
- email or username
admin
- password
admin
sollte nachfolgender Dialog angezeigt werden, in dem das Passwort für den Standard-Benutzer abgeändert werden kann [Save], oder dieser Schritt bis zur nächsten Anmeldung übersprungen werden kann [Skip]:
Egal, ob ein neues Passwort vergeben wird Dringend empfohlen !!!, oder der Schritt übersprungen wird, sollte nach diesem Dialog nachfolgender Bildschirm erscheinen:
grafana: Add data source
Nach der Auswahl von [Add data source] sollte nachfolgender Bildschirm erscheinen, in dem die Daten für den Zugriff auf die Graphite-Web-Seite erfasst und gespeichert werden müssen.
(Bildschirm-Seite 1)
(Bildschirm-Seite 2)
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
Name | Graphite-icinga2 |
HTTP | |
URL | [URL zur Graphite-Web-Seite] |
Auth | |
Basic Auth | ✘ (Falls z.B. ein .htaccess -Schutz besteht) |
Basic Auth Details | |
User | [Benutezname] (Falls z.B. ein .htaccess -Schutz besteht) |
Password | [Passwort] (Falls z.B. ein .htaccess -Schutz besteht) |
Nach dem Bestätigen der Eingaben durch drücken der [Save & Test]-Schaltfläche, sollte nachfolgender Bildschirm erscheinen, wann alles funktioniert hat:
grafana: Import dashboard
Nachfolgend sollen nun die „Dashboards“ für Icinga importiert werde.
Dazu können diese unter nachfolgendem externen Link heruntergeladen werden und beinhalten nachfolgende „Dashboards“:
Die nachfolgenden „Dashboards“ sollten mindestens importiert werden:
base-metrics.json
icinga2-default.json
Nachfolgende das direkte herunterladen:
base-metrcis.json
:
# wget -P /tmp https://raw.githubusercontent.com/Mikesch-mp/icingaweb2-module-grafana/master/dashboards/graphite/base-metrics.json --2018-11-14 07:36:42-- https://raw.githubusercontent.com/Mikesch-mp/icingaweb2-module-grafana/master/dashboards/graphite/base-metrics.json Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.112.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.112.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 40730 (40K) [text/plain] Saving to: ‘/tmp/base-metrics.json’ 100%[======================================>] 40,730 --.-K/s in 0.05s 2018-11-14 07:36:42 (819 KB/s) - ‘/tmp/base-metrics.json’ saved [40730/40730]
icinga2-default.json
:
# wget -P /tmp https://raw.githubusercontent.com/Mikesch-mp/icingaweb2-module-grafana/master/dashboards/graphite/icinga2-default.json --2018-11-14 07:38:29-- https://raw.githubusercontent.com/Mikesch-mp/icingaweb2-module-grafana/master/dashboards/graphite/icinga2-default.json Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.112.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.112.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 6204 (6.1K) [text/plain] Saving to: ‘/tmp/icinga2-default.json’ 100%[======================================>] 6,204 --.-K/s in 0.002s 2018-11-14 07:38:29 (2.42 MB/s) - ‘/tmp/icinga2-default.json’ saved [6204/6204]
Um die zuvor heruntergeladenen .json
-Dateien nach Grafana importieren zu können, muss in der Grafana-Web-Oberfläche auf das [+]-Symbol und dort unter [Create] - [Import] ausgewählt werden, wie nachfolgende Bildschirmkopie zeigt:
Anschliessend ist nachfolgender Import-Bildschirm zu sehen, über den die zuvor heruntergeladenen .json
-Dateien nun importiert werden können, in dem die [Upload .json File] genutzt wird:
base-metrcis.json
:
HINWEIS - Wichtig ist hier bei Options - icinga2-graphite - Graphite-icinga2
auszuwählen!
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
Options | |
icinga2-graphite | Graphite-icinga2 |
icinga2-default.json
:
HINWEIS - Wichtig ist hier bei Options - Graphite - Graphite-icinga2
auszuwählen!
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
Options | |
Graphite | Graphite-icinga2 |
HINWEIS - Das importierte „Dashboard“ - icinga2-default.json
muss noch angepasst werden !
Zur Anpassung des „Dashboars“ - icinga2-default.json
ist dies Aufzurufen und unter dem [Zahnradsymbol/Settings] | [Variables] | [$hostname] sind nachfolgende Änderungen durchzuführen, wie der folgende Bildschirmausschnitt zeigt:
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
General | |
Type | Query |
Hide | [Leer] |
Query Options | |
Data source | Graphite-icinga2 |
Refresh | On Dashboard Load |
Query | icinga2.* |
Zum Abschluss ist hier die Schaltfläche [Update] zum Speichern der vorhergehenden Änderungen zu drücken.
Zur Anpassung des „Dashboars“ - icinga2-default.json
ist dies Aufzurufen und unter dem [Zahnradsymbol/Settings] | [Variables] | [$service] sind nachfolgende Änderungen durchzuführen, wie der folgende Bildschirmausschnitt zeigt:
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
General | |
Type | Query |
Hide | [Leer] |
Query Options | |
Data source | Graphite-icinga2 |
Refresh | On Dashboard Load |
Query | icinga2.$hostname*.*.* |
Zum Abschluss ist hier die Schaltfläche [Update] zum Speichern der vorhergehenden Änderungen zu drücken.
Zur Anpassung des „Dashboars“ - icinga2-default.json
ist dies Aufzurufen und unter dem [Zahnradsymbol/Settings] | [Variables] | [$command] sind nachfolgende Änderungen durchzuführen, wie der folgende Bildschirmausschnitt zeigt:
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
General | |
Type | Query |
Hide | [Leer] |
Query Options | |
Data source | Graphite-icinga2 |
Refresh | On Dashboard Load |
Query | icinga2.$hostname*.*.$service.* |
Zum Abschluss ist hier die Schaltfläche [Update] zum Speichern der vorhergehenden Änderungen zu drücken.
HINWEIS - Zum Abschluss der kompletten Änderungen ist die Schaltfläche [Save] zu drücken !!!
grafana: Panel: hostalive
Damit auch die Anzeige des „hostalive“ innerhalb von Icinga durch Grafana durchgeführt werden kann, sind nachfolgende Konfigurationen in Grafana erforderlich, da dies nicht durch das icinga2-default
-Panel abgedeckt wird.
Die Einfachste Variante ist, aus dem „Dashboard“ - base-metrcis
das Panel „Hostalive“ in das „Dashboard“ - icinga2-default
herüber zu kopieren.
Um dies zu tun, ist es erforderlich auf das „Dashboard“ - base-metrcis
zu wechseln und dort auf das „Panel“ - Hostalive
zu gehen, um mit den [Menüpunkten] | [More…] | [Copy] das „Panel“ - Hostalive
zu kopieren, wie nachfolgende Bildschirmkopie zeigt:
Anschliessend muss ein Wechsel auf das „Dashboard“ - icinga2-default
durchgeführt werden und die [Schaltfläche] mit dem Graphen-Symbol - [Add Panel] gedrückt werden, wie ebenfalls nachfolgende Bildschirmkopie zeigt:
In dem sich nun öffnenden Dialog, ist der Reiter [Paste] auszuwählen und die [Schaltfläche] mit dem grösseren Graphen-Symbol - [Hostalive] zu drücken, wie nachfolgend auf der Bildschirmkopie zu sehen ist:
Anschliessend kann das Panel wie folgt noch angepasst werden, in dem der [Menüpunkt] [Edit] aufgerufen wird, wie auf nachfolgender Bildschirmkopie dargestellt:
Hier können nun die individuellen Anpassungen durchgeführt werden, z.B. den Namen des „Panel“ in komplette Kleinschrift ändern. Zum Abschluss sollte das Symbol mit der Diskette - [Save dashboard] bedrückt werden, wie ebenfalls nachfolgende Bildschirmkopie zeigt:
Bevor, oder beim verlassen das aktuellen „Dashboard“ - icinga2-default
, ist es noch zwingend erforderlich die getroffenen Änderungen zu speichern, was im aufkommenden Dialog „Unsaved changes“ mit dem drücken der Schaltfläche [Save] abschliessen durchgeführt werden muss, wie nachfolgende Bildschirmkopie zeigt:
Bevor es an die Einbindung des neuen „Panels“ in Icinga geht, müsen wir noch die Panel-ID in Erfahrung bringen. Dazu kann im „Panel“ - hostalive - das [Menü] aufgrufen werden und die Schalfläche [Share] ausgewählt werden, in der und die URL die „Panel-ID“ preis gibt, wie nachfolgende Bildschirmkopie verdeutlicht:
* Quelle: Externer Link: Icinga Web 2 und icingaweb2-module-grafana von Marianne M. Spiller
icingaweb2: Grafana (Setup)
Nach der erfolgreichen Inbetriebnahme des Graphite-carbon
-Server, des Icinga-Servers und des Icinga-Web, kann nun die Web-Anwendung aufgerufen werden und die Konfiguration und Aktivierung von Grafana durchgeführt werden.
Bevor die Konfiguration von Grafana durchgeführt werden kann, ist es erforderlich sich über die Icinga-Web-Anwendung anzumelden.
Nach erfolgreicher Anmeldung an der Icinga-Web-Anwendung ist der Menüpunkt: Konfiguration | Module auszuwählen, wonach nachfolgende Ansicht zur Anzeige kommen sollte:
Durch die Auswahl des Module | grafana werden weitere Konfigurationen zum Modul grafana angezeigt, darunter auch den Reiter: Configuration:
Nach erfolgreicher Bearbeitung des Reiters Configuration und Speicher von dieser mit der Schaltfläche [Save Changes], sollte sich die Anzeige wie folgt verändert haben:
HINWEIS - Möglicherweise muss ab Grafana Version 7.x der Proxy Timeout auf 10 Sek. erhöht werden!
Der Wert für Default dashboard UID
kann durch einen kleinen Trick ermittelt werden, in dem auf dem entsprechendem „Dashboard“ beim entsprechendem „Graphen“ die Funktion [Share] aufgerufen wird, somit kann aus der dort enthaltenen und angezeigten URL die Default dashboard UID
herausgelesen werden. Siehe auch nachfolgende Bildschirmkopie:
* Quelle: Externer Link: Icinga Web 2 und icingaweb2-module-grafana von Marianne M. Spiller
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
Use Grafana v5 | ✘ |
Host | [URL zu Grafana] |
Protocol | [http oder https] |
Default dashboard UID | hier: gilKAKfsp |
Satasource Type | Graphite |
Grafana access | Proxy |
Enable Link | Ja |
Grafana ist nun konfiguriert!
Eine mögliche Ausgabe eines Grafana Graphen innerhalb der Icinga-Web-Anwendung könnte dann wie folgt aussehen:
icingaweb2: Add New Grafana Graph: hostalive
Nachdem unter nachfolgendem internen Link ein weiteres „Panel“ mit der Bezeichnung hostalive in Grafana auf dem „Dashboard“ - icinga2-default
erstellt wurden
muss dieses „Panel“ nun noch in der Icinga-Web-Anwendung eingebunden werden.
In der Icinga-Web-Anwendung muss nun der [Menüpunkt] | [Konfiguration] | [Grafana Graphs] aufgerufen werden und der Link [Add New Grafana Graph] angeklickt werden, wie nachfolgende Bildschirmkopie zeigt:
Anschliessend sind die benötigten Eingaben durchzuführen, wie nachfolgende Bildschirmkopie zeigt:
Nachfolgende Tabelle zeigt, welche Daten erfasst werden müssen:
Eintrag | Wert |
---|---|
Name | hostalive |
Dashboard name | icinga2-default |
Dashboard UID | hier: gilKAKfsp |
PanelId(s) | hier: 3 |
OrgqanuzationId | hier: 1 |
Graph height | 280 |
Graph width | 920 |
Eine mögliche Ausgabe eines Grafana Graphen für „hostalive“ innerhalb der Icinga-Web-Anwendung könnte dann wie folgt aussehen: