Skip to content

Scraparr is a Prometheus Exporter for various components of the *arr Suite

License

Notifications You must be signed in to change notification settings

thecfu/scraparr

scraparr-logo Scraparr

A Exporter for the *arr Suite

Project Status: Active Pylint


Scraparr is a Prometheus exporter for the *arr suite (Sonarr, Radarr, Lidarr, etc.). It provides metrics that can be scraped by Prometheus to monitor and visualize the health and performance of your *arr applications.

Features

  • Exposes detailed *arr metrics
  • Easy integration with Prometheus
  • Lightweight and efficient
  • Built for extensibility

Installation

Local Setup

  1. Clone this repository:
git clone https://github.com/thecfu/scraparr.git
cd scraparr/src
  1. Install dependencies:
pip install -r scraparr/requirements.txt
  1. Run the exporter:
python -m scraparr.scraparr

Docker Setup

You can either Clone the Repo and build the Docker Image locally or you can use the Image published in the Github Registry You can also check the Docker-Compose.

Github Registry: docker run -v ./config.yaml:/scraparr/config/config.yaml -p 7100:7100 ghcr.io/thecfu/scraparr

Docker Hub: docker run -v ./config.yaml:/scraparr/config/config.yaml -p 7100:7100 thegameprofi/scraparr

Note

If your using any v1 Version check the Readme of the v1 Branch

Note

If you want to access new features before they are released, use the main tag.

Kubernetes

Deployment on Kubernetes is possible via the imgios/scraparr Helm Chart, which simplifies the process into two steps:

  1. Add the imgios/scraparr Helm Repository:
$ helm repo add imgios https://imgios.github.io/scraparr
  1. Run the installation command:
$ helm install <release-name> imgios/scraparr \
--namespace scraparr \
--create-namespace \
--values values.yaml

See the Helm Chart repository README for details on deployment and how to fill the values.

Configuration

Note

If your using any v1 Version check the Readme of the v1 Branch

Scraparr need's to be configured using a config.yaml file. Ensure the configuration specifies the URLs and API keys for the *arr services you want to monitor.

Template for Service inside the config.yaml:

sonarr:
  url: http://sonarr:8989
  api_key: key
  # alias: sonarr # Optional to Differentiate between multiple Services
  # api_version: v3 # Optional to use a different API Version
  # interval: 30 # Optional to set a different Interval in Seconds
  # detailed: true  # Get Data per Series

To Configure multiple Instances of the same Service you can configure them like this:

Caution

When using multiple Instances of the same Service you need to use the alias, else the metrics are getting overwritten

sonarr:
  - url: http://sonarr:8989
    api_key: key
    alias: sonarr1
  - url: http://sonarr2:8989
    api_key: key
    alias: sonarr2

Warning

If using the Docker Variant you need to use the IP or configure & use the extra_host host.docker.internal:host-gateway

Usage

Once the service is running, it will expose metrics at http://localhost:7100/metrics (default port). You can configure Prometheus to scrape these metrics by adding the following job to your Prometheus configuration:

scrape_configs:
  - job_name: 'scraparr'
    static_configs:
      - targets: ['localhost:7100']

Grafana Dashboards

The Main Dashboard is also available under Grafana Dashboards: Scraparr

For example Grafana Dashboards have a look at Dashboards

Contributing

Contributions are welcome! Please open an issue or submit a pull request. Make sure to follow the contribution guidelines.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.


___________.__           _________   _____ ____ ___ 
\__    ___/|  |__   ____ \_   ___ \_/ ____\    |   \
  |    |   |  |  \_/ __ \/    \  \/\   __\|    |   /
  |    |   |   Y  \  ___/\     \____|  |  |    |  / 
  |____|   |___|  /\___  >\______  /|__|  |______/  
                \/     \/        \/