1
0
Fork 0

Compare commits

...

82 Commits

Author SHA1 Message Date
iamlokesh24 af1ce1ddb4
added lookup in init.sls for grafana (#44)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-212.ap-south-1.compute.internal>
2022-03-01 14:08:04 +01:00
Marcin 1d8fd0a106
Add user invite max lifetime duration parameter (#43)
* Add option to configure domain and root_url in grafana config

* Add external_image_storage S3 in grafana config

* Revert external_image_storage settings

* Update ldap.toml to work with salt 2018.3

See 8393560642/doc/topics/releases/2018.3.0.rst

* Add recurse option when creating grafana dirs.

Should not hurt if they are empty and can avoid issues when moving data between servers

* Make compatible with Salt 2019.2.0

* Change to items for py3 compat

Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>

* Add user_invite_max_lifetime_duration configuration parameter

Co-authored-by: abednarik <alejandro.bednarik@gmail.com>
Co-authored-by: Felipe Zipitria <fzipitria@perceptyx.com>
Co-authored-by: Nicolas Fernandez <nookynet@gmail.com>
2021-10-18 10:21:06 +02:00
Filip Pytloun b863646e71
Merge pull request #42 from scambra/patch-python3
fix for python3, items must be used instead of iteritems
2019-10-30 13:19:30 +01:00
Sergio Cambra 3877385b8e fix for python3, items must be used instead of iteritems 2019-10-30 13:01:22 +01:00
Filip Pytloun 4c811e1c02
Merge pull request #39 from syphernl/feature/repo_file
Add (optional) repo to be used
2019-03-04 11:11:53 +01:00
Filip Pytloun 60dc411a5e
Merge pull request #38 from syphernl/feature/salt_2019.2
Make compatible with Salt 2019.2.0
2019-03-04 11:10:51 +01:00
Frank Klaassen 5d6a42172c Add (optional) repo to be used 2019-03-04 08:11:05 +01:00
Frank Klaassen fe63e6756e Make compatible with Salt 2019.2.0 2019-03-04 08:05:32 +01:00
Filip Pytloun 72c889639c
Merge pull request #36 from beuss/master
server: add support for domain, protocol & root_url
2018-12-12 12:11:05 +01:00
Sébastien Le Ray f155f3c31a server: add support for domain, protocol & root_url 2018-12-11 16:34:16 +01:00
Michal Kobus a4dfe3a0d7 Update keepalived dashboard
Change-Id: I542686b2a92f8fa01fba884c7a829b992e487420
Related-bug: PROD-23880 (PROD:23880)
2018-11-06 15:19:50 +01:00
mcp-jenkins 99e724671f Merge "Change host selection for service" 2018-10-26 15:08:26 +00:00
Michal Kobus 04968e690f Change host selection for service
In case there is no data in heat
check hosts by API status (metric
not related to openstack logs).

Change-Id: Id8805d302fcb95881c6afac2e9e558dbf927c70b
Related-bug: PROD-23976 (PROD:23976)
2018-10-26 14:25:16 +02:00
Mateusz Matuszkowiak 221efb43c5 Splitted Contrail vrouter into v3 and v4 dashboards
Change-Id: I8b3be132e3416dce6e998f03f095efa1fecacf4f
Related-Bug: PROD-24340
2018-10-26 14:21:32 +02:00
mcp-jenkins e2d9068979 Merge "Updated k8s, calico dashboard for MCP infra" 2018-10-25 08:33:45 +00:00
Dmitry Kalashnik 6c91bd6cef Merge "Revert "Add grafana admin password management"" 2018-10-24 13:50:34 +00:00
Dmitry Kalashnik f84a283251 Revert "Add grafana admin password management"
This reverts commit 0bd35ea2f3.

Closes-Bug: PROD-24331
Change-Id: If1cd867e4253fc21ce2af8af1d638aab02bd6855
2018-10-24 13:11:07 +00:00
Mateusz Matuszkowiak 17cdf63803 Updated k8s, calico dashboard for MCP infra
Change-Id: Idaa6abdcbfda2ab143c29ab181cc7917adf47236
Related-Bug: PROD-23900
Related-Bug: PROD-24182
2018-10-24 14:25:46 +02:00
mcp-jenkins f2dd53204f Merge "Add grafana admin password management" 2018-10-17 10:09:50 +00:00
Dmitry Kalashnik 0bd35ea2f3 Add grafana admin password management
Change-Id: Ia706ca4d756ee26b0876bced24d6d961a64cb4ee
Closes-Bug: PROD-17909
2018-10-17 11:59:24 +04:00
Mateusz Matuszkowiak d214cd08b0 Added Edge Main for Edge Cloud monitoring
Change-Id: Ic83d6bb193aa3992eafbc71536966c1c413ff4a8
Closes-Bug: PROD-21828
2018-10-08 15:16:51 +02:00
Mateusz Matuszkowiak bac644f7b5 Fixed some expr when count in use
Change-Id: Ibd097f0b7b60ffd71f862d8125105d4b965a2831
Closes-Bug: PROD-23762
2018-10-08 12:32:26 +02:00
Dmitry Kalashnik 1dc8d94353 Fix expr for per backend sessions
haproxy_scur{sv="BACKEND"} gives you a sum for FORNTEND
Replace with sum per sv with server type

Regex matches 1st group for:

  ntw01-1
  ntw01
  etc..

sv_new contains clean hostname

Change-Id: I3143e7f495237bbe688130dd8b73ed0495286b58
Bug-Related: PROD-23548
2018-10-02 17:19:43 +04:00
Dmitry Kalashnik 23248a862c Fix dashboards metadata
Closes-Bug: PROD-23514

Change-Id: I17395c2a9a46d6526b707e2466482018170429fc
2018-09-28 17:12:50 +04:00
mcp-jenkins 9cbe044a30 Merge "Add Gnocchi datasource for Grafana" 2018-09-11 12:36:47 +00:00
Michal Kobus 2f77faae7f Add Gnocchi datasource for Grafana
Change-Id: I7a48be1b447b84f672e4462fde29cbe044613acd
Closes-bug: PROD-21747
2018-09-10 14:32:09 +02:00
Ildar Svetlov e48cfec7c1 Add Tenants visualization dashboard
Change-Id: Ibde5b7cafcd79c0da7e72de96dfeb88a3a16236a
Related-PROD: PROD-22819
2018-09-07 13:20:36 +04:00
Dmitry Kalashnik f26ff0fce5 Add all grafana dashboards into grafana formula
Change-Id: Iced67bc96c579883607bd446342132c0873148d7
PROD-Related: PROD-22139
2018-09-04 17:37:51 +04:00
Ondrej Smola 1973172e8a Merge "Add unit tests" 2018-07-19 13:43:32 +00:00
Oleksii Grudev c9af93ce61 Grafana prevent yaml from failing
When including /meta/salt.yml from outside of this
formula the yaml can fail if appropriate pillar elements are not
found. Changing syntax to eliminate this. Including the file
above is needed for generating minion orchestration config
for future use with salt orchestration methods

Change-Id: Ia3fb7eee7c6298d294f641232c8c7e8f8b5806af
Related-PROD: PROD-19973
2018-07-19 12:42:12 +03:00
Martin Polreich bafd257298 Add unit tests
Change-Id: I6530d29e834633665f21e330d23fd50471ce0046
2018-07-17 15:45:00 +02:00
Michal Kobus a0c95206e5 Dashboard rationalization
Change-Id: Ibc51a3c0839968678e930fbc7b88218988fc0dc2
Closes-bug: PROD-20091
2018-06-21 15:40:35 +02:00
Michal Kobus 758a110fa5 Dashboard rationalization
Change-Id: Id1f7d2719080456bc7ceb168cb32ee6cd4d4a800
Closes-bug: PROD-20082
2018-06-20 14:14:27 +02:00
Ildar Svetlov 2d26b366a1 Rework grafana.client state
- add 'parameters' section loaded from grains to pass parameters
into dashboard template
- pass context into json dashboard template

Change-Id: I5848c315abe6951b5572b4c63db2d847395ae725
Related-PROD: PROD-18535
2018-06-01 15:46:26 +04:00
Petr Michalec d1d13a4c1f
Merge pull request #32 from Morsicus/dev/fix_readme_sqlite
fix readme engine database sqlite3
2018-05-22 09:45:36 +02:00
Mickaël Fortunato f0d262c31a fix readme engine database sqlite3 2018-05-07 14:27:13 +02:00
Petr Michalec 64925dfbb4
Update metadata.yml with correct URL
Change-Id: I10085556e7fc54c279ac42c2daa8b1397773cfa3
2018-03-29 08:33:01 +02:00
Ildar Svetlov 52720eb1e5 Change Grafana dashboards since new metrics available
removed IO panel, because there are no io metrics anymore and
this panel is useless;
added general grafana panel with 4 new graphs:
count of organizations,
count of users,
count of playlists,
count of dashboards.

Related-Bug: PROD-18204
Change-Id: I92034621746803ea5e744c1a055d08dd32e71a90
2018-03-06 17:04:59 +04:00
Ildar Svetlov 627cbfddbb Enable Prometheus scraping metrics from Grafana metrics endpoint
Change-Id: Iefa86330cc9f23f7453a79979a8c34adab36a411
Related-Bug: PROD-18204
2018-03-06 15:52:15 +04:00
Filip Pytloun 15bdc66d02 Update Makefile 2018-02-15 15:13:12 +01:00
Petr Michalec f4dd16dba1
Remove salt-master, reclass from pkg dependencis
Change-Id: Ia0fe0d452dacff08fef12e9df6a893ec368384cd
2018-01-09 09:35:54 +01:00
Martin Polreich 1e62599ad1 Add prometheus main dashboard config
Change-Id: I594ce5914403d2fb7655b69262dfca61bef7cadf
2017-10-18 11:20:10 +00:00
Petr Michalec 75438bf474 Merge pull request #30 from Perceptyx/master
Add default file and custom path dir creation
2017-09-19 10:57:16 +02:00
Alejandro Bednarik 1aab527af3 Merge pull request #5 from Perceptyx/pid_file_dir
Include PID_FILE_DIR config
2017-09-14 11:59:05 -03:00
abednarik 2878e14395 Include PID_FILE_DIR config 2017-09-14 11:58:22 -03:00
Alejandro Bednarik 698c59aa66 Merge pull request #4 from Perceptyx/pid_file_config
Add pid_file config to defaults file
2017-09-14 11:31:24 -03:00
abednarik cce0a4c3b7 Add pid_file config to defaults file 2017-09-14 11:29:35 -03:00
abednarik 6566e96e22 Ensure custom paths are created and have correct permissions. 2017-08-07 14:30:22 -03:00
abednarik 69e22ffac2 Make grafana paths configurable. 2017-08-04 12:36:22 -03:00
Martin Polreich f91843bc99 Add Grafana dashboard for Prometheus
Change-Id: I6ca11df4fc10b24c9c28dbc77188d73eaace2071
2017-07-26 11:38:13 +00:00
Simon Pasquier ab3d122fd0 Add script to format dashboards
Change-Id: I1c34dad29ad5807603b547c504fcf81185ca2e55
2017-06-26 15:18:19 +02:00
Simon Pasquier f6e5544264 Manage dashboards only for the current datasource
This change adds a new 'datasource' parameter to the dashboard metadata.
This way, the Grafana client state will manage only the dashboards that
match with the deployed datasource (either InfluxDB or Prometheus). For
backward compatibility, the client will always manage the dashboards
that don't set this new parameter.

Change-Id: Iac323d756aff6ca4180f4b648a1d02692ebf292b
2017-05-24 10:33:54 +02:00
Tomáš Kukrál 2127f4e493 fix meta/salt with missing pillar
Change-Id: I714a6ecfe3d4e3014d31bf4009dd3e6fc46bc86e
2017-05-11 20:17:38 +00:00
Filip Pytloun a5cfac85d3 Merge pull request #27 from smolaon/patch-1
Put collector back to init
2017-05-11 17:11:28 +02:00
Ondrej Smola d77f5c70e2 Put collector back to init 2017-05-11 17:10:02 +02:00
Filip Pytloun 3a82ac8bf0 Fix grain structure
Change-Id: Icef4e4aaaadffbd9db81c32108e13d58051106f4
2017-05-11 11:31:11 +02:00
Filip Pytloun 67a022be4f Manage minion.d using support metadata
Change-Id: I37f1c26f8125d98bcbe8d5a105dd5abac9224b36
2017-05-03 15:29:12 +02:00
Swann Croiset 4931237ebc Fixes
Change-Id: I2992d1543bd09542239eefd9fd23434f1f374df2
2017-05-03 15:21:43 +02:00
Ales Komarek a89a9c1065 Merge "Allow to override the datasource name" 2017-05-03 07:59:33 +00:00
Filip Pytloun 44657188cf Manage grains using support metadata
Change-Id: I8ab61330338213b474ec372e911667f7255eafbd
2017-05-02 14:51:01 +02:00
Swann Croiset 9356e26822 Allow to override the datasource name
Change-Id: Ieeeace081771b4840959cceb66b9dea248030482
2017-05-02 14:00:09 +02:00
Ales Komarek 32bf75e7c8 Merge "Add a dashboard to show the uptime of services" 2017-03-24 13:33:43 +00:00
Simon Pasquier a4eef55e36 Fix typo in metadata/service/client/single.yml
Change-Id: I313ec796bdaf2d6acfc5816016c04f2ea6a34806
2017-03-21 14:27:31 +01:00
Swann Croiset dd65097f2b Fix the plugin installation
Change-Id: If4c1893ab7068687f597fa406d4a568af143520b
2017-03-21 11:37:56 +01:00
Guillaume Thouvenin f014d23f2d Add a dashboard to show the uptime of services
Change-Id: If7f4cca229b9ebb6fc1a247cc51092126284f80c
2017-03-20 09:28:20 +00:00
Guillaume Thouvenin 22c462b504 Allow the installation of Grafana plugins
Change-Id: I6eab0435fb169ed12c880af01ba1e76a06268825
2017-03-15 10:14:52 +01:00
Olivier Bourdon 308f9e4f0e Fix dashboard for matching environment name
Change-Id: I05ad28a3b10e5ba665f61f495beec3077a0f83eb
2017-02-28 13:13:35 +01:00
Guillaume Thouvenin 75f38cb940 Add local check for Grafana in Sensu
Change-Id: I4284ab5c06cf441be554f58ca95f3c507d2f5f60
2017-02-21 17:03:35 +01:00
Aleš Komárek 325e5c4ccd Merge pull request #25 from thouveng/build-main-dashboard-yaml
Provides a base panel to construct the main dashboard
2017-02-06 18:06:36 +01:00
Aleš Komárek 8084f408cf Merge pull request #26 from thouveng/sort-panel
Sort panels by name
2017-02-06 18:05:47 +01:00
Filip Pytloun 9e431b057e Unify Makefile, .gitignore and update readme 2017-02-02 13:02:03 +01:00
Guillaume Thouvenin 885c5fc79c Provides a base panel to construct the main dashboard
This patch adds a default panel that will be used when another service
will add a new panel into the main dashboard through grains. This is the
common part between all panels of the main dashboard.

It replaces the static main dashboard that has been removed.
2017-01-26 13:26:29 +01:00
Guillaume Thouvenin ab1a01bf65 Sort panels by name 2017-01-25 16:01:40 +01:00
pasquier-s 4dab23a099 Merge pull request #24 from thouveng/add_grafana_dashboard
Add a Grafana dashboard
2017-01-17 11:45:47 +01:00
Guillaume Thouvenin a03625b147 Add a Grafana dashboard 2017-01-17 09:28:36 +01:00
thouveng cfc61d2139 Merge pull request #22 from thouveng/improve-docs
Make more explicit the configuration of binding parameters
2016-12-13 14:32:39 +01:00
thouveng 852764d54f Merge pull request #23 from thouveng/servers_attributes_configuration
Allow the configuration of servers attributes
2016-12-13 14:20:06 +01:00
Guillaume Thouvenin 8c79aa4e1a Allow the configuration of servers attributes 2016-12-13 13:57:50 +01:00
Guillaume Thouvenin 54a1b74bc2 Make more explicit the configuration of binding parameters 2016-12-13 11:20:42 +01:00
thouveng b388042cd6 Fix issue when new keys are available in datasource (#21)
Fix issue when new keys are available in datasource
2016-12-12 16:53:38 +01:00
thouveng ceb52864dc Merge pull request #19 from thouveng/provide-main-dashboard-oldway
Pass the main dashboard through grains
2016-12-09 10:40:57 +01:00
Guillaume Thouvenin a8902b8c23 Pass the main dashboard through grains
This patch provides the main dashboard through grains. It is not the final
way to provide the main dashboard. It is more a workaround because we
don't know yet how to compose a dashboards with pieces split between
several formulas. We will probably use YAML pieces.
2016-12-09 10:27:54 +01:00
131 changed files with 89589 additions and 2442 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.kitchen
tests/build/
*.swp
*.pyc
.ropeproject

106
Makefile
View File

@ -1,12 +1,40 @@
DESTDIR=/
SALTENVDIR=/usr/share/salt-formulas/env
RECLASSDIR=/usr/share/salt-formulas/reclass
FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-]*')
FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-\_]*')
VERSION=$(shell grep version: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\.\-\_]*')
VERSION_MAJOR := $(shell echo $(VERSION)|cut -d . -f 1-2)
VERSION_MINOR := $(shell echo $(VERSION)|cut -d . -f 3)
NEW_MAJOR_VERSION ?= $(shell date +%Y.%m|sed 's,\.0,\.,g')
NEW_MINOR_VERSION ?= $(shell /bin/bash -c 'echo $$[ $(VERSION_MINOR) + 1 ]')
MAKE_PID := $(shell echo $$PPID)
JOB_FLAG := $(filter -j%, $(subst -j ,-j,$(shell ps T | grep "^\s*$(MAKE_PID).*$(MAKE)")))
ifneq ($(subst -j,,$(JOB_FLAG)),)
JOBS := $(subst -j,,$(JOB_FLAG))
else
JOBS := 1
endif
KITCHEN_LOCAL_YAML?=.kitchen.yml
KITCHEN_OPTS?="--concurrency=$(JOBS)"
KITCHEN_OPTS_CREATE?=""
KITCHEN_OPTS_CONVERGE?=""
KITCHEN_OPTS_VERIFY?=""
KITCHEN_OPTS_TEST?=""
all:
@echo "make install - Install into DESTDIR"
@echo "make lint - Run lint tests"
@echo "make test - Run tests"
@echo "make kitchen - Run Kitchen CI tests (create, converge, verify)"
@echo "make clean - Cleanup after tests run"
@echo "make release-major - Generate new major release"
@echo "make release-minor - Generate new minor release"
@echo "make changelog - Show changes since last release"
@echo "make test-model-validate - Run salt jsonschema validation"
install:
# Formula
@ -14,13 +42,87 @@ install:
cp -a $(FORMULANAME) $(DESTDIR)/$(SALTENVDIR)/
[ ! -d _modules ] || cp -a _modules $(DESTDIR)/$(SALTENVDIR)/
[ ! -d _states ] || cp -a _states $(DESTDIR)/$(SALTENVDIR)/ || true
[ ! -d _engines ] || cp -a _engines $(DESTDIR)/$(SALTENVDIR)/ || true
[ ! -d _grains ] || cp -a _grains $(DESTDIR)/$(SALTENVDIR)/ || true
# Metadata
[ -d $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) ] || mkdir -p $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
cp -a metadata/service/* $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
lint:
[ ! -d tests ] || (cd tests; ./run_tests.sh lint)
test:
[ ! -d tests ] || (cd tests; ./run_tests.sh)
test-model-validate:
# TODO make it actually fail
[ ! -d $(FORMULANAME)/schemas/ ] || (cd tests; ./run_tests.sh model-validate)
release-major: check-changes
@echo "Current version is $(VERSION), new version is $(NEW_MAJOR_VERSION)"
@[ $(VERSION_MAJOR) != $(NEW_MAJOR_VERSION) ] || (echo "Major version $(NEW_MAJOR_VERSION) already released, nothing to do. Do you want release-minor?" && exit 1)
echo "$(NEW_MAJOR_VERSION)" > VERSION
sed -i 's,version: .*,version: "$(NEW_MAJOR_VERSION)",g' metadata.yml
[ ! -f debian/changelog ] || dch -v $(NEW_MAJOR_VERSION) -m --force-distribution -D `dpkg-parsechangelog -S Distribution` "New version"
make genchangelog-$(NEW_MAJOR_VERSION)
(git add -u; git commit -m "Version $(NEW_MAJOR_VERSION)")
git tag -s -m $(NEW_MAJOR_VERSION) $(NEW_MAJOR_VERSION)
release-minor: check-changes
@echo "Current version is $(VERSION), new version is $(VERSION_MAJOR).$(NEW_MINOR_VERSION)"
echo "$(VERSION_MAJOR).$(NEW_MINOR_VERSION)" > VERSION
sed -i 's,version: .*,version: "$(VERSION_MAJOR).$(NEW_MINOR_VERSION)",g' metadata.yml
[ ! -f debian/changelog ] || dch -v $(VERSION_MAJOR).$(NEW_MINOR_VERSION) -m --force-distribution -D `dpkg-parsechangelog -S Distribution` "New version"
make genchangelog-$(VERSION_MAJOR).$(NEW_MINOR_VERSION)
(git add -u; git commit -m "Version $(VERSION_MAJOR).$(NEW_MINOR_VERSION)")
git tag -s -m $(VERSION_MAJOR).$(NEW_MINOR_VERSION) $(VERSION_MAJOR).$(NEW_MINOR_VERSION)
check-changes:
@git log --pretty=oneline --decorate $(VERSION)..HEAD | grep -Eqc '.*' || (echo "No new changes since version $(VERSION)"; exit 1)
changelog:
git log --pretty=short --invert-grep --grep="Merge pull request" --decorate $(VERSION)..HEAD
genchangelog: genchangelog-$(VERSION_MAJOR).$(NEW_MINOR_VERSION)
genchangelog-%:
$(eval NEW_VERSION := $(patsubst genchangelog-%,%,$@))
(echo "=========\nChangelog\n=========\n"; \
(echo $(NEW_VERSION);git tag) | sort -r | grep -E '^[0-9\.]+' | while read i; do \
cur=$$i; \
test $$i = $(NEW_VERSION) && i=HEAD; \
prev=`(echo $(NEW_VERSION);git tag)|sort|grep -E '^[0-9\.]+'|grep -B1 "$$cur\$$"|head -1`; \
echo "Version $$cur\n=============================\n"; \
git log --pretty=short --invert-grep --grep="Merge pull request" --decorate $$prev..$$i; \
echo; \
done) > CHANGELOG.rst
kitchen-check:
@[ -e $(KITCHEN_LOCAL_YAML) ] || (echo "Kitchen tests not available, there's no $(KITCHEN_LOCAL_YAML)." && exit 1)
kitchen: kitchen-check kitchen-create kitchen-converge kitchen-verify kitchen-list
kitchen-create: kitchen-check
kitchen create ${KITCHEN_OPTS} ${KITCHEN_OPTS_CREATE}
[ "$(shell echo $(KITCHEN_LOCAL_YAML)|grep -Eo docker)" = "docker" ] || sleep 120
kitchen-converge: kitchen-check
kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE} &&\
kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE}
kitchen-verify: kitchen-check
[ ! -d tests/integration ] || kitchen verify -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY}
[ -d tests/integration ] || kitchen verify ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY}
kitchen-test: kitchen-check
[ ! -d tests/integration ] || kitchen test -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST}
[ -d tests/integration ] || kitchen test ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST}
kitchen-list: kitchen-check
kitchen list
clean:
[ ! -x "$(shell which kitchen)" ] || kitchen destroy
[ ! -d .kitchen ] || rm -rf .kitchen
[ ! -d tests/build ] || rm -rf tests/build
[ ! -d build ] || rm -rf build
[ ! -d build ] || rm -rf build

View File

@ -13,18 +13,22 @@ Sample pillars
Server deployments
------------------
Server installed from system package
Server installed from system package and listening on 1.2.3.4:3000 (the default
is 0.0.0.0:3000)
.. code-block:: yaml
grafana:
server:
enabled: true
bind:
address: 1.2.3.4
port: 3000
admin:
user: admin
password: passwd
database:
engine: sqlite
engine: sqlite3
Server installed with PostgreSQL database
@ -151,6 +155,18 @@ Server with theme overrides
css_override:
source: salt://path.to.theme
Server with two additionals plugins. It requires to have access to the Internet.
.. code-block:: yaml
grafana:
server:
enabled: true
plugins:
grafana-piechart-panel:
enabled: true
grafana-example-app:
enabled: true
Collector setup
---------------
@ -323,3 +339,36 @@ Read more
* http://grafana.org/
* http://docs.grafana.org/reference/export_import/
Documentation and Bugs
======================
To learn how to install and update salt-formulas, consult the documentation
available online at:
http://salt-formulas.readthedocs.io/
In the unfortunate event that bugs are discovered, they should be reported to
the appropriate issue tracker. Use Github issue tracker for specific salt
formula:
https://github.com/salt-formulas/salt-formula-grafana/issues
For feature requests, bug reports or blueprints affecting entire ecosystem,
use Launchpad salt-formulas project:
https://launchpad.net/salt-formulas
You can also join salt-formulas-users team and subscribe to mailing list:
https://launchpad.net/~salt-formulas-users
Developers wishing to work on the salt-formulas projects should always base
their work on master branch and submit pull request against specific formula.
https://github.com/salt-formulas/salt-formula-grafana
Any questions or feedback is always welcome so feel free to join our IRC
channel:
#salt-formulas @ irc.freenode.net

View File

@ -128,13 +128,14 @@ def present(name,
# Build out all dashboard fields
new_dashboard = _inherited_dashboard(
dashboard, base_dashboards_from_pillar, ret)
new_dashboard['title'] = name
if not new_dashboard.get('title'):
new_dashboard['title'] = name
rows = new_dashboard.get('rows', [])
for i, row in enumerate(rows):
rows[i] = _inherited_row(row, base_rows_from_pillar, ret)
for row in rows:
panels = row.get('panels', [])
for i, panel in enumerate(panels):
for i, panel in enumerate(sorted(panels)):
panels[i] = _inherited_panel(panel, base_panels_from_pillar, ret)
_auto_adjust_panel_spans(new_dashboard)
_ensure_panel_ids(new_dashboard)
@ -578,7 +579,7 @@ def _dashboard_diff(_new_dashboard, _old_dashboard):
def _stripped(d):
'''Strip falsey entries.'''
ret = {}
for k, v in six.iteritems(d):
for k, v in six.items(d):
if v:
ret[k] = v
return ret

View File

@ -61,6 +61,9 @@ def present(name,
basic_auth=False,
basic_auth_user='',
basic_auth_password='',
mode=None,
domain='default',
project=None,
is_default=False,
profile='grafana'):
'''
@ -97,6 +100,15 @@ def present(name,
basic_auth_password
Optional - HTTP basic auth password.
mode
Optional - Gnocchi authentication mode.
domain
Optional - Gnocchi domain, defaults to "default".
project
Optional - Keystone user for Gnocchi.
is_default
Optional - Set data source as default. Default: False
'''
@ -113,6 +125,9 @@ def present(name,
basic_auth=basic_auth,
basic_auth_user=basic_auth_user,
basic_auth_password=basic_auth_password,
mode=mode,
domain=domain,
project=project,
is_default=is_default)
if datasource:
@ -194,21 +209,20 @@ def _get_datasource(profile, name):
for datasource in data:
if datasource['name'] == name:
return datasource
return None
def _get_headers(profile):
headers = {'Content-type': 'application/json'}
if profile.get('grafana_token', False):
if profile.get('grafana_token'):
headers['Authorization'] = 'Bearer {0}'.format(profile['grafana_token'])
return headers
def _get_auth(profile):
if profile.get('grafana_token', False):
if profile.get('grafana_token'):
return None
return requests.auth.HTTPBasicAuth(
@ -227,10 +241,13 @@ def _get_json_data(name,
basic_auth=False,
basic_auth_user='',
basic_auth_password='',
mode=None,
domain=None,
project=None,
is_default=False,
type_logo_url='public/app/plugins/datasource/influxdb/img/influxdb_logo.svg',
with_credentials=False):
return {
data = {
'name': name,
'type': type,
'url': url,
@ -245,6 +262,18 @@ def _get_json_data(name,
'typeLogoUrl': type_logo_url,
'withCredentials': with_credentials,
}
if data['type'] == 'gnocchixyz-gnocchi-datasource':
json_data = {}
for special in ['mode', 'domain', 'project', 'user', 'password']:
value = locals().get(special)
if value is not None:
if special == 'user':
json_data['username'] = value
else:
json_data[special] = value
if json_data:
data['jsonData'] = json_data
return data
def _diff(old, new):
@ -252,9 +281,11 @@ def _diff(old, new):
old = old.copy()
new = new.copy()
for key in old_keys:
if key == 'id' or key == 'orgId':
if key in ['id', 'orgId']:
del old[key]
elif old[key] == new[key]:
# New versions of Grafana can introduce new keys that are not present
# in _get_json_data.
elif key in new and old[key] == new[key]:
del old[key]
del new[key]
return {'old': old, 'new': new}

88
contrib/format.py Executable file
View File

@ -0,0 +1,88 @@
#!/usr/bin/python3
# Copyright 2016 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
import sys
import glob
import os
import json
def usage():
h = """
Format and sanitize Grafana dashboards
Usage: {} <DIRECTORY|FILE>
The program will:
* Sort keys alphabetically.
* Remove sections:
templating.list[].current
templating.list[].options
* Override the time entry to {{"from": "now-1h","to": "now"}}
* Enable the sharedCrosshair tooltip
* Increment the version number
WARNING: this script modifies directly the given file(s).
If a DIRECTORY is provided, all files with suffix '.json' are modified.
"""
print(h.format(sys.argv[0]))
if len(sys.argv) != 2:
usage()
sys.exit(1)
arg = sys.argv[1]
if os.path.isdir(arg):
path = "{}/*.json".format(arg)
elif os.path.isfile(arg):
path = arg
else:
print("'{}' no such file or directory".format(arg))
usage()
sys.exit(1)
for f in glob.glob(path):
data = None
absf = os.path.abspath(f)
with open(absf) as out:
data = json.load(out)
for k, v in data.items():
if k == 'annotations':
for anno in v.get('list', []):
anno['datasource'] = 'lma'
if k == 'templating':
variables = v.get('list', [])
for o in variables:
if o['type'] == 'query':
o['options'] = []
o['current'] = {}
o['refresh_on_load'] = True
data['time'] = {'from': 'now-1h', 'to': 'now'}
data['sharedCrosshair'] = True
data['refresh'] = '1m'
data['id'] = None
if data.get('version', None):
data['version'] = data['version'] + 1
else:
data['version'] = 1
with open(absf, 'w') as out:
out.write(json.dumps(data, indent=2, sort_keys=True))

2
debian/control vendored
View File

@ -10,6 +10,6 @@ Vcs-Git: https://github.com/tcpcloud/salt-formula-grafana.git
Package: salt-formula-grafana
Architecture: all
Depends: ${misc:Depends}, salt-master, reclass
Depends: ${misc:Depends}
Description: grafana Salt formula
Install and configure grafana server and relay.

View File

@ -1,16 +1,19 @@
{%- from "grafana/map.jinja" import client with context %}
{%- if client.get('enabled', False) %}
include:
- grafana.client.service
{%- for datasource_name, datasource in client.datasource.iteritems() %}
{%- set datasources = [] %}
{%- for datasource_name, datasource in client.datasource.items() %}
{%- do datasources.append(datasource.type) %}
grafana_client_datasource_{{ datasource_name }}:
grafana3_datasource.present:
- name: {{ datasource_name }}
- name: {{ datasource.name|default(datasource_name) }}
- type: {{ datasource.type }}
- url: http://{{ datasource.host }}:{{ datasource.get('port', 80) }}
{%- if datasource.port is defined %}
- url: {{ datasource.get('protocol', 'http') }}://{{ datasource.host }}:{{ datasource.port }}{{ datasource.get('url_path', '') }}
{%- else %}
- url: {{ datasource.get('protocol', 'http') }}://{{ datasource.host }}{{ datasource.get('url_path', '') }}
{%- endif %}
{%- if datasource.access is defined %}
- access: proxy
{%- endif %}
@ -24,16 +27,25 @@ grafana_client_datasource_{{ datasource_name }}:
{%- if datasource.database is defined %}
- database: {{ datasource.database }}
{%- endif %}
{%- if datasource.mode is defined %}
- mode: {{ datasource.mode }}
{%- if datasource.mode == 'keystone' %}
- domain: {{ datasource.get('domain', 'default') }}
- project: {{ datasource.get('project', 'service') }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- set raw_dict = {} %}
{%- set final_dict = {} %}
{%- set parameters = {} %}
{%- if client.remote_data.engine == 'salt_mine' %}
{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').items() %}
{%- if node_grains.grafana is defined %}
{%- set raw_dict = salt['grains.filter_by']({'default': raw_dict}, merge=node_grains.grafana.get('dashboard', {})) %}
{%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=node_grains.grafana.get('parameters', {})) %}
{%- endif %}
{%- endfor %}
{%- endif %}
@ -41,16 +53,19 @@ grafana_client_datasource_{{ datasource_name }}:
{%- if client.dashboard is defined %}
{%- set raw_dict = salt['grains.filter_by']({'default': raw_dict}, merge=client.dashboard) %}
{%- endif %}
{%- if client.parameters is defined %}
{%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=client.parameters) %}
{%- endif %}
{%- for dashboard_name, dashboard in raw_dict.iteritems() %}
{%- for dashboard_name, dashboard in raw_dict.items() %}
{%- if dashboard.get('format', 'yaml')|lower == 'yaml' %}
# Dashboards in JSON format are considered as blob
{%- set rows = [] %}
{%- for row_name, row in dashboard.get('row', {}).iteritems() %}
{%- for row_name, row in dashboard.get('row', {}).items() %}
{%- set panels = [] %}
{%- for panel_name, panel in row.get('panel', {}).iteritems() %}
{%- for panel_name, panel in row.get('panel', {}).items() %}
{%- set targets = [] %}
{%- for target_name, target in panel.get('target', {}).iteritems() %}
{%- for target_name, target in panel.get('target', {}).items() %}
{%- do targets.extend([target]) %}
{%- endfor %}
{%- do panel.update({'targets': targets}) %}
@ -65,23 +80,35 @@ grafana_client_datasource_{{ datasource_name }}:
{%- do final_dict.update({dashboard_name: dashboard}) %}
{%- endfor %}
{%- for dashboard_name, dashboard in final_dict.iteritems() %}
{%- for dashboard_name, dashboard in final_dict.items() %}
{%- if dashboard.datasource is not defined or dashboard.datasource in datasources %}
{%- if dashboard.get('enabled', True) %}
grafana_client_dashboard_{{ dashboard_name }}:
grafana3_dashboard.present:
- name: {{ dashboard_name }}
{%- if dashboard.get('format', 'yaml')|lower == 'json' %}
{%- import_json dashboard.template as dash %}
{%- import dashboard.template as dashboard_template with context %}
{%- set dash = dashboard_template|load_json %}
- dashboard: {{ dash|json }}
- dashboard_format: json
{%- else %}
- dashboard: {{ dashboard }}
{%- if dashboard.base_dashboards is defined %}
- base_dashboards_from_pillar: {{ dashboard.base_dashboards|yaml }}
{%- endif %}
{%- if dashboard.base_rows is defined %}
- base_rows_from_pillar: {{ dashboard.base_rows|yaml }}
{%- endif %}
{%- if dashboard.base_panels is defined %}
- base_panels_from_pillar: {{ dashboard.base_panels|yaml }}
{%- endif %}
{%- endif %}
{%- else %}
grafana_client_dashboard_{{ dashboard_name }}:
grafana3_dashboard.absent:
- name: {{ dashboard_name }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- endif %}

View File

@ -1,11 +0,0 @@
{%- from "grafana/map.jinja" import client with context %}
{%- if client.get('enabled', False) %}
/etc/salt/minion.d/_grafana.conf:
file.managed:
- source: salt://grafana/files/_grafana.conf
- template: jinja
- user: root
- group: root
{%- endif %}

View File

@ -1,52 +1,10 @@
{%- from "grafana/map.jinja" import collector with context %}
{%- if collector.get('enabled', False) %}
{%- if pillar.get('grafana', {}).get('collector', {}).get('enabled', False) %}
grafana_grains_dir:
file.directory:
- name: /etc/salt/grains.d
- mode: 700
- makedirs: true
- user: root
# This state is only used to map grains.collector pillar. Grains are now
# managed from salt.minion.grains so we will just include it in case it's
# executed explicitly
{%- set service_grains = {} %}
{# Loading the other service support metadata for localhost #}
{%- for service_name, service in pillar.iteritems() %}
{%- if service.get('_support', {}).get('grafana', {}).get('enabled', False) %}
{%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
{%- set grains_fragment_file = service_name+'/meta/grafana.yml' %}
{%- set grains_yaml = load_grains_file(grains_fragment_file)|load_yaml %}
{%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=grains_yaml) %}
{%- endif %}
{%- endfor %}
grafana_grain:
file.managed:
- name: /etc/salt/grains.d/grafana
- source: salt://grafana/files/grafana.grain
- template: jinja
- user: root
- mode: 600
- defaults:
service_grains:
grafana: {{ service_grains|yaml }}
- require:
- file: grafana_grains_dir
grafana_grains_file:
cmd.wait:
- name: cat /etc/salt/grains.d/* > /etc/salt/grains
- watch:
- file: grafana_grain
grafana_grains_publish:
module.run:
- name: mine.update
- watch:
- cmd: grafana_grains_file
include:
- salt.minion.grains
{%- endif %}

View File

@ -1,13 +0,0 @@
{%- from "grafana/map.jinja" import client with context %}
grafana_version: {{ client.server.get('version', 3) }}
grafana:
grafana_timeout: 3
{%- if client.server.token is defined %}
grafana_token: {{ client.server.token }}
{%- else %}
grafana_user: {{ client.server.user }}
grafana_password: {{ client.server.password }}
{%- endif %}
grafana_url: '{{ client.server.get('protocol', 'http') }}://{{ client.server.host }}:{{ client.server.get('port', 80) }}'

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,987 @@
{%- raw %}
{
"annotations": {
"list": []
},
"description": "CEPH OSD Status.",
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": null,
"links": [],
"refresh": "1m",
"rows": [
{
"collapse": false,
"height": "100px",
"panels": [
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 40, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": "prometheus",
"editable": true,
"error": false,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 6,
"interval": null,
"links": [],
"mappingType": 2,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
},
{
"from": "0",
"text": "DOWN",
"to": "0.99"
},
{
"from": "0.99",
"text": "UP",
"to": "1"
}
],
"span": 1,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "min(ceph_osdmap_num_up_osds{environment=\"$environment\"}) without (instance)",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "0,1",
"timeFrom": null,
"title": "Status",
"transparent": false,
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "DOWN",
"value": "0"
},
{
"op": "=",
"text": "UP",
"value": "1"
},
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 40, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": "prometheus",
"editable": true,
"error": false,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 8,
"interval": null,
"links": [],
"mappingType": 2,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
},
{
"from": "0",
"text": "OUT",
"to": "0.99"
},
{
"from": "0.99",
"text": "IN",
"to": "1"
}
],
"span": 1,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "min(ceph_osdmap_num_in_osds{environment=\"$environment\"}) without (instance)",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "0,1",
"timeFrom": null,
"title": "Available",
"transparent": false,
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "DOWN",
"value": "0"
},
{
"op": "=",
"text": "UP",
"value": "1"
},
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": "prometheus",
"editable": true,
"error": false,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 10,
"interval": null,
"links": [],
"mappingType": 2,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 1,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "min(ceph_osdmap_num_osds{environment=\"$environment\"}) without (instance)",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "0,1",
"timeFrom": null,
"title": "Total OSDs",
"transparent": false,
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "DOWN",
"value": "0"
},
{
"op": "=",
"text": "UP",
"value": "1"
},
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "New row",
"titleSize": "h6"
},
{
"collapse": false,
"height": 248,
"panels": [
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"rgba(50, 172, 45, 0.97)",
"rgba(237, 129, 40, 0.89)",
"rgba(245, 54, 54, 0.9)"
],
"datasource": "prometheus",
"editable": true,
"error": false,
"format": "percentunit",
"gauge": {
"maxValue": 1,
"minValue": 0,
"show": true,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 7,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "avg(ceph_osd_bytes_used{environment=\"$environment\"})/avg(ceph_osd_bytes)",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "0.6,0.8",
"timeFrom": null,
"title": "Utilization",
"transparent": false,
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 5,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/^Average.*/",
"fill": 0,
"stack": false
}
],
"spaceLength": 10,
"span": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "ceph_num_pg{environment=\"$environment\"}",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "Number of PGs - {{ host }}",
"refId": "A",
"step": 60
},
{
"expr": "avg(ceph_num_pg{environment=\"$environment\"})",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "Average Number of PGs in the Cluster",
"refId": "B",
"step": 60
}
],
"thresholds": [
{
"colorMode": "custom",
"line": true,
"lineColor": "rgba(216, 200, 27, 0.27)",
"op": "gt",
"value": 250
},
{
"colorMode": "custom",
"line": true,
"lineColor": "rgba(234, 112, 112, 0.22)",
"op": "gt",
"value": 300
}
],
"timeFrom": null,
"timeShift": null,
"title": "PGs",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "OSD",
"titleSize": "h6"
},
{
"collapse": false,
"height": 255,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 4,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(rate(ceph_apply_latency_avgcount{environment=\"$environment\"}[5m]))",
"format": "time_series",
"hide": false,
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "Apply Latency",
"metric": "ceph_apply_latency_avgcount",
"refId": "A",
"step": 60
},
{
"expr": "avg(rate(ceph_commit_latency_avgcount{environment=\"$environment\"}[5m]))",
"format": "time_series",
"hide": false,
"interval": "",
"intervalFactor": 1,
"legendFormat": "Commit Latency",
"refId": "B",
"step": 60
},
{
"expr": "avg(rate(ceph_apply_latency_avgcount{environment=\"$environment\"}[5m])) + avg(rate(ceph_commit_latency_avgcount[5m]))",
"format": "time_series",
"hide": false,
"intervalFactor": 2,
"legendFormat": "Write Latency",
"refId": "C",
"step": 120
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Latency",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": false
}
]
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 2,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_osd_bytes_avail{environment=\"$environment\"})",
"format": "time_series",
"hide": false,
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "Available",
"metric": "ceph_osd_avail_bytes",
"refId": "A",
"step": 60
},
{
"expr": "avg(ceph_osd_bytes_used{environment=\"$environment\"})",
"format": "time_series",
"interval": "$interval",
"intervalFactor": 1,
"legendFormat": "Used",
"metric": "ceph_osd_avail_bytes",
"refId": "B",
"step": 60
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "OSD Capacity",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "bytes",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "New row",
"titleSize": "h6"
},
{
"collapse": false,
"height": 250,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"fill": 1,
"id": 11,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_osdop_read{environment=\"$environment\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "read",
"refId": "A",
"step": 4
},
{
"expr": "avg(ceph_osdop_write{environment=\"$environment\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "write",
"refId": "B",
"step": 4
},
{
"expr": "avg(ceph_osdop_append{environment=\"$environment\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "append",
"refId": "C",
"step": 4
},
{
"expr": "avg(ceph_osdop_delete{environment=\"$environment\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "delete",
"refId": "D",
"step": 4
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "OSD ops",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ops",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [
"ceph",
"osd"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"auto": false,
"auto_count": 30,
"auto_min": "10s",
"current": {
"text": "1m",
"value": "1m"
},
"hide": 2,
"label": null,
"name": "interval",
"options": [
{
"selected": true,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "30m",
"value": "30m"
},
{
"selected": false,
"text": "1h",
"value": "1h"
},
{
"selected": false,
"text": "6h",
"value": "6h"
},
{
"selected": false,
"text": "12h",
"value": "12h"
},
{
"selected": false,
"text": "1d",
"value": "1d"
},
{
"selected": false,
"text": "7d",
"value": "7d"
},
{
"selected": false,
"text": "14d",
"value": "14d"
},
{
"selected": false,
"text": "30d",
"value": "30d"
}
],
"query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
"refresh": 2,
"type": "interval"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Ceph - OSD",
"version": 33
}
{%- endraw %}

View File

@ -0,0 +1,915 @@
{%- raw %}
{
"annotations": {
"list": []
},
"description": "Ceph Pools dashboard.",
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": null,
"links": [],
"refresh": "1m",
"rows": [
{
"collapse": false,
"height": 250,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"fill": 1,
"id": 13,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 12,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "ceph_pool_usage_bytes_used{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "Bytes used - {{name}}",
"metric": "ceph_pool_usage_bytes_used",
"refId": "A",
"step": 4
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Capacity Used Per Pool",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
},
{
"collapse": false,
"height": "250px",
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 4,
"grid": {},
"height": "",
"id": 2,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/^Total.*$/",
"fill": 0,
"linewidth": 4,
"stack": false
},
{
"alias": "/^Raw.*$/",
"color": "#BF1B00",
"fill": 0,
"linewidth": 4
}
],
"spaceLength": 10,
"span": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_pool_usage_max_avail{environment=\"$environment\", name=\"$pool\"}) - avg(ceph_pool_usage_bytes_used{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Avilable - $pool",
"metric": "ceph_pool_available_bytes",
"refId": "A",
"step": 60
},
{
"expr": "avg(ceph_pool_usage_bytes_used{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Used - $pool",
"metric": "ceph_pool",
"refId": "B",
"step": 60
},
{
"expr": "avg(ceph_pool_usage_max_avail{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Total - $pool",
"metric": "ceph_pool",
"refId": "C",
"step": 60
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Pool Storage",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "bytes",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
}
]
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"format": "percentunit",
"gauge": {
"maxValue": 1,
"minValue": 0,
"show": true,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 10,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "avg(ceph_pool_usage_bytes_used{environment=\"$environment\", name=\"$pool\"}) / avg(ceph_pool_usage_max_avail{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"refId": "A",
"step": 30
}
],
"thresholds": "",
"title": "Usage",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Pool: $pool",
"titleSize": "h6"
},
{
"collapse": false,
"height": "250px",
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"height": "",
"id": 7,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_pool_usage_objects{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Objects - $pool",
"refId": "A",
"step": 5
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Objects in Pool",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 4,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null as zero",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "avg(irate(ceph_pool_stats_read_op_per_sec{environment=\"$environment\", name=\"$pool\"}[3m]))",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Read - $pool",
"refId": "B",
"step": 60
},
{
"expr": "avg(irate(ceph_pool_stats_write_op_per_sec{environment=\"$environment\", name=\"$pool\"}[3m]))",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Write - $pool",
"refId": "A",
"step": 60
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "IOPS",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "none",
"label": "IOPS",
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"label": "IOPS",
"logBase": 1,
"max": null,
"min": 0,
"show": false
}
]
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 5,
"interval": "$interval",
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null as zero",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 12,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "avg(irate(ceph_pool_stats_read_bytes_sec{environment=\"$environment\", name=\"$pool\"}[3m]))",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Read Bytes - $pool",
"refId": "A",
"step": 60
},
{
"expr": "avg(irate(ceph_pool_stats_write_bytes_sec{environment=\"$environment\", name=\"$pool\"}[3m]))",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Written Bytes - $pool",
"refId": "B",
"step": 60
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Throughput",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "New row",
"titleSize": "h6"
},
{
"collapse": false,
"height": 250,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"description": "This is the capacity available in this pool, if all other pools stay at their current capacity. Depends on data protection method and available cluster capcity.",
"fill": 1,
"id": 11,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_pool_usage_max_avail{environment=\"$environment\", name=\"$pool\"})\n",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "Max available - $pool",
"metric": "ceph_pool_usage_max_avail",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Max Pool Capacity Available",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"description": "Size of current content of pool (usable).",
"fill": 1,
"id": 12,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ceph_pool_usage_bytes_used{environment=\"$environment\", name=\"$pool\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "Bytes used - $pool",
"metric": "ceph_pool_usage_bytes_used",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Pool capacity used",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [
"ceph",
"pools"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {},
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": "Pool",
"multi": false,
"name": "pool",
"options": [],
"query": "label_values(ceph_pool_usage_kb_used{environment=\"$environment\"}, name)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"auto": false,
"auto_count": 30,
"auto_min": "10s",
"current": {
"text": "1m",
"value": "1m"
},
"hide": 2,
"label": null,
"name": "interval",
"options": [
{
"selected": true,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "30m",
"value": "30m"
},
{
"selected": false,
"text": "1h",
"value": "1h"
},
{
"selected": false,
"text": "6h",
"value": "6h"
},
{
"selected": false,
"text": "12h",
"value": "12h"
},
{
"selected": false,
"text": "1d",
"value": "1d"
},
{
"selected": false,
"text": "7d",
"value": "7d"
},
{
"selected": false,
"text": "14d",
"value": "14d"
},
{
"selected": false,
"text": "30d",
"value": "30d"
}
],
"query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
"refresh": 2,
"type": "interval"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Ceph - Pools",
"version": 29
}
{%- endraw %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,174 @@
{% raw %}
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": null,
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1538993149250,
"links": [],
"panels": [
{
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 23,
"title": "Cloud status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "percentunit",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 5,
"w": 24,
"x": 0,
"y": 1
},
"id": 21,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": " UP",
"postfixFontSize": "80%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "environment",
"repeatDirection": "h",
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "count(procstat_running{environment=~\"$environment\",process_name=~\"hyperkube-kubelet\"} == 1)/count(procstat_running{environment=~\"$environment\",process_name=~\"hyperkube-kubelet\"})",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 40
}
],
"thresholds": "0.35,0.70",
"title": "Kubernetes node status@$environment",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [],
"valueName": "current"
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": {},
"datasource": null,
"hide": 0,
"includeAll": true,
"label": "environment",
"multi": true,
"name": "environment",
"options": [],
"query": "query_result(procstat_running)",
"refresh": 1,
"regex": ".*environment=\"(.+?.)\".*",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Edge Main",
"uid": null,
"version": 1
}
{% endraw %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,671 @@
{%- raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:143",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529426501345,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 40,
"panels": [],
"repeat": null,
"title": "General",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 0,
"y": 1
},
"id": 39,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_totals_dashboard{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Dashboards",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 12,
"y": 1
},
"id": 38,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_users{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Users",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 0,
"y": 5
},
"id": 37,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_playlists{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Playlists",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 12,
"y": 5
},
"id": 36,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_orgs{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Organizations",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 9
},
"id": 41,
"panels": [],
"repeat": null,
"title": "Resources",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 10
},
"id": 32,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 6,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "rate(process_cpu_seconds_total{environment=\"$environment\", job=\"grafana\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "usage",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU usage rate",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "Seconds / Second",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 10
},
"id": 33,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:208",
"expr": "process_resident_memory_bytes{environment=\"$environment\", job=\"grafana\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "RSS",
"refId": "A",
"step": 10
},
{
"$$hashKey": "object:209",
"expr": "process_virtual_memory_bytes{environment=\"$environment\", job=\"grafana\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "used",
"refId": "B",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:258",
"format": "bytes",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"$$hashKey": "object:259",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "3m",
"value": "3m"
},
"hide": 0,
"includeAll": false,
"label": "rate_interval",
"multi": false,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "2m",
"value": "2m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "5m",
"value": "5m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,2m,3m,5m,10m,15m",
"type": "custom"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Grafana",
"uid": null,
"version": 12
}
{%- endraw %}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,919 @@
{%- raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:53716",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"limit": 100,
"name": "Annotations & Alerts",
"showIn": 0,
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529677043482,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 6,
"panels": [],
"title": "Cluster Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 5,
"w": 4,
"x": 0,
"y": 1
},
"id": 9,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "80%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "min(openstack_api_check_status{environment=\"$environment\", name=\"heat\"})",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.5,0.5",
"title": "VIP API availability",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "avg"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "percentunit",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 5,
"w": 4,
"x": 4,
"y": 1
},
"id": 8,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": " UP",
"postfixFontSize": "80%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "sum(http_response_status{environment=\"$environment\", name=\"heat-api\"}) / count(http_response_status{environment=\"$environment\", name=\"heat-api\"})",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.3,0.6",
"title": "Hosts APIs availability",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "avg"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 5,
"w": 4,
"x": 8,
"y": 1
},
"id": 14,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "80%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "min(haproxy_active_servers{environment=\"$environment\", proxy=~\"heat.api\", sv=\"BACKEND\"})",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.35,0.7",
"title": "Haproxy Heat API backends",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "avg"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 6
},
"id": 19,
"panels": [],
"title": "Host API Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 0,
"y": 7
},
"id": 21,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"selected": false,
"text": "ctl01",
"value": "ctl01"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"$$hashKey": "object:53783",
"expr": "http_response_status{environment=\"$environment\", host=~\"$host\",name=\"heat-api\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.5,0.5",
"title": "Heat@$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 8,
"y": 7
},
"id": 22,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": null,
"repeatDirection": "h",
"repeatIteration": 1529677043482,
"repeatPanelId": 21,
"scopedVars": {
"host": {
"selected": false,
"text": "ctl02",
"value": "ctl02"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"$$hashKey": "object:53783",
"expr": "http_response_status{environment=\"$environment\", host=~\"$host\",name=\"heat-api\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.5,0.5",
"title": "Heat@$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 16,
"y": 7
},
"id": 23,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": null,
"repeatDirection": "h",
"repeatIteration": 1529677043482,
"repeatPanelId": 21,
"scopedVars": {
"host": {
"selected": false,
"text": "ctl03",
"value": "ctl03"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"$$hashKey": "object:53783",
"expr": "http_response_status{environment=\"$environment\", host=~\"$host\",name=\"heat-api\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.5,0.5",
"title": "Heat@$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 10
},
"id": 13,
"panels": [],
"repeat": null,
"title": "API Performance",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 11
},
"hideTimeOverride": false,
"id": 16,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": false,
"hideZero": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"minSpan": null,
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"repeatDirection": "v",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:53873",
"expr": "sum(rate(openstack_http_response_times_count{environment=\"$environment\", service=\"heat\",host=~\"$host\"}[$rate_interval])) by (http_status)",
"format": "time_series",
"hide": false,
"intervalFactor": 2,
"legendFormat": "{{ http_status }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Throughput@$host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transparent": false,
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ops",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 11
},
"id": 17,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": false,
"hideZero": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"repeatDirection": "v",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(openstack_http_response_times{environment=\"$environment\", service=\"heat\",quantile=\"0.9\",host=~\"^$host$\",http_status=~\"2..\"}) by (http_method)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{http_method}}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Latency@$host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"openstack"
],
"templating": {
"list": [
{
"allValue": null,
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": "prometheus",
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "host",
"options": [],
"query": "label_values(http_response_status{name=\"heat-api\"},host)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "3m",
"value": "3m"
},
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "5m",
"value": "5m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,3m,5m,10m,15m",
"type": "custom"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Heat",
"uid": null,
"version": 2
}
{%- endraw %}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,866 @@
{% raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:4846",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529505333807,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 8,
"panels": [],
"title": "Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 0,
"y": 1
},
"id": 10,
"interval": null,
"links": [],
"mappingType": 2,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
},
{
"from": "0",
"text": "Fail",
"to": "0.5"
},
{
"from": "0.5",
"text": "Warn",
"to": "0.8"
},
{
"from": "0.8",
"text": "OK",
"to": "1"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "count(up{environment=\"$environment\", job=\"influxdb_relay\"} == 1) / count(up{environment=\"$environment\", job=\"influxdb_relay\"})",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": "0.5,1",
"title": "Health",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "Fail",
"value": "0"
},
{
"op": "=",
"text": "",
"value": ""
}
],
"valueName": "avg"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 8,
"y": 1
},
"id": 12,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "count(up{environment=\"$environment\", job=\"influxdb_relay\"})",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": "",
"title": "Total",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "avg"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 8,
"x": 16,
"y": 1
},
"id": 11,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "count(up{environment=\"$environment\", job=\"influxdb_relay\"} == 1)",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": "",
"title": "Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "avg"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 4
},
"id": 5,
"panels": [],
"repeat": null,
"title": "Instance metrics",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 5
},
"id": 1,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": true,
"hideZero": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(influxdb_relay_requests_total{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "total @{{ host }}",
"refId": "A",
"step": 10
},
{
"expr": "rate(influxdb_relay_failed_requests_total{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "failed @{{ host }}",
"refId": "B",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Requests",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ops",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 5
},
"id": 2,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(influxdb_relay_received_points_total{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{host}}",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Received points",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "wps",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 12
},
"id": 6,
"panels": [],
"repeat": null,
"title": "Backend metrics",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 13
},
"id": 3,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": true,
"hideZero": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(influxdb_relay_backend_sent_bytes_total{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"legendFormat": "sent @{{host}} {{backend}} ",
"refId": "A",
"step": 10
},
{
"expr": "rate(influxdb_relay_backend_failed_bytes_total{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "failed @{{host}} {{backend}}",
"refId": "B",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "I/O",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 13
},
"id": 4,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": false,
"hideZero": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:4917",
"expr": "influxdb_relay_backend_buffer_bytes{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{host}} {{backend}}",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Buffer",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:4945",
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:4946",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"stacklight"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": null,
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "host",
"options": [],
"query": "label_values(influxdb_relay_backend_buffer_bytes{environment=\"$environment\"}, host)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": null,
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "backend",
"options": [],
"query": "label_values(influxdb_relay_backend_buffer_bytes{environment=\"$environment\"}, backend)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"auto": false,
"auto_count": 30,
"auto_min": "10s",
"current": {
"text": "3m",
"value": "3m"
},
"hide": 0,
"label": null,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "2m",
"value": "2m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "5m",
"value": "5m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,2m,3m,5m,10m,15m",
"refresh": 2,
"type": "interval"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "InfluxDB Relay",
"uid": null,
"version": 2
}
{% endraw %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,380 @@
{% raw %}
{
"annotations": {
"list": []
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": null,
"links": [],
"rows": [
{
"collapse": false,
"height": 333,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 0,
"fill": 1,
"id": 1,
"legend": {
"avg": false,
"current": true,
"max": false,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "bond_slave_failures{environment=\"$environment\", host=\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ bond}}: {{ interface }}",
"refId": "A",
"step": 2
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Bond slave failures count",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transparent": false,
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": 0,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"decimals": 0,
"fill": 1,
"id": 2,
"legend": {
"alignAsTable": false,
"avg": false,
"current": true,
"max": false,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "bond_status{environment=\"$environment\", host=\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ bond }}",
"refId": "A",
"step": 2
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Bond status",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": 0,
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
},
{
"collapse": false,
"height": 447,
"panels": [
{
"columns": [],
"datasource": "prometheus",
"fontSize": "100%",
"hideTimeOverride": false,
"id": 4,
"links": [],
"pageSize": null,
"scroll": true,
"showHeader": true,
"sort": {
"col": 0,
"desc": true
},
"span": 12,
"styles": [
{
"alias": "Time",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "Time",
"type": "date"
},
{
"alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"pattern": "__name__",
"thresholds": [],
"type": "hidden",
"unit": "short"
},
{
"alias": "",
"colorMode": "row",
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(26, 161, 12, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 0,
"pattern": "Value",
"thresholds": [
"1"
],
"type": "number",
"unit": "none"
},
{
"alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"pattern": "job",
"thresholds": [],
"type": "hidden",
"unit": "short"
},
{
"alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"decimals": 0,
"pattern": "/.*/",
"thresholds": [
""
],
"type": "number",
"unit": "none"
}
],
"targets": [
{
"expr": "bond_slave_status{environment=\"$environment\", host=\"$host\"}",
"format": "table",
"intervalFactor": 2,
"legendFormat": "",
"refId": "A",
"step": 2
}
],
"timeFrom": "1s",
"timeShift": null,
"title": "Bond slave status",
"transform": "table",
"transparent": false,
"type": "table"
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": false,
"title": "Dashboard Row",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {},
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "host",
"options": [],
"query": "label_values(bond_status{environment=\"$environment\"}, host)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-5m",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Bond",
"version": 25
}
{% endraw %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,965 @@
{% raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:12123",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"limit": 100,
"name": "Annotations & Alerts",
"showIn": 0,
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529576141459,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 21,
"panels": [],
"title": "Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 12,
"x": 0,
"y": 1
},
"id": 18,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"$$hashKey": "object:16734",
"name": "value to text",
"value": 1
},
{
"$$hashKey": "object:16735",
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 2,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"$$hashKey": "object:12486",
"selected": false,
"text": "prx01",
"value": "prx01"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"$$hashKey": "object:16641",
"expr": "nginx_up{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": "0.5,1",
"title": "Nginx@${host}",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"$$hashKey": "object:16737",
"op": "=",
"text": "N/A",
"value": "null"
},
{
"$$hashKey": "object:16738",
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"$$hashKey": "object:16739",
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 12,
"x": 12,
"y": 1
},
"id": 30,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"$$hashKey": "object:16734",
"name": "value to text",
"value": 1
},
{
"$$hashKey": "object:16735",
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 2,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": null,
"repeatDirection": "h",
"repeatIteration": 1529576141459,
"repeatPanelId": 18,
"scopedVars": {
"host": {
"$$hashKey": "object:12487",
"selected": false,
"text": "prx02",
"value": "prx02"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"$$hashKey": "object:16641",
"expr": "nginx_up{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": "0.5,1",
"title": "Nginx@${host}",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"$$hashKey": "object:16737",
"op": "=",
"text": "N/A",
"value": "null"
},
{
"$$hashKey": "object:16738",
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"$$hashKey": "object:16739",
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 4
},
"id": 16,
"panels": [],
"title": "Requests",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
"y": 5
},
"id": 4,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:12216",
"expr": "rate(nginx_requests{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ host }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Requests",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:12244",
"decimals": 0,
"format": "ops",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:12245",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 11
},
"id": 14,
"panels": [],
"title": "Connections",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "",
"fill": 1,
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
"y": 12
},
"id": 6,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"minSpan": 2,
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:12438",
"expr": "rate(nginx_accepts{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "accepted @{{ host }}",
"refId": "A"
},
{
"$$hashKey": "object:12439",
"expr": "rate(nginx_handled{environment=\"$environment\", host=~\"$host\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "handled @{{ host }}",
"refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Connection status",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:12408",
"decimals": 0,
"format": "ops",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:12409",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 6,
"w": 12,
"x": 0,
"y": 18
},
"id": 23,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:13079",
"expr": "nginx_active{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ host }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Active connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:13148",
"decimals": 0,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:13149",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 18
},
"id": 29,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:13804",
"expr": "nginx_waiting{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ host }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Waiting connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:13873",
"decimals": 0,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:13874",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 6,
"w": 12,
"x": 0,
"y": 24
},
"id": 25,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:13332",
"expr": "nginx_writing{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ host }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Writing connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:13401",
"decimals": 0,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:13402",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 24
},
"id": 27,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:13538",
"expr": "nginx_reading{environment=\"$environment\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ host }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Reading connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:13648",
"decimals": 0,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:13649",
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "All",
"value": [
"$__all"
]
},
"datasource": "default",
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "host",
"options": [],
"query": "label_values(nginx_up{environment=\"$environment\"}, host)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"auto": false,
"auto_count": 30,
"auto_min": "10s",
"current": {
"text": "3m",
"value": "3m"
},
"hide": 0,
"label": null,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "2m",
"value": "2m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,2m,3m,10m,15m",
"refresh": 2,
"type": "interval"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Nginx",
"uid": "",
"version": 1
}
{% endraw %}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,434 @@
{%- raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:40272",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"limit": 100,
"name": "Annotations & Alerts",
"showIn": 0,
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529672421700,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 4,
"panels": [],
"title": "CPU Usage",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"decimals": 1,
"format": "percentunit",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 1
},
"id": 2,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 3,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"$$hashKey": "object:40285",
"selected": true,
"text": "cmp002",
"value": "cmp002"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "scalar(system_load15{environment=\"$environment\", host=\"$host\"}) / max(openstack_nova_vcpus{environment=\"$environment\", hostname=\"$host\"})",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.85,0.95",
"title": "$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 4
},
"id": 81,
"panels": [],
"title": "RAM Usage",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"decimals": 1,
"format": "percentunit",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 5
},
"id": 82,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 3,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"$$hashKey": "object:40285",
"selected": true,
"text": "cmp002",
"value": "cmp002"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "max(openstack_nova_used_ram{environment=\"$environment\", hostname=\"$host\"} / openstack_nova_ram{environment=\"$environment\", hostname=\"$host\"})",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.85,0.95",
"title": "$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 8
},
"id": 234,
"panels": [],
"title": "Disk Usage",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"decimals": 1,
"format": "percentunit",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 9
},
"id": 235,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 3,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"$$hashKey": "object:40285",
"selected": true,
"text": "cmp002",
"value": "cmp002"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "max(openstack_nova_used_disk{environment=\"$environment\", hostname=\"$host\"} / openstack_nova_disk{environment=\"$environment\", hostname=\"$host\"})",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"refId": "A"
}
],
"thresholds": "0.85,0.95",
"title": "$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"openstack"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"text": "cmp002",
"value": [
"cmp002"
]
},
"datasource": "prometheus",
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "host",
"options": [],
"query": "label_values(openstack_nova_running_instances{environment=\"$environment\"}, hostname)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Nova - Hypervisor Overview",
"uid": null,
"version": 1
}
{%- endraw %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,991 @@
{%- raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:3956",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"limit": 100,
"name": "Annotations & Alerts",
"showIn": 0,
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1536224134023,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 38,
"panels": [],
"title": "Projects overview @ $project",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 1
},
"id": 36,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:4031",
"expr": "sum(libvirt_domain_info_virtual_cpus{environment=\"$environment\",project_name=~\"$project\"}) by (project_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{project_name}} total",
"refId": "A"
},
{
"$$hashKey": "object:4032",
"expr": "sum(rate(libvirt_domain_info_cpu_time_seconds_total{environment=\"$environment\",project_name=~\"$project\"}[$rate_interval])) by (project_name)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "{{project_name}} usage",
"refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 1
},
"id": 39,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(libvirt_domain_info_memory_usage_bytes{environment=\"$environment\",project_name=~\"$project\"}) by (project_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{project_name}}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory Usage",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 6
},
"id": 40,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(libvirt_domain_block_stats_read_bytes_total{environment=\"$environment\",project_name=~\"$project\"}[$rate_interval])) by (project_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{project_name}} read",
"refId": "A"
},
{
"expr": "sum(rate(libvirt_domain_block_stats_write_bytes_total{environment=\"$environment\",project_name=~\"$project\"}[$rate_interval])) by (project_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{project_name}} write",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Disks I/O",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 6
},
"id": 41,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/tx.*/",
"transform": "negative-Y"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(libvirt_domain_interface_stats_receive_bytes_total{environment=\"$environment\",project_name=~\"$project\"}[$rate_interval])) by (project_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{project_name}} rx",
"refId": "A"
},
{
"expr": "sum(rate(libvirt_domain_interface_stats_transmit_bytes_total{environment=\"$environment\",project_name=~\"$project\"}[$rate_interval])) by (project_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{project_name}} tx",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Network RX/TX",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 11
},
"id": 43,
"panels": [],
"title": "Users overview @ $user",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 12
},
"id": 44,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:4174",
"expr": "sum(libvirt_domain_info_virtual_cpus{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}) by (user_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{user_name}} total",
"refId": "A"
},
{
"$$hashKey": "object:4196",
"expr": "sum(rate(libvirt_domain_info_cpu_time_seconds_total{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}[$rate_interval])) by (user_name)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "{{user_name}} usage",
"refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 12
},
"id": 45,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(libvirt_domain_info_memory_usage_bytes{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}) by (user_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{user_name}}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory Usage",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 17
},
"id": 46,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(libvirt_domain_block_stats_read_bytes_total{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}[$rate_interval])) by (user_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{user_name}} read",
"refId": "A"
},
{
"expr": "sum(rate(libvirt_domain_block_stats_write_bytes_total{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}[$rate_interval])) by (user_name)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{user_name}} write",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Disks I/O",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 17
},
"id": 47,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sort": "current",
"sortDesc": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/tx.*/",
"transform": "negative-Y"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(libvirt_domain_interface_stats_receive_bytes_total{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}[$rate_interval])) by (user_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{user_name}} rx",
"refId": "A"
},
{
"expr": "sum(rate(libvirt_domain_interface_stats_transmit_bytes_total{environment=\"$environment\",project_name=~\"$project\",user_name=~\"$user\"}[$rate_interval])) by (user_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "{{user_name}} tx",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Network RX/TX",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"openstack"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "admin",
"value": [
"admin"
]
},
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": true,
"name": "project",
"options": [],
"query": "label_values(libvirt_domain_info_virtual_cpus{environment=\"$environment\"},project_name)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"selected": false,
"tags": [],
"text": "admin",
"value": [
"admin"
]
},
"datasource": "prometheus",
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "user",
"options": [],
"query": "label_values(libvirt_domain_info_virtual_cpus{environment=\"$environment\",project_name=~\"$project\"},user_name)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "3m",
"value": "3m"
},
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "rate_interval",
"options": [
{
"$$hashKey": "object:4409",
"selected": false,
"text": "1m",
"value": "1m"
},
{
"$$hashKey": "object:4410",
"selected": true,
"text": "3m",
"value": "3m"
},
{
"$$hashKey": "object:4411",
"selected": false,
"text": "5m",
"value": "5m"
},
{
"$$hashKey": "object:4412",
"selected": false,
"text": "10m",
"value": "10m"
},
{
"$$hashKey": "object:4413",
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,3m,5m,10m,15m",
"type": "custom"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Openstack - Tenants",
"uid": null,
"version": 1
}
{%- endraw %}

View File

@ -0,0 +1,531 @@
{%- raw %}
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1530525189651,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 7,
"panels": [],
"title": "Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": true,
"colorValue": false,
"colors": [
"#d44a3a",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 1
},
"id": 5,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 2,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": "host",
"repeatDirection": "h",
"scopedVars": {
"host": {
"selected": true,
"text": "cfg01",
"value": "cfg01"
}
},
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "procstat_running{environment=\"$environment\", process_name=\"ntpd\", host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
"refId": "A"
}
],
"thresholds": "0,1",
"title": "NTP@$host",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "avg"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 4
},
"id": 9,
"panels": [],
"title": "Time factors",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 5
},
"id": 1,
"legend": {
"alignAsTable": false,
"avg": false,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": "host",
"repeatDirection": "v",
"scopedVars": {
"host": {
"selected": true,
"text": "cfg01",
"value": "cfg01"
}
},
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ntpq_delay{environment=\"$environment\", host=~\"$host\"}) by (remote)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ remote }}",
"metric": "",
"refId": "A",
"step": 30
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Avg Time Delay@$host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ms",
"label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 5
},
"id": 2,
"legend": {
"alignAsTable": false,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": "host",
"repeatDirection": "v",
"scopedVars": {
"host": {
"selected": true,
"text": "cfg01",
"value": "cfg01"
}
},
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ntpq_offset{environment=\"$environment\", host=~\"$host\"}) by (remote)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{remote}}",
"refId": "A",
"step": 30
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Avg Time Offset@$host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 5
},
"id": 3,
"legend": {
"alignAsTable": false,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": "host",
"repeatDirection": "v",
"scopedVars": {
"host": {
"selected": true,
"text": "cfg01",
"value": "cfg01"
}
},
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(ntpq_jitter{environment=\"$environment\", host=~\"$host\"}) by (remote)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{remote}}",
"refId": "A",
"step": 40
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Avg Time Dispersion@$host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"host"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "cfg01",
"value": [
"cfg01"
]
},
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": true,
"name": "host",
"options": [],
"query": "label_values(ntpq_delay{environment=\"$environment\"}, host)",
"refresh": 1,
"regex": "",
"sort": 1,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "NTP",
"uid": null,
"version": 3
}
{%- endraw %}

View File

@ -0,0 +1,883 @@
{%- raw -%}
{
"annotations": {
"list": []
},
"description": "Monitors Octavia using Prometheus. Shows overall cluster processes and usage.",
"editable": true,
"gnetId": null,
"graphTooltip": 1,
"hideControls": false,
"id": null,
"links": [],
"refresh": "1m",
"rows": [
{
"collapse": false,
"height": "250px",
"panels": [
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": "prometheus",
"format": "none",
"gauge": {
"maxValue": 1,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 1,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 3,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "min(openstack_api_check_status{environment=\"$environment\", service=~\"octavia.*\"})",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ service }}",
"refId": "A",
"step": 60
}
],
"thresholds": "1,0",
"title": "API Availability",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "OK",
"value": "1"
},
{
"op": "=",
"text": "DOWN",
"value": "0"
}
],
"valueName": "current"
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Service Status",
"titleSize": "h6"
},
{
"collapse": false,
"height": 250,
"panels": [
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 25,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_loadbalancers_total{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "LoadBalancers",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 26,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_loadbalancers{environment=\"$environment\", status=\"ONLINE\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "ONLINE",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 27,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_loadbalancers{environment=\"$environment\", status=\"OFFLINE\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "OFFLINE",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"description": "",
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 28,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_loadbalancers{environment=\"$environment\", status=\"ERROR\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "ERROR",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 29,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_loadbalancers{environment=\"$environment\", status=\"DEGRADED\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "DEGRADED",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"content": "",
"id": 30,
"links": [],
"mode": "markdown",
"span": 2,
"title": "",
"transparent": true,
"type": "text"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 31,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_listeners{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Listeners",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 32,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_pools{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Pools",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 33,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_members{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Members",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 34,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"tableColumn": "",
"targets": [
{
"expr": "openstack_neutron_lbaas_monitors{environment=\"$environment\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Monitors",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Resources",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Octavia",
"version": 1
}
{%- endraw -%}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,805 @@
{%- raw %}
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"description": "Monitors Remote Storage Adapter using Prometheus.",
"editable": true,
"gnetId": null,
"graphTooltip": 1,
"id": null,
"iteration": 1529933870105,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 10,
"panels": [],
"repeat": null,
"title": "Status",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": true,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"#299c46"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 1,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 1
},
"id": 1,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"minSpan": 3,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"repeat": null,
"repeatDirection": "h",
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "up{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
"refId": "A",
"step": 20
}
],
"thresholds": "1,1",
"title": "Health",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
},
{
"op": "=",
"text": "FAIL",
"value": "0"
},
{
"op": "=",
"text": "OK",
"value": "1"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 4
},
"id": 13,
"panels": [],
"title": "Samples",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": 0,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 5
},
"id": 2,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"minSpan": 3,
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(sent_samples_total{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "sent",
"refId": "A",
"step": 2
},
{
"expr": "rate(received_samples_total{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "received",
"refId": "B",
"step": 2
},
{
"expr": "rate(prometheus_influxdb_ignored_samples_total{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "ignored",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Samples rate",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "Samples / Second",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": 2,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 5
},
"id": 4,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": false,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(sent_batch_duration_seconds_sum{environment=\"$environment\", job=\"remote_storage_adapter\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ instance }}",
"refId": "C",
"step": 2
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Batch Duration",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "Batch / Second",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 12
},
"id": 11,
"panels": [],
"repeat": null,
"title": "Resources",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": 2,
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 13
},
"id": 9,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": false,
"max": false,
"min": false,
"rightSide": true,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(process_cpu_seconds_total{environment=\"$environment\", job=\"remote_storage_adapter\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ instance }}",
"metric": "prometheus_local_storage_ingested_samples_total",
"refId": "B",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU Usage Rate",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": [
"avg"
]
},
"yaxes": [
{
"format": "none",
"label": "CPU seconds / Second",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 13
},
"id": 7,
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": false,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "rate(go_memstats_alloc_bytes_total{environment=\"$environment\", job=\"remote_storage_adapter\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ instance }}",
"metric": "go_memstats_alloc_bytes",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Allocation Rate",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "Bps",
"label": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"decimals": null,
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 20
},
"id": 6,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"minSpan": 3,
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"repeatDirection": "v",
"seriesOverrides": [
{
"alias": "/-/",
"fill": 0
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "process_resident_memory_bytes{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "RSS",
"metric": "process_resident_memory_bytes",
"refId": "B",
"step": 10
},
{
"expr": "max_over_time(go_memstats_alloc_bytes{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "allocated max in {{ $rate_interval }}",
"metric": "go_memstats_alloc_bytes",
"refId": "D",
"step": 10
},
{
"expr": "go_memstats_alloc_bytes{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "allocated current",
"metric": "go_memstats_alloc_bytes",
"refId": "A",
"step": 10
},
{
"expr": "min_over_time(go_memstats_alloc_bytes{environment=\"$environment\", job=\"remote_storage_adapter\",instance=~\"$instance:[1-9][0-9]*\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "allocated min in {{ $rate_interval }}",
"metric": "go_memstats_alloc_bytes",
"refId": "C",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "bytes",
"label": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [
"prometheus"
],
"templating": {
"list": [
{
"allValue": null,
"current": null,
"datasource": "prometheus",
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "environment",
"options": [],
"query": "label_values(environment)",
"refresh": 1,
"regex": "",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"text": "10.0.0.14",
"value": "10.0.0.14"
},
"datasource": null,
"hide": 0,
"includeAll": false,
"label": "instance",
"multi": false,
"name": "instance",
"options": [],
"query": "query_result(up{environment=\"$environment\", job=\"remote_storage_adapter\"} == 1)",
"refresh": 1,
"regex": ".*instance=\"([^:]+):[1-9][0-9]*\".*",
"sort": 1,
"tagValuesQuery": null,
"tags": [],
"tagsQuery": null,
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {
"tags": [],
"text": "3m",
"value": "3m"
},
"hide": 0,
"includeAll": false,
"label": "rate_interval",
"multi": false,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "2m",
"value": "2m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "5m",
"value": "5m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,2m,3m,5m,10m,15m",
"type": "custom"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Remote Storage Adapter",
"uid": null,
"version": 2
}
{%- endraw %}

File diff suppressed because it is too large Load Diff

23
grafana/files/default Normal file
View File

@ -0,0 +1,23 @@
{%- from "grafana/map.jinja" import server with context %}
GRAFANA_USER={{ server.user }}
GRAFANA_GROUP={{ server.group }}
GRAFANA_HOME=/usr/share/grafana
LOG_DIR={{ server.path.logs }}
DATA_DIR={{ server.path.data }}
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR={{ server.path.data }}/plugins
# Only used on systemd systems
PID_FILE_DIR={{ server.path.pid_file_dir }}

View File

@ -1 +0,0 @@
{{ service_grains|yaml(False) }}

View File

@ -11,16 +11,16 @@
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
;data = /var/lib/grafana
data = {{ server.path.data }}
#
# Directory where grafana can store logs
#
;logs = /var/log/grafana
logs = {{ server.path.logs }}
#################################### Server ####################################
[server]
# Protocol (http or https)
;protocol = http
protocol = {{ server.protocol }}
# The ip address to bind to, empty will bind to all interfaces
http_addr = {{ server.bind.address }}
@ -29,14 +29,16 @@ http_addr = {{ server.bind.address }}
http_port = {{ server.bind.port }}
# The public facing domain name used to access grafana from a browser
;domain = localhost
domain = {{ server.server.domain }}
# Redirect to correct domain if host header does not match domain
# Prevents DNS rebinding attacks
;enforce_domain = false
# The full public facing url
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = {{ server.server.root_url }}
# Log web requests
;router_logging = false
@ -142,6 +144,8 @@ allow_org_create = {{ server.allow_org_create|lower }}
;auto_assign_org_role = Viewer
auto_assign_org_role = {{ server.auto_assign_role }}
user_invite_max_lifetime_duration = 5d
#################################### Anonymous Auth ##########################
[auth.anonymous]
{%- if server.auth.engine == 'anonymous' or server.auth.get('anonymous', {}).get('enabled', False) %}
@ -288,4 +292,3 @@ path = {{ server.dashboards.path }}
;enabled = false
;path = /var/lib/grafana/dashboards
{%- endif %}

View File

@ -0,0 +1,723 @@
{
"annotations": {
"list": []
},
"editable": true,
"gnetId": null,
"hideControls": false,
"id": null,
"links": [],
"refresh": "1m",
"rows": [
{
"collapse": false,
"height": "250px",
"panels": [
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"editable": true,
"error": false,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"id": 14,
"interval": "> 60s",
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"span": 2,
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
},
"targets": [
{
"column": "value",
"dsType": "influxdb",
"function": "last",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
}
],
"measurement": "lma_components_threads",
"policy": "default",
"query": "SELECT last(\"value\") FROM \"lma_components_threads\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval)",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
}
],
"thresholds": "",
"title": "Threads",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"editable": true,
"error": false,
"fill": 0,
"grid": {},
"id": 15,
"interval": "> 60s",
"legend": {
"alignAsTable": false,
"avg": false,
"current": true,
"max": true,
"min": true,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 3,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "rss",
"column": "value",
"dsType": "influxdb",
"function": "mean",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "lma_components_memory_rss",
"policy": "default",
"query": "SELECT mean(\"value\") FROM \"lma_components_memory_rss\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval) fill(0)",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Resident Set Size",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "bytes",
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"editable": true,
"error": false,
"fill": 0,
"grid": {},
"id": 16,
"interval": "> 60s",
"legend": {
"alignAsTable": false,
"avg": false,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 3,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "read",
"column": "value",
"dsType": "influxdb",
"function": "mean",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "lma_components_disk_bytes_read",
"policy": "default",
"query": "SELECT mean(\"value\") FROM \"lma_components_disk_bytes_read\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval) fill(0)",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
},
{
"alias": "write",
"column": "value",
"dsType": "influxdb",
"function": "mean",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "lma_components_disk_bytes_write",
"policy": "default",
"query": "SELECT mean(\"value\") FROM \"lma_components_disk_bytes_write\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval) fill(0)",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Disk I/O",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "bytes",
"label": "bytes/sec",
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"editable": true,
"error": false,
"fill": 1,
"grid": {},
"id": 17,
"interval": "> 60s",
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 4,
"stack": true,
"steppedLine": false,
"targets": [
{
"alias": "system",
"column": "value",
"dsType": "influxdb",
"function": "mean",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "lma_components_cputime_syst",
"policy": "default",
"query": "SELECT mean(\"value\") FROM \"lma_components_cputime_syst\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval) fill(0)",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
},
{
"alias": "user",
"column": "value",
"dsType": "influxdb",
"function": "mean",
"groupBy": [
{
"params": [
"auto"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "lma_components_cputime_user",
"policy": "default",
"query": "SELECT mean(\"value\") FROM \"lma_components_cputime_user\" WHERE \"service\" = 'grafana-server' AND \"hostname\" =~ /^$server$/ AND $timeFilter GROUP BY time($interval) fill(0)",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "service",
"operator": "=",
"value": "grafana-server"
},
{
"condition": "AND",
"key": "hostname",
"operator": "=~",
"value": "/^$server$/"
},
{
"condition": "AND",
"key": "environment_label",
"operator": "=~",
"value": "/^$environment$/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU usage",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "percent",
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"format": "short",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Grafana",
"titleSize": "h6"
}
],
"schemaVersion": 13,
"sharedCrosshair": true,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allFormat": "glob",
"allValue": null,
"current": {},
"datasource": null,
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"multiFormat": "glob",
"name": "environment",
"options": [],
"query": "show tag values from cpu_idle with key = environment_label",
"refresh": 1,
"refresh_on_load": true,
"regex": "",
"sort": 0,
"tagValuesQuery": null,
"tagsQuery": null,
"type": "query"
},
{
"allFormat": "glob",
"allValue": null,
"current": {},
"datasource": null,
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"multiFormat": "glob",
"name": "server",
"options": [],
"query": "show tag values from lma_components_processes with key=\"hostname\" where service='grafana-server' and environment_label =~ /^$environment$/ ",
"refresh": 1,
"refresh_on_load": true,
"regex": "",
"sort": 0,
"tagValuesQuery": null,
"tagsQuery": null,
"type": "query"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"now": true,
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Grafana",
"version": 2
}

View File

@ -0,0 +1,651 @@
{%- raw %}
{
"annotations": {
"list": [
{
"$$hashKey": "object:143",
"builtIn": 1,
"datasource": "prometheus",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1529426501345,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 40,
"panels": [],
"repeat": null,
"title": "General",
"type": "row"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 0,
"y": 1
},
"id": 39,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_totals_dashboard",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Dashboards",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 12,
"y": 1
},
"id": 38,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_users",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Users",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 0,
"y": 5
},
"id": 37,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_playlists",
"format": "time_series",
"intervalFactor": 2,
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Playlists",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 4,
"w": 12,
"x": 12,
"y": 5
},
"id": 36,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "",
"targets": [
{
"expr": "grafana_stat_total_orgs",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
"refId": "A",
"step": 60
}
],
"thresholds": "",
"title": "Organizations",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 9
},
"id": 41,
"panels": [],
"repeat": null,
"title": "Resources",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 10
},
"id": 32,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 6,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "rate(process_cpu_seconds_total{job=\"grafana\"}[$rate_interval])",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "usage",
"refId": "A",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "CPU usage rate",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "Seconds / Second",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 10
},
"id": 33,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:208",
"expr": "process_resident_memory_bytes{job=\"grafana\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "RSS",
"refId": "A",
"step": 10
},
{
"$$hashKey": "object:209",
"expr": "process_virtual_memory_bytes{job=\"grafana\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "used",
"refId": "B",
"step": 10
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:258",
"format": "bytes",
"label": null,
"logBase": 1,
"max": null,
"min": 0,
"show": true
},
{
"$$hashKey": "object:259",
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "1m",
"schemaVersion": 16,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": {
"tags": [],
"text": "3m",
"value": "3m"
},
"hide": 0,
"includeAll": false,
"label": "rate_interval",
"multi": false,
"name": "rate_interval",
"options": [
{
"selected": false,
"text": "1m",
"value": "1m"
},
{
"selected": false,
"text": "2m",
"value": "2m"
},
{
"selected": true,
"text": "3m",
"value": "3m"
},
{
"selected": false,
"text": "5m",
"value": "5m"
},
{
"selected": false,
"text": "10m",
"value": "10m"
},
{
"selected": false,
"text": "15m",
"value": "15m"
}
],
"query": "1m,2m,3m,5m,10m,15m",
"type": "custom"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Grafana",
"uid": null,
"version": 12
}
{%- endraw %}

View File

@ -27,7 +27,7 @@ bind_password = "{{ ldap_params.bind_password }}"
search_filter = "{{ ldap_params.user_search_filter }}"
# An array of base dns to search through
search_base_dns = {{ ldap_params.user_search_base_dns }}
search_base_dns = {{ ldap_params.user_search_base_dns | yaml }}
# In POSIX LDAP schemas, without memberOf attribute a secondary query must be made for groups.
# This is done by enabling group_search_filter below. You must also set member_of= "cn"
@ -70,11 +70,11 @@ group_search_base_dns = {{ ldap_params.group_search_base_dns }}
{%- endif %}
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
name = "{{ ldap_params.servers.attributes.name }}"
surname = "{{ ldap_params.servers.attributes.surname }}"
username = "{{ ldap_params.servers.attributes.username }}"
member_of = "{{ ldap_params.servers.attributes.member_of }}"
email = "{{ ldap_params.servers.attributes.email }}"
{%- if ldap_params.get('authorization', {}).get('enabled', False) %}

View File

@ -1,3 +1,4 @@
lookup:
{%- if pillar.grafana is defined %}
include:

View File

@ -4,6 +4,19 @@ Debian:
pkgs:
- grafana
service: grafana-server
user: grafana
group: grafana
protocol: http
domain: localhost
root_url: '%(protocol)s://%(domain)s:%(http_port)s/'
path:
home: /usr/share/grafana
data: /var/lib/grafana
logs: /var/log/grafana
pid_file_dir: /var/run/grafana
server:
domain: localhost
root_url: "%(protocol)s://%(domain)s:%(http_port)s/"
bind:
address: 0.0.0.0
port: 3000
@ -21,6 +34,13 @@ Debian:
user_search_filter: "(cn=%s)"
user_search_base_dns:
- "dc=grafana,dc=org"
servers:
attributes:
name: "givenName"
surname: "sn"
username: "cn"
member_of: "memberOf"
email: "email"
admin:
user: admin
password: admin
@ -47,11 +67,3 @@ Debian:
{%- endload %}
{%- set client = salt['grains.filter_by'](client_defaults, merge=salt['pillar.get']('grafana:client')) %}
{%- load_yaml as collector_defaults %}
default:
storage:
engine: salt-mine
{%- endload %}
{%- set collector = salt['grains.filter_by'](collector_defaults, merge=salt['pillar.get']('grafana:collector')) %}

View File

@ -1,45 +1,27 @@
{%- if pillar.get('grafana').collector is defined %}
dashboard:
test-single-{{ grains.host }}:
title: Dashboard single {{ grains.host }}
editable: true
hideControls: false
row:
single:
title: Single row
height: 250px
showTitle: true
panel:
first:
title: Single Panel
span: 8
editable: false
type: graph
target:
A:
refId: A
target: "support_prd.cfg01_iot_tcpcloud_eu.cpu.0.idle"
datasource: graphite01
renderer: flot
test-merge:
title: Dashboard merge
editable: true
hideControls: false
row:
merge:
showTitle: true
title: Merge
height: 250px
panel:
merge:
title: Merge Panel
span: 8
editable: false
type: graph
target:
{{ grains.host }}:
refId: A
target: "support_prd.cfg01_iot_tcpcloud_eu.cpu.0.idle"
datasource: graphite01
renderer: flot
{%- endif %}
grafana_influxdb:
datasource: influxdb
format: json
template: grafana/files/grafana_dashboards/grafana_influxdb.json
grafana_prometheus:
datasource: prometheus
format: json
template: grafana/files/grafana_dashboards/grafana_prometheus.json
main_influxdb:
datasource: influxdb
format: yaml
base_dashboards: ['grafana:client:base_templates:main_dashboard']
base_rows: ['grafana:client:base_templates:service_row']
base_panels: ['grafana:client:base_templates:cluster_status_singlestat']
main_prometheus:
datasource: prometheus
format: yaml
base_dashboards: ['grafana:client:base_templates:prometheus_main_dashboard']
base_rows: ['grafana:client:base_templates:service_row']
base_panels: ['grafana:client:base_templates:prometheus_cluster_status']
service_level:
datasource: influxdb
format: yaml
base_dashboards: ['grafana:client:base_templates:service_level_dashboard']
base_rows: ['grafana:client:base_templates:service_level_row']
base_panels: ['grafana:client:base_templates:service_level_piechart']

View File

@ -0,0 +1,30 @@
{%- if pillar.grafana.client is defined %}
{%- from "grafana/map.jinja" import client with context %}
{%- if client.get('enabled') %}
{%- set addresses = [] %}
{%- if not client.server.host.startswith('127') and client.server.host != '0.0.0.0' %}
{%- do addresses.append(client.server.host) %}
{%- endif %}
{%- for address in grains['fqdn_ip4'] %}
{%- if not address.startswith('127') %}
{%- do addresses.append(address) %}
{%- endif %}
{%- endfor %}
server:
target:
static:
grafana:
enabled: true
endpoint:
- address: {{ addresses[0] }}
port: {{ client.server.port }}
metric_relabel:
- source_labels: "__name__"
regex: "http_.*"
action: drop
{%- endif %}
{%- endif %}

33
grafana/meta/salt.yml Normal file
View File

@ -0,0 +1,33 @@
{%- if pillar.get('grafana', {}).get('collector') %}
{%- if pillar.grafana.collector.get('enabled', False) %}
{%- set service_grains = {} %}
{%- for service_name, service in pillar.items() %}
{%- if service.get('_support', {}).get('grafana', {}).get('enabled', False) %}
{%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
{%- set grains_fragment_file = service_name+'/meta/grafana.yml' %}
{%- set grains_yaml = load_grains_file(grains_fragment_file)|load_yaml %}
{%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=grains_yaml) %}
{%- endif %}
{%- endfor %}
grain:
grafana:
grafana:
{{ service_grains|yaml(False)|indent(6) }}
{%- endif %}
{%- endif %}
minion:
{%- if pillar.get('grafana', {}).client is defined %}
grafana:
{%- from "grafana/map.jinja" import client with context %}
grafana_version: {{ client.server.get('version', 3) }}
grafana:
grafana_timeout: 3
{%- if client.server.token is defined %}
grafana_token: {{ client.server.token }}
{%- else %}
grafana_user: {{ client.server.user }}
grafana_password: {{ client.server.password }}
{%- endif %}
grafana_url: '{{ client.server.get('protocol', 'http') }}://{{ client.server.host }}:{{ client.server.get('port', 80) }}'
{%- endif %}

7
grafana/meta/sensu.yml Normal file
View File

@ -0,0 +1,7 @@
check:
local_grafana_server_proc:
command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C grafana-server -u grafana -c 1:1"
interval: 30
occurences: 3
subscribers:
- local-grafana-server

7
grafana/repo.sls Normal file
View File

@ -0,0 +1,7 @@
# Adds the Grafana repo
grafana_repo:
pkgrepo.managed:
- name: deb https://packages.grafana.com/oss/deb stable main
- key_url: https://packages.grafana.com/gpg.key
- require_in:
- pkg: grafana_packages

View File

@ -3,7 +3,7 @@
grafana_packages:
pkg.installed:
- names: {{ server.pkgs }}
- names: {{ server.pkgs|tojson }}
/etc/grafana/grafana.ini:
file.managed:
@ -28,6 +28,14 @@ grafana_packages:
{%- endif %}
/etc/default/grafana-server:
file.managed:
- name: /etc/default/grafana-server
- source: salt://grafana/files/default
- template: jinja
- require:
- pkg: grafana_packages
{%- if server.dashboards.enabled %}
grafana_copy_default_dashboards:
@ -43,7 +51,7 @@ grafana_copy_default_dashboards:
{%- endif %}
{%- for theme_name, theme in server.get('theme', {}).iteritems() %}
{%- for theme_name, theme in server.get('theme', {}).items() %}
{%- if theme.css_override is defined %}
@ -69,6 +77,26 @@ grafana_{{ theme_name }}_css_override:
{%- endfor %}
{{server.path.data}}:
file.directory:
- makedirs: True
- mode: 755
- user: {{ server.user }}
- group: {{ server.group }}
- recurse:
- user
- group
{{server.path.logs}}:
file.directory:
- makedirs: True
- mode: 755
- user: {{ server.user }}
- group: {{ server.group }}
- recurse:
- user
- group
grafana_service:
service.running:
- name: {{ server.service }}
@ -78,5 +106,17 @@ grafana_service:
- init_delay: 5
- watch:
- file: /etc/grafana/grafana.ini
- file: /etc/default/grafana-server
{%- for plugin_name, plugin in server.get('plugins', {}).items() %}
{%- if plugin.get('enabled', False) %}
install_{{ plugin_name }}:
cmd.run:
- name: grafana-cli plugins install {{ plugin_name }}
- unless: grafana-cli plugins ls | grep {{ plugin_name }}
- watch_in:
- service: grafana_service
{%- endif %}
{%- endfor %}
{%- endif %}

View File

@ -1,3 +1,3 @@
name: "grafana"
version: "0.2"
source: "https://github.com/tcpcloud/salt-formula-grafana"
source: "https://github.com/salt-formulas/salt-formula-grafana"

View File

@ -0,0 +1,41 @@
classes:
- service.grafana.client.dashboards.cicd.jenkins
- service.grafana.client.dashboards.core.apache
- service.grafana.client.dashboards.core.bond
- service.grafana.client.dashboards.core.ceph
- service.grafana.client.dashboards.core.docker
- service.grafana.client.dashboards.core.galera
- service.grafana.client.dashboards.core.glusterfs
- service.grafana.client.dashboards.core.haproxy
- service.grafana.client.dashboards.core.keepalived
- service.grafana.client.dashboards.core.memcached
- service.grafana.client.dashboards.core.nginx
- service.grafana.client.dashboards.core.ntp
- service.grafana.client.dashboards.core.rabbitmq
- service.grafana.client.dashboards.core.system
- service.grafana.client.dashboards.kubernetes.calico
- service.grafana.client.dashboards.kubernetes.etcd
- service.grafana.client.dashboards.kubernetes.kubernetes_cluster
- service.grafana.client.dashboards.opencontrail.cassandra
- service.grafana.client.dashboards.opencontrail.contrail_3_controller
- service.grafana.client.dashboards.opencontrail.contrail_4_controller
- service.grafana.client.dashboards.opencontrail.contrail_3_vrouter
- service.grafana.client.dashboards.opencontrail.contrail_4_vrouter
- service.grafana.client.dashboards.opencontrail.zookeeper
- service.grafana.client.dashboards.openstack.cinder
- service.grafana.client.dashboards.openstack.glance
- service.grafana.client.dashboards.openstack.heat
- service.grafana.client.dashboards.openstack.keystone
- service.grafana.client.dashboards.openstack.neutron
- service.grafana.client.dashboards.openstack.nova
- service.grafana.client.dashboards.openstack.octavia
- service.grafana.client.dashboards.openstack.ovs
- service.grafana.client.dashboards.stacklight.alertmanager
- service.grafana.client.dashboards.stacklight.elasticsearch
- service.grafana.client.dashboards.stacklight.grafana
- service.grafana.client.dashboards.stacklight.influxdb
- service.grafana.client.dashboards.stacklight.kibana
- service.grafana.client.dashboards.stacklight.prometheus
- service.grafana.client.dashboards.stacklight.prometheus_relay
- service.grafana.client.dashboards.stacklight.pushgateway
- service.grafana.client.dashboards.stacklight.remote_storage_adapter

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
jenkins_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/jenkins/jenkins_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
apache_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/apache/apache_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
bond_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/linux/bond_prometheus.json

View File

@ -0,0 +1,16 @@
parameters:
grafana:
client:
dashboard:
ceph_cluster_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/ceph/ceph_cluster_prometheus.json
ceph_osd_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/ceph/ceph_osd_prometheus.json
ceph_pools_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/ceph/ceph_pools_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
docker_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/docker/docker_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
mysql_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/galera/mysql_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
glusterfs_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/glusterfs/glusterfs_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
haproxy_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/haproxy/haproxy_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
keepalived_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/keepalived/keepalived_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
memcached_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/memcached/memcached_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
nginx_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/nginx/nginx_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
ntp_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/ntp/ntp_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
rabbitmq_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/rabbitmq/rabbitmq_prometheus.json

View File

@ -0,0 +1,16 @@
parameters:
grafana:
client:
dashboard:
linux_disk_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/linux/system_disk_prometheus.json
linux_network_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/linux/system_network_prometheus.json
linux_overview_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/linux/system_overview_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
calico_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/kubernetes/calico_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
etcd_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/etcd/etcd_prometheus.json

View File

@ -0,0 +1,12 @@
classes:
- service.grafana.client.dashboards.kubernetes.calico
- service.grafana.client.dashboards.kubernetes.etcd
- service.grafana.client.dashboards.kubernetes.kubernetes_cluster
- service.grafana.client.dashboards.core.docker.yml
- service.grafana.client.dashboards.core.glusterfs.yml
- service.grafana.client.dashboards.core.haproxy.yml
- service.grafana.client.dashboards.core.keepalived.yml
- service.grafana.client.dashboards.core.memcached.yml
- service.grafana.client.dashboards.core.nginx.yml
- service.grafana.client.dashboards.core.ntp.yml
- service.grafana.client.dashboards.core.system.yml

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
kubernetes_cluster_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/kubernetes/kubernetes_cluster_prometheus.json

View File

@ -0,0 +1,8 @@
parameters:
grafana:
client:
dashboard:
cassandra_prometheus:
datasource: prometheus
format: json
template: grafana/files/dashboards/opencontrail/cassandra_prometheus.json

Some files were not shown because too many files have changed in this diff Show More