[REPO-3681] Renditions: Record HeartBeat data in rendition V1 REST API Created: 17-Jul-18  Updated: 11-Jun-20  Resolved: 03-Aug-18

Status: Done
Project: Repository
Component/s: Heartbeat, Repository, REST API
Affects Version/s: None
Fix Version/s: Community 6.1.0, VB: AWS Migration: Transforms

Type: Story
Reporter: Alex Mukha Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: Not Specified

Work Funnel: Feature
Epic Link: Renditions: Transform event producer
Sprint: Repo Renditions 36 Flashheart
Story Points: 5
Work Funnel End: 2018-08


Acceptance criteria:

  • The rendition requests details send via Rendition Rest APIs (v1) are recorded in HeartBeat system:
    • source mimetype
    • target mimetype
    • quantity of requests
    • rendition definition name
  • The information is enough to make a judgement if the list of transformations supported by Transform Service is enough to fulfil the needs of ACS clients (part of REPO-3670)

Stretch goal:

  • Backport to 6.0

Sizing video:

Comment by Alan Davis [ 03-Aug-18 ]

Heartbeat data is only gathered when a POST request is made via the Rendition Rest API to generate a new rendition that does not already exist. Share does not use this API, but ADF applications might. Data is not gathered for requests via web scripts or as a result of a node update.

There will be a heartbeat entry for each source mimetype and rendition combination from each node in the cluster once a day. The reason for flattening out the source mimtypes into their own entry rather than having them being just a nested element is that it makes it very much simpler to query the results. The combination of source mimetypes per rendition is not fixed so it would have been very likely to that the arrays would have had different numbers of elements, making it harder to combine results. The fields found in each entry are:

  • systemId
  • collectorId = "acs.repository.renditions"
  • collectorVersion = "1.0"
  • timestamp
  • rendition     # the name, such as doclib
  • count          # the number of time requested. Normally used in sum(count) to gather the totals
  • sourceMimetype
  • targetMimetype # will always be the same for a given rendition.

The data collector has been back ported to the version of the alfresco-remote-api that will be used in the next ACS 6.0 SP. However unlike the ACS 6.1 version only one node in the cluster will report its data. This is due to a limitation in the heartbeat framework.

Generated at Thu Jul 09 12:20:57 BST 2020 using JIRA 7.6.3#76005-sha1:8a4e38d34af948780dbf52044e7aafb13a7cae58.