NAV Navbar

Get Metrics V3

This page documents the deprecated version 3 of the Get Metrics end point.

Support for this version is not required for Data Holders going live on, or after, 1st November 2023.

Other Data Holders MAY retire this version from the earlier of 13th May 2024 or from the time the ACCC announce that they no longer call this version.

Get Metrics

Code samples

GET https://data.holder.com.au/cds-au/v1/admin/metrics HTTP/1.1
Host: data.holder.com.au
Accept: application/json
x-v: string
x-min-v: string

var headers = {
  'Accept':'application/json',
  'x-v':'string',
  'x-min-v':'string'

};

$.ajax({
  url: 'https://data.holder.com.au/cds-au/v1/admin/metrics',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

GET /admin/metrics

This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.

This end point is not required to be implemented by the Australian Energy Market Operator, the Australian Energy Regulator or the Department of State administered by the Minister of Victoria administering the National Electricity (Victoria) Act 2005 (Vic).

NOTE: This version must be implemented by October 1st 2022

Obsolete versions: v1 v2.

If the Data Holder supports private_key_jwt client authentication they MUST validate the scope.

Endpoint Version

Version 3

Parameters

Name In Type Required Description
period query string optional The period of metrics to be requested. Values can be CURRENT (meaning metrics for current period, dependent on the metric type), HISTORIC (meaning metrics for previous period, depending on the metric type) or ALL. If absent the default is ALL.
x-v header string mandatory Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between x-min-v and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v header should be treated as absent. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. See HTTP Headers
x-min-v header string optional Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.

Enumerated Values

Parameter Value
period CURRENT
period HISTORIC
period ALL

Example responses

200 Response

{
  "data": {
    "requestTime": "string",
    "availability": {
      "currentMonth": 0,
      "previousMonths": [
        0
      ]
    },
    "performance": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "invocations": {
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "highPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "lowPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unattended": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largePayload": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "secondary": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largeSecondary": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    },
    "averageResponse": {
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "highPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "lowPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unattended": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largePayload": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "secondary": {
        "primary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        },
        "secondary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        }
      },
      "largeSecondary": {
        "primary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        },
        "secondary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        }
      }
    },
    "sessionCount": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "averageTps": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "peakTps": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "errors": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "rejections": {
      "authenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    },
    "customerCount": 0,
    "recipientCount": 0,
    "secondaryHolder": {
      "errors": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "rejections": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    }
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Responses

Status Meaning Description Schema
200 OK Success ResponseMetricsListV3
400 Bad Request The following error codes MUST be supported:
ResponseErrorListV2
406 Not Acceptable The following error codes MUST be supported:
ResponseErrorListV2

Response Headers

Status Header Type Format Description
200 x-v string The version of the API end point that the data holder has responded with.

Schemas

ResponseMetricsListV3

{
  "data": {
    "requestTime": "string",
    "availability": {
      "currentMonth": 0,
      "previousMonths": [
        0
      ]
    },
    "performance": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "invocations": {
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "highPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "lowPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unattended": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largePayload": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "secondary": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largeSecondary": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    },
    "averageResponse": {
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "highPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "lowPriority": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unattended": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "largePayload": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "secondary": {
        "primary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        },
        "secondary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        }
      },
      "largeSecondary": {
        "primary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        },
        "secondary": {
          "currentDay": 0,
          "previousDays": [
            0
          ]
        }
      }
    },
    "sessionCount": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "averageTps": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "peakTps": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "errors": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "rejections": {
      "authenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "unauthenticated": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    },
    "customerCount": 0,
    "recipientCount": 0,
    "secondaryHolder": {
      "errors": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      },
      "rejections": {
        "currentDay": 0,
        "previousDays": [
          0
        ]
      }
    }
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Properties

Name Type Required Description
data object mandatory none
» requestTime DateTimeString mandatory The date and time that the metrics in this payload were requested.
» availability AvailabilityMetrics mandatory Percentage availability of the CDR platform over time
» performance PerformanceMetrics mandatory Percentage of calls within the performance thresholds
» invocations InvocationMetricsV2 mandatory Number of API calls in each performance tier over time
» averageResponse AverageResponseMetricsV2 mandatory Average response time in seconds, at millisecond resolution, within each performance tier
» sessionCount SessionCountMetrics mandatory Session counts over time. Note that a session is defined as the provisioning of an Access Token.
» averageTps AverageTPSMetrics mandatory Transactions per second over time
» peakTps PeakTPSMetrics mandatory Maximum record transactions per second over time
» errors ErrorMetrics mandatory Number of calls resulting in error due to server execution over time
» rejections RejectionMetricsV2 mandatory Number of calls rejected due to traffic thresholds over time
» customerCount integer mandatory Number of customers with active authorisations at the time of the call
» recipientCount integer mandatory Number of Data Recipient Software Products with active authorisations at the time of the call
» secondaryHolder SecondaryHolderMetrics conditional Errors and rejections received by the primary data holder from the secondary data holder. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster
links Links mandatory none
meta Meta optional none

AvailabilityMetrics

{
  "currentMonth": 0,
  "previousMonths": [
    0
  ]
}

Percentage availability of the CDR platform over time

Properties

Name Type Required Description
currentMonth number conditional Percentage availability of the CDR platform so far for the current calendar month. 0.0 means 0%. 1.0 means 100%.
previousMonths [number] conditional Percentage availability of the CDR platform for previous calendar months. The first element indicates the last month and so on. A maximum of twelve entries is required if available. 0.0 means 0%. 1.0 means 100%.

PerformanceMetrics

{
  "currentDay": 0,
  "previousDays": [
    0
  ]
}

Percentage of calls within Primary Data Holder performance thresholds. Note that Secondary Data Holder performance MUST be excluded from this metric.

Properties

Name Type Required Description
currentDay number conditional Percentage of calls within the performance threshold for the current day. 0.0 means 0%. 1.0 means 100%
previousDays [number] conditional Percentage of calls within the performance threshold for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. 0.0 means 0%. 1.0 means 100%

InvocationMetricsV2

{
  "unauthenticated": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "highPriority": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "lowPriority": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "unattended": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "largePayload": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "secondary": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "largeSecondary": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  }
}

Number of API calls in each performance tier over time

Properties

Name Type Required Description
unauthenticated object mandatory API call counts for the unauthenticated tier
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
highPriority object mandatory API call counts for the high priority tier
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
lowPriority object mandatory API call counts for the low priority tier
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
unattended object mandatory API call counts for the unattended tier
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
largePayload object mandatory API call counts for the large payload tier
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
secondary object conditional API call counts for the Shared Responsibility Data Requests tier. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
largeSecondary object conditional API call counts for the large Shared Responsibility Data Requests tier. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster
» currentDay number conditional API call counts for current day
» previousDays [number] conditional API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

AverageResponseMetricsV2

{
  "unauthenticated": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "highPriority": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "lowPriority": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "unattended": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "largePayload": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "secondary": {
    "primary": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "secondary": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    }
  },
  "largeSecondary": {
    "primary": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    },
    "secondary": {
      "currentDay": 0,
      "previousDays": [
        0
      ]
    }
  }
}

Average response time in seconds, at millisecond resolution, within each performance tier

Properties

Name Type Required Description
unauthenticated object mandatory Average response time for the unauthenticated tier
» currentDay number conditional Average response time for current day
» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
highPriority object mandatory Average response time for the high priority tier
» currentDay number conditional Average response time for current day
» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
lowPriority object mandatory Average response time for the low priority tier
» currentDay number conditional Average response time for current day
» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
unattended object mandatory Average response time for the unattended tier
» currentDay number conditional Average response time for current day
» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
largePayload object mandatory Average response time for the large payload tier
» currentDay number conditional Average response time for current day
» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
secondary object conditional Average response time for the secondary tier. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster
» primary object mandatory Average response time as measured for the primary data holder
»» currentDay number conditional Average response time for current day
»» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
» secondary object mandatory Average response time as measured for the secondary data holder
»» currentDay number conditional Average response time for current day
»» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
» largeSecondary object conditional Average response time for the large payload tier. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster
»» primary object mandatory Average response time as measured for the primary data holder
»»» currentDay number conditional Average response time for current day
»»» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
»» secondary object mandatory Average response time as measured for the secondary data holder
»»» currentDay number conditional Average response time for current day
»»» previousDays [number] conditional Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.

SessionCountMetrics

{
  "currentDay": 0,
  "previousDays": [
    0
  ]
}

Session counts over time. Note that a session is defined as the provisioning of an Access Token.

Properties

Name Type Required Description
currentDay number conditional Session count for current day
previousDays [number] conditional Session count for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

AverageTPSMetrics

{
  "currentDay": 0,
  "previousDays": [
    0
  ]
}

Transactions per second over time

Properties

Name Type Required Description
currentDay number conditional Average TPS for current day
previousDays [number] conditional Average TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

PeakTPSMetrics

{
  "currentDay": 0,
  "previousDays": [
    0
  ]
}

Maximum record transactions per second over time

Properties

Name Type Required Description
currentDay number conditional Peak TPS for current day
previousDays [number] conditional Peak TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

ErrorMetrics

{
  "currentDay": 0,
  "previousDays": [
    0
  ]
}

Number of calls resulting in error due to server execution over time

Properties

Name Type Required Description
currentDay number conditional Number of errors for current day
previousDays [number] conditional Number of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

RejectionMetricsV2

{
  "authenticated": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "unauthenticated": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  }
}

Number of calls rejected due to traffic thresholds over time

Properties

Name Type Required Description
authenticated object mandatory Rejection counts for all authenticated end points
» currentDay number conditional Number of calls rejected for current day
» previousDays [number] conditional Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
unauthenticated object mandatory Rejection counts for all unauthenticated end points
» currentDay number conditional Number of calls rejected for current day
» previousDays [number] conditional Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.

SecondaryHolderMetrics

{
  "errors": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  },
  "rejections": {
    "currentDay": 0,
    "previousDays": [
      0
    ]
  }
}

Errors and rejections received by the primary data holder from the secondary data holder. Mandatory for data holders designated for a Shared Responsibility Data Request data cluster

Properties

Name Type Required Description
errors object mandatory Number of calls resulting in error due to server execution over time
» currentDay number conditional Number of errors for current day
» previousDays [number] conditional Number of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
rejections object mandatory Number of calls rejected due to traffic thresholds over time
» currentDay number conditional Number of rejections for current day
» previousDays [number] conditional Number of rejections for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available

{
  "self": "string"
}

Properties

Name Type Required Description
self URIString mandatory Fully qualified link to this API call

Meta

{}

Properties

None

MetaError

{
  "urn": "string"
}

Additional data for customised error codes

Properties

Name Type Required Description
urn string conditional The CDR error code URN which the application-specific error code extends. Mandatory if the error code is an application-specific error rather than a standardised error code.

ResponseErrorListV2

{
  "errors": [
    {
      "code": "string",
      "title": "string",
      "detail": "string",
      "meta": {
        "urn": "string"
      }
    }
  ]
}

Properties

Name Type Required Description
errors [object] mandatory none
» code string mandatory The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.
» title string mandatory A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.
» detail string mandatory A human-readable explanation specific to this occurrence of the problem.
» meta MetaError optional Additional data for customised error codes