diff --git a/modules/test/config/optional/monitoring.sensor_config.entity_aggregate_test.yml b/modules/test/config/optional/monitoring.sensor_config.entity_aggregate_test.yml
index 171c7aa..3655608 100644
--- a/modules/test/config/optional/monitoring.sensor_config.entity_aggregate_test.yml
+++ b/modules/test/config/optional/monitoring.sensor_config.entity_aggregate_test.yml
@@ -1,6 +1,6 @@
 id: entity_aggregate_test
-label: 'DB Aggregate test'
-description: 'Tests the generic DB aggregate sensor.'
+label: 'Entity Aggregate test'
+description: 'Tests the content entity aggregate sensor.'
 category: 'Test'
 plugin_id: entity_aggregator
 value_type : 'number'
diff --git a/src/Plugin/monitoring/SensorPlugin/CommerceTurnoverSensorPlugin.php b/src/Plugin/monitoring/SensorPlugin/CommerceTurnoverSensorPlugin.php
index cb7ac02..6648a3d 100644
--- a/src/Plugin/monitoring/SensorPlugin/CommerceTurnoverSensorPlugin.php
+++ b/src/Plugin/monitoring/SensorPlugin/CommerceTurnoverSensorPlugin.php
@@ -24,7 +24,7 @@ use Drupal\monitoring\Result\SensorResultInterface;
  * )
  *
  */
-class CommerceTurnoverSensorPlugin extends EntityAggregatorSensorPlugin {
+class CommerceTurnoverSensorPlugin extends ContentEntityAggregatorSensorPlugin {
 
   /**
    * {@inheritdoc}
diff --git a/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php b/src/Plugin/monitoring/SensorPlugin/ContentEntityAggregatorSensorPlugin.php
similarity index 90%
rename from src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php
rename to src/Plugin/monitoring/SensorPlugin/ContentEntityAggregatorSensorPlugin.php
index 73c9b4e..5594e85 100644
--- a/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php
+++ b/src/Plugin/monitoring/SensorPlugin/ContentEntityAggregatorSensorPlugin.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * @file
- * Contains \Drupal\monitoring\Plugin\monitoring\SensorPlugin\EntityAggregatorSensorPlugin.
+ * Contains \Drupal\monitoring\Plugin\monitoring\SensorPlugin\ContentEntityAggregatorSensorPlugin.
  */
 
 namespace Drupal\monitoring\Plugin\monitoring\SensorPlugin;
@@ -11,6 +11,7 @@ use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Entity\DependencyTrait;
 use Drupal\Core\Entity\Entity;
 use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\Query\QueryAggregateInterface;
 use Drupal\Core\Entity\Query\QueryFactory;
 use Drupal\Core\Form\FormStateInterface;
@@ -22,18 +23,18 @@ use Drupal\monitoring\SensorPlugin\ExtendedInfoSensorPluginInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Entity database aggregator.
+ * Content entity database aggregator.
  *
  * It utilises the entity query aggregate functionality.
  *
  * @SensorPlugin(
  *   id = "entity_aggregator",
- *   label = @Translation("Entity Aggregator"),
+ *   label = @Translation("Content Entity Aggregator"),
  *   description = @Translation("Utilises the entity query aggregate functionality."),
  *   addable = TRUE
  * )
  */
-class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase implements ExtendedInfoSensorPluginInterface {
+class ContentEntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase implements ExtendedInfoSensorPluginInterface {
 
   use DependencySerializationTrait;
   use DependencyTrait;
@@ -201,9 +202,9 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
     // );
 
     // Load entities.
-    $entity_type = $this->getEntityTypeId();
+    $entity_type_id = $this->getEntityTypeId();
     $entities = $this->entityManager
-      ->getStorage($entity_type)
+      ->getStorage($entity_type_id)
       ->loadMultiple($entity_ids);
 
     // Get the fields to display from the settings.
@@ -211,6 +212,7 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
 
     // Render entities.
     $rows = [];
+    /* @var \Drupal\Core\Entity\FieldableEntityInterface $entity */
     foreach ($entities as $id => $entity) {
       $row = [];
       foreach ($fields as $field) {
@@ -242,9 +244,14 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
             break;
 
           default:
-            $property = $entity->getFieldDefinition($field)->getFieldStorageDefinition()->getMainPropertyName();
-            $value = $entity->$field->view(['label' => 'hidden']);
-            $row[] = $value ? \Drupal::service('renderer')->renderPlain($value) : $entity->$field->$property;
+            if ($entity->hasField($field)) {
+              $property = $entity->getFieldDefinition($field)->getFieldStorageDefinition()->getMainPropertyName();
+              $value = $entity->$field->view(['label' => 'hidden']);
+              $row[] = $value ? \Drupal::service('renderer')->renderPlain($value) : $entity->$field->$property;
+            }
+            else {
+              $row[] = t('field %field is invalid', ['%field' => $field]);
+            }
             break;
         }
       }
@@ -255,7 +262,7 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
       );
     }
     if (count($rows) > 0) {
-      $header = $this->sensorConfig->getSetting('verbose_fields');
+      $header = $this->sensorConfig->getSetting('verbose_fields', ['id', 'label']);
       $output['entities'] = array(
         '#type' => 'table',
         '#header' => $header,
@@ -291,12 +298,20 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     $form = parent::buildConfigurationForm($form, $form_state);
     $settings = $this->sensorConfig->getSettings();
+    $entity_types = $this->entityManager->getEntityTypeLabels();
+    $options = [];
+    foreach ($entity_types as $id => $label) {
+      $class = $this->entityManager->getDefinition($id)->getClass();
+      if (is_subclass_of($class, '\Drupal\Core\Entity\FieldableEntityInterface', TRUE)) {
+        $options[$id] = $label;
+      };
+    }
 
     $form['entity_type'] = array(
       '#type' => 'select',
-      '#default_value' => $this->getEntityTypeId(),
+      '#default_value' => $this->sensorConfig->getSetting('entity_type', 'node'),
       '#maxlength' => 255,
-      '#options' => $this->entityManager->getEntityTypeLabels(),
+      '#options' => $options,
       '#title' => t('Entity Type'),
     );
     if (!isset($settings['entity_type'])) {
@@ -329,7 +344,7 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
     );
 
     // Fill the sensors table with form elements for each sensor.
-    $conditions = $this->sensorConfig->getSetting('conditions');
+    $conditions = array_values($this->sensorConfig->getSetting('conditions'));
     if (empty($conditions)) {
       $conditions = [];
     }
@@ -416,10 +431,9 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im
     $entity_type = $this->entityManager->getDefinition($this->getEntityTypeId());
     $form['verbose_fields']['available_fields'] = [
       '#markup' => t('Available Fields for entity %type: <b>%fields</b>', [
-          '%type' => $entity_type->getLabel(),
-          '%fields' => implode(', ', array_keys($this->entityManager->getBaseFieldDefinitions($this->getEntityTypeId())))
-        ]
-      ),
+        '%type' => $entity_type->getLabel(),
+        '%fields' => implode(', ', array_keys($this->entityManager->getBaseFieldDefinitions($this->getEntityTypeId())))
+      ]),
     ];
 
     // Fill the sensors table with form elements for each sensor.
diff --git a/src/Plugin/monitoring/SensorPlugin/PaymentTurnoverSensorPlugin.php b/src/Plugin/monitoring/SensorPlugin/PaymentTurnoverSensorPlugin.php
index e491751..fd52ad2 100644
--- a/src/Plugin/monitoring/SensorPlugin/PaymentTurnoverSensorPlugin.php
+++ b/src/Plugin/monitoring/SensorPlugin/PaymentTurnoverSensorPlugin.php
@@ -23,7 +23,7 @@ use Drupal\payment\Entity\Payment;
  *   addable = TRUE
  * )
  */
-class PaymentTurnoverSensorPlugin extends EntityAggregatorSensorPlugin {
+class PaymentTurnoverSensorPlugin extends ContentEntityAggregatorSensorPlugin {
 
   /**
    * {@inheritdoc}
diff --git a/src/Tests/MonitoringCoreWebTest.php b/src/Tests/MonitoringCoreWebTest.php
index a74f6ff..825b801 100644
--- a/src/Tests/MonitoringCoreWebTest.php
+++ b/src/Tests/MonitoringCoreWebTest.php
@@ -296,7 +296,7 @@ class MonitoringCoreWebTest extends MonitoringTestBase {
   /**
    * Tests the entity aggregator.
    *
-   * @see EntityAggregatorSensorPlugin
+   * @see ContentEntityAggregatorSensorPlugin
    */
   public function testEntityAggregator() {
     // Create content types and nodes.
@@ -379,14 +379,14 @@ class MonitoringCoreWebTest extends MonitoringTestBase {
     $term2 = $this->createTerm($vocabulary);
 
     // Create node that only references the first term.
-    $this->drupalCreateNode(array(
+    $node1 = $this->drupalCreateNode(array(
       'created' => REQUEST_TIME,
       'type' => $type2->id(),
       'term_reference' => array(array('target_id' => $term1->id())),
     ));
 
     // Create node that only references both terms.
-    $this->drupalCreateNode(array(
+    $node2 = $this->drupalCreateNode(array(
       'created' => REQUEST_TIME,
       'type' => $type2->id(),
       'term_reference' => array(
@@ -396,7 +396,7 @@ class MonitoringCoreWebTest extends MonitoringTestBase {
     ));
 
     // Create a third node that references both terms but in different fields.
-    $this->drupalCreateNode(array(
+    $node3 = $this->drupalCreateNode(array(
       'created' => REQUEST_TIME,
       'type' => $type2->id(),
       'term_reference' => array(array('target_id' => $term1->id())),
@@ -414,6 +414,43 @@ class MonitoringCoreWebTest extends MonitoringTestBase {
     // There should be three nodes with that reference.
     $this->assertEqual($result->getValue(), 3);
 
+    // Check the content entity aggregator verbose output and other UI elements.
+    $this->drupalLogin($this->createUser(['monitoring reports', 'administer monitoring']));
+    $this->drupalPostForm('admin/reports/monitoring/sensors/entity_aggregate_test', [], t('Run now'));
+    $this->assertText('id');
+    $this->assertText('label');
+    $this->assertLink($node1->label());
+    $this->assertLink($node2->label());
+    $this->assertLink($node3->label());
+    $this->clickLink(t('Edit'));
+    // Assert some of the 'available fields'.
+    $this->assertText('Content: nid, uuid, vid, type, langcode, title, uid, status, created, changed, promote, sticky, revision_timestamp, revision_uid,');
+    $this->assertFieldByName('conditions[0][field]', 'term_reference.target_id');
+    $this->assertFieldByName('conditions[0][value]', $term1->id());
+
+    // Test adding another field.
+    $this->drupalPostForm(NULL, [
+      'settings[verbose_fields][2]' => 'revision_timestamp',
+    ] , t('Add another field'));
+    // Repeat for a condition, add an invalid field while we are at it.
+    $this->drupalPostForm(NULL, [
+    'conditions[1][field]' => 'nid',
+      'conditions[1][operator]' => '>',
+      'conditions[1][value]' => 4,
+      // The invalid field.
+      'settings[verbose_fields][3]' => 'test_wrong_field',
+    ] , t('Add another condition'));
+
+    $this->drupalPostForm(NULL, [], t('Save'));
+    $this->clickLink('Entity Aggregate test');
+
+    // Assert the new field and it's formatted output.
+    $this->assertText('revision_timestamp');
+    $this->assertText(\Drupal::service('date.formatter')->format($node1->getRevisionCreationTime(), 'short'));
+    $this->assertText(\Drupal::service('date.formatter')->format($node2->getRevisionCreationTime(), 'short'));
+    $this->assertText(\Drupal::service('date.formatter')->format($node3->getRevisionCreationTime(), 'short'));
+    $this->assertText('field test_wrong_field is invalid');
+
     // Update the sensor to look for nodes with a reference to term1 in the
     // first field and term2 in the second.
     $sensor_config->settings['conditions'] = array(
diff --git a/src/Tests/MonitoringUITest.php b/src/Tests/MonitoringUITest.php
index 1bc966c..0019308 100644
--- a/src/Tests/MonitoringUITest.php
+++ b/src/Tests/MonitoringUITest.php
@@ -183,8 +183,6 @@ class MonitoringUITest extends MonitoringTestBase {
    * Tests the entity aggregator sensors.
    *
    * Tests the entity aggregator with time interval settings and verbosity.
-   *
-   * @todo add tests for DB aggregator.
    */
   public function testAggregateSensorTimeIntervalConfig() {
     $account = $this->drupalCreateUser(array('administer monitoring', 'monitoring reports', 'monitoring reports'));
