Add support for Vertica in the DevStack plugin
Change-Id: I9691bdbb8e3ce6f613a16370f99e5216c4a07ca1
This commit is contained in:
parent
e5e38ba6c1
commit
036e41734a
|
@ -0,0 +1,110 @@
|
|||
# Monasca DevStack Plugin
|
||||
|
||||
The Monasca DevStack plugin currently only works on Ubuntu 14.04 (Trusty).
|
||||
More Linux Distributions will be supported in the future.
|
||||
|
||||
Running the Monasca DevStack plugin requires a machine with 10GB of RAM.
|
||||
|
||||
Directions for installing and running Devstack can be found here:
|
||||
|
||||
http://docs.openstack.org/developer/devstack/
|
||||
|
||||
To run Monasca in DevStack, do the following three steps.
|
||||
|
||||
1. Clone the DevStack repo.
|
||||
|
||||
git clone https://git.openstack.org/openstack-dev/devstack
|
||||
|
||||
2. Add the following to the DevStack local.conf file in the root of the devstack directory. You may
|
||||
need to create the local.conf if it does not already exist.
|
||||
|
||||
\# BEGIN DEVSTACK LOCAL.CONF CONTENTS
|
||||
|
||||
[[local|localrc]]
|
||||
MYSQL_PASSWORD=secretmysql
|
||||
DATABASE_PASSWORD=secretdatabase
|
||||
RABBIT_PASSWORD=secretrabbit
|
||||
ADMIN_PASSWORD=secretadmin
|
||||
SERVICE_PASSWORD=secretservice
|
||||
SERVICE_TOKEN=111222333444
|
||||
|
||||
LOGFILE=$DEST/logs/stack.sh.log
|
||||
LOGDIR=$DEST/logs
|
||||
LOG_COLOR=False
|
||||
|
||||
\# The following two variables allow switching between Java and Python for the implementations
|
||||
\# of the Monasca API and the Monasca Persister. If these variables are not set, then the
|
||||
\# default is to install the Python implementations of both the Monasca API and the Monasca Persister.
|
||||
|
||||
\# Uncomment one of the following two lines to choose Java or Python for the Monasca API.
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
\# MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
\# Uncomment of the following two lines to choose Java or Python for the Monasca Pesister.
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
\# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
\# Uncomment one of the following two lines to choose either InfluxDB or Vertica.
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
\# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
|
||||
\# This line will enable all of Monasca.
|
||||
enable_plugin monasca-api git://git.openstack.org/openstack/monasca-api
|
||||
|
||||
\# END DEVSTACK LOCAL.CONF CONTENTS
|
||||
|
||||
3. Run './stack.sh' from the root of the devstack directory.
|
||||
|
||||
If you want to run Monasca with the bare mininum of OpenStack components
|
||||
you can add the following two lines to the local.conf file.
|
||||
|
||||
disable_all_services
|
||||
enable_service rabbit mysql key
|
||||
|
||||
If you also want the Tempest tests to be installed then add `tempest`
|
||||
|
||||
enable_service rabbit mysql key tempest
|
||||
|
||||
To enable Horizon and the Monasca UI add `horizon`
|
||||
|
||||
enable_service rabbit mysql key horizon tempest
|
||||
|
||||
# Using Vagrant
|
||||
|
||||
Vagrant can be used to deploy a VM with Devstack and Monasca running in it using the Vagrantfile. After installing Vagrant, just run the command `vagrant up` as usual in the `../monasca-api/devstack` directory.
|
||||
|
||||
## Enable Vertica as the Metrics DB using Vagrant
|
||||
|
||||
Monasca supports using both InfluxDB and Vertica for storing metrics and alarm state history.
|
||||
InfluxDB is enabled by default in the DevStack environment.
|
||||
|
||||
Vertica is a commercial database from Hewlett Packard Enterprise.
|
||||
A free Community Edition (CE) installer is available for download.
|
||||
|
||||
To enable Vertica, do the following:
|
||||
|
||||
1. Register and download the Vertica Debian installer from `https://my.vertica.com/download/vertica/community-edition/` and put it in your home directory.
|
||||
Unfortunately, there isn't a URL that the DevStack installer can automatically use, so it must be downloaded seperately, and put in a location where the installer can find it when it runs.
|
||||
The installer assumes this location is your home directory.
|
||||
When using Vagrant, your home directory will normally be mounted inside the VM as "/vagrant_home".
|
||||
|
||||
2. Modify the environment variable `MONASCA_METRICS_DB` in the `local.conf`, `settings` or `Vagrantfile` file from influxdb to vertica as follows:
|
||||
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
|
||||
```
|
||||
# (C) Copyright 2015-2016 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
```
|
|
@ -1,86 +0,0 @@
|
|||
#
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
The Monasca DevStack plugin currently only works on Ubuntu 14.04 (Trusty).
|
||||
More Linux Distributions will be supported as soon as is possible.
|
||||
|
||||
Running the Monasca DevStack plugin requires a machine with 10GB of RAM.
|
||||
|
||||
Directions for installing an running Devstack can be found here:
|
||||
|
||||
http://docs.openstack.org/developer/devstack/
|
||||
|
||||
To run Monasca in DevStack, do the following three steps.
|
||||
|
||||
1. Clone the DevStack repo.
|
||||
|
||||
git clone https://git.openstack.org/openstack-dev/devstack
|
||||
|
||||
2. Add the following to the DevStack local.conf file in the root of the devstack directory. You may
|
||||
need to create the local.conf if it does not already exist.
|
||||
|
||||
# BEGIN DEVSTACK LOCAL.CONF CONTENTS
|
||||
|
||||
[[local|localrc]]
|
||||
MYSQL_PASSWORD=secretmysql
|
||||
DATABASE_PASSWORD=secretdatabase
|
||||
RABBIT_PASSWORD=secretrabbit
|
||||
ADMIN_PASSWORD=secretadmin
|
||||
SERVICE_PASSWORD=secretservice
|
||||
SERVICE_TOKEN=111222333444
|
||||
|
||||
LOGFILE=$DEST/logs/stack.sh.log
|
||||
LOGDIR=$DEST/logs
|
||||
LOG_COLOR=False
|
||||
|
||||
# The following two variables allow switching between Java and Python for the implementations
|
||||
# of the Monasca API and the Monasca Persister. If these variables are not set, then the
|
||||
# default is to install the Python implementations of both the Monasca API and the Monasca Persister.
|
||||
|
||||
# Uncomment one of the following two lines to choose Java or Python for the Monasca API.
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
#MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Uncomment of the following two lines to choose Java or Python for the Monasca Pesister.
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
#MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# This line will enable all of Monasca.
|
||||
enable_plugin monasca-api git://git.openstack.org/openstack/monasca-api
|
||||
|
||||
# END DEVSTACK LOCAL.CONF CONTENTS
|
||||
|
||||
3. Run './stack.sh' from the root of the devstack directory.
|
||||
|
||||
|
||||
If you want to run Monasca with the bare mininum of OpenStack components
|
||||
you can add the following two lines to the local.conf file.
|
||||
|
||||
disable_all_services
|
||||
enable_service rabbit mysql key tempest
|
||||
|
||||
|
||||
Using Vagrant:
|
||||
|
||||
Vagrant can be used to deploy a VM with Devstack and Monasca running in it
|
||||
using the Vagrantfile. After installing Vagrant, just "vagrant up".
|
||||
|
||||
|
||||
Known Issues:
|
||||
|
||||
1. The Python Monasca API has various bugs.
|
||||
2. The RabbitMQ Check Plugin is not configured correctly.
|
|
@ -91,22 +91,28 @@ LOGDIR=$DEST/logs
|
|||
LOG_COLOR=False
|
||||
|
||||
disable_all_services
|
||||
enable_service rabbit mysql key tempest
|
||||
enable_service rabbit mysql key tempest horizon
|
||||
|
||||
# The following two variables allow switching between Java and Python for the implementations
|
||||
# of the Monasca API and the Monasca Persister. If these variables are not set, then the
|
||||
# default is to install the Python implementations of both the Monasca API and the Monasca Persister.
|
||||
|
||||
# Uncomment one of the following two lines to choose Java or Python for the Monasca API.
|
||||
#MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
# MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Uncomment one of the following two lines to choose Java or Python for the Monasca Pesister.
|
||||
#MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# This line will enable all of Monasca.
|
||||
# Uncomment one of the following two lines to choose either InfluxDB or Vertica.
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
|
||||
# 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 file:///vagrant_home/Documents/repos/openstack/monasca-api.vertica
|
||||
|
||||
' > local.conf
|
||||
./stack.sh
|
||||
SHELL
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
CREATE SCHEMA MonAlarms;
|
||||
|
||||
CREATE TABLE MonAlarms.StateHistory(
|
||||
id AUTO_INCREMENT,
|
||||
tenant_id VARCHAR,
|
||||
alarm_id VARCHAR,
|
||||
metrics VARCHAR (65000),
|
||||
old_state VARCHAR,
|
||||
new_state VARCHAR,
|
||||
sub_alarms VARCHAR (65000),
|
||||
reason VARCHAR(65000),
|
||||
reason_data VARCHAR(65000),
|
||||
time_stamp TIMESTAMP NOT NULL
|
||||
) PARTITION BY EXTRACT('year' FROM time_stamp)*10000 + EXTRACT('month' FROM time_stamp)*100 + EXTRACT('day' FROM time_stamp);
|
|
@ -0,0 +1,105 @@
|
|||
DROP SCHEMA MonMetrics CASCADE;
|
||||
|
||||
CREATE SCHEMA MonMetrics;
|
||||
|
||||
CREATE TABLE MonMetrics.Measurements (
|
||||
definition_dimensions_id BINARY(20) NOT NULL,
|
||||
time_stamp TIMESTAMP NOT NULL,
|
||||
value FLOAT NOT NULL,
|
||||
value_meta VARCHAR(2048)
|
||||
) PARTITION BY EXTRACT('year' FROM time_stamp)*10000 + EXTRACT('month' FROM time_stamp)*100 + EXTRACT('day' FROM time_stamp);
|
||||
|
||||
CREATE TABLE MonMetrics.Definitions(
|
||||
id BINARY(20) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
tenant_id VARCHAR(255) NOT NULL,
|
||||
region VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
CONSTRAINT MetricsDefinitionsConstraint UNIQUE(name, tenant_id, region)
|
||||
);
|
||||
|
||||
CREATE TABLE MonMetrics.Dimensions (
|
||||
dimension_set_id BINARY(20) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
value VARCHAR(255) NOT NULL,
|
||||
CONSTRAINT MetricsDimensionsConstraint UNIQUE(dimension_set_id, name, value)
|
||||
);
|
||||
|
||||
CREATE TABLE MonMetrics.DefinitionDimensions (
|
||||
id BINARY(20) NOT NULL,
|
||||
definition_id BINARY(20) NOT NULL,
|
||||
dimension_set_id BINARY(20) NOT NULL,
|
||||
CONSTRAINT MetricsDefinitionDimensionsConstraint UNIQUE(definition_id, dimension_set_id)
|
||||
);
|
||||
|
||||
-- Projections
|
||||
-- ** These are for a single node system with no k safety
|
||||
|
||||
CREATE PROJECTION Measurements_DBD_1_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
definition_dimensions_id ENCODING RLE,
|
||||
time_stamp ENCODING DELTAVAL,
|
||||
value ENCODING AUTO,
|
||||
value_meta ENCODING RLE
|
||||
)
|
||||
AS
|
||||
SELECT definition_dimensions_id,
|
||||
time_stamp,
|
||||
value,
|
||||
value_meta
|
||||
FROM MonMetrics.Measurements
|
||||
ORDER BY definition_dimensions_id,
|
||||
time_stamp,
|
||||
value_meta
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION Definitions_DBD_2_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
id ENCODING AUTO,
|
||||
name ENCODING AUTO,
|
||||
tenant_id ENCODING RLE,
|
||||
region ENCODING RLE
|
||||
)
|
||||
AS
|
||||
SELECT id,
|
||||
name,
|
||||
tenant_id,
|
||||
region
|
||||
FROM MonMetrics.Definitions
|
||||
ORDER BY region,
|
||||
tenant_id,
|
||||
name
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION Dimensions_DBD_3_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
dimension_set_id ENCODING AUTO,
|
||||
name ENCODING RLE,
|
||||
value ENCODING AUTO
|
||||
)
|
||||
AS
|
||||
SELECT dimension_set_id,
|
||||
name,
|
||||
value
|
||||
FROM MonMetrics.Dimensions
|
||||
ORDER BY name,
|
||||
value,
|
||||
dimension_set_id
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
CREATE PROJECTION DefinitionDimensions_DBD_4_rep_MonMetrics /*+createtype(D)*/
|
||||
(
|
||||
id ENCODING AUTO,
|
||||
definition_id ENCODING RLE,
|
||||
dimension_set_id ENCODING AUTO
|
||||
)
|
||||
AS
|
||||
SELECT id,
|
||||
definition_id,
|
||||
dimension_set_id
|
||||
FROM MonMetrics.DefinitionDimensions
|
||||
ORDER BY definition_id,
|
||||
dimension_set_id
|
||||
UNSEGMENTED ALL NODES;
|
||||
|
||||
select refresh('MonMetrics.Measurements, MonMetrics.Definitions, MonMetrics.Dimensions, MonMetrics.DefinitionDimensions');
|
|
@ -0,0 +1,18 @@
|
|||
CREATE ROLE monasca_persister;
|
||||
CREATE ROLE monasca_api;
|
||||
|
||||
GRANT USAGE ON SCHEMA MonMetrics TO monasca_persister;
|
||||
GRANT USAGE ON SCHEMA MonAlarms TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Measurements TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Definitions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.Dimensions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonMetrics.DefinitionDimensions TO monasca_persister;
|
||||
GRANT ALL ON TABLE MonAlarms.StateHistory TO monasca_persister;
|
||||
|
||||
GRANT USAGE ON SCHEMA MonMetrics TO monasca_api;
|
||||
GRANT USAGE ON SCHEMA MonAlarms TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Measurements TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Definitions TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.Dimensions TO monasca_api;
|
||||
GRANT SELECT ON TABLE MonMetrics.DefinitionDimensions TO monasca_api;
|
||||
GRANT ALL ON TABLE MonAlarms.StateHistory TO monasca_api;
|
|
@ -0,0 +1,7 @@
|
|||
CREATE USER mon_api IDENTIFIED BY 'password';
|
||||
GRANT monasca_api TO mon_api;
|
||||
ALTER USER mon_api DEFAULT ROLE monasca_api;
|
||||
|
||||
CREATE USER mon_persister IDENTIFIED BY 'password';
|
||||
GRANT monasca_persister TO mon_persister;
|
||||
ALTER USER mon_persister DEFAULT ROLE monasca_persister;
|
|
@ -48,6 +48,9 @@ set -o errexit
|
|||
export MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
export MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# Set default metrics DB to InfluxDB
|
||||
export MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
|
||||
# Determine if we are running in devstack-gate or devstack.
|
||||
if [[ $DEST ]]; then
|
||||
|
||||
|
@ -67,6 +70,8 @@ function pre_install_monasca {
|
|||
|
||||
function install_monasca {
|
||||
|
||||
install_git
|
||||
|
||||
update_maven
|
||||
|
||||
install_monasca_virtual_env
|
||||
|
@ -77,7 +82,21 @@ function install_monasca {
|
|||
|
||||
install_kafka
|
||||
|
||||
install_influxdb
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
|
||||
install_monasca_influxdb
|
||||
|
||||
elif [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
install_monasca_vertica
|
||||
|
||||
else
|
||||
|
||||
echo "Found invalid value for variable MONASCA_METRICS_DB: $MONASCA_METRICS_DB"
|
||||
echo "Valid values for MONASCA_METRICS_DB are \"influxdb\" and \"vertica\""
|
||||
die "Please set MONASCA_METRICS_DB to either \"influxdb'' or \"vertica\""
|
||||
|
||||
fi
|
||||
|
||||
install_cli_creds
|
||||
|
||||
|
@ -85,8 +104,6 @@ function install_monasca {
|
|||
|
||||
install_maven
|
||||
|
||||
install_git
|
||||
|
||||
install_monasca_common
|
||||
|
||||
if [[ "${MONASCA_API_IMPLEMENTATION_LANG,,}" == 'java' ]]; then
|
||||
|
@ -261,7 +278,21 @@ function clean_monasca {
|
|||
|
||||
clean_cli_creds
|
||||
|
||||
clean_influxdb
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
|
||||
clean_monasca_influxdb
|
||||
|
||||
elif [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
clean_monasca_vertica
|
||||
|
||||
else
|
||||
|
||||
echo "Found invalid value for variable MONASCA_METRICS_DB: $MONASCA_METRICS_DB"
|
||||
echo "Valid values for MONASCA_METRICS_DB are \"influxdb\" and \"vertica\""
|
||||
die "Please set MONASCA_METRICS_DB to either \"influxdb'' or \"vertica\""
|
||||
|
||||
fi
|
||||
|
||||
clean_kafka
|
||||
|
||||
|
@ -435,7 +466,7 @@ function clean_kafka {
|
|||
|
||||
}
|
||||
|
||||
function install_influxdb {
|
||||
function install_monasca_influxdb {
|
||||
|
||||
echo_summary "Install Monasca Influxdb"
|
||||
|
||||
|
@ -464,7 +495,38 @@ function install_influxdb {
|
|||
|
||||
}
|
||||
|
||||
function clean_influxdb {
|
||||
function install_monasca_vertica {
|
||||
|
||||
echo_summary "Install Monasca Vertica"
|
||||
|
||||
sudo mkdir -p /opt/monasca_download_dir || true
|
||||
|
||||
sudo apt-get -y install dialog
|
||||
|
||||
sudo dpkg --skip-same-version -i /vagrant_home/vertica_${VERTICA_VERSION}_amd64.deb
|
||||
|
||||
# Download Vertica JDBC driver
|
||||
# sudo curl https://my.vertica.com/client_drivers/7.2.x/${VERTICA_VERSION}/vertica-jdbc-{VERTICA_VERSION}.jar -o /opt/monasca_download_dir/vertica-jdbc-${VERTICA_VERSION}.jar
|
||||
|
||||
sudo /opt/vertica/sbin/install_vertica --hosts "127.0.0.1" --deb /vagrant_home/vertica_${VERTICA_VERSION}_amd64.deb --dba-user-password password --license CE --accept-eula --failure-threshold NONE
|
||||
|
||||
sudo su dbadmin -c '/opt/vertica/bin/admintools -t create_db -s "127.0.0.1" -d mon -p password'
|
||||
|
||||
/opt/vertica/bin/vsql -U dbadmin -w password < "${MONASCA_BASE}"/monasca-api/devstack/files/vertica/mon_metrics.sql
|
||||
|
||||
/opt/vertica/bin/vsql -U dbadmin -w password < "${MONASCA_BASE}"/monasca-api/devstack/files/vertica/mon_alarms.sql
|
||||
|
||||
/opt/vertica/bin/vsql -U dbadmin -w password < "${MONASCA_BASE}"/monasca-api/devstack/files/vertica/roles.sql
|
||||
|
||||
/opt/vertica/bin/vsql -U dbadmin -w password < "${MONASCA_BASE}"/monasca-api/devstack/files/vertica/users.sql
|
||||
|
||||
# Copy Vertica JDBC driver to /opt/monasca
|
||||
# sudo cp /opt/monasca_download_dir/vertica-jdbc-${VERTICA_VERSION}.jar /opt/monasca/vertica-jdbc-${VERTICA_VERSION}.jar
|
||||
sudo cp /vagrant_home/vertica-jdbc-${VERTICA_VERSION}.jar /opt/monasca/vertica-jdbc-${VERTICA_VERSION}.jar
|
||||
|
||||
}
|
||||
|
||||
function clean_monasca_influxdb {
|
||||
|
||||
echo_summary "Clean Monasca Influxdb"
|
||||
|
||||
|
@ -497,6 +559,12 @@ function clean_influxdb {
|
|||
sudo rm -f /etc/init.d/influxdb
|
||||
}
|
||||
|
||||
function clean_monasca_vertica {
|
||||
|
||||
echo_summary "Clean Monasca Vertica"
|
||||
|
||||
}
|
||||
|
||||
function install_cli_creds {
|
||||
|
||||
echo_summary "Install Monasca CLI Creds"
|
||||
|
@ -525,13 +593,17 @@ function install_schema {
|
|||
|
||||
sudo chmod 0755 /opt/monasca/sqls
|
||||
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/schema/influxdb_setup.py /opt/monasca/influxdb_setup.py
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
|
||||
sudo chmod 0750 /opt/monasca/influxdb_setup.py
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/schema/influxdb_setup.py /opt/monasca/influxdb_setup.py
|
||||
|
||||
sudo chown root:root /opt/monasca/influxdb_setup.py
|
||||
sudo chmod 0750 /opt/monasca/influxdb_setup.py
|
||||
|
||||
sudo /opt/monasca/influxdb_setup.py
|
||||
sudo chown root:root /opt/monasca/influxdb_setup.py
|
||||
|
||||
sudo /opt/monasca/influxdb_setup.py
|
||||
|
||||
fi
|
||||
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/schema/mon_mysql.sql /opt/monasca/sqls/mon.sql
|
||||
|
||||
|
@ -663,6 +735,13 @@ function install_monasca_api_java {
|
|||
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/monasca-api/monasca-api.conf /etc/init/monasca-api.conf
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
# Add the Vertica JDBC to the class path.
|
||||
sudo sed -i "s/-cp \/opt\/monasca\/monasca-api.jar/-cp \/opt\/monasca\/monasca-api.jar:\/opt\/monasca\/vertica-jdbc-${VERTICA_VERSION}.jar/g" /etc/init/monasca-api.conf
|
||||
|
||||
fi
|
||||
|
||||
sudo chown root:root /etc/init/monasca-api.conf
|
||||
|
||||
sudo chmod 0744 /etc/init/monasca-api.conf
|
||||
|
@ -687,14 +766,26 @@ function install_monasca_api_java {
|
|||
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/monasca-api/api-config.yml /etc/monasca/api-config.yml
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
# Switch databaseType from influxdb to vertica
|
||||
sudo sed -i "s/databaseType: \"influxdb\"/databaseType: \"vertica\"/g" /etc/monasca/api-config.yml
|
||||
|
||||
fi
|
||||
|
||||
sudo chown mon-api:root /etc/monasca/api-config.yml
|
||||
|
||||
sudo chmod 0640 /etc/monasca/api-config.yml
|
||||
|
||||
if [[ ${SERVICE_HOST} ]]; then
|
||||
|
||||
# set influxdb ip address
|
||||
sudo sed -i "s/url: \"http:\/\/127\.0\.0\.1:8086\"/url: \"http:\/\/${SERVICE_HOST}:8086\"/g" /etc/monasca/api-config.yml
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'influxdb' ]]; then
|
||||
|
||||
# set influxdb ip address
|
||||
sudo sed -i "s/url: \"http:\/\/127\.0\.0\.1:8086\"/url: \"http:\/\/${SERVICE_HOST}:8086\"/g" /etc/monasca/api-config.yml
|
||||
|
||||
fi
|
||||
|
||||
# set kafka ip address
|
||||
sudo sed -i "s/127\.0\.0\.1:9092/${SERVICE_HOST}:9092/g" /etc/monasca/api-config.yml
|
||||
# set zookeeper ip address
|
||||
|
@ -882,6 +973,13 @@ function install_monasca_persister_java {
|
|||
|
||||
sudo chmod 0640 /etc/monasca/persister-config.yml
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
# Switch databaseType from influxdb to vertica
|
||||
sudo sed -i "s/databaseType: influxdb/databaseType: vertica/g" /etc/monasca/persister-config.yml
|
||||
|
||||
fi
|
||||
|
||||
if [[ ${SERVICE_HOST} ]]; then
|
||||
|
||||
# set zookeeper ip address
|
||||
|
@ -895,6 +993,13 @@ function install_monasca_persister_java {
|
|||
|
||||
sudo cp -f "${MONASCA_BASE}"/monasca-api/devstack/files/monasca-persister/monasca-persister.conf /etc/init/monasca-persister.conf
|
||||
|
||||
if [[ "${MONASCA_METRICS_DB,,}" == 'vertica' ]]; then
|
||||
|
||||
# Add the Vertica JDBC to the class path.
|
||||
sudo sed -i "s/-cp \/opt\/monasca\/monasca-persister.jar/-cp \/opt\/monasca\/monasca-persister.jar:\/opt\/monasca\/vertica-jdbc-${VERTICA_VERSION}.jar/g" /etc/init/monasca-persister.conf
|
||||
|
||||
fi
|
||||
|
||||
sudo chown root:root /etc/init/monasca-persister.conf
|
||||
|
||||
sudo chmod 0744 /etc/init/monasca-persister.conf
|
||||
|
|
|
@ -19,12 +19,15 @@
|
|||
# of the Monasca API and the Monasca Persister. These variables can be set here
|
||||
# or in the DevStack local.conf file.
|
||||
|
||||
#MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
# MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
#MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
# MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
|
||||
MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
|
||||
|
||||
# MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
|
||||
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb}
|
||||
|
||||
# Turn on all the Monasca services by default. Currently enabling specific services
|
||||
# has no effect. All services are enabled by default. There is currently no mechanism
|
||||
# implemented to turn off specific Monasca services.
|
||||
|
@ -78,6 +81,7 @@ enable_service monasca-cli
|
|||
#
|
||||
|
||||
INFLUXDB_VERSION=${INFLUXDB_VERSION:-0.9.5}
|
||||
VERTICA_VERSION=${VERTICA_VERSION:-7.2.1-0}
|
||||
# Kafka deb consists of the version of scala plus the version of kafka
|
||||
BASE_KAFKA_VERSION=${BASE_KAFKA_VERSION:-0.8.1.1}
|
||||
SCALA_VERSION=${SCALA_VERSION:-2.9.2}
|
||||
|
|
Loading…
Reference in New Issue