This is an automated email from the ASF dual-hosted git repository.

ocket8888 pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/trafficcontrol-trafficops-types.git

commit 9e40d9b6829c148c54d2b7d1f2617306c550ad39
Author: ocket8888 <[email protected]>
AuthorDate: Tue Jul 19 13:26:46 2022 -0600

    Add missing DSStats type
---
 package-lock.json |  4 +--
 package.json      |  2 +-
 src/stats.ts      | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 3 files changed, 73 insertions(+), 8 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index ccbdbe8..a1299c4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
        "name": "trafficops-types",
-       "version": "3.1.0-beta-15",
+       "version": "3.1.0-beta-16",
        "lockfileVersion": 2,
        "requires": true,
        "packages": {
                "": {
                        "name": "trafficops-types",
-                       "version": "3.1.0-beta-9",
+                       "version": "3.1.0-beta-16",
                        "license": "GPL-3.0-or-later",
                        "devDependencies": {
                                "@typescript-eslint/eslint-plugin": "^5.0.0",
diff --git a/package.json b/package.json
index 7da2f08..e84386c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
        "name": "trafficops-types",
-       "version": "3.1.0-beta-15",
+       "version": "3.1.0-beta-16",
        "description": "A library for dealing with Apache Traffic Control 
objects",
        "main": "dist/index.js",
        "scripts": {
diff --git a/src/stats.ts b/src/stats.ts
index b38df27..c082f0e 100644
--- a/src/stats.ts
+++ b/src/stats.ts
@@ -16,11 +16,48 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-/** CacheStatsSeries is a set of data collected by Traffic Stats. */
-export interface CacheStatsSeries {
-       columns: ["time", "sum_count"];
+/**
+ * The types of metrics reported by Traffic Stats through the
+ * `/deliveryservice_stats` Traffic Ops API endpoint.
+ */
+export const enum DSStatsMetricType {
+       /**
+        * The total traffic rate in kilobytes per second served by the Delivery
+        * Service.
+        */
+       KBPS = "kbps",
+       /**
+        * The total traffic rate in transactions per second served by the 
Delivery
+        * Service.
+        */
+       TPS_TOTAL = "tps_total",
+       /**
+        * The total traffic rate in transactions per second serviced with 
200-299
+        * HTTP status codes.
+        */
+       TPS_2XX = "tps_2xx",
+       /**
+        * The total traffic rate in transactions per second serviced with 
300-399
+        * HTTP status codes
+        */
+       TPS_3XX = "tps_3xx",
+       /**
+        * The total traffic rate in transactions per second serviced with 
400-499
+        * HTTP status codes
+        */
+       TPS_4XX = "tps_4xx",
+       /**
+        * The total traffic rate in transactions per second serviced with 
500-599
+        * HTTP status codes
+        */
+       TPS_5XX = "tps_5xx",
+}
+
+/** Properties common to all stats series data. */
+interface StatsSeries {
+       columns: ["time", string];
        count: number;
-       name: `${"bandwidth" | "connections" | "maxkbps"}.cdn.1min`;
+       name: string;
        /**
         * Each first tuple element is actually a string that represents a
         * date/time, in a custom format. Refer to
@@ -30,7 +67,21 @@ export interface CacheStatsSeries {
        values: Array<[Date, number | null]>;
 }
 
-/** CacheStatsSummary is a summary of some statistics set. */
+/**
+ * DSStatsSeries is a set of Delivery Service data collected by Traffic Stats.
+ */
+export interface DSStatsSeries extends StatsSeries {
+       columns: ["time", "mean"];
+       name: `${DSStatsMetricType}.ds.1min`;
+}
+
+/** CacheStatsSeries is a set of cache data collected by Traffic Stats. */
+export interface CacheStatsSeries extends StatsSeries {
+       columns: ["time", "sum_count"];
+       name: `${"bandwidth" | "connections" | "maxkbps"}.cdn.1min`;
+}
+
+/** CacheStatsSummary is a summary of some cache statistics set. */
 export interface CacheStatsSummary {
        average: number;
        count: number;
@@ -41,6 +92,20 @@ export interface CacheStatsSummary {
        ninetyFifthPercentile: number;
 }
 
+/** Represents a response from `/deliveryservice_stats` */
+export interface DSStats {
+       /**
+        * This will be excluded if the 'exclude' query string parameter was
+        * "series" **or** if there were no data points for the requested data 
set.
+        */
+       series?: DSStatsSeries;
+       /**
+        * This will be excluded **only** if the 'exclude' query string 
parameter
+        * was "summary".
+        */
+       summary?: CacheStatsSummary;
+}
+
 /** Represents a response from /cache_stats.*/
 export interface CacheStats {
        /**

Reply via email to