Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/monitor_log/write_monitor_to_db.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/monitor_log/write_monitor_to_db.py	(revision 39822)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/monitor_log/write_monitor_to_db.py	(working copy)
@@ -69,7 +69,7 @@
     if status != 0:
         exit(1)
     grp_pattern = r"Global Statistics:\s*\n\s*LISTEN:\s*(\d+)\s*\n\s*SYN_SENT:\s*(\d+)\s*\n\s*SYN_RCVD:\s*(\d+)\s*\n\s*ESTABLISHED:\s*(\d+)\s*\n\s*CLOSE_WAIT:\s*(\d+)\s*\n\s*FIN_WAIT_1:\s*(\d+)\s*\n\s*CLOSING:\s*(\d+)\s*\n\s*LAST_ACK:\s*(\d+)\s*\n\s*FIN_WAIT_2:\s*(\d+)\s*\n\s*TIME_WAIT:\s*(\d+)"
-    vs_pattern = r"virtual service:\s+(\S+).*?LISTEN: (.*?)\n\s+SYN_SENT: (.*?)\n\s+SYN_RCVD: (.*?)\n\s+ESTABLISHED: (.*?)\n\s+CLOSE_WAIT: (.*?)\n\s+FIN_WAIT_1: (.*?)\n\s+CLOSING: (.*?)\n\s+LAST_ACK: (.*?)\n\s+FIN_WAIT_2: (.*?)\n\s+TIME_WAIT: (.*?)\n"
+    vs_pattern = r"virtual service:\s+(\S+)\s*\n\s*LISTEN:\s*(\d+)\s*\n\s*SYN_SENT:\s*(\d+)\s*\n\s*SYN_RCVD:\s*(\d+)\s*\n\s*ESTABLISHED:\s*(\d+)\s*\n\s*CLOSE_WAIT:\s*(\d+)\s*\n\s*FIN_WAIT_1:\s*(\d+)\s*\n\s*CLOSING:\s*(\d+)\s*\n\s*LAST_ACK:\s*(\d+)\s*\n\s*FIN_WAIT_2:\s*(\d+)\s*\n\s*TIME_WAIT:\s*(\d+)"
     grp_data = []
     if output:
         grp_data = re.findall(grp_pattern, output, re.DOTALL)
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(revision 39822)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(working copy)
@@ -147,8 +147,17 @@
     if n == 0:
         return []
     if len(values) >= n:
-        return values[:n]
-    return values + [None] * (n - len(values))
+        """
+        Just return value as the len of time_list
+        and changed None to 0.
+        """
+        return [0 if v is None else v for v in values[:n]]
+    """
+    If len of values is less than len of time_list,
+    then return the list that contain value of values and changed None to 0,
+    then append 0 to the list to let the len of result same as len of time_list.
+    """
+    return [0 if v is None else v for v in values] + [0] * (n - len(values))
 
 def _filter_and_align_chart_items(time_list, chart_item):
     if not time_list:
@@ -156,10 +165,9 @@
     aligned = []
     for s in chart_item or []:
         vals = _align_series_to_time(time_list, s.get('item_value'))
-        if any(v is not None for v in vals):
-            s2 = s.copy()
-            s2['item_value'] = vals
-            aligned.append(s2)
+        s2 = s.copy()
+        s2['item_value'] = vals
+        aligned.append(s2)
     return aligned
 
 def value_format_1024(list, yaxis_name):
