Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: tools/telemetry/telemetry/value/profiler.py

Issue 731233003: Format profiler/trace files cloud url (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add various unittests Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/value/profiler.py
diff --git a/tools/telemetry/telemetry/value/trace.py b/tools/telemetry/telemetry/value/profiler.py
similarity index 53%
copy from tools/telemetry/telemetry/value/trace.py
copy to tools/telemetry/telemetry/value/profiler.py
index 643f51578fd0bd02bd99b1eeaaba4144f112a63e..1e0c1d9561cdec29976b544a13f71365087b5c7b 100644
--- a/tools/telemetry/telemetry/value/trace.py
+++ b/tools/telemetry/telemetry/value/profiler.py
@@ -6,38 +6,21 @@ import datetime
import logging
import random
import sys
-import tempfile
from telemetry import value as value_module
from telemetry.util import cloud_storage
-from telemetry.util import file_handle
-import telemetry.web_components # pylint: disable=W0611
-from trace_viewer.build import trace2html
-class TraceValue(value_module.Value):
- def __init__(self, page, tracing_timeline_data, important=False,
+class ProfilerValue(value_module.Value):
+ def __init__(self, page, profiler_name, file_handle, important=False,
description=None):
- """A value that contains a TracingTimelineData object and knows how to
- output it.
-
- Adding TraceValues and outputting as JSON will produce a directory full of
- HTML files called trace_files. Outputting as chart JSON will also produce
- an index, files.html, linking to each of these files.
- """
- super(TraceValue, self).__init__(
- page, name='trace', units='', important=important,
- description=description)
+ """A value that contains a profiler information."""
- tf = tempfile.NamedTemporaryFile(delete=False, suffix='.html')
- if page:
- title = page.display_name
- else:
- title = ''
- trace2html.WriteHTMLForTraceDataToFile(
- [tracing_timeline_data.EventData()], title, tf)
- tf.close()
+ super(ProfilerValue, self).__init__(
+ page, name='profiler', units='', important=important,
+ description=description)
- self._file_handle = file_handle.FromTempFile(tf)
+ self._profiler_name = profiler_name
+ self._file_handle = file_handle
self._cloud_url = None
def GetAssociatedFileHandle(self):
@@ -48,7 +31,15 @@ class TraceValue(value_module.Value):
page_name = self.page.url
else:
page_name = None
- return 'TraceValue(%s, %s)' % (page_name, self.name)
+ return 'ProfilerValue(%s, %s)' % (page_name, self.name)
+
+ @property
+ def profiler_name(self):
+ return self._profiler_name
+
+ @property
+ def cloud_url(self):
+ return self._cloud_url
def GetBuildbotDataType(self, output_context):
return None
@@ -64,13 +55,10 @@ class TraceValue(value_module.Value):
@staticmethod
def GetJSONTypeName():
- return 'trace'
+ return 'profiler'
@classmethod
def MergeLikeValuesFromSamePage(cls, values):
- # TODO(eakuefner): Implement a MultiTraceValue: a Polymer-based,
- # componentized, MultiTraceViwer-backed representation of more than one
- # trace.
assert len(values) > 0
return values[0]
@@ -80,13 +68,15 @@ class TraceValue(value_module.Value):
return None
def AsDict(self):
- d = super(TraceValue, self).AsDict()
- d['file_id'] = self._file_handle.id
+ d = super(ProfilerValue, self).AsDict()
+ d['profiler_name'] = self._profiler_name
+ if self._cloud_url:
+ d['cloud_url'] = self._cloud_url
return d
def UploadToCloud(self, bucket):
try:
- remote_path = ('trace-file-id_%s-%s-%d%s' % (
+ remote_path = ('profiler-file-id_%s-%s-%d%s' % (
self._file_handle.id,
datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'),
random.randint(1, 100000),
@@ -95,8 +85,9 @@ class TraceValue(value_module.Value):
bucket, remote_path,
self._file_handle.GetAbsPath())
sys.stderr.write(
- 'View generated trace files online at %s for page %s\n' %
+ 'View generated profiler files online at %s for page %s\n' %
(self._cloud_url, self.page.url if self.page else 'unknown'))
except cloud_storage.PermissionError as e:
- logging.error('Cannot upload trace files to cloud storage due to '
+ logging.error('Cannot upload profiler files to cloud storage due to '
' permission error: %s' % e.message)
+ self._cloud_url = 'error'

Powered by Google App Engine
This is Rietveld 408576698