<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="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.environments.html">environments</a> . <a href="apigee_v1.organizations.environments.stats.html">stats</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="#get">get(name, accuracy=None, aggTable=None, filter=None, limit=None, offset=None, realtime=None, select=None, sonar=None, sort=None, sortby=None, timeRange=None, timeUnit=None, topk=None, tsAscending=None, tzo=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieve metrics grouped by dimensions. The types of metrics you can retrieve include traffic, message counts, API call latency, response size, and cache hits and counts. Dimensions let you view metrics in meaningful groups. The stats api does accept dimensions as path params. The dimensions are optional in which case the metrics are computed on the entire data for the given timerange.</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="get">get(name, accuracy=None, aggTable=None, filter=None, limit=None, offset=None, realtime=None, select=None, sonar=None, sort=None, sortby=None, timeRange=None, timeUnit=None, topk=None, tsAscending=None, tzo=None, x__xgafv=None)</code>
  <pre>Retrieve metrics grouped by dimensions. The types of metrics you can retrieve include traffic, message counts, API call latency, response size, and cache hits and counts. Dimensions let you view metrics in meaningful groups. The stats api does accept dimensions as path params. The dimensions are optional in which case the metrics are computed on the entire data for the given timerange.

Args:
  name: string, Required. The resource name for which the interactive query will be executed. Must be of the form `organizations/{organization_id}/environments/{environment_id/stats/{dimensions}` Dimensions let you view metrics in meaningful groupings. E.g. apiproxy, target_host. The value of dimensions should be comma separated list as shown below `organizations/{org}/environments/{env}/stats/apiproxy,request_verb` (required)
  accuracy: string, Legacy field: not used anymore. This field is present to support UI calls which still use this parameter.
  aggTable: string, If customers want to query custom aggregate tables, then this parameter can be used to specify the table name. If this parameter is skipped, then Edge Query will try to retrieve the data from fact tables which will be expensive.
  filter: string, Enables drill-down on specific dimension values
  limit: string, This parameter is used to limit the number of result items. Default and the max value is 14400.
  offset: string, Use offset with limit to enable pagination of results. For example, to display results 11-20, set limit to &#x27;10&#x27; and offset to &#x27;10&#x27;.
  realtime: boolean, Legacy field: not used anymore.
  select: string, The select parameter contains a comma separated list of metrics. E.g. sum(message_count),sum(error_count)
  sonar: boolean, This parameter routes the query to api monitoring service for last hour.
  sort: string, This parameter specifies if the sort order should be ascending or descending Supported values are DESC and ASC.
  sortby: string, Comma separated list of columns to sort the final result.
  timeRange: string, Time interval for the interactive query. Time range is specified as start~end E.g. 04/15/2017 00:00~05/15/2017 23:59
  timeUnit: string, A value of second, minute, hour, day, week, month. Time Unit specifies the granularity of metrics returned.
  topk: string, Take &#x27;top k&#x27; results from results, for example, to return the top 5 results &#x27;topk=5&#x27;.
  tsAscending: boolean, Lists timestamps in ascending order if set to true. Recommend setting this value to true if you are using sortby with sort=DESC.
  tzo: string, This parameters contains the timezone offset value.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This message type encapsulates a stats response.
  &quot;environments&quot;: [ # This field contains a list of query results on environment level.
    { # This message type encapsulates the environment wrapper: &quot;environments&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.52056245E8&quot; ] } ], &quot;name&quot;: &quot;prod&quot; } ]
      &quot;dimensions&quot;: [ # This field contains the list of metrics grouped under dimensions.
        { # This message type encapsulates a metric grouped by dimension.
          &quot;metrics&quot;: [ # This field contains a list of metrics.
            { # This message type encapsulates the metric data point. Example: { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [ { &quot;timestamp&quot;: 1549004400000, &quot;value&quot;: &quot;39.0&quot; }, { &quot;timestamp&quot; : 1548997200000, &quot;value&quot; : &quot;0.0&quot; } ] } or { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [&quot;39.0&quot;] }
              &quot;name&quot;: &quot;A String&quot;, # This field contains the metric name.
              &quot;values&quot;: [ # List of metric values. Possible value format: &quot;values&quot;:[&quot;39.0&quot;] or &quot;values&quot;:[ { &quot;value&quot;: &quot;39.0&quot;, &quot;timestamp&quot;: 1232434354} ]
                &quot;&quot;,
              ],
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # This field contains the name of the dimension.
        },
      ],
      &quot;metrics&quot;: [ # In the final response, only one of the following fields will be present based on the dimensions provided. If no dimensions are provided, then only a top level metrics is provided. If dimensions are included, then there will be a top level dimensions field under environments which will contain metrics values and the dimension name. Example: &quot;environments&quot;: [ { &quot;dimensions&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.14049521E8&quot; ] } ], &quot;name&quot;: &quot;nit_proxy&quot; } ], &quot;name&quot;: &quot;prod&quot; } ] OR &quot;environments&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.19026331E8&quot; ] } ], &quot;name&quot;: &quot;prod&quot; } ] This field contains the list of metric values.
        { # This message type encapsulates the metric data point. Example: { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [ { &quot;timestamp&quot;: 1549004400000, &quot;value&quot;: &quot;39.0&quot; }, { &quot;timestamp&quot; : 1548997200000, &quot;value&quot; : &quot;0.0&quot; } ] } or { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [&quot;39.0&quot;] }
          &quot;name&quot;: &quot;A String&quot;, # This field contains the metric name.
          &quot;values&quot;: [ # List of metric values. Possible value format: &quot;values&quot;:[&quot;39.0&quot;] or &quot;values&quot;:[ { &quot;value&quot;: &quot;39.0&quot;, &quot;timestamp&quot;: 1232434354} ]
            &quot;&quot;,
          ],
        },
      ],
      &quot;name&quot;: &quot;A String&quot;,
    },
  ],
  &quot;hosts&quot;: [ # This field contains a list of query results grouped by host.
    { # This message type encapsulates the hostname wrapper: &quot;hosts&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.52056245E8&quot; ] } ], &quot;name&quot;: &quot;example.com&quot; } ]
      &quot;dimensions&quot;: [ # This field contains the list of metrics grouped under dimensions.
        { # This message type encapsulates a metric grouped by dimension.
          &quot;metrics&quot;: [ # This field contains a list of metrics.
            { # This message type encapsulates the metric data point. Example: { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [ { &quot;timestamp&quot;: 1549004400000, &quot;value&quot;: &quot;39.0&quot; }, { &quot;timestamp&quot; : 1548997200000, &quot;value&quot; : &quot;0.0&quot; } ] } or { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [&quot;39.0&quot;] }
              &quot;name&quot;: &quot;A String&quot;, # This field contains the metric name.
              &quot;values&quot;: [ # List of metric values. Possible value format: &quot;values&quot;:[&quot;39.0&quot;] or &quot;values&quot;:[ { &quot;value&quot;: &quot;39.0&quot;, &quot;timestamp&quot;: 1232434354} ]
                &quot;&quot;,
              ],
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # This field contains the name of the dimension.
        },
      ],
      &quot;metrics&quot;: [ # In the final response, only one of the following fields will be present based on the dimensions provided. If no dimensions are provided, then only a top level metrics is provided. If dimensions are included, then there will be a top level dimensions field under hostnames which will contain metrics values and the dimension name. Example: &quot;hosts&quot;: [ { &quot;dimensions&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.14049521E8&quot; ] } ], &quot;name&quot;: &quot;nit_proxy&quot; } ], &quot;name&quot;: &quot;example.com&quot; } ] OR &quot;hosts&quot;: [ { &quot;metrics&quot;: [ { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot;: [ &quot;2.19026331E8&quot; ] } ], &quot;name&quot;: &quot;example.com&quot; } ] This field contains the list of metric values.
        { # This message type encapsulates the metric data point. Example: { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [ { &quot;timestamp&quot;: 1549004400000, &quot;value&quot;: &quot;39.0&quot; }, { &quot;timestamp&quot; : 1548997200000, &quot;value&quot; : &quot;0.0&quot; } ] } or { &quot;name&quot;: &quot;sum(message_count)&quot;, &quot;values&quot; : [&quot;39.0&quot;] }
          &quot;name&quot;: &quot;A String&quot;, # This field contains the metric name.
          &quot;values&quot;: [ # List of metric values. Possible value format: &quot;values&quot;:[&quot;39.0&quot;] or &quot;values&quot;:[ { &quot;value&quot;: &quot;39.0&quot;, &quot;timestamp&quot;: 1232434354} ]
            &quot;&quot;,
          ],
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # This field contains the hostname used in query.
    },
  ],
  &quot;metaData&quot;: { # This message type encapsulates additional information about query execution. # This field contains the metadata information.
    &quot;errors&quot;: [ # List of error messages as strings.
      &quot;A String&quot;,
    ],
    &quot;notices&quot;: [ # List of additional information such as data source, if result was truncated etc. E.g &quot;notices&quot;: [ &quot;Source:Postgres&quot;, &quot;PG Host:uappg0rw.e2e.apigeeks.net&quot;, &quot;query served by:4b64601e-40de-4eb1-bfb9-eeee7ac929ed&quot;, &quot;Table used: edge.api.uapgroup2.agg_api&quot; ]
      &quot;A String&quot;,
    ],
  },
}</pre>
</div>

</body></html>