From 53567e02802de4116e80023a9fcea9fc86eb1699 Mon Sep 17 00:00:00 2001 From: friendlyFriend Date: Sun, 26 Nov 2023 22:48:52 +0100 Subject: [PATCH] refactoring and reformating --- .coveragerc | 3 - .github/dependabot.yml | 6 - .github/workflows/docker.yml | 73 ------- .github/workflows/lint.yml | 59 ------ .github/workflows/pythonpublish.yml | 26 --- .idea/misc.xml | 3 + .pre-commit-config.yaml | 29 --- Dockerfile | 2 +- config.env.example | 6 - immich_exporter/exporter.py | 55 +++-- logo.png | Bin 135134 -> 0 bytes pdm.lock | 284 -------------------------- pyproject.toml | 36 ---- setup.py | 4 +- tests/__init__.py | 0 tests/exporter_test.py | 276 ------------------------- tests/metric_test.py | 13 -- unraid/prometheus-immich-exporter.xml | 2 +- 18 files changed, 32 insertions(+), 845 deletions(-) delete mode 100644 .coveragerc delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/docker.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/pythonpublish.yml delete mode 100644 .pre-commit-config.yaml delete mode 100644 config.env.example delete mode 100644 logo.png delete mode 100644 pdm.lock delete mode 100644 pyproject.toml delete mode 100644 tests/__init__.py delete mode 100644 tests/exporter_test.py delete mode 100644 tests/metric_test.py diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 4ead663..0000000 --- a/.coveragerc +++ /dev/null @@ -1,3 +0,0 @@ -[run] -relative_files = True -omit = tests/* diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 6a7695c..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 5b44549..0000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Docker - -on: - push: - branches: [ master ] - release: - types: [ created ] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker hub meta - id: meta - uses: docker/metadata-action@v5 - with: - flavor: | - latest=true - tags: | - type=semver,pattern=v{{version}} - type=ref,event=branch - type=sha - images: ${{ github.actor }}/prometheus-qbittorrent-exporter - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.REGISTRY_USERNAME }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - - name: Build and push docker to DockerHub - uses: docker/build-push-action@v5 - with: - push: true - platforms: linux/amd64,linux/arm64,linux/386 - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - - name: GHCR Docker meta - id: metaghcr - uses: docker/metadata-action@v5 - with: - flavor: | - latest=true - tags: | - type=semver,pattern=v{{version}} - type=ref,event=branch - type=sha - images: ghcr.io/${{ github.actor }}/prometheus-qbittorrent-exporter - - - name: Login to Github Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push docker to Github Container Registry - uses: docker/build-push-action@v5 - with: - push: true - platforms: linux/amd64,linux/arm64,linux/386 - tags: ${{ steps.metaghcr.outputs.tags }} - labels: ${{ steps.metaghcr.outputs.labels }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index d1b7059..0000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Run Unit Test via Pytest - -on: - pull_request: - push: - branches: - - "master" - -jobs: - lint-and-test: - runs-on: ubuntu-latest - permissions: - pull-requests: write - contents: write - checks: write - strategy: - matrix: - python-version: ["3.11"] - - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Setup PDM - uses: pdm-project/setup-pdm@v3 - - name: Install dependencies - run: pdm install - - name: Lint with black - uses: psf/black@stable - with: - options: "--check --verbose" - - name: Test with pytest - run: | - pdm run pytest --junit-xml=test-results.xml - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - files: | - test-results.xml - - name: Test with coverage - run: | - pdm run coverage run -m pytest -v -s - - name: Generate Coverage Report - run: | - pdm run coverage report -m - - name: Coverage comment - id: coverage_comment - uses: py-cov-action/python-coverage-comment-action@v3 - with: - GITHUB_TOKEN: ${{ github.token }} - - name: Store Pull Request comment to be posted - uses: actions/upload-artifact@v3 - if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true' - with: - name: python-coverage-comment-action - path: python-coverage-comment-action.txt diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml deleted file mode 100644 index 36caa06..0000000 --- a/.github/workflows/pythonpublish.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Upload Python Package - -on: - release: - types: [created] - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: '3.9' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine - - name: Build and publish - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - python setup.py sdist - twine upload dist/* diff --git a/.idea/misc.xml b/.idea/misc.xml index e82613a..154d3e7 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index a63f4e4..0000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,29 +0,0 @@ -repos: - - repo: local - hooks: - - id: black - name: black - stages: [commit] - types: [python] - entry: pdm run black . - language: system - pass_filenames: false - always_run: true - - id: ruff - name: ruff - stages: [commit] - types: [python] - entry: pdm run ruff . - language: system - pass_filenames: false - always_run: true - fail_fast: true - - id: pytest - name: pytest - stages: [commit] - types: [python] - entry: pdm run pytest - language: system - pass_filenames: false - always_run: true - fail_fast: true diff --git a/Dockerfile b/Dockerfile index f58eb14..2a3912f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.16.4 +FROM alpine:3.18.4 # Installing required packages FROM alpine/doctl diff --git a/config.env.example b/config.env.example deleted file mode 100644 index 55bbd2a..0000000 --- a/config.env.example +++ /dev/null @@ -1,6 +0,0 @@ -QBITTORRENT_HOST=localhost -QBITTORRENT_PORT=8080 -QBITTORRENT_USER=admin -QBITTORRENT_PASS=adminadmin -EXPORTER_PORT=8000 -METRICS_PREFIX=qbittorrent \ No newline at end of file diff --git a/immich_exporter/exporter.py b/immich_exporter/exporter.py index b3a4afc..4db3f14 100644 --- a/immich_exporter/exporter.py +++ b/immich_exporter/exporter.py @@ -49,7 +49,6 @@ class ImmichMetricsCollector: return metrics - def get_immich_users_stat_growth(self): try: @@ -63,24 +62,24 @@ class ImmichMetricsCollector: except requests.exceptions.RequestException as e: logger.error(f"Couldn't get server version: {e}") - userData = response_user_stats.json()["usageByUser"] + user_data = response_user_stats.json()["usageByUser"] # photos growth gauge - userCount = len(response_user_stats.json()["usageByUser"]) + user_count = len(response_user_stats.json()["usageByUser"]) photos_growth_total = 0 videos_growth_total = 0 usage_growth_total = 0 - for x in range(0, userCount): - photos_growth_total += userData[x]["photos"] + for x in range(0, user_count): + photos_growth_total += user_data[x]["photos"] # total video growth - videos_growth_total += userData[x]["videos"] + videos_growth_total += user_data[x]["videos"] # total disk growth - usage_growth_total += userData[x]["usage"] + usage_growth_total += user_data[x]["usage"] return [ { "name": f"{self.config['metrics_prefix']}_server_stats_user_count", - "value": userCount, + "value": user_count, "help": "number of users on the immich server" }, { @@ -122,53 +121,54 @@ class ImmichMetricsCollector: # To get the user count an api-endpoint exists but this works too. As a result one less api call is being made try: - userCount = len(response_user_stats.json()["usageByUser"]) + user_count = len(response_user_stats.json()["usageByUser"]) except Exception: logger.error("Is the Immich api token valid? Traceback:KeyError: 'usageByUser': ") # json array of all users with stats - # this line throws an error if api token is wrong. if the token is wrong or inavlid this will return a KeyError : 'usage by user' - userData = response_user_stats.json()["usageByUser"] + # this line throws an error if api token is wrong. if the token is wrong + # or invalid this will return a KeyError : 'usage by user' + user_data = response_user_stats.json()["usageByUser"] - for x in range(0, userCount): + for x in range(0, user_count): metrics.append( { "name": f"{self.config['metrics_prefix']}_server_stats_photos_by_users", - "value": userData[x]['photos'], + "value": user_data[x]['photos'], "labels": { - "firstName": userData[x]["userName"].split()[0], + "firstName": user_data[x]["userName"].split()[0], }, - "help": f"Number of photos by user {userData[x]['userName'].split()[0]} " + "help": f"Number of photos by user {user_data[x]['userName'].split()[0]} " } ) # videos - for x in range(0, userCount): + for x in range(0, user_count): metrics.append( { "name": f"{self.config['metrics_prefix']}_server_stats_videos_by_users", - "value": userData[x]['videos'], + "value": user_data[x]['videos'], "labels": { - "firstName": userData[x]["userName"].split()[0], + "firstName": user_data[x]["userName"].split()[0], }, - "help": f"Number of photos by user {userData[x]['userName'].split()[0]} " + "help": f"Number of photos by user {user_data[x]['userName'].split()[0]} " } ) # usage - for x in range(0, userCount): + for x in range(0, user_count): metrics.append( { "name": f"{self.config['metrics_prefix']}_server_stats_usage_by_users", - "value": (userData[x]['usage']), + "value": (user_data[x]['usage']), "labels": { - "firstName": userData[x]["userName"].split()[0], + "firstName": user_data[x]["userName"].split()[0], }, - "help": f"Number of photos by user {userData[x]['userName'].split()[0]} " + "help": f"Number of photos by user {user_data[x]['userName'].split()[0]} " } ) @@ -294,11 +294,9 @@ def get_config_value(key, default=""): def check_server_up(immichHost, immichPort): - # counter = 0 - while True: counter = counter + 1 try: @@ -310,7 +308,7 @@ def check_server_up(immichHost, immichPort): ) except requests.exceptions.RequestException as e: logger.error(f"CONNECTION ERROR. Cannot reach immich at " + immichHost + ":" + immichPort + "." - f"Is immich up and running?") + f"Is immich up and running?") if 0 <= counter <= 60: time.sleep(1) elif 11 <= counter <= 300: @@ -326,13 +324,12 @@ def check_server_up(immichHost, immichPort): def check_immich_api_key(immichHost, immichPort, immichApiKey): - while True: try: requests.request( "GET", - "http://"+immichHost+":"+immichPort+"/api/server-info/", + "http://" + immichHost + ":" + immichPort + "/api/server-info/", headers={'Accept': 'application/json', "x-api-key": immichApiKey} ) @@ -394,9 +391,7 @@ def main(): f"Exporter listening on port {config['exporter_port']}" ) - while not signal_handler.is_shutting_down(): time.sleep(1) logger.info("Exporter has shutdown") - diff --git a/logo.png b/logo.png deleted file mode 100644 index 996f2be083c1c4f439e749073b67a138ef5d040a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135134 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 diff --git a/pdm.lock b/pdm.lock deleted file mode 100644 index 62b32fe..0000000 --- a/pdm.lock +++ /dev/null @@ -1,284 +0,0 @@ -# This file is @generated by PDM. -# It is not intended for manual editing. - -[metadata] -groups = ["default", "dev"] -strategy = ["cross_platform"] -lock_version = "4.4" -content_hash = "sha256:474c773ee86217d652b5fc82f921ce2fbb513b244d50fbe82b74ea9e47dad96e" - -[[package]] -name = "black" -version = "23.11.0" -requires_python = ">=3.8" -summary = "The uncompromising code formatter." -dependencies = [ - "click>=8.0.0", - "mypy-extensions>=0.4.3", - "packaging>=22.0", - "pathspec>=0.9.0", - "platformdirs>=2", -] -files = [ - {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, - {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, - {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, - {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, - {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, - {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, -] - -[[package]] -name = "certifi" -version = "2023.7.22" -requires_python = ">=3.6" -summary = "Python package for providing Mozilla's CA Bundle." -files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.2.0" -requires_python = ">=3.7.0" -summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, -] - -[[package]] -name = "click" -version = "8.1.7" -requires_python = ">=3.7" -summary = "Composable command line interface toolkit" -dependencies = [ - "colorama; platform_system == \"Windows\"", -] -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -summary = "Cross-platform colored terminal text." -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "coverage" -version = "7.3.2" -requires_python = ">=3.8" -summary = "Code coverage measurement for Python" -files = [ - {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, - {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, - {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, - {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, - {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, - {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, - {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, -] - -[[package]] -name = "idna" -version = "3.4" -requires_python = ">=3.5" -summary = "Internationalized Domain Names in Applications (IDNA)" -files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -requires_python = ">=3.7" -summary = "brain-dead simple config-ini parsing" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "isort" -version = "5.12.0" -requires_python = ">=3.8.0" -summary = "A Python utility / library to sort Python imports." -files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -requires_python = ">=3.5" -summary = "Type system extensions for programs checked with the mypy type checker." -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "packaging" -version = "23.1" -requires_python = ">=3.7" -summary = "Core utilities for Python packages" -files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, -] - -[[package]] -name = "pathspec" -version = "0.11.2" -requires_python = ">=3.7" -summary = "Utility library for gitignore style pattern matching of file paths." -files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "platformdirs" -version = "4.0.0" -requires_python = ">=3.7" -summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -files = [ - {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, - {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, -] - -[[package]] -name = "pluggy" -version = "1.3.0" -requires_python = ">=3.8" -summary = "plugin and hook calling mechanisms for python" -files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, -] - -[[package]] -name = "prometheus-client" -version = "0.17.1" -requires_python = ">=3.6" -summary = "Python client for the Prometheus monitoring system." -files = [ - {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"}, - {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"}, -] - -[[package]] -name = "pytest" -version = "7.4.3" -requires_python = ">=3.7" -summary = "pytest: simple powerful testing with Python" -dependencies = [ - "colorama; sys_platform == \"win32\"", - "iniconfig", - "packaging", - "pluggy<2.0,>=0.12", -] -files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, -] - -[[package]] -name = "python-json-logger" -version = "2.0.7" -requires_python = ">=3.6" -summary = "A python library adding a json log formatter" -files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, -] - -[[package]] -name = "qbittorrent-api" -version = "2023.9.53" -summary = "Python client for qBittorrent v4.1+ Web API." -dependencies = [ - "packaging", - "requests>=2.16.0", - "six", - "urllib3>=1.24.2", -] -files = [ - {file = "qbittorrent-api-2023.9.53.tar.gz", hash = "sha256:fead1b2f55b1227ea088ea7d90b5022d94694bfd9dd9176beb5ad1c195d044ff"}, - {file = "qbittorrent_api-2023.9.53-py2.py3-none-any.whl", hash = "sha256:963ae59d16a9c4a9aa1714fb7f6799539dc2693136cdc0e377daab3612ca775a"}, -] - -[[package]] -name = "requests" -version = "2.31.0" -requires_python = ">=3.7" -summary = "Python HTTP for Humans." -dependencies = [ - "certifi>=2017.4.17", - "charset-normalizer<4,>=2", - "idna<4,>=2.5", - "urllib3<3,>=1.21.1", -] -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[[package]] -name = "six" -version = "1.16.0" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -summary = "Python 2 and 3 compatibility utilities" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "urllib3" -version = "2.0.5" -requires_python = ">=3.7" -summary = "HTTP library with thread-safe connection pooling, file post, and more." -files = [ - {file = "urllib3-2.0.5-py3-none-any.whl", hash = "sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"}, - {file = "urllib3-2.0.5.tar.gz", hash = "sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"}, -] diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 8f79963..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,36 +0,0 @@ -[project] -name = "prometheus-qbittorrent-exporter" -version = "1.4.0" -description = "Prometheus exporter for qbittorrent" -authors = [ - {name = "Esteban Sanchez", email = "esteban.sanchez@gmail.com"}, -] -dependencies = [ - "prometheus-client>=0.17.1", - "python-json-logger>=2.0.7", - "qbittorrent-api>=2023.9.53", -] -requires-python = ">=3.11" -readme = "README.md" -keywords = ["prometheus", "qbittorrent"] -license = {text = "GPL-3.0"} -classifiers = [] - -[project.urls] -Homepage = "https://github.com/esanchezm/prometheus-qbittorrent-exporter" -Downloads = "https://github.com/esanchezm/prometheus-qbittorrent-exporter/archive/1.4.0.tar.gz" - -[project.scripts] -qbittorrent-exporter = "qbittorrent_exporter.exporter:main" - -[build-system] -requires = ["pdm-backend"] -build-backend = "pdm.backend" - -[tool.pdm.dev-dependencies] -dev = [ - "pytest>=7.4.3", - "isort>=5.12.0", - "black>=23.11.0", - "coverage>=7.3.2", -] diff --git a/setup.py b/setup.py index 0c133dc..280b451 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ with open("README.md", "r") as fh: setup( name='prometheus-immich-exporter', packages=['immich_exporter'], - version='1.0.9', + version='1.1.0', long_description=long_description, long_description_content_type="text/markdown", description='Prometheus exporter for immich', @@ -18,7 +18,7 @@ setup( keywords=['prometheus', 'immich'], classifiers=[], python_requires='>=3', - install_requires=['attrdict==2.0.1', 'prometheus_client==0.12.0 ', 'requests==2.28.2', 'python-json-logger==2.0.2'], + install_requires=['attrdict==2.0.1', 'prometheus_client==0.19.0 ', 'requests==2.31.0', 'python-json-logger==2.0.7'], entry_points={ 'console_scripts': [ 'immich_exporter=immich_exporter.exporter:main', diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/exporter_test.py b/tests/exporter_test.py deleted file mode 100644 index 7153ab8..0000000 --- a/tests/exporter_test.py +++ /dev/null @@ -1,276 +0,0 @@ -import unittest -from unittest.mock import MagicMock, patch - -from prometheus_client.metrics_core import CounterMetricFamily, GaugeMetricFamily - -from qbittorrent_exporter.exporter import ( - Metric, - MetricType, - QbittorrentMetricsCollector, -) -from qbittorrentapi import TorrentStates - - -class TestQbittorrentMetricsCollector(unittest.TestCase): - @patch("qbittorrent_exporter.exporter.Client") - def setUp(self, mock_client): - self.mock_client = mock_client - self.config = { - "host": "localhost", - "port": "8080", - "username": "user", - "password": "pass", - "verify_webui_certificate": False, - "metrics_prefix": "qbittorrent", - } - self.torrentsState = [ - {"name": "Torrent DOWNLOADING 1", "state": TorrentStates.DOWNLOADING}, - {"name": "Torrent UPLOADING 1", "state": TorrentStates.UPLOADING}, - {"name": "Torrent DOWNLOADING 2", "state": TorrentStates.DOWNLOADING}, - {"name": "Torrent UPLOADING 2", "state": TorrentStates.UPLOADING}, - ] - self.torrentsCategories = [ - {"name": "Torrent Movies 1", "category": "Movies"}, - {"name": "Torrent Music 1", "category": "Music"}, - {"name": "Torrent Movies 2", "category": "Movies"}, - {"name": "Torrent unknown", "category": ""}, - {"name": "Torrent Music 2", "category": "Music"}, - {"name": "Torrent Uncategorized 1", "category": "Uncategorized"}, - ] - self.collector = QbittorrentMetricsCollector(self.config) - - def test_init(self): - self.assertEqual(self.collector.config, self.config) - self.mock_client.assert_called_once_with( - host=self.config["host"], - port=self.config["port"], - username=self.config["username"], - password=self.config["password"], - VERIFY_WEBUI_CERTIFICATE=self.config["verify_webui_certificate"], - ) - - def test_collect_gauge(self): - mock_metric = Metric( - name="test_gauge", - metric_type=MetricType.GAUGE, - help_text="Test Gauge", - labels={"label1": "value1"}, - value=10, - ) - self.collector.get_qbittorrent_metrics = MagicMock(return_value=[mock_metric]) - - result = next(self.collector.collect()) - - self.assertIsInstance(result, GaugeMetricFamily) - self.assertEqual(result.name, "test_gauge") - self.assertEqual(result.documentation, "Test Gauge") - self.assertEqual(result.samples[0].labels, {"label1": "value1"}) - self.assertEqual(result.samples[0].value, 10) - - def test_collect_counter(self): - mock_metric = Metric( - name="test_counter", - metric_type=MetricType.COUNTER, - help_text="Test Counter", - labels={"label2": "value2"}, - value=230, - ) - self.collector.get_qbittorrent_metrics = MagicMock(return_value=[mock_metric]) - - result = next(self.collector.collect()) - - self.assertIsInstance(result, CounterMetricFamily) - self.assertEqual(result.name, "test_counter") - self.assertEqual(result.documentation, "Test Counter") - self.assertEqual(result.samples[0].labels, {"label2": "value2"}) - self.assertEqual(result.samples[0].value, 230) - - def test_get_qbittorrent_metrics(self): - metrics = self.collector.get_qbittorrent_metrics() - self.assertNotEqual(len(metrics), 0) - - def test_fetch_categories(self): - # Mock the client.torrent_categories.categories attribute - self.collector.client.torrent_categories.categories = { - "category1": {"name": "Category 1"}, - "category2": {"name": "Category 2"}, - "category3": {"name": "Category 3"}, - } - - categories = self.collector._fetch_categories() - self.assertIsInstance(categories, dict) - self.assertNotEqual(len(categories), 0) - self.assertEqual(categories["category1"]["name"], "Category 1") - self.assertEqual(categories["category2"]["name"], "Category 2") - self.assertEqual(categories["category3"]["name"], "Category 3") - - def test_fetch_categories_exception(self): - self.collector.client.torrent_categories.categories = Exception( - "Error fetching categories" - ) - categories = self.collector._fetch_categories() - self.assertEqual(categories, {}) - - def test_fetch_torrents_success(self): - # Mock the return value of self.client.torrents.info() - self.collector.client.torrents.info.return_value = [ - {"name": "Torrent 1", "size": 100}, - {"name": "Torrent 2", "size": 200}, - {"name": "Torrent 3", "size": 300}, - ] - - expected_result = [ - {"name": "Torrent 1", "size": 100}, - {"name": "Torrent 2", "size": 200}, - {"name": "Torrent 3", "size": 300}, - ] - - result = self.collector._fetch_torrents() - self.assertEqual(result, expected_result) - - def test_fetch_torrents_exception(self): - # Mock an exception being raised by self.client.torrents.info() - self.collector.client.torrents.info.side_effect = Exception("Connection error") - - expected_result = [] - - result = self.collector._fetch_torrents() - self.assertEqual(result, expected_result) - - def test_filter_torrents_by_state(self): - expected = [ - {"name": "Torrent DOWNLOADING 1", "state": TorrentStates.DOWNLOADING}, - {"name": "Torrent DOWNLOADING 2", "state": TorrentStates.DOWNLOADING}, - ] - result = self.collector._filter_torrents_by_state( - TorrentStates.DOWNLOADING, self.torrentsState - ) - self.assertEqual(result, expected) - - expected = [ - {"name": "Torrent UPLOADING 1", "state": TorrentStates.UPLOADING}, - {"name": "Torrent UPLOADING 2", "state": TorrentStates.UPLOADING}, - ] - result = self.collector._filter_torrents_by_state( - TorrentStates.UPLOADING, self.torrentsState - ) - self.assertEqual(result, expected) - - expected = [] - result = self.collector._filter_torrents_by_state( - TorrentStates.ERROR, self.torrentsState - ) - self.assertEqual(result, expected) - - def test_filter_torrents_by_category(self): - expected_result = [ - {"name": "Torrent Movies 1", "category": "Movies"}, - {"name": "Torrent Movies 2", "category": "Movies"}, - ] - result = self.collector._filter_torrents_by_category( - "Movies", self.torrentsCategories - ) - self.assertEqual(result, expected_result) - - expected_result = [ - {"name": "Torrent unknown", "category": ""}, - {"name": "Torrent Uncategorized 1", "category": "Uncategorized"}, - ] - result = self.collector._filter_torrents_by_category( - "Uncategorized", self.torrentsCategories - ) - self.assertEqual(result, expected_result) - - expected_result = [] - result = self.collector._filter_torrents_by_category( - "Books", self.torrentsCategories - ) - self.assertEqual(result, expected_result) - - def test_construct_metric_with_valid_state_and_category(self): - state = "downloading" - category = "movies" - count = 10 - - metric = self.collector._construct_metric(state, category, count) - - self.assertEqual(metric.name, "qbittorrent_torrents_count") - self.assertEqual(metric.value, count) - self.assertEqual(metric.labels["status"], state) - self.assertEqual(metric.labels["category"], category) - self.assertEqual( - metric.help_text, - f"Number of torrents in status {state} under category {category}", - ) - - def test_construct_metric_with_empty_state_and_category(self): - state = "" - category = "" - count = 5 - - metric = self.collector._construct_metric(state, category, count) - - self.assertEqual(metric.name, "qbittorrent_torrents_count") - self.assertEqual(metric.value, count) - self.assertEqual(metric.labels["status"], state) - self.assertEqual(metric.labels["category"], category) - self.assertEqual( - metric.help_text, "Number of torrents in status under category " - ) - - def test_get_qbittorrent_status_metrics(self): - self.collector.client.transfer.info = {"connection_status": "connected"} - self.collector.client.app.version = "1.2.3" - - expected_metrics = [ - Metric( - name="qbittorrent_up", - value=True, - labels={"version": "1.2.3"}, - help_text=( - "Whether the qBittorrent server is answering requests from this" - " exporter. A `version` label with the server version is added." - ), - ), - Metric( - name="qbittorrent_connected", - value=True, - labels={}, - help_text=( - "Whether the qBittorrent server is connected to the Bittorrent" - " network." - ), - ), - Metric( - name="qbittorrent_firewalled", - value=False, - labels={}, - help_text=( - "Whether the qBittorrent server is connected to the Bittorrent" - " network but is behind a firewall." - ), - ), - Metric( - name="qbittorrent_dht_nodes", - value=0, - labels={}, - help_text="Number of DHT nodes connected to.", - ), - Metric( - name="qbittorrent_dl_info_data", - value=0, - labels={}, - help_text="Data downloaded since the server started, in bytes.", - metric_type=MetricType.COUNTER, - ), - Metric( - name="qbittorrent_up_info_data", - value=0, - labels={}, - help_text="Data uploaded since the server started, in bytes.", - metric_type=MetricType.COUNTER, - ), - ] - - metrics = self.collector._get_qbittorrent_status_metrics() - self.assertEqual(metrics, expected_metrics) diff --git a/tests/metric_test.py b/tests/metric_test.py deleted file mode 100644 index 7c597ee..0000000 --- a/tests/metric_test.py +++ /dev/null @@ -1,13 +0,0 @@ -import unittest - -from qbittorrent_exporter.exporter import Metric, MetricType - - -class TestMetric(unittest.TestCase): - def test_metric_initialization(self): - metric = Metric(name="test_metric", value=10) - self.assertEqual(metric.name, "test_metric") - self.assertEqual(metric.value, 10) - self.assertEqual(metric.labels, {}) - self.assertEqual(metric.help_text, "") - self.assertEqual(metric.metric_type, MetricType.GAUGE) diff --git a/unraid/prometheus-immich-exporter.xml b/unraid/prometheus-immich-exporter.xml index 706bf0e..b78a32c 100644 --- a/unraid/prometheus-immich-exporter.xml +++ b/unraid/prometheus-immich-exporter.xml @@ -22,7 +22,7 @@ https://www.paypal.com/donate/?hosted_button_id=DPDKED3T3BFV8 8000 - + \ No newline at end of file