diff --git a/.env b/.env index c23fb03..55d6649 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -OPENMLDB_VERSION=0.8.1 +OPENMLDB_VERSION=0.8.2 ENV_TYPE=src diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2c7d170..be278b9 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,5 +3,14 @@ updates: # Maintain dependencies for GitHub Actions - package-ecosystem: "github-actions" directory: "/" + reviewers: + - "aceforeverd" + schedule: + interval: "daily" + + - package-ecosystem: "pip" + directory: "/" + reviewers: + - "aceforeverd" schedule: interval: "daily" diff --git a/README.md b/README.md index 88aa0a5..bb68bae 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,12 @@ -# OpenMLDB Prometheus Exporter +# OpenMLDB Exporter [![PyPI](https://img.shields.io/pypi/v/openmldb-exporter?label=openmldb-exporter)](https://pypi.org/project/openmldb-exporter/) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/openmldb-exporter) -## Intro +## Features -This directory contains - -1. OpenMLDB Exporter exposing prometheus metrics -2. OpenMLDB mixin provides well-configured examples for prometheus server and grafana dashboard +- [OpenMLDB](https://github.com/4paradigm/OpenMLDB) Prometheus Exporter exposing metrics +- [OpenMLDB](https://github.com/4paradigm/OpenMLDB) mixin provides well-configured examples for [Prometheus](https://prometheus.io/) server and [Grafana](https://grafana.com/) dashboard ## Requirements @@ -17,128 +15,128 @@ This directory contains - Python >= 3.8 -## Setup +## Quick Start -For those want to try, simply install from pip, it will install the latest release: +**You can run openmdlb-exporter from docker, or install and run directly from PyPI.** -```bash -pip install openmldb-exporter -``` - -Then type +
Use docker ```sh -openmldb-exporter -h +docker run ghcr.io/4paradigm/openmldb-exporter \ + --config.zk_root= \ + --config.zk_path= ``` -To see which flags should provided. +
-Developers may refer [Development](#development) for how to setup openmldb exporter from source code. +
Install and Run from PyPI +```sh +pip install openmldb-exporter -## Development +# start +openmldb-exporter \ + --config.zk_root= \ + --config.zk_path= +``` +

-### Extra Requirements +And replace `` and `` to correct value. Afterwards, you can check metrics with curl: -- Same in [Requirements](#requirements) -- [poetry](https://github.com/python-poetry/poetry) as build tool -- cmake (optional if want to test latest commit) +```sh +curl http://:8000/metrics +``` +`` is docker container IP, or `127.0.0.1` if installing from PyPI. + +
Example output + +```sh +# HELP openmldb_connected_seconds_total duration for a component conncted time in seconds +# TYPE openmldb_connected_seconds_total counter +openmldb_connected_seconds_total{endpoint="172.17.0.15:9520",role="tablet"} 208834.70900011063 +openmldb_connected_seconds_total{endpoint="172.17.0.15:9521",role="tablet"} 208834.70700001717 +openmldb_connected_seconds_total{endpoint="172.17.0.15:9522",role="tablet"} 208834.71399998665 +openmldb_connected_seconds_total{endpoint="172.17.0.15:9622",role="nameserver"} 208833.70000004768 +openmldb_connected_seconds_total{endpoint="172.17.0.15:9623",role="nameserver"} 208831.70900011063 +openmldb_connected_seconds_total{endpoint="172.17.0.15:9624",role="nameserver"} 208829.7230000496 +# HELP openmldb_connected_seconds_created duration for a component conncted time in seconds +# TYPE openmldb_connected_seconds_created gauge +openmldb_connected_seconds_created{endpoint="172.17.0.15:9520",role="tablet"} 1.6501813860467942e+09 +openmldb_connected_seconds_created{endpoint="172.17.0.15:9521",role="tablet"} 1.6501813860495396e+09 +openmldb_connected_seconds_created{endpoint="172.17.0.15:9522",role="tablet"} 1.650181386050323e+09 +openmldb_connected_seconds_created{endpoint="172.17.0.15:9622",role="nameserver"} 1.6501813860512116e+09 +openmldb_connected_seconds_created{endpoint="172.17.0.15:9623",role="nameserver"} 1.650181386051238e+09 +openmldb_connected_seconds_created{endpoint="172.17.0.15:9624",role="nameserver"} 1.6501813860512598e+09 +``` -### Build python SDK (Optional) +
-openmldb exporter depends on [openmldb python SDK](https://pypi.org/project/openmldb/). For those introducing changes in python SDK or native code as well, this steps is required in order to take the latest Python SDK locally instead of the published one. +## Configuration -#### 1. Build native code +You can view the help from: +```sh +openmldb-exporter -h +``` +`--config.zk_root` and `--config.zk_path` are mandatory. -`cd` to root directory of OpenMLDB, and run: +
Available options -```bash -make SQL_PYSDK_ENABLE=ON +``` +usage: openmldb-exporter [-h] [--log.level LOG.LEVEL] [--web.listen-address WEB.LISTEN_ADDRESS] + [--web.telemetry-path WEB.TELEMETRY_PATH] [--config.zk_root CONFIG.ZK_ROOT] + [--config.zk_path CONFIG.ZK_PATH] [--config.interval CONFIG.INTERVAL] + +OpenMLDB exporter + +optional arguments: + -h, --help show this help message and exit + --log.level LOG.LEVEL + config log level, default WARN + --web.listen-address WEB.LISTEN_ADDRESS + process listen port, default 8000 + --web.telemetry-path WEB.TELEMETRY_PATH + Path under which to expose metrics, default metrics + --config.zk_root CONFIG.ZK_ROOT + endpoint to zookeeper, default 127.0.0.1:6181 + --config.zk_path CONFIG.ZK_PATH + root path in zookeeper for OpenMLDB, default / + --config.interval CONFIG.INTERVAL + interval in seconds to pull metrics periodically, default 30.0 ``` -This will generate compiled shared library in `python` source directory. +
-#### 2. Fix dependency list +## Development -Back to openmldb exporter directory, modify `pyproject.toml` and make content like below: +### Extra Requirements -```toml -[tool.poetry.dependencies] -# ... -# openmldb = "^0.6.0" -# uncomment below to use openmldb sdk built from source -# set develop = true so changes in python will take effect immediately -openmldb = { path = "../python/", develop = true } -``` +- Same in [Requirements](#requirements) +- [poetry](https://github.com/python-poetry/poetry) as build tool ### Run 1. Setup python dependencies: - ```bash + ```sh poetry install ``` 2. Start openmldb exporter - ```bash + ```sh poetry run openmldb-exporter ``` - You need pass necessary flags after `openmldb-exporter`. Run `poetry run openmldb-exporter --help` to get the help info - - ```bash - usage: openmldb-exporter [-h] [--log.level LOG.LEVEL] [--web.listen-address WEB.LISTEN_ADDRESS] - [--web.telemetry-path WEB.TELEMETRY_PATH] [--config.zk_root CONFIG.ZK_ROOT] - [--config.zk_path CONFIG.ZK_PATH] [--config.interval CONFIG.INTERVAL] - - OpenMLDB exporter - - optional arguments: - -h, --help show this help message and exit - --log.level LOG.LEVEL - config log level, default WARN - --web.listen-address WEB.LISTEN_ADDRESS - process listen port, default 8000 - --web.telemetry-path WEB.TELEMETRY_PATH - Path under which to expose metrics, default metrics - --config.zk_root CONFIG.ZK_ROOT - endpoint to zookeeper, default 127.0.0.1:6181 - --config.zk_path CONFIG.ZK_PATH - root path in zookeeper for OpenMLDB, default / - --config.interval CONFIG.INTERVAL - interval in seconds to pull metrics periodically, default 30.0 - ``` - -3. View the available metrics, you can pull through `curl` - - ```bash - curl http://127.0.0.1:8000/metrics - ``` + Pass in necessary flags after `openmldb-exporter`. Run `poetry run openmldb-exporter --help` to get the help info. - A example output: - - ```bash - # HELP openmldb_connected_seconds_total duration for a component conncted time in seconds - # TYPE openmldb_connected_seconds_total counter - openmldb_connected_seconds_total{endpoint="172.17.0.15:9520",role="tablet"} 208834.70900011063 - openmldb_connected_seconds_total{endpoint="172.17.0.15:9521",role="tablet"} 208834.70700001717 - openmldb_connected_seconds_total{endpoint="172.17.0.15:9522",role="tablet"} 208834.71399998665 - openmldb_connected_seconds_total{endpoint="172.17.0.15:9622",role="nameserver"} 208833.70000004768 - openmldb_connected_seconds_total{endpoint="172.17.0.15:9623",role="nameserver"} 208831.70900011063 - openmldb_connected_seconds_total{endpoint="172.17.0.15:9624",role="nameserver"} 208829.7230000496 - # HELP openmldb_connected_seconds_created duration for a component conncted time in seconds - # TYPE openmldb_connected_seconds_created gauge - openmldb_connected_seconds_created{endpoint="172.17.0.15:9520",role="tablet"} 1.6501813860467942e+09 - openmldb_connected_seconds_created{endpoint="172.17.0.15:9521",role="tablet"} 1.6501813860495396e+09 - openmldb_connected_seconds_created{endpoint="172.17.0.15:9522",role="tablet"} 1.650181386050323e+09 - openmldb_connected_seconds_created{endpoint="172.17.0.15:9622",role="nameserver"} 1.6501813860512116e+09 - openmldb_connected_seconds_created{endpoint="172.17.0.15:9623",role="nameserver"} 1.650181386051238e+09 - openmldb_connected_seconds_created{endpoint="172.17.0.15:9624",role="nameserver"} 1.6501813860512598e+09 - ``` ## Release History +- 0.8.0 + * Features + - Upgrade OpenMLDB SDK to v0.8 + - improve test code + - 0.7.1 * Features - Upgrade OpenMLDB SDK to v0.7 diff --git a/prod.env b/prod.env index 390c120..41d05ca 100644 --- a/prod.env +++ b/prod.env @@ -1,2 +1,2 @@ -OPENMLDB_VERSION=0.8.1 +OPENMLDB_VERSION=0.8.2 ENV_TYPE=prod diff --git a/pyproject.toml b/pyproject.toml index 01c310c..5f3b5e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["aceforeverd "] license = "Apache-2.0" readme = "README.md" homepage = "https://openmldb.ai" -repository = "https://github.com/4paradigm/OpenMLDB" +repository = "https://github.com/4paradigm/openmldb-exporter" documentation = "https://openmldb.ai/docs/zh/main/maintain/monitoring.html" keywords = ["openmldb", "prometheus"] classifiers = [