diff --git a/xcache_stats_r2mon.php b/xcache_stats_r2mon.php
new file mode 100644
index 0000000000000000000000000000000000000000..7e250a150dc7d68633ad90793081a35cd8b3c7bf
--- /dev/null
+++ b/xcache_stats_r2mon.php
@@ -0,0 +1,53 @@
+<?php
+
+$EXPORTED_STATS = array(
+  "compiling", "disabled", "misses", "hits", "clogs",
+  "ooms", "errors", "cached", "deleted", "size", "avail"
+);
+
+if (!extension_loaded('XCache')) {
+  trigger_error("xcache not loaded", E_USER_ERROR);
+  header("HTTP/1.1 500 Internal Server Error");
+}
+
+function xcache_type_stats($type) {
+  global $EXPORTED_STATS;
+
+  $total = array();
+  $type_stats = array();
+
+  for ($i = 0; $i < xcache_count($type); $i++) {
+    $type_stats[] = xcache_info($type, $i);
+  }
+
+  foreach($type_stats as $unused => $type_stat) {
+    foreach($type_stat as $k => $v) {
+      if(!in_array($k, $EXPORTED_STATS)) {
+        continue;
+      }
+
+      if(!isset($total[$k])) {
+        $total[$k] = 0;
+      }
+      $total[$k] += $v;
+    }
+  }
+  return $total;
+}
+
+$code_cache_stats = xcache_type_stats(XC_TYPE_PHP);
+$var_cache_stats = xcache_type_stats(XC_TYPE_VAR);
+
+/*
+print var_dump($code_cache_stats);
+print var_dump($var_cache_stats);
+*/
+
+foreach($code_cache_stats as $k => $v) {
+  print "xcache.stat{type=code,what=$k}: $v\n";
+}
+foreach($var_cache_stats as $k => $v) {
+  print "xcache.stat{type=var,what=$k}: $v\n";
+}
+print "xcache.pid: " . getmypid();
+?>