Metrics (v2)

Preview: The v2 API is in preview and may change without notice before it's generally available.

Time-series metric data collected by Redgate Monitor from monitored servers — CPU, memory, wait stats, query durations, and more.

Custom metrics are also supported.

Operations

Method

Path

Description

GET

/api/v2/metrics

List all metrics

GET

/api/v2/metrics/data

List metric time series data


List all metrics

Returns all metrics available for querying, optionally filtered by the server types they support. Use the returned id values as metricIds in GET /metrics/data.

Query parameters


supportedServerTypes array · entity-type · enum · OPTIONAL

Match metrics that support at least one of the supplied server types. Repeat the parameter for multiple values. null returns all metrics regardless of server type. Allowed values: Entity types.


GET /api/v2/metrics

curl -G https://your-host/api/v2/metrics \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "supportedServerTypes=SqlServer"

Responses


Response object: Metric array

{
  "data": [
    {
      "Id": "Machine.LogicalDisk.AverageReadTime",
      "Name": "Disk avg. read time",
      "SupportedServerTypes": ["Machine"]
    }
  ],
  "status": "success"
}

Response object: JSendFailure

{
  "status": "fail",
  "data": {
    "<field>": "<message>"
  }
}

Response object: JSendMessageOnlyError

{
  "status": "error",
  "message": "<text>"
}

Response object: JSendMessageOnlyError

{
  "status": "error",
  "message": "<text>"
}

Response object: JSendFailure

{
  "status": "fail",
  "data": {
    "<field>": "<message>"
  }
}

Response object: ProblemDetails

No example available.


Response object: JSendError

{
  "status": "error",
  "message": "<text>"
}


List metric time series data

Returns sampled metric data for each requested metric and entity combination over the specified time range.

Supply one or more metric IDs (from GET /metrics) and, optionally, entity IDs (from GET /monitored-servers). Omitting entityIds returns data for all entities that have data for the requested metrics.

The time range must be between 15 minutes and 31 days. When startTime and endTime are both omitted, the last hour is returned.

Query parameters


metricIds array string[], min 1 · REQUIRED

One or more metric IDs to retrieve data for. Use the id values returned by GET /metrics. Repeat the parameter for multiple values, e.g. ?metricIds=Machine.LogicalDisk.AverageReadTime&metricIds=Machine.Processors.PercentProcessorTime


entityIds array string[] · entity-id · OPTIONAL

Optional entity IDs to restrict results to. Use the entityId values returned by GET /monitored-servers. Repeat the parameter for multiple values. Omit to return data for all entities that have data for the requested metrics.


startTime string · date-time · OPTIONAL

Start of the time range (UTC). Defaults to one hour before endTime, or one hour before the current time when endTime is also omitted.


endTime string · date-time · OPTIONAL

End of the time range (UTC). Must be later than startTime when startTime is provided. Defaults to the current time.


GET /api/v2/metrics/data

curl -G https://your-host/api/v2/metrics/data \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "metricIds=Machine.LogicalDisk.AverageReadTime" \
  --data-urlencode "entityIds=r1,4:base,...,7:Machine,..." \
  --data-urlencode "startTime=2026-08-19T12:00:00Z" \
  --data-urlencode "endTime=2026-08-19T13:00:00Z"

Responses


Response object: MetricSeries array

{
  "data": [
    {
      "MetricId": "Machine.LogicalDisk.AverageReadTime",
      "MetricName": "Disk avg. read time",
      "EntityType": "Disk",
      "EntityId": "r1,4:base,s36:4bba3b44-5634-4b33-aff8-f53c4315efe3,7:Cluster,1,4:Name,s15:dev-prod,7:Machine,1,4:Name,s0:,11:LogicalDisk,1,4:Name,s2:Z:,,",
      "EntityName": "Z:",
      "DataUnit": "Milliseconds",
      "DataPoints": [
        { "Timestamp": "2025-01-15T12:00:00Z", "Value": 42.5 }
      ],
      "ParentEntity": {
        "EntityId": "r1,4:base,s36:4bba3b44-5634-4b33-aff8-f53c4315efe3,7:Cluster,1,4:Name,s15:dev-prod,",
        "Name": "prod-host-01",
        "EntityType": "SqlServer",
        "ParentEntity": null
      }
    }
  ],
  "status": "success"
}

Response object: JSendFailure

{
  "status": "fail",
  "data": {
    "<field>": "<message>"
  }
}

Response object: JSendMessageOnlyError

{
  "status": "error",
  "message": "<text>"
}

Response object: JSendMessageOnlyError

{
  "status": "error",
  "message": "<text>"
}

Response object: JSendFailure

{
  "status": "fail",
  "data": {
    "<field>": "<message>"
  }
}

Response object: JSendError

{
  "status": "error",
  "message": "<text>"
}

Response object: JSendFailure

{
  "status": "fail",
  "data": {
    "<field>": "<message>"
  }
}

Response object: ProblemDetails

No example available.


Response object: JSendError

{
  "status": "error",
  "message": "<text>"
}

This documentation contains proprietary information and is protected by copyright law.
Copyright © 2026 Red Gate Software Limited. All rights reserved


Didn't find what you were looking for?