--- /dev/null
+/**
+ * Implements hook_entity_predelete().
+ */
+function {{ machine_name }}_entity_predelete(Drupal\Core\Entity\EntityInterface $entity) {
+ // Count references to this entity in a custom table before they are removed
+ // upon entity deletion.
+ $id = $entity->id();
+ $type = $entity->getEntityTypeId();
+ $count = db_select('example_entity_data')
+ ->condition('type', $type)
+ ->condition('id', $id)
+ ->countQuery()
+ ->execute()
+ ->fetchField();
+
+ // Log the count in a table that records this statistic for deleted entities.
+ db_merge('example_deleted_entity_statistics')
+ ->key(['type' => $type, 'id' => $id])
+ ->fields(['count' => $count])
+ ->execute();
+}