diff --git a/interface/lib/classes/remote.d/monitor.inc.php b/interface/lib/classes/remote.d/monitor.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..d3689b94caaa0e40ea65b3b906950ab114f9688f
--- /dev/null
+++ b/interface/lib/classes/remote.d/monitor.inc.php
@@ -0,0 +1,66 @@
+<?php
+
+/*
+Copyright (c) 2017, Till Brehm, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+//* Remote functions of the monitor module
+class remoting_monitor extends remoting {
+
+	//* get the number of pending jobs from jobqueue
+	public function monitor_jobqueue_count($session_id, $server_id = 0)
+	{
+		global $app;
+
+		if(!$this->checkPerm($session_id, 'monitor_jobqueue_count')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		
+		$server_id = intval($server_id);
+		
+		if($server_id == 0) {
+			$servers = $app->db->queryAllRecords("SELECT server_id, updated FROM server");
+			$sql = 'SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE ';
+			foreach($servers as $sv) {
+				$sql .= " (datalog_id > ".$sv['updated']." AND server_id = ".$sv['server_id'].") OR ";
+			}
+			$sql = substr($sql, 0, -4);
+			$tmp = $app->db->queryOneRecord($sql);
+			return $tmp['jobqueue_count'];
+			
+		} else {
+			$server = $app->db->queryOneRecord("SELECT updated FROM server WHERE server_id = ?",$server_id);
+			$tmp = $app->db->queryOneRecord('SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE datalog_id > ?',$server['updated']);
+			return $tmp['jobqueue_count'];
+		}
+	}
+
+}
+
+?>
diff --git a/interface/web/monitor/lib/remote.conf.php b/interface/web/monitor/lib/remote.conf.php
new file mode 100644
index 0000000000000000000000000000000000000000..f149ed600afb1f83f1c8a0a8f507a0d394b26cec
--- /dev/null
+++ b/interface/web/monitor/lib/remote.conf.php
@@ -0,0 +1,5 @@
+<?php
+
+$function_list['monitor_jobqueue_count'] = 'Monitor functions';
+
+?>
diff --git a/remoting_client/examples/monitor_jobqueue_count.php b/remoting_client/examples/monitor_jobqueue_count.php
new file mode 100644
index 0000000000000000000000000000000000000000..cdd7837acea0ec832bf86f484d72977ae8791f45
--- /dev/null
+++ b/remoting_client/examples/monitor_jobqueue_count.php
@@ -0,0 +1,45 @@
+<?php
+
+require 'soap_config.php';
+
+$context = stream_context_create([
+    'ssl' => [
+        // set some SSL/TLS specific options
+        'verify_peer' => false,
+        'verify_peer_name' => false,
+        'allow_self_signed' => true
+    ]
+]);
+
+
+$client = new SoapClient(null, array('location' => $soap_location,
+		'uri'      => $soap_uri,
+		'trace' => 1,
+		'exceptions' => 1,
+		'stream_context' => $context));
+
+
+try {
+	if($session_id = $client->login($username, $password)) {
+		echo 'Logged successfull. Session ID:'.$session_id.'<br />';
+	}
+
+	//* Set the function parameters.
+	$server_id = 1;
+
+	$result = $client->monitor_jobqueue_count($session_id, $server_id);
+
+	print_r($result);
+	echo "<br>";
+
+	if($client->logout($session_id)) {
+		echo 'Logged out.<br />';
+	}
+
+
+} catch (SoapFault $e) {
+	echo $client->__getLastResponse();
+	die('SOAP Error: '.$e->getMessage());
+}
+
+?>