diff --git a/.dockerignore b/.dockerignore
index 632ee3679..79d6e7da9 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,8 +1,11 @@
**
-!/requirements*
+# We need .git to not be excluded from the context (hatch-vcs).
+!/.git/**
+
!/a3m/**
!/.python-version
+!/uv.lock
!/pyproject.toml
!/README.rst
!/LICENSE
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index a46019b5b..7905cfcf5 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -6,93 +6,30 @@ on:
- main
jobs:
tests:
- name: "Test on ${{ matrix.os }}"
- runs-on: "${{ matrix.os }}-latest"
- strategy:
- fail-fast: false
- matrix:
- os:
- - ubuntu
+ name: "Test"
+ runs-on: "ubuntu-22.04"
steps:
- name: "Check out source code"
uses: "actions/checkout@v4"
- - name: "Install Python"
- uses: "actions/setup-python@v4"
+ - name: Install the latest version of uv
+ uses: astral-sh/setup-uv@v2
with:
- python-version: |
- 3.11
- 3.12
- - name: "Restore cache"
- id: "restore-cache"
- uses: "actions/cache@v3"
+ enable-cache: true
+ version: latest
+ - name: Run tests
+ run: ./test.sh
+ - name: "Upload coverage report"
+ if: github.repository == 'artefactual-labs/a3m'
+ uses: "codecov/codecov-action@v4"
with:
- path: |
- .tox/
- .venv/
- key: "cache-python-${{ steps.setup-python.outputs.python-version }}-os-${{ runner.os }}-hash-${{ hashFiles('pyproject.toml', 'requirements.txt', 'requirements-dev.txt') }}"
- - name: "Install tox"
- if: "steps.restore-cache.outputs.cache-hit == false"
- run: |
- python -m venv .venv
- .venv/bin/python -m pip install -U setuptools
- .venv/bin/python -m pip install tox
- - name: "Run tox"
- run: |
- .venv/bin/python -m tox -e py
- - name: "Upload coverage data"
- uses: actions/upload-artifact@v3
+ files: ./coverage.xml
+ token: ${{ secrets.CODECOV_TOKEN }}
+ - name: Upload test results to Codecov
+ if: ${{ !cancelled() }}
+ uses: codecov/test-results-action@v1
with:
- name: covdata
- path: .coverage.*
- coverage:
- name: Coverage
- needs: tests
- runs-on: ubuntu-latest
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v4"
- - name: "Set up Python"
- uses: "actions/setup-python@v4"
- with:
- python-version-file: ".python-version"
- cache: pip
- cache-dependency-path: "requirements-dev.txt"
- - name: "Install tox"
- run: |
- python -m pip install -U setuptools
- python -m pip install tox
- - name: "Download coverage data"
- uses: actions/download-artifact@v3
- with:
- name: covdata
- - name: "Combine and report"
- run: |
- python -m tox -e coverage
- export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
- echo "total=$TOTAL" >> $GITHUB_ENV
- echo "### Total coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY
- - name: "Codecov"
- uses: codecov/codecov-action@v3
- with:
- files: coverage.xml
- pre-commit:
- name: "Run pre-commit"
- runs-on: "ubuntu-latest"
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v4"
- - name: "Set up Python"
- uses: "actions/setup-python@v4"
- with:
- python-version-file: ".python-version"
- cache: pip
- cache-dependency-path: "requirements-dev.txt"
- - name: "Install requirements"
- run: |
- python -m pip install -U setuptools
- python -m pip install -r requirements-dev.txt
- - name: "Run pre-commit"
- run: tox -e pre-commit
+ files: ./junit.xml
+ token: ${{ secrets.CODECOV_TOKEN }}
e2e:
name: "Run E2E tests"
runs-on: ubuntu-latest
@@ -121,5 +58,3 @@ jobs:
-m a3m.cli.client \
--name=MARBLES \
https://github.com/artefactual/archivematica-sampledata/raw/master/SampleTransfers/Images/pictures/MARBLES.TGA
- # TODO: main branch? push image to a3m:main
- # TODO: and tagged? push image to a3m:${tag} and a3m:latest
diff --git a/.gitignore b/.gitignore
index bda06d174..c5e6f2a8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,9 +29,7 @@ coverage.*
# pytest's working directory
.cache
.pytest_cache
-
-# tox working directory
-.tox/
+junit.xml
# mypy cache
.mypy_cache/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 1e71d6b0e..0d547bff7 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,5 +1,4 @@
repos:
-
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
@@ -12,61 +11,26 @@ repos:
a3m/assets/.*\.json|
tests/server/fixtures/workflow-integration-test.json
)
-
- repo: https://github.com/PyCQA/doc8
rev: v1.1.2
hooks:
- id: doc8
files: ^docs/.*\.rst$
-
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.6.3
+ rev: v0.6.7
hooks:
- id: ruff
args:
- "--fix"
- "--exit-non-zero-on-fix"
- id: ruff-format
-
- repo: https://github.com/adamchainz/django-upgrade
rev: "1.21.0"
hooks:
- id: django-upgrade
args:
- "--target-version=4.2"
-
-- repo: local
- hooks:
- - id: mypy
- name: mypy
- entry: mypy
- language: system
- types: [python]
- pass_filenames: false
- args:
- - "a3m"
-
- repo: https://github.com/astral-sh/uv-pre-commit
- rev: 0.4.5
+ rev: 0.4.16
hooks:
- - id: pip-compile
- args:
- - "--python-version=3.12"
- - "--output-file=requirements.txt"
- - "pyproject.toml"
- files: |
- (?x)^(
- pyproject.toml|
- requirements.txt
- )$
- - id: pip-compile
- args:
- - "--python-version=3.12"
- - "--output-file=requirements-dev.txt"
- - "pyproject.toml"
- - "--extra=dev"
- files: |
- (?x)^(
- pyproject.toml|
- requirements-dev.txt
- )$
+ - id: uv-lock
diff --git a/.python-version b/.python-version
index d9506ceba..35f236d6e 100644
--- a/.python-version
+++ b/.python-version
@@ -1 +1 @@
-3.12.5
+3.12.6
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index 1a90c878f..79d2503e9 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -2,12 +2,11 @@ version: 2
build:
os: "ubuntu-22.04"
tools:
- python: "3.11"
- jobs:
- post_checkout:
- - "git fetch --unshallow"
+ python: "3.12"
+ commands:
+ - pip install uv
+ - uv sync --frozen
+ - git fetch --unshallow
+ - .venv/bin/python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html
sphinx:
configuration: "docs/conf.py"
-python:
- install:
- - requirements: "requirements-dev.txt"
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 3ae4121c3..6159afcd5 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -19,6 +19,17 @@ See the fragment files in the `changelog.d directory`_.
.. scriv-insert-here
+.. _changelog-0.8.0:
+
+0.8.0 - 2024-09-25
+==================
+
+Changed
+-------
+
+- Use Python 3.12.6.
+- Use ``uv`` to manage the project environment.
+
.. _changelog-0.7.14:
0.7.14 - 2024-09-24
diff --git a/Dockerfile b/Dockerfile
index d092f7b82..4b2402b1f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,9 @@
+# syntax=docker/dockerfile:1.10.0-labs
+
ARG SYSTEM_IMAGE=ubuntu:22.04
+ARG UV_VERSION=0.4.16
+ARG USER_ID=1000
+ARG GROUP_ID=1000
#
# Base
@@ -6,9 +11,6 @@ ARG SYSTEM_IMAGE=ubuntu:22.04
FROM ${SYSTEM_IMAGE} AS base
-ARG USER_ID=1000
-ARG GROUP_ID=1000
-
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
@@ -67,64 +69,53 @@ RUN set -ex \
uuid \
&& rm -rf /var/lib/apt/lists/*
-# Python build.
-RUN set -ex \
- && apt-get update \
- && apt-get install -y --no-install-recommends \
- build-essential \
- libbz2-dev \
- libffi-dev \
- liblzma-dev \
- libncursesw5-dev \
- libreadline-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- libxmlsec1-dev \
- tk-dev \
- xz-utils \
- zlib1g-dev
-
-# Create a3m user
-RUN set -ex \
- && groupadd --gid ${GROUP_ID} --system a3m \
- && useradd --uid ${USER_ID} --gid ${GROUP_ID} --create-home --home-dir /home/a3m --system a3m \
- && mkdir -p /home/a3m/.local/share/a3m/share \
- && chown -R a3m:a3m /home/a3m/.local
+# -----------------------------------------------------------------------------
+FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv
-#
-# a3m
-#
+# -----------------------------------------------------------------------------
FROM base AS a3m
-ARG DJANGO_SETTINGS_MODULE=a3m.settings.common
-ENV DJANGO_SETTINGS_MODULE=${DJANGO_SETTINGS_MODULE}
-ENV PYENV_ROOT="/home/a3m/.pyenv"
-ENV PATH=$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
-ARG PYTHON_VERSION=""
-ARG REQUIREMENTS=/a3m/requirements.txt
+ARG USER_ID
+ARG GROUP_ID
-COPY ./.python-version /a3m/.python-version
-RUN set -ex \
- && curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash \
- && if [ -z "${PYTHON_VERSION}" ]; then PYTHON_VERSION=$(cat /a3m/.python-version); fi \
- && pyenv install ${PYTHON_VERSION} \
- && pyenv global ${PYTHON_VERSION}
-
-COPY ./requirements.txt /a3m/requirements.txt
-COPY ./requirements-dev.txt /a3m/requirements-dev.txt
-COPY ./pyproject.toml /a3m/pyproject.toml
+# Create a3m user.
RUN set -ex \
- && pyenv exec python3 -m pip install --upgrade pip setuptools \
- && pyenv exec python3 -m pip install --requirement ${REQUIREMENTS} \
- && pyenv rehash
+ && groupadd --gid ${GROUP_ID} --system a3m \
+ && useradd --uid ${USER_ID} --gid ${GROUP_ID} --home-dir /home/a3m --system a3m \
+ && mkdir -p /home/a3m/.local/share/a3m/share \
+ && chown -R a3m:a3m /home/a3m
+
+# Install uv.
+COPY --from=uv /uv /bin/uv
-COPY . /a3m
-WORKDIR /a3m
-RUN pip install . --no-deps
+# Enable bytecode compilation.
+ENV UV_COMPILE_BYTECODE=1
+# Copy from the cache instead of linking since it's a mounted volume.
+ENV UV_LINK_MODE=copy
+
+# Change the current user.
USER a3m
-ENTRYPOINT ["python", "-m", "a3m.cli.server"]
+# Install the project into `/app`.
+WORKDIR /app
+
+# Install the project's dependencies using the lockfile and settings.
+RUN --mount=type=cache,target=/home/a3m/.cache/uv,uid=${USER_ID},gid=${GROUP_ID} \
+ --mount=type=bind,source=uv.lock,target=uv.lock \
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
+ uv sync --frozen --no-install-project --no-dev
+
+# Add the rest of the project source code and install it.
+# Installing separately from its dependencies allows optimal layer caching.
+COPY --exclude=.git . /app
+RUN --mount=type=cache,target=/home/a3m/.cache/uv,uid=${USER_ID},gid=${GROUP_ID} \
+ --mount=type=bind,source=.git,target=.git \
+ uv sync --frozen --no-dev
+
+# Place executables in the environment at the front of the path.
+ENV PATH="/app/.venv/bin:$PATH"
+
+CMD ["a3md"]
diff --git a/Makefile b/Makefile
index 96af247e1..fc9bd6505 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ CURRENT_GID := $(shell id -g)
PYTHON_VERSION = $(shell cat .python-version | awk -F '.' '{print $$1 "." $$2}')
define compose
- docker compose -f docker-compose.yml $(1)
+ docker compose -f compose.yml $(1)
endef
define compose_run
@@ -70,20 +70,6 @@ stop: ## Stop services
restart: ## Restart services
docker-compose restart a3m
-.PHONY: pip-compile
-pip-compile: ## Compile pip requirements
- uv pip compile --python-version=$(PYTHON_VERSION) --output-file=requirements.txt pyproject.toml
- uv pip compile --python-version=$(PYTHON_VERSION) --output-file=requirements-dev.txt pyproject.toml --extra=dev
-
-.PHONY: pip-upgrade
-pip-upgrade: ## Upgrade pip requirements
- uv pip compile --upgrade --python-version=$(PYTHON_VERSION) --output-file=requirements.txt pyproject.toml
- uv pip compile --upgrade --python-version=$(PYTHON_VERSION) --output-file=requirements-dev.txt pyproject.toml --extra=dev
-
-.PHONY: pip-sync
-pip-sync: ## Ensures that the local venv mirrors requirements-dev.txt.
- uv pip sync requirements-dev.txt
-
.PHONY: db
db:
$(call compose_run, \
diff --git a/compose.yml b/compose.yml
new file mode 100644
index 000000000..c87c760ad
--- /dev/null
+++ b/compose.yml
@@ -0,0 +1,13 @@
+---
+volumes:
+ a3m-pipeline-data:
+ name: "a3m-pipeline-data"
+services:
+ a3m:
+ build:
+ context: "."
+ volumes:
+ - ".:/a3m"
+ - "a3m-pipeline-data:/home/a3m/.local/share/a3m:rw"
+ ports:
+ - "52000:7000"
diff --git a/docker-compose.instrumentation.yml b/docker-compose.instrumentation.yml
deleted file mode 100644
index 98d55cc06..000000000
--- a/docker-compose.instrumentation.yml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-version: "2.4"
-
-volumes:
-
- grafana_data:
- prometheus_data:
-
-services:
-
- prometheus:
- image: prom/prometheus:latest
- command:
- - --config.file=/etc/prometheus/prometheus.yml
- volumes:
- - ./hack/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- - prometheus_data:/prometheus
- ports:
- - 9090:9090
-
- grafana:
- image: grafana/grafana
- environment:
- GF_SECURITY_ADMIN_USER: "test"
- GF_SECURITY_ADMIN_PASSWORD: "test"
- volumes:
- - ./hack/grafana/provisioning:/etc/grafana/provisioning
- - grafana_data:/var/lib/grafana
- ports:
- - 3000:3000
- links:
- - "prometheus"
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index 85af49da9..000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-version: "2.4"
-
-volumes:
-
- a3m-pipeline-data:
- name: "a3m-pipeline-data"
-
-services:
-
- a3m:
- build:
- context: "."
- args:
- USER_ID: ${USER_ID:-1000}
- GROUP_ID: ${GROUP_ID:-1000}
- REQUIREMENTS: ${REQUIREMENTS:-/a3m/requirements-dev.txt}
- environment:
- A3M_PROMETHEUS_BIND_PORT: "7999"
- A3M_PROMETHEUS_BIND_ADDRESS: "0.0.0.0"
- volumes:
- - ".:/a3m"
- - "a3m-pipeline-data:/home/a3m/.local/share/a3m:rw"
- ports:
- - "52000:7000"
diff --git a/docs/contributing.rst b/docs/contributing.rst
index 35da05182..a3948113c 100644
--- a/docs/contributing.rst
+++ b/docs/contributing.rst
@@ -8,39 +8,24 @@ Dependency management
Python dependencies
^^^^^^^^^^^^^^^^^^^
-The requirements are listed in ``/pyproject.toml``. The constraints are relaxed
-with the purpose of allowing a3m to be used as a library.
+The requirements are listed in ``/pyproject.toml``. We use ``uv`` to manage the
+project environment, including the ``uv.lock`` lockfile.
-We use `uv` which pins the requirements in ``requirements.txt`` and
-``requirements-dev.txt`` for our Docker image. We provide a few helpers:
+Create and activate the virtual environment with::
-* ``make pip-compile`` generates the requirements with the latest versions of
- dependencies that satisfy the constraints in ``pyproject.toml``, but does not
- update versions if they are already satisfied.
-* ``make pip-upgrade`` regenerates the requirements, forcibly upgrading all
- listed packages to their latest available versions within the constraints.
-* ``make pip-sync`` installs the requirements in your current environment.
+ $ uv sync --dev
+ $ source .venb/bin/activate
-Our routine to keep up with the dependencies::
+Update the lockfile allowing package upgrades::
- make pip-upgrade
- make pip-sync
- git add requirements.txt requirements-dev.txt
- git commit -m "Update dependencies"
+ $ uv lock --upgrade
At this point you can also look up new versions beyond our constraints, e.g.::
- $ pip list --outdated
- Package Version Latest Type
- ------- ------- ------ -----
- Django 4.2.9 5.0.1 wheel
- lxml 4.9.4 5.1.0 wheel
- urllib3 2.0.7 2.1.0 wheel
+ $ uv run --with=pip pip list --outdated
-Update the constraints in ``pyproject.toml`` as needed, use ``pip-compile`` to
-generate the requirements and ``pip-sync`` to update your environment. As you're
-adopting new major versions of the dependencies, please make sure that you
-understand how that impacts our project.
+The `project lockfile`_ documentation page describes other operations such as
+upgrading locked package versions individually.
pre-commit
^^^^^^^^^^
@@ -48,11 +33,11 @@ pre-commit
pre-commit is a framework we use for managing and maintaining pre-commit hooks.
The easiest way to discover and apply new updates is to run::
- pre-commit autoupdate
+ $ pre-commit autoupdate
Commit the changes and run pre-commit again with::
- tox -e pre-commit
+ $ pre-commit run --all-files
Python version
^^^^^^^^^^^^^^
@@ -64,17 +49,6 @@ is to use the latest version available. Currently:
.. include:: ../.python-version
:code:
-But we aim to support at least a couple of versions, e.g. 3.11 and 3.12 to
-provide greater flexibility since a3m is also distributed as a Python package
-serving both as an application and a library. We're using tox to test against
-multiple versions of Python. If you want to alter the list of versions we're
-testing and supporting, the following files must be considered:
-
-* ``pyproject.toml`` describes the minimum version supported
- (``requires-python``), a list of all versions supported (``classifiers``) and
- test environments (under ``[tool.tox]``)
-* ``.github/workflows/test.yml`` lists the testing matrix in CI.
-
Releases
--------
@@ -82,9 +56,8 @@ We aim to further enhance and automate our release process.
Please adhere to the following instructions:
-1. Update the ``main`` branch with the latest version (``a3m.__version__``) and
- the changelog (use ``scriv collect`` to populate ``CHANGELOG.rst``). Submit
- these changes through a pull request and merge it once all checks have
+1. Update the changelog (use ``scriv collect`` to populate ``CHANGELOG.rst``).
+ Submit these changes through a pull request and merge it once all checks have
passed.
2. Confirm that the checks are also passing in ``main``.
3. Create and push the git tag, e.g.::
@@ -96,6 +69,33 @@ Please adhere to the following instructions:
new version of the package is available on `PyPI`_ and that the container
image has been published to the `GitHub Container Registry`_.
+Import FPR dataset from Archivematica
+-------------------------------------
+
+a3m loads the FPR dataset from a JSON document
+(``a3m/fpr/migrations/initial-data.json``) generated from the upstream
+Archivematica project. This section describes how to generate it:
+
+In Archivematica, generate a dump with::
+
+ manage.py dumpdata --format=json fpr
+
+Remove unused models from the document::
+
+ jq --sort-keys --indent 4 '[.[] | select(.model == "fpr.format" or .model == "fpr.formatgroup" or .model == "fpr.formatversion" or .model == "fpr.fpcommand" or .model == "fpr.fprule" or .model == "fpr.fptool")]' fpr-dumpdata.json > output.json
+
+Replace the dataset::
+
+ mv output.json ../../a3m/fpr/migrations/initial-data.json
+
+From the root directory, run the registry sanity checks::
+
+ pytest tests/test_registry.py
+
+Based on the validation issues reported, fix as needed. Make sure that the
+``fiwalk`` command is not using a ficonfig file.
+
.. _PyPI: https://pypi.org/project/a3m/
.. _GitHub Container Registry: https://ghcr.io/artefactual-labs/a3m
+.. _project lockfile: https://docs.astral.sh/uv/concepts/projects/#project-lockfile
diff --git a/docs/old-docs/dev-notes.md b/docs/old-docs/dev-notes.md
deleted file mode 100644
index 565f25a7a..000000000
--- a/docs/old-docs/dev-notes.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# Development
-
-It is possible to do local development work in a3m. But we also provide an
-environment based on Docker Compose with all the tools and dependencies
-installed so you don't have to run them locally.
-
-
-
-Docker Compose
-
-
-Try the following if you feel comfortable using our Makefile:
-
- make create-volume build bootstrap restart
-
-Otherwise, follow these steps:
-
- # Create the external data volume
- mkdir -p hack/compose-volume
- docker volume create --opt type=none --opt o=bind --opt device=./hack/compose-volume a3m-pipeline-data
-
- # Build service
- env COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
-
- # Bring the service up
- docker-compose up -d a3m
-
-You're ready to submit a transfer:
-
- # Submit a transfer
- docker-compose run --rm --entrypoint sh a3m -c "python -m a3m.server.rpc.client submit --wait --address=a3m:7000 https://github.com/artefactual/archivematica-sampledata/raw/master/SampleTransfers/ZippedDirectoryTransfers/DemoTransferCSV.zip"
-
- # Find the AIP generated
- find hack/compose-volume -name "*.7z";
-
-
-
-
-
-Container-free workflow
-
-
-Be aware that a3m has application dependencies that need to be available in the
-system path. The Docker image makes them all available while in this workflow
-you will have to ensure they're available manually.
-
-a3m needs Python 3.8 or newer. So for an Ubuntu/Debian Linux environment:
-
- sudo apt install -y python3.8 python3.8-venv python3.8-dev
-
-Check out this repository:
-
- git clone --depth 1 https://github.com/artefactual-labs/a3m.git
-
-Then follow these steps:
-
- # Create virtual environment and activate it
- python -m venv .venv
- source .venv/bin/activate
-
- # Install the dependencies
- pip install -r requirements-dev.txt
-
- # Run the tests:
- pytest
-
- # Run a3m server
- python -m a3m.cli.server
-
-Start a new transfer:
-
- python -m a3m.cli.client --address=127.0.0.1:7000 --name=demo https://github.com/artefactual/archivematica-sampledata/raw/master/SampleTransfers/ZippedDirectoryTransfers/DemoTransferCSV.zip
-
-You can find both the database and the shared directory under `~/.local/share/a3m/`.
-
-
-
-Other things you can do:
-
-
-
-
-
-Enable the debug mode
-
-
-a3m comes with a pre-configured logger that hides events with level `INFO` or
-lower. `INFO` is bloated, so we use `WARNING` and higher.
-
-Set the `A3M_DEBUG` environment string to see all events. The string can be
-injected in several ways, e.g.:
-
- docker-compose run --rm -e A3M_DEBUG=yes --publish=52000:7000 a3m
-
-The logging configuration lives in `a3m.settings.common`.
-
-
diff --git a/docs/old-docs/mcpclient.md b/docs/old-docs/mcpclient.md
deleted file mode 100644
index 9c66a0a8f..000000000
--- a/docs/old-docs/mcpclient.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# MCPClient
-
-This directory contains the Archivematica MCP client, frequently referred to as
-`MCPClient`. Its main responsibility is to perform the tasks assigned by
-`MCPServer`. These tasks are dispatched via Gearman.
-
-The programs responsible for performing the Gearman jobs are contained in the
-`lib/clientScripts/` directory. Each program is a Python module that
-implements the following function:
-
- def call(jobs)
-
-The `jobs` parameter is an array of `Job` objects, each corresponding
-to a task to be performed. If there are arguments associated with the
-task, `job.args` will hold those. When each job is run, it is
-expected to produce an exit code along with output and error
-streams. You set the exit code for a job with:
-
- job.set_status(int)
-
-To record standard output and standard error, there are several
-methods: write_* for storing literal strings; print_* for storing
-literal strings with newlines added; pyprint for a Python
-`print`-compatible API. See the Job class for more information on
-these.
-
-There are numerous examples of client scripts in the `clientScripts`
-directory. Commonly they will follow a pattern like:
-
- from custom_handlers import get_script_logger
- # ...
- logger = get_script_logger("archivematica.mcp.client.myModuleName")
-
- # ...
-
- def call(jobs):
- with transaction.atomic():
- for job in jobs:
- with job.JobContext(logger=logger):
- result = process_job(job.args)
- job.set_status(result)
-
-Some notable features:
-
- * Where the task will insert/update/delete rows from the database,
- we wrap it in a transaction. Besides providing atomicity if
- something goes wrong, this also boosts performance significantly.
-
- * Generally we iterate over each job one-by-one, although nothing
- stops you from working in larger batches if that suits.
-
- * `JobContext` is a convenience class that executes its body in a
- modified context:
-
- - Any uncaught exceptions will be logged as standard error
- output, and the job's status will be set to 1.
-
- - If you supply the `logger` keyword, your global logger will be
- configured to send its output to the job's standard error
- stream.
diff --git a/hack/fpr/README.md b/hack/fpr/README.md
deleted file mode 100644
index c221deebd..000000000
--- a/hack/fpr/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## Import FPR dataset from Archivematica
-
-Generate a dump:
-
- manage.py dumpdata --format=json fpr
-
-Remove unused models:
-
- jq --sort-keys --indent 4 '[.[] | select(.model == "fpr.format" or .model == "fpr.formatgroup" or .model == "fpr.formatversion" or .model == "fpr.fpcommand" or .model == "fpr.fprule" or .model == "fpr.fptool")]' fpr-dumpdata.json > output.json
-
-Replace the dataset:
-
- mv output.json ../../a3m/fpr/migrations/initial-data.json
-
-From the root directory, run the registry sanity checks:
-
- pytest tests/test_registry.py
-
-Based on the validation issues reported, fix as needed. In the latest update,
-the following issues were repoted and the corresponding rules were disabled:
-
- Rule in service 3a19de70-0e42-4145-976b-3a248d43b462 is using a Command not in service: (FITS).
- Rule in service 20cad741-3cf1-4b6a-9e71-d1e8af13ba3f is using a FormatVersion not in service: (Advanced Forensic Format).
- Rule in service 9e502f30-ba01-4981-8377-dd01ecf2dc5c is using a FormatVersion not in service: (Advanced Forensic Format).
-
-Also, make sure that the fiwalk command is not using a ficonfig file.
diff --git a/hack/grafana/provisioning/dashboards/Archivematica.json b/hack/grafana/provisioning/dashboards/Archivematica.json
deleted file mode 100644
index 2d267ae82..000000000
--- a/hack/grafana/provisioning/dashboards/Archivematica.json
+++ /dev/null
@@ -1,4240 +0,0 @@
-{
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "iteration": 1573251667362,
- "links": [],
- "panels": [
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 0
- },
- "id": 43,
- "panels": [],
- "repeat": "job",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "title": "Pipeline Overview - $job",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "decimals": null,
- "format": "dateTimeFromNow",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 0,
- "y": 1
- },
- "hideTimeOverride": false,
- "id": 20,
- "interval": "",
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "pluginVersion": "6.2.2",
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "__name__",
- "targets": [
- {
- "expr": "max(mcpclient_aips_stored_timestamp{job=~\"[[job]]\", instance=~\"[[instance]]\"}) * 1000",
- "format": "time_series",
- "instant": true,
- "interval": "1m",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Last AIP stored",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- },
- {
- "op": "=",
- "text": "Never",
- "value": "0"
- }
- ],
- "valueName": "max"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "decimals": null,
- "format": "dateTimeFromNow",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 6,
- "y": 1
- },
- "id": 46,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "max(mcpclient_transfer_started_timestamp{job=~\"[[job]]\", instance=~\"[[instance]]\"}) * 1000",
- "format": "time_series",
- "instant": true,
- "interval": "1m",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Last Transfer started",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- },
- {
- "op": "=",
- "text": "Never",
- "value": "0"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "decimals": null,
- "format": "dateTimeFromNow",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 12,
- "y": 1
- },
- "id": 22,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "max(mcpclient_dips_stored_timestamp{job=~\"[[job]]\", instance=~\"[[instance]]\"}) * 1000",
- "format": "time_series",
- "instant": true,
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Last DIP stored",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- },
- {
- "op": "=",
- "text": "Never",
- "value": "0"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "description": "",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 18,
- "y": 1
- },
- "id": 31,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(mcpserver_active_packages{instance=~\"[[instance]]\"})",
- "format": "time_series",
- "instant": true,
- "interval": "",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "In progress packages",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "0",
- "value": "null"
- },
- {
- "op": "=",
- "text": "0",
- "value": "0"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "description": "Increase over the selected time range",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 0,
- "y": 4
- },
- "id": 50,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "round(sum(increase(mcpclient_aips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__range])))",
- "format": "time_series",
- "instant": false,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "AIPs stored",
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "AIPs stored",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "None",
- "value": "null"
- },
- {
- "op": "=",
- "text": "",
- "value": ""
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "description": "Increase over the selected time range",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 6,
- "y": 4
- },
- "id": 52,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "__name__",
- "targets": [
- {
- "expr": "round(sum(increase(mcpclient_transfer_started_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__range])))",
- "format": "time_series",
- "instant": false,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Transfers started",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "None",
- "value": "null"
- },
- {
- "op": "=",
- "text": "",
- "value": ""
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "description": "Increase over the selected time range",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 12,
- "y": 4
- },
- "id": 51,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "round(sum(increase(mcpclient_dips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__range])))",
- "format": "time_series",
- "instant": false,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "AIPs stored",
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "DIPs stored",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "None",
- "value": "null"
- },
- {
- "op": "=",
- "text": "",
- "value": ""
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 6,
- "x": 18,
- "y": 4
- },
- "id": 48,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "version",
- "targets": [
- {
- "expr": "archivematica_version_info{job=~\"[[job]]\", instance=~\"[[instance]]\"}",
- "format": "table",
- "instant": true,
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Archivematica version",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "Unknown",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 7
- },
- "id": 58,
- "panels": [],
- "repeat": "job",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "title": "Processing Details - $job",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "For all MCP clients, averaged over the selected time range, e.g. per hour",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 8
- },
- "id": 74,
- "interval": "",
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_started_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfers started",
- "refId": "A"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfer errors",
- "refId": "B"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_completed_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfers completed",
- "refId": "D"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Transfers processed",
- "tooltip": {
- "shared": true,
- "sort": 1,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "transfers",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "By all MCPClients",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 8
- },
- "id": 59,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": null,
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(round(increase(mcpclient_aips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "AIPs stored",
- "refId": "A"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_dips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "DIPs stored ",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Packages stored",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "packages",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 16
- },
- "id": 60,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(increase(mcpclient_aip_size_bytes_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) or sum by (job)(increase(mcpclient_aip_size_bytes_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[1m]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "AIPs",
- "refId": "A"
- },
- {
- "expr": "sum by (job)(increase(mcpclient_dip_size_bytes_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) or sum by (job)(increase(mcpclient_dip_size_bytes_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[1m]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "DIP bytes",
- "refId": "B"
- },
- {
- "expr": "sum by (job)(increase(mcpclient_transfer_size_bytes_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfer bytes",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Bytes processed",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "decbytes",
- "label": "bytes",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "Across the pipeline, averaged over the time range given, e.g. per hour",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 16
- },
- "id": 33,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_error_total{job=~\"[[job]]\", failure_type=\"fail\"}[1m])))",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Transfer error",
- "refId": "B"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\", failure_type=\"reject\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfer rejected",
- "refId": "D"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_sip_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\", failure_type=\"fail\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "SIP error",
- "refId": "A"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_sip_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\", failure_type=\"reject\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "SIP rejected",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Processing errors",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "errors",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 24
- },
- "id": 39,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(round(increase(mcpclient_aip_files_stored_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) or sum by (job)(round(increase(mcpclient_aip_files_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "AIP files stored",
- "refId": "A"
- },
- {
- "expr": "sum by (job)(round(increase(mcpclient_transfer_files_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Transfer files ingested",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Files processed",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": null,
- "format": "short",
- "label": "files",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 32
- },
- "id": 76,
- "panels": [],
- "repeat": "job",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "title": "File Processing Analysis - $job",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 33
- },
- "id": 62,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": " (sum by (job) (rate(mcpclient_aip_files_stored_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job) (rate(mcpclient_aip_files_stored_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) or (sum by (job) (rate(mcpclient_aip_files_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job) (rate(mcpclient_aips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ job }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average number of files - AIPs",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "files",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 33
- },
- "id": 78,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (transfer_type) (rate(mcpclient_transfer_files_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (transfer_type) (rate(mcpclient_transfer_files_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ transfer_type }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average number of files - Transfer",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "files",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 41
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 81,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_aip_files_stored_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "AIP number of files distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "none",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "sqrt",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 41
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 82,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_transfer_files_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Transfer number of files distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "short",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 49
- },
- "id": 79,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "(sum by (job) (rate(mcpclient_aip_size_bytes_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job) (rate(mcpclient_aip_size_bytes_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) or (sum by (job)(rate(mcpclient_aip_size_bytes_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job)(rate(mcpclient_aips_stored_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ job }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average AIP size",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "decbytes",
- "label": "bytes",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 49
- },
- "id": 80,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (transfer_type)(rate(mcpclient_transfer_size_bytes_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (transfer_type)(rate(mcpclient_transfer_size_bytes_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ transfer_type }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average Transfer size",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "decbytes",
- "label": "bytes",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 57
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 83,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_aip_size_bytes_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "AIP size distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "decbytes",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 57
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 84,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_transfer_size_bytes_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Transfer size distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "decbytes",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 65
- },
- "id": 64,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "hideEmpty": false,
- "hideZero": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (format_name) (round(increase(mcpclient_aip_files_stored_by_file_group_and_format_total{job=~\"[[job]]\", instance=~\"[[instance]]\", file_group=\"derivative\"}[$__interval])) != 0)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ format_name }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "File formats processed - Derivatives",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "none",
- "label": "files",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 65
- },
- "id": 77,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "hideEmpty": false,
- "hideZero": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "repeatDirection": "v",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (format_name) (round(increase(mcpclient_aip_files_stored_by_file_group_and_format_total{job=~\"[[job]]\", instance=~\"[[instance]]\", file_group=\"original\"}[$__interval])) != 0)",
- "format": "time_series",
- "instant": false,
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ format_name }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "File formats processed - Originals",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "none",
- "label": "files ",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 8,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 73
- },
- "id": 63,
- "interval": "",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (format_name) (round(increase(mcpclient_aip_files_stored_by_file_group_and_format_total{job=~\"[[job]]\", instance=~\"[[instance]]\", file_group=\"metadata\"}[$__interval])) != 0)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ format_name }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "File formats processed - Metadata",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "none",
- "label": "files",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "original files only.",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 73
- },
- "heatmap": {},
- "hideZeroBuckets": true,
- "highlightCards": true,
- "id": 71,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_aip_original_file_timestamps_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "File modification year distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "none",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 81
- },
- "id": 56,
- "panels": [],
- "repeat": "job",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "title": "Performance Analysis - $job",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "Average processing time over the past minute.",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 82
- },
- "id": 69,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(rate(mcpclient_aip_processing_seconds_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job)(rate(mcpclient_aip_processing_seconds_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ job }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average AIP processing time",
- "tooltip": {
- "shared": false,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "dtdurations",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "description": "Average processing time over the past minute.",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 82
- },
- "id": 70,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": false,
- "total": false,
- "values": false
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (job)(rate(mcpclient_dip_processing_seconds_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) / sum by (job)(rate(mcpclient_dip_processing_seconds_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "DIP processing time",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average DIP processing time",
- "tooltip": {
- "shared": false,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "dtdurations",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 90
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 29,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_aip_processing_seconds_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "AIP processing time distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "tooltipDecimals": 0,
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "dtdurations",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#DEB6F2",
- "colorScale": "linear",
- "colorScheme": "interpolateMagma",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 90
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 67,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_dip_processing_seconds_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "DIP processing time distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "dtdurations",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 98
- },
- "id": 18,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "increase(django_http_requests_total_by_method_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ method }} ({{ instance }})",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "HTTP requests",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "requests",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 98
- },
- "id": 16,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum by (type, instance)(rate(django_http_exceptions_total_by_type_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ type }} ({{ instance }})",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "HTTP errors",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "errors",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "datasource": "Prometheus",
- "description": "Total time spent over the selected time range",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 106
- },
- "id": 72,
- "links": [],
- "options": {
- "displayMode": "gradient",
- "fieldOptions": {
- "calcs": [
- "last"
- ],
- "defaults": {
- "max": 100,
- "min": 0,
- "title": "$__field_name",
- "unit": "dtdurations"
- },
- "mappings": [],
- "override": {},
- "thresholds": [
- {
- "color": "semi-dark-green",
- "index": 0,
- "value": null
- },
- {
- "color": "light-green",
- "index": 1,
- "value": 50
- },
- {
- "color": "super-light-green",
- "index": 2,
- "value": 75
- }
- ],
- "values": true
- },
- "orientation": "horizontal"
- },
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "topk(5, sum by (script_name) (increase(mcpclient_task_execution_time_seconds_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__range])))",
- "format": "time_series",
- "instant": true,
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ script_name }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Total task execution time (MCPClient)",
- "type": "bargauge"
- },
- {
- "datasource": "Prometheus",
- "description": "Total time spent over the selected time range. May vary from MCPClient as MCPserver is often waiting for client processing.",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 106
- },
- "id": 73,
- "interval": "",
- "links": [],
- "options": {
- "displayMode": "gradient",
- "fieldOptions": {
- "calcs": [
- "mean"
- ],
- "defaults": {
- "max": 100,
- "min": 0,
- "title": "$__field_name",
- "unit": "dtdurations"
- },
- "mappings": [
- {
- "from": "",
- "id": 1,
- "operator": "",
- "text": "0",
- "to": "",
- "type": 1,
- "value": "NaN"
- }
- ],
- "override": {},
- "thresholds": [
- {
- "color": "semi-dark-green",
- "index": 0,
- "value": null
- },
- {
- "color": "light-green",
- "index": 1,
- "value": 50
- },
- {
- "color": "super-light-green",
- "index": 2,
- "value": 75
- }
- ],
- "values": true
- },
- "orientation": "horizontal"
- },
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "topk(5, sum(increase(mcpserver_task_duration_seconds_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__range])) by (script_name))",
- "format": "time_series",
- "instant": true,
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ script_name }}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Total task execution time (MCPServer)",
- "type": "bargauge"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 114
- },
- "id": 54,
- "panels": [],
- "repeat": "job",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "title": "Developer Info - $job",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 4,
- "x": 0,
- "y": 115
- },
- "id": 7,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "pluginVersion": "6.2.2",
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(mcpserver_gearman_pending_jobs{job=~\"[[job]]\", instance=~\"[[instance]]\"})",
- "format": "time_series",
- "instant": true,
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Gearman pending jobs",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 4,
- "x": 4,
- "y": 115
- },
- "id": 6,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "pluginVersion": "6.2.2",
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(mcpserver_gearman_active_jobs{job=~\"[[job]]\", instance=~\"[[instance]]\"})",
- "format": "time_series",
- "instant": true,
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Gearman active jobs",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "description": "Length of the MCPServer job queue for *active* packages",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 4,
- "x": 8,
- "y": 115
- },
- "id": 65,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "pluginVersion": "6.2.2",
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(mcpserver_active_package_job_queue_length{job=~\"[[job]]\", instance=~\"[[instance]]\"})",
- "format": "time_series",
- "instant": true,
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "timeFrom": null,
- "timeShift": null,
- "title": "Job queue length",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#FA6400",
- "colorScale": "sqrt",
- "colorScheme": "interpolateBlues",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 115
- },
- "heatmap": {},
- "hideZeroBuckets": true,
- "highlightCards": true,
- "id": 2,
- "interval": "",
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "pluginVersion": "6.2.2",
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpserver_task_duration_seconds_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "B"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "MCPServer task duration distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "dtdurations",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 118
- },
- "id": 9,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(round(increase(mcpserver_task_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (job)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Completed",
- "refId": "A"
- },
- {
- "expr": "sum(round(increase(mcpserver_task_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (job)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Failed",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "MCPServer tasks",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "tasks",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cacheTimeout": null,
- "cards": {
- "cardPadding": 0,
- "cardRound": null
- },
- "color": {
- "cardColor": "#FA6400",
- "colorScale": "sqrt",
- "colorScheme": "interpolateBlues",
- "exponent": 0.5,
- "min": 0,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "Prometheus",
- "description": "",
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 123
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 66,
- "legend": {
- "show": true
- },
- "links": [],
- "options": {},
- "pluginVersion": "6.2.2",
- "reverseYBuckets": false,
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_task_execution_time_seconds_bucket{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (le)",
- "format": "heatmap",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ le }}",
- "refId": "B"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "MCPClient task duration distribution",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": 0,
- "format": "dtdurations",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
- },
- {
- "aliasColors": {},
- "bars": false,
- "cacheTimeout": null,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 126
- },
- "id": 12,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(round(increase(mcpclient_job_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (instance)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Completed - {{instance}}",
- "refId": "A"
- },
- {
- "expr": "sum(round(increase(mcpclient_job_error_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))) by (instance)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "Errored - {{instance}}",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "MCPClient jobs",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": "jobs",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 131
- },
- "id": 25,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "rate(django_http_requests_latency_seconds_by_view_method_sum{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]) / rate(django_http_requests_latency_seconds_by_view_method_count{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ method}}: {{ view}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Average HTTP request time by view",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "dtdurations",
- "label": null,
- "logBase": 10,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 134
- },
- "id": 27,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": true,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(increase(django_model_save_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval])) by (model)",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ model }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Django model updates",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": null,
- "format": "short",
- "label": "saves",
- "logBase": 2,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 6,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 139
- },
- "id": 85,
- "interval": "1m",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {},
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "scopedVars": {
- "job": {
- "selected": true,
- "text": "archivematica",
- "value": "archivematica"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "avg by (instance)(irate(process_cpu_seconds_total{job=~\"[[job]]\", instance=~\"[[instance]]\"}[$__interval]))",
- "format": "time_series",
- "interval": "1m",
- "intervalFactor": 1,
- "legendFormat": "{{ instance }}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "CPU time by python process",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": 0,
- "format": "percentunit",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- }
- ],
- "refresh": false,
- "schemaVersion": 18,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "allValue": ".*",
- "current": {
- "text": "archivematica",
- "value": "archivematica"
- },
- "datasource": "Prometheus",
- "definition": "label_values(job)",
- "hide": 0,
- "includeAll": false,
- "label": null,
- "multi": true,
- "name": "job",
- "options": [],
- "query": "label_values(job)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "allValue": ".*",
- "current": {
- "text": "All",
- "value": "$__all"
- },
- "datasource": "Prometheus",
- "definition": "label_values(instance)",
- "hide": 0,
- "includeAll": true,
- "label": null,
- "multi": true,
- "name": "instance",
- "options": [],
- "query": "label_values(instance)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- }
- ]
- },
- "time": {
- "from": "now-1h",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "",
- "title": "Archivematica",
- "uid": "WQLPaE7Zk",
- "version": 20
-}
\ No newline at end of file
diff --git a/hack/grafana/provisioning/dashboards/dashboards.yml b/hack/grafana/provisioning/dashboards/dashboards.yml
deleted file mode 100644
index 14716ee19..000000000
--- a/hack/grafana/provisioning/dashboards/dashboards.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: 1
-
-providers:
-- name: 'Prometheus'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- editable: true
- options:
- path: /etc/grafana/provisioning/dashboards
diff --git a/hack/grafana/provisioning/datasources/datasource.yml b/hack/grafana/provisioning/datasources/datasource.yml
deleted file mode 100644
index 363a2db9f..000000000
--- a/hack/grafana/provisioning/datasources/datasource.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-# config file version
-apiVersion: 1
-
-# list of datasources that should be deleted from the database
-deleteDatasources:
- - name: Prometheus
- orgId: 1
-
-# list of datasources to insert/update depending
-# whats available in the database
-datasources:
- # name of the datasource. Required
-- name: Prometheus
- # datasource type. Required
- type: prometheus
- # access mode. direct or proxy. Required
- access: proxy
- # org id. will default to orgId 1 if not specified
- orgId: 1
- # url
- url: http://prometheus:9090
- # database password, if used
- password:
- # database user, if used
- user:
- # database name, if used
- database:
- # enable/disable basic auth
- basicAuth: false
- # basic auth username
- basicAuthUser:
- # basic auth password
- basicAuthPassword:
- # enable/disable with credentials headers
- withCredentials:
- # mark as default datasource. Max one per org
- isDefault:
- #