Retire monasca-api repository
This repository is being retired as part of the Monasca project retirement. The project content has been replaced with a retirement notice. Needed-By: I3cb522ce8f51424b64e93c1efaf0dfd1781cd5ac Change-Id: Iaafdd53ec64083e46aa0ac72d37346465826eb67 Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
[run]
|
||||
branch = True
|
||||
source = monasca_api
|
||||
omit = monasca_api/tests/*
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[DEFAULT]
|
||||
test_path=$OS_TEST_PATH
|
||||
top_dir=./
|
||||
group_regex=monasca_api\.tests(?:\.|_)([^_]+)
|
||||
262
.zuul.yaml
262
.zuul.yaml
@@ -1,262 +0,0 @@
|
||||
- job:
|
||||
name: monasca-tempest-base
|
||||
parent: devstack-tempest
|
||||
description: |
|
||||
Base job for running tempest tests with monasca-api devstack plugin.
|
||||
timeout: 7800
|
||||
required-projects:
|
||||
- openstack/monasca-agent
|
||||
- openstack/monasca-api
|
||||
- openstack/monasca-common
|
||||
- openstack/monasca-grafana-datasource
|
||||
- openstack/monasca-notification
|
||||
- openstack/monasca-persister
|
||||
- openstack/monasca-statsd
|
||||
- openstack/monasca-thresh
|
||||
- openstack/monasca-ui
|
||||
- openstack/python-monascaclient
|
||||
- openstack/tempest
|
||||
- openstack/monasca-tempest-plugin
|
||||
vars:
|
||||
devstack_services:
|
||||
# Disable unneeded services.
|
||||
etcd3: false
|
||||
g-api: false
|
||||
g-reg: false
|
||||
n-api: false
|
||||
n-api-meta: false
|
||||
n-cauth: false
|
||||
n-cond: false
|
||||
n-cpu: false
|
||||
n-novnc: false
|
||||
n-obj: false
|
||||
n-sch: false
|
||||
placement-api: false
|
||||
s-account: false
|
||||
s-container: false
|
||||
s-object: false
|
||||
s-proxy: false
|
||||
c-api: false
|
||||
c-bak: false
|
||||
c-sch: false
|
||||
c-vol: false
|
||||
cinder: false
|
||||
horizon: false
|
||||
monasca-log: false
|
||||
tox_envlist: all
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
tempest_test_regex: monasca_tempest_tests.tests.api
|
||||
devstack_plugins:
|
||||
monasca-api: https://opendev.org/openstack/monasca-api
|
||||
zuul_copy_output:
|
||||
/var/log/kafka: logs
|
||||
/var/log/storm: logs
|
||||
/var/log/zookeeper: logs
|
||||
/var/log/monasca/notification: logs
|
||||
/etc/kafka/server.properties: logs
|
||||
/etc/kafka/producer.properties: logs
|
||||
/etc/kafka/consumer.properties: logs
|
||||
/etc/monasca/monasca-notification.conf: logs
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^.*\.md$
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-log-base
|
||||
parent: devstack-tempest
|
||||
description: |
|
||||
Base job for running tempest tests with monasca-log-api devstack plugin.
|
||||
timeout: 7800
|
||||
required-projects:
|
||||
- openstack/monasca-api
|
||||
- openstack/monasca-common
|
||||
- openstack/python-monascaclient
|
||||
- openstack/tempest
|
||||
- openstack/monasca-tempest-plugin
|
||||
- openstack/monasca-kibana-plugin
|
||||
vars:
|
||||
devstack_services:
|
||||
monasca-log: true
|
||||
monasca-log-api: true
|
||||
# Disable unneeded services.
|
||||
monasca-agent: false
|
||||
monasca-notification: false
|
||||
monasca-persister: false
|
||||
monasca-thresh: false
|
||||
monasca-storm: false
|
||||
etcd3: false
|
||||
g-api: false
|
||||
g-reg: false
|
||||
n-api: false
|
||||
n-api-meta: false
|
||||
n-cauth: false
|
||||
n-cond: false
|
||||
n-cpu: false
|
||||
n-novnc: false
|
||||
n-obj: false
|
||||
n-sch: false
|
||||
placement-api: false
|
||||
s-account: false
|
||||
s-container: false
|
||||
s-object: false
|
||||
s-proxy: false
|
||||
c-api: false
|
||||
c-bak: false
|
||||
c-sch: false
|
||||
c-vol: false
|
||||
cinder: false
|
||||
horizon: false
|
||||
tox_envlist: all
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
tempest_test_regex: monasca_tempest_tests.tests.log_api
|
||||
devstack_plugins:
|
||||
monasca-api: https://opendev.org/openstack/monasca-api
|
||||
zuul_copy_output:
|
||||
/var/log/kafka: logs
|
||||
/var/log/monasca/notification: logs
|
||||
/etc/kafka/server.properties: logs
|
||||
/etc/kafka/producer.properties: logs
|
||||
/etc/kafka/consumer.properties: logs
|
||||
/etc/monasca/monasca-notification.conf: logs
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^.*\.md$
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-python3-influxdb
|
||||
parent: monasca-tempest-base
|
||||
vars:
|
||||
devstack_localrc:
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||
MONASCA_METRICS_DB: influxdb
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-java-influxdb
|
||||
parent: monasca-tempest-base
|
||||
voting: false
|
||||
vars:
|
||||
devstack_localrc:
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: java
|
||||
MONASCA_METRICS_DB: influxdb
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-python3-cassandra
|
||||
parent: monasca-tempest-base
|
||||
voting: false
|
||||
vars:
|
||||
devstack_localrc:
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||
MONASCA_METRICS_DB: cassandra
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
tempest_test_regex: (?!.*\[.*\btimerange\b.*\])(^monasca_tempest_tests.tests.api)
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-python3-java-cassandra
|
||||
parent: monasca-tempest-base
|
||||
voting: false
|
||||
vars:
|
||||
devstack_localrc:
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: java
|
||||
MONASCA_METRICS_DB: cassandra
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
tempest_test_regex: (?!.*\[.*\btimerange\b.*\])(^monasca_tempest_tests.tests.api)
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-log-python3-influxdb
|
||||
parent: monasca-tempest-log-base
|
||||
voting: false
|
||||
vars:
|
||||
devstack_localrc:
|
||||
USE_OLD_LOG_API: false
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||
MONASCA_METRICS_DB: influxdb
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
|
||||
- job:
|
||||
name: monasca-tempest-log-oldapi-python3-influxdb
|
||||
parent: monasca-tempest-log-base
|
||||
vars:
|
||||
devstack_localrc:
|
||||
USE_OLD_LOG_API: true
|
||||
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||
MONASCA_METRICS_DB: influxdb
|
||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||
|
||||
- project:
|
||||
queue: monasca
|
||||
templates:
|
||||
- check-requirements
|
||||
- openstack-cover-jobs
|
||||
- openstack-python3-jobs
|
||||
- publish-openstack-docs-pti
|
||||
- release-notes-jobs-python3
|
||||
check:
|
||||
jobs:
|
||||
- monasca-tempest-log-python3-influxdb
|
||||
- monasca-tempest-python3-influxdb
|
||||
- build-monasca-docker-image
|
||||
gate:
|
||||
jobs:
|
||||
- monasca-tempest-python3-influxdb
|
||||
- monasca-tempest-log-python3-influxdb
|
||||
post:
|
||||
jobs:
|
||||
- publish-monasca-api-docker-image
|
||||
periodic:
|
||||
jobs:
|
||||
- publish-monasca-api-docker-image
|
||||
release:
|
||||
jobs:
|
||||
- publish-monasca-api-docker-image
|
||||
|
||||
- job:
|
||||
name: publish-monasca-api-docker-image
|
||||
parent: build-monasca-docker-image
|
||||
post-run: playbooks/docker-publish.yml
|
||||
required-projects:
|
||||
- openstack/monasca-common
|
||||
vars:
|
||||
publisher: true
|
||||
secrets:
|
||||
- doker_hub_login_api
|
||||
|
||||
- secret:
|
||||
name: doker_hub_login_api
|
||||
data:
|
||||
user: !encrypted/pkcs1-oaep
|
||||
- JQCFFaHjbMstCHOxW9JxepuFbsdOKhs/swCkfbzgqiNDyL91e2AF6tazGf8EtMxX6brP4
|
||||
vCGWFEkMUGxBxVbpwRMUf4mSCOzs2+3/4S1NVr5+ppQEgYVDON4S5BbC2jnwawuB4DKLa
|
||||
tDYkmgTMIPqxK29giQN/W/wbo0uIAObpRJuCyHY/eNxfC4fzajpGisyu2D3b606Cw15uA
|
||||
KRw5GexwxN/D0pPvAgT/lwlVrm8Lz9NUziQANL+55gjo9Xs0OIu+OXwiUhZE45TmfpBLF
|
||||
VO9oOWT+Fhpv2LTA8M1m5vrDo5H03qbn/MNZaiqcPYnPJtnd4pQ0o7DewUk6OBZcPnnVB
|
||||
RGJm3aO0cs19s0LEwbXxe9URzWeilp/IQdRY42FySmz/OcBqicie0FEr+W0vkq+6lvkmZ
|
||||
Z9UTw7WDaF0kauhS/yy8wgcbdARmKemBQWWJLZg+2HuVLFqMLlo6bMMagtIN1x/bPj+SX
|
||||
4VuPfqCJoynvroQTqY+QuDBJy9Q6IoRGlWUGyIW3kOskRZRsYpaAKZExgNkmkumJ7jJr9
|
||||
vI9DOTYxQMBlRptEAExy5OOkIypmpYqoPEF9PnutjIGEHN4gy+ZPHMwD7ht3aG+riDhHl
|
||||
P1BUBH4cRVOpkHcsqP46hw1uty3QEZMjlk2j8831bfr+opagsaGTqK1CVMM6zg=
|
||||
|
||||
password: !encrypted/pkcs1-oaep
|
||||
- r5q4gVugtWsad/4/BeTmu6PFdlHkxe+q8R3TOnsitUrnnpQH4y0jq4edIgzQtfQUyk+bV
|
||||
9Z4mr7UkI/Yd2Ia1IgzgyjSNLxABtm1JevzLD0XeQTtr/uurTXTMoQJqcveAWWfumrlVx
|
||||
sIxlr9uujByrmS1OLhFc3S0TBcpwk5hg786RNC6MJVnrQJwKy8MVZaGvh95OoGXuEGkIg
|
||||
z06afI+QGcJExV1n+zp1aCX1SKIOZlEG0Y70HJYUSfBjtXTCmpybsHk7exqL2Krwb/Oyo
|
||||
fsWuQbjbN1kdBh7tVg/w0KR2jSvNnh9tLDX97b3qB0iN14cqD45kApF/LclDUy4xryj6+
|
||||
ij6YbvBQLWDiMMy47FhVCZQ5sfM6MYvaDA3DpJe7DZXOQFxZp9KGB50zAlVm+PssCNY/g
|
||||
kBqBJA0qd0Nwixkku8trokwShUzVFAaWfPr9zj0/lAk5jFDz42NK5pfM0o0M84Duof+7u
|
||||
wxp5H4wnwPXauDbC+LhI12s3J0teDnaXNwCTTPd+NWi1w50N0JH8nDVkz+g3cZA7mAW83
|
||||
cvrC3If9SyQZi/9GNphNzVPfG6llOeAkNno5f4CXoGxuoMgw17Px7HnCO50XPYLUfORzo
|
||||
eLG2QHqbHIiMgIpy30YvVKRsvjLvKId6I2s51oj918U96mt/jef6Ct0Q5jybTs=
|
||||
@@ -1,19 +0,0 @@
|
||||
The source repository for this project can be found at:
|
||||
|
||||
https://opendev.org/openstack/monasca-api.git
|
||||
|
||||
Pull requests submitted through GitHub are not monitored.
|
||||
|
||||
To start contributing to OpenStack, follow the steps in the contribution guide
|
||||
to set up and use Gerrit:
|
||||
|
||||
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
|
||||
|
||||
Bugs should be filed on Storyboard:
|
||||
|
||||
https://storyboard.openstack.org/#!/project/863
|
||||
|
||||
For more specific information about contributing to this repository, see the
|
||||
Monasca contributor guide:
|
||||
|
||||
https://docs.openstack.org/monasca-api/latest/contributor/contributing.html
|
||||
144
README.rst
144
README.rst
@@ -1,139 +1,9 @@
|
||||
Team and repository tags
|
||||
========================
|
||||
This project is no longer maintained.
|
||||
|
||||
.. image:: https://governance.openstack.org/tc/badges/monasca-api.svg
|
||||
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
||||
The contents of this repository are still available in the Git
|
||||
source code management system. To see the contents of this
|
||||
repository before it reached its end of life, please check out the
|
||||
previous commit with "git checkout HEAD^1".
|
||||
|
||||
.. Change things from this point on
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
``monasca-api`` is a RESTful API server that is designed with a `layered
|
||||
architecture`_.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
The full API Specification can be found in `docs/monasca-api-spec.md`_
|
||||
|
||||
Python Monasca API Implementation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To install the python api implementation, git clone the source and run
|
||||
the following command:
|
||||
|
||||
::
|
||||
|
||||
$ sudo python setup.py install
|
||||
|
||||
If it installs successfully, you will need to make changes to the
|
||||
following two files to reflect your system settings, especially where
|
||||
kafka server is located:
|
||||
|
||||
::
|
||||
|
||||
/etc/monasca/api-config.ini
|
||||
/etc/monasca/monasca-api.conf
|
||||
/etc/monasca/api-logging.conf
|
||||
|
||||
Once the configuration files are modified to match your environment, you
|
||||
can start up the server by following the following instructions.
|
||||
|
||||
To start the server, run the following command:
|
||||
|
||||
::
|
||||
|
||||
Running the server in foreground mode
|
||||
$ gunicorn -k eventlet --worker-connections=2000 --backlog=1000 --paste /etc/monasca/api-config.ini
|
||||
|
||||
Running the server as daemons
|
||||
$ gunicorn -k eventlet --worker-connections=2000 --backlog=1000 --paste /etc/monasca/api-config.ini -D
|
||||
|
||||
To check if the code follows python coding style, run the following
|
||||
command from the root directory of this project
|
||||
|
||||
::
|
||||
|
||||
$ tox -e pep8
|
||||
|
||||
To run all the unit test cases, run the following command from the root
|
||||
directory of this project
|
||||
|
||||
::
|
||||
|
||||
$ tox -e py36
|
||||
|
||||
Start the Server - for Apache
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To start the server using Apache: create a modwsgi file, create a
|
||||
modwsgi configuration file, and enable the wsgi module in Apache.
|
||||
|
||||
The modwsgi configuration file may look something like this, and the
|
||||
site will need to be enabled:
|
||||
|
||||
.. code:: apache
|
||||
|
||||
Listen 8070
|
||||
|
||||
<VirtualHost *:8070>
|
||||
|
||||
WSGIDaemonProcess monasca-api processes=4 threads=1 socket-timeout=120 user=mon-api group=monasca python-path=/usr/local/lib/python2.7/site-packages
|
||||
WSGIProcessGroup monasca-api
|
||||
WSGIApplicationGroup monasca-api
|
||||
WSGIScriptAlias / /usr/local/lib/python2.7/site-packages/monasca_api/api/wsgi/monasca_api.py
|
||||
|
||||
WSGIPassAuthorization On
|
||||
|
||||
LogLevel info
|
||||
ErrorLog /var/log/monasca-api/wsgi.log
|
||||
CustomLog /var/log/monasca-api/wsgi-access.log combined
|
||||
|
||||
<Directory /usr/local/lib/python2.7/site-packages/monasca_api>
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
SetEnv no-gzip 1
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
The wsgi file may look something like this:
|
||||
|
||||
.. code:: py
|
||||
|
||||
|
||||
from monasca_api.api import server
|
||||
|
||||
application = server.get_wsgi_app(config_base_path='/etc/monasca')
|
||||
|
||||
Java Implementation
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Details on usage can be found `here`_
|
||||
|
||||
WARNING: The Java implementation of Monasca API is DEPRECATED and will
|
||||
be removed in future release.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
||||
|
||||
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.
|
||||
|
||||
.. _layered architecture: https://en.wikipedia.org/wiki/Multilayered_architecture
|
||||
.. _docs/monasca-api-spec.md: docs/monasca-api-spec.md
|
||||
.. _here: /docs/java.md
|
||||
For any further questions, please email openstack-discuss@lists.openstack.org
|
||||
or join #openstack-dev on OFTC.
|
||||
@@ -1,196 +0,0 @@
|
||||
# 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.
|
||||
#
|
||||
# Key Manager API documentation build configuration file
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
needs_sphinx = '1.6'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'os_api_ref',
|
||||
'openstackdocstheme'
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
source_encoding = 'utf-8'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General details about project
|
||||
openstackdocs_repo_name = u'openstack/monasca-api'
|
||||
openstackdocs_use_storyboard = True
|
||||
copyright = u'2014-present, OpenStack Foundation'
|
||||
author = u'OpenStack Foundation'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
# language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
# today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
# today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
# add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
# add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
# show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'native'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
# modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
# keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# To use the API Reference sidebar dropdown menu,
|
||||
# uncomment the html_theme_options parameter. The theme
|
||||
# variable, sidebar_dropdown, should be set to `api_ref`.
|
||||
# Otherwise, the list of links for the User and Ops docs
|
||||
# appear in the sidebar dropdown menu.
|
||||
html_theme_options = {"sidebar_dropdown": "api_ref",
|
||||
"sidebar_mode": "toc"}
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
html_short_title = 'API Ref'
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
# html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
# html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
# html_static_path = []
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
# html_extra_path = []
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
# html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
# html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
# html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
# html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
# html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
# html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
# html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
# html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
# html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
# html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'MonitoringApiRefDoc'
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'MonitoringApiRef.tex', u'Monitoring Service API Reference',
|
||||
[author], 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
# latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
# latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
# latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# latex_domain_indices = True
|
||||
|
||||
# -- Options for Internationalization output ------------------------------
|
||||
locale_dirs = ['locale/']
|
||||
@@ -1,22 +0,0 @@
|
||||
:tocdepth: 2
|
||||
|
||||
..
|
||||
Copyright 2017 Fujitsu LIMITED
|
||||
|
||||
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.
|
||||
|
||||
=======================
|
||||
Monitoring Service APIs
|
||||
=======================
|
||||
|
||||
.. rest_expand_all::
|
||||
@@ -1,6 +0,0 @@
|
||||
# This is a cross-platform list tracking distribution packages needed for install and tests;
|
||||
# see http://docs.openstack.org/infra/bindep/ for additional information.
|
||||
|
||||
maven
|
||||
openjdk-8-jdk
|
||||
libssl-dev [platform:dpkg]
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -x
|
||||
ME=`whoami`
|
||||
echo "Running as user: $ME"
|
||||
MVN=$1
|
||||
VERSION=$2
|
||||
BRANCH=$3
|
||||
|
||||
check_user() {
|
||||
ME=$1
|
||||
if [ "${ME}" != "zuul" ]; then
|
||||
echo "\nERROR: Download monasca-common and do a mvn install to install the monasca-commom jars\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
BUILD_COMMON=false
|
||||
POM_FILE=~/.m2/repository/monasca-common/monasca-common/${VERSION}/monasca-common-${VERSION}.pom
|
||||
if [ ! -r "${POM_FILE}" ]; then
|
||||
check_user "${ME}"
|
||||
BUILD_COMMON=true
|
||||
fi
|
||||
|
||||
# This should only be done on the stack forge system
|
||||
if [ "${BUILD_COMMON}" = "true" ]; then
|
||||
git clone -b ${BRANCH} https://git.openstack.org/openstack/monasca-common --depth 1
|
||||
cd monasca-common
|
||||
${MVN} clean
|
||||
${MVN} install
|
||||
fi
|
||||
@@ -1,19 +0,0 @@
|
||||
================
|
||||
config-generator
|
||||
================
|
||||
|
||||
To generate sample configuration file execute::
|
||||
|
||||
tox -e genconfig
|
||||
|
||||
To generate the sample policies execute::
|
||||
|
||||
tox -e genpolicy
|
||||
|
||||
After generation you will have sample available in
|
||||
``etc/api-policy.yaml.sample``. It contains default values for all policies.
|
||||
After you change it to suit your needs you will need to change monasca-api
|
||||
configuration to look for the new policy configuration with specific file name.
|
||||
Head to ``monasca-api.conf`` file and then you will need to replace
|
||||
in ``[oslo_policy]`` section ``policy_file`` to your desired file name
|
||||
(like ``api-policy.yaml``).
|
||||
@@ -1,10 +0,0 @@
|
||||
[DEFAULT]
|
||||
output_file = etc/monasca-api.conf.sample
|
||||
wrap_width = 79
|
||||
format = ini
|
||||
summarize = True
|
||||
namespace = monasca_api
|
||||
namespace = oslo.log
|
||||
namespace = oslo.db
|
||||
namespace = oslo.policy
|
||||
namespace = keystonemiddleware.auth_token
|
||||
@@ -1,4 +0,0 @@
|
||||
[DEFAULT]
|
||||
output_file = etc/api-policy.yaml.sample
|
||||
format = yaml
|
||||
namespace = monasca_api
|
||||
@@ -1,94 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
# (C) Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
sleep 6
|
||||
|
||||
function load_devstack_utilities {
|
||||
source $BASE/new/devstack/stackrc
|
||||
source $BASE/new/devstack/functions
|
||||
source $BASE/new/devstack/openrc admin admin
|
||||
}
|
||||
|
||||
function setup_monasca_api {
|
||||
|
||||
local constraints="-c /opt/stack/new/requirements/upper-constraints.txt"
|
||||
|
||||
pushd $TEMPEST_DIR
|
||||
sudo -EH pip install $constraints -r requirements.txt -r test-requirements.txt
|
||||
popd;
|
||||
|
||||
pushd $MONASCA_API_DIR
|
||||
sudo -EH pip install $constraints -r requirements.txt -r test-requirements.txt
|
||||
sudo -EH python setup.py install
|
||||
popd;
|
||||
}
|
||||
|
||||
function set_tempest_conf {
|
||||
|
||||
local conf_file=$TEMPEST_DIR/etc/tempest.conf
|
||||
pushd $TEMPEST_DIR
|
||||
oslo-config-generator \
|
||||
--config-file tempest/cmd/config-generator.tempest.conf \
|
||||
--output-file $conf_file
|
||||
popd
|
||||
|
||||
cp -f $DEST/tempest/etc/logging.conf.sample $DEST/tempest/etc/logging.conf
|
||||
|
||||
# set identity section
|
||||
iniset $conf_file identity admin_domain_scope True
|
||||
iniset $conf_file identity user_unique_last_password_count 2
|
||||
iniset $conf_file identity user_locakout_duration 5
|
||||
iniset $conf_file identity user_lockout_failure_attempts 2
|
||||
iniset $conf_file identity uri $OS_AUTH_URL/v2.0
|
||||
iniset $conf_file identity uri_v3 $OS_AUTH_URL/v3
|
||||
iniset $conf_file identity auth_version v$OS_IDENTITY_API_VERSION
|
||||
# set auth section
|
||||
iniset $conf_file auth use_dynamic_credentials True
|
||||
iniset $conf_file auth admin_username $OS_USERNAME
|
||||
iniset $conf_file auth admin_password $OS_PASSWORD
|
||||
iniset $conf_file auth admin_domain_name $OS_PROJECT_DOMAIN_ID
|
||||
iniset $conf_file auth admin_project_name $OS_PROJECT_NAME
|
||||
|
||||
}
|
||||
|
||||
function function_exists {
|
||||
declare -f -F $1 > /dev/null
|
||||
}
|
||||
|
||||
if ! function_exists echo_summary; then
|
||||
function echo_summary {
|
||||
echo $@
|
||||
}
|
||||
fi
|
||||
|
||||
XTRACE=$(set +o | grep xtrace)
|
||||
set -o xtrace
|
||||
|
||||
echo_summary "monasca's post_test_hook.sh was called..."
|
||||
(set -o posix; set)
|
||||
|
||||
# save ref to monasca-api dir
|
||||
export MONASCA_API_DIR="$BASE/new/monasca-api"
|
||||
export TEMPEST_DIR="$BASE/new/tempest"
|
||||
|
||||
sudo chown -R $USER:stack $MONASCA_API_DIR
|
||||
sudo chown -R $USER:stack $TEMPEST_DIR
|
||||
|
||||
load_devstack_utilities
|
||||
setup_monasca_api
|
||||
set_tempest_conf
|
||||
@@ -1,124 +0,0 @@
|
||||
# Monasca DevStack Plugin
|
||||
|
||||
The Monasca DevStack plugin currently only works on Ubuntu 18.04 (Bionic).
|
||||
More Linux Distributions will be supported in the future.
|
||||
|
||||
Running the Monasca DevStack plugin requires a machine with 10GB of RAM.
|
||||
|
||||
Directions for installing and running Devstack can be found here:
|
||||
|
||||
https://docs.openstack.org/devstack/latest/
|
||||
|
||||
To run Monasca in DevStack, do the following three steps.
|
||||
|
||||
1. Clone the DevStack repo.
|
||||
|
||||
```
|
||||
git clone https://opendev.org/openstack/devstack
|
||||
```
|
||||
|
||||
2. Add the following to the DevStack local.conf file in the root of the devstack directory. You may
|
||||
need to create the local.conf if it does not already exist.
|
||||
|
||||
```
|
||||
# BEGIN DEVSTACK LOCAL.CONF CONTENTS
|
||||
|
||||
[[local|localrc]]
|
||||
DATABASE_PASSWORD=secretdatabase
|
||||
RABBIT_PASSWORD=secretrabbit
|
||||
ADMIN_PASSWORD=secretadmin
|
||||
SERVICE_PASSWORD=secretservice
|
||||
|
||||
LOGFILE=$DEST/logs/stack.sh.log
|
||||
LOGDIR=$DEST/logs
|
||||
LOG_COLOR=False
|
||||
|
||||
# The following variable allow switching between Java and Python for
|
||||
# the implementations of the Monasca Persister. If this variable is not set,
|
||||
# then the default is to install the Python implementation of
|
||||
# the Monasca Persister.
|
||||
|
||||
# Uncomment of the following two lines to choose Java or Python for
|
||||
# the Monasca Pesister.
|
||||
# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Uncomment one of the following two lines to choose either InfluxDB or
|
||||
# Apache Cassandra.
|
||||
# default "influxdb" is selected as metric DB.
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-cassandra}
|
||||
|
||||
# This line will enable all of Monasca.
|
||||
enable_plugin monasca-api https://opendev.org/openstack/monasca-api
|
||||
|
||||
# END DEVSTACK LOCAL.CONF CONTENTS
|
||||
```
|
||||
|
||||
3. Run './stack.sh' from the root of the devstack directory.
|
||||
|
||||
If you want to run Monasca with the bare mininum of OpenStack components
|
||||
you can add the following two lines to the local.conf file.
|
||||
|
||||
```
|
||||
disable_all_services
|
||||
enable_service rabbit mysql key
|
||||
```
|
||||
|
||||
If you also want the Tempest tests to be installed then add `tempest` and
|
||||
`monasca-tempest-plugin`.
|
||||
|
||||
```
|
||||
enable_service rabbit mysql key tempest
|
||||
enable_plugin monasca-tempest-plugin https://opendev.org/openstack/monasca-tempest-plugin
|
||||
```
|
||||
|
||||
To enable Horizon and the Monasca UI add `horizon`
|
||||
|
||||
```
|
||||
enable_service rabbit mysql key horizon tempest
|
||||
```
|
||||
|
||||
# Using Vagrant
|
||||
|
||||
Vagrant can be used to deploy a VM with Devstack and Monasca running in it using the Vagrantfile. After installing Vagrant, just run the command `vagrant up` as usual in the `../monasca-api/devstack` directory.
|
||||
|
||||
To use local repositories in the devstack install, commit your changes to the master branch of the local repo, then modify the `_REPO` variable in the settings file that corresponds to the local repo to use ```file://my/local/repo/location```.
|
||||
To use a local instance of the monasca-api repo, change the ```enable_plugin monasca-api https://opendev.org/openstack/monasca-api``` to ```enable_plugin monasca-api file://my/repo/is/here```. Both of these settings will only take effect on a rebuild of the devstack VM.
|
||||
|
||||
## Enforcing Apache mirror
|
||||
|
||||
If, for any reason, ```APACHE_MIRROR``` that is picked is not working, you can
|
||||
enforce it in following way:
|
||||
|
||||
```sh
|
||||
APACHE_MIRROR=http://www-us.apache.org/dist/
|
||||
```
|
||||
|
||||
## Using WSGI
|
||||
|
||||
Monasca-api can be deployed with Apache using uwsgi and gunicorn.
|
||||
By default monasca-api runs under uwsgi.
|
||||
If you wish to use gunicorn make sure that ```devstack/local.conf```
|
||||
contains:
|
||||
|
||||
```sh
|
||||
MONASCA_API_USE_MOD_WSGI=False
|
||||
```
|
||||
|
||||
# License
|
||||
|
||||
(c) Copyright 2015-2016 Hewlett Packard Enterprise Development Company LP
|
||||
Copyright Fujitsu LIMITED 2017
|
||||
|
||||
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.
|
||||
207
devstack/Vagrantfile
vendored
207
devstack/Vagrantfile
vendored
@@ -1,207 +0,0 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure(2) do |config|
|
||||
|
||||
if Vagrant.has_plugin?("vagrant-cachier")
|
||||
config.cache.scope = :box
|
||||
end
|
||||
|
||||
# Handle local proxy settings
|
||||
if Vagrant.has_plugin?("vagrant-proxyconf")
|
||||
if ENV["http_proxy"]
|
||||
config.proxy.http = ENV["http_proxy"]
|
||||
end
|
||||
if ENV["https_proxy"]
|
||||
config.proxy.https = ENV["https_proxy"]
|
||||
end
|
||||
if ENV["no_proxy"]
|
||||
config.proxy.no_proxy = ENV["no_proxy"] + ',192.168.10.6,10.0.2.15,127.0.0.1'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
config.vm.hostname = "devstack"
|
||||
config.vm.box = "bento/ubuntu-22.04"
|
||||
config.vm.box_check_update = false
|
||||
config.vm.network "private_network",ip:"192.168.10.6"
|
||||
config.vm.synced_folder "~/", "/vagrant_home"
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.gui = false
|
||||
vb.memory = "12800"
|
||||
vb.cpus = 4
|
||||
# vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
|
||||
end
|
||||
|
||||
config.vm.provision "shell", privileged: false, inline: <<-SHELL
|
||||
sudo apt-get update
|
||||
sudo apt-get -y upgrade
|
||||
sudo apt-get -y install git lnav
|
||||
|
||||
if [ $http_proxy ]; then
|
||||
git config --global url.https://git.openstack.org/.insteadOf https://git.openstack.org/
|
||||
sudo git config --global url.https://git.openstack.org/.insteadOf https://git.openstack.org/
|
||||
|
||||
protocol=`echo $http_proxy | awk -F: '{print $1}'`
|
||||
host=`echo $http_proxy | awk -F/ '{print $3}' | awk -F: '{print $1}'`
|
||||
port=`echo $http_proxy | awk -F/ '{print $3}' | awk -F: '{print $2}'`
|
||||
|
||||
echo "<settings>
|
||||
<proxies>
|
||||
<proxy>
|
||||
<id>$host</id>
|
||||
<active>true</active>
|
||||
<protocol>$protocol</protocol>
|
||||
<host>$host</host>
|
||||
<port>$port</port>
|
||||
</proxy>
|
||||
</proxies>
|
||||
</settings>" > ./maven_proxy_settings.xml
|
||||
|
||||
mkdir -p ~/.m2
|
||||
cp ./maven_proxy_settings.xml ~/.m2/settings.xml
|
||||
|
||||
sudo mkdir -p /root/.m2
|
||||
sudo cp ./maven_proxy_settings.xml /root/.m2/settings.xml
|
||||
fi
|
||||
|
||||
git clone https://opendev.org/openstack/devstack.git -b master --depth 1
|
||||
|
||||
# If using vagrant-cachier, restore cached downloads of 3rd-party dependencies
|
||||
if [ -d "/tmp/vagrant-cache" ]; then
|
||||
if [ -d "/tmp/vagrant-cache/downloads" ]; then
|
||||
echo "Restoring downloads"
|
||||
cp /tmp/vagrant-cache/downloads/* devstack/files
|
||||
fi
|
||||
if [ -f "/tmp/vagrant-cache/pip-cache.tar.gz" ]; then
|
||||
echo "Restoring ~/.cache"
|
||||
tar xzf /tmp/vagrant-cache/pip-cache.tar.gz -C ~
|
||||
fi
|
||||
if [ -f "/tmp/vagrant-cache/nvm-cache.tar.gz" ]; then
|
||||
echo "Restoring ~/.nvm/.cache"
|
||||
mkdir -p ~/.nvm
|
||||
tar xzf /tmp/vagrant-cache/nvm-cache.tar.gz -C ~/.nvm
|
||||
fi
|
||||
if [ -f "/tmp/vagrant-cache/npm-pkgs.tar.gz" ]; then
|
||||
echo "Restoring ~/.npm"
|
||||
tar xzf /tmp/vagrant-cache/npm-pkgs.tar.gz -C ~
|
||||
fi
|
||||
if [ -f "/tmp/vagrant-cache/root-pip-cache.tar.gz" ]; then
|
||||
echo "Restoring ~root/.cache"
|
||||
sudo tar xzf /tmp/vagrant-cache/root-pip-cache.tar.gz -C ~root
|
||||
fi
|
||||
if [ -f "/tmp/vagrant-cache/root-m2-cache.tar.gz" ]; then
|
||||
echo "Restoring ~root/.m2"
|
||||
sudo tar xzf /tmp/vagrant-cache/root-m2-cache.tar.gz -C ~root
|
||||
fi
|
||||
fi
|
||||
|
||||
cd devstack
|
||||
echo '[[local|localrc]]
|
||||
|
||||
GIT_DEPTH=1
|
||||
|
||||
SERVICE_HOST=192.168.10.6
|
||||
HOST_IP=192.168.10.6
|
||||
HOST_IP_IFACE=eth1
|
||||
|
||||
DATABASE_PASSWORD=secretdatabase
|
||||
RABBIT_PASSWORD=secretrabbit
|
||||
ADMIN_PASSWORD=secretadmin
|
||||
SERVICE_PASSWORD=secretservice
|
||||
|
||||
LOGFILE=$DEST/logs/stack.sh.log
|
||||
LOGDIR=$DEST/logs
|
||||
LOG_COLOR=False
|
||||
|
||||
DEST=/opt/stack
|
||||
|
||||
disable_all_services
|
||||
enable_service rabbit key tempest horizon
|
||||
|
||||
# Enable more OpenStack services if neccessary:
|
||||
# https://opendev.org/openstack/devstack/src/branch/master/stackrc#L56-L81
|
||||
# Nova - services to support libvirt based openstack clouds
|
||||
# enable_service n-api n-cpu n-cond n-sch n-novnc n-cauth n-api-meta
|
||||
# Placement and Glance services needed for Nova
|
||||
# enable_service placement-api placement-client
|
||||
# enable_service g-api g-reg
|
||||
# Cinder, Neutron
|
||||
# enable_service cinder c-api c-vol c-sch c-bak
|
||||
# enable_service neutron q-svc q-agt q-dhcp q-meta q-l3
|
||||
|
||||
# Uncomment one of the following lines to use either MySQL or PostgreSQL
|
||||
# as RDB (relational database) backend for monasca.
|
||||
enable_service mysql
|
||||
#enable_service postgresql
|
||||
|
||||
# Enable entire storm for the sake of local development mode
|
||||
enable_service monasca-storm-nimbus
|
||||
enable_service monasca-storm-supervisor
|
||||
enable_service monasca-storm-ui
|
||||
enable_service monasca-storm-logviewer
|
||||
enable_service monasca-log
|
||||
|
||||
|
||||
# Uncomment this line to disable log part
|
||||
# disable_service monasca-log
|
||||
|
||||
# Enable/Disable ORM support for mysql/postgresql
|
||||
# HINT: If postgresql service is enabled, ORM is enforced
|
||||
MONASCA_DATABASE_USE_ORM=${MONASCA_DATABASE_USE_ORM:-false}
|
||||
|
||||
# The following two variables allow switching between Java and Python for the implementations
|
||||
# of the Monasca API and the Monasca Persister. If these variables are not set, then the
|
||||
# default is to install the Python implementations of both the Monasca API and the Monasca Persister.
|
||||
|
||||
# Uncomment one of the following two lines to choose Java or Python for the Monasca API.
|
||||
# MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Uncomment one of the following two lines to choose Java or Python for the Monasca Pesister.
|
||||
# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Uncomment one of the following three lines to choose either InfluxDB, Vertica or Cassandra.
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-cassandra}
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
|
||||
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-True}
|
||||
|
||||
# Uncomment to stack devstack with old log-api
|
||||
# USE_OLD_LOG_API=true
|
||||
# enable_service monasca-log-api
|
||||
|
||||
# Start devstack with services running under Python 3
|
||||
USE_PYTHON3=True
|
||||
|
||||
|
||||
# Uncomment one of the following lines and modify accordingly to enable the Monasca DevStack Plugin
|
||||
enable_plugin monasca-api https://opendev.org/openstack/monasca-api
|
||||
# enable_plugin monasca-api file:///vagrant_home/Documents/repos/openstack/monasca-api.vertica
|
||||
|
||||
# Uncomment to install tempest tests
|
||||
enable_plugin monasca-tempest-plugin https://opendev.org/openstack/monasca-tempest-plugin
|
||||
|
||||
' > local.conf
|
||||
sudo apt purge -y python3-simplejson
|
||||
./stack.sh
|
||||
# Cache downloaded files for future runs
|
||||
if [ -d "/tmp/vagrant-cache" ]; then
|
||||
mkdir -p /tmp/vagrant-cache/downloads
|
||||
cp files/*gz files/*.deb /tmp/vagrant-cache/downloads
|
||||
tar czf /tmp/vagrant-cache/pip-cache.tar.gz -C ~ .cache
|
||||
tar czf /tmp/vagrant-cache/nvm-cache.tar.gz -C ~/.nvm .cache
|
||||
tar czf /tmp/vagrant-cache/npm-pkgs.tar.gz -C ~ .npm
|
||||
sudo tar czf /tmp/vagrant-cache/root-pip-cache.tar.gz -C ~root .cache
|
||||
sudo tar czf /tmp/vagrant-cache/root-m2-cache.tar.gz -C ~root .m2
|
||||
fi
|
||||
SHELL
|
||||
|
||||
end
|
||||
@@ -1,93 +0,0 @@
|
||||
// (C) Copyright 2017 SUSE LLC
|
||||
//
|
||||
// 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.
|
||||
|
||||
// version 1.0
|
||||
|
||||
drop schema if exists monasca;
|
||||
|
||||
// replication factor is set to 1 for devstack installation
|
||||
|
||||
create schema monasca with replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
|
||||
|
||||
create table monasca.measurements (
|
||||
metric_id blob,
|
||||
region text static,
|
||||
tenant_id text static,
|
||||
metric_name text static,
|
||||
dimensions frozen<list<text>> static,
|
||||
time_stamp timestamp,
|
||||
value double,
|
||||
value_meta text,
|
||||
primary key (metric_id, time_stamp)
|
||||
)
|
||||
WITH CLUSTERING ORDER BY (time_stamp ASC);
|
||||
|
||||
create table monasca.metrics (
|
||||
region text,
|
||||
tenant_id text,
|
||||
metric_name text,
|
||||
dimensions frozen<list<text>>,
|
||||
dimension_names frozen<list<text>>,
|
||||
metric_id blob,
|
||||
created_at timestamp,
|
||||
updated_at timestamp,
|
||||
primary key ((region, tenant_id, metric_name), dimensions, dimension_names)
|
||||
);
|
||||
|
||||
CREATE CUSTOM INDEX metrics_created_at_index ON monasca.metrics (created_at)
|
||||
USING 'org.apache.cassandra.index.sasi.SASIIndex';
|
||||
|
||||
CREATE CUSTOM INDEX metrics_updated_at_index ON monasca.metrics (updated_at)
|
||||
USING 'org.apache.cassandra.index.sasi.SASIIndex';
|
||||
|
||||
create table monasca.dimensions (
|
||||
region text,
|
||||
tenant_id text,
|
||||
name text,
|
||||
value text,
|
||||
primary key ((region, tenant_id, name), value)
|
||||
);
|
||||
|
||||
create table monasca.dimensions_metrics (
|
||||
region text,
|
||||
tenant_id text,
|
||||
dimension_name text,
|
||||
dimension_value text,
|
||||
metric_name text,
|
||||
primary key ((region, tenant_id, dimension_name, dimension_value), metric_name)
|
||||
);
|
||||
|
||||
create table monasca.metrics_dimensions (
|
||||
region text,
|
||||
tenant_id text,
|
||||
dimension_name text,
|
||||
dimension_value text,
|
||||
metric_name text,
|
||||
primary key ((region, tenant_id, metric_name), dimension_name, dimension_value)
|
||||
);
|
||||
|
||||
create table monasca.alarm_state_history (
|
||||
tenant_id text,
|
||||
alarm_id text,
|
||||
time_stamp timestamp,
|
||||
metric text,
|
||||
old_state text,
|
||||
new_state text,
|
||||
reason text,
|
||||
reason_data text,
|
||||
sub_alarms text,
|
||||
primary key ((tenant_id, alarm_id), time_stamp)
|
||||
);
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
openjdk-8-jdk # dist:xenial,bionic,focal,jammy,noble
|
||||
openjdk-8-jre-headless # dist:bionic,focal,jammy,noble
|
||||
maven # dist:xenial,bionic,focal,jammy,noble
|
||||
jq # dist:xenial,bionic,focal,jammy,noble
|
||||
python-dev # dist:xenial,bionic,focal
|
||||
python3-dev # dist:jammy,noble
|
||||
build-essential # dist:xenial,bionic,focal,jammy,noble
|
||||
mailutils # dist:xenial,bionic,focal,jammy,noble
|
||||
python-is-python3 # dist:focal,jammy,noble
|
||||
@@ -1,88 +0,0 @@
|
||||
# ======================== Elasticsearch Configuration =========================
|
||||
#
|
||||
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
|
||||
# Before you set out to tweak and tune the configuration, make sure you
|
||||
# understand what are you trying to accomplish and the consequences.
|
||||
#
|
||||
# The primary way of configuring a node is via this file. This template lists
|
||||
# the most important settings you may want to configure for a production cluster.
|
||||
#
|
||||
# Please consult the documentation for further information on configuration options:
|
||||
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
|
||||
#
|
||||
# ---------------------------------- Cluster -----------------------------------
|
||||
#
|
||||
# Use a descriptive name for your cluster:
|
||||
#
|
||||
cluster.name: monasca_elastic
|
||||
#
|
||||
# ------------------------------------ Node ------------------------------------
|
||||
#
|
||||
# Use a descriptive name for the node:
|
||||
#
|
||||
#node.name: node-1
|
||||
#
|
||||
# Add custom attributes to the node:
|
||||
#
|
||||
#node.attr.rack: r1
|
||||
#
|
||||
# ----------------------------------- Paths ------------------------------------
|
||||
#
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
#
|
||||
path.data: %ES_DATA_DIR%
|
||||
#
|
||||
# Path to log files:
|
||||
#
|
||||
path.logs: %ES_LOG_DIR%
|
||||
#
|
||||
# ----------------------------------- Memory -----------------------------------
|
||||
#
|
||||
# Lock the memory on startup:
|
||||
#
|
||||
#bootstrap.memory_lock: true
|
||||
#
|
||||
# Make sure that the heap size is set to about half the memory available
|
||||
# on the system and that the owner of the process is allowed to use this
|
||||
# limit.
|
||||
#
|
||||
# Elasticsearch performs poorly when the system is swapping the memory.
|
||||
#
|
||||
# ---------------------------------- Network -----------------------------------
|
||||
#
|
||||
# Set the bind address to a specific IP (IPv4 or IPv6):
|
||||
#
|
||||
network.host: %ES_SERVICE_BIND_HOST%
|
||||
#
|
||||
# Set a custom port for HTTP:
|
||||
#
|
||||
http.port: %ES_SERVICE_BIND_PORT%
|
||||
#
|
||||
# For more information, consult the network module documentation.
|
||||
#
|
||||
# --------------------------------- Discovery ----------------------------------
|
||||
#
|
||||
# Pass an initial list of hosts to perform discovery when this node is started:
|
||||
# The default list of hosts is ["127.0.0.1", "[::1]"]
|
||||
#
|
||||
#discovery.seed_hosts: ["host1", "host2"]
|
||||
#
|
||||
# Bootstrap the cluster using an initial set of master-eligible nodes:
|
||||
#
|
||||
cluster.initial_master_nodes: ["%ES_SERVICE_BIND_HOST%"]
|
||||
#
|
||||
# For more information, consult the discovery and cluster formation module documentation.
|
||||
#
|
||||
# ---------------------------------- Gateway -----------------------------------
|
||||
#
|
||||
# Block initial recovery after a full cluster restart until N nodes are started:
|
||||
#
|
||||
#gateway.recover_after_nodes: 3
|
||||
#
|
||||
# For more information, consult the gateway module documentation.
|
||||
#
|
||||
# ---------------------------------- Various -----------------------------------
|
||||
#
|
||||
# Require explicit names when deleting indices:
|
||||
#
|
||||
#action.destructive_requires_name: true
|
||||
@@ -1,988 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Openstack Dashboard",
|
||||
"originalTitle": "Openstack Dashboard",
|
||||
"tags": [],
|
||||
"style": "light",
|
||||
"timezone": "browser",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{
|
||||
"title": "OpenStack Health",
|
||||
"height": "100px",
|
||||
"editable": true,
|
||||
"collapse": false,
|
||||
"collapsable": true,
|
||||
"panels": [
|
||||
{
|
||||
"title": "compute (Nova)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 1,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"condition_filter": true,
|
||||
"dimensions": [{"key": "service", "value": "compute"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
},
|
||||
{
|
||||
"title": "networking (Neutron)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 4,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"condition_filter": true,
|
||||
"dimensions": [{"key": "service", "value": "networking"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
},
|
||||
{
|
||||
"title": "image-service (Glance)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 5,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"condition_filter": true,
|
||||
"dimensions": [{"key": "service", "value": "image-service"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
},
|
||||
{
|
||||
"title": "block-storage (Cinder)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 7,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"condition_filter": true,
|
||||
"dimensions": [{"key": "service", "value": "block-storage"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
},
|
||||
{
|
||||
"title": "object-storage (Swift)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 8,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"dimensions": [{"key": "service", "value": "object-storage"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
},
|
||||
{
|
||||
"title": "identity-service (Keystone)",
|
||||
"error": false,
|
||||
"span": 2,
|
||||
"editable": true,
|
||||
"type": "singlestat",
|
||||
"id": 12,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"interval": null,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "http_status",
|
||||
"dimensions": [{"key": "service", "value": "identity-service"}]
|
||||
}
|
||||
],
|
||||
"cacheTimeout": null,
|
||||
"format": "none",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"nullText": null,
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"nullPointMode": "connected",
|
||||
"valueName": "current",
|
||||
"prefixFontSize": "50%",
|
||||
"valueFontSize": "80%",
|
||||
"postfixFontSize": "50%",
|
||||
"thresholds": "-1.0,0.2,0.8",
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"sparkline": {
|
||||
"show": false,
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)"
|
||||
},
|
||||
"height": "100"
|
||||
}
|
||||
],
|
||||
"notice": false,
|
||||
"showTitle": true
|
||||
},
|
||||
{
|
||||
"title": "System Resources",
|
||||
"height": "250px",
|
||||
"editable": true,
|
||||
"collapse": false,
|
||||
"collapsable": true,
|
||||
"panels": [
|
||||
{
|
||||
"span": 6,
|
||||
"editable": true,
|
||||
"type": "graph",
|
||||
"loadingEditor": false,
|
||||
"renderer": "flot",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"scale": 1,
|
||||
"y_formats": [
|
||||
"percent",
|
||||
"none"
|
||||
],
|
||||
"grid": {
|
||||
"max": null,
|
||||
"min": null,
|
||||
"threshold1": null,
|
||||
"threshold2": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)",
|
||||
"leftMax": 100,
|
||||
"rightMax": null,
|
||||
"leftMin": 0,
|
||||
"rightMin": null
|
||||
},
|
||||
"annotate": {
|
||||
"enable": false
|
||||
},
|
||||
"resolution": 100,
|
||||
"lines": true,
|
||||
"fill": 0,
|
||||
"linewidth": 1,
|
||||
"points": false,
|
||||
"pointradius": 5,
|
||||
"bars": false,
|
||||
"stack": false,
|
||||
"legend": {
|
||||
"show": true,
|
||||
"values": false,
|
||||
"min": false,
|
||||
"max": false,
|
||||
"current": false,
|
||||
"total": false,
|
||||
"avg": false,
|
||||
"alignAsTable": true,
|
||||
"rightSide": false
|
||||
},
|
||||
"percentage": false,
|
||||
"zerofill": true,
|
||||
"nullPointMode": "null",
|
||||
"steppedLine": false,
|
||||
"tooltip": {
|
||||
"value_type": "cumulative",
|
||||
"query_as_alias": true,
|
||||
"shared": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "cpu.percent",
|
||||
"condition_filter": false,
|
||||
"alias": "cpu.percent (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "cpu.wait_perc",
|
||||
"alias": "cpu.wait_perc (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "cpu.system_perc",
|
||||
"alias": "cpu.system_perc (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "cpu.user_perc",
|
||||
"alias": "cpu.user_perc (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"aliasColors": {},
|
||||
"title": "CPU usage",
|
||||
"id": 2,
|
||||
"seriesOverrides": [],
|
||||
"links": [],
|
||||
"leftYAxisLabel": ""
|
||||
},
|
||||
{
|
||||
"title": "Memory usage",
|
||||
"error": false,
|
||||
"span": 6,
|
||||
"editable": true,
|
||||
"type": "graph",
|
||||
"id": 13,
|
||||
"renderer": "flot",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"none",
|
||||
"none"
|
||||
],
|
||||
"grid": {
|
||||
"leftMax": null,
|
||||
"rightMax": null,
|
||||
"leftMin": 0,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold2": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)",
|
||||
"thresholdLine": false
|
||||
},
|
||||
"lines": true,
|
||||
"fill": 0,
|
||||
"linewidth": 1,
|
||||
"points": false,
|
||||
"pointradius": 5,
|
||||
"bars": false,
|
||||
"stack": false,
|
||||
"percentage": false,
|
||||
"legend": {
|
||||
"show": true,
|
||||
"values": false,
|
||||
"min": false,
|
||||
"max": false,
|
||||
"current": false,
|
||||
"total": false,
|
||||
"avg": false,
|
||||
"alignAsTable": true,
|
||||
"rightSide": false
|
||||
},
|
||||
"nullPointMode": "null",
|
||||
"steppedLine": false,
|
||||
"tooltip": {
|
||||
"value_type": "cumulative",
|
||||
"shared": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "mem.total_mb",
|
||||
"merge": false,
|
||||
"alias": "mem.total_mb (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "mem.swap_used_mb",
|
||||
"alias": "mem.swap_used_mb (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "mem.used_mb",
|
||||
"alias": "mem.used_mb (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "mem.swap_total_mb",
|
||||
"alias": "mem.swap_total_mb (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "mem.used_cache",
|
||||
"alias": "mem.used_cache (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"aliasColors": {},
|
||||
"seriesOverrides": [],
|
||||
"links": [],
|
||||
"leftYAxisLabel": "MB"
|
||||
},
|
||||
{
|
||||
"title": "Disk usage",
|
||||
"error": false,
|
||||
"span": 6,
|
||||
"editable": true,
|
||||
"type": "graph",
|
||||
"id": 14,
|
||||
"renderer": "flot",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"percent",
|
||||
"short"
|
||||
],
|
||||
"grid": {
|
||||
"leftMax": 100,
|
||||
"rightMax": null,
|
||||
"leftMin": 0,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"lines": true,
|
||||
"fill": 0,
|
||||
"linewidth": 1,
|
||||
"points": false,
|
||||
"pointradius": 5,
|
||||
"bars": false,
|
||||
"stack": false,
|
||||
"percentage": false,
|
||||
"legend": {
|
||||
"show": true,
|
||||
"values": false,
|
||||
"min": false,
|
||||
"max": false,
|
||||
"current": false,
|
||||
"total": false,
|
||||
"avg": false,
|
||||
"alignAsTable": true,
|
||||
"rightSide": false,
|
||||
"sortDesc": null,
|
||||
"sort": null
|
||||
},
|
||||
"nullPointMode": "null",
|
||||
"steppedLine": false,
|
||||
"tooltip": {
|
||||
"value_type": "cumulative",
|
||||
"shared": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "disk.space_used_perc",
|
||||
"merge": false,
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
},
|
||||
{
|
||||
"key": "device",
|
||||
"value": "rootfs"
|
||||
}
|
||||
],
|
||||
"alias": "disk.space_used_perc (@hostname @device)"
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "disk.space_used_perc",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
},
|
||||
{
|
||||
"key": "mount_point",
|
||||
"value": "/boot"
|
||||
}
|
||||
],
|
||||
"alias": "disk.space_used_perc (@hostname @mount_point)"
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "disk.space_used_perc",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
},
|
||||
{
|
||||
"key": "mount_point",
|
||||
"value": "/srv/node/swiftloopback"
|
||||
}
|
||||
],
|
||||
"alias": "disk.space_used_perc (@hostname @mount_point)"
|
||||
}
|
||||
],
|
||||
"aliasColors": {},
|
||||
"seriesOverrides": [],
|
||||
"links": []
|
||||
},
|
||||
{
|
||||
"title": "System load",
|
||||
"error": false,
|
||||
"span": 6,
|
||||
"editable": true,
|
||||
"type": "graph",
|
||||
"id": 15,
|
||||
"renderer": "flot",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"none",
|
||||
"short"
|
||||
],
|
||||
"grid": {
|
||||
"leftMax": null,
|
||||
"rightMax": null,
|
||||
"leftMin": 0,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold2": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"lines": true,
|
||||
"fill": 0,
|
||||
"linewidth": 1,
|
||||
"points": false,
|
||||
"pointradius": 5,
|
||||
"bars": false,
|
||||
"stack": false,
|
||||
"percentage": false,
|
||||
"legend": {
|
||||
"show": true,
|
||||
"values": false,
|
||||
"min": false,
|
||||
"max": false,
|
||||
"current": false,
|
||||
"total": false,
|
||||
"avg": false,
|
||||
"alignAsTable": true
|
||||
},
|
||||
"nullPointMode": "null",
|
||||
"steppedLine": false,
|
||||
"tooltip": {
|
||||
"value_type": "cumulative",
|
||||
"shared": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "load.avg_1_min",
|
||||
"alias": "load.avg_1_min (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "load.avg_5_min",
|
||||
"alias": "load.avg_5_min (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "load.avg_15_min",
|
||||
"alias": "load.avg_15_min (@hostname)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"aliasColors": {},
|
||||
"seriesOverrides": [],
|
||||
"links": []
|
||||
}
|
||||
],
|
||||
"notice": false,
|
||||
"showTitle": true
|
||||
},
|
||||
{
|
||||
"title": "Network monitoring",
|
||||
"height": "250px",
|
||||
"editable": true,
|
||||
"collapse": false,
|
||||
"panels": [
|
||||
{
|
||||
"title": "Network usage",
|
||||
"error": false,
|
||||
"span": 6,
|
||||
"editable": true,
|
||||
"type": "graph",
|
||||
"id": 16,
|
||||
|
||||
"renderer": "flot",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"bps",
|
||||
"short"
|
||||
],
|
||||
"grid": {
|
||||
"leftMax": null,
|
||||
"rightMax": null,
|
||||
"leftMin": 0,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold2": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"lines": true,
|
||||
"fill": 0,
|
||||
"linewidth": 1,
|
||||
"points": false,
|
||||
"pointradius": 5,
|
||||
"bars": false,
|
||||
"stack": false,
|
||||
"percentage": false,
|
||||
"legend": {
|
||||
"show": true,
|
||||
"values": false,
|
||||
"min": false,
|
||||
"max": false,
|
||||
"current": false,
|
||||
"total": false,
|
||||
"avg": false,
|
||||
"alignAsTable": true
|
||||
},
|
||||
"nullPointMode": "connected",
|
||||
"steppedLine": false,
|
||||
"tooltip": {
|
||||
"value_type": "cumulative",
|
||||
"shared": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"metric": "net.in_bytes_sec",
|
||||
"merge": true,
|
||||
"alias": "net.in_bytes_sec (@hostname @device)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
},
|
||||
{
|
||||
"key": "device",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "",
|
||||
"aggregator": "none",
|
||||
"column": "value",
|
||||
"merge": true,
|
||||
"metric": "net.out_bytes_sec",
|
||||
"alias": "net.out_bytes_sec (@hostname @device)",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "hostname",
|
||||
"value": "$all"
|
||||
},
|
||||
{
|
||||
"key": "device",
|
||||
"value": "$all"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"aliasColors": {},
|
||||
"seriesOverrides": [],
|
||||
"links": []
|
||||
}
|
||||
],
|
||||
"showTitle": true
|
||||
}
|
||||
],
|
||||
"nav": [
|
||||
{
|
||||
"type": "timepicker",
|
||||
"collapse": false,
|
||||
"notice": false,
|
||||
"enable": true,
|
||||
"status": "Stable",
|
||||
"time_options": [
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
],
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"now": true
|
||||
}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"templating": {
|
||||
"list": [],
|
||||
"enable": false
|
||||
},
|
||||
"annotations": {
|
||||
"enable": false,
|
||||
"list": []
|
||||
},
|
||||
"refresh": "30s",
|
||||
"version": 6,
|
||||
"hideAllLegends": false
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,709 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "MariaDB",
|
||||
"tags": [
|
||||
"common"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 15,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "mysqld"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "MariaDB",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "mysqld"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "mysqld"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.data_reads",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.data_writes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Data Read/Write",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"fill": 1,
|
||||
"id": 7,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "mysqld"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "mysqld"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.buffer_pool_free",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.buffer_pool_total",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.buffer_pool_used",
|
||||
"period": "300",
|
||||
"refId": "C"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Buffer Pool Size",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"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": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.row_lock_time",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "mysql.innodb.row_lock_waits",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Lock",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Monasca API",
|
||||
"tags": [
|
||||
"metrics"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "uwsgi"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Monasca API",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-api"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Storm",
|
||||
"tags": [
|
||||
"metrics"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Storm",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "storm"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Persister",
|
||||
"tags": [
|
||||
"metrics"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Persister",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,564 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Metrics DB",
|
||||
"tags": [
|
||||
"metrics"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(71, 212, 59, 0.4)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(225, 40, 40, 0.59)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [{"key": "service", "value": "influxdb"}],
|
||||
"error": "",
|
||||
"metric": "http_status",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "InfluxDB",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "influxd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,760 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Zookeper",
|
||||
"tags": [
|
||||
"common"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 15,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"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": 2,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Zookeper",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"op": "=",
|
||||
"text": "UP",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"op": "=",
|
||||
"text": "UP",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"op": "=",
|
||||
"text": "UP",
|
||||
"value": "3"
|
||||
},
|
||||
{
|
||||
"op": "=",
|
||||
"text": "UP",
|
||||
"value": "4"
|
||||
},
|
||||
{
|
||||
"op": "=",
|
||||
"text": "UP",
|
||||
"value": "5"
|
||||
},
|
||||
{
|
||||
"op": "=",
|
||||
"text": "DOWN",
|
||||
"value": "0"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "mbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 7,
|
||||
"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": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "zookeeper"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 8,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "zookeeper.avg_latency_sec",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "zookeeper.max_latency_sec",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "zookeeper.min_latency_sec",
|
||||
"period": "300",
|
||||
"refId": "C"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 9,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [],
|
||||
"error": "",
|
||||
"metric": "zookeeper.connections_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Conections count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Notification Engine",
|
||||
"tags": [
|
||||
"metrics"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Notification",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-notification"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Kafka",
|
||||
"tags": [
|
||||
"common"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Kafka",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kafka"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Monasca statsd",
|
||||
"tags": [
|
||||
"common"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Monasca statsd",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "monasca-statsd"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Kibana",
|
||||
"tags": [
|
||||
"logs"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Kibana",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "kibana"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Log Transformer",
|
||||
"tags": [
|
||||
"logs"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Log Transformer",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-transformer"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Log Metrics",
|
||||
"tags": [
|
||||
"logs"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Log Metrics",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-metrics"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,624 +0,0 @@
|
||||
{
|
||||
"id": null,
|
||||
"title": "Log Persister",
|
||||
"tags": [
|
||||
"logs"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"editable": true,
|
||||
"sharedCrosshair": false,
|
||||
"hideControls": 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"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 13,
|
||||
"version": 7,
|
||||
"links": [],
|
||||
"gnetId": null,
|
||||
"rows": [
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": true,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(225, 40, 40, 0.59)",
|
||||
"rgba(245, 150, 40, 0.73)",
|
||||
"rgba(71, 212, 59, 0.4)"
|
||||
],
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"id": 1,
|
||||
"interval": null,
|
||||
"links": [],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"span": 4,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "none",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "service",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.pid_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "0.2,0.8",
|
||||
"title": "Log Persister",
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"value": "0",
|
||||
"op": "=",
|
||||
"text": "DOWN"
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "8",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "10",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "11",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
},
|
||||
{
|
||||
"value": "12",
|
||||
"op": "=",
|
||||
"text": "UP"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.cpu_perc",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "percent",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 3,
|
||||
"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": [],
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.mem.rss_mbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": "250px",
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_count",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_count",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Count",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"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,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 5,
|
||||
"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": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.read_kbytes",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.io.write_kbytes",
|
||||
"period": "300",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "IO Read/Write [kB]",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "kbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
},
|
||||
{
|
||||
"title": "Dashboard Row",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 1,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"aggregator": "avg",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "process_name",
|
||||
"value": "log-persister"
|
||||
}
|
||||
],
|
||||
"error": "",
|
||||
"metric": "process.open_file_descriptors",
|
||||
"period": "300",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Open File Descriptors",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": false,
|
||||
"titleSize": "h6",
|
||||
"height": 250,
|
||||
"repeat": null,
|
||||
"repeatRowId": null,
|
||||
"repeatIteration": null,
|
||||
"collapse": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
# coding=utf-8
|
||||
|
||||
# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
|
||||
#
|
||||
# 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 glob
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
from requests import RequestException
|
||||
from requests import Session
|
||||
|
||||
LOG_LEVEL = logging.getLevelName(os.environ.get('LOG_LEVEL', 'INFO'))
|
||||
logging.basicConfig(level=LOG_LEVEL)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
GRAFANA_URL = os.environ.get('GRAFANA_URL', 'http://localhost:3000')
|
||||
GRAFANA_USERNAME = os.environ.get('GRAFANA_USERNAME', 'mini-mon')
|
||||
GRAFANA_PASSWORD = os.environ.get('GRAFANA_PASSWORD', 'password')
|
||||
GRAFANA_USERS = [{'user': GRAFANA_USERNAME, 'password': GRAFANA_PASSWORD, 'email': ''}]
|
||||
|
||||
DATASOURCE_NAME = os.environ.get('DATASOURCE_NAME', 'monasca')
|
||||
DATASOURCE_URL = os.environ.get('DATASOURCE_URL', 'http://localhost/metrics')
|
||||
DATASOURCE_ACCESS_MODE = os.environ.get('DATASOURCE_ACCESS_MODE', 'proxy')
|
||||
DATASOURCE_AUTH = os.environ.get('DATASOURCE_AUTH', 'Keystone').capitalize()
|
||||
DATASOURCE_AUTH_TOKEN = os.environ.get('DATASOURCE_AUTH_TOKEN', '')
|
||||
|
||||
DASHBOARDS_DIR = os.environ.get('DASHBOARDS_DIR', '/dashboards.d')
|
||||
|
||||
|
||||
def retry(retries=5, delay=2.0, exc_types=(RequestException,)):
|
||||
def decorator(func):
|
||||
def f_retry(*args, **kwargs):
|
||||
for i in range(retries):
|
||||
try:
|
||||
return func(*args, **kwargs)
|
||||
except exc_types as exc:
|
||||
if i < retries - 1:
|
||||
logger.debug('Caught exception, retrying...',
|
||||
exc_info=True)
|
||||
time.sleep(delay)
|
||||
else:
|
||||
logger.exception('Failed after %d attempts', retries)
|
||||
if isinstance(exc, RequestException):
|
||||
logger.debug('Response was: %r', exc.response.text)
|
||||
|
||||
raise
|
||||
return f_retry
|
||||
return decorator
|
||||
|
||||
|
||||
def create_login_payload():
|
||||
if os.environ.get('GRAFANA_USERS'):
|
||||
try:
|
||||
json.loads(os.environ.get('GRAFANA_USERS'))
|
||||
except ValueError:
|
||||
print("Invalid type GRAFANA_USERS")
|
||||
raise
|
||||
grafana_users = json.loads(os.environ.get('GRAFANA_USERS'))
|
||||
else:
|
||||
grafana_users = GRAFANA_USERS
|
||||
return grafana_users
|
||||
|
||||
|
||||
@retry(retries=24, delay=5.0)
|
||||
def login(session, user):
|
||||
r = session.post('{url}/login'.format(url=GRAFANA_URL),
|
||||
json=user,
|
||||
timeout=5)
|
||||
r.raise_for_status()
|
||||
|
||||
|
||||
@retry(retries=12, delay=5.0)
|
||||
def check_initialized(session):
|
||||
r = session.get('{url}/api/datasources'.format(url=GRAFANA_URL), timeout=5)
|
||||
r.raise_for_status()
|
||||
|
||||
logging.debug('existing datasources = %r', r.json())
|
||||
|
||||
for datasource in r.json():
|
||||
if datasource['name'] == DATASOURCE_NAME:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def create_datasource_payload():
|
||||
payload = {
|
||||
'name': DATASOURCE_NAME,
|
||||
'url': DATASOURCE_URL,
|
||||
'access': DATASOURCE_ACCESS_MODE,
|
||||
'isDefault': True,
|
||||
}
|
||||
|
||||
if DATASOURCE_AUTH not in ['Keystone', 'Horizon', 'Token']:
|
||||
logger.error('Unknown Keystone authentication option: %s',
|
||||
DATASOURCE_AUTH)
|
||||
sys.exit(1)
|
||||
|
||||
keystone_auth = False
|
||||
if DATASOURCE_AUTH in ['Keystone']:
|
||||
keystone_auth = True
|
||||
|
||||
payload.update({
|
||||
'monasca': {
|
||||
'type': 'monasca-datasource',
|
||||
'jsonData': {
|
||||
'authMode': DATASOURCE_AUTH,
|
||||
'keystoneAuth': keystone_auth,
|
||||
'token': DATASOURCE_AUTH_TOKEN,
|
||||
}
|
||||
}
|
||||
}.get(DATASOURCE_NAME, {}))
|
||||
|
||||
logging.debug('payload = %r', payload)
|
||||
|
||||
return payload
|
||||
|
||||
|
||||
def create_dashboard_payload(json_path):
|
||||
with open(json_path, 'r') as f:
|
||||
dashboard = json.load(f)
|
||||
dashboard['id'] = None
|
||||
|
||||
return {
|
||||
'dashboard': dashboard,
|
||||
'overwrite': False
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
for user in create_login_payload():
|
||||
logging.info('Opening a Grafana session...')
|
||||
session = Session()
|
||||
login(session, user)
|
||||
|
||||
if check_initialized(session):
|
||||
logging.info('Grafana has already been initialized, skipping!')
|
||||
return
|
||||
|
||||
logging.info('Attempting to add configured datasource...')
|
||||
r = session.post('{url}/api/datasources'.format(url=GRAFANA_URL),
|
||||
json=create_datasource_payload())
|
||||
logging.debug('Response: %r', r.json())
|
||||
r.raise_for_status()
|
||||
|
||||
for path in sorted(glob.glob('{dir}/*.json'.format(dir=DASHBOARDS_DIR))):
|
||||
logging.info('Creating dashboard from file: {path}'.format(path=path))
|
||||
r = session.post('{url}/api/dashboards/db'.format(url=GRAFANA_URL),
|
||||
json=create_dashboard_payload(path))
|
||||
logging.debug('Response: %r', r.json())
|
||||
r.raise_for_status()
|
||||
|
||||
logging.info('Ending %r session...', user.get('user'))
|
||||
session.get('{url}/logout'.format(url=GRAFANA_URL))
|
||||
|
||||
logging.info('Finished successfully.')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,146 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# chkconfig: 2345 80 05
|
||||
# description: Grafana web server & backend
|
||||
# processname: grafana-server
|
||||
# config: /etc/grafana/grafana.ini
|
||||
# pidfile: /var/run/grafana-server.pid
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: grafana-server
|
||||
# Required-Start: $all
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start grafana at boot time
|
||||
### END INIT INFO
|
||||
|
||||
# tested on
|
||||
# 1. New lsb that define start-stop-daemon
|
||||
# 3. Centos with initscripts package installed
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
NAME=grafana-server
|
||||
DESC="Grafana Server"
|
||||
DEFAULT=/etc/default/$NAME
|
||||
|
||||
GRAFANA_USER=grafana
|
||||
GRAFANA_GROUP=grafana
|
||||
GRAFANA_HOME=/usr/share/grafana
|
||||
CONF_DIR=/etc/grafana
|
||||
WORK_DIR=$GRAFANA_HOME
|
||||
DATA_DIR=/var/lib/grafana
|
||||
LOG_DIR=/var/log/grafana
|
||||
CONF_FILE=$CONF_DIR/grafana.ini
|
||||
MAX_OPEN_FILES=10000
|
||||
PID_FILE=/var/run/$NAME.pid
|
||||
DAEMON=/usr/sbin/$NAME
|
||||
|
||||
umask 0027
|
||||
|
||||
if [ `id -u` -ne 0 ]; then
|
||||
echo "You need root privileges to run this script"
|
||||
exit 4
|
||||
fi
|
||||
|
||||
if [ ! -x $DAEMON ]; then
|
||||
echo "Program not installed or not executable"
|
||||
exit 5
|
||||
fi
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
if [ -r /etc/default/rcS ]; then
|
||||
. /etc/default/rcS
|
||||
fi
|
||||
|
||||
# overwrite settings from default file
|
||||
if [ -f "$DEFAULT" ]; then
|
||||
. "$DEFAULT"
|
||||
fi
|
||||
|
||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR}"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
|
||||
log_daemon_msg "Starting $DESC"
|
||||
|
||||
pid=`pidofproc -p $PID_FILE grafana`
|
||||
if [ -n "$pid" ] ; then
|
||||
log_begin_msg "Already running."
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Prepare environment
|
||||
mkdir -p "$LOG_DIR" "$DATA_DIR" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$LOG_DIR" "$DATA_DIR"
|
||||
touch "$PID_FILE" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$PID_FILE"
|
||||
|
||||
if [ -n "$MAX_OPEN_FILES" ]; then
|
||||
ulimit -n $MAX_OPEN_FILES
|
||||
fi
|
||||
|
||||
# Start Daemon
|
||||
start-stop-daemon --start -b --chdir "$WORK_DIR" --user "$GRAFANA_USER" -c "$GRAFANA_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
|
||||
return=$?
|
||||
if [ $return -eq 0 ]
|
||||
then
|
||||
sleep 1
|
||||
|
||||
# check if pid file has been written two
|
||||
if ! [[ -s $PID_FILE ]]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
i=0
|
||||
timeout=10
|
||||
# Wait for the process to be properly started before exiting
|
||||
until { cat "$PID_FILE" | xargs kill -0; } >/dev/null 2>&1
|
||||
do
|
||||
sleep 1
|
||||
i=$(($i + 1))
|
||||
if [ $i -gt $timeout ]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
log_end_msg $return
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping $DESC"
|
||||
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
start-stop-daemon --stop --pidfile "$PID_FILE" \
|
||||
--user "$GRAFANA_USER" \
|
||||
--retry=TERM/20/KILL/5 >/dev/null
|
||||
if [ $? -eq 1 ]; then
|
||||
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
|
||||
elif [ $? -eq 3 ]; then
|
||||
PID="`cat $PID_FILE`"
|
||||
log_failure_msg "Failed to stop $DESC (pid $PID)"
|
||||
exit 1
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
else
|
||||
log_progress_msg "(not running)"
|
||||
fi
|
||||
log_end_msg 0
|
||||
;;
|
||||
status)
|
||||
status_of_proc -p $PID_FILE grafana grafana && exit 0 || exit $?
|
||||
;;
|
||||
restart|force-reload)
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
$0 stop
|
||||
sleep 1
|
||||
fi
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}"
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
@@ -1,13 +0,0 @@
|
||||
[auth.keystone]
|
||||
enabled = true
|
||||
auth_url = '%KEYSTONE_AUTH_URI%'
|
||||
|
||||
[paths]
|
||||
plugins = /var/lib/grafana/plugins
|
||||
|
||||
[session]
|
||||
session_life_time = 1800
|
||||
gc_interval_time = 1800
|
||||
|
||||
[security]
|
||||
login_remember_days = 0
|
||||
@@ -1,19 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Logging
|
||||
STDERR="/var/log/influxdb/influxd.log"
|
||||
@@ -1,579 +0,0 @@
|
||||
### Welcome to the InfluxDB configuration file.
|
||||
|
||||
# The values in this file override the default values used by the system if
|
||||
# a config option is not specified. The commented out lines are the configuration
|
||||
# field and the default value used. Uncommenting a line and changing the value
|
||||
# will change the value used at runtime when the process is restarted.
|
||||
|
||||
# Once every 24 hours InfluxDB will report usage data to usage.influxdata.com
|
||||
# The data includes a random ID, os, arch, version, the number of series and other
|
||||
# usage data. No data from user databases is ever transmitted.
|
||||
# Change this option to true to disable reporting.
|
||||
# reporting-disabled = false
|
||||
|
||||
# Bind address to use for the RPC service for backup and restore.
|
||||
# bind-address = "127.0.0.1:8088"
|
||||
|
||||
###
|
||||
### [meta]
|
||||
###
|
||||
### Controls the parameters for the Raft consensus group that stores metadata
|
||||
### about the InfluxDB cluster.
|
||||
###
|
||||
|
||||
[meta]
|
||||
# Where the metadata/raft database is stored
|
||||
dir = "/var/lib/influxdb/meta"
|
||||
|
||||
# Automatically create a default retention policy when creating a database.
|
||||
# retention-autocreate = true
|
||||
|
||||
# If log messages are printed for the meta service
|
||||
# logging-enabled = true
|
||||
|
||||
###
|
||||
### [data]
|
||||
###
|
||||
### Controls where the actual shard data for InfluxDB lives and how it is
|
||||
### flushed from the WAL. "dir" may need to be changed to a suitable place
|
||||
### for your system, but the WAL settings are an advanced configuration. The
|
||||
### defaults should work for most systems.
|
||||
###
|
||||
|
||||
[data]
|
||||
# The directory where the TSM storage engine stores TSM files.
|
||||
dir = "/var/lib/influxdb/data"
|
||||
|
||||
# The directory where the TSM storage engine stores WAL files.
|
||||
wal-dir = "/var/lib/influxdb/wal"
|
||||
|
||||
# The amount of time that a write will wait before fsyncing. A duration
|
||||
# greater than 0 can be used to batch up multiple fsync calls. This is useful for slower
|
||||
# disks or when WAL write contention is seen. A value of 0s fsyncs every write to the WAL.
|
||||
# Values in the range of 0-100ms are recommended for non-SSD disks.
|
||||
# wal-fsync-delay = "0s"
|
||||
|
||||
|
||||
# The type of shard index to use for new shards. The default is an in-memory index that is
|
||||
# recreated at startup. A value of "tsi1" will use a disk based index that supports higher
|
||||
# cardinality datasets.
|
||||
# index-version = "inmem"
|
||||
index-version = "tsi1"
|
||||
|
||||
# Trace logging provides more verbose output around the tsm engine. Turning
|
||||
# this on can provide more useful output for debugging tsm engine issues.
|
||||
# trace-logging-enabled = false
|
||||
|
||||
# Whether queries should be logged before execution. Very useful for troubleshooting, but will
|
||||
# log any sensitive data contained within a query.
|
||||
# query-log-enabled = true
|
||||
|
||||
# Validates incoming writes to ensure keys only have valid unicode characters.
|
||||
# This setting will incur a small overhead because every key must be checked.
|
||||
# validate-keys = false
|
||||
|
||||
# Settings for the TSM engine
|
||||
|
||||
# CacheMaxMemorySize is the maximum size a shard's cache can
|
||||
# reach before it starts rejecting writes.
|
||||
# Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
|
||||
# Values without a size suffix are in bytes.
|
||||
# cache-max-memory-size = "1g"
|
||||
|
||||
# CacheSnapshotMemorySize is the size at which the engine will
|
||||
# snapshot the cache and write it to a TSM file, freeing up memory
|
||||
# Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
|
||||
# Values without a size suffix are in bytes.
|
||||
# cache-snapshot-memory-size = "25m"
|
||||
|
||||
# CacheSnapshotWriteColdDuration is the length of time at
|
||||
# which the engine will snapshot the cache and write it to
|
||||
# a new TSM file if the shard hasn't received writes or deletes
|
||||
# cache-snapshot-write-cold-duration = "10m"
|
||||
|
||||
# CompactFullWriteColdDuration is the duration at which the engine
|
||||
# will compact all TSM files in a shard if it hasn't received a
|
||||
# write or delete
|
||||
# compact-full-write-cold-duration = "4h"
|
||||
|
||||
# The maximum number of concurrent full and level compactions that can run at one time. A
|
||||
# value of 0 results in 50% of runtime.GOMAXPROCS(0) used at runtime. Any number greater
|
||||
# than 0 limits compactions to that value. This setting does not apply
|
||||
# to cache snapshotting.
|
||||
# max-concurrent-compactions = 0
|
||||
|
||||
# CompactThroughput is the rate limit in bytes per second that we
|
||||
# will allow TSM compactions to write to disk. Note that short bursts are allowed
|
||||
# to happen at a possibly larger value, set by CompactThroughputBurst
|
||||
# compact-throughput = "48m"
|
||||
|
||||
# CompactThroughputBurst is the rate limit in bytes per second that we
|
||||
# will allow TSM compactions to write to disk.
|
||||
# compact-throughput-burst = "48m"
|
||||
|
||||
# If true, then the mmap advise value MADV_WILLNEED will be provided to the kernel with respect to
|
||||
# TSM files. This setting has been found to be problematic on some kernels, and defaults to off.
|
||||
# It might help users who have slow disks in some cases.
|
||||
# tsm-use-madv-willneed = false
|
||||
|
||||
# Settings for the inmem index
|
||||
|
||||
# The maximum series allowed per database before writes are dropped. This limit can prevent
|
||||
# high cardinality issues at the database level. This limit can be disabled by setting it to
|
||||
# 0.
|
||||
# max-series-per-database = 1000000
|
||||
|
||||
# The maximum number of tag values per tag that are allowed before writes are dropped. This limit
|
||||
# can prevent high cardinality tag values from being written to a measurement. This limit can be
|
||||
# disabled by setting it to 0.
|
||||
# max-values-per-tag = 100000
|
||||
|
||||
# Settings for the tsi1 index
|
||||
|
||||
# The threshold, in bytes, when an index write-ahead log file will compact
|
||||
# into an index file. Lower sizes will cause log files to be compacted more
|
||||
# quickly and result in lower heap usage at the expense of write throughput.
|
||||
# Higher sizes will be compacted less frequently, store more series in-memory,
|
||||
# and provide higher write throughput.
|
||||
# Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
|
||||
# Values without a size suffix are in bytes.
|
||||
# max-index-log-file-size = "1m"
|
||||
|
||||
# The size of the internal cache used in the TSI index to store previously
|
||||
# calculated series results. Cached results will be returned quickly from the cache rather
|
||||
# than needing to be recalculated when a subsequent query with a matching tag key/value
|
||||
# predicate is executed. Setting this value to 0 will disable the cache, which may
|
||||
# lead to query performance issues.
|
||||
# This value should only be increased if it is known that the set of regularly used
|
||||
# tag key/value predicates across all measurements for a database is larger than 100. An
|
||||
# increase in cache size may lead to an increase in heap usage.
|
||||
series-id-set-cache-size = 100
|
||||
|
||||
###
|
||||
### [coordinator]
|
||||
###
|
||||
### Controls the clustering service configuration.
|
||||
###
|
||||
|
||||
[coordinator]
|
||||
# The default time a write request will wait until a "timeout" error is returned to the caller.
|
||||
# write-timeout = "10s"
|
||||
|
||||
# The maximum number of concurrent queries allowed to be executing at one time. If a query is
|
||||
# executed and exceeds this limit, an error is returned to the caller. This limit can be disabled
|
||||
# by setting it to 0.
|
||||
# max-concurrent-queries = 0
|
||||
|
||||
# The maximum time a query will is allowed to execute before being killed by the system. This limit
|
||||
# can help prevent run away queries. Setting the value to 0 disables the limit.
|
||||
# query-timeout = "0s"
|
||||
|
||||
# The time threshold when a query will be logged as a slow query. This limit can be set to help
|
||||
# discover slow or resource intensive queries. Setting the value to 0 disables the slow query logging.
|
||||
# log-queries-after = "0s"
|
||||
|
||||
# The maximum number of points a SELECT can process. A value of 0 will make
|
||||
# the maximum point count unlimited. This will only be checked every second so queries will not
|
||||
# be aborted immediately when hitting the limit.
|
||||
# max-select-point = 0
|
||||
|
||||
# The maximum number of series a SELECT can run. A value of 0 will make the maximum series
|
||||
# count unlimited.
|
||||
# max-select-series = 0
|
||||
|
||||
# The maximum number of group by time bucket a SELECT can create. A value of zero will max the maximum
|
||||
# number of buckets unlimited.
|
||||
# max-select-buckets = 0
|
||||
|
||||
###
|
||||
### [retention]
|
||||
###
|
||||
### Controls the enforcement of retention policies for evicting old data.
|
||||
###
|
||||
|
||||
[retention]
|
||||
# Determines whether retention policy enforcement enabled.
|
||||
# enabled = true
|
||||
|
||||
# The interval of time when retention policy enforcement checks run.
|
||||
# check-interval = "30m"
|
||||
|
||||
###
|
||||
### [shard-precreation]
|
||||
###
|
||||
### Controls the precreation of shards, so they are available before data arrives.
|
||||
### Only shards that, after creation, will have both a start- and end-time in the
|
||||
### future, will ever be created. Shards are never precreated that would be wholly
|
||||
### or partially in the past.
|
||||
|
||||
[shard-precreation]
|
||||
# Determines whether shard pre-creation service is enabled.
|
||||
# enabled = true
|
||||
|
||||
# The interval of time when the check to pre-create new shards runs.
|
||||
# check-interval = "10m"
|
||||
|
||||
# The default period ahead of the endtime of a shard group that its successor
|
||||
# group is created.
|
||||
# advance-period = "30m"
|
||||
|
||||
###
|
||||
### Controls the system self-monitoring, statistics and diagnostics.
|
||||
###
|
||||
### The internal database for monitoring data is created automatically if
|
||||
### if it does not already exist. The target retention within this database
|
||||
### is called 'monitor' and is also created with a retention period of 7 days
|
||||
### and a replication factor of 1, if it does not exist. In all cases the
|
||||
### this retention policy is configured as the default for the database.
|
||||
|
||||
[monitor]
|
||||
# Whether to record statistics internally.
|
||||
# store-enabled = true
|
||||
|
||||
# The destination database for recorded statistics
|
||||
# store-database = "_internal"
|
||||
|
||||
# The interval at which to record statistics
|
||||
# store-interval = "10s"
|
||||
|
||||
###
|
||||
### [http]
|
||||
###
|
||||
### Controls how the HTTP endpoints are configured. These are the primary
|
||||
### mechanism for getting data into and out of InfluxDB.
|
||||
###
|
||||
|
||||
[http]
|
||||
# Determines whether HTTP endpoint is enabled.
|
||||
# enabled = true
|
||||
|
||||
# Determines whether the Flux query endpoint is enabled.
|
||||
# flux-enabled = false
|
||||
|
||||
# Determines whether the Flux query logging is enabled.
|
||||
# flux-log-enabled = false
|
||||
|
||||
# The bind address used by the HTTP service.
|
||||
# bind-address = ":8086"
|
||||
|
||||
# Determines whether user authentication is enabled over HTTP/HTTPS.
|
||||
# auth-enabled = false
|
||||
|
||||
# The default realm sent back when issuing a basic auth challenge.
|
||||
# realm = "InfluxDB"
|
||||
|
||||
# Determines whether HTTP request logging is enabled.
|
||||
# log-enabled = true
|
||||
|
||||
# Determines whether the HTTP write request logs should be suppressed when the log is enabled.
|
||||
# suppress-write-log = false
|
||||
|
||||
# When HTTP request logging is enabled, this option specifies the path where
|
||||
# log entries should be written. If unspecified, the default is to write to stderr, which
|
||||
# intermingles HTTP logs with internal InfluxDB logging.
|
||||
#
|
||||
# If influxd is unable to access the specified path, it will log an error and fall back to writing
|
||||
# the request log to stderr.
|
||||
# access-log-path = ""
|
||||
|
||||
# Filters which requests should be logged. Each filter is of the pattern NNN, NNX, or NXX where N is
|
||||
# a number and X is a wildcard for any number. To filter all 5xx responses, use the string 5xx.
|
||||
# If multiple filters are used, then only one has to match. The default is to have no filters which
|
||||
# will cause every request to be printed.
|
||||
# access-log-status-filters = []
|
||||
|
||||
# Determines whether detailed write logging is enabled.
|
||||
# write-tracing = false
|
||||
|
||||
# Determines whether the pprof endpoint is enabled. This endpoint is used for
|
||||
# troubleshooting and monitoring.
|
||||
# pprof-enabled = true
|
||||
pprof-enabled = false
|
||||
|
||||
# Enables a pprof endpoint that binds to localhost:6060 immediately on startup.
|
||||
# This is only needed to debug startup issues.
|
||||
# debug-pprof-enabled = false
|
||||
|
||||
# Determines whether HTTPS is enabled.
|
||||
# https-enabled = false
|
||||
|
||||
# The SSL certificate to use when HTTPS is enabled.
|
||||
# https-certificate = "/etc/ssl/influxdb.pem"
|
||||
|
||||
# Use a separate private key location.
|
||||
# https-private-key = ""
|
||||
|
||||
# The JWT auth shared secret to validate requests using JSON web tokens.
|
||||
# shared-secret = ""
|
||||
|
||||
# The default chunk size for result sets that should be chunked.
|
||||
# max-row-limit = 0
|
||||
|
||||
# The maximum number of HTTP connections that may be open at once. New connections that
|
||||
# would exceed this limit are dropped. Setting this value to 0 disables the limit.
|
||||
# max-connection-limit = 0
|
||||
|
||||
# Enable http service over unix domain socket
|
||||
# unix-socket-enabled = false
|
||||
|
||||
# The path of the unix domain socket.
|
||||
# bind-socket = "/var/run/influxdb.sock"
|
||||
|
||||
# The maximum size of a client request body, in bytes. Setting this value to 0 disables the limit.
|
||||
# max-body-size = 25000000
|
||||
|
||||
# The maximum number of writes processed concurrently.
|
||||
# Setting this to 0 disables the limit.
|
||||
# max-concurrent-write-limit = 0
|
||||
|
||||
# The maximum number of writes queued for processing.
|
||||
# Setting this to 0 disables the limit.
|
||||
# max-enqueued-write-limit = 0
|
||||
|
||||
# The maximum duration for a write to wait in the queue to be processed.
|
||||
# Setting this to 0 or setting max-concurrent-write-limit to 0 disables the limit.
|
||||
# enqueued-write-timeout = 0
|
||||
|
||||
###
|
||||
### [logging]
|
||||
###
|
||||
### Controls how the logger emits logs to the output.
|
||||
###
|
||||
|
||||
[logging]
|
||||
# Determines which log encoder to use for logs. Available options
|
||||
# are auto, logfmt, and json. auto will use a more a more user-friendly
|
||||
# output format if the output terminal is a TTY, but the format is not as
|
||||
# easily machine-readable. When the output is a non-TTY, auto will use
|
||||
# logfmt.
|
||||
# format = "auto"
|
||||
|
||||
# Determines which level of logs will be emitted. The available levels
|
||||
# are error, warn, info, and debug. Logs that are equal to or above the
|
||||
# specified level will be emitted.
|
||||
# level = "info"
|
||||
|
||||
# Suppresses the logo output that is printed when the program is started.
|
||||
# The logo is always suppressed if STDOUT is not a TTY.
|
||||
# suppress-logo = false
|
||||
|
||||
###
|
||||
### [subscriber]
|
||||
###
|
||||
### Controls the subscriptions, which can be used to fork a copy of all data
|
||||
### received by the InfluxDB host.
|
||||
###
|
||||
|
||||
[subscriber]
|
||||
# Determines whether the subscriber service is enabled.
|
||||
# enabled = true
|
||||
|
||||
# The default timeout for HTTP writes to subscribers.
|
||||
# http-timeout = "30s"
|
||||
|
||||
# Allows insecure HTTPS connections to subscribers. This is useful when testing with self-
|
||||
# signed certificates.
|
||||
# insecure-skip-verify = false
|
||||
|
||||
# The path to the PEM encoded CA certs file. If the empty string, the default system certs will be used
|
||||
# ca-certs = ""
|
||||
|
||||
# The number of writer goroutines processing the write channel.
|
||||
# write-concurrency = 40
|
||||
|
||||
# The number of in-flight writes buffered in the write channel.
|
||||
# write-buffer-size = 1000
|
||||
|
||||
|
||||
###
|
||||
### [[graphite]]
|
||||
###
|
||||
### Controls one or many listeners for Graphite data.
|
||||
###
|
||||
|
||||
[[graphite]]
|
||||
# Determines whether the graphite endpoint is enabled.
|
||||
# enabled = false
|
||||
# database = "graphite"
|
||||
# retention-policy = ""
|
||||
# bind-address = ":2003"
|
||||
# protocol = "tcp"
|
||||
# consistency-level = "one"
|
||||
|
||||
# These next lines control how batching works. You should have this enabled
|
||||
# otherwise you could get dropped metrics or poor performance. Batching
|
||||
# will buffer points in memory if you have many coming in.
|
||||
|
||||
# Flush if this many points get buffered
|
||||
# batch-size = 5000
|
||||
|
||||
# number of batches that may be pending in memory
|
||||
# batch-pending = 10
|
||||
|
||||
# Flush at least this often even if we haven't hit buffer limit
|
||||
# batch-timeout = "1s"
|
||||
|
||||
# UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
||||
# udp-read-buffer = 0
|
||||
|
||||
### This string joins multiple matching 'measurement' values providing more control over the final measurement name.
|
||||
# separator = "."
|
||||
|
||||
### Default tags that will be added to all metrics. These can be overridden at the template level
|
||||
### or by tags extracted from metric
|
||||
# tags = ["region=us-east", "zone=1c"]
|
||||
|
||||
### Each template line requires a template pattern. It can have an optional
|
||||
### filter before the template and separated by spaces. It can also have optional extra
|
||||
### tags following the template. Multiple tags should be separated by commas and no spaces
|
||||
### similar to the line protocol format. There can be only one default template.
|
||||
# templates = [
|
||||
# "*.app env.service.resource.measurement",
|
||||
# # Default template
|
||||
# "server.*",
|
||||
# ]
|
||||
|
||||
###
|
||||
### [collectd]
|
||||
###
|
||||
### Controls one or many listeners for collectd data.
|
||||
###
|
||||
|
||||
[[collectd]]
|
||||
# enabled = false
|
||||
# bind-address = ":25826"
|
||||
# database = "collectd"
|
||||
# retention-policy = ""
|
||||
#
|
||||
# The collectd service supports either scanning a directory for multiple types
|
||||
# db files, or specifying a single db file.
|
||||
# typesdb = "/usr/local/share/collectd"
|
||||
#
|
||||
# security-level = "none"
|
||||
# auth-file = "/etc/collectd/auth_file"
|
||||
|
||||
# These next lines control how batching works. You should have this enabled
|
||||
# otherwise you could get dropped metrics or poor performance. Batching
|
||||
# will buffer points in memory if you have many coming in.
|
||||
|
||||
# Flush if this many points get buffered
|
||||
# batch-size = 5000
|
||||
|
||||
# Number of batches that may be pending in memory
|
||||
# batch-pending = 10
|
||||
|
||||
# Flush at least this often even if we haven't hit buffer limit
|
||||
# batch-timeout = "10s"
|
||||
|
||||
# UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
||||
# read-buffer = 0
|
||||
|
||||
# Multi-value plugins can be handled two ways.
|
||||
# "split" will parse and store the multi-value plugin data into separate measurements
|
||||
# "join" will parse and store the multi-value plugin as a single multi-value measurement.
|
||||
# "split" is the default behavior for backward compatibility with previous versions of influxdb.
|
||||
# parse-multivalue-plugin = "split"
|
||||
###
|
||||
### [opentsdb]
|
||||
###
|
||||
### Controls one or many listeners for OpenTSDB data.
|
||||
###
|
||||
|
||||
[[opentsdb]]
|
||||
# enabled = false
|
||||
# bind-address = ":4242"
|
||||
# database = "opentsdb"
|
||||
# retention-policy = ""
|
||||
# consistency-level = "one"
|
||||
# tls-enabled = false
|
||||
# certificate= "/etc/ssl/influxdb.pem"
|
||||
|
||||
# Log an error for every malformed point.
|
||||
# log-point-errors = true
|
||||
|
||||
# These next lines control how batching works. You should have this enabled
|
||||
# otherwise you could get dropped metrics or poor performance. Only points
|
||||
# metrics received over the telnet protocol undergo batching.
|
||||
|
||||
# Flush if this many points get buffered
|
||||
# batch-size = 1000
|
||||
|
||||
# Number of batches that may be pending in memory
|
||||
# batch-pending = 5
|
||||
|
||||
# Flush at least this often even if we haven't hit buffer limit
|
||||
# batch-timeout = "1s"
|
||||
|
||||
###
|
||||
### [[udp]]
|
||||
###
|
||||
### Controls the listeners for InfluxDB line protocol data via UDP.
|
||||
###
|
||||
|
||||
[[udp]]
|
||||
# enabled = false
|
||||
# bind-address = ":8089"
|
||||
# database = "udp"
|
||||
# retention-policy = ""
|
||||
|
||||
# InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h")
|
||||
# precision = ""
|
||||
|
||||
# These next lines control how batching works. You should have this enabled
|
||||
# otherwise you could get dropped metrics or poor performance. Batching
|
||||
# will buffer points in memory if you have many coming in.
|
||||
|
||||
# Flush if this many points get buffered
|
||||
# batch-size = 5000
|
||||
|
||||
# Number of batches that may be pending in memory
|
||||
# batch-pending = 10
|
||||
|
||||
# Will flush at least this often even if we haven't hit buffer limit
|
||||
# batch-timeout = "1s"
|
||||
|
||||
# UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
||||
# read-buffer = 0
|
||||
|
||||
###
|
||||
### [continuous_queries]
|
||||
###
|
||||
### Controls how continuous queries are run within InfluxDB.
|
||||
###
|
||||
|
||||
[continuous_queries]
|
||||
# Determines whether the continuous query service is enabled.
|
||||
# enabled = true
|
||||
|
||||
# Controls whether queries are logged when executed by the CQ service.
|
||||
# log-enabled = true
|
||||
|
||||
# Controls whether queries are logged to the self-monitoring data store.
|
||||
# query-stats-enabled = false
|
||||
|
||||
# interval for how often continuous queries will be checked if they need to run
|
||||
# run-interval = "1s"
|
||||
|
||||
###
|
||||
### [tls]
|
||||
###
|
||||
### Global configuration settings for TLS in InfluxDB.
|
||||
###
|
||||
|
||||
[tls]
|
||||
# Determines the available set of cipher suites. See https://golang.org/pkg/crypto/tls/#pkg-constants
|
||||
# for a list of available ciphers, which depends on the version of Go (use the query
|
||||
# SHOW DIAGNOSTICS to see the version of Go used to build InfluxDB). If not specified, uses
|
||||
# the default settings from Go's crypto/tls package.
|
||||
# ciphers = [
|
||||
# "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
|
||||
# "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
||||
# ]
|
||||
|
||||
# Minimum version of the tls protocol that will be negotiated. If not specified, uses the
|
||||
# default settings from Go's crypto/tls package.
|
||||
# min-version = "tls1.2"
|
||||
|
||||
# Maximum version of the tls protocol that will be negotiated. If not specified, uses the
|
||||
# default settings from Go's crypto/tls package.
|
||||
# max-version = "tls1.2"
|
||||
@@ -1,38 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You 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.
|
||||
|
||||
if [ $# -lt 1 ];
|
||||
then
|
||||
echo "USAGE: $0 [-daemon] server.properties"
|
||||
exit 1
|
||||
fi
|
||||
base_dir=$(dirname $0)
|
||||
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
|
||||
export KAFKA_HEAP_OPTS="-Xms256m -Xmx256m"
|
||||
|
||||
EXTRA_ARGS="-name kafkaServer -loggc"
|
||||
|
||||
COMMAND=$1
|
||||
case $COMMAND in
|
||||
-daemon)
|
||||
EXTRA_ARGS="-daemon "$EXTRA_ARGS
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka $@
|
||||
@@ -1,30 +0,0 @@
|
||||
# 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.
|
||||
#
|
||||
|
||||
[Unit]
|
||||
Description=Kafka
|
||||
Requires=network.target
|
||||
After=network.target zookeeper.service
|
||||
|
||||
[Service]
|
||||
User=kafka
|
||||
Group=kafka
|
||||
LimitNOFILE=32768:32768
|
||||
Environment="LOG_DIR=/var/log/kafka"
|
||||
Environment="KAFKA_HEAP_OPTS=-Xmx128m"
|
||||
ExecStart=/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,146 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You 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.
|
||||
|
||||
# see kafka.server.KafkaConfig for additional details and defaults
|
||||
|
||||
############################# Server Basics #############################
|
||||
|
||||
# The id of the broker. This must be set to a unique integer for each broker.
|
||||
broker.id=0
|
||||
|
||||
############################# Socket Server Settings #############################
|
||||
|
||||
# The address the socket server listens on. It will get the value returned from
|
||||
# java.net.InetAddress.getCanonicalHostName() if not configured.
|
||||
# FORMAT:
|
||||
# listeners = listener_name://host_name:port
|
||||
# EXAMPLE:
|
||||
# listeners = PLAINTEXT://your.host.name:9092
|
||||
|
||||
# Hostname and port the broker will advertise to producers and consumers. If not set,
|
||||
# it uses the value for "listeners" if configured. Otherwise, it will use the value
|
||||
# returned from java.net.InetAddress.getCanonicalHostName().
|
||||
#advertised.listeners=PLAINTEXT://your.host.name:9092
|
||||
|
||||
# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details
|
||||
#listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
|
||||
|
||||
# The number of threads that the server uses for receiving requests from the network and sending responses to the network
|
||||
num.network.threads=3
|
||||
|
||||
# The number of threads that the server uses for processing requests, which may include disk I/O
|
||||
num.io.threads=2
|
||||
|
||||
# The send buffer (SO_SNDBUF) used by the socket server
|
||||
socket.send.buffer.bytes=102400
|
||||
|
||||
# The receive buffer (SO_RCVBUF) used by the socket server
|
||||
socket.receive.buffer.bytes=102400
|
||||
|
||||
# The maximum size of a request that the socket server will accept (protection against OOM)
|
||||
socket.request.max.bytes=104857600
|
||||
|
||||
|
||||
############################# Log Basics #############################
|
||||
|
||||
# A comma separated list of directories under which to store log files
|
||||
log.dirs=/var/kafka
|
||||
|
||||
auto.create.topics.enable=false
|
||||
# The default number of log partitions per topic. More partitions allow greater
|
||||
# parallelism for consumption, but this will also result in more files across
|
||||
# the brokers.
|
||||
num.partitions=1
|
||||
|
||||
# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown.
|
||||
# This value is recommended to be increased for installations with data dirs located in RAID array.
|
||||
num.recovery.threads.per.data.dir=1
|
||||
|
||||
# Specify the message format version the broker will use to append messages to
|
||||
# the logs. Once consumers are upgraded, one can change the message format and
|
||||
# enjoy the new message format that includes new timestamp and improved
|
||||
# compression.
|
||||
# (TODO) Use new message format after updating consumers
|
||||
log.message.format.version=0.9.0.0
|
||||
|
||||
############################# Internal Topic Settings #############################
|
||||
# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state"
|
||||
# For anything other than development testing, a value greater than 1 is recommended for to ensure availability such as 3.
|
||||
offsets.topic.replication.factor=1
|
||||
transaction.state.log.replication.factor=1
|
||||
transaction.state.log.min.isr=1
|
||||
|
||||
############################# Log Flush Policy #############################
|
||||
|
||||
# Messages are immediately written to the filesystem but by default we only fsync() to sync
|
||||
# the OS cache lazily. The following configurations control the flush of data to disk.
|
||||
# There are a few important trade-offs here:
|
||||
# 1. Durability: Unflushed data may be lost if you are not using replication.
|
||||
# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush.
|
||||
# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to excessive seeks.
|
||||
# The settings below allow one to configure the flush policy to flush data after a period of time or
|
||||
# every N messages (or both). This can be done globally and overridden on a per-topic basis.
|
||||
|
||||
# The number of messages to accept before forcing a flush of data to disk
|
||||
log.flush.interval.messages=10000
|
||||
|
||||
# The maximum amount of time a message can sit in a log before we force a flush
|
||||
log.flush.interval.ms=1000
|
||||
|
||||
############################# Log Retention Policy #############################
|
||||
|
||||
# The following configurations control the disposal of log segments. The policy can
|
||||
# be set to delete segments after a period of time, or after a given size has accumulated.
|
||||
# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens
|
||||
# from the end of the log.
|
||||
|
||||
# The minimum age of a log file to be eligible for deletion due to age
|
||||
log.retention.hours=24
|
||||
|
||||
# A size-based retention policy for logs. Segments are pruned from the log unless the remaining
|
||||
# segments drop below log.retention.bytes. Functions independently of log.retention.hours.
|
||||
log.retention.bytes=104857600
|
||||
|
||||
# The maximum size of a log segment file. When this size is reached a new log segment will be created.
|
||||
log.segment.bytes=104857600
|
||||
|
||||
# The interval at which log segments are checked to see if they can be deleted according
|
||||
# to the retention policies
|
||||
log.retention.check.interval.ms=300000
|
||||
|
||||
############################# Zookeeper #############################
|
||||
|
||||
# Zookeeper connection string (see zookeeper docs for details).
|
||||
# This is a comma separated host:port pairs, each corresponding to a zk
|
||||
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
|
||||
# You can also append an optional chroot string to the urls to specify the
|
||||
# root directory for all kafka znodes.
|
||||
zookeeper.connect=127.0.0.1:2181
|
||||
|
||||
# Timeout in ms for connecting to zookeeper
|
||||
zookeeper.connection.timeout.ms=6000
|
||||
|
||||
|
||||
############################# Group Coordinator Settings #############################
|
||||
|
||||
# The following configuration specifies the time, in milliseconds, that the GroupCoordinator will delay the initial consumer rebalance.
|
||||
# The rebalance will be further delayed by the value of group.initial.rebalance.delay.ms as new members join the group, up to a maximum of max.poll.interval.ms.
|
||||
# The default value for this is 3 seconds.
|
||||
# We override this to 0 here as it makes for a better out-of-the-box experience for development and testing.
|
||||
# However, in production environments the default value of 3 seconds is more suitable as this will help to avoid unnecessary, and potentially expensive, rebalances during application startup.
|
||||
group.initial.rebalance.delay.ms=0
|
||||
@@ -1,122 +0,0 @@
|
||||
# Kibana is served by a back end server. This setting specifies the port to use.
|
||||
server.port: %KIBANA_SERVICE_PORT%
|
||||
|
||||
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
|
||||
# The default is 'localhost', which usually means remote machines will not be able to connect.
|
||||
# To allow connections from remote users, set this parameter to a non-loopback address.
|
||||
server.host: %KIBANA_SERVICE_HOST%
|
||||
|
||||
# Enables you to specify a path to mount Kibana at if you are running behind a proxy.
|
||||
# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath
|
||||
# from requests it receives, and to prevent a deprecation warning at startup.
|
||||
# This setting cannot end in a slash.
|
||||
server.basePath: %KIBANA_SERVER_BASE_PATH%
|
||||
|
||||
# Specifies whether Kibana should rewrite requests that are prefixed with
|
||||
# `server.basePath` or require that they are rewritten by your reverse proxy.
|
||||
# This setting was effectively always `false` before Kibana 6.3 and will
|
||||
# default to `true` starting in Kibana 7.0.
|
||||
server.rewriteBasePath: false
|
||||
|
||||
# The maximum payload size in bytes for incoming server requests.
|
||||
#server.maxPayloadBytes: 1048576
|
||||
|
||||
# The Kibana server's name. This is used for display purposes.
|
||||
#server.name: "your-hostname"
|
||||
|
||||
# The URLs of the Elasticsearch instances to use for all your queries.
|
||||
elasticsearch.hosts: ["http://%ES_SERVICE_BIND_HOST%:%ES_SERVICE_BIND_PORT%"]
|
||||
|
||||
# When this setting's value is true Kibana uses the hostname specified in the server.host
|
||||
# setting. When the value of this setting is false, Kibana uses the hostname of the host
|
||||
# that connects to this Kibana instance.
|
||||
#elasticsearch.preserveHost: true
|
||||
|
||||
# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
|
||||
# dashboards. Kibana creates a new index if the index doesn't already exist.
|
||||
kibana.index: ".kibana"
|
||||
|
||||
# The default application to load.
|
||||
kibana.defaultAppId: "discover"
|
||||
|
||||
# If your Elasticsearch is protected with basic authentication, these settings provide
|
||||
# the username and password that the Kibana server uses to perform maintenance on the Kibana
|
||||
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
|
||||
# is proxied through the Kibana server.
|
||||
#elasticsearch.username: "kibana"
|
||||
#elasticsearch.password: "pass"
|
||||
|
||||
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
|
||||
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
|
||||
#server.ssl.enabled: false
|
||||
#server.ssl.certificate: /path/to/your/server.crt
|
||||
#server.ssl.key: /path/to/your/server.key
|
||||
|
||||
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
|
||||
# These files validate that your Elasticsearch backend uses the same key files.
|
||||
#elasticsearch.ssl.certificate: /path/to/your/client.crt
|
||||
#elasticsearch.ssl.key: /path/to/your/client.key
|
||||
|
||||
# Optional setting that enables you to specify a path to the PEM file for the certificate
|
||||
# authority for your Elasticsearch instance.
|
||||
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
|
||||
|
||||
# To disregard the validity of SSL certificates, change this setting's value to 'none'.
|
||||
#elasticsearch.ssl.verificationMode: full
|
||||
|
||||
# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
|
||||
# the elasticsearch.requestTimeout setting.
|
||||
elasticsearch.pingTimeout: 1500
|
||||
|
||||
# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
|
||||
# must be a positive integer.
|
||||
elasticsearch.requestTimeout: 300000
|
||||
|
||||
# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
|
||||
# headers, set this value to [] (an empty list).
|
||||
#elasticsearch.requestHeadersWhitelist: [ authorization ]
|
||||
|
||||
# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
|
||||
# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
|
||||
#elasticsearch.customHeaders: {}
|
||||
|
||||
# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
|
||||
elasticsearch.shardTimeout: 0
|
||||
|
||||
# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
|
||||
elasticsearch.startupTimeout: 5000
|
||||
|
||||
# Logs queries sent to Elasticsearch. Requires logging.verbose set to true.
|
||||
#elasticsearch.logQueries: false
|
||||
|
||||
# Specifies the path where Kibana creates the process ID file.
|
||||
#pid.file: /var/run/kibana.pid
|
||||
|
||||
# Enables you specify a file where Kibana stores log output.
|
||||
#logging.dest: stdout
|
||||
|
||||
# Set the value of this setting to true to suppress all logging output.
|
||||
logging.silent: false
|
||||
|
||||
# Set the value of this setting to true to suppress all logging output other than error messages.
|
||||
logging.quiet: false
|
||||
|
||||
# Set the value of this setting to true to log all events, including system usage information
|
||||
# and all requests.
|
||||
logging.verbose: true
|
||||
|
||||
# Set the interval in milliseconds to sample system and process performance
|
||||
# metrics. Minimum is 100ms. Defaults to 5000.
|
||||
#ops.interval: 5000
|
||||
|
||||
# Specifies locale to be used for all localizable strings, dates and number formats.
|
||||
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
|
||||
#i18n.locale: "en"
|
||||
|
||||
optimize.useBundleCache: False
|
||||
console.enabled: False
|
||||
|
||||
monasca-kibana-plugin.enabled: True
|
||||
monasca-kibana-plugin.auth_uri: %KEYSTONE_AUTH_URI%
|
||||
monasca-kibana-plugin.elasticsearch.url: "http://%ES_SERVICE_BIND_HOST%:%ES_SERVICE_BIND_PORT%"
|
||||
monasca-kibana-plugin.cookie.isSecure: False
|
||||
@@ -1,7 +0,0 @@
|
||||
init_config:
|
||||
instances:
|
||||
- url: http://{{IP}}:9200
|
||||
cluster_stats: true
|
||||
pshard_stats: true
|
||||
index_stats: true
|
||||
pending_task_stats: true
|
||||
@@ -1,8 +0,0 @@
|
||||
init_config:
|
||||
ping_timeout: 1
|
||||
ssh_port: 22
|
||||
ssh_timeout: 0.5
|
||||
instances:
|
||||
- alive_test: ssh
|
||||
host_name: 127.0.0.1
|
||||
name: 127.0.0.1
|
||||
@@ -1,27 +0,0 @@
|
||||
init_config: null
|
||||
instances:
|
||||
- name: keystone
|
||||
dimensions:
|
||||
service: keystone
|
||||
timeout: 3
|
||||
url: http://127.0.0.1/identity
|
||||
- name: mysql
|
||||
dimensions:
|
||||
service: mysql
|
||||
timeout: 3
|
||||
url: http://127.0.0.1:3306
|
||||
- name: influxdb
|
||||
dimensions:
|
||||
service: influxdb
|
||||
timeout: 3
|
||||
url: http://127.0.0.1:8086/ping
|
||||
- name: elasticsearch
|
||||
dimensions:
|
||||
service: elasticsearch
|
||||
timeout: 3
|
||||
url: http://{{IP}}:9200/_cat/health
|
||||
- name: kibana
|
||||
dimensions:
|
||||
service: kibana
|
||||
timeout: 3
|
||||
url: http://{{IP}}:5601/api/status
|
||||
@@ -1,14 +0,0 @@
|
||||
init_config:
|
||||
|
||||
instances:
|
||||
- built_by: Kafka
|
||||
consumer_groups:
|
||||
1_metrics:
|
||||
metrics: []
|
||||
thresh-event:
|
||||
events: []
|
||||
thresh-metric:
|
||||
metrics: []
|
||||
kafka_connect_str: 127.0.0.1:9092
|
||||
name: 127.0.0.1:9092
|
||||
per_partition: false
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/sh
|
||||
'/opt/monasca-agent/bin/monasca-setup' \
|
||||
-u 'monasca-agent' \
|
||||
-p 'password' \
|
||||
-s '%MONASCA_SERVICE_TYPE%' \
|
||||
\
|
||||
--keystone_url '%KEYSTONE_AUTH_URI%' \
|
||||
--project_name 'mini-mon' \
|
||||
--project_domain_name '%SERVICE_DOMAIN_NAME%' \
|
||||
--user_domain_name '%SERVICE_DOMAIN_NAME%' \
|
||||
\
|
||||
--service_type '%MONASCA_SERVICE_TYPE%' \
|
||||
--endpoint_type 'public' \
|
||||
--region_name '%REGION_NAME%' \
|
||||
\
|
||||
--check_frequency '15' \
|
||||
--log_level 'DEBUG' \
|
||||
--overwrite \
|
||||
--system_only \
|
||||
--monasca_statsd_port %MONASCA_STATSD_PORT%
|
||||
@@ -1,8 +0,0 @@
|
||||
init_config:
|
||||
instances:
|
||||
- built_by: MySQL
|
||||
name: mysql
|
||||
server: 127.0.0.1
|
||||
port: 3306
|
||||
user: root
|
||||
pass: secretdatabase
|
||||
@@ -1,87 +0,0 @@
|
||||
init_config:
|
||||
|
||||
instances:
|
||||
- name: influxd
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: influxd
|
||||
exact_match: false
|
||||
search_string:
|
||||
- influxd
|
||||
- name: monasca-statsd
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: monasca-statsd
|
||||
exact_match: false
|
||||
search_string:
|
||||
- monasca-statsd
|
||||
- name: monasca-notification
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: monasca-notification
|
||||
exact_match: false
|
||||
search_string:
|
||||
- monasca-notification
|
||||
- name: persister
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: persister
|
||||
exact_match: false
|
||||
search_string:
|
||||
- persister
|
||||
- name: storm
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: storm
|
||||
exact_match: false
|
||||
search_string:
|
||||
- storm
|
||||
- name: monasca-api
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: uwsgi
|
||||
exact_match: false
|
||||
search_string:
|
||||
- uwsgi
|
||||
- name: monasca-collector
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: monasca-collector
|
||||
exact_match: false
|
||||
search_string:
|
||||
- monasca-collector
|
||||
- name: memcached
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: memcached
|
||||
exact_match: false
|
||||
search_string:
|
||||
- memcached
|
||||
- name: monasca-forwarder
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: monasca-forwarder
|
||||
exact_match: false
|
||||
search_string:
|
||||
- monasca-forwarder
|
||||
- name: zookeeper
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: zookeeper
|
||||
exact_match: false
|
||||
search_string:
|
||||
- zookeeper
|
||||
- name: kafka
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: kafka
|
||||
exact_match: false
|
||||
search_string:
|
||||
- kafka
|
||||
- name: mysqld
|
||||
detailed: true
|
||||
dimensions:
|
||||
service: mysqld
|
||||
exact_match: false
|
||||
search_string:
|
||||
- mysqld
|
||||
@@ -1,6 +0,0 @@
|
||||
init_config:
|
||||
|
||||
instances:
|
||||
- host: 127.0.0.1
|
||||
port: 2181
|
||||
timeout: 3
|
||||
@@ -1,18 +0,0 @@
|
||||
Listen %PUBLICPORT%
|
||||
|
||||
<VirtualHost *:%PUBLICPORT%>
|
||||
WSGIDaemonProcess monasca-api user=%USER% processes=%APIWORKERS% threads=1 display-name=%{GROUP} %VIRTUALENV%
|
||||
WSGIProcessGroup monasca-api
|
||||
WSGIScriptAlias / %PUBLICWSGI%/wsgi.py
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
|
||||
WSGIPassAuthorization On
|
||||
|
||||
LogLevel info
|
||||
ErrorLog /var/log/%APACHE_NAME%/monasca-api.log
|
||||
CustomLog /var/log/%APACHE_NAME%/monasca-api_access.log combined
|
||||
|
||||
SetEnv no-gzip 1
|
||||
AddDefaultCharset utf-8
|
||||
|
||||
</VirtualHost>
|
||||
@@ -1,186 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
# Copyright 2017 Fujitsu LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# The region for which all metrics passing through this server will be persisted
|
||||
region: "useast"
|
||||
|
||||
maxQueryLimit: 10000
|
||||
|
||||
# Whether this server is running on a secure port
|
||||
accessedViaHttps: false
|
||||
|
||||
# Topic for publishing metrics to
|
||||
metricsTopic: metrics
|
||||
|
||||
# Topic for publishing domain events to
|
||||
eventsTopic: events
|
||||
|
||||
validNotificationPeriods:
|
||||
- 60
|
||||
|
||||
kafka:
|
||||
brokerUris:
|
||||
- "%KAFKA_HOST%:9092"
|
||||
zookeeperUris:
|
||||
- "127.0.0.1:2181"
|
||||
healthCheckTopic: healthcheck
|
||||
|
||||
mysql:
|
||||
driverClass: com.mysql.jdbc.Driver
|
||||
url: "jdbc:mysql://%DATABASE_HOST%:%DATABASE_PORT%/mon?connectTimeout=5000&autoReconnect=true&useSSL=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=utf8"
|
||||
user: "%DATABASE_USER%"
|
||||
password: "%DATABASE_PASSWORD%"
|
||||
maxWaitForConnection: 1s
|
||||
validationQuery: "/* MyService Health Check */ SELECT 1"
|
||||
minSize: 8
|
||||
maxSize: 32
|
||||
checkConnectionWhileIdle: false
|
||||
checkConnectionOnBorrow: true
|
||||
|
||||
# Possible options for dataSourceClassName are:
|
||||
# - com.mysql.jdbc.jdbc2.optional.MysqlDataSource
|
||||
# - org.postgresql.ds.PGPoolingDataSource
|
||||
# HINT: dataSourceUrl is relevant only for mysql
|
||||
hibernate:
|
||||
supportEnabled: %MONASCA_DATABASE_USE_ORM%
|
||||
providerClass: com.zaxxer.hikari.hibernate.HikariConnectionProvider
|
||||
dataSourceClassName: %MONASCA_API_DATABASE_ENGINE%
|
||||
dataSourceUrl: jdbc:mysql://%MYSQL_HOST%:%MYSQL_PORT%/mon
|
||||
serverName: %DATABASE_HOST%
|
||||
portNumber: %DATABASE_PORT%
|
||||
databaseName: mon
|
||||
user: %DATABASE_USER%
|
||||
password: %DATABASE_PASSWORD%
|
||||
initialConnections: 25
|
||||
maxConnections: 100
|
||||
autoConfig: validate
|
||||
|
||||
databaseConfiguration:
|
||||
databaseType: "%MONASCA_METRICS_DB%"
|
||||
|
||||
# Uncomment if databaseType is influxDB
|
||||
influxDB:
|
||||
# Retention policy may be left blank to indicate default policy.
|
||||
retentionPolicy:
|
||||
maxHttpConnections: 100
|
||||
gzip: true
|
||||
name: "mon"
|
||||
url: "http://%INFLUXDB_HOST%:%INFLUXDB_PORT%"
|
||||
user: "mon_api"
|
||||
password: "password"
|
||||
|
||||
|
||||
# Uncomment if databaseType is vertica
|
||||
# As of 7/10 there is a bug in the monasca-api that requires this section even if databaseType is set to influxdb
|
||||
vertica:
|
||||
driverClass: com.vertica.jdbc.Driver
|
||||
url: "jdbc:vertica://%VERTICA_HOST%:5433/mon"
|
||||
user: "mon_api"
|
||||
password: "password"
|
||||
maxWaitForConnection: 1s
|
||||
validationQuery: "/* MyService Health Check */ SELECT 1"
|
||||
minSize: 4
|
||||
maxSize: 32
|
||||
checkConnectionWhileIdle: true
|
||||
#
|
||||
# vertica database hint to be added to SELECT
|
||||
# statements. For example, the hint below is used
|
||||
# to tell vertica that the query can be satisfied
|
||||
# locally (replicated projection).
|
||||
#
|
||||
# dbHint: "/*+KV(01)*/"
|
||||
dbHint: ""
|
||||
|
||||
middleware:
|
||||
enabled: true
|
||||
serverVIP: "%KEYSTONE_SERVICE_HOST%"
|
||||
serverPort: %KEYSTONE_SERVICE_PORT%
|
||||
useHttps: False
|
||||
truststore: "None"
|
||||
truststorePassword: "None"
|
||||
connTimeout: 5000
|
||||
connSSLClientAuth: False
|
||||
keystore: "None"
|
||||
keystorePassword: "None"
|
||||
connPoolMaxActive: 3
|
||||
connPoolMaxIdle: 3
|
||||
connPoolEvictPeriod: 600000
|
||||
connPoolMinIdleTime: 600000
|
||||
connRetryTimes: 2
|
||||
connRetryInterval: 50
|
||||
defaultAuthorizedRoles: [monasca-user]
|
||||
readOnlyAuthorizedRoles: [monasca-read-only-user]
|
||||
agentAuthorizedRoles: [monasca-agent]
|
||||
delegateAuthorizedRole: admin
|
||||
adminRole: admin
|
||||
adminAuthMethod: password
|
||||
adminUser: "admin"
|
||||
adminPassword: "%ADMIN_PASSWORD%"
|
||||
adminProjectId:
|
||||
adminProjectName: "admin"
|
||||
adminToken:
|
||||
timeToCacheToken: 600
|
||||
maxTokenCacheSize: 1048576
|
||||
|
||||
server:
|
||||
applicationConnectors:
|
||||
- type: http
|
||||
port: %MONASCA_API_SERVICE_PORT%
|
||||
bindHost: %MONASCA_API_SERVICE_HOST%
|
||||
maxRequestHeaderSize: 16KiB # Allow large headers used by keystone tokens
|
||||
adminConnectors:
|
||||
- type: http
|
||||
port: %MONASCA_API_ADMIN_PORT%
|
||||
bindHost: %MONASCA_API_SERVICE_HOST%
|
||||
requestLog:
|
||||
timeZone: UTC
|
||||
appenders:
|
||||
- type: file
|
||||
currentLogFilename: "/var/log/monasca/api/request.log"
|
||||
threshold: ALL
|
||||
archive: true
|
||||
archivedLogFilenamePattern: "/var/log/monasca/api/request-%d.log.gz"
|
||||
archivedFileCount: 5
|
||||
|
||||
# Logging settings.
|
||||
logging:
|
||||
|
||||
# The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL.
|
||||
level: WARN
|
||||
|
||||
# Logger-specific levels.
|
||||
loggers:
|
||||
|
||||
# Sets the level for 'com.example.app' to DEBUG.
|
||||
com.example.app: DEBUG
|
||||
|
||||
appenders:
|
||||
- type: console
|
||||
threshold: ALL
|
||||
timeZone: UTC
|
||||
target: stdout
|
||||
logFormat: # TODO
|
||||
|
||||
- type: file
|
||||
currentLogFilename: "/var/log/monasca/api/monasca-api.log"
|
||||
threshold: ALL
|
||||
archive: true
|
||||
archivedLogFilenamePattern: "/var/log/monasca/api/monasca-api-%d.log.gz"
|
||||
archivedFileCount: 5
|
||||
timeZone: UTC
|
||||
logFormat: # TODO
|
||||
@@ -1,29 +0,0 @@
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Startup script for the Monasca API
|
||||
|
||||
[Unit]
|
||||
Description=Monasca API Java app
|
||||
Requires=network.target
|
||||
After=network.target kafka.service influxdb.service mysql.service
|
||||
|
||||
[Service]
|
||||
User=mon-api
|
||||
Group=monasca
|
||||
ExecStart=/usr/bin/java -Dfile.encoding=UTF-8 -Xmx128m -cp /opt/monasca/monasca-api.jar monasca.api.MonApiApplication server /etc/monasca/api-config.yml
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# Copyright 2016 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
input {
|
||||
file {
|
||||
add_field => { "dimensions" => { "service" => "system" }}
|
||||
path => "/var/log/syslog"
|
||||
tags => ["syslog"]
|
||||
codec => multiline {
|
||||
negate => "true"
|
||||
pattern => "^%{SYSLOGTIMESTAMP}"
|
||||
what => "previous"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
monasca_log_api {
|
||||
monasca_log_api_url => "%MONASCA_API_URI_V2%"
|
||||
keystone_api_url => "%KEYSTONE_AUTH_URI%"
|
||||
project_name => "mini-mon"
|
||||
username => "monasca-agent"
|
||||
password => "password"
|
||||
user_domain_name => "default"
|
||||
project_domain_name => "default"
|
||||
dimensions => [ "hostname:devstack" ]
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
# Copyright 2016 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
|
||||
input {
|
||||
kafka {
|
||||
bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
|
||||
topics => ["transformed-log"]
|
||||
group_id => "log-metric"
|
||||
client_id => "monasca_log_metrics"
|
||||
consumer_threads => 4
|
||||
codec => json
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
filter {
|
||||
|
||||
# drop logs that have not set log level
|
||||
if ![log][level] {
|
||||
drop { periodic_flush => true }
|
||||
} else {
|
||||
ruby {
|
||||
code => "
|
||||
log_level = event.get('[log][level]').downcase
|
||||
event.set('[log][level]', log_level)
|
||||
"
|
||||
}
|
||||
}
|
||||
|
||||
# drop logs with log level not in warning,error
|
||||
if [log][level] not in [warning,error] {
|
||||
drop { periodic_flush => true }
|
||||
}
|
||||
|
||||
ruby {
|
||||
code => "
|
||||
log_level = event.get('[log][level]').downcase
|
||||
log_ts = Time.now.to_f * 1000.0
|
||||
|
||||
# metric name
|
||||
metric_name = 'log.%s' % log_level
|
||||
|
||||
# build metric
|
||||
metric = {}
|
||||
metric['name'] = metric_name
|
||||
metric['timestamp'] = log_ts
|
||||
metric['value'] = 1
|
||||
metric['dimensions'] = event.get('[log][dimensions]')
|
||||
metric['value_meta'] = {}
|
||||
|
||||
event.set('[metric]',metric.to_hash)
|
||||
"
|
||||
}
|
||||
|
||||
mutate {
|
||||
remove_field => ["log", "@version", "@timestamp", "log_level_original", "tags"]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
output {
|
||||
kafka {
|
||||
bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
|
||||
topic_id => "metrics"
|
||||
client_id => "monasca_log_metrics"
|
||||
compression_type => "none"
|
||||
codec => json
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
#
|
||||
# Copyright 2016 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
input {
|
||||
kafka {
|
||||
bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
|
||||
codec => json
|
||||
topics => ["transformed-log"]
|
||||
group_id => "logstash-persister"
|
||||
}
|
||||
}
|
||||
|
||||
filter {
|
||||
date {
|
||||
match => ["[log][timestamp]", "UNIX"]
|
||||
target => "@timestamp"
|
||||
}
|
||||
|
||||
date {
|
||||
match => ["creation_time", "UNIX"]
|
||||
target => "creation_time"
|
||||
}
|
||||
|
||||
grok {
|
||||
match => {
|
||||
"[@timestamp]" => "^(?<index_date>\d{4}-\d{2}-\d{2})"
|
||||
}
|
||||
}
|
||||
|
||||
if "dimensions" in [log] {
|
||||
ruby {
|
||||
code => "
|
||||
fieldHash = event.get('[log][dimensions]')
|
||||
fieldHash.each do |key, value|
|
||||
event.set(key,value)
|
||||
end
|
||||
"
|
||||
}
|
||||
}
|
||||
|
||||
mutate {
|
||||
add_field => {
|
||||
"message" => "%{[log][message]}"
|
||||
"log_level" => "%{[log][level]}"
|
||||
"tenant" => "%{[meta][tenantId]}"
|
||||
"region" => "%{[meta][region]}"
|
||||
}
|
||||
remove_field => ["@version", "host", "type", "tags" ,"_index_date", "meta", "log"]
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
elasticsearch {
|
||||
index => "logs-%{tenant}-%{index_date}"
|
||||
document_type => "log"
|
||||
hosts => ["%ES_SERVICE_BIND_HOST%"]
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
#
|
||||
# Copyright 2016 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
input {
|
||||
kafka {
|
||||
bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
|
||||
topics => ["log"]
|
||||
group_id => "transformer-logstash-consumer"
|
||||
codec => json
|
||||
}
|
||||
}
|
||||
|
||||
filter {
|
||||
ruby {
|
||||
code => 'event.set("message_tmp", event.get("[log][message]")[0..49])'
|
||||
}
|
||||
grok {
|
||||
match => {
|
||||
"message_tmp" => "(?i)(?<log_level>AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?<log_level>\d{2})"
|
||||
}
|
||||
}
|
||||
if ! [log_level] {
|
||||
grok {
|
||||
match => {
|
||||
"[log][message]" => "(?i)(?<log_level>AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?<log_level>\d{2})"
|
||||
}
|
||||
}
|
||||
}
|
||||
ruby {
|
||||
init => '
|
||||
LOG_LEVELS_MAP = {
|
||||
# SYSLOG
|
||||
"warn" => "Warning",
|
||||
"err" => "Error",
|
||||
# Bunyan errcodes
|
||||
"10" => "Trace",
|
||||
"20" => "Debug",
|
||||
"30" => "Info",
|
||||
"40" => "Warning",
|
||||
"50" => "Error",
|
||||
"60" => "Fatal"
|
||||
}
|
||||
'
|
||||
code => '
|
||||
if event.get("log_level")
|
||||
# keep original value
|
||||
log_level = event.get("log_level").downcase
|
||||
if LOG_LEVELS_MAP.has_key?(log_level)
|
||||
event.set("log_level_original",event.get("log_level"))
|
||||
event.set("log_level",LOG_LEVELS_MAP[log_level])
|
||||
else
|
||||
event.set("log_level",log_level.capitalize)
|
||||
end
|
||||
else
|
||||
event.set("log_level","Unknown")
|
||||
end
|
||||
'
|
||||
}
|
||||
|
||||
mutate {
|
||||
add_field => {
|
||||
"[log][level]" => "%{log_level}"
|
||||
}
|
||||
# remove temporary fields
|
||||
remove_field => ["message","log_level", "message_tmp"]
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
kafka {
|
||||
codec => json
|
||||
bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
|
||||
topic_id => "transformed-log"
|
||||
}
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
# Copyright (c) 2017 SUSE LLC
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
name: monasca-persister
|
||||
|
||||
alarmHistoryConfiguration:
|
||||
batchSize: %MONASCA_PERSISTER_BATCH_SIZE%
|
||||
numThreads: 1
|
||||
maxBatchTime: %MONASCA_PERSISTER_MAX_BATCH_TIME%
|
||||
commitBatchTime: %MONASCA_PERSISTER_COMMIT_BATCH_TIME%
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
topic: alarm-state-transitions
|
||||
groupId: 1_alarm-state-transitions
|
||||
consumerId: "mini-mon"
|
||||
clientId: 1
|
||||
|
||||
metricConfiguration:
|
||||
batchSize: %MONASCA_PERSISTER_BATCH_SIZE%
|
||||
numThreads: %MONASCA_PERSISTER_METRIC_THREADS%
|
||||
maxBatchTime: %MONASCA_PERSISTER_MAX_BATCH_TIME%
|
||||
commitBatchTime: %MONASCA_PERSISTER_COMMIT_BATCH_TIME%
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
topic: metrics
|
||||
groupId: 1_metrics
|
||||
consumerId: "mini-mon"
|
||||
clientId: 1
|
||||
|
||||
#Kafka settings.
|
||||
kafkaConfig:
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
zookeeperConnect: "%ZOOKEEPER_HOST%:2181"
|
||||
socketTimeoutMs: 30000
|
||||
socketReceiveBufferBytes : 65536
|
||||
fetchMessageMaxBytes: 1048576
|
||||
queuedMaxMessageChunks: 10
|
||||
rebalanceMaxRetries: 4
|
||||
fetchMinBytes: 1
|
||||
fetchWaitMaxMs: 100
|
||||
rebalanceBackoffMs: 2000
|
||||
refreshLeaderBackoffMs: 200
|
||||
autoOffsetReset: largest
|
||||
consumerTimeoutMs: 1000
|
||||
zookeeperSessionTimeoutMs : 60000
|
||||
zookeeperConnectionTimeoutMs : 60000
|
||||
zookeeperSyncTimeMs: 2000
|
||||
|
||||
# uncomment if database type is cassandra
|
||||
cassandraDbConfiguration:
|
||||
contactPoints:
|
||||
- %CASSANDRADB_HOST%
|
||||
port: 9042
|
||||
user: cassandra
|
||||
password: cassandra
|
||||
keyspace: monasca
|
||||
localDataCenter: datacenter1
|
||||
maxConnections: 5
|
||||
maxRequests: 2048
|
||||
# socket time out in milliseconds when creating a new connection
|
||||
connectionTimeout: 5000
|
||||
# how long the driver waits for a response from server. Must be
|
||||
# longer than the server side timeouts in the cassandra.yaml
|
||||
readTimeout: 60000
|
||||
|
||||
# number of retries in upsert query. The retry interval is exponential,
|
||||
# i.e., 1, 2, 4, 8 ... seconds. Retry is blocking.
|
||||
maxWriteRetries: 5
|
||||
maxBatches: 250
|
||||
maxDefinitionCacheSize: 2000000
|
||||
# ANY(0),
|
||||
# ONE(1),
|
||||
# TWO(2),
|
||||
# THREE(3),
|
||||
# QUORUM(4),
|
||||
# ALL(5),
|
||||
# LOCAL_QUORUM(6),
|
||||
# EACH_QUORUM(7),
|
||||
# SERIAL(8),
|
||||
# LOCAL_SERIAL(9),
|
||||
# LOCAL_ONE(10);
|
||||
consistencyLevel: ONE
|
||||
# number of days metric retention
|
||||
retentionPolicy: 45
|
||||
|
||||
verticaMetricRepoConfig:
|
||||
maxCacheSize: 2000000
|
||||
|
||||
databaseConfiguration:
|
||||
databaseType: %MONASCA_PERSISTER_DB_TYPE%
|
||||
|
||||
# Uncomment if databaseType is influxdb
|
||||
influxDbConfiguration:
|
||||
# Retention policy may be left blank to indicate default policy.
|
||||
retentionPolicy:
|
||||
maxHttpConnections: 100
|
||||
gzip: true
|
||||
name: "mon"
|
||||
url: "http://%INFLUXDB_HOST%:8086"
|
||||
user: "mon_persister"
|
||||
password: "password"
|
||||
|
||||
|
||||
# Uncomment if databaseType is vertica
|
||||
dataSourceFactory:
|
||||
driverClass: com.vertica.jdbc.Driver
|
||||
url: "jdbc:vertica://%VERTICA_HOST%:5433/mon"
|
||||
user: "mon_persister"
|
||||
password: "password"
|
||||
properties:
|
||||
ssl: false
|
||||
# the maximum amount of time to wait on an empty pool before throwing an exception
|
||||
maxWaitForConnection: 1s
|
||||
# the SQL query to run when validating a connection's liveness
|
||||
validationQuery: "/* MyService Health Check */ SELECT 1"
|
||||
# the minimum number of connections to keep open
|
||||
minSize: 8
|
||||
# the maximum number of connections to keep open
|
||||
maxSize: 41
|
||||
# whether or not idle connections should be validated
|
||||
checkConnectionWhileIdle: false
|
||||
# the maximum lifetime of an idle connection
|
||||
maxConnectionAge: 1 minute
|
||||
|
||||
metrics:
|
||||
frequency: 1 second
|
||||
|
||||
|
||||
# Logging settings.
|
||||
logging:
|
||||
|
||||
# The default level of all loggers. Can be OFF, ERROR, WARN, INFO,
|
||||
# DEBUG, TRACE, or ALL.
|
||||
level: WARN
|
||||
|
||||
# Logger-specific levels.
|
||||
loggers:
|
||||
|
||||
# Sets the level for 'com.example.app' to DEBUG.
|
||||
com.example.app: DEBUG
|
||||
# com.hpcloud: debug
|
||||
# com.hpcloud.mon.persister.repository: DEBUG
|
||||
|
||||
appenders:
|
||||
|
||||
- type: file
|
||||
threshold: INFO
|
||||
archive: true
|
||||
currentLogFilename: "%MONASCA_PERSISTER_LOG_DIR%/monasca-persister.log"
|
||||
archivedLogFilenamePattern: "%MONASCA_PERSISTER_LOG_DIR%/monasca-persister.log-%d.log.gz"
|
||||
archivedFileCount: 5
|
||||
# The timezone used to format dates. HINT: USE THE DEFAULT, UTC.
|
||||
timeZone: UTC
|
||||
|
||||
server:
|
||||
applicationConnectors:
|
||||
- type: http
|
||||
port: %MONASCA_PERSISTER_APP_PORT%
|
||||
bindHost: %MONASCA_PERSISTER_BIND_HOST%
|
||||
adminConnectors:
|
||||
- type: http
|
||||
port: %MONASCA_PERSISTER_ADMIN_PORT%
|
||||
bindHost: %MONASCA_PERSISTER_BIND_HOST%
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: monasca-thresh
|
||||
# Required-Start: $nimbus
|
||||
# Required-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop:
|
||||
# Short-Description: Monitoring threshold engine running under storm
|
||||
# Description:
|
||||
### END INIT INFO
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
$0 status
|
||||
if [ $? -ne 0 ]; then
|
||||
sudo -Hu mon-thresh /opt/storm/current/bin/storm jar /opt/monasca/monasca-thresh.jar monasca.thresh.ThresholdingEngine /etc/monasca/thresh-config.yml thresh-cluster
|
||||
exit $?
|
||||
else
|
||||
echo "monasca-thresh is already running"
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
# On system shutdown storm is being shutdown also and this will hang so skip shutting down thresh in that case
|
||||
if [ -e '/sbin/runlevel' ]; then # upstart/sysV case
|
||||
if [ $(runlevel | cut -d\ -f 2) == 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
else # systemd case
|
||||
systemctl list-units --type=target |grep shutdown.target
|
||||
if [ $? -eq 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
sudo -Hu mon-thresh /opt/storm/current/bin/storm kill thresh-cluster
|
||||
# The above command returns but actually takes awhile loop watching status
|
||||
while true; do
|
||||
sudo -Hu mon-thresh /opt/storm/current/bin/storm list |grep thresh-cluster
|
||||
if [ $? -ne 0 ]; then break; fi
|
||||
sleep 1
|
||||
done
|
||||
;;
|
||||
status)
|
||||
sudo -Hu mon-thresh /opt/storm/current/bin/storm list |grep thresh-cluster
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
esac
|
||||
@@ -1,145 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
# Copyright 2017 Fujitsu LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
metricSpoutThreads: 2
|
||||
metricSpoutTasks: 2
|
||||
|
||||
statsdConfig:
|
||||
host: "127.0.0.1"
|
||||
port: %MONASCA_STATSD_PORT%
|
||||
prefix: monasca.storm.
|
||||
dimensions: !!map
|
||||
service : monitoring
|
||||
component : storm
|
||||
|
||||
|
||||
metricSpoutConfig:
|
||||
kafkaConsumerConfiguration:
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
topic: "metrics"
|
||||
numThreads: 1
|
||||
groupId: "thresh-metric"
|
||||
zookeeperConnect: "127.0.0.1:2181"
|
||||
consumerId: 1
|
||||
socketTimeoutMs: 30000
|
||||
socketReceiveBufferBytes : 65536
|
||||
fetchMessageMaxBytes: 1048576
|
||||
autoCommitEnable: true
|
||||
autoCommitIntervalMs: 60000
|
||||
queuedMaxMessageChunks: 10
|
||||
rebalanceMaxRetries: 4
|
||||
fetchMinBytes: 1
|
||||
fetchWaitMaxMs: 100
|
||||
rebalanceBackoffMs: 2000
|
||||
refreshLeaderBackoffMs: 200
|
||||
autoOffsetReset: largest
|
||||
consumerTimeoutMs: -1
|
||||
clientId : 1
|
||||
zookeeperSessionTimeoutMs : 60000
|
||||
zookeeperConnectionTimeoutMs : 60000
|
||||
zookeeperSyncTimeMs: 2000
|
||||
|
||||
|
||||
eventSpoutConfig:
|
||||
kafkaConsumerConfiguration:
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
topic: "events"
|
||||
numThreads: 1
|
||||
groupId: "thresh-event"
|
||||
zookeeperConnect: "127.0.0.1:2181"
|
||||
consumerId: 1
|
||||
socketTimeoutMs: 30000
|
||||
socketReceiveBufferBytes : 65536
|
||||
fetchMessageMaxBytes: 1048576
|
||||
autoCommitEnable: true
|
||||
autoCommitIntervalMs: 60000
|
||||
queuedMaxMessageChunks: 10
|
||||
rebalanceMaxRetries: 4
|
||||
fetchMinBytes: 1
|
||||
fetchWaitMaxMs: 100
|
||||
rebalanceBackoffMs: 2000
|
||||
refreshLeaderBackoffMs: 200
|
||||
autoOffsetReset: largest
|
||||
consumerTimeoutMs: -1
|
||||
clientId : 1
|
||||
zookeeperSessionTimeoutMs : 60000
|
||||
zookeeperConnectionTimeoutMs : 60000
|
||||
zookeeperSyncTimeMs: 2000
|
||||
|
||||
|
||||
kafkaProducerConfig:
|
||||
# See http://kafka.apache.org/documentation.html#api for semantics and defaults.
|
||||
topic: "alarm-state-transitions"
|
||||
metadataBrokerList: "%KAFKA_HOST%:9092"
|
||||
serializerClass: kafka.serializer.StringEncoder
|
||||
partitionerClass:
|
||||
requestRequiredAcks: 1
|
||||
requestTimeoutMs: 10000
|
||||
producerType: sync
|
||||
keySerializerClass:
|
||||
compressionCodec: none
|
||||
compressedTopics:
|
||||
messageSendMaxRetries: 3
|
||||
retryBackoffMs: 100
|
||||
topicMetadataRefreshIntervalMs: 600000
|
||||
queueBufferingMaxMs: 5000
|
||||
queueBufferingMaxMessages: 10000
|
||||
queueEnqueueTimeoutMs: -1
|
||||
batchNumMessages: 200
|
||||
sendBufferBytes: 102400
|
||||
clientId : Threshold_Engine
|
||||
|
||||
|
||||
sporadicMetricNamespaces:
|
||||
- foo
|
||||
|
||||
database:
|
||||
driverClass: %MONASCA_THRESH_DATABASE_ENGINE%
|
||||
url: "jdbc:mariadb://%DATABASE_HOST%:%DATABASE_PORT%/mon"
|
||||
user: "%DATABASE_USER%"
|
||||
password: "%DATABASE_PASSWORD%"
|
||||
properties:
|
||||
ssl: false
|
||||
# the maximum amount of time to wait on an empty pool before throwing an exception
|
||||
maxWaitForConnection: 1s
|
||||
|
||||
# the SQL query to run when validating a connection's liveness
|
||||
validationQuery: "/* %DATABASE_TYPE% Health Check */ SELECT 1"
|
||||
|
||||
# the minimum number of connections to keep open
|
||||
minSize: 8
|
||||
|
||||
# the maximum number of connections to keep open
|
||||
maxSize: 41
|
||||
|
||||
# flag indicates if Hibernate support enabled
|
||||
hibernateSupport: %MONASCA_DATABASE_USE_ORM%
|
||||
|
||||
# hibernate provider class
|
||||
providerClass: com.zaxxer.hikari.hibernate.HikariConnectionProvider
|
||||
|
||||
# database name
|
||||
databaseName: mon
|
||||
|
||||
# server name/address
|
||||
serverName: %DATABASE_HOST%
|
||||
|
||||
# server port number
|
||||
portNumber: %DATABASE_PORT%
|
||||
|
||||
# hibernate auto configuretion parameter
|
||||
autoConfig: validate
|
||||
@@ -1,138 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
"""A simple script to setup influxdb user and roles. At some point this should
|
||||
become a more full featured module. Also this assumes that none of the
|
||||
python based influxdb clients are available on this system.
|
||||
"""
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
from oslo_utils.encodeutils import safe_decode
|
||||
from oslo_utils.encodeutils import safe_encode
|
||||
from six.moves import urllib
|
||||
import six.moves.urllib.parse as urlparse
|
||||
|
||||
ADMIN = 'root'
|
||||
ADMIN_PASS = 'root'
|
||||
DBNAME = 'mon'
|
||||
USERS = {}
|
||||
USERS['mon_api'] = 'password'
|
||||
USERS['mon_persister'] = 'password'
|
||||
|
||||
URL = 'http://127.0.0.1:8086'
|
||||
|
||||
SHARDSPACE_NAME = 'persister_all'
|
||||
REPLICATION = 1
|
||||
RETENTION = '90d'
|
||||
|
||||
|
||||
def format_response(req):
|
||||
try:
|
||||
json_value = json.loads(req.read())
|
||||
if (len(json_value['results'][0]) > 0 and
|
||||
'series' in json_value['results'][0] and
|
||||
'values' in json_value['results'][0]['series'][0]):
|
||||
return json_value['results'][0]['series'][0]['values']
|
||||
else:
|
||||
return []
|
||||
except KeyError:
|
||||
print("Query returned a non-successful result: {0}".format(json_value['results']))
|
||||
raise
|
||||
|
||||
|
||||
def influxdb_get(uri, query, db=None):
|
||||
"""Runs a query via HTTP GET and returns the response as a Python list."""
|
||||
|
||||
getparams = {"q": query}
|
||||
if db:
|
||||
getparams['db'] = db
|
||||
|
||||
try:
|
||||
params = urlparse.urlencode(getparams)
|
||||
uri = "{}&{}".format(uri, params)
|
||||
req = urllib.request.urlopen(uri)
|
||||
return format_response(req)
|
||||
|
||||
except KeyError:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def influxdb_get_post(uri, query, db=None):
|
||||
"""Runs a query using HTTP GET or POST and returns the response as a Python list.
|
||||
At some InfluxDB release several ops changed from using GET to POST. For example,
|
||||
CREATE DATABASE. To maintain backward compatibility, this function first trys the
|
||||
query using POST and if that fails it retries again using GET.
|
||||
"""
|
||||
|
||||
query_params = {"q": query}
|
||||
if db:
|
||||
query_params['db'] = db
|
||||
|
||||
try:
|
||||
encoded_params = safe_encode(urlparse.urlencode(query_params))
|
||||
try:
|
||||
req = urllib.request.urlopen(uri, encoded_params)
|
||||
return format_response(req)
|
||||
|
||||
except urllib.error.HTTPError:
|
||||
uri = "{}&{}".format(uri, encoded_params)
|
||||
req = urllib.request.urlopen(uri)
|
||||
return format_response(req)
|
||||
|
||||
except KeyError:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
"""If necessary, create the database, retention policy, and users"""
|
||||
auth_str = '?u=%s&p=%s' % (ADMIN, ADMIN_PASS)
|
||||
api_uri = "{0}/query{1}".format(URL, auth_str)
|
||||
|
||||
# List current databases
|
||||
dbs = influxdb_get(uri=api_uri, query="SHOW DATABASES")
|
||||
if [DBNAME] not in dbs:
|
||||
print("Creating database '{}'".format(DBNAME))
|
||||
influxdb_get_post(uri=api_uri, query="CREATE DATABASE {0}".format(DBNAME))
|
||||
print("...created!")
|
||||
|
||||
# Check retention policy
|
||||
policies = influxdb_get(uri=api_uri,
|
||||
query="SHOW RETENTION POLICIES ON {0}".format(DBNAME))
|
||||
if not any(pol[0] == SHARDSPACE_NAME for pol in policies):
|
||||
# Set retention policy
|
||||
policy = ("CREATE RETENTION POLICY {0} ON {1} DURATION {2} "
|
||||
"REPLICATION {3} DEFAULT".format(SHARDSPACE_NAME,
|
||||
DBNAME,
|
||||
RETENTION,
|
||||
REPLICATION)
|
||||
)
|
||||
influxdb_get_post(uri=api_uri, db=DBNAME, query=policy)
|
||||
|
||||
# Create the users
|
||||
users = influxdb_get(uri=api_uri, query="SHOW USERS", db=DBNAME)
|
||||
for name, password in USERS.items():
|
||||
if not any(user[0] == name for user in users):
|
||||
influxdb_get_post(uri=api_uri,
|
||||
query=safe_decode("CREATE USER {0} WITH PASSWORD '{1}'"
|
||||
.format(name, password)),
|
||||
db=DBNAME)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -1,63 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
### base
|
||||
java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"
|
||||
storm.local.dir: "/var/storm"
|
||||
|
||||
### zookeeper.*
|
||||
storm.zookeeper.servers:
|
||||
- "127.0.0.1"
|
||||
storm.zookeeper.port: 2181
|
||||
storm.zookeeper.retry.interval: 5000
|
||||
storm.zookeeper.retry.times: 60
|
||||
storm.zookeeper.root: /storm
|
||||
storm.zookeeper.session.timeout: 3000
|
||||
|
||||
### supervisor.* configs are for node supervisors
|
||||
supervisor.slots.ports:
|
||||
- 6701
|
||||
- 6702
|
||||
supervisor.childopts: -Xmx256m
|
||||
|
||||
### worker.* configs are for task workers
|
||||
worker.childopts: -Xmx1280m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote
|
||||
|
||||
### nimbus.* configs are for the master
|
||||
nimbus.seeds: ["127.0.0.1"]
|
||||
nimbus.thrift.port: 6627
|
||||
nimbus.childopts: -Xmx256m
|
||||
|
||||
### ui.* configs are for the master
|
||||
ui.host: %STORM_UI_HOST%
|
||||
ui.port: %STORM_UI_PORT%
|
||||
ui.childopts: -Xmx768m
|
||||
|
||||
### logviewer.* configs are for the master
|
||||
logviewer.port: %STORM_LOGVIEWER_PORT%
|
||||
logviewer.childopts: -Xmx128m
|
||||
|
||||
### drpc.* configs
|
||||
|
||||
### transactional.* configs
|
||||
transactional.zookeeper.servers:
|
||||
- "127.0.0.1"
|
||||
transactional.zookeeper.port: 2181
|
||||
transactional.zookeeper.root: /storm-transactional
|
||||
|
||||
### topology.* configs are for specific executing storms
|
||||
topology.acker.executors: 1
|
||||
topology.debug: False
|
||||
@@ -1,14 +0,0 @@
|
||||
CREATE SCHEMA MonAlarms;
|
||||
|
||||
CREATE TABLE MonAlarms.StateHistory(
|
||||
id AUTO_INCREMENT,
|
||||
tenant_id VARCHAR,
|
||||
alarm_id VARCHAR,
|
||||
metrics VARCHAR (65000),
|
||||
old_state VARCHAR,
|
||||
new_state VARCHAR,
|
||||
sub_alarms VARCHAR (65000),
|
||||
reason VARCHAR(65000),
|
||||
reason_data VARCHAR(65000),
|
||||
time_stamp TIMESTAMP NOT NULL
|
||||
) PARTITION BY EXTRACT('year' FROM time_stamp)*10000 + EXTRACT('month' FROM time_stamp)*100 + EXTRACT('day' FROM time_stamp);
|
||||
@@ -1,105 +0,0 @@
|
||||
DROP SCHEMA MonMetrics CASCADE;
|
||||
|
||||
CREATE SCHEMA MonMetrics;
|
||||
|
||||
CREATE TABLE MonMetrics.Measurements (
|
||||
definition_dimensions_id BINARY(20) NOT NULL,
|
||||
time_stamp TIMESTAMP NOT NULL,
|
||||
value FLOAT NOT NULL,
|
||||
value_meta VARCHAR(2048)
|
||||
) PARTITION BY EXTRACT('year' FROM time_stamp)*10000 + EXTRACT('month' FROM time_stamp)*100 + EXTRACT('day' FROM time_stamp);
|
||||
|
||||
CREATE TABLE MonMetrics.Definitions(
|
||||
id BINARY(20) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
tenant_id VARCHAR(255) NOT NULL,
|
||||
region VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
CONSTRAINT MetricsDefinitionsConstraint UNIQUE(name, tenant_id, region)
|
||||
);
|
||||
|
||||
CREATE TABLE MonMetrics.Dimensions (
|
||||
dimension_set_id BINARY(20) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
value VARCHAR(255) NOT NULL,
|
||||
CONSTRAINT MetricsDimensionsConstraint UNIQUE(dimension_set_id, name, value)
|
||||
);
|
||||
|
||||
CREATE TABLE MonMetrics.DefinitionDimensions (
|
||||
id BINARY(20) NOT NULL,
|
||||
definition_id BINARY(20) NOT NULL,
|
||||
dimension_set_id BINARY(20) NOT NULL,
|
||||
CONSTRAINT MetricsDefinitionDimensionsConstraint UNIQUE(definition_id, dimension_set_id)
|
||||
);
|
||||
|
||||
-- Projections
|
||||
-- ** These are for a single node system with no k safety
|
||||
|
||||
CREATE PROJECTION Measurements_DBD_1_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
definition_dimensions_id ENCODING RLE,
|
||||
time_stamp ENCODING DELTAVAL,
|
||||
value ENCODING AUTO,
|
||||
value_meta ENCODING RLE
|
||||
)
|
||||
AS
|
||||
SELECT definition_dimensions_id,
|
||||
time_stamp,
|
||||
value,
|
||||
value_meta
|
||||
FROM MonMetrics.Measurements
|
||||
ORDER BY definition_dimensions_id,
|
||||
time_stamp,
|
||||
value_meta
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION Definitions_DBD_2_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
id ENCODING AUTO,
|
||||
name ENCODING AUTO,
|
||||
tenant_id ENCODING RLE,
|
||||
region ENCODING RLE
|
||||
)
|
||||
AS
|
||||
SELECT id,
|
||||
name,
|
||||
tenant_id,
|
||||
region
|
||||
FROM MonMetrics.Definitions
|
||||
ORDER BY region,
|
||||
tenant_id,
|
||||
name
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION Dimensions_DBD_3_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
dimension_set_id ENCODING AUTO,
|
||||
name ENCODING RLE,
|
||||
value ENCODING AUTO
|
||||
)
|
||||
AS
|
||||
SELECT dimension_set_id,
|
||||
name,
|
||||
value
|
||||
FROM MonMetrics.Dimensions
|
||||
ORDER BY name,
|
||||
value,
|
||||
dimension_set_id
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION DefinitionDimensions_DBD_4_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
id ENCODING AUTO,
|
||||
definition_id ENCODING RLE,
|
||||
dimension_set_id ENCODING AUTO
|
||||
)
|
||||
AS
|
||||
SELECT id,
|
||||
definition_id,
|
||||
dimension_set_id
|
||||
FROM MonMetrics.DefinitionDimensions
|
||||
ORDER BY definition_id,
|
||||
dimension_set_id
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
select refresh('MonMetrics.Measurements, MonMetrics.Definitions, MonMetrics.Dimensions, MonMetrics.DefinitionDimensions');
|
||||
@@ -1,18 +0,0 @@
|
||||
CREATE ROLE monasca_persister;
|
||||
CREATE ROLE monasca_api;
|
||||
|
||||
GRANT USAGE ON SCHEMA MonMetrics TO monasca_persister;
|
||||
GRANT USAGE ON SCHEMA MonAlarms TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Measurements TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Definitions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Dimensions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.DefinitionDimensions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonAlarms.StateHistory TO monasca_persister;
|
||||
|
||||
GRANT USAGE ON SCHEMA MonMetrics TO monasca_api;
|
||||
GRANT USAGE ON SCHEMA MonAlarms TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Measurements TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Definitions TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Dimensions TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.DefinitionDimensions TO monasca_api;
|
||||
GRANT ALL ON TABLE MonAlarms.StateHistory TO monasca_api;
|
||||
@@ -1,7 +0,0 @@
|
||||
CREATE USER mon_api IDENTIFIED BY 'password';
|
||||
GRANT monasca_api TO mon_api;
|
||||
ALTER USER mon_api DEFAULT ROLE monasca_api;
|
||||
|
||||
CREATE USER mon_persister IDENTIFIED BY 'password';
|
||||
GRANT monasca_persister TO mon_persister;
|
||||
ALTER USER mon_persister DEFAULT ROLE monasca_persister;
|
||||
@@ -1,68 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
# Copyright 2020 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# ZooKeeper Logging Configuration
|
||||
#
|
||||
|
||||
# Format is "<default threshold> (, <appender>)+
|
||||
|
||||
log4j.rootLogger=INFO, CONSOLE, ROLLINGFILE, TRACEFILE
|
||||
|
||||
# Example: console appender only
|
||||
# log4j.rootLogger=INFO, CONSOLE
|
||||
|
||||
# Example with rolling log file
|
||||
#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
|
||||
|
||||
# Example with rolling log file and tracing
|
||||
#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
|
||||
|
||||
#
|
||||
# Log INFO level and above messages to the console
|
||||
#
|
||||
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.CONSOLE.Threshold=INFO
|
||||
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
|
||||
|
||||
#
|
||||
# Add ROLLINGFILE to rootLogger to get log file output
|
||||
# Log DEBUG level and above messages to a log file
|
||||
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.ROLLINGFILE.Threshold=WARN
|
||||
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/zookeeper.log
|
||||
|
||||
# Max log file size of 10MB
|
||||
log4j.appender.ROLLINGFILE.MaxFileSize=10MB
|
||||
# uncomment the next line to limit number of backup files
|
||||
#log4j.appender.ROLLINGFILE.MaxBackupIndex=10
|
||||
|
||||
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
|
||||
|
||||
|
||||
#
|
||||
# Add TRACEFILE to rootLogger to get log file output
|
||||
# Log DEBUG level and above messages to a log file
|
||||
log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
|
||||
log4j.appender.TRACEFILE.Threshold=TRACE
|
||||
log4j.appender.TRACEFILE.File=${zookeeper.log.dir}/zookeeper_trace.log
|
||||
|
||||
log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
|
||||
### Notice we are including log4j's NDC here (%x)
|
||||
log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n
|
||||
@@ -1,74 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html
|
||||
|
||||
# The number of milliseconds of each tick
|
||||
tickTime=2000
|
||||
# The number of ticks that the initial
|
||||
# synchronization phase can take
|
||||
initLimit=10
|
||||
# The number of ticks that can pass between
|
||||
# sending a request and getting an acknowledgement
|
||||
syncLimit=5
|
||||
# the directory where the snapshot is stored.
|
||||
dataDir=/var/lib/zookeeper
|
||||
# Place the dataLogDir to a separate physical disc for better performance
|
||||
# dataLogDir=/disk2/zookeeper
|
||||
|
||||
# the port at which the clients will connect
|
||||
clientPort=2181
|
||||
|
||||
# Maximum number of clients that can connect from one client
|
||||
maxClientCnxns=60
|
||||
|
||||
# specify all zookeeper servers
|
||||
# The fist port is used by followers to connect to the leader
|
||||
# The second one is used for leader election
|
||||
|
||||
server.0=127.0.0.1:2888:3888
|
||||
|
||||
# To avoid seeks ZooKeeper allocates space in the transaction log file in
|
||||
# blocks of preAllocSize kilobytes. The default block size is 64M. One reason
|
||||
# for changing the size of the blocks is to reduce the block size if snapshots
|
||||
# are taken more often. (Also, see snapCount).
|
||||
#preAllocSize=65536
|
||||
|
||||
# Clients can submit requests faster than ZooKeeper can process them,
|
||||
# especially if there are a lot of clients. To prevent ZooKeeper from running
|
||||
# out of memory due to queued requests, ZooKeeper will throttle clients so that
|
||||
# there is no more than globalOutstandingLimit outstanding requests in the
|
||||
# system. The default limit is 1,000.ZooKeeper logs transactions to a
|
||||
# transaction log. After snapCount transactions are written to a log file a
|
||||
# snapshot is started and a new transaction log file is started. The default
|
||||
# snapCount is 10,000.
|
||||
#snapCount=1000
|
||||
|
||||
# If this option is defined, requests will be will logged to a trace file named
|
||||
# traceFile.year.month.day.
|
||||
#traceFile=
|
||||
|
||||
# Leader accepts client connections. Default value is "yes". The leader machine
|
||||
# coordinates updates. For higher update throughput at thes slight expense of
|
||||
# read throughput the leader can be configured to not accept clients and focus
|
||||
# on coordination.
|
||||
#leaderServes=yes
|
||||
|
||||
# Autopurge every hour to avoid using lots of disk in bursts
|
||||
# Order of the next 2 properties matters.
|
||||
# autopurge.snapRetainCount must be before autopurge.purgeInterval.
|
||||
autopurge.snapRetainCount=3
|
||||
autopurge.purgeInterval=1
|
||||
@@ -1,20 +0,0 @@
|
||||
[Unit]
|
||||
Description=Zookeeper Daemon
|
||||
Documentation=http://zookeeper.apache.org
|
||||
Requires=network.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
WorkingDirectory=/opt/zookeeper
|
||||
User=zookeeper
|
||||
Group=zookeeper
|
||||
Environment=ZOO_LOG_DIR=/var/log/zookeeper
|
||||
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
|
||||
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
|
||||
ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
|
||||
TimeoutSec=30
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
_XTRACE_MON_CLIENT=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
install_monascaclient() {
|
||||
if python3_enabled; then
|
||||
enable_python3_package python-monascaclient
|
||||
fi
|
||||
git_clone $MONASCA_CLIENT_REPO $MONASCA_CLIENT_DIR $MONASCA_CLIENT_BRANCH
|
||||
setup_dev_lib "python-monascaclient"
|
||||
|
||||
# install completion file
|
||||
monasca complete > /tmp/monasca.bash_completion
|
||||
sudo install -D -m 0644 -o $STACK_USER /tmp/monasca.bash_completion $MONASCA_COMPLETION_FILE
|
||||
rm -rf /tmp/monasca.bash_completion
|
||||
}
|
||||
|
||||
clean_monascaclient() {
|
||||
sudo rm -rf $MONASCA_COMPLETION_FILE
|
||||
}
|
||||
|
||||
${_XTRACE_MON_CLIENT}
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
_XTRACE_MON_CONST=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
# Location of python-monascaclient completion file
|
||||
MONASCA_COMPLETION_FILE=/etc/bash_completion.d/monasca.bash_completion
|
||||
|
||||
# Location of monasca-profile
|
||||
MONASCA_PROFILE_FILE=/etc/profile.d/monasca.sh
|
||||
|
||||
# monasca_service_type, used in:
|
||||
# keystone endpoint creation
|
||||
# configuration files
|
||||
MONASCA_SERVICE_TYPE=monitoring
|
||||
|
||||
${_XTRACE_MON_CONST}
|
||||
@@ -1,804 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Copyright 2016-2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
_XTRACE_MON_LOG=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
_ERREXIT_MON_LOG=$(set +o | grep errexit)
|
||||
set -o errexit
|
||||
|
||||
# configuration bits of various services
|
||||
LOG_PERSISTER_DIR=$DEST/monasca-log-persister
|
||||
LOG_TRANSFORMER_DIR=$DEST/monasca-log-transformer
|
||||
LOG_METRICS_DIR=$DEST/monasca-log-metrics
|
||||
LOG_AGENT_DIR=$DEST/monasca-log-agent
|
||||
|
||||
ELASTICSEARCH_DIR=$DEST/elasticsearch
|
||||
ELASTICSEARCH_CFG_DIR=$ELASTICSEARCH_DIR/config
|
||||
ELASTICSEARCH_LOG_DIR=$LOGDIR/elasticsearch
|
||||
ELASTICSEARCH_DATA_DIR=$DATA_DIR/elasticsearch
|
||||
|
||||
KIBANA_DIR=$DEST/kibana
|
||||
KIBANA_CFG_DIR=$KIBANA_DIR/config
|
||||
KIBANA_DEV_DIR=$DEST/kibana_dev
|
||||
KIBANA_DEV_NODE_JS_VERSION=${KIBANA_DEV_NODE_JS_VERSION:-"10.15.2"}
|
||||
|
||||
LOGSTASH_DIR=$DEST/logstash
|
||||
LOGSTASH_DATA_DIR=$DEST/logstash-data
|
||||
|
||||
ES_SERVICE_BIND_HOST=${ES_SERVICE_BIND_HOST:-${SERVICE_HOST}}
|
||||
ES_SERVICE_BIND_PORT=${ES_SERVICE_BIND_PORT:-9200}
|
||||
ES_SERVICE_PUBLISH_HOST=${ES_SERVICE_PUBLISH_HOST:-${SERVICE_HOST}}
|
||||
ES_SERVICE_PUBLISH_PORT=${ES_SERVICE_PUBLISH_PORT:-9300}
|
||||
|
||||
KIBANA_SERVICE_HOST=${KIBANA_SERVICE_HOST:-${SERVICE_HOST}}
|
||||
KIBANA_SERVICE_PORT=${KIBANA_SERVICE_PORT:-5601}
|
||||
KIBANA_SERVER_BASE_PATH=${KIBANA_SERVER_BASE_PATH:-"/dashboard/monitoring/logs_proxy"}
|
||||
|
||||
# Settings needed for Elasticsearch
|
||||
# Elasticsearch uses a lot of file descriptors or file handles.
|
||||
# Increase the limit on the number of open files descriptors for the user running Elasticsearch to 65,536 or higher.
|
||||
LIMIT_NOFILE=${LIMIT_NOFILE:-65535}
|
||||
# Elasticsearch uses a mmapfs directory by default to store its indices.
|
||||
# The default operating system limits on mmap counts is likely to be too low,
|
||||
# which may result in out of memory exceptions, increase to at least 262144.
|
||||
VM_MAX_MAP_COUNT=${VM_MAX_MAP_COUNT:-262144}
|
||||
|
||||
MONASCA_LOG_API_BASE_URI=https://${MONASCA_API_BASE_URI}/logs
|
||||
|
||||
|
||||
run_process_sleep() {
|
||||
local name=$1
|
||||
local cmd=$2
|
||||
local sleepTime=${3:-1}
|
||||
run_process "$name" "$cmd"
|
||||
sleep ${sleepTime}
|
||||
}
|
||||
|
||||
is_logstash_required() {
|
||||
is_service_enabled monasca-log-persister \
|
||||
|| is_service_enabled monasca-log-transformer \
|
||||
|| is_service_enabled monasca-log-metrics \
|
||||
|| is_service_enabled monasca-log-agent \
|
||||
&& return 0
|
||||
}
|
||||
|
||||
# TOP_LEVEL functions called from devstack coordinator
|
||||
###############################################################################
|
||||
function pre_install_logs_services {
|
||||
install_elk
|
||||
install_nodejs
|
||||
install_gate_config_holder
|
||||
}
|
||||
|
||||
function install_monasca_log {
|
||||
configure_nvm
|
||||
configure_yarn
|
||||
build_kibana_plugin
|
||||
install_log_agent
|
||||
if $USE_OLD_LOG_API = true; then
|
||||
install_old_log_api
|
||||
fi
|
||||
}
|
||||
|
||||
function install_elk {
|
||||
install_logstash
|
||||
install_elasticsearch
|
||||
install_kibana
|
||||
}
|
||||
|
||||
function install_gate_config_holder {
|
||||
sudo install -d -o $STACK_USER $GATE_CONFIGURATION_DIR
|
||||
}
|
||||
|
||||
function install_monasca_statsd {
|
||||
if use_library_from_git "monasca-statsd"; then
|
||||
git_clone_by_name "monasca-statsd"
|
||||
setup_dev_lib "monasca-statsd"
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_monasca_log {
|
||||
configure_kafka
|
||||
configure_elasticsearch
|
||||
configure_kibana
|
||||
install_kibana_plugin
|
||||
if $USE_OLD_LOG_API = true; then
|
||||
configure_old_monasca_log_api
|
||||
fi
|
||||
configure_monasca_log_api
|
||||
configure_monasca_log_transformer
|
||||
configure_monasca_log_metrics
|
||||
configure_monasca_log_persister
|
||||
configure_monasca_log_agent
|
||||
|
||||
|
||||
}
|
||||
|
||||
function init_monasca_log {
|
||||
enable_log_management
|
||||
}
|
||||
|
||||
function init_monasca_grafana_dashboards {
|
||||
if is_service_enabled horizon; then
|
||||
echo_summary "Init Grafana dashboards"
|
||||
|
||||
sudo python "${PLUGIN_FILES}"/grafana/grafana.py "${PLUGIN_FILES}"/grafana/dashboards.d
|
||||
fi
|
||||
}
|
||||
|
||||
function install_old_log_api {
|
||||
|
||||
if python3_enabled; then
|
||||
enable_python3_package monasca-log-api
|
||||
fi
|
||||
|
||||
echo_summary "Installing monasca-log-api"
|
||||
|
||||
git_clone $MONASCA_LOG_API_REPO $MONASCA_LOG_API_DIR $MONASCA_LOG_API_BRANCH
|
||||
setup_develop $MONASCA_LOG_API_DIR
|
||||
|
||||
install_keystonemiddleware
|
||||
install_monasca_statsd
|
||||
|
||||
if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
|
||||
install_apache_wsgi
|
||||
elif [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
|
||||
pip_install uwsgi
|
||||
else
|
||||
pip_install gunicorn
|
||||
fi
|
||||
|
||||
if [ "$MONASCA_LOG_API_DEPLOY" != "gunicorn" ]; then
|
||||
if is_ssl_enabled_service "monasca-log-api"; then
|
||||
enable_mod_ssl
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
||||
function configure_old_monasca_log_api {
|
||||
MONASCA_LOG_API_BIN_DIR=$(get_python_exec_prefix)
|
||||
MONASCA_LOG_API_WSGI=$MONASCA_LOG_API_BIN_DIR/monasca-log-api-wsgi
|
||||
|
||||
if is_service_enabled monasca-log-api; then
|
||||
echo_summary "Configuring monasca-log-api"
|
||||
rm -rf $MONASCA_LOG_API_UWSGI_CONF
|
||||
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-uwsgi.ini $MONASCA_LOG_API_UWSGI_CONF
|
||||
|
||||
write_uwsgi_config "$MONASCA_LOG_API_UWSGI_CONF" "$MONASCA_LOG_API_WSGI" "/logs"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_old_monasca_log_api_core {
|
||||
# Put config files in ``$MONASCA_LOG_API_CONF_DIR`` for everyone to find
|
||||
sudo install -d -o $STACK_USER $MONASCA_LOG_API_CONF_DIR
|
||||
sudo install -m 700 -d -o $STACK_USER $MONASCA_LOG_API_CACHE_DIR
|
||||
sudo install -d -o $STACK_USER $MONASCA_LOG_API_LOG_DIR
|
||||
|
||||
# ensure fresh installation of configuration files
|
||||
rm -rf $MONASCA_LOG_API_CONF $MONASCA_LOG_API_PASTE $MONASCA_LOG_API_LOGGING_CONF
|
||||
|
||||
$MONASCA_LOG_API_BIN_DIR/oslo-config-generator \
|
||||
--config-file $MONASCA_LOG_API_DIR/config-generator/monasca-log-api.conf \
|
||||
--output-file /tmp/monasca-log-api.conf
|
||||
|
||||
install -m 600 /tmp/monasca-log-api.conf $MONASCA_LOG_API_CONF && rm -rf /tmp/monasca-log-api.conf
|
||||
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-paste.ini $MONASCA_LOG_API_PASTE
|
||||
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-logging.conf $MONASCA_LOG_API_LOGGING_CONF
|
||||
|
||||
# configure monasca-log-api.conf
|
||||
iniset "$MONASCA_LOG_API_CONF" DEFAULT log_config_append $MONASCA_LOG_API_LOGGING_CONF
|
||||
iniset "$MONASCA_LOG_API_CONF" service region $REGION_NAME
|
||||
|
||||
iniset "$MONASCA_LOG_API_CONF" log_publisher kafka_url $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT
|
||||
iniset "$MONASCA_LOG_API_CONF" log_publisher topics log
|
||||
|
||||
iniset "$MONASCA_LOG_API_CONF" kafka_healthcheck kafka_url $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT
|
||||
iniset "$MONASCA_LOG_API_CONF" kafka_healthcheck kafka_topics log
|
||||
|
||||
iniset "$MONASCA_LOG_API_CONF" roles_middleware path "/v2.0/log"
|
||||
iniset "$MONASCA_LOG_API_CONF" roles_middleware default_roles monasca-user
|
||||
iniset "$MONASCA_LOG_API_CONF" roles_middleware agent_roles monasca-agent
|
||||
iniset "$MONASCA_LOG_API_CONF" roles_middleware delegate_roles admin
|
||||
|
||||
# configure keystone middleware
|
||||
configure_auth_token_middleware "$MONASCA_LOG_API_CONF" "admin" $MONASCA_LOG_API_CACHE_DIR
|
||||
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken region_name $REGION_NAME
|
||||
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken project_name "admin"
|
||||
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken password $ADMIN_PASSWORD
|
||||
|
||||
# insecure
|
||||
if is_service_enabled tls-proxy; then
|
||||
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken insecure False
|
||||
fi
|
||||
|
||||
# configure log-api-paste.ini
|
||||
iniset "$MONASCA_LOG_API_PASTE" server:main bind $MONASCA_LOG_API_SERVICE_HOST:$MONASCA_LOG_API_SERVICE_PORT
|
||||
iniset "$MONASCA_LOG_API_PASTE" server:main chdir $MONASCA_LOG_API_DIR
|
||||
iniset "$MONASCA_LOG_API_PASTE" server:main workers $API_WORKERS
|
||||
}
|
||||
|
||||
function init_agent {
|
||||
echo_summary "Init Monasca agent"
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/http_check.yaml /etc/monasca/agent/conf.d/http_check.yaml
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/process.yaml /etc/monasca/agent/conf.d/process.yaml
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/elastic.yaml /etc/monasca/agent/conf.d/elastic.yaml
|
||||
|
||||
sudo sed -i "s/{{IP}}/$(ip -o -4 addr list eth1 | awk '{print $4}' | cut -d/ -f1 | head -1)/" /etc/monasca/agent/conf.d/*.yaml
|
||||
sudo sed -i "s/127\.0\.0\.1/$(hostname)/" /etc/monasca/agent/conf.d/*.yaml
|
||||
sudo systemctl restart monasca-collector
|
||||
}
|
||||
|
||||
function stop_monasca_log {
|
||||
stop_process "monasca-log-agent" || true
|
||||
stop_monasca_log_api
|
||||
stop_process "monasca-log-metrics" || true
|
||||
stop_process "monasca-log-persister" || true
|
||||
stop_process "monasca-log-transformer" || true
|
||||
stop_process "kibana" || true
|
||||
stop_process "elasticsearch" || true
|
||||
}
|
||||
|
||||
function start_monasca_log {
|
||||
start_elasticsearch
|
||||
start_kibana
|
||||
start_monasca_log_transformer
|
||||
start_monasca_log_metrics
|
||||
start_monasca_log_persister
|
||||
if $USE_OLD_LOG_API = true; then
|
||||
start_monasca_log_api
|
||||
fi
|
||||
start_monasca_log_agent
|
||||
}
|
||||
|
||||
function clean_monasca_log {
|
||||
clean_monasca_log_agent
|
||||
clean_monasca_log_api
|
||||
clean_monasca_log_persister
|
||||
clean_monasca_log_transformer
|
||||
clean_kibana
|
||||
clean_elasticsearch
|
||||
clean_logstash
|
||||
clean_nodejs
|
||||
clean_nvm
|
||||
clean_yarn
|
||||
clean_gate_config_holder
|
||||
}
|
||||
###############################################################################
|
||||
|
||||
function configure_monasca_log_api {
|
||||
if is_service_enabled monasca-log; then
|
||||
echo_summary "Configuring monasca-api"
|
||||
iniset "$MONASCA_API_CONF" DEFAULT enable_logs_api "true"
|
||||
iniset "$MONASCA_API_CONF" kafka logs_topics "log"
|
||||
|
||||
create_log_management_accounts
|
||||
fi
|
||||
}
|
||||
|
||||
function install_logstash {
|
||||
if is_logstash_required; then
|
||||
echo_summary "Installing Logstash ${LOGSTASH_VERSION}"
|
||||
|
||||
local logstash_tarball=logstash-oss-${LOGSTASH_VERSION}.tar.gz
|
||||
local logstash_url=https://artifacts.elastic.co/downloads/logstash/${logstash_tarball}
|
||||
|
||||
local logstash_dest
|
||||
logstash_dest=`get_extra_file ${logstash_url}`
|
||||
|
||||
tar xzf ${logstash_dest} -C $DEST
|
||||
|
||||
sudo chown -R $STACK_USER $DEST/logstash-${LOGSTASH_VERSION}
|
||||
sudo ln -sf $DEST/logstash-${LOGSTASH_VERSION} $LOGSTASH_DIR
|
||||
|
||||
sudo mkdir -p $LOGSTASH_DATA_DIR
|
||||
sudo chown $STACK_USER:monasca $LOGSTASH_DATA_DIR
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_logstash {
|
||||
if is_logstash_required; then
|
||||
echo_summary "Cleaning Logstash ${LOGSTASH_VERSION}"
|
||||
|
||||
sudo rm -rf $LOGSTASH_DIR || true
|
||||
sudo rm -rf $FILES/logstash-${LOGSTASH_VERSION}.tar.gz || true
|
||||
sudo rm -rf $DEST/logstash-${LOGSTASH_VERSION} || true
|
||||
fi
|
||||
}
|
||||
|
||||
function install_elasticsearch {
|
||||
if is_service_enabled elasticsearch; then
|
||||
echo_summary "Installing ElasticSearch ${ELASTICSEARCH_VERSION}"
|
||||
|
||||
local es_tarball=elasticsearch-oss-${ELASTICSEARCH_VERSION}-linux-x86_64.tar.gz
|
||||
local es_url=https://artifacts.elastic.co/downloads/elasticsearch/${es_tarball}
|
||||
|
||||
local es_dest
|
||||
es_dest=`get_extra_file ${es_url}`
|
||||
|
||||
tar xzf ${es_dest} -C $DEST
|
||||
|
||||
sudo chown -R $STACK_USER $DEST/elasticsearch-${ELASTICSEARCH_VERSION}
|
||||
sudo ln -sf $DEST/elasticsearch-${ELASTICSEARCH_VERSION} $ELASTICSEARCH_DIR
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_elasticsearch {
|
||||
if is_service_enabled elasticsearch; then
|
||||
echo_summary "Configuring ElasticSearch ${ELASTICSEARCH_VERSION}"
|
||||
|
||||
local templateDir=$ELASTICSEARCH_CFG_DIR/templates
|
||||
|
||||
for dir in $ELASTICSEARCH_LOG_DIR $templateDir $ELASTICSEARCH_DATA_DIR; do
|
||||
sudo install -m 755 -d -o $STACK_USER $dir
|
||||
done
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/elasticsearch/elasticsearch.yml $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
|
||||
sudo chown -R $STACK_USER $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
|
||||
sudo chmod 0644 $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
|
||||
|
||||
sudo sed -e "
|
||||
s|%ES_SERVICE_BIND_HOST%|$ES_SERVICE_BIND_HOST|g;
|
||||
s|%ES_SERVICE_BIND_PORT%|$ES_SERVICE_BIND_PORT|g;
|
||||
s|%ES_DATA_DIR%|$ELASTICSEARCH_DATA_DIR|g;
|
||||
s|%ES_LOG_DIR%|$ELASTICSEARCH_LOG_DIR|g;
|
||||
" -i $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
|
||||
|
||||
sudo ln -sf $ELASTICSEARCH_CFG_DIR/elasticsearch.yml $GATE_CONFIGURATION_DIR/elasticsearch.yml
|
||||
|
||||
echo "[Service]" | sudo tee --append /etc/systemd/system/devstack\@elasticsearch.service > /dev/null
|
||||
echo "LimitNOFILE=$LIMIT_NOFILE" | sudo tee --append /etc/systemd/system/devstack\@elasticsearch.service > /dev/null
|
||||
|
||||
echo "vm.max_map_count=$VM_MAX_MAP_COUNT" | sudo tee --append /etc/sysctl.conf > /dev/null
|
||||
sudo sysctl -w vm.max_map_count=$VM_MAX_MAP_COUNT
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_elasticsearch {
|
||||
if is_service_enabled elasticsearch; then
|
||||
echo_summary "Cleaning Elasticsearch ${ELASTICSEARCH_VERSION}"
|
||||
|
||||
sudo rm -rf ELASTICSEARCH_DIR || true
|
||||
sudo rm -rf ELASTICSEARCH_CFG_DIR || true
|
||||
sudo rm -rf ELASTICSEARCH_LOG_DIR || true
|
||||
sudo rm -rf ELASTICSEARCH_DATA_DIR || true
|
||||
sudo rm -rf $FILES/elasticsearch-${ELASTICSEARCH_VERSION}.tar.gz || true
|
||||
sudo rm -rf $DEST/elasticsearch-${ELASTICSEARCH_VERSION} || true
|
||||
fi
|
||||
}
|
||||
|
||||
function start_elasticsearch {
|
||||
if is_service_enabled elasticsearch; then
|
||||
echo_summary "Starting ElasticSearch ${ELASTICSEARCH_VERSION}"
|
||||
# 5 extra seconds to ensure that ES started properly
|
||||
local esSleepTime=${ELASTICSEARCH_SLEEP_TIME:-5}
|
||||
run_process_sleep "elasticsearch" "$ELASTICSEARCH_DIR/bin/elasticsearch -E logger.org.elasticsearch=DEBUG" $esSleepTime
|
||||
fi
|
||||
}
|
||||
|
||||
function _get_kibana_version_name {
|
||||
echo "kibana-${KIBANA_VERSION}-linux-x86_64"
|
||||
}
|
||||
|
||||
function _get_kibana_oss_version_name {
|
||||
echo "kibana-oss-${KIBANA_VERSION}-linux-x86_64"
|
||||
}
|
||||
|
||||
function install_kibana {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Installing Kibana ${KIBANA_VERSION}"
|
||||
|
||||
local kibana_oss_version_name
|
||||
kibana_oss_version_name=`_get_kibana_oss_version_name`
|
||||
local kibana_tarball=${kibana_oss_version_name}.tar.gz
|
||||
local kibana_tarball_url=https://artifacts.elastic.co/downloads/kibana/${kibana_tarball}
|
||||
local kibana_tarball_dest
|
||||
kibana_tarball_dest=`get_extra_file ${kibana_tarball_url}`
|
||||
|
||||
tar xzf ${kibana_tarball_dest} -C $DEST
|
||||
|
||||
local kibana_version_name
|
||||
kibana_version_name=`_get_kibana_version_name`
|
||||
sudo chown -R $STACK_USER $DEST/${kibana_version_name}
|
||||
sudo ln -sf $DEST/${kibana_version_name} $KIBANA_DIR
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_kibana {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Configuring Kibana ${KIBANA_VERSION}"
|
||||
|
||||
sudo install -m 755 -d -o $STACK_USER $KIBANA_CFG_DIR
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/kibana/kibana.yml $KIBANA_CFG_DIR/kibana.yml
|
||||
sudo chown -R $STACK_USER $KIBANA_CFG_DIR/kibana.yml
|
||||
sudo chmod 0644 $KIBANA_CFG_DIR/kibana.yml
|
||||
|
||||
sudo sed -e "
|
||||
s|%KIBANA_SERVICE_HOST%|$KIBANA_SERVICE_HOST|g;
|
||||
s|%KIBANA_SERVICE_PORT%|$KIBANA_SERVICE_PORT|g;
|
||||
s|%ES_SERVICE_BIND_HOST%|$ES_SERVICE_BIND_HOST|g;
|
||||
s|%ES_SERVICE_BIND_PORT%|$ES_SERVICE_BIND_PORT|g;
|
||||
s|%KIBANA_SERVER_BASE_PATH%|$KIBANA_SERVER_BASE_PATH|g;
|
||||
s|%KEYSTONE_AUTH_URI%|$KEYSTONE_AUTH_URI|g;
|
||||
" -i $KIBANA_CFG_DIR/kibana.yml
|
||||
|
||||
sudo ln -sf $KIBANA_CFG_DIR/kibana.yml $GATE_CONFIGURATION_DIR/kibana.yml
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_kibana {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Cleaning Kibana ${KIBANA_VERSION}"
|
||||
|
||||
local kibana_tarball
|
||||
kibana_tarball=`_get_kibana_oss_version_name`.tar.gz
|
||||
sudo rm -rf $KIBANA_DIR || true
|
||||
sudo rm -rf $FILES/${kibana_tarball} || true
|
||||
sudo rm -rf $KIBANA_CFG_DIR || true
|
||||
fi
|
||||
}
|
||||
|
||||
function start_kibana {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Starting Kibana ${KIBANA_VERSION}"
|
||||
local kibanaSleepTime=${KIBANA_SLEEP_TIME:-120} # kibana takes some time to load up
|
||||
local kibanaCFG="$KIBANA_CFG_DIR/kibana.yml"
|
||||
run_process_sleep "kibana" "$KIBANA_DIR/bin/kibana --config $kibanaCFG" $kibanaSleepTime
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_nvm {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Configuring NVM"
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
|
||||
source ~/.nvm/nvm.sh
|
||||
nvm install $KIBANA_DEV_NODE_JS_VERSION
|
||||
nvm use $KIBANA_DEV_NODE_JS_VERSION
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_yarn {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Configuring Yarn"
|
||||
REPOS_UPDATED=False
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | \
|
||||
sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
apt_get_update
|
||||
apt_get install yarn
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_nvm {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Cleaning NVM"
|
||||
rm -rf ~/.nvm
|
||||
rm -rf ~/.bower
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_yarn {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Cleaning Yarn"
|
||||
apt_get purge yarn
|
||||
fi
|
||||
}
|
||||
|
||||
function build_kibana_plugin {
|
||||
if is_service_enabled kibana; then
|
||||
echo "Building Kibana plugin"
|
||||
|
||||
echo_summary "Cloning and initializing Kibana development environment"
|
||||
|
||||
git clone $KIBANA_DEV_REPO $KIBANA_DEV_DIR --branch $KIBANA_DEV_BRANCH --depth 1
|
||||
|
||||
git_clone $MONASCA_KIBANA_PLUGIN_REPO $MONASCA_KIBANA_PLUGIN_DIR $MONASCA_KIBANA_PLUGIN_BRANCH
|
||||
cd $MONASCA_KIBANA_PLUGIN_DIR
|
||||
git_update_branch $MONASCA_KIBANA_PLUGIN_BRANCH
|
||||
cp -r $MONASCA_KIBANA_PLUGIN_DIR "$KIBANA_DEV_DIR/plugins"
|
||||
local plugin_dir="$KIBANA_DEV_DIR/plugins/monasca-kibana-plugin"
|
||||
|
||||
yarn --cwd $KIBANA_DEV_DIR kbn bootstrap
|
||||
yarn --cwd $plugin_dir build
|
||||
|
||||
local get_version_script="import json; obj = json.load(open('$plugin_dir/package.json')); print(obj['version'])"
|
||||
local monasca_kibana_plugin_version
|
||||
monasca_kibana_plugin_version=$(python -c "$get_version_script")
|
||||
local pkg="$plugin_dir/build/monasca-kibana-plugin-$monasca_kibana_plugin_version.zip"
|
||||
local easyPkg=$DEST/monasca-kibana-plugin.zip
|
||||
ln $pkg $easyPkg
|
||||
rm -rf $KIBANA_DEV_DIR
|
||||
fi
|
||||
}
|
||||
|
||||
function install_kibana_plugin {
|
||||
if is_service_enabled kibana; then
|
||||
echo_summary "Install Kibana plugin"
|
||||
# note(trebskit) that needs to happen after kibana received
|
||||
# its configuration otherwise the plugin fails to be installed
|
||||
local pkg=file://$DEST/monasca-kibana-plugin.zip
|
||||
$KIBANA_DIR/bin/kibana-plugin install $pkg
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_monasca_log_persister {
|
||||
if is_service_enabled monasca-log-persister; then
|
||||
echo_summary "Configuring monasca-log-persister"
|
||||
|
||||
sudo install -m 755 -d -o $STACK_USER $LOG_PERSISTER_DIR
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-log-persister/persister.conf $LOG_PERSISTER_DIR/persister.conf
|
||||
sudo chown $STACK_USER $LOG_PERSISTER_DIR/persister.conf
|
||||
sudo chmod 0640 $LOG_PERSISTER_DIR/persister.conf
|
||||
|
||||
sudo sed -e "
|
||||
s|%ES_SERVICE_BIND_HOST%|$ES_SERVICE_BIND_HOST|g;
|
||||
s|%KAFKA_SERVICE_HOST%|$KAFKA_SERVICE_HOST|g;
|
||||
s|%KAFKA_SERVICE_PORT%|$KAFKA_SERVICE_PORT|g;
|
||||
" -i $LOG_PERSISTER_DIR/persister.conf
|
||||
|
||||
ln -sf $LOG_PERSISTER_DIR/persister.conf $GATE_CONFIGURATION_DIR/log-persister.conf
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_monasca_log_persister {
|
||||
if is_service_enabled monasca-log-persister; then
|
||||
echo_summary "Cleaning monasca-log-persister"
|
||||
sudo rm -rf $LOG_PERSISTER_DIR || true
|
||||
fi
|
||||
}
|
||||
|
||||
function start_monasca_log_persister {
|
||||
if is_service_enabled monasca-log-persister; then
|
||||
echo_summary "Starting monasca-log-persister"
|
||||
local logstash="$LOGSTASH_DIR/bin/logstash"
|
||||
run_process "monasca-log-persister" "$logstash -f $LOG_PERSISTER_DIR/persister.conf --path.data $LOGSTASH_DATA_DIR/monasca-log-persister"
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_monasca_log_transformer {
|
||||
if is_service_enabled monasca-log-transformer; then
|
||||
echo_summary "Configuring monasca-log-transformer"
|
||||
|
||||
sudo install -m 755 -d -o $STACK_USER $LOG_TRANSFORMER_DIR
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-log-transformer/transformer.conf $LOG_TRANSFORMER_DIR/transformer.conf
|
||||
sudo chown $STACK_USER $LOG_TRANSFORMER_DIR/transformer.conf
|
||||
sudo chmod 0640 $LOG_TRANSFORMER_DIR/transformer.conf
|
||||
|
||||
sudo sed -e "
|
||||
s|%KAFKA_SERVICE_HOST%|$KAFKA_SERVICE_HOST|g;
|
||||
s|%KAFKA_SERVICE_PORT%|$KAFKA_SERVICE_PORT|g;
|
||||
" -i $LOG_TRANSFORMER_DIR/transformer.conf
|
||||
|
||||
ln -sf $LOG_TRANSFORMER_DIR/transformer.conf $GATE_CONFIGURATION_DIR/log-transformer.conf
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_monasca_log_transformer {
|
||||
if is_service_enabled monasca-log-transformer; then
|
||||
echo_summary "Cleaning monasca-log-transformer"
|
||||
sudo rm -rf $LOG_TRANSFORMER_DIR || true
|
||||
fi
|
||||
}
|
||||
|
||||
function start_monasca_log_transformer {
|
||||
if is_service_enabled monasca-log-transformer; then
|
||||
echo_summary "Starting monasca-log-transformer"
|
||||
local logstash="$LOGSTASH_DIR/bin/logstash"
|
||||
run_process "monasca-log-transformer" "$logstash -f $LOG_TRANSFORMER_DIR/transformer.conf --path.data $LOGSTASH_DATA_DIR/monasca-log-transformer"
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_monasca_log_metrics {
|
||||
if is_service_enabled monasca-log-metrics; then
|
||||
echo_summary "Configuring monasca-log-metrics"
|
||||
|
||||
sudo install -m 755 -d -o $STACK_USER $LOG_METRICS_DIR
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-log-metrics/log-metrics.conf $LOG_METRICS_DIR/log-metrics.conf
|
||||
sudo chown $STACK_USER $LOG_METRICS_DIR/log-metrics.conf
|
||||
sudo chmod 0640 $LOG_METRICS_DIR/log-metrics.conf
|
||||
|
||||
sudo sed -e "
|
||||
s|%KAFKA_SERVICE_HOST%|$KAFKA_SERVICE_HOST|g;
|
||||
s|%KAFKA_SERVICE_PORT%|$KAFKA_SERVICE_PORT|g;
|
||||
" -i $LOG_METRICS_DIR/log-metrics.conf
|
||||
|
||||
ln -sf $LOG_METRICS_DIR/log-metrics.conf $GATE_CONFIGURATION_DIR/log-metrics.conf
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_monasca_log_metrics {
|
||||
if is_service_enabled monasca-log-metrics; then
|
||||
echo_summary "Cleaning monasca-log-metrics"
|
||||
sudo rm -rf $LOG_METRICS_DIR || true
|
||||
fi
|
||||
}
|
||||
|
||||
function start_monasca_log_metrics {
|
||||
if is_service_enabled monasca-log-metrics; then
|
||||
echo_summary "Starting monasca-log-metrics"
|
||||
local logstash="$LOGSTASH_DIR/bin/logstash"
|
||||
run_process "monasca-log-metrics" "$logstash -f $LOG_METRICS_DIR/log-metrics.conf --path.data $LOGSTASH_DATA_DIR/monasca-log-metrics"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_log_agent {
|
||||
if is_service_enabled monasca-log-agent; then
|
||||
echo_summary "Installing monasca-log-agent [logstash-output-monasca-plugin]"
|
||||
|
||||
$LOGSTASH_DIR/bin/logstash-plugin install --version \
|
||||
"${LOGSTASH_OUTPUT_MONASCA_VERSION}" logstash-output-monasca_log_api
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_monasca_log_agent {
|
||||
if is_service_enabled monasca-log-agent; then
|
||||
echo_summary "Configuring monasca-log-agent"
|
||||
|
||||
sudo install -m 755 -d -o $STACK_USER $LOG_AGENT_DIR
|
||||
|
||||
sudo cp -f "${PLUGIN_FILES}"/monasca-log-agent/agent.conf $LOG_AGENT_DIR/agent.conf
|
||||
sudo chown $STACK_USER $LOG_AGENT_DIR/agent.conf
|
||||
sudo chmod 0640 $LOG_AGENT_DIR/agent.conf
|
||||
|
||||
sudo sed -e "
|
||||
s|%MONASCA_API_URI_V2%|$MONASCA_API_URI_V2|g;
|
||||
s|%KEYSTONE_AUTH_URI%|$KEYSTONE_AUTH_URI_V3|g;
|
||||
" -i $LOG_AGENT_DIR/agent.conf
|
||||
|
||||
ln -sf $LOG_AGENT_DIR/agent.conf $GATE_CONFIGURATION_DIR/log-agent.conf
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_monasca_log_agent {
|
||||
if is_service_enabled monasca-log-agent; then
|
||||
echo_summary "Cleaning monasca-log-agent"
|
||||
sudo rm -rf $LOG_AGENT_DIR || true
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function start_monasca_log_api {
|
||||
if is_service_enabled monasca-log-api; then
|
||||
echo_summary "Starting monasca-log-api"
|
||||
|
||||
local service_port=$MONASCA_LOG_API_SERVICE_PORT
|
||||
local service_protocol=$MONASCA_LOG_API_SERVICE_PROTOCOL
|
||||
if is_service_enabled tls-proxy; then
|
||||
service_port=$MONASCA_LOG_API_SERVICE_PORT_INT
|
||||
service_protocol="http"
|
||||
fi
|
||||
local service_uri
|
||||
|
||||
if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
|
||||
local enabled_site_file
|
||||
enabled_site_file=$(apache_site_config_for monasca-log-api)
|
||||
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST/logs/v3.0
|
||||
if [ -f ${enabled_site_file} ]; then
|
||||
enable_apache_site monasca-log-api
|
||||
restart_apache_server
|
||||
tail_log monasca-log-api /var/log/$APACHE_NAME/monasca-log-api.log
|
||||
fi
|
||||
elif [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
|
||||
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST/logs/v3.0
|
||||
run_process "monasca-log-api" "$MONASCA_LOG_API_BIN_DIR/uwsgi --ini $MONASCA_LOG_API_UWSGI_CONF" ""
|
||||
else
|
||||
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST:$service_port
|
||||
run_process "monasca-log-api" "$MONASCA_LOG_API_BIN_DIR/gunicorn --paste $MONASCA_LOG_API_PASTE" ""
|
||||
fi
|
||||
|
||||
echo "Waiting for monasca-log-api to start..."
|
||||
if ! wait_for_service $SERVICE_TIMEOUT $service_uri; then
|
||||
die $LINENO "monasca-log-api did not start"
|
||||
fi
|
||||
|
||||
if is_service_enabled tls-proxy; then
|
||||
start_tls_proxy monasca-log-api '*' $MONASCA_LOG_API_SERVICE_PORT $MONASCA_LOG_API_SERVICE_HOST $MONASCA_LOG_API_SERVICE_PORT_INT
|
||||
fi
|
||||
|
||||
restart_service memcached
|
||||
fi
|
||||
}
|
||||
|
||||
function start_monasca_log_agent {
|
||||
if is_service_enabled monasca-log-agent; then
|
||||
echo_summary "Starting monasca-log-agent"
|
||||
local logstash="$LOGSTASH_DIR/bin/logstash"
|
||||
run_process "monasca-log-agent" "$logstash -f $LOG_AGENT_DIR/agent.conf --path.data $LOGSTASH_DATA_DIR/monasca-log-agent" "root" "root"
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_gate_config_holder {
|
||||
sudo rm -rf $GATE_CONFIGURATION_DIR || true
|
||||
}
|
||||
|
||||
function configure_kafka {
|
||||
echo_summary "Configuring Kafka topics"
|
||||
for topic in ${KAFKA_SERVICE_LOG_TOPICS//,/ }; do
|
||||
/opt/kafka/bin/kafka-topics.sh --create \
|
||||
--bootstrap-server $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT \
|
||||
--replication-factor 1 \
|
||||
--partitions 4 \
|
||||
--topic $topic
|
||||
done
|
||||
}
|
||||
|
||||
function delete_kafka_topics {
|
||||
echo_summary "Deleting Kafka topics"
|
||||
for topic in ${KAFKA_SERVICE_LOG_TOPICS//,/ }; do
|
||||
/opt/kafka/bin/kafka-topics.sh --delete \
|
||||
--bootstrap-server $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT \
|
||||
--replication-factor 1 \
|
||||
--partitions 4 \
|
||||
--topic $topic || true
|
||||
done
|
||||
}
|
||||
|
||||
function create_log_management_accounts {
|
||||
if is_service_enabled monasca-log; then
|
||||
echo_summary "Enable Log Management in Keystone"
|
||||
|
||||
# note(trebskit) following points to Kibana which is bad,
|
||||
# but we do not have search-api in monasca-log-api now
|
||||
# this code will be removed in future
|
||||
local log_search_url="http://$KIBANA_SERVICE_HOST:$KIBANA_SERVICE_PORT/"
|
||||
|
||||
get_or_create_service "logs" "logs" "Monasca Log service"
|
||||
|
||||
if $USE_OLD_LOG_API = true; then
|
||||
get_or_create_endpoint \
|
||||
"logs" \
|
||||
"$REGION_NAME" \
|
||||
"$MONASCA_LOG_API_BASE_URI" \
|
||||
"$MONASCA_LOG_API_BASE_URI" \
|
||||
"$MONASCA_LOG_API_BASE_URI"
|
||||
else
|
||||
get_or_create_endpoint \
|
||||
"logs" \
|
||||
"$REGION_NAME" \
|
||||
"$MONASCA_API_URI_V2" \
|
||||
"$MONASCA_API_URI_V2" \
|
||||
"$MONASCA_API_URI_V2"
|
||||
|
||||
fi
|
||||
|
||||
get_or_create_service "logs-search" "logs-search" "Monasca Log search service"
|
||||
get_or_create_endpoint \
|
||||
"logs-search" \
|
||||
"$REGION_NAME" \
|
||||
"$log_search_url" \
|
||||
"$log_search_url" \
|
||||
"$log_search_url"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
#Restore errexit
|
||||
${_ERREXIT_MON_LOG}
|
||||
|
||||
# Restore xtrace
|
||||
${_XTRACE_MON_LOG}
|
||||
@@ -1,155 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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 reqmonasca_notificationred 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.
|
||||
|
||||
_XTRACE_MON_NOTIFICATION=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
MONASCA_NOTIFICATION_CONF_DIR=${MONASCA_NOTIFICATION_CONF_DIR:-/etc/monasca}
|
||||
MONASCA_NOTIFICATION_LOG_DIR=${MONASCA_NOTIFICATION_LOG_DIR:-/var/log/monasca/notification}
|
||||
MONASCA_NOTIFICATION_CONF=${MONASCA_NOTIFICATION_CONF:-$MONASCA_NOTIFICATION_CONF_DIR/monasca-notification.conf}
|
||||
MONASCA_NOTIFICATION_GATE_CFG_LINK=/etc/monasca-notification
|
||||
|
||||
if [[ ${USE_VENV} = True ]]; then
|
||||
PROJECT_VENV["monasca-notification"]=${MONASCA_NOTIFICATION_DIR}.venv
|
||||
MONASCA_NOTIFICATION_BIN_DIR=${PROJECT_VENV["monasca-notification"]}/bin
|
||||
else
|
||||
MONASCA_NOTIFICATION_BIN_DIR=$(get_python_exec_prefix)
|
||||
fi
|
||||
|
||||
is_monasca_notification_enabled() {
|
||||
is_service_enabled monasca-notification && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
# NOTE(trebskit) ref: stack_install_service from devstack
|
||||
install_monasca-notification() {
|
||||
if ! is_monasca_notification_enabled; then
|
||||
return
|
||||
fi
|
||||
echo_summary "Installing monasca-notification"
|
||||
|
||||
git_clone ${MONASCA_NOTIFICATION_REPO} ${MONASCA_NOTIFICATION_DIR} \
|
||||
${MONASCA_NOTIFICATION_BRANCH}
|
||||
if python3_enabled; then
|
||||
enable_python3_package monasca-notification
|
||||
fi
|
||||
setup_develop ${MONASCA_NOTIFICATION_DIR} jira_plugin
|
||||
# see devstack/plugin.sh
|
||||
install_monasca_common
|
||||
install_monasca_statsd
|
||||
# see devstack/plugin.sh
|
||||
|
||||
if is_service_enabled postgresql; then
|
||||
apt_get -y install libpq-dev
|
||||
pip_install_gr psycopg2
|
||||
elif is_service_enabled mysql; then
|
||||
apt_get -y install python-mysqldb libmysqlclient-dev
|
||||
pip_install_gr PyMySQL
|
||||
fi
|
||||
|
||||
if [[ ${MONASCA_DATABASE_USE_ORM} == "True" ]]; then
|
||||
pip_install_gr sqlalchemy
|
||||
fi
|
||||
}
|
||||
|
||||
configure_monasca-notification() {
|
||||
if ! is_monasca_notification_enabled; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo_summary "Configuring monasca-notification"
|
||||
|
||||
sudo install -d -o $STACK_USER ${MONASCA_NOTIFICATION_CONF_DIR}
|
||||
sudo install -d -o $STACK_USER ${MONASCA_NOTIFICATION_LOG_DIR}
|
||||
|
||||
local dbDriver
|
||||
local dbEngine
|
||||
local dbPort
|
||||
if is_service_enabled postgresql; then
|
||||
dbDriver="monasca_notification.common.repositories.postgres.pgsql_repo:PostgresqlRepo"
|
||||
dbEngine="postgres"
|
||||
dbPort=5432
|
||||
else
|
||||
dbDriver="monasca_notification.common.repositories.mysql.mysql_repo:MysqlRepo"
|
||||
dbEngine="mysql"
|
||||
dbPort=3306
|
||||
fi
|
||||
if [[ ${MONASCA_DATABASE_USE_ORM} == "True" ]]; then
|
||||
dbDriver="monasca_notification.common.repositories.orm.orm_repo:OrmRepo"
|
||||
fi
|
||||
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" kafka url ${SERVICE_HOST}:9092
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" database repo_driver ${dbDriver}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" email_notifier grafana_url ${SERVICE_HOST}:3000
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" keystone auth_url ${SERVICE_HOST}/identity/v3
|
||||
if is_service_enabled postgresql; then
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" postgresql host ${DATABASE_HOST}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" postgresql port ${dbPort}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" postgresql user ${DATABASE_USER}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" postgresql passwd ${DATABASE_PASSWORD}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" postgresql db mon
|
||||
else
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" mysql host ${DATABASE_HOST}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" mysql user ${DATABASE_USER}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" mysql passwd ${DATABASE_PASSWORD}
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" mysql db mon
|
||||
fi
|
||||
if [[ ${MONASCA_DATABASE_USE_ORM} == "True" ]]; then
|
||||
iniset "${MONASCA_NOTIFICATION_CONF}" orm url ${dbEngine}://${DATABASE_USER}:${DATABASE_PASSWORD}%${DATABASE_HOST}:${dbPort}/mon
|
||||
fi
|
||||
|
||||
sudo install -d -o ${STACK_USER} ${MONASCA_NOTIFICATION_GATE_CFG_LINK}
|
||||
ln -sf ${MONASCA_NOTIFICATION_CONF} ${MONASCA_NOTIFICATION_GATE_CFG_LINK}
|
||||
|
||||
echo "postfix postfix/mailname string localhost" | sudo debconf-set-selections -v
|
||||
echo "postfix postfix/main_mailer_type string 'Local only'" | sudo debconf-set-selections -v
|
||||
|
||||
}
|
||||
|
||||
start_monasca-notification(){
|
||||
if is_monasca_notification_enabled; then
|
||||
echo_summary "Starting monasca-notification"
|
||||
run_process "monasca-notification" "$MONASCA_NOTIFICATION_BIN_DIR/monasca-notification"
|
||||
fi
|
||||
}
|
||||
|
||||
stop_monasca-notification(){
|
||||
if is_monasca_notification_enabled; then
|
||||
echo_summary "Stopping monasca-notification"
|
||||
stop_process "monasca-notification" || true
|
||||
fi
|
||||
}
|
||||
|
||||
clean_monasca-notification() {
|
||||
if ! is_monasca_notification_enabled; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo_summary "Configuring monasca-notification"
|
||||
|
||||
sudo rm -rf ${MONASCA_NOTIFICATION_CONF} ${MONASCA_NOTIFICATION_CONF_DIR} \
|
||||
${MONASCA_NOTIFICATION_LOG_DIR} \
|
||||
${MONASCA_NOTIFICATION_GATE_CFG_LINK}
|
||||
|
||||
if is_service_enabled postgresql; then
|
||||
apt_get -y purge libpq-dev
|
||||
elif is_service_enabled mysql; then
|
||||
apt_get -y purge libmysqlclient-dev
|
||||
apt_get -y purge python-mysqldb
|
||||
fi
|
||||
}
|
||||
|
||||
${_XTRACE_MON_NOTIFICATION}
|
||||
@@ -1,273 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
# (C) Copyright 2017 SUSE LLC
|
||||
|
||||
# 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 reqmonasca_PERSISTERred 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.
|
||||
|
||||
_XTRACE_MON_PERSISTER=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
MONASCA_PERSISTER_CONF_DIR=${MONASCA_PERSISTER_CONF_DIR:-/etc/monasca}
|
||||
MONASCA_PERSISTER_LOG_DIR=${MONASCA_PERSISTER_LOG_DIR:-/var/log/monasca/persister}
|
||||
MONASCA_PERSISTER_GATE_CONFIG=/etc/monasca-persister
|
||||
|
||||
if [ "$MONASCA_PERSISTER_IMPLEMENTATION_LANG" == "python" ]; then
|
||||
if [[ ${USE_VENV} = True ]]; then
|
||||
PROJECT_VENV["monasca-persister"]=${MONASCA_PERSISTER_DIR}.venv
|
||||
MONASCA_PERSISTER_BIN_DIR=${PROJECT_VENV["monasca-persister"]}/bin
|
||||
else
|
||||
MONASCA_PERSISTER_BIN_DIR=$(get_python_exec_prefix)
|
||||
fi
|
||||
MONASCA_PERSISTER_CONF=${MONASCA_PERSISTER_CONF:-$MONASCA_PERSISTER_CONF_DIR/monasca-persister.conf}
|
||||
MONASCA_PERSISTER_LOGGING_CONF=${MONASCA_PERSISTER_LOGGING_CONF:-$MONASCA_PERSISTER_CONF_DIR/persister-logging.conf}
|
||||
|
||||
M_REPO_DRIVER_BASE=monasca_persister.repositories.${MONASCA_METRICS_DB}.metrics_repository
|
||||
M_REPO_DRIVER_INFLUX=$M_REPO_DRIVER_BASE:MetricInfluxdbRepository
|
||||
M_REPO_DRIVER_CASSANDRA=$M_REPO_DRIVER_BASE:MetricCassandraRepository
|
||||
|
||||
AH_REPO_DRIVER_BASE=monasca_persister.repositories.${MONASCA_METRICS_DB}.alarm_state_history_repository
|
||||
AH_REPO_DRIVER_INFLUX=$AH_REPO_DRIVER_BASE:AlarmStateHistInfluxdbRepository
|
||||
AH_REPO_DRIVER_CASSANDRA=$AH_REPO_DRIVER_BASE:AlarmStateHistCassandraRepository
|
||||
|
||||
MONASCA_PERSISTER_CMD="$MONASCA_PERSISTER_BIN_DIR/monasca-persister --config-file=$MONASCA_PERSISTER_CONF"
|
||||
else
|
||||
MONASCA_PERSISTER_APP_PORT=${MONASCA_PERSISTER_APP_PORT:-8090}
|
||||
MONASCA_PERSISTER_ADMIN_PORT=${MONASCA_PERSISTER_ADMIN_PORT:-8091}
|
||||
MONASCA_PERSISTER_BIND_HOST=${MONASCA_PERSISTER_BIND_HOST:-$SERVICE_HOST}
|
||||
|
||||
MONASCA_PERSISTER_CONF=${MONASCA_PERSISTER_CONF:-$MONASCA_PERSISTER_CONF_DIR/persister.yml}
|
||||
MONASCA_PERSISTER_JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx128m"
|
||||
MONASCA_PERSISTER_JAR="/opt/monasca/monasca-persister.jar"
|
||||
MONASCA_PERSISTER_CMD="/usr/bin/java ${MONASCA_PERSISTER_JAVA_OPTS} -cp ${MONASCA_PERSISTER_JAR} monasca.persister.PersisterApplication server ${MONASCA_PERSISTER_CONF}"
|
||||
fi
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'cassandra' ]]; then
|
||||
MONASCA_PERSISTER_BATCH_SIZE=100
|
||||
MONASCA_PERSISTER_MAX_BATCH_TIME=10
|
||||
MONASCA_PERSISTER_METRIC_THREADS=2
|
||||
MONASCA_PERSISTER_COMMIT_BATCH_TIME=10000
|
||||
else
|
||||
MONASCA_PERSISTER_BATCH_SIZE=100
|
||||
MONASCA_PERSISTER_MAX_BATCH_TIME=15
|
||||
MONASCA_PERSISTER_METRIC_THREADS=10
|
||||
MONASCA_PERSISTER_COMMIT_BATCH_TIME=0
|
||||
fi
|
||||
|
||||
is_monasca_persister_enabled() {
|
||||
is_service_enabled monasca-persister && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
# common
|
||||
pre_monasca-persister() {
|
||||
if ! is_monasca_persister_enabled; then
|
||||
return
|
||||
fi
|
||||
sudo install -d -o ${STACK_USER} ${MONASCA_PERSISTER_GATE_CONFIG}
|
||||
}
|
||||
|
||||
install_monasca-persister() {
|
||||
echo_summary "Installing monasca-persister"
|
||||
|
||||
git_clone ${MONASCA_PERSISTER_REPO} ${MONASCA_PERSISTER_DIR} \
|
||||
${MONASCA_PERSISTER_BRANCH}
|
||||
|
||||
install_monasca_persister_$MONASCA_PERSISTER_IMPLEMENTATION_LANG
|
||||
}
|
||||
configure_monasca-persister() {
|
||||
if ! is_monasca_persister_enabled; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo_summary "Configuring monasca-persister"
|
||||
|
||||
sudo install -d -o $STACK_USER ${MONASCA_PERSISTER_CONF_DIR}
|
||||
sudo install -d -o $STACK_USER ${MONASCA_PERSISTER_LOG_DIR}
|
||||
|
||||
configure_monasca_persister_$MONASCA_PERSISTER_IMPLEMENTATION_LANG
|
||||
}
|
||||
start_monasca-persister() {
|
||||
if ! is_monasca_persister_enabled; then
|
||||
return
|
||||
fi
|
||||
|
||||
local cmd=${MONASCA_PERSISTER_CMD}
|
||||
local systemd_service="devstack@monasca-persister.service"
|
||||
local unitfile="$SYSTEMD_DIR/$systemd_service"
|
||||
|
||||
# sanity check the command
|
||||
_common_systemd_pitfalls "$cmd"
|
||||
|
||||
# Restart monasca-persister when exited with error code
|
||||
iniset -sudo $unitfile "Service" "Restart" "on-failure"
|
||||
write_user_unit_file $systemd_service "$cmd" "" "$STACK_USER"
|
||||
|
||||
echo_summary "Starting monasca-persister"
|
||||
$SYSTEMCTL enable $systemd_service
|
||||
$SYSTEMCTL start $systemd_service
|
||||
}
|
||||
stop_monasca-persister() {
|
||||
if ! is_monasca_persister_enabled; then
|
||||
return
|
||||
fi
|
||||
echo_summary "Stopping monasca-persister"
|
||||
stop_process "monasca-persister"
|
||||
}
|
||||
clean_monasca-persister() {
|
||||
if ! is_monasca_persister_enabled; then
|
||||
return
|
||||
fi
|
||||
echo_summary "Cleaning monasca-persister"
|
||||
clean_monasca_persister_$MONASCA_PERSISTER_IMPLEMENTATION_LANG
|
||||
rm -rf ${MONASCA_PERSISTER_GATE_CONFIG}
|
||||
}
|
||||
# common
|
||||
|
||||
# python
|
||||
install_monasca_persister_python() {
|
||||
echo_summary "Installing monasca-persister"
|
||||
if python3_enabled; then
|
||||
enable_python3_package monasca-persister
|
||||
fi
|
||||
setup_develop ${MONASCA_PERSISTER_DIR}
|
||||
|
||||
install_monasca_common
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
pip_install_gr influxdb
|
||||
elif [[ "${MONASCA_METRICS_DB,,}" == 'cassandra' ]]; then
|
||||
pip_install_gr cassandra-driver
|
||||
fi
|
||||
}
|
||||
|
||||
configure_monasca_persister_python() {
|
||||
# ensure fresh installation of configuration files
|
||||
rm -rf ${MONASCA_PERSISTER_CONF} ${MONASCA_PERSISTER_LOGGING_CONF}
|
||||
|
||||
$MONASCA_PERSISTER_BIN_DIR/oslo-config-generator \
|
||||
--config-file $MONASCA_PERSISTER_DIR/config-generator/persister.conf \
|
||||
--output-file /tmp/monasca-persister.conf
|
||||
|
||||
install -m 600 /tmp/monasca-persister.conf ${MONASCA_PERSISTER_CONF} && rm -rf /tmp/monasca-persister.conf
|
||||
|
||||
# Set up logging
|
||||
iniset $MONASCA_PERSISTER_CONF DEFAULT use_syslog $SYSLOG
|
||||
|
||||
# Format logging
|
||||
setup_logging $MONASCA_PERSISTER_CONF
|
||||
iniset $MONASCA_PERSISTER_CONF DEFAULT default_log_levels \
|
||||
"monasca_common.kafka_lib.client=INFO"
|
||||
iniset $MONASCA_PERSISTER_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
|
||||
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka num_processors 1
|
||||
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_metrics uri $SERVICE_HOST:9092
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_metrics group_id 1_metrics
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_metrics topic metrics
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_metrics batch_size 30
|
||||
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_alarm_history uri $SERVICE_HOST:9092
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_alarm_history group_id 1_alarm-state-transitions
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_alarm_history topic alarm-state-transitions
|
||||
iniset "$MONASCA_PERSISTER_CONF" kafka_alarm_history batch_size 1
|
||||
|
||||
iniset "$MONASCA_PERSISTER_CONF" zookeeper uri $SERVICE_HOST:2181
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
iniset "$MONASCA_PERSISTER_CONF" influxdb database_name mon
|
||||
iniset "$MONASCA_PERSISTER_CONF" influxdb ip_address ${SERVICE_HOST}
|
||||
iniset "$MONASCA_PERSISTER_CONF" influxdb port 8086
|
||||
iniset "$MONASCA_PERSISTER_CONF" influxdb password password
|
||||
iniset "$MONASCA_PERSISTER_CONF" repositories metrics_driver ${M_REPO_DRIVER_INFLUX}
|
||||
iniset "$MONASCA_PERSISTER_CONF" repositories alarm_state_history_driver ${AH_REPO_DRIVER_INFLUX}
|
||||
elif [[ "${MONASCA_METRICS_DB,,}" == 'cassandra' ]]; then
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra contact_points ${SERVICE_HOST}
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra port 9042
|
||||
# iniset "$MONASCA_PERSISTER_CONF" cassandra user monasca
|
||||
# iniset "$MONASCA_PERSISTER_CONF" cassandra password password
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra keyspace monasca
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra local_data_center datacenter1
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra connection_timeout 5
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra read_timeout 60
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra max_write_retries 5
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra max_batches 250
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra max_definition_cache_size 1000000
|
||||
# consistency level names:
|
||||
# ANY(0),
|
||||
# ONE(1),
|
||||
# TWO(2),
|
||||
# THREE(3),
|
||||
# QUORUM(4),
|
||||
# ALL(5),
|
||||
# LOCAL_QUORUM(6),
|
||||
# EACH_QUORUM(7),
|
||||
# SERIAL(8),
|
||||
# LOCAL_SERIAL(9),
|
||||
# LOCAL_ONE(10);
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra consistency_level ONE
|
||||
iniset "$MONASCA_PERSISTER_CONF" cassandra retention_policy 45
|
||||
iniset "$MONASCA_PERSISTER_CONF" repositories metrics_driver ${M_REPO_DRIVER_CASSANDRA}
|
||||
iniset "$MONASCA_PERSISTER_CONF" repositories alarm_state_history_driver ${AH_REPO_DRIVER_CASSANDRA}
|
||||
fi
|
||||
|
||||
ln -sf ${MONASCA_PERSISTER_CONF} ${MONASCA_PERSISTER_GATE_CONFIG}
|
||||
}
|
||||
|
||||
clean_monasca_persister_python() {
|
||||
rm -rf ${MONASCA_PERSISTER_CONF} ${MONASCA_PERSISTER_LOGGING_CONF}
|
||||
}
|
||||
# python
|
||||
|
||||
# java
|
||||
install_monasca_persister_java() {
|
||||
(cd "${MONASCA_PERSISTER_DIR}"/java ; sudo mvn clean package -DskipTests)
|
||||
|
||||
local version=""
|
||||
version="$(get_version_from_pom "${MONASCA_PERSISTER_DIR}"/java)"
|
||||
sudo cp -f "${MONASCA_PERSISTER_DIR}"/java/target/monasca-persister-${version}-shaded.jar \
|
||||
${MONASCA_PERSISTER_JAR}
|
||||
}
|
||||
|
||||
configure_monasca_persister_java() {
|
||||
# ensure fresh installation of configuration file
|
||||
rm -rf $MONASCA_PERSISTER_CONF
|
||||
|
||||
install -m 600 "${MONASCA_API_DIR}"/devstack/files/monasca-persister/persister.yml ${MONASCA_PERSISTER_CONF}
|
||||
sudo sed -e "
|
||||
s|%ZOOKEEPER_HOST%|${SERVICE_HOST}|g;
|
||||
s|%VERTICA_HOST%|${SERVICE_HOST}|g;
|
||||
s|%INFLUXDB_HOST%|${SERVICE_HOST}|g;
|
||||
s|%CASSANDRADB_HOST%|${SERVICE_HOST}|g;
|
||||
s|%MONASCA_PERSISTER_DB_TYPE%|${MONASCA_METRICS_DB}|g;
|
||||
s|%MONASCA_PERSISTER_BIND_HOST%|${MONASCA_PERSISTER_BIND_HOST}|g;
|
||||
s|%MONASCA_PERSISTER_APP_PORT%|${MONASCA_PERSISTER_APP_PORT}|g;
|
||||
s|%MONASCA_PERSISTER_ADMIN_PORT%|${MONASCA_PERSISTER_ADMIN_PORT}|g;
|
||||
s|%MONASCA_PERSISTER_LOG_DIR%|${MONASCA_PERSISTER_LOG_DIR}|g;
|
||||
s|%MONASCA_PERSISTER_BATCH_SIZE%|${MONASCA_PERSISTER_BATCH_SIZE}|g;
|
||||
s|%MONASCA_PERSISTER_MAX_BATCH_TIME%|${MONASCA_PERSISTER_MAX_BATCH_TIME}|g;
|
||||
s|%MONASCA_PERSISTER_COMMIT_BATCH_TIME%|${MONASCA_PERSISTER_COMMIT_BATCH_TIME}|g;
|
||||
s|%MONASCA_PERSISTER_METRIC_THREADS%|${MONASCA_PERSISTER_METRIC_THREADS}|g;
|
||||
" -i ${MONASCA_PERSISTER_CONF}
|
||||
|
||||
ln -sf ${MONASCA_PERSISTER_CONF} ${MONASCA_PERSISTER_GATE_CONFIG}
|
||||
}
|
||||
|
||||
clean_monasca_persister_java() {
|
||||
rm -rf ${MONASCA_PERSISTER_CONF} ${MONASCA_PERSISTER_LOGGING_CONF} \
|
||||
${MONASCA_PERSISTER_JAR}
|
||||
}
|
||||
# java
|
||||
|
||||
${_XTRACE_MON_PERSISTER}
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
_XTRACE_MON_PROFILE=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
function install_monasca_profile {
|
||||
|
||||
echo_summary "Install Monasca Bash Profile"
|
||||
|
||||
touch /tmp/monasca_cli.sh
|
||||
cat > /tmp/monasca_cli.sh << EOF
|
||||
# signalize we're in shape to use monasca here
|
||||
export PS1='[\u@\h \W(monasca)]\$ '
|
||||
# set monasca client bash_completion
|
||||
source ${MONASCA_COMPLETION_FILE}
|
||||
# set OS_* variables
|
||||
source $TOP_DIR/openrc mini-mon mini-mon
|
||||
# override password for mini-mon (guy is not using SERVICE_PASSWORD)
|
||||
export OS_PASSWORD=password
|
||||
EOF
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'cassandra' ]]; then
|
||||
cat >> /tmp/monasca_cli.sh << EOF
|
||||
# allow to use cassandra cli
|
||||
export CQLSH_NO_BUNDLED=true
|
||||
export CQLSH_HOST=${SERVICE_HOST}
|
||||
EOF
|
||||
fi
|
||||
|
||||
sudo install -D -m 0644 -o ${STACK_USER} \
|
||||
/tmp/monasca_cli.sh ${MONASCA_PROFILE_FILE}
|
||||
rm /tmp/monasca_cli.sh
|
||||
}
|
||||
|
||||
function clean_monasca_profile {
|
||||
echo_summary "Clean Monasca CLI Creds"
|
||||
sudo rm -f ${MONASCA_PROFILE_FILE}
|
||||
}
|
||||
|
||||
${_XTRACE_DASHBOARD}
|
||||
@@ -1,166 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
# call_order:
|
||||
# - is_storm_enabled
|
||||
# - install_storm
|
||||
# - configure_storm
|
||||
# - clean_storm
|
||||
|
||||
_XTRACE_STORM=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
STORM_USER="storm"
|
||||
STORM_GROUP="storm"
|
||||
|
||||
STORM_DIR="/opt/storm"
|
||||
STORM_CURRENT_DIR="${STORM_DIR}/current"
|
||||
STORM_BIN="${STORM_CURRENT_DIR}/bin/storm"
|
||||
STORM_WORK_DIR="/var/storm"
|
||||
STORM_LOG_DIR="/var/log/storm"
|
||||
|
||||
STORM_TARBALL="apache-storm-${STORM_VERSION}.tar.gz"
|
||||
STORM_TARBALL_DEST="${FILES}/${STORM_TARBALL}"
|
||||
|
||||
STORM_NIMBUS_CMD="${STORM_BIN} nimbus"
|
||||
STORM_SUPERVISOR_CMD="${STORM_BIN} supervisor"
|
||||
STORM_UI_CMD="${STORM_BIN} ui"
|
||||
STORM_LOGVIEWER_CMD="${STORM_BIN} logviewer"
|
||||
|
||||
function is_storm_enabled {
|
||||
[[ ,${ENABLED_SERVICES} =~ ,"monasca-storm" ]] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
function start_storm {
|
||||
if is_storm_enabled; then
|
||||
echo_summary "Starting storm"
|
||||
|
||||
run_process "monasca-storm-nimbus" "${STORM_NIMBUS_CMD}" "${STORM_GROUP}" "${STORM_USER}"
|
||||
run_process "monasca-storm-supervisor" "${STORM_SUPERVISOR_CMD}" "${STORM_GROUP}" "${STORM_USER}"
|
||||
run_process "monasca-storm-ui" "${STORM_UI_CMD}" "${STORM_GROUP}" "${STORM_USER}"
|
||||
run_process "monasca-storm-logviewer" "${STORM_LOGVIEWER_CMD}" "${STORM_GROUP}" "${STORM_USER}"
|
||||
fi
|
||||
}
|
||||
|
||||
function stop_storm {
|
||||
if is_storm_enabled; then
|
||||
echo_summary "Stopping storm"
|
||||
|
||||
stop_process "monasca-storm-nimbus"
|
||||
stop_process "monasca-storm-supervisor"
|
||||
stop_process "monasca-storm-ui"
|
||||
stop_process "monasca-storm-logviewer"
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_storm {
|
||||
if is_storm_enabled; then
|
||||
echo_summary "Cleaning storm"
|
||||
|
||||
sudo unlink "${DEST}/logs/storm-workers" || true
|
||||
sudo unlink "${STORM_CURRENT_DIR}/logs"|| true
|
||||
sudo unlink "${STORM_CURRENT_DIR}"|| true
|
||||
|
||||
sudo rm -rf "${DEST}/logs/storm-workers" || true
|
||||
sudo rm -rf "${STORM_CURRENT_DIR}"|| true
|
||||
sudo rm -rf "${STORM_DIR}" || true
|
||||
sudo rm -rf "${STORM_WORK_DIR}" || true
|
||||
sudo rm -rf "${STORM_LOG_DIR}" || true
|
||||
|
||||
sudo userdel "${STORM_USER}" || true
|
||||
sudo groupdel "${STORM_GROUP}" || true
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_storm {
|
||||
if is_storm_enabled; then
|
||||
echo_summary "Configuring storm"
|
||||
sudo cp -f "${MONASCA_API_DIR}"/devstack/files/storm.yaml "${STORM_CURRENT_DIR}/conf/storm.yaml"
|
||||
sudo chown "${STORM_USER}":"${STORM_GROUP}" "${STORM_CURRENT_DIR}/conf/storm.yaml"
|
||||
sudo chmod 0644 "${STORM_CURRENT_DIR}/conf/storm.yaml"
|
||||
|
||||
sudo sed -e "
|
||||
s|%STORM_UI_HOST%|${STORM_UI_HOST}|g;
|
||||
s|%STORM_UI_PORT%|${STORM_UI_PORT}|g;
|
||||
s|%STORM_LOGVIEWER_PORT%|${STORM_LOGVIEWER_PORT}|g;
|
||||
" -i "${STORM_CURRENT_DIR}/conf/storm.yaml"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function install_storm {
|
||||
if is_storm_enabled; then
|
||||
echo_summary "Installing storm"
|
||||
_download_storm
|
||||
_setup_user_group
|
||||
_create_directories
|
||||
_install_storm
|
||||
fi
|
||||
}
|
||||
|
||||
function post_storm {
|
||||
if is_storm_enabled; then
|
||||
echo "Post configuring storm"
|
||||
# if inside the gate, make the visible there too
|
||||
if [ -n "${LOGDIR}" ]; then
|
||||
sudo ln -sfd "${STORM_LOG_DIR}/workers-artifacts" "${LOGDIR}/storm-workers"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# helpers
|
||||
|
||||
function _download_storm {
|
||||
local storm_tarball_url="${APACHE_ARCHIVES}storm/apache-storm-${STORM_VERSION}/${STORM_TARBALL}"
|
||||
local storm_dest
|
||||
|
||||
storm_dest=`get_extra_file ${storm_tarball_url}`
|
||||
|
||||
if [ "${storm_dest}" != "${STORM_TARBALL_DEST}" ]; then
|
||||
mv -f "${storm_dest}" "${STORM_TARBALL_DEST}"
|
||||
fi
|
||||
}
|
||||
|
||||
function _setup_user_group {
|
||||
sudo groupadd --system "${STORM_GROUP}" || true
|
||||
sudo useradd --system -g "${STORM_GROUP}" "${STORM_USER}" || true
|
||||
}
|
||||
|
||||
function _install_storm {
|
||||
# unpack (i.e. install) downloaded tarball
|
||||
sudo tar -xzf ${STORM_TARBALL_DEST} -C "${STORM_DIR}"
|
||||
|
||||
# link the versioned folder to more suitable one
|
||||
sudo ln -sfd "${STORM_DIR}/apache-storm-${STORM_VERSION}" "${STORM_CURRENT_DIR}"
|
||||
|
||||
# make them visible in standard location
|
||||
sudo ln -sfd "${STORM_LOG_DIR}" "${STORM_CURRENT_DIR}/logs"
|
||||
}
|
||||
|
||||
function _create_directories {
|
||||
for dir in "${STORM_DIR}" "${STORM_WORK_DIR}" "${STORM_LOG_DIR}"; do
|
||||
if [ ! -d "${dir}" ]; then
|
||||
sudo mkdir -p "${dir}" || true
|
||||
fi
|
||||
sudo chown "${STORM_USER}":"${STORM_GROUP}" "${dir}"
|
||||
sudo chmod 0775 "${dir}"
|
||||
done
|
||||
}
|
||||
|
||||
# helpers
|
||||
|
||||
$_XTRACE_STORM
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
_XTRACE_DASHBOARD=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
function is_ui_enabled {
|
||||
is_service_enabled horizon && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
function clean_ui {
|
||||
if is_ui_enabled; then
|
||||
rm -rf "${HORIZON_DIR}/monitoring" \
|
||||
"${HORIZON_DIR}/openstack_dashboard/local/enabled/_50_admin_add_monitoring_panel.py" \
|
||||
"${HORIZON_DIR}/openstack_dashboard/conf/monitoring_policy.json"
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_ui {
|
||||
if is_ui_enabled; then
|
||||
_link_ui_files
|
||||
|
||||
cp $MONASCA_UI_DIR/monitoring/config/local_settings.py \
|
||||
$HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
||||
|
||||
local localSettings=$HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
||||
|
||||
sed -e "
|
||||
s#getattr(settings, 'GRAFANA_URL', None)#{'RegionOne': \"http:\/\/${SERVICE_HOST}:3000\", }#g;
|
||||
" -i ${localSettings}
|
||||
|
||||
if is_service_enabled horizon && is_service_enabled kibana && is_service_enabled monasca-log; then
|
||||
echo_summary "Configure Horizon with Kibana access"
|
||||
sudo sed -e "
|
||||
s|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://192.168.10.6:5601/')|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://${KIBANA_SERVICE_HOST}:${KIBANA_SERVICE_PORT}/')|g;
|
||||
" -i ${localSettings}
|
||||
|
||||
sudo sed -e "
|
||||
s|'ENABLE_LOG_MANAGEMENT_BUTTON', False|'ENABLE_LOG_MANAGEMENT_BUTTON', True|g;
|
||||
" -i ${localSettings}
|
||||
fi
|
||||
if python3_enabled; then
|
||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py collectstatic --noinput
|
||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py compress --force
|
||||
else
|
||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python "${MONASCA_BASE}"/horizon/manage.py collectstatic --noinput
|
||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python "${MONASCA_BASE}"/horizon/manage.py compress --force
|
||||
fi
|
||||
restart_service apache2 || true
|
||||
fi
|
||||
}
|
||||
|
||||
function install_ui {
|
||||
if is_ui_enabled; then
|
||||
git_clone $MONASCA_UI_REPO $MONASCA_UI_DIR $MONASCA_UI_BRANCH
|
||||
git_clone $MONASCA_CLIENT_REPO $MONASCA_CLIENT_DIR $MONASCA_CLIENT_BRANCH
|
||||
if python3_enabled; then
|
||||
enable_python3_package monasca-ui
|
||||
fi
|
||||
|
||||
setup_develop $MONASCA_UI_DIR
|
||||
setup_dev_lib "python-monascaclient"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function _link_ui_files {
|
||||
ln -f "${MONASCA_UI_DIR}/monitoring/enabled/_50_admin_add_monitoring_panel.py" \
|
||||
"${HORIZON_DIR}/openstack_dashboard/local/enabled/_50_admin_add_monitoring_panel.py"
|
||||
ln -f "${MONASCA_UI_DIR}/monitoring/conf/monitoring_policy.json" \
|
||||
"${HORIZON_DIR}/openstack_dashboard/conf/monitoring_policy.json"
|
||||
ln -sfF "${MONASCA_UI_DIR}"/monitoring "${HORIZON_DIR}/monitoring"
|
||||
}
|
||||
|
||||
$_XTRACE_DASHBOARD
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2020 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
|
||||
_XTRACE_ZOOKEEPER=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
function is_zookeeper_enabled {
|
||||
is_service_enabled monasca-zookeeper && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
function clean_zookeeper {
|
||||
|
||||
if is_zookeeper_enabled; then
|
||||
echo_summary "Cleaning Monasca Zookeeper"
|
||||
|
||||
sudo systemctl disable zookeeper
|
||||
sudo systemctl stop zookeeper
|
||||
sudo rm -rf /var/log/zookeeper
|
||||
sudo rm -rf /var/lib/zookeeper
|
||||
sudo rm -rf /opt/zookeeper
|
||||
sudo rm -rf /opt/apache-zookeeper-${ZOOKEEPER_VERSION}-bin
|
||||
sudo rm -rf /etc/systemd/system/zookeeper.service
|
||||
sudo systemctl daemon-reload
|
||||
fi
|
||||
}
|
||||
|
||||
function install_zookeeper {
|
||||
|
||||
if is_zookeeper_enabled; then
|
||||
echo_summary "Install Monasca Zookeeper"
|
||||
|
||||
local zookeeper_tarball=apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz
|
||||
local zookeeper_tarball_url=${APACHE_ARCHIVES}zookeeper/zookeeper-${ZOOKEEPER_VERSION}/${zookeeper_tarball}
|
||||
local zookeeper_tarball_dest
|
||||
zookeeper_tarball_dest=`get_extra_file ${zookeeper_tarball_url}`
|
||||
|
||||
sudo groupadd --system zookeeper || true
|
||||
sudo useradd --system -g zookeeper zookeeper || true
|
||||
sudo tar -xzf ${zookeeper_tarball_dest} -C /opt
|
||||
sudo ln -sf /opt/apache-zookeeper-${ZOOKEEPER_VERSION}-bin /opt/zookeeper
|
||||
sudo cp $PLUGIN_FILES/zookeeper/* /opt/zookeeper/conf
|
||||
sudo chown -R zookeeper:zookeeper /opt/zookeeper/
|
||||
|
||||
sudo mkdir /var/log/zookeeper
|
||||
sudo chown -R zookeeper:zookeeper /var/log/zookeeper
|
||||
|
||||
sudo mkdir /var/lib/zookeeper
|
||||
sudo chown -R zookeeper:zookeeper /var/lib/zookeeper
|
||||
|
||||
sudo cp -f "${MONASCA_API_DIR}"/devstack/files/zookeeper/zookeeper.service /etc/systemd/system/zookeeper.service
|
||||
sudo chmod 644 /etc/systemd/system/zookeeper.service
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable zookeeper
|
||||
sudo systemctl start zookeeper || sudo systemctl restart zookeeper
|
||||
fi
|
||||
}
|
||||
|
||||
$_XTRACE_ZOOKEEPER
|
||||
@@ -1,3 +0,0 @@
|
||||
if [[ "${MONASCA_API_IMPLEMENTATION_LANG,,}" == 'java' ]]; then
|
||||
WSGI_MODE=mod_wsgi
|
||||
fi
|
||||
1555
devstack/plugin.sh
1555
devstack/plugin.sh
File diff suppressed because it is too large
Load Diff
@@ -1,259 +0,0 @@
|
||||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development LP
|
||||
# Copyright 2017 FUJITSU LIMITED
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# The following two variables allow switching between java and python for the implementations
|
||||
# of the Monasca API and the Monasca Persister. These variables can be set here
|
||||
# or in the DevStack local.conf file.
|
||||
|
||||
# MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-cassandra}
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
|
||||
# Turn on all the Monasca services by default. Currently enabling specific services
|
||||
# has no effect. All services are enabled by default. There is currently no mechanism
|
||||
# implemented to turn off specific Monasca services.
|
||||
|
||||
#
|
||||
# Monasca top level service that enables all other services
|
||||
#
|
||||
enable_service monasca
|
||||
|
||||
#
|
||||
# Monasca infrastructure services
|
||||
#
|
||||
|
||||
# devstack zookeeper
|
||||
enable_service monasca-zookeeper
|
||||
|
||||
# Monasca databases
|
||||
# MySQL is already enabled in devstack
|
||||
enable_service monasca-influxdb
|
||||
|
||||
# Apache Storm
|
||||
enable_service monasca-storm
|
||||
enable_service monasca-storm-nimbus
|
||||
enable_service monasca-storm-supervisor
|
||||
disable_service monasca-storm-ui
|
||||
disable_service monasca-storm-logviewer
|
||||
|
||||
# monasca-kafka depends on monasca-zookeeper
|
||||
enable_service monasca-kafka
|
||||
|
||||
#
|
||||
# Monasca core services
|
||||
#
|
||||
|
||||
# monasca-api depends on monasca-influxdb, MySQL, monasca-kafka
|
||||
enable_service monasca-api
|
||||
|
||||
# monasca-persister depends on monasca-influxdb, monasca-kafka
|
||||
enable_service monasca-persister
|
||||
|
||||
# monasca-notification depends on MySQL, monasca-kafka
|
||||
enable_service monasca-notification
|
||||
|
||||
# monasca-thresh depends on MySQL, monasca-kafka, monasca-storm
|
||||
enable_service monasca-thresh
|
||||
|
||||
# monasca-agent depends on monasca-api
|
||||
enable_service monasca-agent
|
||||
|
||||
# monasca-cli depends on monasca-api
|
||||
enable_service monasca-cli
|
||||
|
||||
#
|
||||
# Monasca logs services
|
||||
#
|
||||
|
||||
enable_service kibana
|
||||
enable_service elasticsearch
|
||||
enable_service monasca-log
|
||||
enable_service monasca-log-persister
|
||||
enable_service monasca-log-transformer
|
||||
enable_service monasca-log-metrics
|
||||
enable_service monasca-log-agent
|
||||
|
||||
#
|
||||
# Dependent Software Versions
|
||||
#
|
||||
|
||||
# Set the InfluxDB version to use for the Java and Python API
|
||||
# InfluxDB has modified the result sets for SHOW SERIES. The
|
||||
# Python API has been modified to support those changes, but the
|
||||
# Java API hasn't yet. These two environment variables allow you
|
||||
# to deploy either the Java or Python API without having to
|
||||
# also set the INFLUXDB_VERSION when switching between the two.
|
||||
INFLUXDB_JAVA_VERSION=${INFLUXDB_JAVA_VERSION:-0.9.5}
|
||||
INFLUXDB_PYTHON_VERSION=${INFLUXDB_PYTHON_VERSION:-1.7.6}
|
||||
|
||||
# To set the same version of InfluxDB for both languages use the
|
||||
# following variable. This will override both the Java and Python
|
||||
# specific variables above.
|
||||
# INFLUXDB_VERSION=${INFLUXDB_VERSION:-0.9.5}
|
||||
INFLUXDB_DEB_URL=${INFLUXDB_DEB_URL:-https://dl.influxdata.com/influxdb/releases/}
|
||||
|
||||
VERTICA_VERSION=${VERTICA_VERSION:-8.0.0-0}
|
||||
CASSANDRA_VERSION=${CASSANDRA_VERSION:-311x}
|
||||
ZOOKEEPER_VERSION=${ZOOKEEPER_VERSION:-3.8.4} # 3.4.13 default in Focal; 3.4.10 default in Bionic
|
||||
# Kafka deb consists of the version of scala plus the version of kafka
|
||||
BASE_KAFKA_VERSION=${BASE_KAFKA_VERSION:-3.7.2}
|
||||
SCALA_VERSION=${SCALA_VERSION:-2.13}
|
||||
KAFKA_VERSION=${KAFKA_VERSION:-${SCALA_VERSION}-${BASE_KAFKA_VERSION}}
|
||||
STORM_VERSION=${STORM_VERSION:-1.2.2}
|
||||
GO_VERSION=${GO_VERSION:-"1.7.1"}
|
||||
NODE_JS_VERSION=${NODE_JS_VERSION:-"4.0.0"}
|
||||
NVM_VERSION=${NVM_VERSION:-"0.32.1"}
|
||||
KIBANA_VERSION=${KIBANA_VERSION:-7.3.0}
|
||||
LOGSTASH_VERSION=${LOGSTASH_VERSION:-7.3.0}
|
||||
ELASTICSEARCH_VERSION=${ELASTICSEARCH_VERSION:-7.3.0}
|
||||
LOGSTASH_OUTPUT_MONASCA_VERSION=${LOGSTASH_OUTPUT_MONASCA_VERSION:-2.0.0}
|
||||
|
||||
# Needed for plugin build environment initialization
|
||||
KIBANA_DEV_BRANCH=${KIBANA_DEV_BRANCH:-7.3}
|
||||
KIBANA_DEV_REPO="https://github.com/elastic/kibana"
|
||||
|
||||
MONASCA_KIBANA_PLUGIN_REPO=${MONASCA_KIBANA_PLUGIN_REPO:-${GIT_BASE}/openstack/monasca-kibana-plugin.git}
|
||||
MONASCA_KIBANA_PLUGIN_BRANCH=${MONASCA_KIBANA_PLUGIN_BRANCH:-master}
|
||||
MONASCA_KIBANA_PLUGIN_DIR=${DEST}/monasca-kibana-plugin
|
||||
|
||||
# Path settings
|
||||
MONASCA_BASE=${DEST}
|
||||
MONASCA_SCHEMA_DIR=${DEST}/monasca/schema
|
||||
|
||||
# Repository settings
|
||||
MONASCA_API_REPO=${MONASCA_API_REPO:-${GIT_BASE}/openstack/monasca-api.git}
|
||||
MONASCA_API_BRANCH=${MONASCA_API_BRANCH:-master}
|
||||
MONASCA_API_DIR=${MONASCA_BASE}/monasca-api
|
||||
|
||||
MONASCA_PERSISTER_REPO=${MONASCA_PERSISTER_REPO:-${GIT_BASE}/openstack/monasca-persister.git}
|
||||
MONASCA_PERSISTER_BRANCH=${MONASCA_PERSISTER_BRANCH:-master}
|
||||
MONASCA_PERSISTER_DIR=${MONASCA_BASE}/monasca-persister
|
||||
|
||||
MONASCA_NOTIFICATION_REPO=${MONASCA_NOTIFICATION_REPO:-${GIT_BASE}/openstack/monasca-notification.git}
|
||||
MONASCA_NOTIFICATION_BRANCH=${MONASCA_NOTIFICATION_BRANCH:-master}
|
||||
MONASCA_NOTIFICATION_DIR=${MONASCA_BASE}/monasca-notification
|
||||
|
||||
MONASCA_THRESH_REPO=${MONASCA_THRESH_REPO:-${GIT_BASE}/openstack/monasca-thresh.git}
|
||||
MONASCA_THRESH_BRANCH=${MONASCA_THRESH_BRANCH:-master}
|
||||
MONASCA_THRESH_DIR=${MONASCA_BASE}/monasca-thresh
|
||||
|
||||
MONASCA_CLIENT_REPO=${MONASCA_CLIENT_REPO:-${GIT_BASE}/openstack/python-monascaclient.git}
|
||||
MONASCA_CLIENT_BRANCH=${MONASCA_CLIENT_BRANCH:-master}
|
||||
MONASCA_CLIENT_DIR=${MONASCA_BASE}/python-monascaclient
|
||||
|
||||
MONASCA_AGENT_REPO=${MONASCA_AGENT_REPO:-${GIT_BASE}/openstack/monasca-agent.git}
|
||||
MONASCA_AGENT_BRANCH=${MONASCA_AGENT_BRANCH:-master}
|
||||
MONASCA_AGENT_DIR=${MONASCA_BASE}/monasca-agent
|
||||
|
||||
MONASCA_UI_REPO=${MONASCA_UI_REPO:-${GIT_BASE}/openstack/monasca-ui.git}
|
||||
MONASCA_UI_BRANCH=${MONASCA_UI_BRANCH:-master}
|
||||
MONASCA_UI_DIR=${MONASCA_BASE}/monasca-ui
|
||||
|
||||
MONASCA_COMMON_REPO=${MONASCA_COMMON_REPO:-${GIT_BASE}/openstack/monasca-common.git}
|
||||
MONASCA_COMMON_BRANCH=${MONASCA_COMMON_BRANCH:-master}
|
||||
MONASCA_COMMON_DIR=${MONASCA_BASE}/monasca-common
|
||||
|
||||
MONASCA_STATSD_REPO=${MONASCA_STATSD_REPO:-${GIT_BASE}/openstack/monasca-statsd.git}
|
||||
MONASCA_STATSD_BRANCH=${MONASCA_STATSD_BRANCH:-master}
|
||||
MONASCA_STATSD_DIR=${MONASCA_BASE}/monasca-statsd
|
||||
|
||||
MONASCA_GRAFANA_DATASOURCE_REPO=${MONASCA_GRAFANA_DATASOURCE_REPO:-${GIT_BASE}/openstack/monasca-grafana-datasource.git}
|
||||
MONASCA_GRAFANA_DATASOURCE_BRANCH=${MONASCA_GRAFANA_DATASOURCE_BRANCH:-master}
|
||||
MONASCA_GRAFANA_DATASOURCE_DIR=${MONASCA_BASE}/monasca-grafana-datasource
|
||||
|
||||
GRAFANA_REPO=${GRAFANA_REPO:-"https://github.com/monasca/grafana.git"}
|
||||
GRAFANA_BRANCH=${GRAFANA_BRANCH:-"grafana4"}
|
||||
GRAFANA_DIR=${MONASCA_BASE}/grafana
|
||||
GRAFANA_INIT_LOG_LEVEL=DEBUG
|
||||
GRAFANA_URL=http://localhost:3000
|
||||
GRAFANA_USERNAME=mini-mon
|
||||
GRAFANA_PASSWORD=password
|
||||
DATASOURCE_TYPE=monasca
|
||||
DATASOURCE_URL=http://localhost/metrics
|
||||
DATASOURCE_ACCESS_MODE=proxy
|
||||
DATASOURCE_AUTH=Keystone
|
||||
DASHBOARDS_DIR=/dashboards.d
|
||||
|
||||
GITDIR["python-monascaclient"]=${MONASCA_CLIENT_DIR}
|
||||
GITDIR["monasca-common"]=${MONASCA_COMMON_DIR}
|
||||
GITDIR["monasca-statsd"]=${MONASCA_STATSD_DIR}
|
||||
|
||||
# Database settings
|
||||
MONASCA_DATABASE_USE_ORM=false
|
||||
|
||||
# Other settings
|
||||
DOWNLOAD_FILE_TIMEOUT=${DOWNLOAD_FILE_TIMEOUT:-30}
|
||||
PLUGIN_FILES=$MONASCA_API_DIR/devstack/files
|
||||
# APACHE_MIRROR= # force specific APACHE_MIRROR if the one that got picked fails
|
||||
# Apache Kafka 0.9.0.1 is only available in Apache Archives
|
||||
APACHE_ARCHIVES=${APACHE_ARCHIVES:-"https://archive.apache.org/dist/"}
|
||||
|
||||
# Public configuration
|
||||
## monasca-statsd
|
||||
MONASCA_STATSD_PORT=${MONASCA_STATSD_PORT:-8125}
|
||||
|
||||
## monasca-api
|
||||
MONASCA_API_SERVICE_HOST=${MONASCA_API_SERVICE_HOST:-${SERVICE_HOST}}
|
||||
MONASCA_API_SERVICE_PORT=${MONASCA_API_SERVICE_PORT:-8070}
|
||||
MONASCA_API_ADMIN_PORT=${MONASCA_API_ADMIN_PORT:-8081} # for java
|
||||
MONASCA_API_SERVICE_PROTOCOL=${MONASCA_API_SERVICE_PROTOCOL:-${SERVICE_PROTOCOL}}
|
||||
MONASCA_API_SERVICE_TIMEOUT=${MONASCA_API_SERVICE_TIMEOUT:-${SERVICE_TIMEOUT}}
|
||||
|
||||
MONASCA_API_CONF_DIR=${MONASCA_API_CONF_DIR:-/etc/monasca}
|
||||
MONASCA_API_CONF=${MONASCA_API_CONF:-$MONASCA_API_CONF_DIR/monasca-api.conf}
|
||||
MONASCA_API_PASTE_INI=${MONASCA_API_PASTE_INI:-$MONASCA_API_CONF_DIR/api-config.ini}
|
||||
MONASCA_API_LOGGING_CONF=${MONASCA_API_LOGGING_CONF:-$MONASCA_API_CONF_DIR/api-logging.conf}
|
||||
MONASCA_API_LOG_DIR=${MONASCA_API_LOG_DIR:-/var/log/monasca/api}
|
||||
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-$ENABLE_HTTPD_MOD_WSGI_SERVICES}
|
||||
MONASCA_API_UWSGI_CONF=${MONASCA_API_UWSGI_CONF:-$MONASCA_API_CONF_DIR/api-uwsgi.ini}
|
||||
|
||||
# OLD LOG-API CONFIGURATION
|
||||
MONASCA_LOG_API_SERVICE_HOST=${MONASCA_LOG_API_SERVICE_HOST:-${SERVICE_HOST}}
|
||||
MONASCA_LOG_API_SERVICE_PORT=${MONASCA_LOG_API_SERVICE_PORT:-5607}
|
||||
MONASCA_LOG_API_REPO=${MONASCA_LOG_API_REPO:-${GIT_BASE}/openstack/monasca-log-api.git}
|
||||
MONASCA_LOG_API_BRANCH=${MONASCA_LOG_API_BRANCH:-master}
|
||||
MONASCA_LOG_API_DIR=${DEST}/monasca-log-api
|
||||
MONASCA_LOG_API_DEPLOY=uwsgi
|
||||
MONASCA_LOG_API_CONF_DIR=${MONASCA_LOG_API_CONF_DIR:-/etc/monasca}
|
||||
MONASCA_LOG_API_LOG_DIR=${MONASCA_LOG_API_LOG_DIR:-/var/log/monasca}
|
||||
MONASCA_LOG_API_CACHE_DIR=${MONASCA_LOG_API_CACHE_DIR:-/var/cache/monasca-log-api}
|
||||
MONASCA_LOG_API_WSGI_DIR=${MONASCA_LOG_API_WSGI_DIR:-/var/www/monasca-log-api}
|
||||
|
||||
MONASCA_LOG_API_CONF=${MONASCA_LOG_API_CONF:-$MONASCA_LOG_API_CONF_DIR/monasca-log-api.conf}
|
||||
MONASCA_LOG_API_PASTE=${MONASCA_LOG_API_PASTE:-$MONASCA_LOG_API_CONF_DIR/log-api-paste.ini}
|
||||
MONASCA_LOG_API_LOGGING_CONF=${MONASCA_LOG_API_LOGGING_CONF:-$MONASCA_LOG_API_CONF_DIR/log-api-logging.conf}
|
||||
MONASCA_LOG_API_UWSGI_CONF=${MONASCA_LOG_API_UWSGI_CONF:-$MONASCA_LOG_API_CONF_DIR/log-api-uwsgi.ini}
|
||||
|
||||
USE_PYTHON3=${USE_PYTHON3:-true}
|
||||
USE_OLD_LOG_API=${USE_OLD_LOG_API:-false}
|
||||
|
||||
## storm settings
|
||||
STORM_UI_HOST=${STORM_UI_HOST:-${SERVICE_HOST}}
|
||||
STORM_UI_PORT=${STORM_UI_PORT:-8089}
|
||||
STORM_LOGVIEWER_PORT=${STORM_LOGVIEWER_PORT:-8090}
|
||||
|
||||
KAFKA_SERVICE_HOST=${KAFKA_SERVICE_HOST:-${SERVICE_HOST}}
|
||||
KAFKA_SERVICE_PORT=${KAFKA_SERVICE_PORT:-9092}
|
||||
KAFKA_SERVICE_TOPICS=${KAFKA_SERVICE_TOPICS:-metrics,events,alarm-state-transitions,alarm-notifications,retry-notifications,60-seconds-notifications}
|
||||
KAFKA_SERVICE_LOG_TOPICS=${KAFKA_SERVICE_LOG_TOPICS:-log,transformed-log}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"test": {}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# documentation
|
||||
sphinx>=2.0.0,!=2.1.0 # BSD
|
||||
os-api-ref>=1.4.0 # Apache-2.0
|
||||
reno>=3.1.0 # Apache-2.0
|
||||
openstackdocstheme>=2.2.1 # Apache-2.0
|
||||
SQLAlchemy>=1.3.0 # MIT
|
||||
oslo.config>=6.8.0 # Apache-2.0
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 28 KiB |
@@ -1,89 +0,0 @@
|
||||
====================
|
||||
Administration guide
|
||||
====================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
Schema Setup
|
||||
~~~~~~~~~~~~
|
||||
|
||||
For setting up the Monasca configuration database, we provide ``monasca_db``,
|
||||
an Alembic based database migration tool. Historically, the schema for the
|
||||
configuration database was created by a SQL script. This SQL was changed a
|
||||
couple of times, so ``monasca_db`` comes with a mechanism to detect the SQL
|
||||
script revision being used to create it and stamp the database with the
|
||||
matching Alembic revision.
|
||||
|
||||
Setting up a new database
|
||||
-------------------------
|
||||
|
||||
If you are deploying Monasca from scratch, database setup is quite
|
||||
straightforward:
|
||||
|
||||
1. Create a database and configure access credentials with ``ALL PRIVILEGES``
|
||||
permission level on it in the Monasca API configuration file's
|
||||
``[database]`` section.
|
||||
|
||||
2. Run schema migrations: ``monasca_db upgrade``. It will run all migrations up
|
||||
to and including the most recent one (``head``) unless a revision to migrate
|
||||
to is explicitly specified.
|
||||
|
||||
|
||||
Upgrading Existing Database from Legacy Schema
|
||||
----------------------------------------------
|
||||
|
||||
If you have been running an older version of Monasca, you can attempt to
|
||||
identify and stamp its database schema:
|
||||
|
||||
::
|
||||
|
||||
monasca_db stamp --from-fingerprint
|
||||
|
||||
This command will generate a unique fingerprint for the database schema in
|
||||
question and match that fingerprint with an in-code map of fingerprints to
|
||||
database schema revisions. This should work for all official (shipped as part
|
||||
of the ``monasca-api`` repository) schema scripts. If you used a custom
|
||||
third-party schema script to set up the database, it may not be listed and
|
||||
you'll get an error message similar to this one (the fingerprint hash will
|
||||
vary):
|
||||
|
||||
::
|
||||
|
||||
Schema fingerprint 3d45493070e3b8e6fc492d2369e51423ca4cc1ac does not match any known legacy revision.
|
||||
|
||||
If this happens to you, please create a Storyboard story against the
|
||||
`openstack/monasca-api project <https://storyboard.openstack.org/#!/project/863>`_.
|
||||
Provide the following alongside the story:
|
||||
|
||||
1. A copy of or pointer to the schema SQL script being used to set up the
|
||||
database.
|
||||
|
||||
2. The fingerprint shown in the error message.
|
||||
|
||||
3. The output of ``monasca_db fingerprint --raw``.
|
||||
|
||||
Time Series Databases Setup
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Enabling InfluxDB Time Series Index in existing deployments
|
||||
-----------------------------------------------------------
|
||||
|
||||
If enabling TSI on an existing InfluxDB install please follow the instructions
|
||||
for migrating existing data here:
|
||||
https://docs.influxdata.com/influxdb/v1.7/administration/upgrading/#upgrading-influxdb-1-3-1-4-no-tsi-preview-to-1-7-x-tsi-enabled
|
||||
|
||||
Database Per Tenant
|
||||
-------------------
|
||||
|
||||
It is envisaged that separate database per tenant will be the default
|
||||
behaviour in a future release of Monasca. Not only would it make queries
|
||||
faster for tenants, it would also allow administrators to define
|
||||
retention policy per tenancy. To enable this, set
|
||||
`influxdb.db_per_tenant` to `True` in `monasca-{api,persister}` config
|
||||
(it defaults to `False` at the moment if not set).
|
||||
|
||||
To migrate existing data to database per tenant, refer to README.rst
|
||||
under the following URL which also contains the Python script to
|
||||
facilitate migration:
|
||||
https://opendev.org/openstack/monasca-persister/src/branch/master/monasca_persister/tools/db-per-tenant/
|
||||
@@ -1,53 +0,0 @@
|
||||
======================
|
||||
Command Line Interface
|
||||
======================
|
||||
|
||||
monasca (python-monascaclient)
|
||||
==============================
|
||||
This is the main command line interface for working with the
|
||||
Monasca services, including retrieving metrics from storage.
|
||||
|
||||
See the https://docs.openstack.org/python-monascaclient/latest/ for details.
|
||||
|
||||
|
||||
monasca_db
|
||||
==========
|
||||
CLI for Monasca database management.
|
||||
::
|
||||
|
||||
usage: api [-h] [--config-dir DIR] [--config-file PATH] [--version]
|
||||
{fingerprint,detect-revision,stamp,upgrade,version} ...
|
||||
|
||||
|
||||
monasca-status
|
||||
==============
|
||||
CLI for checking the status of Monasca.
|
||||
|
||||
Use the command `monasca-status upgrade check` to check
|
||||
the readiness of the system for an upgrade.
|
||||
|
||||
**Return Codes**
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 80
|
||||
:header-rows: 1
|
||||
|
||||
* - Return code
|
||||
- Description
|
||||
* - 0
|
||||
- All upgrade readiness checks passed successfully and there is nothing
|
||||
to do.
|
||||
* - 1
|
||||
- At least one check encountered an issue and requires further
|
||||
investigation. This is considered a warning but the upgrade may be OK.
|
||||
* - 2
|
||||
- There was an upgrade status check failure that needs to be
|
||||
investigated. This should be considered something that stops an
|
||||
upgrade.
|
||||
* - 255
|
||||
- An unexpected error occurred.
|
||||
|
||||
**History**
|
||||
|
||||
Introduced in the Stein cycle as part of the OpenStack Community wide goal.
|
||||
https://governance.openstack.org/tc/goals/stein/upgrade-checkers.html
|
||||
@@ -1,242 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# monasca-api documentation build configuration file, created by
|
||||
# sphinx-quickstart on Wed Nov 18 12:02:03 2015.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path = [
|
||||
os.path.abspath('../..'),
|
||||
os.path.abspath('../../bin')
|
||||
] + sys.path
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
needs_sphinx = '1.6'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.coverage',
|
||||
'sphinx.ext.ifconfig',
|
||||
'sphinx.ext.graphviz',
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.viewcode',
|
||||
'oslo_config.sphinxconfiggen',
|
||||
'oslo_config.sphinxext',
|
||||
'openstackdocstheme',
|
||||
]
|
||||
|
||||
# geeneral information about project
|
||||
openstackdocs_repo_name = u'openstack/monasca-api'
|
||||
openstackdocs_pdf_link = True
|
||||
openstackdocs_use_storyboard = True
|
||||
copyright = u'2014-present, OpenStack Foundation'
|
||||
author = u'OpenStack Foundation'
|
||||
|
||||
# sample config
|
||||
config_generator_config_file = [
|
||||
('config-generator/monasca-api.conf', '_static/monasca-api')
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
source_encoding = 'utf-8'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = [
|
||||
'common',
|
||||
'doc',
|
||||
'documentation',
|
||||
'etc',
|
||||
'java'
|
||||
]
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
show_authors = True
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'native'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
modindex_common_prefix = ['monasca_api.', 'monasca']
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
# html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
# html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
# html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
# html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# doc. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
# html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
# html_extra_path = []
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
html_use_index = True
|
||||
|
||||
# If false, no module index is generated.
|
||||
html_use_modindex = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Language to be used for generating the HTML full-text search index.
|
||||
# Sphinx supports the following languages:
|
||||
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
|
||||
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
|
||||
#html_search_language = 'en'
|
||||
|
||||
# A dictionary with options for the search language support, empty by default.
|
||||
# Now only 'ja' uses this config value
|
||||
#html_search_options = {'type': 'default'}
|
||||
|
||||
# The name of a javascript file (relative to the configuration directory) that
|
||||
# implements a search results scorer. If empty, the default will be used.
|
||||
#html_search_scorer = 'scorer.js'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'MonitoringApiDoc'
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'doc-monasca-api.tex', u'Monasca Documentation',
|
||||
[author], 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
latex_domain_indices = False
|
||||
|
||||
latex_elements = {
|
||||
'makeindex': '',
|
||||
'printindex': '',
|
||||
'preamble': r'\setcounter{tocdepth}{3}',
|
||||
}
|
||||
|
||||
# Disable usage of xindy https://bugzilla.redhat.com/show_bug.cgi?id=1643664
|
||||
latex_use_xindy = False
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'monitoringapi', u'Monasca Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'https://doc.python.org/': None}
|
||||
@@ -1,40 +0,0 @@
|
||||
.. _sample-configuration:
|
||||
|
||||
-------
|
||||
Samples
|
||||
-------
|
||||
|
||||
The following sections show sample configuration files for monasca-api and
|
||||
related utilities. These are generated from the code
|
||||
(apart from the samples for logging and paster) and reflect the current state
|
||||
of code in the monasca-api repository.
|
||||
|
||||
|
||||
.. _sample-configuration-api:
|
||||
|
||||
Sample Configuration For Application
|
||||
------------------------------------
|
||||
|
||||
This sample configuration can also be viewed in `monasca-api.conf.sample
|
||||
<../_static/monasca-api.conf.sample>`_.
|
||||
|
||||
.. literalinclude:: ../_static/monasca-api.conf.sample
|
||||
|
||||
.. _sample-configuration-logging:
|
||||
|
||||
Sample Configuration For Logging
|
||||
--------------------------------
|
||||
|
||||
This sample configuration can also be viewed in `api-logging.conf
|
||||
<https://git.openstack.org/cgit/openstack/monasca-api/plain/etc/api-logging.conf>`_.
|
||||
|
||||
.. literalinclude:: ../../../etc/api-logging.conf
|
||||
|
||||
|
||||
Sample Configuration For Paster
|
||||
-------------------------------
|
||||
|
||||
This sample configuration can also be viewed in `api-config.ini
|
||||
<https://git.openstack.org/cgit/openstack/monasca-api/plain/etc/api-config.ini>`_.
|
||||
|
||||
.. literalinclude:: ../../../etc/api-config.ini
|
||||
3
doc/source/contributor/.gitignore
vendored
3
doc/source/contributor/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
# codebase documentation is autogenerated
|
||||
# do not track it
|
||||
api/
|
||||
@@ -1,16 +0,0 @@
|
||||
.. _codedocs:
|
||||
|
||||
======================
|
||||
Codebase documentation
|
||||
======================
|
||||
|
||||
Following section contains codebase documenation generated with, a little
|
||||
bit of assistance, `sphinx.ext.autodoc`_.
|
||||
|
||||
.. _`sphinx.ext.autodoc`: http://www.sphinx-doc.org/en/stable/ext/autodoc.html
|
||||
|
||||
Modules
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
@@ -1,188 +0,0 @@
|
||||
============================
|
||||
So You Want to Contribute...
|
||||
============================
|
||||
|
||||
For general information on contributing to OpenStack, please check out the
|
||||
`contributor guide <https://docs.openstack.org/contributors/>`_ to get started.
|
||||
It covers all the basics that are common to all OpenStack projects: the
|
||||
accounts you need, the basics of interacting with our Gerrit review system,
|
||||
how we communicate as a community, etc.
|
||||
|
||||
Below will cover the more project specific information you need to get started
|
||||
with Monasca.
|
||||
|
||||
Communication
|
||||
~~~~~~~~~~~~~
|
||||
.. This would be a good place to put the channel you chat in as a project; when/
|
||||
where your meeting is, the tags you prepend to your ML threads, etc.
|
||||
|
||||
For communicating with Monasca Team, you can reach out to us on
|
||||
*#openstack-monasca* IRC channel at OFTC.
|
||||
|
||||
We hold weekly `team meetings`_ in our IRC channel which is a good opportunity
|
||||
to ask questions, propose new features or just get in touch with the team.
|
||||
|
||||
You can also send us an email to the mailing list
|
||||
`openstack-discuss@lists.openstack.org`_. Please use *[Monasca]* tag for
|
||||
easier thread filtering.
|
||||
|
||||
.. _team meetings: http://eavesdrop.openstack.org/#Monasca_Team_Meeting
|
||||
.. _openstack-discuss@lists.openstack.org: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss
|
||||
|
||||
Contacting the Core Team
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. This section should list the core team, their irc nicks, emails, timezones
|
||||
etc. If all this info is maintained elsewhere (i.e. a wiki), you can link to
|
||||
that instead of enumerating everyone here.
|
||||
|
||||
================== ========== =====
|
||||
Name IRC nick Email
|
||||
================== ========== =====
|
||||
Martin Chacon Piza chaconpiza MartinDavid.ChaconPiza1@est.fujitsu.com
|
||||
Witek Bedyk witek witold.bedyk@suse.com
|
||||
Doug Szumski dougsz doug@stackhpc.com
|
||||
Adrian Czarnecki adriancz adrian.czarnecki@ts.fujitsu.com
|
||||
Joseph Davis joadavis joseph.davis@suse.com
|
||||
================== ========== =====
|
||||
|
||||
New Feature Planning
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
.. This section is for talking about the process to get a new feature in. Some
|
||||
projects use blueprints, some want specs, some want both! Some projects
|
||||
stick to a strict schedule when selecting what new features will be reviewed
|
||||
for a release.
|
||||
|
||||
Our process is meant to allow users, developers, and operators to express their
|
||||
desires for new features using Storyboard stories. The workflow is very simple:
|
||||
|
||||
* If something is clearly broken, submit a `bug report`_ in Storyboard.
|
||||
* If you want to change or add a feature, submit a `story`_ in Storyboard.
|
||||
* Monasca core reviewers may request that you submit a `specification`_ to
|
||||
gerrit to elaborate on the feature request.
|
||||
* Significant features require `release notes`_ to be included when the code is
|
||||
merged.
|
||||
|
||||
.. _story:
|
||||
|
||||
Stories
|
||||
-------
|
||||
|
||||
New features can be proposed in `Storyboard
|
||||
<https://storyboard.openstack.org/#!/project_group/59>`_ as new Story.
|
||||
|
||||
The initial story primarily needs to express the intent of the idea with
|
||||
enough details that it can be evaluated for compatibility with the project
|
||||
mission and whether or not the change requires a `specification`_. It is *not*
|
||||
expected to contain all of the implementation details. If the feature is very
|
||||
simple and well understood by the team, then describe it simply. The story is
|
||||
then used to track all the related code reviews. Team members will
|
||||
request more information as needed.
|
||||
|
||||
.. _specification:
|
||||
|
||||
Specifications
|
||||
--------------
|
||||
|
||||
We use the `monasca-specs <https://github.com/openstack/monasca-specs>`_
|
||||
repository for specification reviews. Specifications:
|
||||
|
||||
* Provide a review tool for collaborating on feedback and reviews for complex
|
||||
features.
|
||||
* Collect team priorities.
|
||||
* Serve as the basis for documenting the feature once implemented.
|
||||
* Ensure that the overall impact on the system is considered.
|
||||
|
||||
.. _release notes:
|
||||
|
||||
Release Notes
|
||||
-------------
|
||||
|
||||
The release notes for a patch should be included in the patch. If not, the
|
||||
release notes should be in a follow-on review.
|
||||
|
||||
If any of the following applies to the patch, a release note is required:
|
||||
|
||||
* The deployer needs to take an action when upgrading
|
||||
* A new feature is implemented
|
||||
* Plugin API function was removed or changed
|
||||
* Current behavior is changed
|
||||
* A new config option is added that the deployer should consider changing from
|
||||
the default
|
||||
* A security bug is fixed
|
||||
* Change may break previous versions of the client library(ies)
|
||||
* Requirement changes are introduced for important libraries like oslo, six
|
||||
requests, etc.
|
||||
* Deprecation period starts or code is purged
|
||||
|
||||
A release note is suggested if a long-standing or important bug is fixed.
|
||||
Otherwise, a release note is not required.
|
||||
|
||||
Task Tracking
|
||||
~~~~~~~~~~~~~
|
||||
.. This section is about where you track tasks- launchpad? storyboard? is there
|
||||
more than one launchpad project? what's the name of the project group in
|
||||
storyboard?
|
||||
|
||||
We track our tasks in Storyboard
|
||||
|
||||
https://storyboard.openstack.org/#!/project_group/monasca
|
||||
|
||||
If you're looking for some smaller, easier work item to pick up and get started
|
||||
on, search for the *'low-hanging-fruit'* tag.
|
||||
|
||||
Kanban Board
|
||||
------------
|
||||
|
||||
Progress on implementation of important stories in Ussuri release is tracked in
|
||||
`Monasca Board on StoryBoard <https://storyboard.openstack.org/#!/board/190>`_.
|
||||
|
||||
.. _bug report:
|
||||
|
||||
Reporting a Bug
|
||||
~~~~~~~~~~~~~~~
|
||||
.. Pretty self explanatory section, link directly to where people should report
|
||||
bugs for your project.
|
||||
|
||||
You found an issue and want to make sure we are aware of it? You can `report
|
||||
them on Storyboard <https://storyboard.openstack.org/#!/project_group/monasca>`_.
|
||||
|
||||
When filing a bug please remember to add the *bug* tag to the story. Please
|
||||
provide information on what the problem is, how to replicate it, any
|
||||
suggestions for fixing it, and a recommendation of the priority.
|
||||
|
||||
All open bugs can be found in this `Worklist
|
||||
<https://storyboard.openstack.org/#!/worklist/213>`_.
|
||||
|
||||
Getting Your Patch Merged
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. This section should have info about what it takes to get something merged. Do
|
||||
you require one or two +2's before +W? Do some of your repos require unit
|
||||
test changes with all patches? etc.
|
||||
|
||||
All changes proposed to Monasca requires at least one ``Code-Review +2`` votes
|
||||
from Monasca core reviewers before one of the core reviewers can approve
|
||||
patch by giving ``Workflow +1`` vote.
|
||||
|
||||
Reviews Prioritisation
|
||||
----------------------
|
||||
|
||||
Monasca project uses *Review-Priority* field in Gerrit to emphasize
|
||||
prioritized code changes.
|
||||
|
||||
Every developer can propose the changes which should be prioritized
|
||||
in `weekly team meeting <http://eavesdrop.openstack.org/#Monasca_Team_Meeting>`_
|
||||
or in the mailing list. Any core reviewer,
|
||||
preferably from a different company, can confirm such proposed change
|
||||
by setting *Review-Priority* +1.
|
||||
|
||||
Prioritized changes can be listed in this
|
||||
`dashboard <http://www.tinyurl.com/monasca>`_.
|
||||
|
||||
Project Team Lead Duties
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. this section is where you can put PTL specific duties not already listed in
|
||||
the common PTL guide (linked below), or if you already have them written
|
||||
up elsewhere you can link to that doc here.
|
||||
|
||||
All common PTL duties are enumerated in the `PTL guide
|
||||
<https://docs.openstack.org/project-team-guide/ptl.html>`_.
|
||||
@@ -1,17 +0,0 @@
|
||||
Database Migrations
|
||||
-------------------
|
||||
|
||||
Monasca uses `Alembic <http://alembic.zzzcomputing.com/en/latest/>`_
|
||||
migrations to set up its configuration database. If you need to change the
|
||||
configuration database's schema, you need to create a migration to adjust the
|
||||
database accordingly, as follows::
|
||||
|
||||
cd monasca_api/db/
|
||||
alembic revision
|
||||
|
||||
This will create a new skeleton revision for you to edit. You will find
|
||||
existing revisions to use for inspiration in the
|
||||
``/monasca_api/db/alembic/versions/`` directory.
|
||||
|
||||
Measurement data stored in a Time Series database (such as InfluxDB) would
|
||||
be migrated to a new version using standard practice for a given TSDB.
|
||||
@@ -1,10 +0,0 @@
|
||||
==========================
|
||||
Contribution documentation
|
||||
==========================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
contributing.rst
|
||||
db_migrations.rst
|
||||
code.rst
|
||||
@@ -1,3 +0,0 @@
|
||||
========
|
||||
Glossary
|
||||
========
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user