Description

Track and visualize the creation and deletion of objects over time in a Foundry instance.

Resources

DynamoDB

  • fndy_object_type_history

    • Used to store current object counts for each object type

    • Keys

      • Partition key: typeId

      • Sort key: epochTime

    • Attributes

      • objectCount

        • Current count of all objects for that object type

Kinesis

  • fndy-record-object-type-history

    • Used to process trigger events from fndy_object_info table in order

Lambda

  • fndy-get-object-type-history-secure

    • Used by Foundry front-end to sample data for visualization in /objectTypeVisualizer

  • fndy-trigger-update-object-type-history

    • Configured as a trigger on fndy_object_info DynamoDB table

    • Sends data to Kinesis stream when item is created/deleted in table

  • fndy-init-object-type-history

    • Runs once on CloudFormation installation

    • Analyzes fndy_object_info table to create baseline entries in fndy_object_type_history table

  • fndy-trigger-create-initial-object-type-history-entry

    • Configured as a trigger on fndy_object_type table

    • Creates entry in fndy_object_type_history when new object type is created

  • fndy-kinesis-update-object-type-history

    • Configured as a trigger on fndy-record-object-type-history Kinesis stream

    • Processes data from Kinesis stream, and enters it in the fndy_object_type_history DynamoDB table

Installation

  1. Download CloudFormation template from here: https://drive.google.com/file/d/1wR00CQ-PPnaI2wVkVMdlpSkHkaUVEagv/view?usp=sharing

  2. Upload CloudFormation in desired AWS account

  3. Fill in CloudFormation parameters

    1. Environment

      1. Environment used for installation

      2. Can be either dev, qa, or prod

    2. LambdaRoleArn

      1. ARN of Foundry Lambda role

    3. InfoTableStreamArn

      1. ARN of latest stream on fndy_object_info table

    4. ObjectTypeTableStreamArn

      1. ARN of latest stream on fndy_object_type table

    5. FoundryApiId

      1. API ID of FoundryCustomerSideV2Dev

    6. DeviceTypeApiId

      1. API ID of /device-type resource in FoundryCustomerSideV2Dev

Post Installation

  1. Verify that fndy_object_type_history table exists with entries for each Foundry device type

  2. Navigate to /objectTypeVisualizer on Foundry front-end

    1. Select several device types and a time range

    2. Lines should appear, showing history object object types