Skip to content
Snippets Groups Projects
workspaces-metrics.rst 10.77 KiB

Workspaces Metrics Documentation

Welcome to Workspaces Metrics!

Introduction

There are two ways of obtaining metrics data from the workspaces system:

1) Via direct database queries on the view tables created specifically for workspaces metrics analytics

  1. Via the new Workspaces Metrics CLI

View Specifications

WS-164 - Getting issue details... STATUS

WS-161 - Getting issue details... STATUS

WS-162 - Getting issue details... STATUS

Currently there are two view tables, capability_execution_metrics and download_metrics, available as this system is still under active development.

General Capability Metrics

The purpose of the capability_execution_metrics table is to provide information regarding the number of times any specified Capability is executed by the workspaces system.

The capability_execution_metrics view holds the following fields:

request_id

The id of the execution's parent CapabilityRequest.

(Anticipated need, not currently used)

cap_name The name of the Capability being executed
request_created

The timestamp at which the CapabilityRequest was created in format year-month-day hour:minute:seconds (UTC).

(Anticipated need, not currently used)

execution_id The id of this execution
execution_created The timestamp at which this execution was created in format year-month-day hour:minute:seconds (UTC)
execution_state

The current state of this execution.

(Anticipated need, not currently used)

execution_workflow_id

The id of this execution's WorkflowRequest.

(Anticipated need, not currently used)

Download Metrics

The purpose of the download_metrics table is to provide information regarding the amount of data downloaded for a specific capability request or over a specified length of time.

The download_metrics view holds the following fields:

request_id The id of the CapabilityRequest
cap_name The name of the Capability that was run
execution_created The timestamp at which the request's execution was created in format year-month-day hour:minute:seconds (UTC)
state The state of the CapabilityExecution
product_locator The product locator that was downloaded
filegroup_id The filegroup of the product locator
datasize The size of the data that was downloaded

Direct Database Queries

The first method of metrics collection is the currently used method of direct database queries against view tables.

For this method, the metrics analyst will be provided with a set of DB credentials, the names of the metrics views, and allowed to formulate their own queries.

Suggested Usage

General Capability Metrics

Based on the current system expectations, there are two possible ways to run metrics data:

  1. By Capability name only
  2. By a given date range.

Query for returning total count of all capability executions of a specific name:

All Capabilities Executed by Name

SELECT count(*)

FROM capability_execution_metrics

WHERE cap_name = '<name>';

Query for returning total count of all capability executions of a specific name in a specific date range:

All Capabilities by Name and Date Range

SELECT count(*)

FROM capability_execution_metrics

WHERE cap_name = '<name>' AND

execution_created between '<beginning_date>' and '<end_date>';

Download Metrics

There are currently two available download metrics:

  1. Size of data downloaded by request
  2. Size of data downloaded total in a given date range

Query for returning the size of the data downloaded in one request:

Data Size by Request

SELECT sum(datasize)

FROM download_metrics

WHERE request_id = '<id>'

AND state = 'Complete'

GROUP BY request_id

Query for returning the total amount of data downloaded in a date range:

Data Downloaded by Date Range

SELECT sum(datasize)

FROM download_metrics

WHERE state = 'Complete'

AND execution_created BETWEEN <beginning_date> AND <end_date>

Warnings and Notes

Timestamps should be in the following format: '2021-03-30T12:00:00'.

Warning: Don't forget the single quotes! Especially since we have a Capability named null!

Warning: Please note that all timestamps are stored in UTC time, not local time.

Workspaces Metrics CLI

The second method of metrics collection is the Workspaces Metrics CLI. This is a command line tool that will be available on servers were the workspaces system is deployed via the command ws_metrics.

Structure

The CLI currently has two available options:

option parameters needed purpose
-c capability_name Returns the total count of all <capability_name> executions since the database was initialized
-b capability_name, beginning_timestamp, end_timestamp Returns the total count of all <capability_name> executions in the range beginning_timestamp to end_timestamp
-rd capability_request_id Returns the data size that was downloaded by this request in kilobytes
-d beginning_timestamp, end_timestamp Returns the data size that was downloaded in the range beginning_timestamp to end_timestamp

Usage

To access ws_metrics do the following:

1) On a server running workspaces, perform the following command to access the capability docker container:

Docker Container Bash Access

docker exec -it workspaces_capability_1 bash

  1. Now that you are in the proper container, you can access ws_metrics!

ws_metrics usage

ws_metrics <option> <parameters>

General Capability Metrics

To acquire the total number of all capability executions of a specific name run since the database was created, use:

ws_metrics capability usage

ws_metrics -c <capability_name>

To acquire the total number of capability executions of a specific capability name run within a specified date range, use:

ws_metrics capability range usage

ws_metrics -b <capability_name> <beginning_timestamp> <end_timestamp>

Download Metrics

To acquire the data size for a capability request of interest, use:

ws_metrics request datasize usage

ws_metrics -rd <request_id>

To acquire the data size of everything downloaded in a specified date range, use:

ws_metrics total download size usage

ws_metrics -d <beginning_timestamp> <end_timestamp>