From 5fbf995e8fe899b33b52b01a46475ef332a6db37 Mon Sep 17 00:00:00 2001 From: w00464751 Date: Sat, 26 Mar 2022 17:45:02 +0800 Subject: [PATCH] optimize gs_dbmind and add docs Offering: GaussDB Kernel More detail: opt --- src/gausskernel/dbmind/README.md | 136 ++++++++++++++++++++++++ src/gausskernel/dbmind/docs/dbmind.png | Bin 0 -> 110860 bytes src/gausskernel/dbmind/docs/glossary.md | 30 ++++++ src/gausskernel/dbmind/gs_dbmind | 7 ++ 4 files changed, 173 insertions(+) create mode 100644 src/gausskernel/dbmind/README.md create mode 100644 src/gausskernel/dbmind/docs/dbmind.png create mode 100644 src/gausskernel/dbmind/docs/glossary.md diff --git a/src/gausskernel/dbmind/README.md b/src/gausskernel/dbmind/README.md new file mode 100644 index 00000000..2cc6a7d9 --- /dev/null +++ b/src/gausskernel/dbmind/README.md @@ -0,0 +1,136 @@ +# DBMind +DBMind is a part of openGauss, which empowers openGauss to carry the autonomous operations and maintenance capabilities. DBMind is leading and open-source. Through DBMind, users can easily discover database problems and the root causes of the problems in seconds. + +![DBMind overview](docs/dbmind.png) + +# Getting Started + +### Prerequisites +In order to run DBMind, the following components should be configured and running. + +#### Python Runtime +At least Python 3.6. + +#### Third-party Dependencies +Use `pip install` to install the python dependencies. +Type the `pip install` command with dependencies according to the environment you are running: +``` +pip install -r requirements-aarch64.txt | requirements-x86.txt +``` + +#### Prometheus up and Running +Download and run the [Prometheus](https://prometheus.io/) time-series database. + +#### Node Exporter +Download and run the [Prometheus node exporter](https://prometheus.io/download/#node_exporter). Node-exporter is to monitor the Linux system. Hence, one Linux environment only needs to deploy one node-exporter. + +### DBMind Components +The following DBMind components are required: + +**Note: If you want to get higher security, you should use the HTTPS scheme.** + +#### openGauss Exporter +The openGauss-exporter reads data from the database and places it on the Prometheus time-series database. +OpenGauss-exporter is to monitor only one database instance. So if your deployment environment has not only one instance, you should start multiple openGauss-exporters to correspond to monitor multiple database instances. +It needs database access with a user having the role of at least **monadmin** (monitoring administrator) granted to run it. For example, you can grant monadmin privilege to role dbmind as below: +``` +ALTER USER dbmind monadmin; +``` +Use the following command with the parameters below: + +``` +gs_dbmind component opengauss_exporter ... +``` +You can get detailed explanations of this component through passing `--help`: +``` +gs_dbmind component opengauss_exporter --help +``` + +For example, the following command starts it: +``` +gs_dbmind component opengauss_exporter --url postgresql://username:password@host:port/database --web.listen-address 0.0.0.0 --web.listen-port 9187 --log.level warn --disable-https ... +``` + +To test that the exporter is up, type the following command on its host (or use change the localhost to the server address): +``` +curl -vv http://localhost:9187/metrics +``` + +#### Reprocessing Exporter +Reprocessing-exporter is a re-processing module for metrics stored in the Prometheus server. It helps Prometheus to reprocess the metric data then dump the new data into Prometheus. Therefore, only one needs to be started in a deployment environment. +To run it use the command below: +``` +gs_dbmind component reprocessing_exporter ... +``` +Users can see usage by using `--help` too. + +See this example for running the exporter in a single machine development environment: +``` +gs_dbmind component reprocessing_exporter 127.0.0.1 9090 --web.listen-address 0.0.0.0 --web.listen-port 9189 +``` +Use the following command to check that the service is up: +``` +curl http://127.0.0.1:9189/metrics +``` + +### Configure, Start and Stop the DBMind Service +DBMind service is a memory-resident backend service. Therefore, users should configure it first then start or stop the service by using the configuration. + +Service usages: + + $ gs_dbmind service --help + usage: service [-h] -c DIRECTORY [--only-run {...}] [--interactive | --initialize] {setup,start,stop} + + positional arguments: + {setup,start,stop} perform an action for service + + optional arguments: + -h, --help show this help message and exit + -c DIRECTORY, --conf DIRECTORY + set the directory of configuration files + --only-run {slow_query_diagnosis,forecast} + explicitly set a certain task running in the backend + --interactive configure and initialize with interactive mode + --initialize initialize and check configurations after configuring. + + +#### Configure +DBMind offers two methods to configure. The one is an interactive mode by using `--interactive` argument, the other is a modification by hands. + +See this example for configuring in the interactive mode: +``` +gs_dbmind service setup -c CONF_DIRECTORY --interactive +``` +Then users can type parameters into the shell terminal. + +See the following example for configuring by hands: +``` +gs_dbmind service setup -c CONF_DIRECTORY +``` +After executing the above command, the directory `CONF_DIRECTORY` will generate too many configuration files. Therefore, users should modify these parameters in the `CONF_DIRECTORY/dbmind.conf`. While users finish configuring, this command needs to be run to initialize DBMind according to the `CONF_DIRECTORY/dbmind.conf`. +``` +gs_dbmind service setup -c CONF_DIRECTORY --initialize +``` + +#### Start or Stop the DBMind Service +After configuring, specify your CONF_DIRECTORY, users can start or stop the service directly. +``` +gs_dbmind service start/stop -c CONF_DIRECTORY +``` + +### Component +If users want to use a specific component offline. They can use the sub-command `component`: +``` +gs_dbmind component xxx ... +``` + +`xxx` is the name of a component. Users can also get the component list by using the `--help` argument. + +For example, use the following component to tune the knobs of a database: +``` +gs_dbmind component xtuner --help +``` + +# LICENSE +Mulan PSL v2 + diff --git a/src/gausskernel/dbmind/docs/dbmind.png b/src/gausskernel/dbmind/docs/dbmind.png new file mode 100644 index 0000000000000000000000000000000000000000..724bfb6f09984acb090ca3951e49e9aa87ad0a23 GIT binary patch literal 110860 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 literal 0 HcmV?d00001 diff --git a/src/gausskernel/dbmind/docs/glossary.md b/src/gausskernel/dbmind/docs/glossary.md new file mode 100644 index 00000000..0e7fde35 --- /dev/null +++ b/src/gausskernel/dbmind/docs/glossary.md @@ -0,0 +1,30 @@ +# DBMind Glossary + +*If you add new entries, keep the alphabetical sorting!* + +## Glossary + ``agent`` + Firstly, DBMind diagnoses the database instance by using monitoring metrics, then stores the diagnosis results. But if users want DBMind to perform some operations which can heal the database instance, under this scenario, DBMind needs an agent to receive command from DBMind then perform it. This is the responsibility of the agent. + + ``alarm`` + When DBMind detects abnormal events, the notification generated is called alarm. + Alarm sources include many aspects, such as from historical logs, anomalies from historical KPI, and forecasts of KPI. + + ``anomaly detection`` + Anomaly Detection (AD, aka outlier analysis) is a step in data mining that identifies events, and/or observations that deviate from a dataset's normal behavior. In the DBMind, we use it to detect abnormal events from monitoring metrics. + + ``component`` + Plugins of DBMind. The components are all independent functionalities. Users can execute them by using shell command `gs_dbmind component`, also can call/import them from DBMind. + + ``confile`` + The name of configuration file. + + ``confpath`` + The directory path which stores common data, including configuration, log, pid, etc. + + ``exporter`` + [Prometheus](https://prometheus.io/)'s plugin. The purpose of exporters is to scrape metrics from monitored object. See more via [Prometheus exporter](https://prometheus.io/docs/instrumenting/exporters/). + + ``metadatabase`` + The database which you configure in the configuration file is to store monitoring, prediction and forecast result in periodical tasks. Hence, the response time for users to browse the results is quicker. + diff --git a/src/gausskernel/dbmind/gs_dbmind b/src/gausskernel/dbmind/gs_dbmind index 211d123a..6a2e7589 100644 --- a/src/gausskernel/dbmind/gs_dbmind +++ b/src/gausskernel/dbmind/gs_dbmind @@ -38,6 +38,13 @@ function extract_libname() { ABSPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DBMIND_PATH=${ABSPATH}/dbmind +if [[ ! -d $DBMIND_PATH && -d "$ABSPATH/tools" ]]; then + die "Not found the subdirectory 'dbmind' but found 'tools'. Maybe you are in the source code directory.\n +If you want to debug DBMind in this directory, you should rename the name of subdirectory 'tools' to 'dbmind', as follows: \n +> mv tools dbmind + " +fi + # Check whether Python has been installed onto the OS. PYTHON=$(which python) if [[ "$?" != "0" ]]; then