Skip to content

sakowicz/actual-budget-prometheus-exporter

Repository files navigation

Actual Budget Prometheus Exporter

GitHub Release Docker Image Version Test Coverage

Description

Simple Prometheus exporter for Actual Budget.

It exposes the following metrics:

actual_budget_account_balance{account="Account Name",is_off_budget="false",budget="main"} 10000 # for each account
actual_budget_category_tranasction_count{category="Category Name",budget="main"} 1000 # for each category
actual_budget_uncategorized_transaction_count{budget="main"} 0
actual_budget_balance 1000000{budget="main"} # total balance
actual_budget_transaction_count{budget="main"} 1000
actual_budget_transfers_count{budget="main"} 100

Grafana Dashboard

You can use the following Grafana dashboard to visualize the metrics exposed by the Actual Budget Prometheus Exporter:

Grafana Dashboard Screenshot Actual Budget Grafana Dashboard

To import the dashboard, follow these steps:

  1. Open your Grafana instance.
  2. Go to the "Dashboards" section.
  3. Click on "Import".
  4. Enter the dashboard ID: 22789.
  5. Click "Load" and follow the instructions to complete the import.

Configuration

services:
  actual_server:
    image: docker.io/actualbudget/actual-server:latest
    ports:
      - '5006:5006'
    volumes:
      - ./actual-data:/data
    restart: unless-stopped

  actual-budget-prometheus-exporter:
    image: docker.io/sakowicz/actual-budget-prometheus-exporter:latest
    restart: unless-stopped
    ports:
      - '3001:3001'
    environment:
      ACTUAL_SERVER_URL: http://actual_server:5006
      ACTUAL_PASSWORD: your_actual_password
      ACTUAL_BUDGET_ID_1: your_actual_budget_id # This is the ID from Settings → Show advanced settings → Sync ID
      #ACTUAL_E2E_PASSWORD_1: # optional. required if you have E2E encryption
      #ACTUAL_BUDGET_NAME_1: # optional. this is custom name, helpful if you have multiple budgets. Will be added to prometheus label
      # If you want to track multiple budgets, you can add more environment variables
      #ACTUAL_BUDGET_ID_2:
      #ACTUAL_E2E_PASSWORD_2:
      #ACTUAL_BUDGET_NAME_2: