diff --git a/scripts/sysmon/git_metrics.py b/scripts/sysmon/git_metrics.py
index ee7cca3..46ee62f9 100644
--- a/scripts/sysmon/git_metrics.py
+++ b/scripts/sysmon/git_metrics.py
@@ -7,7 +7,6 @@
 from __future__ import absolute_import
 from __future__ import print_function
 
-import collections
 import os
 import subprocess
 
@@ -17,9 +16,6 @@
 logger = logging.getLogger(__name__)
 
 
-_Stats = collections.namedtuple('_Stats', 'added,deleted,path')
-
-
 class _GitRepo(object):
   """Helper class for running git commands."""
 
@@ -44,16 +40,18 @@
 
   def get_unstaged_changes(self):
     """Return number of unstaged changes as (added, deleted)."""
-    added, deleted = 0, 0
-    # output looks like '1\t2\tfoo\n3\t4\tbar\n'
+    added_total, deleted_total = 0, 0
+    # output looks like:
+    # '1\t2\tfoo\n3\t4\tbar\n'
+    # '-\t-\tbinary_file\n'
     output = self._check_output(['diff-index', '--numstat', 'HEAD'])
     stats_strings = (line.split() for line in output.splitlines())
-    stats_iter = (_Stats(int(added), int(deleted), path)
-             for added, deleted, path in stats_strings)
-    for stats in stats_iter:
-      added += stats.added
-      deleted += stats.deleted
-    return added, deleted
+    for added, deleted, _path in stats_strings:
+      if added != '-':
+        added_total += int(added)
+      if deleted != '-':
+        deleted_total += int(deleted)
+    return added_total, deleted_total
 
 
 class _GitMetricCollector(object):
