Update devstack plugin to support new api
Merge log-api and api Story: 2003881 Task: 36195 Depends-On: https://review.opendev.org/681419/ Change-Id: Idb2361e5ab701cd3dee4eabb4b43116f6e1205c4
This commit is contained in:
parent
3ee8332e44
commit
1e3e1173ad
104
.zuul.yaml
104
.zuul.yaml
@ -43,6 +43,7 @@
|
|||||||
c-vol: false
|
c-vol: false
|
||||||
cinder: false
|
cinder: false
|
||||||
horizon: false
|
horizon: false
|
||||||
|
monasca-log: false
|
||||||
tox_envlist: all
|
tox_envlist: all
|
||||||
tempest_test_regex: monasca_tempest_tests.tests.api
|
tempest_test_regex: monasca_tempest_tests.tests.api
|
||||||
devstack_plugins:
|
devstack_plugins:
|
||||||
@ -60,6 +61,70 @@
|
|||||||
- ^doc/.*$
|
- ^doc/.*$
|
||||||
- ^releasenotes/.*$
|
- ^releasenotes/.*$
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: monasca-log-tempest-base
|
||||||
|
parent: devstack-tempest
|
||||||
|
description: |
|
||||||
|
Base job for running tempest tests with monasca-log-api devstack plugin.
|
||||||
|
timeout: 7800
|
||||||
|
required-projects:
|
||||||
|
- openstack/devstack-gate
|
||||||
|
- openstack/monasca-agent
|
||||||
|
- openstack/monasca-api
|
||||||
|
- openstack/monasca-common
|
||||||
|
- openstack/monasca-grafana-datasource
|
||||||
|
- openstack/monasca-notification
|
||||||
|
- openstack/monasca-persister
|
||||||
|
- openstack/monasca-statsd
|
||||||
|
- openstack/monasca-thresh
|
||||||
|
- openstack/monasca-ui
|
||||||
|
- openstack/python-monascaclient
|
||||||
|
- openstack/tempest
|
||||||
|
- openstack/monasca-kibana-plugin
|
||||||
|
- openstack/monasca-tempest-plugin
|
||||||
|
vars:
|
||||||
|
devstack_services:
|
||||||
|
monasca-log: true
|
||||||
|
# Disable unneeded services.
|
||||||
|
etcd3: false
|
||||||
|
g-api: false
|
||||||
|
g-reg: false
|
||||||
|
n-api: false
|
||||||
|
n-api-meta: false
|
||||||
|
n-cauth: false
|
||||||
|
n-cond: false
|
||||||
|
n-cpu: false
|
||||||
|
n-novnc: false
|
||||||
|
n-obj: false
|
||||||
|
n-sch: false
|
||||||
|
placement-api: false
|
||||||
|
s-account: false
|
||||||
|
s-container: false
|
||||||
|
s-object: false
|
||||||
|
s-proxy: false
|
||||||
|
c-api: false
|
||||||
|
c-bak: false
|
||||||
|
c-sch: false
|
||||||
|
c-vol: false
|
||||||
|
cinder: false
|
||||||
|
horizon: false
|
||||||
|
tox_envlist: all
|
||||||
|
tempest_test_regex: monasca_tempest_tests.tests.log_api
|
||||||
|
devstack_plugins:
|
||||||
|
monasca-api: https://opendev.org/openstack/monasca-api
|
||||||
|
zuul_copy_output:
|
||||||
|
/var/log/kafka: logs
|
||||||
|
/var/log/monasca/notification: logs
|
||||||
|
/etc/kafka/server.properties: logs
|
||||||
|
/etc/kafka/producer.properties: logs
|
||||||
|
/etc/kafka/consumer.properties: logs
|
||||||
|
/etc/monasca/monasca-notification.conf: logs
|
||||||
|
irrelevant-files:
|
||||||
|
- ^.*\.rst$
|
||||||
|
- ^.*\.md$
|
||||||
|
- ^doc/.*$
|
||||||
|
- ^releasenotes/.*$
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: monasca-tempest-python2-influxdb
|
name: monasca-tempest-python2-influxdb
|
||||||
parent: monasca-tempest-base
|
parent: monasca-tempest-base
|
||||||
@ -144,6 +209,41 @@
|
|||||||
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||||
tempest_test_regex: (?!.*\[.*\btimerange\b.*\])(^monasca_tempest_tests.tests.api)
|
tempest_test_regex: (?!.*\[.*\btimerange\b.*\])(^monasca_tempest_tests.tests.api)
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: monasca-log-tempest-python3-influxdb
|
||||||
|
parent: monasca-log-tempest-base
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
USE_PYTHON3: true
|
||||||
|
USE_OLD_LOG_API: false
|
||||||
|
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_METRICS_DB: influxdb
|
||||||
|
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: monasca-log-tempest-python2-influxdb
|
||||||
|
parent: monasca-log-tempest-base
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
USE_PYTHON3: false
|
||||||
|
USE_OLD_LOG_API: false
|
||||||
|
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_METRICS_DB: influxdb
|
||||||
|
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: monasca-log-tempest-oldapi-python3-influxdb
|
||||||
|
parent: monasca-log-tempest-base
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
USE_PYTHON3: true
|
||||||
|
USE_OLD_LOG_API: false
|
||||||
|
MONASCA_API_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_PERSISTER_IMPLEMENTATION_LANG: python
|
||||||
|
MONASCA_METRICS_DB: influxdb
|
||||||
|
TEMPEST_PLUGINS: /opt/stack/monasca-tempest-plugin
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
@ -156,19 +256,19 @@
|
|||||||
- release-notes-jobs-python3
|
- release-notes-jobs-python3
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
|
- monasca-log-tempest-python3-influxdb
|
||||||
- monasca-tempest-python2-influxdb
|
- monasca-tempest-python2-influxdb
|
||||||
- monasca-tempest-python3-influxdb
|
- monasca-tempest-python3-influxdb
|
||||||
- monasca-tempest-python2-cassandra
|
- monasca-tempest-python2-cassandra
|
||||||
- monasca-tempest-python2-java-cassandra
|
- monasca-tempest-python2-java-cassandra
|
||||||
- monascalog-python3-tempest
|
|
||||||
- build-monasca-docker-image
|
- build-monasca-docker-image
|
||||||
gate:
|
gate:
|
||||||
queue: monasca
|
queue: monasca
|
||||||
jobs:
|
jobs:
|
||||||
|
- monasca-log-tempest-python3-influxdb
|
||||||
- monasca-tempest-python2-influxdb
|
- monasca-tempest-python2-influxdb
|
||||||
- monasca-tempest-python3-influxdb
|
- monasca-tempest-python3-influxdb
|
||||||
- monasca-tempest-python2-cassandra
|
- monasca-tempest-python2-cassandra
|
||||||
- monascalog-python3-tempest
|
|
||||||
post:
|
post:
|
||||||
jobs:
|
jobs:
|
||||||
- publish-monasca-api-docker-image
|
- publish-monasca-api-docker-image
|
||||||
|
14
devstack/Vagrantfile
vendored
14
devstack/Vagrantfile
vendored
@ -145,6 +145,11 @@ enable_service monasca-storm-nimbus
|
|||||||
enable_service monasca-storm-supervisor
|
enable_service monasca-storm-supervisor
|
||||||
enable_service monasca-storm-ui
|
enable_service monasca-storm-ui
|
||||||
enable_service monasca-storm-logviewer
|
enable_service monasca-storm-logviewer
|
||||||
|
enable_service monasca-log
|
||||||
|
|
||||||
|
|
||||||
|
# Uncomment this line to disable log part
|
||||||
|
# disable_service monasca-log
|
||||||
|
|
||||||
# Enable/Disable ORM support for mysql/postgresql
|
# Enable/Disable ORM support for mysql/postgresql
|
||||||
# HINT: If postgresql service is enabled, ORM is enforced
|
# HINT: If postgresql service is enabled, ORM is enforced
|
||||||
@ -169,15 +174,20 @@ MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
|||||||
|
|
||||||
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-True}
|
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-True}
|
||||||
|
|
||||||
|
# Uncomment to stack devstack with old log-api
|
||||||
|
# USE_OLD_LOG_API=true
|
||||||
|
# enable_service monasca-log-api
|
||||||
|
|
||||||
# Start devstack with services running under Python 3
|
# Start devstack with services running under Python 3
|
||||||
USE_PYTHON3=True
|
USE_PYTHON3=True
|
||||||
|
|
||||||
|
|
||||||
# Uncomment one of the following lines and modify accordingly to enable the Monasca DevStack Plugin
|
# Uncomment one of the following lines and modify accordingly to enable the Monasca DevStack Plugin
|
||||||
enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api
|
enable_plugin monasca-api https://opendev.org/openstack/monasca-api
|
||||||
# enable_plugin monasca-api file:///vagrant_home/Documents/repos/openstack/monasca-api.vertica
|
# enable_plugin monasca-api file:///vagrant_home/Documents/repos/openstack/monasca-api.vertica
|
||||||
|
|
||||||
# Uncomment to install tempest tests
|
# Uncomment to install tempest tests
|
||||||
# enable_plugin monasca-tempest-plugin https://git.openstack.org/openstack/monasca-tempest-plugin
|
enable_plugin monasca-tempest-plugin https://opendev.org/openstack/monasca-tempest-plugin
|
||||||
|
|
||||||
' > local.conf
|
' > local.conf
|
||||||
./stack.sh
|
./stack.sh
|
||||||
|
360
devstack/files/elasticsearch/elasticsearch.yml
Normal file
360
devstack/files/elasticsearch/elasticsearch.yml
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
##################### Elasticsearch Configuration Example #####################
|
||||||
|
|
||||||
|
# This file contains an overview of various configuration settings,
|
||||||
|
# targeted at operations staff. Application developers should
|
||||||
|
# consult the guide at <http://elasticsearch.org/guide>.
|
||||||
|
#
|
||||||
|
# The installation procedure is covered at
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html>.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup-configuration.html>
|
||||||
|
|
||||||
|
|
||||||
|
################################### 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 <http://www.elasticsearch.org/overview/marvel/>,
|
||||||
|
# <http://github.com/karmi/elasticsearch-paramedic>,
|
||||||
|
# <http://github.com/lukas-vlcek/bigdesk> and
|
||||||
|
# <http://mobz.github.com/elasticsearch-head> 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 <http://elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html> and
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>
|
||||||
|
# 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 (<http://localhost:9200/A/_status>) 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
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-gateway.html>.
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html>
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-ec2.html>
|
||||||
|
#
|
||||||
|
# See <http://elasticsearch.org/tutorials/elasticsearch-on-ec2/>
|
||||||
|
# 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 <https://github.com/elasticsearch/elasticsearch-cloud-gce>.
|
||||||
|
|
||||||
|
# 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 <https://github.com/elasticsearch/elasticsearch-cloud-azure>.
|
||||||
|
|
||||||
|
################################## 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
|
624
devstack/files/grafana/dashboards.d/20-kibana.json
Normal file
624
devstack/files/grafana/dashboards.d/20-kibana.json
Normal file
@ -0,0 +1,624 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
624
devstack/files/grafana/dashboards.d/22-logtransformer.json
Normal file
624
devstack/files/grafana/dashboards.d/22-logtransformer.json
Normal file
@ -0,0 +1,624 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
624
devstack/files/grafana/dashboards.d/23-logtmetrics.json
Normal file
624
devstack/files/grafana/dashboards.d/23-logtmetrics.json
Normal file
@ -0,0 +1,624 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
624
devstack/files/grafana/dashboards.d/24-logpersister.json
Normal file
624
devstack/files/grafana/dashboards.d/24-logpersister.json
Normal file
@ -0,0 +1,624 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
78
devstack/files/kibana/kibana.yml
Normal file
78
devstack/files/kibana/kibana.yml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# 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
|
3
devstack/files/monasca-agent/elastic.yaml
Normal file
3
devstack/files/monasca-agent/elastic.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
init_config:
|
||||||
|
instances:
|
||||||
|
- url: http://{{IP}}:9200
|
@ -3,6 +3,6 @@ init_config:
|
|||||||
ssh_port: 22
|
ssh_port: 22
|
||||||
ssh_timeout: 0.5
|
ssh_timeout: 0.5
|
||||||
instances:
|
instances:
|
||||||
- alive_test: ssh
|
- alive_test: ssh
|
||||||
host_name: 127.0.0.1
|
host_name: 127.0.0.1
|
||||||
name: 127.0.0.1
|
name: 127.0.0.1
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
init_config: null
|
init_config: null
|
||||||
instances:
|
instances:
|
||||||
- name: keystone
|
- name: keystone
|
||||||
dimensions:
|
dimensions:
|
||||||
service: keystone
|
service: keystone
|
||||||
timeout: 3
|
timeout: 3
|
||||||
url: http://127.0.0.1/identity
|
url: http://127.0.0.1/identity
|
||||||
- name: mysql
|
- name: mysql
|
||||||
dimensions:
|
dimensions:
|
||||||
service: mysql
|
service: mysql
|
||||||
timeout: 3
|
timeout: 3
|
||||||
url: http://127.0.0.1:3306
|
url: http://127.0.0.1:3306
|
||||||
- name: influxdb
|
- name: influxdb
|
||||||
dimensions:
|
dimensions:
|
||||||
service: influxdb
|
service: influxdb
|
||||||
timeout: 3
|
timeout: 3
|
||||||
url: http://127.0.0.1:8086/ping
|
url: http://127.0.0.1:8086/ping
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
init_config:
|
init_config:
|
||||||
|
|
||||||
instances:
|
instances:
|
||||||
- built_by: Kafka
|
- built_by: Kafka
|
||||||
consumer_groups:
|
consumer_groups:
|
||||||
1_metrics:
|
1_metrics:
|
||||||
metrics: []
|
metrics: []
|
||||||
thresh-event:
|
thresh-event:
|
||||||
events: []
|
events: []
|
||||||
thresh-metric:
|
thresh-metric:
|
||||||
metrics: []
|
metrics: []
|
||||||
kafka_connect_str: 127.0.0.1:9092
|
kafka_connect_str: 127.0.0.1:9092
|
||||||
name: 127.0.0.1:9092
|
name: 127.0.0.1:9092
|
||||||
per_partition: false
|
per_partition: false
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
init_config:
|
init_config:
|
||||||
instances:
|
instances:
|
||||||
- built_by: MySQL
|
- built_by: MySQL
|
||||||
name: mysql
|
name: mysql
|
||||||
server: 127.0.0.1
|
server: 127.0.0.1
|
||||||
port: 3306
|
port: 3306
|
||||||
user: root
|
user: root
|
||||||
pass: secretdatabase
|
pass: secretdatabase
|
||||||
|
@ -1,87 +1,87 @@
|
|||||||
init_config:
|
init_config:
|
||||||
|
|
||||||
instances:
|
instances:
|
||||||
- name: influxd
|
- name: influxd
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: influxd
|
service: influxd
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- influxd
|
- influxd
|
||||||
- name: monasca-statsd
|
- name: monasca-statsd
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: monasca-statsd
|
service: monasca-statsd
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- monasca-statsd
|
- monasca-statsd
|
||||||
- name: monasca-notification
|
- name: monasca-notification
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: monasca-notification
|
service: monasca-notification
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- monasca-notification
|
- monasca-notification
|
||||||
- name: persister
|
- name: persister
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: persister
|
service: persister
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- persister
|
- persister
|
||||||
- name: storm
|
- name: storm
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: storm
|
service: storm
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- storm
|
- storm
|
||||||
- name: monasca-api
|
- name: monasca-api
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: uwsgi
|
service: uwsgi
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- uwsgi
|
- uwsgi
|
||||||
- name: monasca-collector
|
- name: monasca-collector
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: monasca-collector
|
service: monasca-collector
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- monasca-collector
|
- monasca-collector
|
||||||
- name: memcached
|
- name: memcached
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: memcached
|
service: memcached
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- memcached
|
- memcached
|
||||||
- name: monasca-forwarder
|
- name: monasca-forwarder
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: monasca-forwarder
|
service: monasca-forwarder
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- monasca-forwarder
|
- monasca-forwarder
|
||||||
- name: zookeeper
|
- name: zookeeper
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: zookeeper
|
service: zookeeper
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- zookeeper
|
- zookeeper
|
||||||
- name: kafka
|
- name: kafka
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: kafka
|
service: kafka
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- kafka
|
- kafka
|
||||||
- name: mysqld
|
- name: mysqld
|
||||||
detailed: true
|
detailed: true
|
||||||
dimensions:
|
dimensions:
|
||||||
service: mysqld
|
service: mysqld
|
||||||
exact_match: false
|
exact_match: false
|
||||||
search_string:
|
search_string:
|
||||||
- mysqld
|
- mysqld
|
||||||
|
46
devstack/files/monasca-log-agent/agent.conf
Normal file
46
devstack/files/monasca-log-agent/agent.conf
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#
|
||||||
|
# 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
monasca_log_api {
|
||||||
|
monasca_log_api_url => "%MONASCA_API_URI_V2%"
|
||||||
|
keystone_api_url => "%KEYSTONE_AUTH_URI%"
|
||||||
|
project_name => "mini-mon"
|
||||||
|
username => "monasca-agent"
|
||||||
|
password => "password"
|
||||||
|
user_domain_name => "default"
|
||||||
|
project_domain_name => "default"
|
||||||
|
dimensions => [ "hostname:devstack" ]
|
||||||
|
}
|
||||||
|
}
|
81
devstack/files/monasca-log-metrics/log-metrics.conf
Normal file
81
devstack/files/monasca-log-metrics/log-metrics.conf
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# 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 => "127.0.0.1:9092"
|
||||||
|
topic_id => "metrics"
|
||||||
|
client_id => "monasca_log_metrics"
|
||||||
|
compression_type => "none"
|
||||||
|
}
|
||||||
|
}
|
71
devstack/files/monasca-log-persister/persister.conf
Normal file
71
devstack/files/monasca-log-persister/persister.conf
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
#
|
||||||
|
# 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]" => "^(?<index_date>\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
|
||||||
|
}
|
||||||
|
}
|
87
devstack/files/monasca-log-transformer/transformer.conf
Normal file
87
devstack/files/monasca-log-transformer/transformer.conf
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
#
|
||||||
|
# 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)(?<log_level>AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?<log_level>\d{2})"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ! [log_level] {
|
||||||
|
grok {
|
||||||
|
match => {
|
||||||
|
"[log][message]" => "(?i)(?<log_level>AUDIT|CRITICAL|DEBUG|INFO|TRACE|ERR(OR)?|WARN(ING)?)|\"level\":\s?(?<log_level>\d{2})"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ruby {
|
||||||
|
init => "
|
||||||
|
LOG_LEVELS_MAP = {
|
||||||
|
# SYSLOG
|
||||||
|
'warn' => :Warning,
|
||||||
|
'err' => :Error,
|
||||||
|
# Bunyan errcodes
|
||||||
|
'10' => :Trace,
|
||||||
|
'20' => :Debug,
|
||||||
|
'30' => :Info,
|
||||||
|
'40' => :Warning,
|
||||||
|
'50' => :Error,
|
||||||
|
'60' => :Fatal
|
||||||
|
}
|
||||||
|
"
|
||||||
|
code => "
|
||||||
|
if event['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"
|
||||||
|
}
|
||||||
|
}
|
747
devstack/lib/monasca-log.sh
Normal file
747
devstack/lib/monasca-log.sh
Normal file
@ -0,0 +1,747 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright 2016-2017 FUJITSU LIMITED
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
# implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
_XTRACE_MON_LOG=$(set +o | grep xtrace)
|
||||||
|
set +o xtrace
|
||||||
|
|
||||||
|
_ERREXIT_MON_LOG=$(set +o | grep errexit)
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
# configuration bits of various services
|
||||||
|
LOG_PERSISTER_DIR=$DEST/monasca-log-persister
|
||||||
|
LOG_TRANSFORMER_DIR=$DEST/monasca-log-transformer
|
||||||
|
LOG_METRICS_DIR=$DEST/monasca-log-metrics
|
||||||
|
LOG_AGENT_DIR=$DEST/monasca-log-agent
|
||||||
|
|
||||||
|
ELASTICSEARCH_DIR=$DEST/elasticsearch
|
||||||
|
ELASTICSEARCH_CFG_DIR=$ELASTICSEARCH_DIR/config
|
||||||
|
ELASTICSEARCH_LOG_DIR=$LOGDIR/elasticsearch
|
||||||
|
ELASTICSEARCH_DATA_DIR=$DATA_DIR/elasticsearch
|
||||||
|
|
||||||
|
KIBANA_DIR=$DEST/kibana
|
||||||
|
KIBANA_CFG_DIR=$KIBANA_DIR/config
|
||||||
|
|
||||||
|
LOGSTASH_DIR=$DEST/logstash
|
||||||
|
|
||||||
|
|
||||||
|
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"}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MONASCA_LOG_API_BASE_URI=https://${MONASCA_API_BASE_URI}/logs
|
||||||
|
|
||||||
|
|
||||||
|
run_process_sleep() {
|
||||||
|
local name=$1
|
||||||
|
local cmd=$2
|
||||||
|
local sleepTime=${3:-1}
|
||||||
|
run_process "$name" "$cmd"
|
||||||
|
sleep ${sleepTime}
|
||||||
|
}
|
||||||
|
|
||||||
|
is_logstash_required() {
|
||||||
|
is_service_enabled monasca-log-persister \
|
||||||
|
|| is_service_enabled monasca-log-transformer \
|
||||||
|
|| is_service_enabled monasca-log-metrics \
|
||||||
|
|| is_service_enabled monasca-log-agent \
|
||||||
|
&& return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# TOP_LEVEL functions called from devstack coordinator
|
||||||
|
###############################################################################
|
||||||
|
function pre_install_logs_services {
|
||||||
|
install_elk
|
||||||
|
install_nodejs
|
||||||
|
install_gate_config_holder
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_monasca_log {
|
||||||
|
build_kibana_plugin
|
||||||
|
install_log_agent
|
||||||
|
if $USE_OLD_LOG_API = true; then
|
||||||
|
install_old_log_api
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_elk {
|
||||||
|
install_logstash
|
||||||
|
install_elasticsearch
|
||||||
|
install_kibana
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_gate_config_holder {
|
||||||
|
sudo install -d -o $STACK_USER $GATE_CONFIGURATION_DIR
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_monasca_statsd {
|
||||||
|
if use_library_from_git "monasca-statsd"; then
|
||||||
|
git_clone_by_name "monasca-statsd"
|
||||||
|
setup_dev_lib "monasca-statsd"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function configure_monasca_log {
|
||||||
|
configure_kafka
|
||||||
|
configure_elasticsearch
|
||||||
|
configure_kibana
|
||||||
|
install_kibana_plugin
|
||||||
|
if $USE_OLD_LOG_API = true; then
|
||||||
|
configure_old_monasca_log_api
|
||||||
|
fi
|
||||||
|
configure_monasca_log_api
|
||||||
|
configure_monasca_log_transformer
|
||||||
|
configure_monasca_log_metrics
|
||||||
|
configure_monasca_log_persister
|
||||||
|
configure_monasca_log_agent
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function init_monasca_log {
|
||||||
|
enable_log_management
|
||||||
|
}
|
||||||
|
|
||||||
|
function init_monasca_grafana_dashboards {
|
||||||
|
if is_service_enabled horizon; then
|
||||||
|
echo_summary "Init Grafana dashboards"
|
||||||
|
|
||||||
|
sudo python "${PLUGIN_FILES}"/grafana/grafana.py "${PLUGIN_FILES}"/grafana/dashboards.d
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_old_log_api {
|
||||||
|
|
||||||
|
if python3_enabled; then
|
||||||
|
enable_python3_package monasca-log-api
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_summary "Installing monasca-log-api"
|
||||||
|
|
||||||
|
git_clone $MONASCA_LOG_API_REPO $MONASCA_LOG_API_DIR $MONASCA_LOG_API_BRANCH
|
||||||
|
setup_develop $MONASCA_LOG_API_DIR
|
||||||
|
|
||||||
|
install_keystonemiddleware
|
||||||
|
install_monasca_statsd
|
||||||
|
|
||||||
|
if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
|
||||||
|
install_apache_wsgi
|
||||||
|
elif [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
|
||||||
|
pip_install uwsgi
|
||||||
|
else
|
||||||
|
pip_install gunicorn
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MONASCA_LOG_API_DEPLOY" != "gunicorn" ]; then
|
||||||
|
if is_ssl_enabled_service "monasca-log-api"; then
|
||||||
|
enable_mod_ssl
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function configure_old_monasca_log_api {
|
||||||
|
MONASCA_LOG_API_BIN_DIR=$(get_python_exec_prefix)
|
||||||
|
MONASCA_LOG_API_WSGI=$MONASCA_LOG_API_BIN_DIR/monasca-log-api-wsgi
|
||||||
|
|
||||||
|
if is_service_enabled monasca-log-api; then
|
||||||
|
echo_summary "Configuring monasca-log-api"
|
||||||
|
rm -rf $MONASCA_LOG_API_UWSGI_CONF
|
||||||
|
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-uwsgi.ini $MONASCA_LOG_API_UWSGI_CONF
|
||||||
|
|
||||||
|
write_uwsgi_config "$MONASCA_LOG_API_UWSGI_CONF" "$MONASCA_LOG_API_WSGI" "/logs"
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function configure_old_monasca_log_api_core {
|
||||||
|
# Put config files in ``$MONASCA_LOG_API_CONF_DIR`` for everyone to find
|
||||||
|
sudo install -d -o $STACK_USER $MONASCA_LOG_API_CONF_DIR
|
||||||
|
sudo install -m 700 -d -o $STACK_USER $MONASCA_LOG_API_CACHE_DIR
|
||||||
|
sudo install -d -o $STACK_USER $MONASCA_LOG_API_LOG_DIR
|
||||||
|
|
||||||
|
# ensure fresh installation of configuration files
|
||||||
|
rm -rf $MONASCA_LOG_API_CONF $MONASCA_LOG_API_PASTE $MONASCA_LOG_API_LOGGING_CONF
|
||||||
|
|
||||||
|
$MONASCA_LOG_API_BIN_DIR/oslo-config-generator \
|
||||||
|
--config-file $MONASCA_LOG_API_DIR/config-generator/monasca-log-api.conf \
|
||||||
|
--output-file /tmp/monasca-log-api.conf
|
||||||
|
|
||||||
|
install -m 600 /tmp/monasca-log-api.conf $MONASCA_LOG_API_CONF && rm -rf /tmp/monasca-log-api.conf
|
||||||
|
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-paste.ini $MONASCA_LOG_API_PASTE
|
||||||
|
install -m 600 $MONASCA_LOG_API_DIR/etc/monasca/log-api-logging.conf $MONASCA_LOG_API_LOGGING_CONF
|
||||||
|
|
||||||
|
# configure monasca-log-api.conf
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" DEFAULT log_config_append $MONASCA_LOG_API_LOGGING_CONF
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" service region $REGION_NAME
|
||||||
|
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" log_publisher kafka_url $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" log_publisher topics log
|
||||||
|
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" kafka_healthcheck kafka_url $KAFKA_SERVICE_HOST:$KAFKA_SERVICE_PORT
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" kafka_healthcheck kafka_topics log
|
||||||
|
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" roles_middleware path "/v2.0/log"
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" roles_middleware default_roles monasca-user
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" roles_middleware agent_roles monasca-agent
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" roles_middleware delegate_roles admin
|
||||||
|
|
||||||
|
# configure keystone middleware
|
||||||
|
configure_auth_token_middleware "$MONASCA_LOG_API_CONF" "admin" $MONASCA_LOG_API_CACHE_DIR
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken region_name $REGION_NAME
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken project_name "admin"
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken password $ADMIN_PASSWORD
|
||||||
|
|
||||||
|
# insecure
|
||||||
|
if is_service_enabled tls-proxy; then
|
||||||
|
iniset "$MONASCA_LOG_API_CONF" keystone_authtoken insecure False
|
||||||
|
fi
|
||||||
|
|
||||||
|
# configure log-api-paste.ini
|
||||||
|
iniset "$MONASCA_LOG_API_PASTE" server:main bind $MONASCA_LOG_API_SERVICE_HOST:$MONASCA_LOG_API_SERVICE_PORT
|
||||||
|
iniset "$MONASCA_LOG_API_PASTE" server:main chdir $MONASCA_LOG_API_DIR
|
||||||
|
iniset "$MONASCA_LOG_API_PASTE" server:main workers $API_WORKERS
|
||||||
|
}
|
||||||
|
|
||||||
|
function init_agent {
|
||||||
|
echo_summary "Init Monasca agent"
|
||||||
|
|
||||||
|
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/http_check.yaml /etc/monasca/agent/conf.d/http_check.yaml
|
||||||
|
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/process.yaml /etc/monasca/agent/conf.d/process.yaml
|
||||||
|
sudo cp -f "${PLUGIN_FILES}"/monasca-agent/elastic.yaml /etc/monasca/agent/conf.d/elastic.yaml
|
||||||
|
|
||||||
|
sudo sed -i "s/{{IP}}/$(ip -o -4 addr list eth1 | awk '{print $4}' | cut -d/ -f1 | head -1)/" /etc/monasca/agent/conf.d/*.yaml
|
||||||
|
sudo sed -i "s/127\.0\.0\.1/$(hostname)/" /etc/monasca/agent/conf.d/*.yaml
|
||||||
|
sudo systemctl restart monasca-collector
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop_monasca_log {
|
||||||
|
stop_process "monasca-log-agent" || true
|
||||||
|
stop_monasca_log_api
|
||||||
|
stop_process "monasca-log-metrics" || true
|
||||||
|
stop_process "monasca-log-persister" || true
|
||||||
|
stop_process "monasca-log-transformer" || true
|
||||||
|
stop_process "kibana" || true
|
||||||
|
stop_process "elasticsearch" || true
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_monasca_log {
|
||||||
|
start_elasticsearch
|
||||||
|
start_kibana
|
||||||
|
start_monasca_log_transformer
|
||||||
|
start_monasca_log_metrics
|
||||||
|
start_monasca_log_persister
|
||||||
|
if $USE_OLD_LOG_API = true; then
|
||||||
|
start_monasca_log_api
|
||||||
|
fi
|
||||||
|
start_monasca_log_agent
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_monasca_log {
|
||||||
|
clean_monasca_log_agent
|
||||||
|
clean_monasca_log_api
|
||||||
|
clean_monasca_log_persister
|
||||||
|
clean_monasca_log_transformer
|
||||||
|
clean_kibana
|
||||||
|
clean_elasticsearch
|
||||||
|
clean_logstash
|
||||||
|
clean_nodejs
|
||||||
|
clean_gate_config_holder
|
||||||
|
}
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
function configure_monasca_log_api {
|
||||||
|
if is_service_enabled monasca-log; then
|
||||||
|
echo_summary "Configuring monasca-api"
|
||||||
|
iniset "$MONASCA_API_CONF" DEFAULT enable_logs_api "true"
|
||||||
|
iniset "$MONASCA_API_CONF" kafka logs_topics "log"
|
||||||
|
|
||||||
|
create_log_management_accounts
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_logstash {
|
||||||
|
if is_logstash_required; then
|
||||||
|
echo_summary "Installing Logstash ${LOGSTASH_VERSION}"
|
||||||
|
|
||||||
|
local logstash_tarball=logstash-${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 install_kibana {
|
||||||
|
if is_service_enabled kibana; then
|
||||||
|
echo_summary "Installing Kibana ${KIBANA_VERSION}"
|
||||||
|
|
||||||
|
local kibana_tarball=kibana-${KIBANA_VERSION}.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-${KIBANA_VERSION}
|
||||||
|
ln -sf $DEST/kibana-${KIBANA_VERSION} $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}"
|
||||||
|
|
||||||
|
sudo rm -rf $KIBANA_DIR || true
|
||||||
|
sudo rm -rf $FILES/kibana-${KIBANA_VERSION}.tar.gz || 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_API_URI_V2%|$MONASCA_API_URI_V2|g;
|
||||||
|
s|%KEYSTONE_AUTH_URI%|$KEYSTONE_AUTH_URI_V3|g;
|
||||||
|
" -i $LOG_AGENT_DIR/agent.conf
|
||||||
|
|
||||||
|
ln -sf $LOG_AGENT_DIR/agent.conf $GATE_CONFIGURATION_DIR/log-agent.conf
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_monasca_log_agent {
|
||||||
|
if is_service_enabled monasca-log-agent; then
|
||||||
|
echo_summary "Cleaning monasca-log-agent"
|
||||||
|
sudo rm -rf $LOG_AGENT_DIR || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function start_monasca_log_api {
|
||||||
|
if is_service_enabled monasca-log-api; then
|
||||||
|
echo_summary "Starting monasca-log-api"
|
||||||
|
|
||||||
|
local service_port=$MONASCA_LOG_API_SERVICE_PORT
|
||||||
|
local service_protocol=$MONASCA_LOG_API_SERVICE_PROTOCOL
|
||||||
|
if is_service_enabled tls-proxy; then
|
||||||
|
service_port=$MONASCA_LOG_API_SERVICE_PORT_INT
|
||||||
|
service_protocol="http"
|
||||||
|
fi
|
||||||
|
local service_uri
|
||||||
|
|
||||||
|
if [ "$MONASCA_LOG_API_DEPLOY" == "mod_wsgi" ]; then
|
||||||
|
local enabled_site_file
|
||||||
|
enabled_site_file=$(apache_site_config_for monasca-log-api)
|
||||||
|
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST/logs/v3.0
|
||||||
|
if [ -f ${enabled_site_file} ]; then
|
||||||
|
enable_apache_site monasca-log-api
|
||||||
|
restart_apache_server
|
||||||
|
tail_log monasca-log-api /var/log/$APACHE_NAME/monasca-log-api.log
|
||||||
|
fi
|
||||||
|
elif [ "$MONASCA_LOG_API_DEPLOY" == "uwsgi" ]; then
|
||||||
|
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST/logs/v3.0
|
||||||
|
run_process "monasca-log-api" "$MONASCA_LOG_API_BIN_DIR/uwsgi --ini $MONASCA_LOG_API_UWSGI_CONF" ""
|
||||||
|
else
|
||||||
|
service_uri=$service_protocol://$MONASCA_LOG_API_SERVICE_HOST:$service_port
|
||||||
|
run_process "monasca-log-api" "$MONASCA_LOG_API_BIN_DIR/gunicorn --paste $MONASCA_LOG_API_PASTE" ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Waiting for monasca-log-api to start..."
|
||||||
|
if ! wait_for_service $SERVICE_TIMEOUT $service_uri; then
|
||||||
|
die $LINENO "monasca-log-api did not start"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if is_service_enabled tls-proxy; then
|
||||||
|
start_tls_proxy monasca-log-api '*' $MONASCA_LOG_API_SERVICE_PORT $MONASCA_LOG_API_SERVICE_HOST $MONASCA_LOG_API_SERVICE_PORT_INT
|
||||||
|
fi
|
||||||
|
|
||||||
|
restart_service memcached
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_monasca_log_agent {
|
||||||
|
if is_service_enabled monasca-log-agent; then
|
||||||
|
echo_summary "Starting monasca-log-agent"
|
||||||
|
local logstash="$LOGSTASH_DIR/bin/logstash"
|
||||||
|
run_process "monasca-log-agent" "$logstash -f $LOG_AGENT_DIR/agent.conf" "root" "root"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_nodejs {
|
||||||
|
if is_service_enabled kibana; then
|
||||||
|
# refresh installation
|
||||||
|
apt_get install nodejs npm
|
||||||
|
(
|
||||||
|
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 npm
|
||||||
|
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
|
||||||
|
|
||||||
|
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; then
|
||||||
|
echo_summary "Enable Log Management in Keystone"
|
||||||
|
|
||||||
|
# note(trebskit) following points to Kibana which is bad,
|
||||||
|
# but we do not have search-api in monasca-log-api now
|
||||||
|
# this code will be removed in future
|
||||||
|
local log_search_url="http://$KIBANA_SERVICE_HOST:$KIBANA_SERVICE_PORT/"
|
||||||
|
|
||||||
|
get_or_create_service "logs" "logs" "Monasca Log service"
|
||||||
|
|
||||||
|
if $USE_OLD_LOG_API = true; then
|
||||||
|
get_or_create_endpoint \
|
||||||
|
"logs" \
|
||||||
|
"$REGION_NAME" \
|
||||||
|
"$MONASCA_LOG_API_BASE_URI" \
|
||||||
|
"$MONASCA_LOG_API_BASE_URI" \
|
||||||
|
"$MONASCA_LOG_API_BASE_URI"
|
||||||
|
else
|
||||||
|
get_or_create_endpoint \
|
||||||
|
"logs" \
|
||||||
|
"$REGION_NAME" \
|
||||||
|
"$MONASCA_API_URI_V2" \
|
||||||
|
"$MONASCA_API_URI_V2" \
|
||||||
|
"$MONASCA_API_URI_V2"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_or_create_service "logs-search" "logs-search" "Monasca Log search service"
|
||||||
|
get_or_create_endpoint \
|
||||||
|
"logs-search" \
|
||||||
|
"$REGION_NAME" \
|
||||||
|
"$log_search_url" \
|
||||||
|
"$log_search_url" \
|
||||||
|
"$log_search_url"
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#Restore errexit
|
||||||
|
${_ERREXIT_MON_LOG}
|
||||||
|
|
||||||
|
# Restore xtrace
|
||||||
|
${_XTRACE_MON_LOG}
|
@ -36,9 +36,23 @@ function configure_ui {
|
|||||||
|
|
||||||
cp $MONASCA_UI_DIR/monitoring/config/local_settings.py \
|
cp $MONASCA_UI_DIR/monitoring/config/local_settings.py \
|
||||||
$HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
$HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
||||||
|
|
||||||
|
local localSettings=$HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
||||||
|
|
||||||
sed -e "
|
sed -e "
|
||||||
s#getattr(settings, 'GRAFANA_URL', None)#{'RegionOne': \"http:\/\/${SERVICE_HOST}:3000\", }#g;
|
s#getattr(settings, 'GRAFANA_URL', None)#{'RegionOne': \"http:\/\/${SERVICE_HOST}:3000\", }#g;
|
||||||
" -i $HORIZON_DIR/openstack_dashboard/local/local_settings.d/_50_monasca_ui_settings.py
|
" -i ${localSettings}
|
||||||
|
|
||||||
|
if is_service_enabled horizon && is_service_enabled kibana && is_service_enabled monasca-log; then
|
||||||
|
echo_summary "Configure Horizon with Kibana access"
|
||||||
|
sudo sed -e "
|
||||||
|
s|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://192.168.10.6:5601/')|KIBANA_HOST = getattr(settings, 'KIBANA_HOST', 'http://${KIBANA_SERVICE_HOST}:${KIBANA_SERVICE_PORT}/')|g;
|
||||||
|
" -i ${localSettings}
|
||||||
|
|
||||||
|
sudo sed -e "
|
||||||
|
s|'ENABLE_LOG_MANAGEMENT_BUTTON', False|'ENABLE_LOG_MANAGEMENT_BUTTON', True|g;
|
||||||
|
" -i ${localSettings}
|
||||||
|
fi
|
||||||
if python3_enabled; then
|
if python3_enabled; then
|
||||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py collectstatic --noinput
|
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py collectstatic --noinput
|
||||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py compress --force
|
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python3 "${MONASCA_BASE}"/horizon/manage.py compress --force
|
||||||
|
@ -54,6 +54,7 @@ source ${MONASCA_API_DIR}/devstack/lib/profile.sh
|
|||||||
source ${MONASCA_API_DIR}/devstack/lib/client.sh
|
source ${MONASCA_API_DIR}/devstack/lib/client.sh
|
||||||
source ${MONASCA_API_DIR}/devstack/lib/persister.sh
|
source ${MONASCA_API_DIR}/devstack/lib/persister.sh
|
||||||
source ${MONASCA_API_DIR}/devstack/lib/storm.sh
|
source ${MONASCA_API_DIR}/devstack/lib/storm.sh
|
||||||
|
source ${MONASCA_API_DIR}/devstack/lib/monasca-log.sh
|
||||||
# source lib/*
|
# source lib/*
|
||||||
|
|
||||||
# Set default implementations to python
|
# Set default implementations to python
|
||||||
@ -99,6 +100,8 @@ if [[ "${MONASCA_API_USE_MOD_WSGI}" == 'True' && "${MONASCA_API_IMPLEMENTATION_L
|
|||||||
else
|
else
|
||||||
MONASCA_API_BASE_URI=${MONASCA_API_SERVICE_PROTOCOL}://${MONASCA_API_SERVICE_HOST}:${MONASCA_API_SERVICE_PORT}
|
MONASCA_API_BASE_URI=${MONASCA_API_SERVICE_PROTOCOL}://${MONASCA_API_SERVICE_HOST}:${MONASCA_API_SERVICE_PORT}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
MONASCA_API_URI_V2=${MONASCA_API_BASE_URI}/v2.0
|
MONASCA_API_URI_V2=${MONASCA_API_BASE_URI}/v2.0
|
||||||
|
|
||||||
# Files inside this directory will be visible in gates log
|
# Files inside this directory will be visible in gates log
|
||||||
@ -168,7 +171,7 @@ function configure_system_encoding_format {
|
|||||||
function extra_monasca {
|
function extra_monasca {
|
||||||
echo_summary "Installing additional monasca components"
|
echo_summary "Installing additional monasca components"
|
||||||
|
|
||||||
create_metric_accounts
|
create_accounts
|
||||||
install_monasca_agent
|
install_monasca_agent
|
||||||
install_monascaclient
|
install_monascaclient
|
||||||
install_monasca_profile
|
install_monasca_profile
|
||||||
@ -829,6 +832,15 @@ function configure_monasca_api_python {
|
|||||||
# default settings
|
# default settings
|
||||||
iniset "$MONASCA_API_CONF" DEFAULT region $REGION_NAME
|
iniset "$MONASCA_API_CONF" DEFAULT region $REGION_NAME
|
||||||
iniset "$MONASCA_API_CONF" DEFAULT log_config_append $MONASCA_API_LOGGING_CONF
|
iniset "$MONASCA_API_CONF" DEFAULT log_config_append $MONASCA_API_LOGGING_CONF
|
||||||
|
if $USE_OLD_LOG_API = true; then
|
||||||
|
iniset "$MONASCA_API_CONF" DEFAULT enable_logs_api false
|
||||||
|
else
|
||||||
|
if is_service_enabled monasca-log; then
|
||||||
|
iniset "$MONASCA_API_CONF" DEFAULT enable_logs_api true
|
||||||
|
else
|
||||||
|
iniset "$MONASCA_API_CONF" DEFAULT enable_logs_api false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# logging
|
# logging
|
||||||
iniset "$MONASCA_API_LOGGING_CONF" handler_file args "('$MONASCA_API_LOG_DIR/monasca-api.log', 'a', 104857600, 5)"
|
iniset "$MONASCA_API_LOGGING_CONF" handler_file args "('$MONASCA_API_LOG_DIR/monasca-api.log', 'a', 104857600, 5)"
|
||||||
@ -1057,7 +1069,7 @@ function clean_monasca_thresh {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_metric_accounts {
|
function create_accounts {
|
||||||
|
|
||||||
local projects=("mini-mon" "admin" "demo")
|
local projects=("mini-mon" "admin" "demo")
|
||||||
declare -A users=(
|
declare -A users=(
|
||||||
@ -1103,6 +1115,27 @@ function create_metric_accounts {
|
|||||||
"${MONASCA_API_URI_V2}" \
|
"${MONASCA_API_URI_V2}" \
|
||||||
"${MONASCA_API_URI_V2}" \
|
"${MONASCA_API_URI_V2}" \
|
||||||
"${MONASCA_API_URI_V2}"
|
"${MONASCA_API_URI_V2}"
|
||||||
|
|
||||||
|
if is_service_enabled monasca-log; then
|
||||||
|
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_API_URI_V2}" \
|
||||||
|
"{$MONASCA_API_URI_V2}" \
|
||||||
|
"{$MONASCA_API_URI_V2}"
|
||||||
|
|
||||||
|
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 install_keystone_client {
|
function install_keystone_client {
|
||||||
@ -1447,6 +1480,50 @@ if is_service_enabled monasca; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 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_logs_services
|
||||||
|
|
||||||
|
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
|
||||||
|
# Perform installation of service source
|
||||||
|
echo_summary "Installing Monasca Log Management"
|
||||||
|
install_monasca_log
|
||||||
|
|
||||||
|
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
|
#Restore errexit
|
||||||
$ERREXIT
|
$ERREXIT
|
||||||
|
|
||||||
|
@ -82,6 +82,18 @@ enable_service monasca-agent
|
|||||||
# monasca-cli depends on monasca-api
|
# monasca-cli depends on monasca-api
|
||||||
enable_service monasca-cli
|
enable_service monasca-cli
|
||||||
|
|
||||||
|
#
|
||||||
|
# Monasca logs services
|
||||||
|
#
|
||||||
|
|
||||||
|
enable_service kibana
|
||||||
|
enable_service elasticsearch
|
||||||
|
enable_service monasca-log
|
||||||
|
enable_service monasca-log-persister
|
||||||
|
enable_service monasca-log-transformer
|
||||||
|
enable_service monasca-log-metrics
|
||||||
|
enable_service monasca-log-agent
|
||||||
|
|
||||||
#
|
#
|
||||||
# Dependent Software Versions
|
# Dependent Software Versions
|
||||||
#
|
#
|
||||||
@ -110,6 +122,10 @@ STORM_VERSION=${STORM_VERSION:-1.2.2}
|
|||||||
GO_VERSION=${GO_VERSION:-"1.7.1"}
|
GO_VERSION=${GO_VERSION:-"1.7.1"}
|
||||||
NODE_JS_VERSION=${NODE_JS_VERSION:-"4.0.0"}
|
NODE_JS_VERSION=${NODE_JS_VERSION:-"4.0.0"}
|
||||||
NVM_VERSION=${NVM_VERSION:-"0.32.1"}
|
NVM_VERSION=${NVM_VERSION:-"0.32.1"}
|
||||||
|
KIBANA_VERSION=${KIBANA_VERSION:-4.6.3-linux-x86_64}
|
||||||
|
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}
|
||||||
|
|
||||||
# Path settings
|
# Path settings
|
||||||
MONASCA_BASE=${DEST}
|
MONASCA_BASE=${DEST}
|
||||||
@ -202,8 +218,34 @@ MONASCA_API_LOG_DIR=${MONASCA_API_LOG_DIR:-/var/log/monasca/api}
|
|||||||
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-$ENABLE_HTTPD_MOD_WSGI_SERVICES}
|
MONASCA_API_USE_MOD_WSGI=${MONASCA_API_USE_MOD_WSGI:-$ENABLE_HTTPD_MOD_WSGI_SERVICES}
|
||||||
MONASCA_API_UWSGI_CONF=${MONASCA_API_UWSGI_CONF:-$MONASCA_API_CONF_DIR/api-uwsgi.ini}
|
MONASCA_API_UWSGI_CONF=${MONASCA_API_UWSGI_CONF:-$MONASCA_API_CONF_DIR/api-uwsgi.ini}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# OLD LOG-API CONFIGURATION
|
||||||
|
MONASCA_LOG_API_SERVICE_HOST=${MONASCA_LOG_API_SERVICE_HOST:-${SERVICE_HOST}}
|
||||||
|
MONASCA_LOG_API_SERVICE_PORT=${MONASCA_LOG_API_SERVICE_PORT:-5607}
|
||||||
|
MONASCA_LOG_API_REPO=${MONASCA_LOG_API_REPO:-${GIT_BASE}/openstack/monasca-log-api.git}
|
||||||
|
MONASCA_LOG_API_BRANCH=${MONASCA_LOG_API_BRANCH:-master}
|
||||||
|
MONASCA_LOG_API_DIR=${DEST}/monasca-log-api
|
||||||
|
MONASCA_LOG_API_DEPLOY=uwsgi
|
||||||
|
MONASCA_LOG_API_CONF_DIR=${MONASCA_LOG_API_CONF_DIR:-/etc/monasca}
|
||||||
|
MONASCA_LOG_API_LOG_DIR=${MONASCA_LOG_API_LOG_DIR:-/var/log/monasca}
|
||||||
|
MONASCA_LOG_API_CACHE_DIR=${MONASCA_LOG_API_CACHE_DIR:-/var/cache/monasca-log-api}
|
||||||
|
MONASCA_LOG_API_WSGI_DIR=${MONASCA_LOG_API_WSGI_DIR:-/var/www/monasca-log-api}
|
||||||
|
|
||||||
|
MONASCA_LOG_API_CONF=${MONASCA_LOG_API_CONF:-$MONASCA_LOG_API_CONF_DIR/monasca-log-api.conf}
|
||||||
|
MONASCA_LOG_API_PASTE=${MONASCA_LOG_API_PASTE:-$MONASCA_LOG_API_CONF_DIR/log-api-paste.ini}
|
||||||
|
MONASCA_LOG_API_LOGGING_CONF=${MONASCA_LOG_API_LOGGING_CONF:-$MONASCA_LOG_API_CONF_DIR/log-api-logging.conf}
|
||||||
|
MONASCA_LOG_API_UWSGI_CONF=${MONASCA_LOG_API_UWSGI_CONF:-$MONASCA_LOG_API_CONF_DIR/log-api-uwsgi.ini}
|
||||||
|
|
||||||
|
USE_PYTHON3=${USE_PYTHON3:-true}
|
||||||
|
USE_OLD_LOG_API=${USE_OLD_LOG_API:-false}
|
||||||
|
|
||||||
## storm settings
|
## storm settings
|
||||||
STORM_UI_HOST=${STORM_UI_HOST:-${SERVICE_HOST}}
|
STORM_UI_HOST=${STORM_UI_HOST:-${SERVICE_HOST}}
|
||||||
STORM_UI_PORT=${STORM_UI_PORT:-8089}
|
STORM_UI_PORT=${STORM_UI_PORT:-8089}
|
||||||
STORM_LOGVIEWER_PORT=${STORM_LOGVIEWER_PORT:-8090}
|
STORM_LOGVIEWER_PORT=${STORM_LOGVIEWER_PORT:-8090}
|
||||||
|
|
||||||
|
KAFKA_SERVICE_HOST=${KAFKA_SERVICE_HOST:-${SERVICE_HOST}}
|
||||||
|
KAFKA_SERVICE_PORT=${KAFKA_SERVICE_PORT:-9092}
|
||||||
|
@ -3693,6 +3693,7 @@ ___
|
|||||||
|
|
||||||
# License
|
# License
|
||||||
(C) Copyright 2014-2016 Hewlett Packard Enterprise Development LP
|
(C) Copyright 2014-2016 Hewlett Packard Enterprise Development LP
|
||||||
|
(C) Copyright 2019 FUJITSU LIMITED
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[loggers]
|
[loggers]
|
||||||
keys = root, sqlalchemy, kafka
|
keys = root, sqlalchemy, kafka, kafkalib
|
||||||
|
|
||||||
[handlers]
|
[handlers]
|
||||||
keys = console, file
|
keys = console, file
|
||||||
@ -26,6 +26,12 @@ level = DEBUG
|
|||||||
handlers = console, file
|
handlers = console, file
|
||||||
propagate = 0
|
propagate = 0
|
||||||
|
|
||||||
|
[logger_kafkalib]
|
||||||
|
qualname = monasca_common.kafka_lib
|
||||||
|
level = INFO
|
||||||
|
handlers = console, file
|
||||||
|
propagate = 0
|
||||||
|
|
||||||
[handler_console]
|
[handler_console]
|
||||||
class = logging.StreamHandler
|
class = logging.StreamHandler
|
||||||
args = (sys.stderr,)
|
args = (sys.stderr,)
|
||||||
|
Loading…
Reference in New Issue
Block a user