diff --git a/.coveragerc b/.coveragerc
deleted file mode 100644
index 7cb539c4..00000000
--- a/.coveragerc
+++ /dev/null
@@ -1,7 +0,0 @@
-[run]
-branch = True
-source = monasca_log_api
-omit = monasca_log_api/tests/*
-
-[report]
-ignore_errors = True
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1a636224..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,39 +0,0 @@
-*.py[co]
-*~
-doc/build/*
-dist
-build
-cover/
-.coverage
-.coverage.*
-*.egg
-*.egg-info
-.eggs/
-.stestr/
-.tox/
-MANIFEST
-AUTHORS
-ChangeLog
-monasca-log-api.log
-etc/monasca/*.sample
-
-*.swp
-*.iml
-.DS_Store
-.cache
-.classpath
-.idea
-.project
-.target/
-java/debs/*
-.settings/
-target
-test-output/
-logs/
-*config*.yml
-db/config.yml
-.venv
-.vagrant
-
-# Logs from devstack directory should not be committed
-devstack/*.log
diff --git a/.stestr.conf b/.stestr.conf
deleted file mode 100644
index 6107277d..00000000
--- a/.stestr.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_path=$OS_TEST_PATH
-top_dir=./
-group_regex=monasca_log_api\.tests(?:\.|_)([^_]+)
diff --git a/.zuul.yaml b/.zuul.yaml
deleted file mode 100644
index a41df255..00000000
--- a/.zuul.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-- project:
- templates:
- - check-requirements
- - openstack-cover-jobs
- - openstack-lower-constraints-jobs
- - openstack-python3-victoria-jobs
- - publish-openstack-docs-pti
- - release-notes-jobs-python3
- check:
- jobs:
- - monasca-tempest-log-oldapi-python3-influxdb
- - build-monasca-docker-image
- gate:
- queue: monasca
- jobs:
- - monasca-tempest-log-oldapi-python3-influxdb
- post:
- jobs:
- - publish-monasca-log-api-docker-image
- periodic:
- jobs:
- - publish-monasca-log-api-docker-image
- release:
- jobs:
- - publish-monasca-log-api-docker-image
-
-- job:
- name: publish-monasca-log-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_log_api
-
-- secret:
- name: doker_hub_login_log_api
- data:
- user: !encrypted/pkcs1-oaep
- - mR5DkiEi0lGjpUHgFYlt779KdX0UhPK7+/uJIiawmM5ASJSx90s/DMMDUrPbGc9cpJrOH
- zRxBRryUrXuLGpKwQvLAC8uQC3rd9rGrlTVwjszl3nDNFYxKJ3tBMjppG6dBTIo58v6Go
- Xo9GdNmaeS3jh6wh9hUqmMlHF4fzaX49GUpZyxTwufA0Y4h/pbq1r7ImbOCLiNUEwxWqH
- dPJ9aJMQ5u8qus2r8cs7EHU/KAsFfPEteNtOz3egDSb1/SFYs5oI0VeIs4RvidHe6M56v
- vEYx2KjzKKIE4s5TAiU8jU2Qs0RROv+6s7Y23ciqOfFBhVKJg+0PAoge1AwmL6g3FNrW0
- sy0uEslPltkbF3Pae9zFe0VU6ZIxYC62kAIBEJj96zc0TIfFYHx4NRbIvkoKopnun7dqF
- 6hg5k8lZ1kN5RMT2nPNemj9esh0eqCBvLjf4ljy7veYLN9M/GSKSP5A+2chBWFxloWuwB
- 7PRf9GbDbHA+H+Y6WASK38haHlo9zsoi/D7oJK02LHTwgj4ED3qN34Z9zCVBBr1jN3TUH
- 9aVOsm+OT1OsUszLQ3BM1HqBZLszrOxuPoqDQ5CURrxEtzrSnX+fsoLyv1tzT/vVnrbAT
- /zJxBXGiiE5/3H0isFkK6GUVwsmnLUFYCq5ye6NyLpwdWfTEx6eQDlO5OIE/Qo=
- password: !encrypted/pkcs1-oaep
- - DALBrHoOI3iZAKArnbPL59d3Mk1OHeDNREq9CJXs601l70AwPmNnK0y1XixbUoAmB8y9C
- hkadR+a2s8Lc2+xCzRvr+4tt8vZ+gjgl77WTs43mpb+DfssdP6s5847t6cnE1WKI7GgCS
- 4as41aOz4HDIdLG6Oe5Jq8HYDx+qcBZhQaeCzObLnbmxdDop6SkpjfziV8+TWxag56joE
- V7masPLtYofzQpqB0hRhD3RF7T5fW8uOUlKKzSKhjYuwul1sbOKn6izjufxQs0iimhJpI
- HkWCPSj9emr889BfO2DR9/OvTjwSdWZmEtup3RAyWcd6JUESa3oLkG1OFqB0vp6hgx9/F
- zFXhBxtEyvs1Odj1ecudr7l+zO4kPVG9cIMHHzd7Tlg1XX2O1/+houVmXd3I1GtxwRYZa
- B3Q+yecTLleR1coMM4nZgGtbiky5q6zcttTQCxeUEeCpTUWbxhnLPZyXV+pdFMxsLeUjP
- 9GcnjuNCgOKHYHyHcXwDoytsqgoTaAS4O+FR5tCmc9dREWsaRCd0dBMy6Xx+ynVJE/1jp
- XwtKG/yaFdHyTXwXGQ6ZlW9XnesBejLmetZHx8j7atiMOtKqmM4+N9i0O+1wbl3A2Glxs
- K1orRrDJBdLNYVdczq/TUvzl4XBXi+36f1i6auL/WqHUmQy62w1S9WvaqGzEKM=
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
deleted file mode 100644
index dafe5518..00000000
--- a/CONTRIBUTING.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-If you would like to contribute to the development of OpenStack,
-you must follow the steps documented at:
-
- http://docs.openstack.org/infra/manual/developers.html#getting-started
-
-Once those steps have been completed, changes to OpenStack
-should be submitted for review via the Gerrit tool, following
-the workflow documented at:
-
- http://docs.openstack.org/infra/manual/developers.html#development-workflow
-
-Pull requests submitted through GitHub will be ignored.
-
-Bugs should be filed on Storyboard (using tag **bug**), not GitHub:
-
- https://storyboard.openstack.org/#!/project/869
-
-Additionally, specific guidelines for contributing to Monasca-Log-Api may be found in
-Monasca-Log-Api's Documentation:
-
- https://docs.openstack.org/monasca-log-api/latest/contributor/
diff --git a/HACKING.rst b/HACKING.rst
deleted file mode 100644
index 3fb9088d..00000000
--- a/HACKING.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-monasca-log-api Style Commandments
-==================================
-
-- Step 1: Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
-- Step 2: Read on
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 67db8588..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,175 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
diff --git a/README.deprecated.md b/README.deprecated.md
deleted file mode 100644
index f109f85e..00000000
--- a/README.deprecated.md
+++ /dev/null
@@ -1,193 +0,0 @@
-Team and repository tags
-========================
-
-[![Team and repository tags](https://governance.openstack.org/badges/monasca-log-api.svg)](https://governance.openstack.org/reference/tags/index.html)
-
-
-
-# Overview
-
-`monasca-log-api` is a RESTful API server that is designed with a layered architecture [layered architecture](http://en.wikipedia.org/wiki/Multilayered_architecture).
-
-The full API Specification can be found in [documentation/monasca-log-api-spec.md](documentation/monasca-log-api-spec.md)
-
-## Monasca-log-api Python
-
-### Installation
-
-To install the python api implementation, git clone the source and run the
-following command:
-```sh
- sudo python setup.py install
-```
-
-### Configuration
-
-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::
-
-```sh
- /etc/monasca/log-api-config.conf
- /etc/monasca/log-api-config.ini
- /etc/monasca/log-api-logging.conf
-```
-
-Once the configurations are modified to match your environment, you can start
-up the server using either Gunicorn or Apache.
-
-### Start the Server -- for Gunicorn
-
-The server can be run in the foreground, or as daemons:
-
-Running the server in foreground mode with Gunicorn:
-
-```sh
- gunicorn -k eventlet --worker-connections=2000 --backlog=1000
- --paste /etc/monasca/log-api-config.ini
-```
-
-Running the server as daemons with Gunicorn:
-
-```sh
- gunicorn -k eventlet --worker-connections=2000 --backlog=1000
- --paste /etc/monasca/log-api-config.ini -D
-```
-
-### Start the Server -- for Apache
-
-To start the server using Apache: create a modwsgi file,
-create a modwsgi config file, and enable the wsgi module
-in Apache.
-
-The modwsgi conf file may look something like this, and the site will need to be enabled:
-
-```sh
- Listen myhost:8082
- Listen 127.0.0.1:8082
-
-
- WSGIDaemonProcess log-api processes=4 threads=4 socket-timeout=120 user=log group=log python-path=/usr/local/lib/python2.7/site-packages
- WSGIProcessGroup log-api
- WSGIApplicationGroup log-api
- WSGIScriptAlias / /var/www/log/log-api.wsgi
-
- ErrorLog /var/log/log-api/wsgi.log
- LogLevel info
- CustomLog /var/log/log-api/wsgi-access.log combined
-
-
- Options Indexes FollowSymLinks MultiViews
- Require all granted
- AllowOverride None
- Order allow,deny
- allow from all
- LimitRequestBody 102400
-
-
- SetEnv no-gzip 1
-
-
-
-```
-
-The wsgi file may look something like this:
-
-```sh
- from monasca_log_api.server import get_wsgi_app
-
- application = get_wsgi_app(config_base_path='/etc/monasca')
-```
-
-## Testing
-
-### Commandline run
-To check the server from the commandline:
-
-```sh
- python server.py
-```
-
-### PEP8 guidelines
-To check if the code follows python coding style, run the following command
-from the root directory of this project:
-
-```sh
- tox -e pep8
-```
-
-### Unit Tests
-To run all the unit test cases, run the following command from the root
-directory of this project:
-
-```sh
- tox -e py27
- tox -e py35
-```
-
-### Coverage
-To generate coverage results, run the following command from the root
-directory of this project:
-
-```sh
- tox -e cover
-```
-
-### Building
-
-To build an installable package, run the following command from the root
-directory of this project:
-
-```sh
- python setup.py sdist
-```
-
-### Documentation
-
-To generate documentation, run the following command from the root
-directory of this project:
-
-```sh
- tox -e docs
-```
-
-That will create documentation under build folder relative to root of the
-project.
-
-## Architectural layers
-
-Requests flow through the following architectural layers from top to bottom:
-
-* Resource
- * Serves as the entrypoint into the service.
- * Responsible for handling web service requests, and performing structural request validation.
-* Application
- * Responsible for providing application level implementations for specific use cases.
-* Domain
- * Contains the technology agnostic core domain model and domain service definitions.
- * Responsible for upholding invariants and defining state transitions.
-* Infrastructure
- * Contains technology specific implementations of domain services.
-
-## Documentation
-
-* API Specification: [/documentation/monasca-log-api-spec.md](/documentation/monasca-log-api-spec.md).
-* Kafka communication: [/documentation/monasca-log-api-kafka.md](/documentation/monasca-log-api-kafka.md).
-* API Monitoring: [/documentation/monasca-log-api-metrics.md](/documentation/monasca-log-api-metrics.md).
-
-# License
-
- # Copyright 2015 kornicameister@gmail.com
- # Copyright 2015-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.
diff --git a/README.rst b/README.rst
index 762e301d..c00729d0 100644
--- a/README.rst
+++ b/README.rst
@@ -1,73 +1,17 @@
-========================
-Team and repository tags
-========================
-
-.. image:: https://governance.openstack.org/tc/badges/monasca-log-api.svg
- :target: https://governance.openstack.org/tc/reference/tags/index.html
-
-.. Change things from this point on
-
OpenStack Monasca-Log-Api
=========================
-.. important::
+This project is no longer maintained.
+
+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".
- This API is deprecated. Last maintained release is OpenStack Train.
- Please use `Monasca API `_
- for newer versions. This repository is kept only for maintenance purposes.
+This API is deprecated. Last maintained release is OpenStack Train.
+Please use `Monasca API `_
+for newer versions. This repository is kept only for maintenance purposes.
-OpenStack Monasca-Log-Api provides RESTful Api to collect logs
-from the OpenStack cloud.
-
-OpenStack Monasca-Log-Api is distributed under the terms of the Apache
-License, Version 2.0. The full terms and conditions of this
-license are detailed in the LICENSE file.
-
-Api
----
-
-To learn how to use Monasca-Log-Api, consult the documentation
-available online at:
-
-* `Api Guide `_
-* `Api Ref `_
-
-For more information on OpenStack Apis, SDKs and CLIs,
-please see:
-
-* `OpenStack Application Development `_
-* `OpenStack Developer Documentation `_
-
-Developers
-----------
-
-For information on how to contribute to Monasca-Log-Api, please see the
-contents of the CONTRIBUTING.rst.
-
-Any new code must follow the development guidelines detailed
-in the HACKING.rst file, and pass all unit tests as well as linters.
-
-Further developer focused documentation is available at:
-
-* `Monasca-Log-Api `_
-
-Operators
----------
-
-To learn how to deploy and configure OpenStack Monasca-Log-Api, consult the
-documentation available online at:
-
-* `Installation `_
-* `Configuration `_
-
-Bug tracking
-------------
-
-In the unfortunate event that bugs are discovered, they should
-be reported to the appropriate bug tracker. If you obtained
-the software from a 3rd party operating system vendor, it is
-often wise to use their own bug tracker for reporting problems.
-In all other cases use the master OpenStack bug tracker,
-available at:
-
-* `Storyboard `_
+For any further questions, please email
+openstack-discuss@lists.openstack.org or join #openstack-monasca on
+Freenode.
diff --git a/api-guide/source/conf.py b/api-guide/source/conf.py
deleted file mode 100644
index ca432ea1..00000000
--- a/api-guide/source/conf.py
+++ /dev/null
@@ -1,252 +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 = [
- '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 = 'openstack/monasca-log-api'
-openstackdocs_auto_name = False
-project = 'Monasca Log API Guide'
-openstackdocs_bug_project = 'monasca-log-api'
-openstackdocs_bug_tag = 'api-guide'
-copyright = '2014, 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'
-
-# 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 = {}
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-html_short_title = 'API Guide'
-
-# 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 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 = 'monascalogapi-api-guide'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- # 'preamble': '',
-}
-
-# 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 = [
- ('index', 'MonascaLogApiAPI.tex', u'Key Manager API Documentation',
- u'OpenStack Foundation', '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 manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'monascalogapiapi', u'Monasca Log API Documentation',
- [u'OpenStack Foundation'], 1)
-]
-
-# If true, show URL addresses after external links.
-# man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- ('index', 'MonascaLogApiAPIGuide', u'Monasca Log API Guide',
- u'OpenStack Foundation', 'APIGuide',
- 'This guide teaches OpenStack Monasca Log service users concepts about '
- 'managing keys in an OpenStack cloud with the Monasca Log API.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-# texinfo_appendices = []
-
-# If false, no module index is generated.
-# texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-# texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-# texinfo_no_detailmenu = False
-
-# -- Options for Internationalization output ------------------------------
-locale_dirs = ['locale/']
-
-# -- Options for PDF output --------------------------------------------------
-
-pdf_documents = [
- ('index', u'MonascaLogApiAPIGuide', u'Key Manager API Guide', u'OpenStack '
- 'contributors')
-]
diff --git a/api-guide/source/general_info.rst b/api-guide/source/general_info.rst
deleted file mode 100644
index ae6cad6a..00000000
--- a/api-guide/source/general_info.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-..
- Copyright 2014-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.
-
-========================
-Monasca Log API Concepts
-========================
-
-The Monasca Log API is defined as a RESTful HTTP service. The API
-takes advantage of all aspects of the HTTP protocol (methods, URIs,
-media types, response codes, etc.) and providers are free to use
-existing features of the protocol such as caching, persistent
-connections, and content compression among others.
-
-Providers can return information identifying requests in HTTP response
-headers, for example, to facilitate communication between the provider
-and client applications.
-
-Monasca LOG is a service that provides log collection capabilities over cloud.
-
-User Concepts
-=============
-
-To use the Monasca Log API effectively, you should understand several
-key concepts:
-
-- **Log**
-
-- **Dimensions**
-
-Relationship with Metric API
-============================
-
-The Monasca Log API follow similar concept as Monasca Metric API.
-Both are using the same meta-like language to describie entities that are
-sent over wire. Below list enumerates those meta properties:
-
-- dimensions
-- meta_value
diff --git a/api-guide/source/index.rst b/api-guide/source/index.rst
deleted file mode 100644
index 111fef95..00000000
--- a/api-guide/source/index.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-..
- Copyright 2014-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.
-
-===============
-Monasca Log API
-===============
-
-The monasca-log-api project has a RESTful HTTP service called the
-Monasca Log API. Through this API users are able to send logs from entire
-cloud.
-
-This guide covers the concepts in the Monasca Log API.
-For a full reference listing, please see:
-`Monasca Log API Reference `__.
-
-We welcome feedback, comments, and bug reports at
-`storyboard/monasca `__.
-
-Intended audience
-=================
-
-This guide assists software developers who want to develop applications
-using the Monasca Log API. To use this information, you should
-have access to an account from an OpenStack Compute provider, or have
-access to your own deployment, and you should also be familiar with the
-following concepts:
-
-* Monasca services
-* RESTful HTTP services
-* HTTP/1.1
-* JSON data serialization formats
-
-End User and Operator APIs
-==========================
-
-The Log API includes all end user and operator API calls.
-The API works with keystone and, at the monent, uses custom RBAC to
-enforce API security.
-
-API Versions
-============
-
-Following the Newton release, every Nova deployment should have
-the following endpoints:
-
-* / - list of available versions
-* /v2.0 - the first version, permitted only single log to be send per request
-* /v3.0 - the next version, allows sending multiple logs at once
-
-Contents
-========
-
-.. toctree::
- :maxdepth: 2
-
- general_info
- logs
-
diff --git a/api-guide/source/logs.rst b/api-guide/source/logs.rst
deleted file mode 100644
index db0306f7..00000000
--- a/api-guide/source/logs.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-..
- Copyright 2014-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.
-
-====
-Logs
-====
diff --git a/api-ref/source/conf.py b/api-ref/source/conf.py
deleted file mode 100644
index a056160b..00000000
--- a/api-ref/source/conf.py
+++ /dev/null
@@ -1,247 +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 = 'openstack/monasca-log-api'
-openstackdocs_auto_name = False
-project = 'Monasca Log Ref Guide'
-openstackdocs_bug_project = 'monasca-log-api'
-openstackdocs_bug_tag = 'api-ref'
-copyright = '2014, 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 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 = 'monascalogapi-api-ref'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- # 'preamble': '',
-}
-
-# 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, 'MonascaLogApi.tex', u'Monasca Log API Documentation',
- u'OpenStack Foundation', '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 manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'monascalogapi', u'Monasca Log API Documentation',
- [u'OpenStack Foundation'], 1)
-]
-
-# If true, show URL addresses after external links.
-# man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'MonascaLogAPI', u'Monasca Log API Documentation',
- u'OpenStack Foundation', 'MonascaLogAPI', 'Monasca Log API',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-# texinfo_appendices = []
-
-# If false, no module index is generated.
-# texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-# texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-# texinfo_no_detailmenu = False
-
-# -- Options for Internationalization output ------------------------------
-locale_dirs = ['locale/']
diff --git a/api-ref/source/healthcheck.inc b/api-ref/source/healthcheck.inc
deleted file mode 100644
index b1bfdb36..00000000
--- a/api-ref/source/healthcheck.inc
+++ /dev/null
@@ -1,54 +0,0 @@
-.. -*- rst -*-
-..
- 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.
-
-===========
-Healthcheck
-===========
-
-The *Monasca Log API* comes with a built-in health check mechanism.
-It is available in two flavors (simple and complex).
-
-Simple check
-============
-
-The simple check only returns response only if API is up
-and running. It does not return any data because it is accessible only
-for ```HEAD``` requests.
-
-.. rest_method:: HEAD /healthcheck
-
-.. rest_status_code:: success http_codes.yaml
-
- - 204: la_up
-
-Complex check
-=============
-
-# TODO(trebskit) add note to api-guide about peripheral checks
-
-The complex check not only returns a response with success code if API
-is up and running but it also verifies if peripheral components are
-in expected condition.
-
-.. rest_method:: GET /healthcheck
-
-.. rest_status_code:: success http_codes.yaml
-
- - 200: la_up
-
-.. rest_status_code:: error http_codes.yaml
-
- - 503: no_health
diff --git a/api-ref/source/http_codes.yaml b/api-ref/source/http_codes.yaml
deleted file mode 100644
index 9e12b04b..00000000
--- a/api-ref/source/http_codes.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 2017 Fujitsu LIMITED
-
-200:
- la_up: |
- API is up and running.
-204:
- default: |
- Normal response code, everything went as expected (or even better).
- la_up: |
- API is up and running.
-400:
- default: |
- Sent data was malformed.
-401:
- default: |
- User must authenticate before making a request.
-403:
- default: |
- Policy does not allow current user to do this operation.
-411:
- default: |
- Content-Length header was not found in request.
-413:
- default: |
- Sent body is too large to be processed.
-422:
- default: |
- Send data could not be processed properly.
- no_dims: |
- Dimensions are required.
- dim_name_too_long: |
- Dimension name {name} must be 255 characters or less.
- dim_name_underscore: |
- Dimension name {name} cannot start with underscore (_).
- dim_name_forbidden_chars: |
- Dimension name {name} may not contain: "> < = { } ( ) \' " , ; &".
- dim_name_empty: |
- Dimension name cannot be empty.
- dim_value_too_long: |
- Dimension value {value} must be 255 characters or less.
- dim_value_empty: |
- Dimension value cannot be empty.
- app_type_too_long: |
- Application type {type} must be {length} characters or less.
- log_no_msg: |
- Log property must have message.
- bad_envelope: |
- Failed to create an envelope.
-
-503:
- default: |
- The server is currently unable to handle the request due to a
- temporary overload or scheduled maintenance.
- This will likely be alleviated after some delay.
- no_health:
- API is running but there are problems with peripheral components.
diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst
deleted file mode 100644
index 807149a7..00000000
--- a/api-ref/source/index.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-:tocdepth: 2
-
-..
- Copyright 2014-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.
-
-========================
-Monasca Log Service APIs
-========================
-
-.. rest_expand_all::
-
-.. include:: logs.inc
-.. include:: version.inc
-.. include:: healthcheck.inc
-
-===============
-Deprecated APIs
-===============
-
-This section contains the reference for APIs that are
-depracted in the Monasca Log Service
-
-.. include:: log.inc
diff --git a/api-ref/source/locale/.gitkeep b/api-ref/source/locale/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/api-ref/source/log.inc b/api-ref/source/log.inc
deleted file mode 100644
index 881ffab5..00000000
--- a/api-ref/source/log.inc
+++ /dev/null
@@ -1,73 +0,0 @@
-.. -*- rst -*-
-..
- 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.
-
-====
-Log
-====
-
-Accepts just a single log entry sent from log-agent of another client.
-Can work with logs specified as json (application/json) and text (text/plain)
-
-Send logs
-=========
-
-.. rest_method:: POST /v2.0/log/single
-
-Accepts single log entry.
-
-.. rest_status_code:: success http_codes.yaml
-
- - 204
-
-.. rest_status_code:: error http_codes.yaml
-
- - 422: no_dims
- - 422: app_type_too_long
- - 422: dim_name_too_long
- - 422: dim_name_underscore
- - 422: dim_name_forbidden_chars
- - 422: dim_name_empty
- - 422: dim_value_too_long
- - 422: dim_value_empty
- - 422: log_no_msg
- - 422: bad_envelope
- - 503
-
-Request
--------
-
- .. rest_parameters:: parameters.yaml
-
- - log_json: log_json
- - log_text: log_text
- - X_Dimensions: X_Dimensions
- - X_Application_Type: X_Application_Type
-
-**Example 1: Simple request with single log (json)**
-
-.. literalinclude:: ../../doc/api_samples/v2/req_json.json
- :language: javascript
-
-**Example 2: Simple request with single log (text)**
-
-.. literalinclude:: ../../doc/api_samples/v2/req_text.txt
- :language: text
-
-
-Response
---------
-
-No body content is returned on a successful POST
diff --git a/api-ref/source/logs.inc b/api-ref/source/logs.inc
deleted file mode 100644
index 5b47d07d..00000000
--- a/api-ref/source/logs.inc
+++ /dev/null
@@ -1,75 +0,0 @@
-.. -*- rst -*-
-..
- 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.
-
-====
-Logs
-====
-
-Accepts logs send from log-agents. Logs are basically raw lines,
-as collected from physical resources, enriched with dimensions.
-
-Send logs
-=========
-
-.. rest_method:: POST /v3.0/logs
-
-Accepts multiple logs (i.e. bulk mode). Each log can be enriched with set
-of dimensions. If necessary some of the dimensions can be specified as global
-dimensions (that is particularly useful, to make request smaller,
-if there is a lot of duplicates among each log entry dimensions)
-
-.. rest_status_code:: success http_codes.yaml
-
- - 204
-
-.. rest_status_code:: error http_codes.yaml
-
- - 400
- - 401
- - 403
- - 411
- - 413
- - 422: log_no_msg
- - 422: bad_envelope
- - 503
-
-Request
--------
-
- .. rest_parameters:: parameters.yaml
-
- - dimensions: dimensions
- - logs: logs
-
-**Example 1: Simple request with single log**
-
-.. literalinclude:: ../../doc/api_samples/v3/req_single_log.json
- :language: javascript
-
-**Example 2: Send multiple logs at once**
-
-.. literalinclude:: ../../doc/api_samples/v3/req_multiple_logs.json
- :language: javascript
-
-**Example 3: Specify global dimensions for each log entry**
-
-.. literalinclude:: ../../doc/api_samples/v3/req_global_dims.json
- :language: javascript
-
-Response
---------
-
-No body content is returned on a successful POST
diff --git a/api-ref/source/parameters.yaml b/api-ref/source/parameters.yaml
deleted file mode 100644
index dc9038ca..00000000
--- a/api-ref/source/parameters.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 2017 Fujitsu LIMITED
-
-# header params
-X_Application_Type:
- description: |
- A single string value representing the application that has generated
- given log entry
- in: header
- required: true
- required: true
- type: string
- min_version: 2.0
-X_Dimensions:
- description: |
- A dictionary consisting of (key, value) pairs used to uniquely
- identify a log.
- in: header
- required: true
- type: dict
- min_version: 2.0
-
-# body params
-dimensions:
- description: |
- Dimensions sent in request body are known as global dimensions.
- Each dimension applies to each log entry sent in a bulk request.
- Dimensions are simple map (thus having key-value structure).
- in: body
- required: false
- type: object
- min_version: 3.0
-log_json:
- description: |
- Single log entry specified as application/json
- in: body
- required: true
- type: object
-log_text:
- description: |
- Single log entry specified as text/plain
- in: body
- required: true
- type: string
-logs:
- description: |
- Array containing each log entry, sent in bulk request.
- in: body
- required: true
- type: object
- min_version: 3.0
diff --git a/api-ref/source/version.inc b/api-ref/source/version.inc
deleted file mode 100644
index 6bce887e..00000000
--- a/api-ref/source/version.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-.. -*- rst -*-
-..
- 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.
-
-=======
-Version
-=======
diff --git a/config-generator/README.md b/config-generator/README.md
deleted file mode 100644
index 477d8a36..00000000
--- a/config-generator/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# config-generator
-
-To generate sample configuration execute
-
-```sh
-tox -e genconfig
-```
-
-To generate the sample policies execute
-
-```sh
-tox -e genpolicy
-```
diff --git a/config-generator/monasca-log-api.conf b/config-generator/monasca-log-api.conf
deleted file mode 100644
index b946a254..00000000
--- a/config-generator/monasca-log-api.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[DEFAULT]
-output_file = etc/monasca/monasca-log-api.conf.sample
-wrap_width = 79
-format = ini
-summarize = True
-namespace = monasca_log_api
-namespace = oslo.log
-namespace = oslo.policy
diff --git a/config-generator/policy.conf b/config-generator/policy.conf
deleted file mode 100644
index 075c2b99..00000000
--- a/config-generator/policy.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[DEFAULT]
-output_file = etc/monasca/log-api.policy.yaml.sample
-format = yaml
-namespace = monasca_log_api
\ No newline at end of file
diff --git a/contrib/post_test_hook.sh b/contrib/post_test_hook.sh
deleted file mode 100644
index b41cc929..00000000
--- a/contrib/post_test_hook.sh
+++ /dev/null
@@ -1,103 +0,0 @@
-#
-# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
-# (C) 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.
-
-# Sleep some time until all services are starting
-sleep 6
-
-function load_devstack_utilities {
- source $BASE/new/devstack/stackrc
- source $BASE/new/devstack/functions
- source $BASE/new/devstack/openrc admin admin
-
- # print OS_ variables
- env | grep OS_
-}
-
-function setup_monasca_log {
- local constraints="-c $REQUIREMENTS_DIR/upper-constraints.txt"
-
- pushd $TEMPEST_DIR
- sudo -EH pip install $constraints -r requirements.txt -r test-requirements.txt
- popd;
-
- pushd $MONASCA_LOG_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
- iniset $conf_file identity region $OS_REGION_NAME
-
- # NOTE(trebskit) we're processing a lot here, increase http timeout
- iniset $conf_file identity-feature-enabled http_timeout 120
-
- # 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
- iniset $conf_file auth tempest_roles monasca-user
-
- # set monitoring section
- iniset $conf_file monitoring kibana_version 4.6.3
-}
-
-function function_exists {
- declare -f -F $1 > /dev/null
-}
-
-if ! function_exists echo_summary; then
- function echo_summary {
- echo $@
- }
-fi
-
-echo_summary "monasca-log's post_test_hook.sh was called..."
-(set -o posix; set)
-
-# save ref to monasca-api dir
-export MONASCA_LOG_API_DIR="$BASE/new/monasca-log-api"
-export TEMPEST_DIR="$BASE/new/tempest"
-
-sudo chown -R "${USER}":stack $MONASCA_LOG_API_DIR
-sudo chown -R "${USER}":stack $TEMPEST_DIR
-
-load_devstack_utilities
-setup_monasca_log
-set_tempest_conf
diff --git a/devstack/README.md b/devstack/README.md
deleted file mode 100644
index d6bd2b5f..00000000
--- a/devstack/README.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# Monasca Log Management DevStack Plugin
-
-The Monasca Log Management DevStack plugin currently only works on Ubuntu 14.04 (Trusty).
-More Linux Distributions will be supported in the future.
-
-Monasca Log Management Devstack plugin requires Monasca Devstack plugin.
-Running the Monasca DevStack plugin and Monasca Log Management Devstack plugin requires a machine with 14GB of RAM.
-
-Directions for installing and running Devstack can be found here:
-```
-https://docs.openstack.org/devstack/latest/
-```
-
-To run Monasca Log Management 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.
-
-```
-[[local|localrc]]
-MYSQL_PASSWORD=secretmysql
-DATABASE_PASSWORD=secretdatabase
-RABBIT_PASSWORD=secretrabbit
-ADMIN_PASSWORD=secretadmin
-SERVICE_PASSWORD=secretservice
-SERVICE_TOKEN=111222333444
-
-LOGFILE=$DEST/logs/stack.sh.log
-LOGDIR=$DEST/logs
-LOG_COLOR=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 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 Vertica.
-MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
-# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
-
-# This line will enable all of Monasca.
-enable_plugin monasca-api https://opendev.org/openstack/monasca-api
-enable_plugin monasca-log-api https://opendev.org/openstack/monasca-log-api.git
-```
-
-3. Run './stack.sh' from the root of the devstack directory.
-
-
-After finishing the installation, you can find the "Log Management" button on
-"Overview" of "Monitoring" tab, if you log in OpenStack as admin.
-At first time, you need to specify the index pattern and time-field name.
-
-The index name is created as the following format.
- logs-\[mini-mon tenant id\]-YYYY-MM-DD
-For example:
- logs-20c4fbd37a2345dd84266dfc92da7bd1-2016-04-07
-
-Set the value as the above to index pattern.
-Or you can use "\*" as a wild card, like below.
- logs-20c4fbd37a2345dd84266dfc92da7bd1-\*
-
-Select @timestamp as time-field name.
-
-4. Extra settings
-
-## Using WSGI
-
-monasca-log-api can be deployed with Apache using mod_uwsgi.
-By default monasca-log-api by default runs under gunicorn.
-If you wish to use Apache make sure that ```devstack/local.conf```
-contains:
-
-```sh
-MONASCA_LOG_API_USE_MOD_WSGI=True
-```
-
-Actual ```MONASCA_LOG_API_DEPLOY``` value is determined using devstack`s
-```WSGI_MODE``` variable. Nevertheless there are only three possible values,
-that ```MONASCA_LOG_API_DEPLOY``` can take:
-
-* ```gunicorn``` if ```MONASCA_LOG_API_USE_MOD_WSGI=False```
-* ```mod_wsgi``` if ```MONASCA_LOG_API_USE_MOD_WSGI=True && WSGI_MODE="mod_wsgi""```
-* ```uwsgi``` if ```MONASCA_LOG_API_USE_MOD_WSGI=True && WSGI_MODE="uwsgi""```
-
-# Using Vagrant
-
-Vagrant can be used to deploy a VM with Devstack and Monasca Logging
-running in it using the Vagrantfile. After installing Vagrant,
-just run the command `vagrant up` as usual in the `monasca-log-api/devstack`
-directory.
-
-```
-# 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.
-```
diff --git a/devstack/Vagrantfile b/devstack/Vagrantfile
deleted file mode 100644
index a4a0d456..00000000
--- a/devstack/Vagrantfile
+++ /dev/null
@@ -1,123 +0,0 @@
-require 'vagrant.rb'
-Vagrant.configure(2) do |config|
-
- config.cache.scope = :box if Vagrant.has_plugin?("vagrant-cachier")
- config.timezone.value = :host if Vagrant.has_plugin?('vagrant-timezone')
- if Vagrant.has_plugin?('vagrant-proxyconf')
- config.proxy.http = ENV['http_proxy'] if ENV['http_proxy']
- config.proxy.https = ENV['https_proxy'] if ENV['https_proxy']
- if ENV['no_proxy']
- local_no_proxy = ",192.168.10.6,10.0.2.15"
- config.proxy.no_proxy = ENV['no_proxy'] + local_no_proxy
- end
- end
-
- config.ssh.forward_agent = true
-
- config.vm.hostname = "devstack"
- config.vm.box = "bento/ubuntu-18.04"
- 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
- end
-
- config.vm.provision "shell", privileged: false, inline: <<-SHELL
- sudo apt-get -y install git
-
- if [ $http_proxy ]; then
- git config --global url.https://opendev.org/.insteadOf https://opendev.org/
- sudo git config --global url.https://opendev.org/.insteadOf https://opendev.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 "
-
-
- $host
- true
- $protocol
- $host
- $port
-
-
- " > ./maven_proxy_settings.xml
-
- mkdir ~/.m2
- cp ./maven_proxy_settings.xml ~/.m2/settings.xml
-
- sudo mkdir /root/.m2
- sudo cp ./maven_proxy_settings.xml /root/.m2/settings.xml
- fi
-
- git clone https://opendev.org/openstack/devstack --branch master --depth 1
- cd devstack
- echo '[[local|localrc]]
-
-GIT_DEPTH=1
-DEST=/opt/stack
-USE_VENV=False
-
-SERVICE_HOST=192.168.10.6
-HOST_IP=192.168.10.6
-DATABASE_HOST=192.168.10.6
-MYSQL_HOST=192.168.10.6
-HOST_IP_IFACE=eth1
-
-MYSQL_PASSWORD=secretmysql
-DATABASE_PASSWORD=secretdatabase
-RABBIT_PASSWORD=secretrabbit
-ADMIN_PASSWORD=secretadmin
-SERVICE_PASSWORD=secretservice
-
-LOGFILE=$DEST/logs/stack.sh.log
-LOGDIR=$DEST/logs
-LOG_COLOR=False
-
-disable_all_services
-enable_service zookeeper rabbit mysql key tempest horizon
-
-# Enable more OpenStack services if neccessary:
-# https://github.com/openstack-dev/devstack/blob/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
-
-# 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 two lines to choose either InfluxDB or Vertica.
-# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
-# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-cassandra}
-MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
-
-# Uncomment following line to deploy monasca-log-api with Apache
-# MONASCA_LOG_API_USE_MOD_WSGI=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.git
-enable_plugin monasca-log-api https://opendev.org/openstack/monasca-log-api.git
-
-' > local.conf
- ./stack.sh
- SHELL
-
-end
diff --git a/devstack/files/apache-log-api.template b/devstack/files/apache-log-api.template
deleted file mode 100644
index 946b42d2..00000000
--- a/devstack/files/apache-log-api.template
+++ /dev/null
@@ -1,25 +0,0 @@
-Listen %PUBLICPORT%
-
-
- WSGIDaemonProcess monasca-log-api processes=%APIWORKERS% threads=1 user=%USER% display-name=%{GROUP} %VIRTUALENV%
- WSGIProcessGroup monasca-log-api
- WSGIScriptAlias / %PUBLICWSGI%
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
- = 2.4>
- ErrorLogFormat "%M"
-
- ErrorLog /var/log/%APACHE_NAME%/monasca-log-api.log
- %SSLENGINE%
- %SSLCERTFILE%
- %SSLKEYFILE%
-
-
-Alias /logs %PUBLICWSGI%
-
- SetHandler wsgi-script
- Options +ExecCGI
- WSGIProcessGroup monasca-log-api
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
-
diff --git a/devstack/files/elasticsearch/elasticsearch.yml b/devstack/files/elasticsearch/elasticsearch.yml
deleted file mode 100644
index 6d013bb8..00000000
--- a/devstack/files/elasticsearch/elasticsearch.yml
+++ /dev/null
@@ -1,360 +0,0 @@
-##################### Elasticsearch Configuration Example #####################
-
-# This file contains an overview of various configuration settings,
-# targeted at operations staff. Application developers should
-# consult the guide at .
-#
-# The installation procedure is covered at
-# .
-#
-# Elasticsearch comes with reasonable defaults for most settings,
-# so you can try it out without bothering with configuration.
-#
-# Most of the time, these defaults are just fine for running a production
-# cluster. If you're fine-tuning your cluster, or wondering about the
-# effect of certain configuration option, please _do ask_ on the
-# mailing list or IRC channel [http://elasticsearch.org/community].
-
-# Any element in the configuration can be replaced with environment variables
-# by placing them in ${...} notation. For example:
-#
-#node.rack: ${RACK_ENV_VAR}
-
-# For information on supported formats and syntax for the config file, see
-#
-
-
-################################### Cluster ###################################
-
-# Cluster name identifies your cluster for auto-discovery. If you're running
-# multiple clusters on the same network, make sure you're using unique names.
-#
-cluster.name: monasca_elastic
-
-
-#################################### Node #####################################
-
-# Node names are generated dynamically on startup, so you're relieved
-# from configuring them manually. You can tie this node to a specific name:
-#
-node.name: "devstack"
-
-# Allow this node to be eligible as a master node (enabled by default):
-node.master: true
-
-# Allow this node to store data (enabled by default)
-node.data: true
-
-# You can exploit these settings to design advanced cluster topologies.
-#
-# 1. You want this node to never become a master node, only to hold data.
-# This will be the "workhorse" of your cluster.
-#
-#node.master: false
-#node.data: true
-#
-# 2. You want this node to only serve as a master: to not store any data and
-# to have free resources. This will be the "coordinator" of your cluster.
-#
-#node.master: true
-#node.data: false
-#
-# 3. You want this node to be neither master nor data node, but
-# to act as a "search load balancer" (fetching data from nodes,
-# aggregating results, etc.)
-#
-#node.master: false
-#node.data: false
-
-# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
-# Node Info API [http://localhost:9200/_nodes] or GUI tools
-# such as ,
-# ,
-# and
-# to inspect the cluster state.
-
-# A node can have generic attributes associated with it, which can later be used
-# for customized shard allocation filtering, or allocation awareness. An attribute
-# is a simple key value pair, similar to node.key: value, here is an example:
-#
-#node.rack: rack314
-
-# By default, multiple nodes are allowed to start from the same installation location
-# to disable it, set the following:
-#node.max_local_storage_nodes: 1
-
-
-#################################### Index ####################################
-
-# You can set a number of options (such as shard/replica options, mapping
-# or analyzer definitions, translog settings, ...) for indices globally,
-# in this file.
-#
-# Note, that it makes more sense to configure index settings specifically for
-# a certain index, either when creating it or by using the index templates API.
-#
-# See and
-#
-# for more information.
-
-# Set the number of shards (splits) of an index (5 by default):
-#
-#index.number_of_shards: 5
-
-# Set the number of replicas (additional copies) of an index (1 by default):
-#
-#index.number_of_replicas: 1
-
-# Note, that for development on a local machine, with small indices, it usually
-# makes sense to "disable" the distributed features:
-#
-#index.number_of_shards: 1
-#index.number_of_replicas: 0
-
-# These settings directly affect the performance of index and search operations
-# in your cluster. Assuming you have enough machines to hold shards and
-# replicas, the rule of thumb is:
-#
-# 1. Having more *shards* enhances the _indexing_ performance and allows to
-# _distribute_ a big index across machines.
-# 2. Having more *replicas* enhances the _search_ performance and improves the
-# cluster _availability_.
-#
-# The "number_of_shards" is a one-time setting for an index.
-#
-# The "number_of_replicas" can be increased or decreased anytime,
-# by using the Index Update Settings API.
-#
-# Elasticsearch takes care about load balancing, relocating, gathering the
-# results from nodes, etc. Experiment with different settings to fine-tune
-# your setup.
-
-# Use the Index Status API () to inspect
-# the index status.
-
-
-#################################### Paths ####################################
-
-# Path to directory where to store index data allocated for this node.
-path.data: %ES_DATA_DIR%
-
-# Path to log files:
-path.logs: %ES_LOG_DIR%
-
-# Path to where plugins are installed:
-#path.plugins: /path/to/plugins
-
-# Path to temporary files
-#path.work: /path/to/work
-
-# Path to directory containing configuration (this file and logging.yml):
-#path.conf: /path/to/conf
-
-
-#################################### Plugin ###################################
-
-# If a plugin listed here is not installed for current node, the node will not start.
-#
-#plugin.mandatory: mapper-attachments,lang-groovy
-
-
-################################### Memory ####################################
-
-# Elasticsearch performs poorly when JVM starts swapping: you should ensure that
-# it _never_ swaps.
-#
-# Set this property to true to lock the memory:
-#
-#bootstrap.mlockall: true
-
-# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
-# to the same value, and that the machine has enough memory to allocate
-# for Elasticsearch, leaving enough memory for the operating system itself.
-#
-# You should also make sure that the Elasticsearch process is allowed to lock
-# the memory, eg. by using `ulimit -l unlimited`.
-
-
-############################## Network And HTTP ###############################
-
-# Elasticsearch, by default, binds itself to the 0.0.0.0 address, and listens
-# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
-# communication. (the range means that if the port is busy, it will automatically
-# try the next port).
-
-# Set the bind address specifically (IPv4 or IPv6):
-network.bind_host: %ES_SERVICE_BIND_HOST%
-
-# Set the address other nodes will use to communicate with this node. If not
-# set, it is automatically derived. It must point to an actual IP address.
-network.publish_host: %ES_SERVICE_PUBLISH_HOST%
-
-# Set a custom port for the node to node communication (9300 by default):
-transport.tcp.port: %ES_SERVICE_PUBLISH_PORT%
-
-# Enable compression for all communication between nodes (disabled by default):
-#
-#transport.tcp.compress: true
-
-# Set a custom port to listen for HTTP traffic:
-#
-http.port: %ES_SERVICE_BIND_PORT%
-
-# Set a custom allowed content length:
-#
-#http.max_content_length: 100mb
-
-# Disable HTTP completely:
-#
-#http.enabled: false
-
-
-################################### Gateway ###################################
-
-# The gateway allows for persisting the cluster state between full cluster
-# restarts. Every change to the state (such as adding an index) will be stored
-# in the gateway, and when the cluster starts up for the first time,
-# it will read its state from the gateway.
-
-# There are several types of gateway implementations. For more information, see
-# .
-
-# The default gateway type is the "local" gateway (recommended):
-#
-#gateway.type: local
-
-# Settings below control how and when to start the initial recovery process on
-# a full cluster restart (to reuse as much local data as possible when using shared
-# gateway).
-
-# Allow recovery process after N nodes in a cluster are up:
-#
-#gateway.recover_after_nodes: 1
-# Set the timeout to initiate the recovery process, once the N nodes
-# from previous setting are up (accepts time value):
-#
-#gateway.recover_after_time: 5m
-
-# Set how many nodes are expected in this cluster. Once these N nodes
-# are up (and recover_after_nodes is met), begin recovery process immediately
-# (without waiting for recover_after_time to expire):
-#
-#gateway.expected_nodes: 2
-
-
-############################# Recovery Throttling #############################
-
-# These settings allow to control the process of shards allocation between
-# nodes during initial recovery, replica allocation, rebalancing,
-# or when adding and removing nodes.
-
-# Set the number of concurrent recoveries happening on a node:
-#
-# 1. During the initial recovery
-#
-#cluster.routing.allocation.node_initial_primaries_recoveries: 4
-#
-# 2. During adding/removing nodes, rebalancing, etc
-#
-#cluster.routing.allocation.node_concurrent_recoveries: 2
-
-# Set to throttle throughput when recovering (eg. 100mb, by default 20mb):
-#
-#indices.recovery.max_bytes_per_sec: 20mb
-
-# Set to limit the number of open concurrent streams when
-# recovering a shard from a peer:
-#
-#indices.recovery.concurrent_streams: 5
-
-
-################################## Discovery ##################################
-
-# Discovery infrastructure ensures nodes can be found within a cluster
-# and master node is elected. Multicast discovery is the default.
-
-# Set to ensure a node sees N other master eligible nodes to be considered
-# operational within the cluster. This should be set to a quorum/majority of
-# the master-eligible nodes in the cluster.
-#
-discovery.zen.minimum_master_nodes: 1
-
-# Set the time to wait for ping responses from other nodes when discovering.
-# Set this option to a higher value on a slow or congested network
-# to minimize discovery failures:
-#
-#discovery.zen.ping.timeout: 3s
-
-# For more information, see
-#
-
-# Unicast discovery allows to explicitly control which nodes will be used
-# to discover the cluster. It can be used when multicast is not present,
-# or to restrict the cluster communication-wise.
-#
-# 1. Disable multicast discovery (enabled by default):
-#
-discovery.zen.ping.multicast.enabled: false
-# 2. Configure an initial list of master nodes in the cluster
-# to perform discovery when new nodes (master or data) are started:
-#
-# discovery.zen.ping.unicast.hosts: [127.0.0.1]
-
-# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
-#
-# You have to install the cloud-aws plugin for enabling the EC2 discovery.
-#
-# For more information, see
-#
-#
-# See
-# for a step-by-step tutorial.
-
-# GCE discovery allows to use Google Compute Engine API in order to perform discovery.
-#
-# You have to install the cloud-gce plugin for enabling the GCE discovery.
-#
-# For more information, see .
-
-# Azure discovery allows to use Azure API in order to perform discovery.
-#
-# You have to install the cloud-azure plugin for enabling the Azure discovery.
-#
-# For more information, see .
-
-################################## Slow Log ##################################
-
-# Shard level query and fetch threshold logging.
-
-#index.search.slowlog.threshold.query.warn: 10s
-#index.search.slowlog.threshold.query.info: 5s
-#index.search.slowlog.threshold.query.debug: 2s
-#index.search.slowlog.threshold.query.trace: 500ms
-
-#index.search.slowlog.threshold.fetch.warn: 1s
-#index.search.slowlog.threshold.fetch.info: 800ms
-#index.search.slowlog.threshold.fetch.debug: 500ms
-#index.search.slowlog.threshold.fetch.trace: 200ms
-
-#index.indexing.slowlog.threshold.index.warn: 10s
-#index.indexing.slowlog.threshold.index.info: 5s
-#index.indexing.slowlog.threshold.index.debug: 2s
-#index.indexing.slowlog.threshold.index.trace: 500ms
-
-################################## GC Logging ################################
-
-#monitor.jvm.gc.young.warn: 1000ms
-#monitor.jvm.gc.young.info: 700ms
-#monitor.jvm.gc.young.debug: 400ms
-
-#monitor.jvm.gc.old.warn: 10s
-#monitor.jvm.gc.old.info: 5s
-#monitor.jvm.gc.old.debug: 2s
-
-################################## Security ################################
-
-# Uncomment if you want to enable JSONP as a valid return transport on the
-# http server. With this enabled, it may pose a security risk, so disabling
-# it unless you need it is recommended (it is disabled by default).
-#
-#http.jsonp.enable: true
diff --git a/devstack/files/grafana/dashboards.d/09-monasca.json b/devstack/files/grafana/dashboards.d/09-monasca.json
deleted file mode 100644
index 84935135..00000000
--- a/devstack/files/grafana/dashboards.d/09-monasca.json
+++ /dev/null
@@ -1,2138 +0,0 @@
-{
- "id": null,
- "title": "Monasca Monitoring",
- "originalTitle": "Monasca Monitoring",
- "tags": [],
- "style": "dark",
- "timezone": "utc",
- "editable": true,
- "hideControls": false,
- "sharedCrosshair": false,
- "rows": [
- {
- "title": "Monasca Health - metrics",
- "height": "100px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "Metrics API",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 19,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "uwsgi"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "0.0,0.2,1.0",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Storm",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 44,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "storm"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Persister",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 21,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "persister"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Metrics DB",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 51,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "http_status",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "influxdb"}]
- }
- ],
- "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)"
- }
- },
- {
- "title": "Notification Engine",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 42,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "monasca-notification"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- }
- ],
- "showTitle": true
- },
- {
- "title": "Monasca Health - Logs",
- "height": "100px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "Log API",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 20,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "log-api"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Log Transformer",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 54,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "log-transformer"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Log Metrics",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 102,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "log-metrics"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Log Persister",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 53,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "log-persister"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Log DB",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 33,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "elasticsearch.cluster_status",
- "condition_filter": true
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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": "8",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "9",
- "op": "=",
- "text": "UP"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Kibana",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 22,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "http_status",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "kibana"}]
- }
- ],
- "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)"
- }
- }
- ],
- "showTitle": true
- },
- {
- "title": "Monasca Health - Common",
- "height": "100px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "Kafka",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 38,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "kafka"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "value": "2",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "3",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "4",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "5",
- "op": "=",
- "text": "UP"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "ZooKeeper",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 48,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "zookeeper"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "MariaDB",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 66,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "mysqld"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- },
- {
- "title": "Statsd",
- "error": false,
- "span": 2,
- "editable": true,
- "type": "singlestat",
- "id": 166,
- "links": [],
- "maxDataPoints": 100,
- "interval": null,
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "monasca-statsd"}]
- }
- ],
- "cacheTimeout": null,
- "format": "none",
- "prefix": "",
- "postfix": "",
- "nullText": null,
- "valueMaps": [
- {
- "value": "1",
- "op": "=",
- "text": "UP"
- },
- {
- "value": "0",
- "op": "=",
- "text": "DOWN"
- },
- {
- "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"
- }
- ],
- "nullPointMode": "connected",
- "valueName": "current",
- "prefixFontSize": "50%",
- "valueFontSize": "80%",
- "postfixFontSize": "50%",
- "thresholds": "-1.0,0.2,0.8",
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "rgba(225, 40, 40, 0.59)",
- "rgba(245, 150, 40, 0.73)",
- "rgba(71, 212, 59, 0.4)"
- ],
- "sparkline": {
- "show": false,
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "fillColor": "rgba(31, 118, 189, 0.18)"
- }
- }
- ],
- "showTitle": true
- },
- {
- "title": "System resources",
- "height": "250px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "CPU usage",
- "error": false,
- "span": 6,
- "editable": true,
- "type": "graph",
- "id": 23,
- "datasource": null,
- "renderer": "flot",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "percent",
- "short"
- ],
- "grid": {
- "leftMax": 100,
- "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": false
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "cpu.percent",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "cpu.user_perc",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "cpu.system_perc",
- "condition_filter": true
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "cpu.wait_perc",
- "condition_filter": true
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- },
- {
- "title": "Memory usage",
- "error": false,
- "span": 6,
- "editable": true,
- "type": "graph",
- "id": 24,
- "datasource": null,
- "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": "connected",
- "steppedLine": false,
- "tooltip": {
- "value_type": "individual",
- "shared": true
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "mem.total_mb",
- "condition_filter": true
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "mem.used_mb",
- "period": "",
- "condition_filter": true
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "mem.swap_total_mb",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "mem.swap_used_mb",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "mem.used_cache",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": [],
- "leftYAxisLabel": "MB"
- },
- {
- "title": "Disk usage",
- "error": false,
- "span": 6,
- "editable": true,
- "type": "graph",
- "id": 25,
- "datasource": null,
- "renderer": "flot",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "percent",
- "short"
- ],
- "grid": {
- "leftMax": 100,
- "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": "disk.space_used_perc",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring",
- "dimensions": [
- {
- "key": "mount_point",
- "value": "/rootfs"
- }
- ]
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- },
- {
- "title": "System load",
- "error": false,
- "span": 6,
- "editable": true,
- "type": "graph",
- "id": 26,
- "datasource": null,
- "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": "connected",
- "steppedLine": false,
- "tooltip": {
- "value_type": "cumulative",
- "shared": true
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "load.avg_1_min",
- "period": "",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "aggregator": "none",
- "column": "value",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring",
- "metric": "load.avg_5_min",
- "period": "300",
- "refId": "B",
- "dimensions": [],
- "error": ""
- },
- {
- "aggregator": "none",
- "column": "value",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring",
- "metric": "load.avg_15_min",
- "period": "300",
- "refId": "C",
- "dimensions": [],
- "error": ""
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- }
- ],
- "showTitle": true
- },
- {
- "title": "Network Monitoring",
- "height": "250px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "Network usage",
- "error": false,
- "span": 6,
- "editable": true,
- "type": "graph",
- "id": 61,
- "datasource": null,
- "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,
- "dimensions": "",
- "period": "",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- },
- {
- "target": "",
- "aggregator": "none",
- "column": "value",
- "metric": "net.out_bytes_sec",
- "merge": true,
- "dimensions": "",
- "period": "",
- "condition_filter": true,
- "condition_key": "service",
- "condition_value": "monitoring"
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- }
- ],
- "showTitle": true
- },
- {
- "title": "Kafka",
- "height": "250px",
- "editable": true,
- "collapse": false,
- "panels": [
- {
- "title": "CPU usage",
- "error": false,
- "span": 4,
- "editable": true,
- "type": "graph",
- "id": 60,
- "datasource": null,
- "renderer": "flot",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "percent",
- "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": "process.cpu_perc",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "kafka"}]
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- },
- {
- "title": "Allocated memory",
- "error": false,
- "span": 4,
- "editable": true,
- "type": "graph",
- "id": 59,
- "datasource": null,
- "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": "connected",
- "steppedLine": false,
- "tooltip": {
- "value_type": "cumulative",
- "shared": true
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.mem.rss_mbytes",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "kafka"}]
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "leftYAxisLabel": "MB",
- "links": []
- },
- {
- "title": "PID count",
- "error": false,
- "span": 4,
- "editable": true,
- "type": "graph",
- "id": 89,
- "datasource": null,
- "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": "connected",
- "steppedLine": true,
- "tooltip": {
- "value_type": "cumulative",
- "shared": true
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "process.pid_count",
- "condition_filter": true,
- "dimensions": [{"key": "service", "value": "kafka"}]
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- },
- {
- "title": "Consumer lag",
- "error": false,
- "span": 12,
- "editable": true,
- "type": "graph",
- "id": 58,
- "datasource": null,
- "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": "connected",
- "steppedLine": false,
- "tooltip": {
- "value_type": "cumulative",
- "shared": true
- },
- "targets": [
- {
- "aggregator": "none",
- "column": "value",
- "metric": "kafka.consumer_lag",
- "refId": "A",
- "period": "300",
- "dimensions": [
- {
- "key": "consumer_group",
- "value": "$all"
- }
- ],
- "error": ""
- }
- ],
- "aliasColors": {},
- "seriesOverrides": [],
- "links": []
- }
- ],
- "showTitle": true
- },
- {
- "title": "Components",
- "panels": [
- {
- "id": 167,
- "title": "Common",
- "span": 4,
- "type": "dashlist",
- "query": "",
- "limit": 10,
- "tags": [
- "common"
- ],
- "recent": false,
- "search": true,
- "starred": false,
- "headings": false,
- "links": []
- },
- {
- "id": 168,
- "title": "Metrics",
- "span": 4,
- "type": "dashlist",
- "query": "",
- "limit": 10,
- "tags": [
- "metrics"
- ],
- "recent": false,
- "search": true,
- "starred": false,
- "headings": false,
- "links": []
- },
- {
- "headings": false,
- "id": 169,
- "limit": 10,
- "links": [],
- "query": "",
- "recent": false,
- "search": true,
- "span": 4,
- "starred": false,
- "tags": [
- "logs"
- ],
- "title": "Logs",
- "type": "dashlist"
- }
- ]
- }
- ],
- "time": {
- "from": "now-1h",
- "to": "now"
- },
- "templating": {
- "list": [],
- "enable": false
- },
- "annotations": {
- "enable": false,
- "list": []
- },
- "refresh": "30s",
- "version": 6,
- "hideAllLegends": false
-}
diff --git a/devstack/files/grafana/dashboards.d/20-kibana.json b/devstack/files/grafana/dashboards.d/20-kibana.json
deleted file mode 100644
index 712afb00..00000000
--- a/devstack/files/grafana/dashboards.d/20-kibana.json
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/devstack/files/grafana/dashboards.d/21-logapi.json b/devstack/files/grafana/dashboards.d/21-logapi.json
deleted file mode 100644
index 7d6e15ef..00000000
--- a/devstack/files/grafana/dashboards.d/21-logapi.json
+++ /dev/null
@@ -1,624 +0,0 @@
-{
- "id": null,
- "title": "Log API",
- "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-api"
- }
- ],
- "error": "",
- "metric": "process.pid_count",
- "period": "300",
- "refId": "A"
- }
- ],
- "thresholds": "0.2,0.8",
- "title": "Log 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": "log-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": "log-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": "log-api"
- }
- ],
- "error": "",
- "metric": "process.io.read_count",
- "period": "300",
- "refId": "A"
- },
- {
- "aggregator": "avg",
- "dimensions": [
- {
- "key": "process_name",
- "value": "log-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": "log-api"
- }
- ],
- "error": "",
- "metric": "process.io.read_kbytes",
- "period": "300",
- "refId": "A"
- },
- {
- "aggregator": "avg",
- "dimensions": [
- {
- "key": "process_name",
- "value": "log-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": "log-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
- }
- ]
-}
diff --git a/devstack/files/grafana/dashboards.d/22-logtransformer.json b/devstack/files/grafana/dashboards.d/22-logtransformer.json
deleted file mode 100644
index dd9dae5c..00000000
--- a/devstack/files/grafana/dashboards.d/22-logtransformer.json
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/devstack/files/grafana/dashboards.d/23-logtmetrics.json b/devstack/files/grafana/dashboards.d/23-logtmetrics.json
deleted file mode 100644
index eb44a73d..00000000
--- a/devstack/files/grafana/dashboards.d/23-logtmetrics.json
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/devstack/files/grafana/dashboards.d/24-logpersister.json b/devstack/files/grafana/dashboards.d/24-logpersister.json
deleted file mode 100644
index 28a1adec..00000000
--- a/devstack/files/grafana/dashboards.d/24-logpersister.json
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/devstack/files/grafana/grafana.py b/devstack/files/grafana/grafana.py
deleted file mode 100644
index c78d119d..00000000
--- a/devstack/files/grafana/grafana.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env python
-# coding=utf-8
-
-# (C) Copyright 2017 Hewlett Packard Enterprise Development LP
-# (C) Copyright 2018 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.
-
-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': ''}]
-
-DASHBOARDS_DIR = sys.argv[1]
-
-
-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()
-
-
-def create_dashboard_payload(json_path):
- with open(json_path, 'r') as f:
- dashboard = json.load(f)
- dashboard['id'] = None
-
- return {
- 'dashboard': dashboard,
- 'overwrite': True
- }
-
-
-def main():
- for user in create_login_payload():
- logging.info('Opening a Grafana session...')
- session = Session()
- login(session, user)
-
- 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()
diff --git a/devstack/files/kibana/kibana.yml b/devstack/files/kibana/kibana.yml
deleted file mode 100644
index 0f7b02b4..00000000
--- a/devstack/files/kibana/kibana.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-# Kibana is served by a back end server. This controls which port to use.
-server.port: %KIBANA_SERVICE_PORT%
-
-# The host to bind the server to.
-server.host: %KIBANA_SERVICE_HOST%
-
-# If you are running kibana behind a proxy, and want to mount it at a path,
-# specify that path here. The basePath can't end in a slash.
-server.basePath: /dashboard/monitoring/logs_proxy
-
-# The Elasticsearch instance to use for all your queries.
-elasticsearch.url: http://%ES_SERVICE_BIND_HOST%:%ES_SERVICE_BIND_PORT%
-
-# preserve_elasticsearch_host true will send the hostname specified in `elasticsearch`. If you set it to false,
-# then the host you use to connect to *this* Kibana instance will be sent.
-elasticsearch.preserveHost: True
-
-# Kibana uses an index in Elasticsearch to store saved searches, visualizations
-# and dashboards. It will create a new index if it doesn't already exist.
-kibana.index: ".kibana"
-
-# The default application to load.
-kibana.defaultAppId: "discover"
-
-# If your Elasticsearch is protected with basic auth, these are the user credentials
-# used by the Kibana server to perform maintenance on the kibana_index at startup. Your Kibana
-# users will still need to authenticate with Elasticsearch (which is proxied through
-# the Kibana server)
-# elasticsearch.username: "user"
-# elasticsearch.password: "pass"
-
-# SSL for outgoing requests from the Kibana Server to the browser (PEM formatted)
-# server.ssl.cert: /path/to/your/server.crt
-# server.ssl.key: /path/to/your/server.key
-
-# Optional setting to validate that your Elasticsearch backend uses the same key files (PEM formatted)
-# elasticsearch.ssl.cert: /path/to/your/client.crt
-# elasticsearch.ssl.key: /path/to/your/client.key
-
-# If you need to provide a CA certificate for your Elasticsearch instance, put
-# the path of the pem file here.
-# elasticsearch.ssl.ca: /path/to/your/CA.pem
-
-# Set to false to have a complete disregard for the validity of the SSL
-# certificate.
-# elasticsearch.ssl.verify: true
-
-# Time in milliseconds to wait for elasticsearch to respond to pings, defaults to
-# request_timeout setting
-elasticsearch.pingTimeout: 1500
-
-# Time in milliseconds to wait for responses from the back end or elasticsearch.
-# This must be > 0
-elasticsearch.requestTimeout: 300000
-
-# 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
-
-# Set the path to where you would like the process id file to be created.
-# pid.file: /var/run/kibana.pid
-
-# Set this to true to suppress all logging output.
-logging.silent: false
-# Set this to true to suppress all logging output except for error messages.
-logging.quiet: false
-# Set this to true to log all events, including system usage information and all requests.
-logging.verbose: true
-
-# monasca-kibana-plugin configuration
-monasca-kibana-plugin.auth_uri: %KEYSTONE_AUTH_URI%
-monasca-kibana-plugin.enabled: True
-monasca-kibana-plugin.cookie.isSecure: False
-
-optimize.useBundleCache: False
diff --git a/devstack/files/monasca-agent/elastic.yaml b/devstack/files/monasca-agent/elastic.yaml
deleted file mode 100644
index 269fdae7..00000000
--- a/devstack/files/monasca-agent/elastic.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-init_config:
-instances:
-- url: http://{{IP}}:9200
diff --git a/devstack/files/monasca-agent/http_check.yaml b/devstack/files/monasca-agent/http_check.yaml
deleted file mode 100644
index 97424e55..00000000
--- a/devstack/files/monasca-agent/http_check.yaml
+++ /dev/null
@@ -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/status
diff --git a/devstack/files/monasca-agent/process.yaml b/devstack/files/monasca-agent/process.yaml
deleted file mode 100644
index d8878bbd..00000000
--- a/devstack/files/monasca-agent/process.yaml
+++ /dev/null
@@ -1,143 +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
-- name: logspout
- detailed: true
- dimensions:
- service: logspout
- exact_match: false
- search_string:
- - logspout
-- name: log-agent
- detailed: true
- dimensions:
- service: log-agent
- exact_match: false
- search_string:
- - log-agent
-- name: log-api
- detailed: true
- dimensions:
- service: log-api
- exact_match: false
- search_string:
- - log-api
-- name: kibana
- detailed: true
- dimensions:
- service: kibana
- exact_match: false
- search_string:
- - kibana
-- name: elasticsearch
- detailed: true
- dimensions:
- service: elasticsearch
- exact_match: false
- search_string:
- - elasticsearch
-- name: log-transformer
- detailed: true
- dimensions:
- service: log-transformer
- exact_match: false
- search_string:
- - log-transformer
-- name: log-persister
- detailed: true
- dimensions:
- service: log-persister
- exact_match: false
- search_string:
- - log-persister
-- name: log-metrics
- detailed: true
- dimensions:
- service: log-metrics
- exact_match: false
- search_string:
- - log-metrics
diff --git a/devstack/files/monasca-log-agent/agent.conf b/devstack/files/monasca-log-agent/agent.conf
deleted file mode 100644
index 956fae94..00000000
--- a/devstack/files/monasca-log-agent/agent.conf
+++ /dev/null
@@ -1,47 +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"]
- }
-}
-
-filter {
- if "syslog" in [tags] {
- multiline {
- negate => "true"
- pattern => "^%{SYSLOGTIMESTAMP}"
- what => "previous"
- }
- }
-}
-
-# TODO(trebskit) should use own user for log-agent
-output {
- monasca_log_api {
- monasca_log_api_url => "%MONASCA_LOG_API_URI_V3%"
- keystone_api_url => "%KEYSTONE_AUTH_URI_V3%"
- project_name => "mini-mon"
- username => "monasca-agent"
- password => "password"
- user_domain_name => "default"
- project_domain_name => "default"
- dimensions => [ "hostname:devstack" ]
- }
-}
diff --git a/devstack/files/monasca-log-metrics/log-metrics.conf b/devstack/files/monasca-log-metrics/log-metrics.conf
deleted file mode 100644
index b0bb5990..00000000
--- a/devstack/files/monasca-log-metrics/log-metrics.conf
+++ /dev/null
@@ -1,81 +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 {
- zk_connect => "127.0.0.1:2181"
- topic_id => "transformed-log"
- group_id => "log-metric"
- consumer_id => "monasca_log_metrics"
- consumer_threads => "4"
- }
-}
-
-
-filter {
-
- # drop logs that have not set log level
- if "level" not in [log] {
- drop { periodic_flush => true }
- } else {
- ruby {
- code => "
- log_level = event['log']['level'].downcase
- event['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['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['log']['dimensions']
- metric['value_meta'] = {}
-
- event['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"
- }
-}
diff --git a/devstack/files/monasca-log-persister/persister.conf b/devstack/files/monasca-log-persister/persister.conf
deleted file mode 100644
index c0f581e3..00000000
--- a/devstack/files/monasca-log-persister/persister.conf
+++ /dev/null
@@ -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 {
- zk_connect => "127.0.0.1:2181"
- topic_id => "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]" => "^(?\d{4}-\d{2}-\d{2})"
- }
- }
-
- if "dimensions" in [log] {
- ruby {
- code => "
- fieldHash = event['log']['dimensions']
- fieldHash.each do |key, value|
- event[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%"]
- flush_size => 500
- }
-}
diff --git a/devstack/files/monasca-log-transformer/transformer.conf b/devstack/files/monasca-log-transformer/transformer.conf
deleted file mode 100644
index 0e2f7c7f..00000000
--- a/devstack/files/monasca-log-transformer/transformer.conf
+++ /dev/null
@@ -1,87 +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 {
- zk_connect => "127.0.0.1:2181"
- topic_id => "log"
- group_id => "transformer-logstash-consumer"
- }
-}
-
-filter {
- ruby {
- code => "event['message_tmp'] = event['log']['message'][0..49]"
- }
- grok {
- match => {
- "[message_tmp]" => "(?i)(?AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?\d{2})"
- }
- }
- if ! [log_level] {
- grok {
- match => {
- "[log][message]" => "(?i)(?AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?\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['log_level']
- # keep original value
- log_level = event['log_level'].downcase
- if LOG_LEVELS_MAP.has_key?(log_level)
- event['log_level_original'] = event['log_level']
- event['log_level'] = LOG_LEVELS_MAP[log_level]
- else
- event['log_level'] = log_level.capitalize
- end
- else
- event['log_level'] = 'Unknown'
- end
- "
- }
-
- mutate {
- add_field => {
- "[log][level]" => "%{log_level}"
- }
-
- # remove temporary fields
- remove_field => ["log_level", "message_tmp"]
- }
-}
-
-output {
- kafka {
- bootstrap_servers => "%KAFKA_SERVICE_HOST%:%KAFKA_SERVICE_PORT%"
- topic_id => "transformed-log"
- }
-}
diff --git a/devstack/lib/config.sh b/devstack/lib/config.sh
deleted file mode 100644
index 83064c24..00000000
--- a/devstack/lib/config.sh
+++ /dev/null
@@ -1,107 +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.
-
-# Non configurable settings or settings derived from another settings
-
-_XTRACE_LOG_API_CONFIG=$(set +o | grep xtrace)
-set +o xtrace
-
-if [[ ${USE_VENV} = True ]]; then
- PROJECT_VENV["monasca-log-api"]=${MONASCA_LOG_API_DIR}.venv
- MONASCA_LOG_API_BIN_DIR=${PROJECT_VENV["monasca-log-api"]}/bin
-else
- MONASCA_LOG_API_BIN_DIR=$(get_python_exec_prefix)
-fi
-
-MONASCA_LOG_API_WSGI=$MONASCA_LOG_API_BIN_DIR/monasca-log-api-wsgi
-MONASCA_LOG_API_DEPLOY=`determine_log_api_deploy_mode`
-if is_service_enabled tls-proxy; then
- MONASCA_LOG_API_SERVICE_PROTOCOL="https"
-fi
-if [ "$MONASCA_LOG_API_USE_MOD_WSGI" == "True" ]; then
- MONASCA_LOG_API_BASE_URI=${MONASCA_LOG_API_SERVICE_PROTOCOL}://${MONASCA_LOG_API_SERVICE_HOST}/logs
-else
- MONASCA_LOG_API_BASE_URI=${MONASCA_LOG_API_SERVICE_PROTOCOL}://${MONASCA_LOG_API_SERVICE_HOST}:${MONASCA_LOG_API_SERVICE_PORT}
-fi
-MONASCA_LOG_API_URI_V2=${MONASCA_LOG_API_BASE_URI}/v2.0
-MONASCA_LOG_API_URI_V3=${MONASCA_LOG_API_BASE_URI}/v3.0
-
-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}
-
-MONASCA_LOG_API_USE_MOD_WSGI=${MONASCA_LOG_API_USE_MOD_WSGI:-$ENABLE_HTTPD_MOD_WSGI_SERVICES}
-
-# 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
-
-LOGSTASH_DIR=$DEST/logstash
-
-PLUGIN_FILES=$MONASCA_LOG_API_DIR/devstack/files
-# configuration bits of various services
-
-# Files inside this directory will be visible in gates log
-GATE_CONFIGURATION_DIR=/etc/monasca-log-api
-
-# clone monasca-{common,statsd} directly from repo
-GITREPO["monasca-common"]=${MONASCA_COMMON_REPO}
-GITBRANCH["monasca-common"]=${MONASCA_COMMON_BRANCH}
-GITDIR["monasca-common"]=${MONASCA_COMMON_DIR}
-
-GITREPO["monasca-statsd"]=${MONASCA_STATSD_REPO}
-GITBRANCH["monasca-statsd"]=${MONASCA_STATSD_BRANCH}
-GITDIR["monasca-statsd"]=${MONASCA_STATSD_DIR}
-
-LIBS_FROM_GIT="${LIBS_FROM_GIT:-""},monasca-common,monasca-statsd"
-# clone monasca-{common,statsd} directly from repo
-
-# public facing bits
-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_SERVICE_PORT_INT=${MONASCA_LOG_API_SERVICE_PORT:-15607}
-MONASCA_LOG_API_SERVICE_PROTOCOL=${MONASCA_LOG_API_SERVICE_PROTOCOL:-${SERVICE_PROTOCOL}}
-
-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"}
-
-KAFKA_SERVICE_HOST=${KAFKA_SERVICE_HOST:-${SERVICE_HOST}}
-KAFKA_SERVICE_PORT=${KAFKA_SERVICE_PORT:-9092}
-# public facing bits
-
-${_XTRACE_LOG_API_CONFIG}
diff --git a/devstack/lib/util.sh b/devstack/lib/util.sh
deleted file mode 100644
index b2612964..00000000
--- a/devstack/lib/util.sh
+++ /dev/null
@@ -1,56 +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.
-
-# Set of utility-like methods that are not bound to any particular
-# service
-
-_XTRACE_LOG_API_UTILS=$(set +o | grep xtrace)
-set +o xtrace
-
-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
-}
-
-# MONASCA_LOG_API_DEPLOY defines how monasca-log-api is deployed, allowed values:
-# - mod_wsgi : Run monasca-log-api under Apache HTTPd mod_wsgi
-# - uwsgi : Run monasca-log-api under uwsgi
-# - gunicorn: Run monasca-log-api under gunicorn
-determine_log_api_deploy_mode() {
- MONASCA_LOG_API_USE_MOD_WSGI=$(trueorfalse False MONASCA_LOG_API_USE_MOD_WSGI)
- if [ "$MONASCA_LOG_API_USE_MOD_WSGI" == "True" ]; then
- if [[ "$WSGI_MODE" == "uwsgi" ]]; then
- echo "uwsgi"
- else
- echo "mod_wsgi"
- fi
- else
- echo "gunicorn"
- fi
-}
-
-${_XTRACE_LOG_API_UTILS}
diff --git a/devstack/plugin.sh b/devstack/plugin.sh
deleted file mode 100644
index ff1fcd1d..00000000
--- a/devstack/plugin.sh
+++ /dev/null
@@ -1,862 +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.
-#
-
-# Save trace setting
-_XTRACE_LOG_API=$(set +o | grep xtrace)
-set -o xtrace
-
-_ERREXIT_LOG_API=$(set +o | grep errexit)
-set -o errexit
-
-# source lib/*
-source ${MONASCA_LOG_API_DIR}/devstack/lib/util.sh
-source ${MONASCA_LOG_API_DIR}/devstack/lib/config.sh
-# source lib/*
-
-# TOP_LEVEL functions called from devstack coordinator
-###############################################################################
-function pre_install {
- install_elk
- install_nodejs
- install_gate_config_holder
-}
-
-function install_monasca_log {
- build_kibana_plugin
- if is_service_enabled monasca-log-api; then
- # install_monasca-log-api is not called directly
- # stack_install_service calls it
- if python3_enabled; then
- enable_python3_package monasca-log-api
- fi
- stack_install_service monasca-log-api
- fi
- install_log_agent
-}
-
-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_common {
- if use_library_from_git "monasca-common"; then
- git_clone_by_name "monasca-common"
- setup_dev_lib "monasca-common"
- fi
-}
-
-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
-
- 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
- create_log_management_accounts
-}
-
-function init_monasca_grafana_dashboards {
- if is_service_enabled horizon; then
- echo_summary "Init Grafana dashboards"
-
- sudo python3 "${PLUGIN_FILES}"/grafana/grafana.py "${PLUGIN_FILES}"/grafana/dashboards.d
- fi
-}
-
-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
- start_monasca_log_api
- 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_gate_config_holder
-}
-###############################################################################
-
-function install_monasca-log-api {
- 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_common
- 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_monasca_log_api {
- if is_service_enabled monasca-log-api; then
- echo_summary "Configuring monasca-log-api"
-
- configure_monasca_log_api_core
- if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
- configure_monasca_log_api_mod_wsgi
- elif [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
- configure_monasca_log_api_uwsgi
- fi
-
- # link configuration for the gate
- ln -sf $MONASCA_LOG_API_CONF $GATE_CONFIGURATION_DIR
- ln -sf $MONASCA_LOG_API_PASTE $GATE_CONFIGURATION_DIR
- ln -sf $MONASCA_LOG_API_LOGGING_CONF $GATE_CONFIGURATION_DIR
-
- fi
-}
-
-function configure_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,/v3.0/logs"
- 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 configure_monasca_log_api_uwsgi {
- 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"
-}
-
-function configure_monasca_log_api_mod_wsgi {
- sudo install -d $MONASCA_LOG_API_WSGI_DIR
-
- local monasca_log_api_apache_conf
- monasca_log_api_apache_conf=$(apache_site_config_for monasca-log-api)
-
- local monasca_log_api_ssl=""
- local monasca_log_api_certfile=""
- local monasca_log_api_keyfile=""
- local monasca_log_api_api_port=$MONASCA_LOG_API_SERVICE_PORT
- local venv_path=""
-
- if is_ssl_enabled_service monasca_log_api; then
- monasca_log_api_ssl="SSLEngine On"
- monasca_log_api_certfile="SSLCertificateFile $MONASCA_LOG_API_SSL_CERT"
- monasca_log_api_keyfile="SSLCertificateKeyFile $MONASCA_LOG_API_SSL_KEY"
- fi
- if is_service_enabled tls-proxy; then
- monasca_log_api_api_port=$MONASCA_LOG_API_SERVICE_PORT_INT
- fi
- if [[ ${USE_VENV} = True ]]; then
- venv_path="python-path=${PROJECT_VENV["monasca_log_api"]}/lib/$(python_version)/site-packages"
- fi
-
- # copy proxy vhost and wsgi helper files
- sudo cp $PLUGIN_FILES/apache-log-api.template $monasca_log_api_apache_conf
- sudo sed -e "
- s|%PUBLICPORT%|$monasca_log_api_api_port|g;
- s|%APACHE_NAME%|$APACHE_NAME|g;
- s|%PUBLICWSGI%|$MONASCA_LOG_API_BIN_DIR/monasca-log-api-wsgi|g;
- s|%SSLENGINE%|$monasca_log_api_ssl|g;
- s|%SSLCERTFILE%|$monasca_log_api_certfile|g;
- s|%SSLKEYFILE%|$monasca_log_api_keyfile|g;
- s|%USER%|$STACK_USER|g;
- s|%VIRTUALENV%|$venv_path|g
- s|%APIWORKERS%|$API_WORKERS|g
- " -i $monasca_log_api_apache_conf
-}
-
-function create_log_api_cache_dir {
- sudo install -m 700 -d -o $STACK_USER $MONASCA_LOG_API_CACHE_DIR
-}
-
-function clean_monasca_log_api {
- if is_service_enabled monasca-log-api; then
- echo_summary "Cleaning monasca-log-api"
-
- sudo rm -f $MONASCA_LOG_API_CONF || true
- sudo rm -f $MONASCA_LOG_API_PASTE || true
- sudo rm -f $MONASCA_LOG_API_LOGGING_CONF || true
- sudo rm -rf $MONASCA_LOG_API_CACHE_DIR || true
- sudo rm -rf $MONASCA_LOG_API_CONF_DIR || true
-
- sudo rm -rf $MONASCA_LOG_API_DIR || true
-
- if [ "$MONASCA_LOG_API_USE_MOD_WSGI" == "True" ]; then
- clean_monasca_log_api_wsgi
- fi
- fi
-}
-
-function clean_monasca_log_api_wsgi {
- sudo rm -f $MONASCA_LOG_API_WSGI_DIR/*
- sudo rm -f $(apache_site_config_for monasca-log-api)
-}
-
-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 stop_monasca_log_api {
- if is_service_enabled monasca-log-api; then
- if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
- disable_apache_site monasca-log-api
- restart_apache_server
- else
- stop_process "monasca-log-api"
- if [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
- remove_uwsgi_config "$MONASCA_LOG_API_UWSGI_CONF" "$MONASCA_LOG_API_WSGI"
- fi
- fi
- fi
-}
-
-function install_logstash {
- if is_logstash_required; then
- echo_summary "Installing Logstash ${LOGSTASH_VERSION}"
-
- local logstash_tarball=logstash-${LOGSTASH_VERSION}.tar.gz
- local logstash_url=http://download.elastic.co/logstash/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}
- ln -sf $DEST/logstash-${LOGSTASH_VERSION} $LOGSTASH_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-${ELASTICSEARCH_VERSION}.tar.gz
- local es_url=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/${ELASTICSEARCH_VERSION}/${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}
- 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_SERVICE_PUBLISH_HOST%|$ES_SERVICE_PUBLISH_HOST|g;
- s|%ES_SERVICE_PUBLISH_PORT%|$ES_SERVICE_PUBLISH_PORT|g;
- s|%ES_DATA_DIR%|$ELASTICSEARCH_DATA_DIR|g;
- s|%ES_LOG_DIR%|$ELASTICSEARCH_LOG_DIR|g;
- " -i $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
-
- ln -sf $ELASTICSEARCH_CFG_DIR/elasticsearch.yml $GATE_CONFIGURATION_DIR/elasticsearch.yml
- 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" $esSleepTime
- fi
-}
-
-function _get_kibana_version_name {
- echo "kibana-${KIBANA_VERSION}-linux-x86_64"
-}
-
-function install_kibana {
- if is_service_enabled kibana; then
- echo_summary "Installing Kibana ${KIBANA_VERSION}"
-
- local kibana_version_name
- kibana_version_name=`_get_kibana_version_name`
- local kibana_tarball=${kibana_version_name}.tar.gz
- local kibana_tarball_url=http://download.elastic.co/kibana/kibana/${kibana_tarball}
-
- local kibana_tarball_dest
- kibana_tarball_dest=`get_extra_file ${kibana_tarball_url}`
-
- tar xzf ${kibana_tarball_dest} -C $DEST
-
- sudo chown -R $STACK_USER $DEST/${kibana_version_name}
- 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|%KIBANA_SERVER_BASE_PATH%|$KIBANA_SERVER_BASE_PATH|g;
- s|%ES_SERVICE_BIND_HOST%|$ES_SERVICE_BIND_HOST|g;
- s|%ES_SERVICE_BIND_PORT%|$ES_SERVICE_BIND_PORT|g;
- s|%KEYSTONE_AUTH_URI%|$KEYSTONE_AUTH_URI|g;
- " -i $KIBANA_CFG_DIR/kibana.yml
-
- ln -sf $KIBANA_CFG_DIR/kibana.yml $GATE_CONFIGURATION_DIR/kibana.yml
- 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.tar.gz
-
- $KIBANA_DIR/bin/kibana plugin -r monasca-kibana-plugin
- $KIBANA_DIR/bin/kibana plugin -i monasca-kibana-plugin -u $pkg
- fi
-}
-
-function clean_kibana {
- if is_service_enabled kibana; then
- echo_summary "Cleaning Kibana ${KIBANA_VERSION}"
-
- local kibana_tarball
- kibana_tarball=`_get_kibana_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:-90} # 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_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;
- " -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"
- 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"
- 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"
- fi
-}
-
-function install_log_agent {
- if is_service_enabled monasca-log-agent; then
- echo_summary "Installing monasca-log-agent [monasca-output-plugin]"
-
- $LOGSTASH_DIR/bin/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_LOG_API_URI_V3%|$MONASCA_LOG_API_URI_V3|g;
- s|%KEYSTONE_AUTH_URI_V3%|$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_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" "root" "root"
- fi
-}
-
-function install_nodejs {
- if is_service_enabled kibana; then
- # refresh installation
- curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
- apt_get install nodejs
- (
- npm config set registry "http://registry.npmjs.org/"; \
- npm config set proxy "${HTTP_PROXY}"; \
- npm set strict-ssl false;
- )
- fi
-}
-
-function clean_nodejs {
- if is_service_enabled kibana; then
- echo_summary "Cleaning Node.js"
- apt_get purge nodejs
- fi
-}
-
-function clean_gate_config_holder {
- sudo rm -rf $GATE_CONFIGURATION_DIR || true
-}
-
-function build_kibana_plugin {
- if is_service_enabled kibana; then
- echo "Building Kibana plugin"
-
- git_clone $MONASCA_KIBANA_PLUGIN_REPO \
- $MONASCA_KIBANA_PLUGIN_DIR \
- $MONASCA_KIBANA_PLUGIN_BRANCH
-
- pushd $MONASCA_KIBANA_PLUGIN_DIR
- git_update_branch $MONASCA_KIBANA_PLUGIN_BRANCH
-
- local monasca_kibana_plugin_version
- monasca_kibana_plugin_version="$(python -c 'import json; \
- obj = json.load(open("package.json")); print obj["version"]')"
-
- npm install
- npm run package
-
- local pkg=$MONASCA_KIBANA_PLUGIN_DIR/target/monasca-kibana-plugin-${monasca_kibana_plugin_version}.tar.gz
- local easyPkg=$DEST/monasca-kibana-plugin.tar.gz
-
- ln -sf $pkg $easyPkg
-
- popd
- fi
-}
-
-function configure_kafka {
- echo_summary "Configuring Kafka topics"
- /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 \
- --replication-factor 1 --partitions 4 --topic log
- /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 \
- --replication-factor 1 --partitions 4 --topic transformed-log
-}
-
-function delete_kafka_topics {
- echo_summary "Deleting Kafka topics"
- /opt/kafka/bin/kafka-topics.sh --delete --zookeeper localhost:2181 \
- --topic log || true
- /opt/kafka/bin/kafka-topics.sh --delete --zookeeper localhost:2181 \
- --topic transformed-log || true
-}
-
-function create_log_management_accounts {
- if is_service_enabled monasca-log-api; 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"
- get_or_create_endpoint \
- "logs" \
- "$REGION_NAME" \
- "$MONASCA_LOG_API_URI_V3" \
- "$MONASCA_LOG_API_URI_V3" \
- "$MONASCA_LOG_API_URI_V3"
-
- 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
-}
-
-function enable_log_management {
- if is_service_enabled horizon && is_service_enabled kibana; then
- echo_summary "Configure Horizon with Kibana access"
-
- local localSettings=${DEST}/horizon/monitoring/config/local_settings.py
-
- sudo sed -e "
- s|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://192.168.10.4:5601/')|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://${KIBANA_SERVICE_HOST}:${KIBANA_SERVICE_PORT}/')|g;
- " -i ${localSettings}
-
- if is_service_enabled monasca-log-api; then
- sudo sed -e "
- s|'ENABLE_LOG_MANAGEMENT_BUTTON', False|'ENABLE_LOG_MANAGEMENT_BUTTON', True|g;
- " -i ${localSettings}
- fi
-
- restart_apache_server
- fi
-}
-
-function configure_tempest_for_monasca {
- iniset $TEMPEST_CONFIG monitoring kibana_version $KIBANA_VERSION
-}
-
-# check for service enabled
-if is_service_enabled monasca-log; then
-
- if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
- # Set up system services
- echo_summary "Configuring Monasca Log Management system services"
- pre_install
-
- elif [[ "$1" == "stack" && "$2" == "install" ]]; then
- # Perform installation of service source
- echo_summary "Installing Monasca Log Management"
- install_monasca_log
-
- elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
- if is_service_enabled tempest; then
- echo_summary "Configuring Tempest for Monasca"
- configure_tempest_for_monasca
- fi
-
- elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
- # Configure after the other layer 1 and 2 services have been configured
- echo_summary "Configuring Monasca Log Management"
- configure_monasca_log
-
- elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
- # Initialize and start the Monasca service
- echo_summary "Initializing Monasca Log Management"
- init_monasca_log
- init_monasca_grafana_dashboards
- if is_service_enabled monasca-agent; then
- init_agent
- fi
- start_monasca_log
- fi
-
- if [[ "$1" == "unstack" ]]; then
- # Shut down Monasca services
- echo_summary "Unstacking Monasca Log Management"
- stop_monasca_log
- delete_kafka_topics
- fi
-
- if [[ "$1" == "clean" ]]; then
- # Remove state and transient data
- # Remember clean.sh first calls unstack.sh
- echo_summary "Cleaning Monasca Log Management"
- clean_monasca_log
- fi
-fi
-
-#Restore errexit
-$_ERREXIT_LOG_API
-
-# Restore xtrace
-$_XTRACE_LOG_API
diff --git a/devstack/settings b/devstack/settings
deleted file mode 100644
index adcfe789..00000000
--- a/devstack/settings
+++ /dev/null
@@ -1,60 +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.
-#
-
-# --- WARNING ---
-# monasca-log-api DevStack plugin has been deprecated in Ussuri
-# the code has been merged into monasca-api DevStack plugin
-# the settings here apply only to stable/train and older branches
-# please use settings in monasca-api for newer releases
-
-# services
-enable_service zookeeper # devstack/monasca-api/zookeeper
-enable_service kibana # devstack/monasca-api/kafka
-enable_service elasticsearch
-enable_service monasca-log
-enable_service monasca-log-api
-enable_service monasca-log-persister
-enable_service monasca-log-transformer
-enable_service monasca-log-metrics
-enable_service monasca-log-agent
-
-# libraries/frameworks/projects monasca-log requires to install itself
-KIBANA_VERSION=${KIBANA_VERSION:-4.6.3}
-LOGSTASH_VERSION=${LOGSTASH_VERSION:-2.4.1}
-ELASTICSEARCH_VERSION=${ELASTICSEARCH_VERSION:-2.4.6}
-LOGSTASH_OUTPUT_MONASCA_VERSION=${LOGSTASH_OUTPUT_MONASCA_VERSION:-1.0.4}
-NODE_JS_VERSION=${NODE_JS_VERSION:-"4.0.0"}
-NVM_VERSION=${NVM_VERSION:-"0.33.5"}
-
-# repository settings
-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_COMMON_REPO=${MONASCA_COMMON_REPO:-${GIT_BASE}/openstack/monasca-common.git}
-MONASCA_COMMON_BRANCH=${MONASCA_COMMON_BRANCH:-master}
-MONASCA_COMMON_DIR=${DEST}/monasca-common
-
-MONASCA_STATSD_REPO=${MONASCA_STATSD_REPO:-${GIT_BASE}/openstack/monasca-statsd.git}
-MONASCA_STATSD_BRANCH=${MONASCA_STATSD_BRANCH:-master}
-MONASCA_STATSD_DIR=${DEST}/monasca-statsd
-
-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
-
-DOWNLOAD_FILE_TIMEOUT=${DOWNLOAD_FILE_TIMEOUT:-300}
diff --git a/doc/api_samples/v2/req_json.json b/doc/api_samples/v2/req_json.json
deleted file mode 100644
index d70e2db3..00000000
--- a/doc/api_samples/v2/req_json.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "message":"Hello World!"
-}
-
diff --git a/doc/api_samples/v2/req_text.txt b/doc/api_samples/v2/req_text.txt
deleted file mode 100644
index 557db03d..00000000
--- a/doc/api_samples/v2/req_text.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello World
diff --git a/doc/api_samples/v3/req_global_dims.json b/doc/api_samples/v3/req_global_dims.json
deleted file mode 100644
index b6735b68..00000000
--- a/doc/api_samples/v3/req_global_dims.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "dimensions":{
- "hostname":"mini-mon",
- "service":"monitoring"
- },
- "logs":[
- {
- "message":"msg1",
- "dimensions":{
- "component":"mysql",
- "path":"/var/log/mysql.log"
- }
- },
- {
- "message":"msg2",
- "dimensions":{
- "component":"monasca-api",
- "path":"/var/log/monasca/monasca-api.log"
- }
- }
- ]
-}
diff --git a/doc/api_samples/v3/req_multiple_logs.json b/doc/api_samples/v3/req_multiple_logs.json
deleted file mode 100644
index 4da99a16..00000000
--- a/doc/api_samples/v3/req_multiple_logs.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "dimensions":{},
- "logs":[
- {
- "message":"msg1",
- "dimensions":{
- "component":"mysql",
- "path":"/var/log/mysql.log"
- }
- },
- {
- "message":"msg2",
- "dimensions":{
- "component":"monasca-api",
- "path":"/var/log/monasca/monasca-api.log"
- }
- },
- {
- "message":"msg3",
- "dimensions":{
- "component":"monasca-log-api",
- "path":"/var/log/monasca/monasca-log-api.log"
- }
- }
- ]
-}
diff --git a/doc/api_samples/v3/req_single_log.json b/doc/api_samples/v3/req_single_log.json
deleted file mode 100644
index 201ca18a..00000000
--- a/doc/api_samples/v3/req_single_log.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "dimensions":{},
- "logs":[
- {
- "message":"msg1",
- "dimensions":{
- "component":"mysql",
- "path":"/var/log/mysql.log"
- }
- }
- ]
-}
diff --git a/doc/source/.gitignore b/doc/source/.gitignore
deleted file mode 100644
index 53dafec3..00000000
--- a/doc/source/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-_static/*.sample
diff --git a/doc/source/_static/.gitkeep b/doc/source/_static/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/doc/source/_static/images/architecture.png b/doc/source/_static/images/architecture.png
deleted file mode 100644
index 7a8651fd..00000000
Binary files a/doc/source/_static/images/architecture.png and /dev/null differ
diff --git a/doc/source/_static/images/architecture.svg b/doc/source/_static/images/architecture.svg
deleted file mode 100644
index e185e632..00000000
--- a/doc/source/_static/images/architecture.svg
+++ /dev/null
@@ -1,988 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/doc/source/admin/index.rst b/doc/source/admin/index.rst
deleted file mode 100644
index 36a9908c..00000000
--- a/doc/source/admin/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-======================
- Administration guide
-======================
-
-.. toctree::
- :maxdepth: 2
diff --git a/doc/source/cli/index.rst b/doc/source/cli/index.rst
deleted file mode 100644
index 21354418..00000000
--- a/doc/source/cli/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-========================
- Command Line Interface
-========================
-
-At the moment, monasca-log-api cannot be operated
-from the CLI.
diff --git a/doc/source/conf.py b/doc/source/conf.py
deleted file mode 100644
index a593242b..00000000
--- a/doc/source/conf.py
+++ /dev/null
@@ -1,281 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# monasca-log-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',
- 'oslo_policy.sphinxpolicygen'
-]
-
-# geeneral information about project
-openstackdocs_repo_name = u'openstack/monasca-log-api'
-openstackdocs_auto_name = False
-project = u'Monasca Log Dev Docs'
-openstackdocs_bug_project = u'monasca-log-api'
-openstackdocs_bug_tag = u'doc'
-copyright = u'2014-present, OpenStack Foundation'
-author = u'OpenStack Foundation'
-
-# sample config
-config_generator_config_file = [
- ('config-generator/monasca-log-api.conf', '_static/monasca-log-api')
-
-]
-policy_generator_config_file = [
- ('config-generator/policy.conf', '_static/log-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_log_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
-# " v 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 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 = 'monasca-log-apidoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# 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, 'monasca-log-api.tex', u'monasca-log-api Documentation',
- u'Openstack Foundation \\textless{}monasca@lists.launchpad.net\\textgreater{}', '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 manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'monasca-log-api', u'monasca-log-api Documentation',
- [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'monasca-log-api', u'monasca-log-api Documentation',
- author, 'monasca-log-api', 'Rest-API to collect logs from your cloud.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
-
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'https://doc.python.org/': None}
diff --git a/doc/source/configuration/configuring.rst b/doc/source/configuration/configuring.rst
deleted file mode 100644
index 4ef47417..00000000
--- a/doc/source/configuration/configuring.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-.. _basic-configuration:
-
------------
-Configuring
------------
-
-monasca-log-api has several configuration options. Some of them
-are inherited from oslo libraries, others can be found in the monasca-log-api
-codebase.
-
-The entire configuration of monasca-log-api is defined in
-configuration files.
-
-.. note:: This is intended behaviour. One of possible ways to deploy
- monasca-log-api is to use **gunicorn**. Unfortunately gunicorn's
- argument parsing clashes with oslo's argument parsing.
- This means that gunicorn reports the CLI options of
- oslo as unknown, and vice versa.
-
-There are 4 configuration files. For more details on the configuration
-options, see :ref:`here `.
-
-Configuring Keystone Authorization
-----------------------------------
-
-Keystone authorization (i.e. verification of the token associated
-with a request) is a critical part of monasca-log-api.
-It prevents from unauthorized access and provides the isolation
-needed for multi-tenancy.
-
-The configuration for ``keystonemiddleware`` should either be provided in
-``monasca-log-api.conf`` or in a file in one of the configuration directories.
-For more details about configuration options, check
-`here `_.
-
-Configuring Log Publishing
---------------------------
-
-monasca-log-api sends all logs to the Kafka Message Queue.
-Proper configuration should include:
-
-* ``kafka_url`` - comma-delimited list of Kafka brokers
-* ``topics`` - names of the topics to which the logs will be pushed to
-* ``max_message_size`` - maximum message size that can be posted a topic
-
-The configuration for ``log_publisher`` should either be provided in
-``monasca-log-api.conf`` or in a file in one of the configuration directories.
-
-Configuring Healthcheck
------------------------
-
-Healthcheck is an essential part of monasca-log-api.
-It allows sending HTTP requests and getting knowledge about the
-availability of the API. Configuration of healthcheck includes:
-
-* ``kafka_url`` - comma-delimited list of Kafka brokers
-* ``kafka_topics`` - list of topics that existence is verified by healthcheck
-
-The configuration for ``kafka_healthcheck`` should either be provided in
-``monasca-log-api.conf`` or in a file in one of the configuration directories.
-
-Configuring Monitoring
-----------------------
-
-monasca-log-api is capable of self-monitoring. This is achieved
-through `monasca-statsd `_.
-It assumes that there is monasca-agent available on the system node and
-that statsd-server has been launched.
-
-There are several options you may want to tweak if necessary:
-
-* ``statsd_host``- the host statsd-server is bound to
-* ``statsd_port``- the port statsd-server is bound to
-* ``statsd_buffer`` - the amount of metrics to buffer in memory before sending
- any
-* ``dimensions`` - additional dimensions to be sent with all
- metrics for this monasca-log-api instance
-
-The configuration for ``monitoring`` should either be provided in
-``monasca-log-api.conf`` or in a file in one of the configuration directories.
-
-Configuring RBAC
-----------------
-
-The role-based access policy can be defined in the ``log-api.policy.yaml`` file
-as described in `oslo.policy documentation
-`_.
-
-Additionally, for historical reasons, custom RBAC mechanism is provided. It can
-be configured as follows:
-
-* ``path`` - list of URIs that RBAC applies to
-* ``default_roles`` - list of roles that are permitted to access the API
-* ``agent_roles`` - list of roles, that if present, means that requests come
- from log-agent
-* ``delegate_roles`` - list of roles required by log-agent for sending logs
- on behalf of another project (tenant)
-
-The configuration for ``roles_middleware`` can be provided either in
-``monasca-log-api.conf`` or in a file in one of the configuration directories.
-
-Configuring Logging
--------------------
-
-Logging in monasca-log-api is controlled from the single
-``log-api-logging.conf`` configuration file.
-Here is a short list of several modifications you may want to apply,
-based on your deployment:
-
-* to log INFO to console::
-
- [handler_console]
- level = INFO
-
-* to log DEBUG to file::
-
- [handler_file]
- level = DEBUG
-
-* to change the log file location::
-
- [handler_file]
- args = ('/var/log/log-api.log', 'a')
-
-* if you have an external script for log rotation::
-
- [handler_file]
- handler = logging.handlers.WatchedFileHandler
- args = ('/var/log/log-api.log', 'a')
-
- That will store up to 5 rotations (each having maximum size
- of 100MBs)
-
- The configuration of ``logging`` should be presented inside
- ``log-api-logging.conf`` file and referenced from ``monasca-log-api.conf``
- using ``log_config_append`` option.
-
- If you want to know more about possible ways to save monasca-log-api logs,
- feel free to visit:
-
- * `oslo.log `_
- * `Python HowTo `_
- * `Logging handlers `_
-
-Configuring Policies
---------------------
-
-The policies for accessing each service can be configured in the
-``log-api.policy.yaml`` configuration file::
-
- Policy Description
- Method Path
- "Policy string": "Roles"
-
-example::
-
- Logs post rule
- POST /logs
- POST /log/single
- "log_api:logs:post": "role:monasca-user"
diff --git a/doc/source/configuration/files.rst b/doc/source/configuration/files.rst
deleted file mode 100644
index 1ca33d5b..00000000
--- a/doc/source/configuration/files.rst
+++ /dev/null
@@ -1,99 +0,0 @@
-.. _configuration-files:
-
--------------------
-Configuration files
--------------------
-
-Overview of monasca-log-api's configuration files.
-
-monasca-log-api.conf
---------------------
-
-This is the main configuration file of monasca-log-api.
-It can be located in several places. During startup,
-monasca-log-api searches for it in the following directories:
-
-* ``~/.monasca``
-* ``~/``
-* ``/etc/monasca``
-* ``/etc``
-
-Alternatively, you can roll with a multi-file-based configuration model.
-In this case, monasca-log-api searches the configuration files
-in the following directories:
-
-* ``~/.monasca/monasca.conf.d/``
-* ``~/.monasca/monasca-log-api.conf.d/``
-* ``~/monasca.conf.d/``
-* ``~/monasca-log-api.conf.d/``
-* ``/etc/monasca/monasca.conf.d/``
-* ``/etc/monasca/monasca-log-api.conf.d/``
-* ``/etc/monasca.conf.d/``
-* ``/etc/monasca-log-api.conf.d/``
-
-Regardless of the location, the name of the main configuration file
-should always be ``monasca-log-api.conf``. For files located
-in ``.conf.d`` directories, the name is irrelevant, but it should
-indicate the file content.
-
-For example, when guring keystone communication. The
-`keystonemiddleware `_
-configuration would be, therefore, located in, for example,
-``/etc/monasca-log-api.conf.d/keystonemiddleware.conf``
-
-A sample of this configuration file is also available
-:ref:`here `
-
-log-api-logging.conf
---------------------
-
-This file contains the logging setup for monasca-log-api. It should be
-referenced from ``monasca-log-api.conf`` using, for example,
-the following code snippet::
-
- [DEFAULT]
- log_config_append = /etc/monasca/log-api-logging.conf
-
-A sample of this configuration file is also available
-:ref:`here `
-
-log-api-paste.ini
------------------
-
-This file contains the `PasteDeploy `_
-configuration. It describes all pipelines that are running within a single
-instance of monasca-log-api.
-
-There is nothing you should try and modify in this file,
-apart from enabling/disabling ``oslo_middleware.debug:Debug``.
-
-To enable ``oslo_middleware.debug:Debug`` for ``Log v3`` pipeline,
-``log-api-paste.ini`` should contain code similar to this one::
-
- [composite:main]
- use = egg:Paste#urlmap
- /v3.0: la_api_v3
-
- [pipeline:la_api_v3]
- pipeline = debug {{ other pipeline members }}
-
- [filter:debug]
- paste.filter_factory = oslo_middleware.debug:Debug.factory
-
-This particular filter might be useful for examining the
-WSGI environment during troubleshooting or local development.
-
-log-api.policy.yaml
--------------------
-
-This is the configuration file for policies to access the services.
-the path of the file can be defined in ``monasca-log-api.conf``::
-
- [oslo_policy]
- policy_file = log-api.policy.yaml
-
-More information about policy file configuration can be found at
-`oslo.policy `_
-
-A sample of this configuration file is also available
-:ref:`here `
diff --git a/doc/source/configuration/index.rst b/doc/source/configuration/index.rst
deleted file mode 100644
index 180f2512..00000000
--- a/doc/source/configuration/index.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _configuring:
-
-=============
-Configuration
-=============
-
-This section describes the configuration settings that can be specified.
-Refer to :ref:`basic-configuration` for more details on the
-available settings.
-
-.. toctree::
- :maxdepth: 1
-
- configuring
- files
- options
- sample
diff --git a/doc/source/configuration/options.rst b/doc/source/configuration/options.rst
deleted file mode 100644
index f7617956..00000000
--- a/doc/source/configuration/options.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. _monasca-log-api.conf:
-
--------
-Options
--------
-
-.. show-options::
- :config-file: config-generator/monasca-log-api.conf
diff --git a/doc/source/configuration/sample.rst b/doc/source/configuration/sample.rst
deleted file mode 100644
index 4ee26c1a..00000000
--- a/doc/source/configuration/sample.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-.. _sample-configuration:
-
--------
-Samples
--------
-
-The following sections show sample configuration files for monasca-log-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-log-api repository.
-
-
-.. _sample-configuration-api:
-
-Sample Configuration For Application
-------------------------------------
-
-This sample configuration can also be viewed in `monasca-log-api.conf.sample
-<../_static/monasca-log-api.conf.sample>`_.
-
-.. literalinclude:: ../_static/monasca-log-api.conf.sample
-
-.. _sample-configuration-logging:
-
-Sample Configuration For Logging
---------------------------------
-
-This sample configuration can also be viewed in `log-api-logging.conf
-`_.
-
-.. literalinclude:: ../../../etc/monasca/log-api-logging.conf
-
-
-Sample Configuration For Paste
-------------------------------
-
-This sample configuration can also be viewed in `log-api-paste.ini
-`_.
-
-.. literalinclude:: ../../../etc/monasca/log-api-paste.ini
-
-.. _sample-configuration-policy:
-
-Sample Configuration For Policy
--------------------------------
-
-This sample configuration can also be viewed in `log-api-policy.yaml.sample
-<../_static/log-api-policy.yaml.sample>`_.
-
-.. literalinclude:: ../_static/log-api.policy.yaml.sample
-
diff --git a/doc/source/contributor/.gitignore b/doc/source/contributor/.gitignore
deleted file mode 100644
index d7f336d8..00000000
--- a/doc/source/contributor/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# codebase documentation is autogenerated
-# so we do not want to track it in the tree
-api/
diff --git a/doc/source/contributor/code.rst b/doc/source/contributor/code.rst
deleted file mode 100644
index f8fa03f6..00000000
--- a/doc/source/contributor/code.rst
+++ /dev/null
@@ -1,18 +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
-
- api/autoindex.rst
diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst
deleted file mode 100644
index 74449d29..00000000
--- a/doc/source/contributor/index.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-=======================
-Contribution Guidelines
-=======================
-
-In the Contributions Guide, you will find documented policies for
-developing with monasca-log. This includes the processes we use for
-blueprints and specs, bugs, contributor onboarding, core reviewer
-memberships, and other procedural items.
-
-monasca-log, as with all OpenStack projects, is written with the following
-design guidelines in mind:
-
-* **Component based architecture**: Quickly add new behaviors
-* **Highly available**: Scale to very serious workloads
-* **Fault tolerant**: Isolated processes avoid cascading failures
-* **Recoverable**: Failures should be easy to diagnose, debug, and rectify
-* **Open standards**: Be a reference implementation for a community-driven api
-
-This documentation is generated by the Sphinx toolkit and lives in the source
-tree. Additional documentation on monasca-log and other components of
-OpenStack can be found on the `OpenStack wiki `_.
-
-Developer reference
--------------------
-
-.. toctree::
- :maxdepth: 1
-
- tox
- code
diff --git a/doc/source/contributor/tox.rst b/doc/source/contributor/tox.rst
deleted file mode 100644
index 3a47c7ab..00000000
--- a/doc/source/contributor/tox.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-..
- monasca-log-api documentation master file
- 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.
-
-.. _`tox`: https://tox.readthedocs.io/en/latest/
-.. _`mandatory_tox_env`: https://github.com/openstack/monasca-log-api/blob/master/tox.ini#L2
-
-===
-Tox
-===
-
-**monasca-log-api** uses `tox`_ to wrap up all the activities around
-testing and linting the codebase.
-
-List of environments
-====================
-
-There is a rather large number of tox environments that **monasca-log-api**
-is using. If necessary they can be enlisted with::
-
- tox -a -v
-
-An output will be similar to this::
-
- default environments:
- py27 -> Runs unit test using Python2.7
- py35 -> Runs unit test using Python3.5
- pep8 -> Runs set of linters against codebase (flake8, bandit,
- bashate, checkniceness)
- cover -> Calculates code coverage
-
- additional environments:
- api-guide -> Called from CI scripts to test and publish the API Guide
- api-ref -> Called from CI scripts to test and publish the API Ref
- apidocs -> Generates codebase documentation
- bandit -> [no description]
- bashate -> Validates (pep8-like) devstack plugins
- checkjson -> Validates all json samples inside doc folder
- checkniceness -> Validates (pep-like) documenation
- debug -> Allows to run unit-test with debug mode enabled
- docs -> Builds api-ref, api-guide, releasenotes and doc
- flake8 -> [no description]
- releasenotes -> Called from CI script to test and publish the Release Notes
- venv -> [no description]
-
-
-Running tox
-===========
-
-Running tox is as simple as::
-
- tox
-
-That will run all **mandatory** (for details refer to `mandatory_tox_env`_)
-environments. Having them passed is *a must have*.
-
-Running specific environments
-=============================
-
-If you require to run specific environments, please use::
-
- tox -e api-ref,api-guide,releasenotes
-
-Result of which will be having all documentations sub-components generated
-and ready in local dev environment.
diff --git a/doc/source/deprecation_note.inc b/doc/source/deprecation_note.inc
deleted file mode 100644
index 3169cb92..00000000
--- a/doc/source/deprecation_note.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-.. note:: The Log API v2 has been DEPRECATED in the Mitaka release. The
- migration path is to use the `Log API v3
- `_ instead of version 2
- of the API. The Log API v2 will ultimately be removed, following the
- `OpenStack standard deprecation policy
- `_.
diff --git a/doc/source/glossary.rst b/doc/source/glossary.rst
deleted file mode 100644
index fa106d19..00000000
--- a/doc/source/glossary.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-========
-Glossary
-========
diff --git a/doc/source/index.rst b/doc/source/index.rst
deleted file mode 100644
index 9f060eaf..00000000
--- a/doc/source/index.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-..
- monasca-log-api documentation master file
- 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.
-
-===========================================
-Welcome to monasca-log-api's documentation!
-===========================================
-
-monasca-log-api is a RESTful API server acting as gateway for
-logs collected from log-agents.
-
-.. include:: deprecation_note.inc
-
-The developer documentation provided here is continually kept up-to-date
-based on the latest code, and may not represent the state of the project at
-any specific prior release.
-
-.. note:: This is documentation for developers, if you are looking for more
- general documentation including API, install, operator and user
- guides see `docs.openstack.org`_
-
-.. _`docs.openstack.org`: https://docs.openstack.org
-
-.. toctree::
- :maxdepth: 2
-
- user/index
- admin/index
- install/index
- configuration/index
- cli/index
- contributor/index
-
-.. toctree::
- :maxdepth: 1
-
- glossary
-
diff --git a/doc/source/install/index.rst b/doc/source/install/index.rst
deleted file mode 100644
index e6bc440e..00000000
--- a/doc/source/install/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-==============
- Installation
-==============
-
-.. toctree::
- :maxdepth: 2
diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst
deleted file mode 100644
index 475c57c9..00000000
--- a/doc/source/user/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-============
- User guide
-============
-
-.. toctree::
- :maxdepth: 2
diff --git a/docker/Dockerfile b/docker/Dockerfile
deleted file mode 100644
index efe1f5ba..00000000
--- a/docker/Dockerfile
+++ /dev/null
@@ -1,57 +0,0 @@
-ARG DOCKER_IMAGE=monasca/log-api
-ARG APP_REPO=https://review.opendev.org/openstack/monasca-log-api
-
-# Branch, tag or git hash to build from.
-ARG REPO_VERSION=master
-ARG CONSTRAINTS_BRANCH=master
-
-# Extra Python3 dependencies.
-ARG EXTRA_DEPS="gunicorn python-memcached gevent"
-
-# Always start from `monasca-base` image and use specific tag of it.
-ARG BASE_TAG=master
-FROM monasca/base:$BASE_TAG
-
-# Environment variables used for our service or wait scripts.
-ENV \
- KAFKA_URI=kafka:9092 \
- KAFKA_WAIT_FOR_TOPICS=log \
- MONASCA_CONTAINER_LOG_API_PORT=5607 \
- MEMCACHED_URI=memcached:11211 \
- AUTHORIZED_ROLES=admin,domainuser,domainadmin,monasca-user \
- AGENT_AUTHORIZED_ROLES=monasca-agent \
- KEYSTONE_IDENTITY_URI=http://keystone:35357 \
- KEYSTONE_AUTH_URI=http://keystone:5000 \
- KEYSTONE_ADMIN_USER=admin \
- KEYSTONE_ADMIN_PASSWORD=secretadmin \
- KEYSTONE_ADMIN_TENANT=admin \
- KEYSTONE_ADMIN_DOMAIN=default \
- GUNICORN_WORKERS=9 \
- GUNICORN_WORKER_CLASS=gevent \
- GUNICORN_WORKER_CONNECTIONS=2000 \
- GUNICORN_BACKLOG=1000 \
- GUNICORN_TIMEOUT=10 \
- PYTHONIOENCODING=utf-8 \
- ADD_ACCESS_LOG=false \
- ACCESS_LOG_FORMAT="%(asctime)s [%(process)d] gunicorn.access [%(levelname)s] %(message)s" \
- ACCESS_LOG_FIELDS='%(h)s %(l)s %(u)s %(t)s %(r)s %(s)s %(b)s "%(f)s" "%(a)s" %(L)s' \
- LOG_LEVEL_ROOT=INFO \
- LOG_LEVEL_CONSOLE=INFO \
- LOG_LEVEL_ACCESS=INFO \
- STAY_ALIVE_ON_FAILURE="false"
-
-# Copy all neccessary files to proper locations.
-COPY log-api* monasca-log-api* /etc/monasca/
-
-# Run here all additionals steps your service need post installation.
-# Stay with only one `RUN` and use `&& \` for next steps to don't create
-# unnecessary image layers. Clean at the end to conserve space.
-#RUN \
-# echo "Some steps to do after main installation." && \
-# echo "Hello when building."
-
-# Expose port for specific service.
-EXPOSE ${MONASCA_CONTAINER_LOG_API_PORT}
-
-# Implement start script in `start.sh` file.
-CMD ["/start.sh"]
diff --git a/docker/README.rst b/docker/README.rst
deleted file mode 100644
index d00a73fc..00000000
--- a/docker/README.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-================================
-Docker image for Monasca Log API
-================================
-The Monasca log API image is based on the monasca-base image.
-
-
-Building monasca-base image
-===========================
-See https://github.com/openstack/monasca-common/tree/master/docker/README.rst
-
-
-Building Monasca log API image
-==============================
-
-Example:
- $ ./build_image.sh
-
-
-Requirements from monasca-base image
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-health_check.py
- This file will be used for checking the status of the Monasca Log API
- application.
-
-
-Scripts
-~~~~~~~
-start.sh
- In this starting script provide all steps that lead to the proper service
- start. Including usage of wait scripts and templating of configuration
- files. You also could provide the ability to allow running container after
- service died for easier debugging.
-
-build_image.sh
- Please read detailed build description inside the script.
-
-
-Environment variables
-~~~~~~~~~~~~~~~~~~~~~
-============================== ======================================================================= ==========================================
-Variable Default Description
-============================== ======================================================================= ==========================================
-KAFKA_URI kafka:9092 URI to Apache Kafka (distributed streaming platform)
-KAFKA_WAIT_FOR_TOPICS log The topic where log-api streams the log messages
-KAFKA_WAIT_RETRIES 24 Number of kafka connect attempts
-KAFKA_WAIT_DELAY 5 Seconds to wait between attempts
-MONASCA_CONTAINER_LOG_API_PORT 5607 The port from the log pipeline endpoint
-MEMCACHED_URI memcached:11211 URI to Keystone authentication cache
-AUTHORIZED_ROLES admin,domainuser,domainadmin,monasca-user Roles for Monasca users (full API access)
-AGENT_AUTHORIZED_ROLES monasca-agent Roles for Monasca agents (sending data only)
-KEYSTONE_IDENTITY_URI http://keystone:35357 URI to Keystone admin endpoint
-KEYSTONE_AUTH_URI http://keystone:5000 URI to Keystone public endpoint
-KEYSTONE_ADMIN_USER admin OpenStack administrator user name
-KEYSTONE_ADMIN_PASSWORD secretadmin OpenStack administrator user password
-KEYSTONE_ADMIN_TENANT admin OpenStack administrator tenant name
-KEYSTONE_ADMIN_DOMAIN default OpenStack administrator domain
-GUNICORN_WORKERS 9 Number of gunicorn (WSGI-HTTP server) workers
-GUNICORN_WORKER_CLASS gevent Used gunicorn worker class
-GUNICORN_WORKER_CONNECTIONS 2000 Number of gunicorn worker connections
-GUNICORN_BACKLOG 1000 Number of gunicorn backlogs
-GUNICORN_TIMEOUT 10 Gunicorn connection timeout
-PYTHONIOENCODING utf-8 Python encoding
-ADD_ACCESS_LOG false Enable gunicorn request/access logging
-ACCESS_LOG_FORMAT "%(asctime)s [%(process)d] gunicorn.access [%(levelname)s] %(message)s" Define the logging format
-ACCESS_LOG_FIELDS '%(h)s %(l)s %(u)s %(t)s %(r)s %(s)s %(b)s "%(f)s" "%(a)s" %(L)s' Define the fields to be logged
-LOG_LEVEL_ROOT WARN Log level for root logging
-LOG_LEVEL_CONSOLE INFO Log level for console logging
-LOG_LEVEL_ACCESS INFO Log level for access logging
-STAY_ALIVE_ON_FAILURE false If true, container runs 2 hours after tests fail
-============================== ======================================================================= ==========================================
-
-
-Provide configuration templates
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* monasca-log-api.conf.j2
-* log-api-gunicorn.conf.j2
-* log-api-logging.conf.j2
-* log-api.paste.ini.j2
-
-
-Links
-~~~~~
-https://docs.openstack.org/monasca-log-api/latest/configuration/
-
-https://github.com/openstack/monasca-log-api/blob/master/README.rst
diff --git a/docker/build_image.sh b/docker/build_image.sh
deleted file mode 100755
index 9e15bc02..00000000
--- a/docker/build_image.sh
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash
-
-# 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.
-
-# TODO(Dobroslaw): move this script to monasca-common/docker folder
-# and leave here small script to download it and execute using env variables
-# to minimize code duplication.
-
-set -x # Print each script step.
-set -eo pipefail # Exit the script if any statement returns error.
-
-# This script is used for building Docker image with proper labels
-# and proper version of monasca-common.
-#
-# Example usage:
-# $ ./build_image.sh
-#
-# Everything after `./build_image.sh` is optional and by default configured
-# to get versions from `Dockerfile`.
-#
-# To build from master branch (default):
-# $ ./build_image.sh
-# To build specific version run this script in the following way:
-# $ ./build_image.sh stable/queens
-# Building from specific commit:
-# $ ./build_image.sh cb7f226
-# When building from a tag monasca-common will be used in version available
-# in upper constraint file:
-# $ ./build_image.sh 2.5.0
-# To build image from Gerrit patch sets that is targeting branch stable/queens:
-# $ ./build_image.sh refs/changes/51/558751/1 stable/queens
-#
-# If you want to build image with custom monasca-common version you need
-# to provide it as in the following example:
-# $ ./build_image.sh master master refs/changes/19/595719/3
-
-# Go to folder with Docker files.
-REAL_PATH=$(python -c "import os,sys; print(os.path.realpath('$0'))")
-cd "$(dirname "$REAL_PATH")/../docker/"
-
-[ -z "$DOCKER_IMAGE" ] && \
- DOCKER_IMAGE=$(\grep DOCKER_IMAGE Dockerfile | cut -f2 -d"=")
-
-: "${REPO_VERSION:=$1}"
-[ -z "$REPO_VERSION" ] && \
- REPO_VERSION=$(\grep REPO_VERSION Dockerfile | cut -f2 -d"=")
-# Let's stick to more readable version and disable SC2001 here.
-# shellcheck disable=SC2001
-REPO_VERSION_CLEAN=$(echo "$REPO_VERSION" | sed 's|/|-|g')
-
-[ -z "$APP_REPO" ] && APP_REPO=$(\grep APP_REPO Dockerfile | cut -f2 -d"=")
-GITHUB_REPO=$(echo "$APP_REPO" | sed 's/review.opendev.org/github.com/' | \
- sed 's/ssh:/https:/')
-
-if [ -z "$CONSTRAINTS_FILE" ]; then
- CONSTRAINTS_FILE=$(\grep CONSTRAINTS_FILE Dockerfile | cut -f2 -d"=") || true
- : "${CONSTRAINTS_FILE:=https://releases.openstack.org/constraints/upper/master}"
-fi
-
-: "${CONSTRAINTS_BRANCH:=$2}"
-[ -z "$CONSTRAINTS_BRANCH" ] && \
- CONSTRAINTS_BRANCH=$(\grep CONSTRAINTS_BRANCH Dockerfile | cut -f2 -d"=")
-
-# When using stable version of repository use same stable constraints file.
-case "$REPO_VERSION" in
- *stable*)
- CONSTRAINTS_BRANCH_CLEAN="$REPO_VERSION"
- CONSTRAINTS_FILE=${CONSTRAINTS_FILE/master/$CONSTRAINTS_BRANCH_CLEAN}
- # Get monasca-common version from stable upper constraints file.
- CONSTRAINTS_TMP_FILE=$(mktemp)
- wget --output-document "$CONSTRAINTS_TMP_FILE" \
- $CONSTRAINTS_FILE
- UPPER_COMMON=$(\grep 'monasca-common' "$CONSTRAINTS_TMP_FILE")
- # Get only version part from monasca-common.
- UPPER_COMMON_VERSION="${UPPER_COMMON##*===}"
- rm -rf "$CONSTRAINTS_TMP_FILE"
- ;;
- *)
- CONSTRAINTS_BRANCH_CLEAN="$CONSTRAINTS_BRANCH"
- ;;
-esac
-
-# Monasca-common variables.
-if [ -z "$COMMON_REPO" ]; then
- COMMON_REPO=$(\grep COMMON_REPO Dockerfile | cut -f2 -d"=") || true
- : "${COMMON_REPO:=https://review.opendev.org/openstack/monasca-common}"
-fi
-: "${COMMON_VERSION:=$3}"
-if [ -z "$COMMON_VERSION" ]; then
- COMMON_VERSION=$(\grep COMMON_VERSION Dockerfile | cut -f2 -d"=") || true
- if [ "$UPPER_COMMON_VERSION" ]; then
- # Common from upper constraints file.
- COMMON_VERSION="$UPPER_COMMON_VERSION"
- fi
-fi
-
-# Clone project to temporary directory for getting proper commit number from
-# branches and tags. We need this for setting proper image labels.
-# Docker does not allow to get any data from inside of system when building
-# image.
-TMP_DIR=$(mktemp -d)
-(
- cd "$TMP_DIR"
- # This many steps are needed to support gerrit patch sets.
- git init
- git remote add origin "$APP_REPO"
- git fetch origin "$REPO_VERSION"
- git reset --hard FETCH_HEAD
-)
-GIT_COMMIT=$(git -C "$TMP_DIR" rev-parse HEAD)
-[ -z "${GIT_COMMIT}" ] && echo "No git commit hash found" && exit 1
-rm -rf "$TMP_DIR"
-
-# Do the same for monasca-common.
-COMMON_TMP_DIR=$(mktemp -d)
-(
- cd "$COMMON_TMP_DIR"
- # This many steps are needed to support gerrit patch sets.
- git init
- git remote add origin "$COMMON_REPO"
- git fetch origin "$COMMON_VERSION"
- git reset --hard FETCH_HEAD
-)
-COMMON_GIT_COMMIT=$(git -C "$COMMON_TMP_DIR" rev-parse HEAD)
-[ -z "${COMMON_GIT_COMMIT}" ] && echo "No git commit hash found" && exit 1
-rm -rf "$COMMON_TMP_DIR"
-
-CREATION_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
-
-docker build --no-cache \
- --build-arg CREATION_TIME="$CREATION_TIME" \
- --build-arg GITHUB_REPO="$GITHUB_REPO" \
- --build-arg APP_REPO="$APP_REPO" \
- --build-arg REPO_VERSION="$REPO_VERSION" \
- --build-arg GIT_COMMIT="$GIT_COMMIT" \
- --build-arg CONSTRAINTS_FILE="$CONSTRAINTS_FILE" \
- --build-arg COMMON_REPO="$COMMON_REPO" \
- --build-arg COMMON_VERSION="$COMMON_VERSION" \
- --build-arg COMMON_GIT_COMMIT="$COMMON_GIT_COMMIT" \
- --tag "$DOCKER_IMAGE":"$REPO_VERSION_CLEAN" .
diff --git a/docker/health_check.py b/docker/health_check.py
deleted file mode 100755
index d190cd3e..00000000
--- a/docker/health_check.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# coding=utf-8
-
-# (C) Copyright 2018 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.
-
-"""Health check will returns 0 when service is working properly."""
-
-import logging
-import os
-import sys
-from urllib import request
-
-
-LOG_LEVEL = logging.getLevelName(os.environ.get('LOG_LEVEL', 'INFO'))
-logging.basicConfig(level=LOG_LEVEL)
-logger = logging.getLogger(__name__)
-
-API_PORT = os.environ.get('MONASCA_CONTAINER_LOG_API_PORT', '5607')
-url = "http://localhost:" + API_PORT + "/healthcheck"
-
-
-def main():
- """Send health check request to health check endpoint of log API."""
- logger.debug('Send health check request to %s', url)
- try:
- request.urlopen(url=url)
- except Exception as ex:
- logger.error('Exception during request handling: ' + repr(ex))
- sys.exit(1)
-
-
-if __name__ == '__main__':
- main()
diff --git a/docker/log-api-gunicorn.conf.j2 b/docker/log-api-gunicorn.conf.j2
deleted file mode 100644
index d81e2526..00000000
--- a/docker/log-api-gunicorn.conf.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-bind = '0.0.0.0:{{ MONASCA_CONTAINER_LOG_API_PORT }}'
-proc_name = 'monasca-log-api'
-
-backlog = {{ GUNICORN_BACKLOG | int }}
-workers = {{ GUNICORN_WORKERS | int }}
-worker_class = '{{ GUNICORN_WORKER_CLASS }}'
-timeout = {{ GUNICORN_TIMEOUT | int }}
-
-{% if ADD_ACCESS_LOG == true %}
-accesslog = '-'
-access_log_format = '{{ ACCESS_LOG_FIELDS }}'
-{% endif %}
-capture_output = True
diff --git a/docker/log-api-logging.conf.j2 b/docker/log-api-logging.conf.j2
deleted file mode 100644
index 76d60f16..00000000
--- a/docker/log-api-logging.conf.j2
+++ /dev/null
@@ -1,47 +0,0 @@
-[default]
-disable_existing_loggers = 0
-
-[loggers]
-keys = root, gunicorn_access, kafka
-
-[handlers]
-keys = console, gunicorn_access
-
-[formatters]
-keys = context, gunicorn_access
-
-[logger_root]
-level = {{ LOG_LEVEL_ROOT }}
-handlers = console
-
-[logger_gunicorn_access]
-level = {{ LOG_LEVEL_ACCESS }}
-handlers = console
-propagate = 0
-qualname = gunicorn.access
-
-[logger_kafka]
-qualname = kafka
-level = DEBUG
-handlers = console
-propagate = 0
-
-[handler_console]
-class = logging.StreamHandler
-args = (sys.stdout,)
-level = {{ LOG_LEVEL_CONSOLE }}
-formatter = context
-
-[handler_gunicorn_access]
-class = logging.StreamHandler
-args = (sys.stdout,)
-level = {{ LOG_LEVEL_ACCESS }}
-formatter = gunicorn_access
-
-[formatter_context]
-class = oslo_log.formatters.ContextFormatter
-
-[formatter_gunicorn_access]
-class = logging.Formatter
-format = {{ ACCESS_LOG_FORMAT }}
-datefmt = %Y-%m-%d %H:%M:%S
diff --git a/docker/log-api-paste.ini.j2 b/docker/log-api-paste.ini.j2
deleted file mode 100644
index 05ac128a..00000000
--- a/docker/log-api-paste.ini.j2
+++ /dev/null
@@ -1,53 +0,0 @@
-[DEFAULT]
-name = monasca_log_api
-
-[composite:main]
-use = egg:Paste#urlmap
-/: la_version
-/healthcheck: la_healthcheck
-/v2.0: la_api_v2
-/v3.0: la_api_v3
-
-[pipeline:la_version]
-pipeline = error_trap versionapp
-
-[pipeline:la_healthcheck]
-pipeline = error_trap healthcheckapp
-
-[pipeline:la_api_v2]
-pipeline = error_trap request_id auth roles api_v2_app
-
-[pipeline:la_api_v3]
-pipeline = error_trap request_id auth roles api_v3_app
-
-[app:versionapp]
-paste.app_factory = monasca_log_api.app.api:create_version_app
-
-[app:healthcheckapp]
-paste.app_factory = monasca_log_api.app.api:create_healthcheck_app
-
-[app:api_v2_app]
-paste.app_factory = monasca_log_api.app.api:create_api_app
-set api_version=v2.0
-
-[app:api_v3_app]
-paste.app_factory = monasca_log_api.app.api:create_api_app
-set api_version=v3.0
-
-[filter:auth]
-paste.filter_factory = keystonemiddleware.auth_token:filter_factory
-
-[filter:roles]
-paste.filter_factory = monasca_log_api.middleware.role_middleware:RoleMiddleware.factory
-
-[filter:request_id]
-paste.filter_factory = oslo_middleware.request_id:RequestId.factory
-
-[filter:debug]
-paste.filter_factory = oslo_middleware.debug:Debug.factory
-
-[filter:error_trap]
-paste.filter_factory = oslo_middleware.catch_errors:CatchErrors.factory
-
-[server:main]
-use = egg:gunicorn#main
diff --git a/docker/monasca-log-api.conf.j2 b/docker/monasca-log-api.conf.j2
deleted file mode 100644
index 5ae94610..00000000
--- a/docker/monasca-log-api.conf.j2
+++ /dev/null
@@ -1,42 +0,0 @@
-[DEFAULT]
-log_config_append=/etc/monasca/log-api-logging.conf
-
-[monitoring]
-enable = {{ MONITORING_ENABLE | default(False) }}
-statsd_host = {{ STATSD_HOST | default('127.0.0.1') }}
-statsd_port = {{ STATSD_PORT | default(8125) }}
-statsd_buffer = {{ STATSD_BUFFER | default(50) }}
-
-[service]
-region = useast
-max_log_size = 1048576
-
-[roles_middleware]
-path = /v2.0/log,/v3.0/logs
-default_roles = {{ AUTHORIZED_ROLES | default('admin, domainuser, domainadmin, monasca-user') }}
-agent_roles = {{ AGENT_AUTHORIZED_ROLES | default('monasca-agent') }}
-
-[log_publisher]
-topics = log
-kafka_url = {{ KAFKA_URI | default('kafka:9092') }}
-max_message_size = 1048576
-
-[kafka_healthcheck]
-kafka_url = {{ KAFKA_URI | default('kafka:9092') }}
-kafka_topics = log
-
-[keystone_authtoken]
-auth_type = password
-auth_url = {{ KEYSTONE_IDENTITY_URI }}
-auth_uri = {{ KEYSTONE_AUTH_URI }}
-username = {{ KEYSTONE_ADMIN_USER }}
-password = {{ KEYSTONE_ADMIN_PASSWORD }}
-user_domain_name = Default
-project_name = {{ KEYSTONE_ADMIN_TENANT }}
-project_domain_name = Default
-service_token_roles_required = true
-memcached_servers = {{ MEMCACHED_URI }}
-insecure = false
-cafile =
-certfile =
-keyfile =
diff --git a/docker/start.sh b/docker/start.sh
deleted file mode 100644
index 26d92d81..00000000
--- a/docker/start.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-# Starting script.
-# All checks and configuration templating you need to do before service
-# could be safely started should be added in this file.
-
-set -eo pipefail # Exit the script if any statement returns error.
-
-# Test services we need before starting our service.
-echo "Start script: waiting for needed services"
-python3 /kafka_wait_for_topics.py
-
-# Template all config files before start, it will use env variables.
-# Read usage examples: https://pypi.org/project/Templer/
-echo "Start script: creating config files from templates"
-templer -v -f /etc/monasca/monasca-log-api.conf.j2 /etc/monasca/monasca-log-api.conf
-templer -v -f /etc/monasca/log-api-gunicorn.conf.j2 /etc/monasca/log-api-gunicorn.conf
-templer -v -f /etc/monasca/log-api-logging.conf.j2 /etc/monasca/log-api-logging.conf
-templer -v -f /etc/monasca/log-api-paste.ini.j2 /etc/monasca/log-api-paste.ini
-
-# Start our service.
-# gunicorn --args
-echo "Start script: starting container"
-gunicorn \
- --config /etc/monasca/log-api-gunicorn.conf \
- --paste /etc/monasca/log-api-paste.ini
-
-# Allow server to stay alive in case of failure for 2 hours for debugging.
-RESULT=$?
-if [ $RESULT != 0 ] && [ "$STAY_ALIVE_ON_FAILURE" = "true" ]; then
- echo "Service died, waiting 120 min before exiting"
- sleep 7200
-fi
-exit $RESULT
diff --git a/documentation/monasca-log-api-kafka.md b/documentation/monasca-log-api-kafka.md
deleted file mode 100644
index 615bfc7b..00000000
--- a/documentation/monasca-log-api-kafka.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Monasca Log API - Kafka
-
-Date: April 18, 2016
-
-Document Version: v0.2
-
-## Introduction
-
-**monasca-log-api** uses kafka transport to ship received logs down to the
-processing pipeline.
-
-For more information about Kafka, please see [official documentation]
-(http://kafka.apache.org/documentation.html).
-
-## Output message format
-Messages sent to kafka should have following format
-(top level object is called **envelope**) and is combined out of three
-elements:
-* log
-* creation_time
-* meta
-
-
- "log":