diff --git a/config/optional/captcha/monitoring.sensor_config.captcha_count.yml b/config/optional/captcha/monitoring.sensor_config.captcha_count.yml
new file mode 100644
index 0000000..1f7c90b
--- /dev/null
+++ b/config/optional/captcha/monitoring.sensor_config.captcha_count.yml
@@ -0,0 +1,22 @@
+id: captcha_failed_count
+label: 'Captcha failed Count'
+description: 'Monitors the number of failed attempts for Captcha'
+category: Captcha
+plugin_id: database_aggregator
+value_label: Attempt(s)
+value_type: 'number'
+status: TRUE
+caching_time: 3600
+settings:
+  table: 'captcha_sessions'
+  conditions:
+      -
+        field: 'status'
+        value: '0'
+      -
+        field: 'attempts'
+        value: '0'
+        operator: '>'
+dependencies:
+  module:
+    - captcha
diff --git a/src/Tests/MonitoringCaptchaTest.php b/src/Tests/MonitoringCaptchaTest.php
new file mode 100644
index 0000000..dcac531
--- /dev/null
+++ b/src/Tests/MonitoringCaptchaTest.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\monitoring\Tests\MonitoringCaptchaTest.
+ */
+
+namespace Drupal\monitoring\Tests;
+
+/**
+ * Tests for the captcha failed attempts.
+ */
+class MonitoringCaptchaTest extends MonitoringTestBase {
+
+  public static $modules = array('captcha');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Monitoring Captcha',
+      'description' => 'Monitoring captcha fails test.',
+      'group' => 'Monitoring',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Add captcha.inc file.
+    module_load_include('inc', 'captcha');
+  }
+  /**
+   * {@inheritdoc}
+   */
+  public function testCaptchaSensor() {
+
+    // Create user and test log in without CAPTCHA.
+    $user = $this->drupalCreateUser();
+    $this->drupalLogin($user);
+    // Log out again.
+    $this->drupalLogout();
+
+    // Set a CAPTCHA on login form.
+    captcha_set_form_id_setting('user_login_form', 'captcha/Math');
+
+    // Try to log in, with invalid captcha answer which should fail.
+    $edit = array(
+      'name' => $user->getUsername(),
+      'pass' => $user->pass_raw,
+      'captcha_response' => '?',
+    );
+    $this->drupalPostForm('user', $edit, t('Log in'));
+
+    // Run sensor and get the message.
+    $result = $this->runSensor('captcha_failed_count')->getMessage();
+
+    // Assert the number of failed attempts.
+    $this->assertEqual($result, '1 attempt(s)');
+
+    // Assert the total number of entries in captcha_sessions table.
+    $this->assertEqual(db_query('SELECT COUNT (*) FROM {captcha_sessions}')->fetchField(), 3);
+  }
+}
