API

Process Monitor web app and API

Richard Smith

February 17th, 2023

The idea of process monitoring is to give a high level view on processes running in the system, without needing to worry about tracking multiple workflows (in the case of a batching workflow like Incremental Ingest or an internally triggering one like Web Ingest) or having to find information about non-workflow processes (e.g. secondary staging, automatic preservation actions from settings).

A single process represents one logical action (e.g. ‘ingest this OPEX’, ‘deprecate this CO’, ‘apply these preservation settings’) no matter how many actual internal jobs, background tasks or workflows Preservica might use to achieve that action. And you, as a user, are interested in the outcome of that process, not the internals of how Preservica chooses to execute it.

User view

Process monitoring is available through the monitoring UI, available at /monitor or from the Ingest menu, if it’s enabled for you.

This UI shows you a summary of the processes you have run in the top half, which can be filtered to only show certain types of process. For example if you are running auto-preservation processes and you’d like to see only those, select Automated System Tasks. This list shows the most recent processes first so you can look at what’s happening now easily. The process cards give a summary of the state of the process: a status icon, the number of warning or error messages it’s generated, and the count and size of content associated with it. (Not all processes generate all of these numbers.)

In the lower panel you see messages that come from processes. The message list is filtered by the controls in the panel above, and also by selecting processes in the top panel; in this example I have selected a single Characterise auto-preservation process so I’m only seeing messages from that process. If messages related to a particular entity then there will be a clickable link to view that entity in Explorer. The messages are also shown with the most recent at the top so you can watch a process without having to scroll.

You can also download the messages matching your current filters.

Within Explorer/SDB

In the lower right of the main Preservica interface is the Notification panel. It shows you a summary of running and recently completed (within the last hour) processes, and can be popped out to show more information (similar to the card view in the monitoring app).

In this example I have some ingest processes which have failed, and one which is currently running. Processes will show a progress bar if there is any meaningful progress that can be shown (which depends on the process type).

If your monitor application is enabled then the monitor names in this panel will be links to open the monitoring app with that monitor pre-selected.

API

We expose all the data shown to you in the monitoring UI through the Process Monitor API: https://eu.preservica.com/api/processmonitor/documentation.html.

There are two main endpoints:

  • GET /monitors: Return a list of all the monitors. You can filter this list based on process name or category.
  • GET /messages: Return a list of messages. You can filter based on the same options that are available to you in the UI. This endpoint is paged because there can be a lot of messages.

There is also an endpoint that returns timeseries data (one snapshot of size and file count per day) for a long running process. This is useful for incremental ingest or auto-preservation actions if you keep using the same process for multiple days, but the way we typically advise you to use the system doesn’t do this so for most of you this endpoint won’t be useful.

Use cases

We currently use processes for:

  • Ingest. Any ingest will create a single process per logical ingest, whether that represents one workflow (standard ingest), two (web/single file ingest) or an arbitrary number (incremental OPEX ingest). It’s most useful for the incremental ingest as you don’t know which workflow to look in for messages and entity links. Information is displayed to the user that relates to the file, before any entity has been created and links to entities are added once they’ve been created.
  • Background tasks from applying settings or configuration changes. This applies to auto-preservation tasks started by registry updates or by changing the migration settings, and it’s likely to apply to additional background actions triggered from ingest in future. There is no workflow associated with these actions but users might still want to track them.
  • Content replacement/deprecation. Pressing the ‘Replace’ button in Explorer will start a workflow, but that’s not the user experience
  • Move/link: started by non-workflow interactions in Explorer

Completed processes are archived (and will no longer be visible in the API or UI) 90 days after completion.

More updates from Preservica

API

Developer Blog - API Updates in Preservica 7.1

This post provides you with a summary of the API updates we have made in Preservica 7.1.

Richard Smith

March 26th, 2024

API

Developer Blog - API Summary in Preservica 7.0

This post provides you with a summary of the API updates we have made in Preservica 7.0.

Richard Smith

January 23rd, 2024

API

Developer Blog - API Summary in Preservica 6.11 and 6.12

This post provides you with a summary of the API updates we have made in Preservica 6.11 and 6.12.

Richard Smith

December 11th, 2023

API

Event-Driven Integrations. Using The Webhook API To Create Custom Business Processes

This article is a based on the talk of the same name given to the 2023 Preservica User Group in Oxford.

James Carr

October 23rd, 2023

Preservica on Github

Open API library and latest developments on GitHub

Visit the Preservica GitHub page for our extensive API library, sample code, our latest open developments and more.

Preservica.com

Protecting the world’s digital memory

The world's cultural, economic, social and political memory is at risk. Preservica's mission is to protect it.