<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.projects.html">projects</a> . <a href="toolresults_v1beta3.projects.histories.html">histories</a> . <a href="toolresults_v1beta3.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.html">perfMetricsSummary</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created. May return any of the following error code(s): - NOT_FOUND - The containing Step does not exist</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</code>
  <pre>Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created. May return any of the following error code(s): - NOT_FOUND - The containing Step does not exist

Args:
  projectId: string, The cloud project (required)
  historyId: string, A tool results history ID. (required)
  executionId: string, A tool results execution ID. (required)
  stepId: string, A tool results step ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # A summary of perf metrics collected and performance environment info
  &quot;appStartTime&quot;: {
    &quot;fullyDrawnTime&quot;: { #  A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like &quot;day&quot; or &quot;month&quot;. It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # Optional. The time from app start to reaching the developer-reported &quot;fully drawn&quot; time. This is only stored if the app includes a call to Activity.reportFullyDrawn(). See https://developer.android.com/topic/performance/launch-time.html#time-full
      &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
      &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
    },
    &quot;initialDisplayTime&quot;: { #  A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like &quot;day&quot; or &quot;month&quot;. It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # The time from app start to the first displayed activity being drawn, as reported in Logcat. See https://developer.android.com/topic/performance/launch-time.html#time-initial
      &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
      &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
    },
  },
  &quot;executionId&quot;: &quot;A String&quot;, # A tool results execution ID. @OutputOnly
  &quot;graphicsStats&quot;: { # Graphics statistics for the App. The information is collected from &#x27;adb shell dumpsys graphicsstats&#x27;. For more info see: https://developer.android.com/training/testing/performance.html Statistics will only be present for API 23+. # Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run.
    &quot;buckets&quot;: [ # Histogram of frame render times. There should be 154 buckets ranging from [5ms, 6ms) to [4950ms, infinity)
      {
        &quot;frameCount&quot;: &quot;A String&quot;, # Number of frames in the bucket.
        &quot;renderMillis&quot;: &quot;A String&quot;, # Lower bound of render time in milliseconds.
      },
    ],
    &quot;highInputLatencyCount&quot;: &quot;A String&quot;, # Total &quot;high input latency&quot; events.
    &quot;jankyFrames&quot;: &quot;A String&quot;, # Total frames with slow render time. Should be &lt;= total_frames.
    &quot;missedVsyncCount&quot;: &quot;A String&quot;, # Total &quot;missed vsync&quot; events.
    &quot;p50Millis&quot;: &quot;A String&quot;, # 50th percentile frame render time in milliseconds.
    &quot;p90Millis&quot;: &quot;A String&quot;, # 90th percentile frame render time in milliseconds.
    &quot;p95Millis&quot;: &quot;A String&quot;, # 95th percentile frame render time in milliseconds.
    &quot;p99Millis&quot;: &quot;A String&quot;, # 99th percentile frame render time in milliseconds.
    &quot;slowBitmapUploadCount&quot;: &quot;A String&quot;, # Total &quot;slow bitmap upload&quot; events.
    &quot;slowDrawCount&quot;: &quot;A String&quot;, # Total &quot;slow draw&quot; events.
    &quot;slowUiThreadCount&quot;: &quot;A String&quot;, # Total &quot;slow UI thread&quot; events.
    &quot;totalFrames&quot;: &quot;A String&quot;, # Total frames rendered by package.
  },
  &quot;historyId&quot;: &quot;A String&quot;, # A tool results history ID. @OutputOnly
  &quot;perfEnvironment&quot;: { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
    &quot;cpuInfo&quot;: { # CPU related environment info
      &quot;cpuProcessor&quot;: &quot;A String&quot;, # description of the device processor ie &#x27;1.8 GHz hexa core 64-bit ARMv8-A&#x27;
      &quot;cpuSpeedInGhz&quot;: 3.14, # the CPU clock speed in GHz
      &quot;numberOfCores&quot;: 42, # the number of CPU cores
    },
    &quot;memoryInfo&quot;: { # Memory related environment info
      &quot;memoryCapInKibibyte&quot;: &quot;A String&quot;, # Maximum memory that can be allocated to the process in KiB
      &quot;memoryTotalInKibibyte&quot;: &quot;A String&quot;, # Total memory available on the device in KiB
    },
  },
  &quot;perfMetrics&quot;: [ # Set of resource collected
    &quot;A String&quot;,
  ],
  &quot;projectId&quot;: &quot;A String&quot;, # The cloud project @OutputOnly
  &quot;stepId&quot;: &quot;A String&quot;, # A tool results step ID. @OutputOnly
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A summary of perf metrics collected and performance environment info
  &quot;appStartTime&quot;: {
    &quot;fullyDrawnTime&quot;: { #  A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like &quot;day&quot; or &quot;month&quot;. It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # Optional. The time from app start to reaching the developer-reported &quot;fully drawn&quot; time. This is only stored if the app includes a call to Activity.reportFullyDrawn(). See https://developer.android.com/topic/performance/launch-time.html#time-full
      &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
      &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
    },
    &quot;initialDisplayTime&quot;: { #  A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like &quot;day&quot; or &quot;month&quot;. It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # The time from app start to the first displayed activity being drawn, as reported in Logcat. See https://developer.android.com/topic/performance/launch-time.html#time-initial
      &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
      &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
    },
  },
  &quot;executionId&quot;: &quot;A String&quot;, # A tool results execution ID. @OutputOnly
  &quot;graphicsStats&quot;: { # Graphics statistics for the App. The information is collected from &#x27;adb shell dumpsys graphicsstats&#x27;. For more info see: https://developer.android.com/training/testing/performance.html Statistics will only be present for API 23+. # Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run.
    &quot;buckets&quot;: [ # Histogram of frame render times. There should be 154 buckets ranging from [5ms, 6ms) to [4950ms, infinity)
      {
        &quot;frameCount&quot;: &quot;A String&quot;, # Number of frames in the bucket.
        &quot;renderMillis&quot;: &quot;A String&quot;, # Lower bound of render time in milliseconds.
      },
    ],
    &quot;highInputLatencyCount&quot;: &quot;A String&quot;, # Total &quot;high input latency&quot; events.
    &quot;jankyFrames&quot;: &quot;A String&quot;, # Total frames with slow render time. Should be &lt;= total_frames.
    &quot;missedVsyncCount&quot;: &quot;A String&quot;, # Total &quot;missed vsync&quot; events.
    &quot;p50Millis&quot;: &quot;A String&quot;, # 50th percentile frame render time in milliseconds.
    &quot;p90Millis&quot;: &quot;A String&quot;, # 90th percentile frame render time in milliseconds.
    &quot;p95Millis&quot;: &quot;A String&quot;, # 95th percentile frame render time in milliseconds.
    &quot;p99Millis&quot;: &quot;A String&quot;, # 99th percentile frame render time in milliseconds.
    &quot;slowBitmapUploadCount&quot;: &quot;A String&quot;, # Total &quot;slow bitmap upload&quot; events.
    &quot;slowDrawCount&quot;: &quot;A String&quot;, # Total &quot;slow draw&quot; events.
    &quot;slowUiThreadCount&quot;: &quot;A String&quot;, # Total &quot;slow UI thread&quot; events.
    &quot;totalFrames&quot;: &quot;A String&quot;, # Total frames rendered by package.
  },
  &quot;historyId&quot;: &quot;A String&quot;, # A tool results history ID. @OutputOnly
  &quot;perfEnvironment&quot;: { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
    &quot;cpuInfo&quot;: { # CPU related environment info
      &quot;cpuProcessor&quot;: &quot;A String&quot;, # description of the device processor ie &#x27;1.8 GHz hexa core 64-bit ARMv8-A&#x27;
      &quot;cpuSpeedInGhz&quot;: 3.14, # the CPU clock speed in GHz
      &quot;numberOfCores&quot;: 42, # the number of CPU cores
    },
    &quot;memoryInfo&quot;: { # Memory related environment info
      &quot;memoryCapInKibibyte&quot;: &quot;A String&quot;, # Maximum memory that can be allocated to the process in KiB
      &quot;memoryTotalInKibibyte&quot;: &quot;A String&quot;, # Total memory available on the device in KiB
    },
  },
  &quot;perfMetrics&quot;: [ # Set of resource collected
    &quot;A String&quot;,
  ],
  &quot;projectId&quot;: &quot;A String&quot;, # The cloud project @OutputOnly
  &quot;stepId&quot;: &quot;A String&quot;, # A tool results step ID. @OutputOnly
}</pre>
</div>

</body></html>