openapi: 3.2.0 info: title: Oxide Region System/metrics API description: API for interacting with the Oxide control plane contact: url: https://oxide.computer email: api@oxide.computer version: 2026081901.0.0 tags: - name: system/metrics description: Metrics provide insight into the operation of the Oxide deployment. These include telemetry on hardware and software components that can be used to understand the current state as well as to diagnose issues. externalDocs: url: http://docs.oxide.computer/api/system-metrics paths: /v1/system/metrics/{metric_name}: get: tags: - system/metrics summary: View metrics description: View CPU, memory, or storage utilization metrics at the fleet or silo level. operationId: system_metric parameters: - in: path name: metric_name required: true schema: $ref: '#/components/schemas/SystemMetricName' - in: query name: end_time description: An exclusive end time of metrics. schema: type: string format: date-time - in: query name: limit description: Maximum number of items returned by a single call schema: type: - integer - 'null' format: uint32 minimum: 1 - in: query name: order description: Query result order schema: $ref: '#/components/schemas/PaginationOrder' - in: query name: page_token description: Token returned by previous call to retrieve the subsequent page schema: type: - string - 'null' - in: query name: start_time description: An inclusive start time of metrics. schema: type: string format: date-time - in: query name: silo description: Name or ID of the silo schema: $ref: '#/components/schemas/NameOrId' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/MeasurementResultsPage' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' x-dropshot-pagination: required: - end_time - start_time /v1/system/timeseries/query: post: tags: - system/metrics summary: Run timeseries query description: Queries are written in OxQL. operationId: system_timeseries_query requestBody: content: application/json: schema: $ref: '#/components/schemas/TimeseriesQuery' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OxqlQueryResult' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' /v1/system/timeseries/schemas: get: tags: - system/metrics summary: List timeseries schemas operationId: system_timeseries_schema_list parameters: - in: query name: limit description: Maximum number of items returned by a single call schema: type: - integer - 'null' format: uint32 minimum: 1 - in: query name: page_token description: Token returned by previous call to retrieve the subsequent page schema: type: - string - 'null' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TimeseriesSchemaResultsPage' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' x-dropshot-pagination: required: [] components: schemas: Binuint16: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeuint16' required: - count - range Values: description: A single list of values, for one dimension of a timeseries. type: object properties: metric_type: description: The type of this metric. allOf: - $ref: '#/components/schemas/MetricType' values: description: The data values. allOf: - $ref: '#/components/schemas/ValueArray' required: - metric_type - values BinRangeint16: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: int16 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: int16 start: type: integer format: int16 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: int16 type: type: string enum: - range_from required: - start - type BinRangeint32: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: int32 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: int32 start: type: integer format: int32 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: int32 type: type: string enum: - range_from required: - start - type Binint64: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeint64' required: - count - range TimeseriesSchema: description: 'The schema for a timeseries. This includes the name of the timeseries, as well as the datum type of its metric and the schema for each field.' type: object properties: authz_scope: $ref: '#/components/schemas/AuthzScope' created: type: string format: date-time datum_type: $ref: '#/components/schemas/DatumType' description: $ref: '#/components/schemas/TimeseriesDescription' field_schema: type: array items: $ref: '#/components/schemas/FieldSchema' uniqueItems: true timeseries_name: $ref: '#/components/schemas/TimeseriesName' units: $ref: '#/components/schemas/Units' version: type: integer format: uint8 minimum: 1 required: - authz_scope - created - datum_type - description - field_schema - timeseries_name - units - version BinRangeuint8: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: uint8 minimum: 0 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: uint8 minimum: 0 start: type: integer format: uint8 minimum: 0 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: uint8 minimum: 0 type: type: string enum: - range_from required: - start - type Cumulativefloat: description: A cumulative or counter data type. type: object properties: start_time: type: string format: date-time value: type: number format: float required: - start_time - value Binint8: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeint8' required: - count - range BinRangefloat: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: number format: float type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: number format: float start: type: number format: float type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: number format: float type: type: string enum: - range_from required: - start - type Binint16: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeint16' required: - count - range Binuint64: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeuint64' required: - count - range OxqlTable: description: 'A table represents one or more timeseries with the same schema. A table is the result of an OxQL query. It contains a name, usually the name of the timeseries schema from which the data is derived, and any number of timeseries, which contain the actual data.' type: object properties: name: description: The name of the table. type: string timeseries: description: The set of timeseries in the table, ordered by key. type: array items: $ref: '#/components/schemas/Timeseries' required: - name - timeseries FieldSource: description: The source from which a field is derived, the target or metric. type: string enum: - target - metric Cumulativeuint64: description: A cumulative or counter data type. type: object properties: start_time: type: string format: date-time value: type: integer format: uint64 minimum: 0 required: - start_time - value Timeseries: description: 'A timeseries contains a timestamped set of values from one source. This includes the typed key-value pairs that uniquely identify it, and the set of timestamps and data values from it.' type: object properties: fields: type: object additionalProperties: $ref: '#/components/schemas/FieldValue' points: $ref: '#/components/schemas/Points' required: - fields - points BinRangedouble: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: number format: double type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: number format: double start: type: number format: double type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: number format: double type: type: string enum: - range_from required: - start - type Cumulativeint64: description: A cumulative or counter data type. type: object properties: start_time: type: string format: date-time value: type: integer format: int64 required: - start_time - value Quantile: description: 'Structure for estimating the p-quantile of a population. This is based on the P² algorithm for estimating quantiles using constant space. The algorithm consists of maintaining five markers: the minimum, the p/2-, p-, and (1 + p)/2 quantiles, and the maximum.' type: object properties: desired_marker_positions: description: The desired marker positions. type: array items: type: number format: double minItems: 5 maxItems: 5 marker_heights: description: The heights of the markers. type: array items: type: number format: double minItems: 5 maxItems: 5 marker_positions: description: 'The positions of the markers. We track sample size in the 5th position, as useful observations won''t start until we''ve filled the heights at the 6th sample anyway This does deviate from the paper, but it''s a more useful representation that works according to the paper''s algorithm.' type: array items: type: integer format: uint64 minimum: 0 minItems: 5 maxItems: 5 p: description: The p value for the quantile. type: number format: double required: - desired_marker_positions - marker_heights - marker_positions - p Binuint32: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeuint32' required: - count - range TimeseriesQuery: description: A timeseries query string, written in the Oximeter query language. type: object properties: query: description: A timeseries query string, written in the Oximeter query language. type: string required: - query Histogramuint32: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binuint32' max: description: The maximum value of all samples in the histogram. type: integer format: uint32 minimum: 0 min: description: The minimum value of all samples in the histogram. type: integer format: uint32 minimum: 0 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples BinRangeint8: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: int8 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: int8 start: type: integer format: int8 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: int8 type: type: string enum: - range_from required: - start - type FieldSchema: description: The name and type information for a field of a timeseries schema. type: object properties: description: type: string field_type: $ref: '#/components/schemas/FieldType' name: type: string source: $ref: '#/components/schemas/FieldSource' required: - description - field_type - name - source Points: description: Timepoints and values for one timeseries. type: object properties: start_times: type: - array - 'null' items: type: string format: date-time timestamps: type: array items: type: string format: date-time values: type: array items: $ref: '#/components/schemas/Values' required: - timestamps - values AuthzScope: description: 'Authorization scope for a timeseries. This describes the level at which a user must be authorized to read data from a timeseries. For example, fleet-scoping means the data is only visible to an operator or fleet reader. Project-scoped, on the other hand, indicates that a user will see data limited to the projects on which they have read permissions.' oneOf: - description: Timeseries data is limited to fleet readers. type: string enum: - fleet - description: Timeseries data is limited to the authorized silo for a user. type: string enum: - silo - description: Timeseries data is limited to the authorized projects for a user. type: string enum: - project - description: The timeseries is viewable to all without limitation. type: string enum: - viewable_to_all MissingDatum: type: object properties: datum_type: $ref: '#/components/schemas/DatumType' start_time: type: - string - 'null' format: date-time required: - datum_type Distributionint64: description: 'A distribution is a sequence of bins and counts in those bins, and some statistical information tracked to compute the mean, standard deviation, and quantile estimates. Min, max, and the p-* quantiles are treated as optional due to the possibility of distribution operations, like subtraction.' type: object properties: bins: type: array items: type: integer format: int64 counts: type: array items: type: integer format: uint64 minimum: 0 max: type: - integer - 'null' format: int64 min: type: - integer - 'null' format: int64 p50: type: - number - 'null' format: double p90: type: - number - 'null' format: double p99: type: - number - 'null' format: double squared_mean: type: number format: double sum_of_samples: type: integer format: int64 required: - bins - counts - squared_mean - sum_of_samples Histogramint32: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binint32' max: description: The maximum value of all samples in the histogram. type: integer format: int32 min: description: The minimum value of all samples in the histogram. type: integer format: int32 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples Error: description: Error information from a response. type: object properties: error_code: type: string message: type: string request_id: type: string required: - message - request_id DatumType: description: The type of an individual datum of a metric. type: string enum: - bool - i8 - u8 - i16 - u16 - i32 - u32 - i64 - u64 - f32 - f64 - string - bytes - cumulative_i64 - cumulative_u64 - cumulative_f32 - cumulative_f64 - histogram_i8 - histogram_u8 - histogram_i16 - histogram_u16 - histogram_i32 - histogram_u32 - histogram_i64 - histogram_u64 - histogram_f32 - histogram_f64 FieldValue: description: The `FieldValue` contains the value of a target or metric field. oneOf: - type: object properties: type: type: string enum: - string value: type: string required: - type - value - type: object properties: type: type: string enum: - i8 value: type: integer format: int8 required: - type - value - type: object properties: type: type: string enum: - u8 value: type: integer format: uint8 minimum: 0 required: - type - value - type: object properties: type: type: string enum: - i16 value: type: integer format: int16 required: - type - value - type: object properties: type: type: string enum: - u16 value: type: integer format: uint16 minimum: 0 required: - type - value - type: object properties: type: type: string enum: - i32 value: type: integer format: int32 required: - type - value - type: object properties: type: type: string enum: - u32 value: type: integer format: uint32 minimum: 0 required: - type - value - type: object properties: type: type: string enum: - i64 value: type: integer format: int64 required: - type - value - type: object properties: type: type: string enum: - u64 value: type: integer format: uint64 minimum: 0 required: - type - value - type: object properties: type: type: string enum: - ip_addr value: type: string format: ip required: - type - value - type: object properties: type: type: string enum: - uuid value: type: string format: uuid required: - type - value - type: object properties: type: type: string enum: - bool value: type: boolean required: - type - value Histogramuint64: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binuint64' max: description: The maximum value of all samples in the histogram. type: integer format: uint64 minimum: 0 min: description: The minimum value of all samples in the histogram. type: integer format: uint64 minimum: 0 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples TimeseriesDescription: description: Text descriptions for the target and metric of a timeseries. type: object properties: metric: type: string target: type: string required: - metric - target MeasurementResultsPage: description: A single page of results type: object properties: items: description: list of items on this page of results type: array items: $ref: '#/components/schemas/Measurement' next_page: description: token used to fetch the next page of results (if any) type: - string - 'null' required: - items Histogramint16: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binint16' max: description: The maximum value of all samples in the histogram. type: integer format: int16 min: description: The minimum value of all samples in the histogram. type: integer format: int16 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples MetricType: description: The type of the metric itself, indicating what its values represent. oneOf: - description: The value represents an instantaneous measurement in time. type: string enum: - gauge - description: The value represents a difference between two points in time. type: string enum: - delta - description: The value represents an accumulation between two points in time. type: string enum: - cumulative ValueArray: description: 'List of data values for one timeseries. Each element is an option, where `None` represents a missing sample.' oneOf: - type: object properties: type: type: string enum: - integer values: type: array items: type: - integer - 'null' format: int64 required: - type - values - type: object properties: type: type: string enum: - double values: type: array items: type: - number - 'null' format: double required: - type - values - type: object properties: type: type: string enum: - boolean values: type: array items: type: - boolean - 'null' required: - type - values - type: object properties: type: type: string enum: - string values: type: array items: type: - string - 'null' required: - type - values - type: object properties: type: type: string enum: - integer_distribution values: type: array items: allOf: - $ref: '#/components/schemas/Distributionint64' required: - type - values - type: object properties: type: type: string enum: - double_distribution values: type: array items: allOf: - $ref: '#/components/schemas/Distributiondouble' required: - type - values Bindouble: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangedouble' required: - count - range Histogramint64: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binint64' max: description: The maximum value of all samples in the histogram. type: integer format: int64 min: description: The minimum value of all samples in the histogram. type: integer format: int64 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples Histogramfloat: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binfloat' max: description: The maximum value of all samples in the histogram. type: number format: float min: description: The minimum value of all samples in the histogram. type: number format: float n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: number format: double required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples BinRangeuint16: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: uint16 minimum: 0 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: uint16 minimum: 0 start: type: integer format: uint16 minimum: 0 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: uint16 minimum: 0 type: type: string enum: - range_from required: - start - type NameOrId: oneOf: - title: id allOf: - type: string format: uuid - title: name allOf: - $ref: '#/components/schemas/Name' Cumulativedouble: description: A cumulative or counter data type. type: object properties: start_time: type: string format: date-time value: type: number format: double required: - start_time - value BinRangeuint32: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: uint32 minimum: 0 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: uint32 minimum: 0 start: type: integer format: uint32 minimum: 0 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: uint32 minimum: 0 type: type: string enum: - range_from required: - start - type OxqlQueryResult: description: The result of a successful OxQL query. type: object properties: tables: description: Tables resulting from the query, each containing timeseries. type: array items: $ref: '#/components/schemas/OxqlTable' required: - tables Distributiondouble: description: 'A distribution is a sequence of bins and counts in those bins, and some statistical information tracked to compute the mean, standard deviation, and quantile estimates. Min, max, and the p-* quantiles are treated as optional due to the possibility of distribution operations, like subtraction.' type: object properties: bins: type: array items: type: number format: double counts: type: array items: type: integer format: uint64 minimum: 0 max: type: - number - 'null' format: double min: type: - number - 'null' format: double p50: type: - number - 'null' format: double p90: type: - number - 'null' format: double p99: type: - number - 'null' format: double squared_mean: type: number format: double sum_of_samples: type: number format: double required: - bins - counts - squared_mean - sum_of_samples Measurement: description: A `Measurement` is a timestamped datum from a single metric type: object properties: datum: $ref: '#/components/schemas/Datum' timestamp: type: string format: date-time required: - datum - timestamp Histogramdouble: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Bindouble' max: description: The maximum value of all samples in the histogram. type: number format: double min: description: The minimum value of all samples in the histogram. type: number format: double n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: number format: double required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples SystemMetricName: type: string enum: - virtual_disk_space_provisioned - cpus_provisioned - ram_provisioned TimeseriesSchemaResultsPage: description: A single page of results type: object properties: items: description: list of items on this page of results type: array items: $ref: '#/components/schemas/TimeseriesSchema' next_page: description: token used to fetch the next page of results (if any) type: - string - 'null' required: - items Name: title: A name unique within the parent collection description: Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long. type: string pattern: ^(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)^[a-z]([a-zA-Z0-9-]*[a-zA-Z0-9]+)?$ minLength: 1 maxLength: 63 TimeseriesName: title: The name of a timeseries description: Names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words. type: string pattern: ^(([a-z]+[a-z0-9]*)(_([a-z0-9]+))*):(([a-z]+[a-z0-9]*)(_([a-z0-9]+))*)$ BinRangeuint64: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: uint64 minimum: 0 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: uint64 minimum: 0 start: type: integer format: uint64 minimum: 0 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: uint64 minimum: 0 type: type: string enum: - range_from required: - start - type Units: description: Measurement units for timeseries samples. oneOf: - type: string enum: - count - bytes - seconds - nanoseconds - volts - amps - watts - degrees_celsius - joules - description: No meaningful units, e.g. a dimensionless quanity. type: string enum: - none - description: Rotations per minute. type: string enum: - rpm Histogramint8: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binint8' max: description: The maximum value of all samples in the histogram. type: integer format: int8 min: description: The minimum value of all samples in the histogram. type: integer format: int8 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples PaginationOrder: description: The order in which the client wants to page through the requested collection type: string enum: - ascending - descending FieldType: description: The `FieldType` identifies the data type of a target or metric field. type: string enum: - string - i8 - u8 - i16 - u16 - i32 - u32 - i64 - u64 - ip_addr - uuid - bool Histogramuint8: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binuint8' max: description: The maximum value of all samples in the histogram. type: integer format: uint8 minimum: 0 min: description: The minimum value of all samples in the histogram. type: integer format: uint8 minimum: 0 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples Binfloat: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangefloat' required: - count - range BinRangeint64: description: 'A type storing a range over `T`. This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.' oneOf: - description: A range unbounded below and exclusively above, `..end`. type: object properties: end: type: integer format: int64 type: type: string enum: - range_to required: - end - type - description: A range bounded inclusively below and exclusively above, `start..end`. type: object properties: end: type: integer format: int64 start: type: integer format: int64 type: type: string enum: - range required: - end - start - type - description: A range bounded inclusively below and unbounded above, `start..`. type: object properties: start: type: integer format: int64 type: type: string enum: - range_from required: - start - type Histogramuint16: description: 'Histogram metric A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can''t be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support. Note that any gaps, unsorted bins, or non-finite values will result in an error.' type: object properties: bins: description: The bins of the histogram. type: array items: $ref: '#/components/schemas/Binuint16' max: description: The maximum value of all samples in the histogram. type: integer format: uint16 minimum: 0 min: description: The minimum value of all samples in the histogram. type: integer format: uint16 minimum: 0 n_samples: description: The total number of samples in the histogram. type: integer format: uint64 minimum: 0 p50: description: p50 Quantile allOf: - $ref: '#/components/schemas/Quantile' p90: description: p95 Quantile allOf: - $ref: '#/components/schemas/Quantile' p99: description: p99 Quantile allOf: - $ref: '#/components/schemas/Quantile' squared_mean: description: 'M2 for Welford''s algorithm for variance calculation. Read about [Welford''s algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford''s_online_algorithm) for more information on the algorithm.' type: number format: double start_time: description: The start time of the histogram. type: string format: date-time sum_of_samples: description: The sum of all samples in the histogram. type: integer format: int64 required: - bins - max - min - n_samples - p50 - p90 - p99 - squared_mean - start_time - sum_of_samples Binuint8: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeuint8' required: - count - range Binint32: description: Type storing bin edges and a count of samples within it. type: object properties: count: description: The total count of samples in this bin. type: integer format: uint64 minimum: 0 range: description: The range of the support covered by this bin. allOf: - $ref: '#/components/schemas/BinRangeint32' required: - count - range Datum: description: A `Datum` is a single sampled data point from a metric. oneOf: - type: object properties: datum: type: boolean type: type: string enum: - bool required: - datum - type - type: object properties: datum: type: integer format: int8 type: type: string enum: - i8 required: - datum - type - type: object properties: datum: type: integer format: uint8 minimum: 0 type: type: string enum: - u8 required: - datum - type - type: object properties: datum: type: integer format: int16 type: type: string enum: - i16 required: - datum - type - type: object properties: datum: type: integer format: uint16 minimum: 0 type: type: string enum: - u16 required: - datum - type - type: object properties: datum: type: integer format: int32 type: type: string enum: - i32 required: - datum - type - type: object properties: datum: type: integer format: uint32 minimum: 0 type: type: string enum: - u32 required: - datum - type - type: object properties: datum: type: integer format: int64 type: type: string enum: - i64 required: - datum - type - type: object properties: datum: type: integer format: uint64 minimum: 0 type: type: string enum: - u64 required: - datum - type - type: object properties: datum: type: number format: float type: type: string enum: - f32 required: - datum - type - type: object properties: datum: type: number format: double type: type: string enum: - f64 required: - datum - type - type: object properties: datum: type: string type: type: string enum: - string required: - datum - type - type: object properties: datum: type: array items: type: integer format: uint8 minimum: 0 type: type: string enum: - bytes required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Cumulativeint64' type: type: string enum: - cumulative_i64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Cumulativeuint64' type: type: string enum: - cumulative_u64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Cumulativefloat' type: type: string enum: - cumulative_f32 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Cumulativedouble' type: type: string enum: - cumulative_f64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramint8' type: type: string enum: - histogram_i8 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramuint8' type: type: string enum: - histogram_u8 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramint16' type: type: string enum: - histogram_i16 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramuint16' type: type: string enum: - histogram_u16 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramint32' type: type: string enum: - histogram_i32 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramuint32' type: type: string enum: - histogram_u32 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramint64' type: type: string enum: - histogram_i64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramuint64' type: type: string enum: - histogram_u64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramfloat' type: type: string enum: - histogram_f32 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/Histogramdouble' type: type: string enum: - histogram_f64 required: - datum - type - type: object properties: datum: $ref: '#/components/schemas/MissingDatum' type: type: string enum: - missing required: - datum - type responses: Error: description: Error content: application/json: schema: $ref: '#/components/schemas/Error'