Retrieve Data Metrics for a Collection Job

Scenario Overview

Retrieving data metrics for a collection job provides insights into the performance and health of data collection operations. These metrics can help you monitor progress, troubleshoot issues, and validate job results.

The GetCollectionDataMetricsPerDevice API provides a detailed, granular view of data metrics for each device within a collection job. Data metrics are organized on a per-device, per-sensor basis and include:

  • Input metrics: Data collected from devices to the collector.
  • Output metrics: Data sent from the collector to destinations.

Only the most recent reported values are retained, and the metrics are updated periodically in the backend. If the collector does not have a status, the API response may be empty.

An ApplicationContext or device ID must be supplied with the request. If a device ID is not provided, the API will return prefetched metrics data. However, if no prefetched data is available for a device, the response will not include metrics data for that device.

The operations in the following API references are used in this example.

Prerequisites

Before running this example, ensure that you have obtained an access token. Refer to the 'Getting Started' section for instructions.

Get Collection Job Data Metrics

To retrieve data metrics for a collection job, update the collection_job_datametrics_query.json input file with the required details (e.g., ApplicationContext or device ID), then run the collection_job_datametrics_query.sh script from the example directory.

Navigate to the cnc-collections-api-examples directory and run the collection_job_datametrics_query.sh script using the following command:

cd cnc-collections-api-examples;./collection_job_datametrics_query.sh

Script Details

#!/bin/bash
# Import common API functions and environment variables
# This script reads input from the .json file located in the input directory.
# Upon successful execution, the output is saved to the .json file in the output directory.
. ./cnc-api-common.sh

collection_job_datametrics_query() {
    # Step 1: Ensure the CNC JWT is obtained by running the get-cnc-jwt.sh script.
    # Read the JWT from the file and export it as the AUTH_TOKEN_HDR environment variable.
     export_jwt

    # STEP 2 :  Update the input json with details of job for which we want data metrics in the file CNC_API_INPUT
    # STEP 3 :  Retrieve data metrics for collection job from the server and store the output in CNC_API_OUTPUT file

    CNC_COLLECTION_API=$CNC_COLLECTION_API_CTX/collectionjob/datametrics/query
    CNC_API_INPUT="@$PRJ/input/collection_job_datametrics_query.json"	 
    CNC_API_OUTPUT="$PRJ/output/collection_job_datametrics_query.json"

    # Step 4: Send a POST request to retrieve data metrics for the collection job and store the response in the output file.
    http_post $CNC_COLLECTION_API $CNC_API_INPUT $CNC_API_OUTPUT
    
}
collection_job_datametrics_query