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

Unified Diff: tools/telemetry/telemetry/web_perf/metrics/trace_event_stats.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months 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/web_perf/metrics/trace_event_stats.py
diff --git a/tools/telemetry/telemetry/web_perf/metrics/trace_event_stats.py b/tools/telemetry/telemetry/web_perf/metrics/trace_event_stats.py
deleted file mode 100644
index 097d8663692ffd697a22598bf81f5e79306a38ec..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/web_perf/metrics/trace_event_stats.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import collections
-
-from telemetry.value import list_of_scalar_values
-from telemetry.value import scalar
-
-
-class TraceEventStatsInput(object):
- """Input for the TraceEventStats.
- Using this object with TraceEventStats will include two metrics, one with a
- list of times of the given event, and one for the count of the events, named
- `metric_name + '-count'`.
- Args:
- event_category: The category of the event to track.
- event_name: The name of the event to track.
- metric_name: The name of the metric name, which accumulates all of the
- times of the events.
- metric_description: Description of the metric.
- units: Units for the metric.
- process_name: (optional) The name of the process to inspect for the trace
- events. Defaults to 'Renderer'.
- """
- def __init__(self, event_category, event_name, metric_name,
- metric_description, units, process_name='Renderer'):
- self.event_category = event_category
- self.event_name = event_name
- self.metric_name = metric_name
- self.metric_description = metric_description
- self.units = units
- self.process_name = process_name
- self.event_id = TraceEventStatsInput.GetEventId(event_category, event_name)
- assert process_name is not None
-
- @staticmethod
- def GetEventId(event_category, event_name):
- return event_category + '^SERIALIZE-DELIM^' + event_name
-
-class TraceEventStats(object):
- """Reports durations and counts of given trace events.
- """
-
- def __init__(self, trace_event_aggregator_inputs=None):
- self._inputs_by_process_name = collections.defaultdict(list)
- self._metrics = set()
- self._IndexNewInputs(trace_event_aggregator_inputs)
-
- def AddInput(self, trace_event_aggregator_input):
- self._IndexNewInputs([trace_event_aggregator_input])
-
- def _IndexNewInputs(self, input_list):
- if not input_list:
- return
- for input_obj in input_list:
- name = input_obj.metric_name
- # We check here to make sure we don't have a duplicate metric
- assert name not in self._metrics
- assert (name + '-count') not in self._metrics
- self._metrics.add(name)
- self._metrics.add(name + '-count')
-
- self._inputs_by_process_name[input_obj.process_name].append(input_obj)
-
- @staticmethod
- def ThreadDurationIfPresent(event):
- if event.thread_duration:
- return event.thread_duration
- else:
- return event.duration
-
- def AddResults(self, model, renderer_process, interactions, results):
- del renderer_process # unused
- assert interactions
- for p in model.GetAllProcesses():
- if p.name not in self._inputs_by_process_name:
- continue
-
- inputs = self._inputs_by_process_name[p.name]
- input_ids = {i.event_id for i in inputs}
-
- def InputIdPredicate(e, ids):
- return TraceEventStatsInput.GetEventId(e.category, e.name) in ids
-
- self._AddResultsInternal(
- p.IterAllEvents(
- recursive=True,
- event_type_predicate=lambda t: True,
- event_predicate=
- lambda e, ids=input_ids: InputIdPredicate(e, ids)),
- interactions,
- results,
- inputs)
-
- # We assume events have been filtered already. 'events' is an iterator.
- def _AddResultsInternal(self, events, interactions, results, inputs):
- times_by_event_id = collections.defaultdict(list)
-
- for event in events:
- if not any(interaction.start <= event.start <= interaction.end
- for interaction in interactions):
- continue
- event_id = TraceEventStatsInput.GetEventId(event.category, event.name)
- times_by_event_id[event_id].append(self.ThreadDurationIfPresent(event))
-
- if not times_by_event_id:
- return
-
- inputs_by_event_id = dict([[input_obj.event_id, input_obj]
- for input_obj in inputs])
-
- for (event_name, times) in times_by_event_id.iteritems():
- input_for_event = inputs_by_event_id[event_name]
- name = input_for_event.metric_name
- results.AddValue(scalar.ScalarValue(
- page=results.current_page,
- tir_label=interactions[0].label,
- name=name + '-count',
- units='count',
- value=len(times),
- description='The number of times ' + name + ' was recorded.'))
- if len(times) == 0:
- continue
- results.AddValue(list_of_scalar_values.ListOfScalarValues(
- page=results.current_page,
- tir_label=interactions[0].label,
- name=name,
- units=input_for_event.units,
- values=times,
- description=input_for_event.metric_description))

Powered by Google App Engine
This is Rietveld 408576698