diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 08:47:14 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 08:47:14 +0000 |
commit | 0ed6da430083d65451a9a96bca60928a35974a16 (patch) | |
tree | 03fa06ef6f5ce7f9fd0d6d905b3f1fab5b3a39dd | |
parent | 8f0ad7b9eecd4256facc5fdfd21d51a95b52112a (diff) |
automatic import of python-netbox-plugin-prometheus-sdopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-netbox-plugin-prometheus-sd.spec | 360 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 362 insertions, 0 deletions
@@ -0,0 +1 @@ +/netbox_plugin_prometheus_sd-0.6.3.tar.gz diff --git a/python-netbox-plugin-prometheus-sd.spec b/python-netbox-plugin-prometheus-sd.spec new file mode 100644 index 0000000..f5bcee4 --- /dev/null +++ b/python-netbox-plugin-prometheus-sd.spec @@ -0,0 +1,360 @@ +%global _empty_manifest_terminate_build 0 +Name: python-netbox-plugin-prometheus-sd +Version: 0.6.3 +Release: 1 +Summary: A Netbox plugin to provide Netbox entires to Prometheus HTTP service discovery +License: MIT +URL: https://pypi.org/project/netbox-plugin-prometheus-sd/ +Source0: https://mirrors.aliyun.com/pypi/web/packages/62/56/3fef3480177f1e5a92dc93281ce000ff6ea8024eebc9382b81da73fcc2f1/netbox_plugin_prometheus_sd-0.6.3.tar.gz +BuildArch: noarch + + +%description +# netbox-plugin-prometheus-sd + +[](https://opensource.org/licenses/MIT) +[](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI) +[](https://pypi.org/project/netbox-plugin-prometheus-sd/) + +Provide Prometheus http_sd compatible API Endpoint with data from Netbox. + +HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files. +This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus. + +## Compatibility + +We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions. +All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets. + +## Installation + +The plugin is available as a Python package in pypi and can be installed with pip + + pip install netbox-plugin-prometheus-sd + +Enable the plugin in /opt/netbox/netbox/netbox/configuration.py: + + PLUGINS = ['netbox_prometheus_sd'] + +The plugin has not further plugin configuration at the moment. + +## Usage + +The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation. + +### API + +The plugin reuses Netbox API view sets with new serializers for Prometheus. +This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets. +Paging is disabled because Prometheus does not support paged results. + +The plugin also reuses the Netbox authentication and permission model. +Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox. + +``` +GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format +GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format +GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format +``` + +### Example + +A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers. + +The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery. + +Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`. + +Push some example devices and objects to Netbox using the initializers: + +``` +docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers +``` + +Netbox content should then be available in the service discovery tab. + +## Development + +We use Poetry for dependency management and invoke as task runner. +As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers. + +All code to run in docker is located under `development`. +To start a virtual env managed by poetry run `poetry shell`. +All following commands are started inside this environment. + +In order to run tests invoke the test steps + +``` bash +# Execute all tests +invoke tests + +# Execute unit tests only +invoke unittest +``` + +Features should be covered by a unit test, but some times it's easier to develop on an running system. + +``` bash +# Start a local Netbox with docker +invoke start + +# Create an user named `admin` +invoke create-user +``` + +Visit http://localhost:8000 and log in with the new user. +You can now define Netbox entities and test around. + +API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/ + + +%package -n python3-netbox-plugin-prometheus-sd +Summary: A Netbox plugin to provide Netbox entires to Prometheus HTTP service discovery +Provides: python-netbox-plugin-prometheus-sd +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-netbox-plugin-prometheus-sd +# netbox-plugin-prometheus-sd + +[](https://opensource.org/licenses/MIT) +[](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI) +[](https://pypi.org/project/netbox-plugin-prometheus-sd/) + +Provide Prometheus http_sd compatible API Endpoint with data from Netbox. + +HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files. +This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus. + +## Compatibility + +We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions. +All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets. + +## Installation + +The plugin is available as a Python package in pypi and can be installed with pip + + pip install netbox-plugin-prometheus-sd + +Enable the plugin in /opt/netbox/netbox/netbox/configuration.py: + + PLUGINS = ['netbox_prometheus_sd'] + +The plugin has not further plugin configuration at the moment. + +## Usage + +The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation. + +### API + +The plugin reuses Netbox API view sets with new serializers for Prometheus. +This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets. +Paging is disabled because Prometheus does not support paged results. + +The plugin also reuses the Netbox authentication and permission model. +Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox. + +``` +GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format +GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format +GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format +``` + +### Example + +A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers. + +The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery. + +Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`. + +Push some example devices and objects to Netbox using the initializers: + +``` +docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers +``` + +Netbox content should then be available in the service discovery tab. + +## Development + +We use Poetry for dependency management and invoke as task runner. +As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers. + +All code to run in docker is located under `development`. +To start a virtual env managed by poetry run `poetry shell`. +All following commands are started inside this environment. + +In order to run tests invoke the test steps + +``` bash +# Execute all tests +invoke tests + +# Execute unit tests only +invoke unittest +``` + +Features should be covered by a unit test, but some times it's easier to develop on an running system. + +``` bash +# Start a local Netbox with docker +invoke start + +# Create an user named `admin` +invoke create-user +``` + +Visit http://localhost:8000 and log in with the new user. +You can now define Netbox entities and test around. + +API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/ + + +%package help +Summary: Development documents and examples for netbox-plugin-prometheus-sd +Provides: python3-netbox-plugin-prometheus-sd-doc +%description help +# netbox-plugin-prometheus-sd + +[](https://opensource.org/licenses/MIT) +[](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI) +[](https://pypi.org/project/netbox-plugin-prometheus-sd/) + +Provide Prometheus http_sd compatible API Endpoint with data from Netbox. + +HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files. +This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus. + +## Compatibility + +We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions. +All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets. + +## Installation + +The plugin is available as a Python package in pypi and can be installed with pip + + pip install netbox-plugin-prometheus-sd + +Enable the plugin in /opt/netbox/netbox/netbox/configuration.py: + + PLUGINS = ['netbox_prometheus_sd'] + +The plugin has not further plugin configuration at the moment. + +## Usage + +The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation. + +### API + +The plugin reuses Netbox API view sets with new serializers for Prometheus. +This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets. +Paging is disabled because Prometheus does not support paged results. + +The plugin also reuses the Netbox authentication and permission model. +Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox. + +``` +GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format +GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format +GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format +``` + +### Example + +A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers. + +The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery. + +Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`. + +Push some example devices and objects to Netbox using the initializers: + +``` +docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers +``` + +Netbox content should then be available in the service discovery tab. + +## Development + +We use Poetry for dependency management and invoke as task runner. +As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers. + +All code to run in docker is located under `development`. +To start a virtual env managed by poetry run `poetry shell`. +All following commands are started inside this environment. + +In order to run tests invoke the test steps + +``` bash +# Execute all tests +invoke tests + +# Execute unit tests only +invoke unittest +``` + +Features should be covered by a unit test, but some times it's easier to develop on an running system. + +``` bash +# Start a local Netbox with docker +invoke start + +# Create an user named `admin` +invoke create-user +``` + +Visit http://localhost:8000 and log in with the new user. +You can now define Netbox entities and test around. + +API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/ + + +%prep +%autosetup -n netbox_plugin_prometheus_sd-0.6.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-netbox-plugin-prometheus-sd -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.3-1 +- Package Spec generated @@ -0,0 +1 @@ +45927244d0d67db60cf0a59485309210 netbox_plugin_prometheus_sd-0.6.3.tar.gz |