As ACS engineers and product managers, we require usage data to make data driven decision for ACS policies. The data that is collected should be able to answer at least the following questions:
- How many custom policies are created by users?
- How often are individual policy criteria (e.g. image name, image age, image signature, ...) used?
The data should be combinable with other telemetry data, and should be visualizable via the regular Amplitude channel. The schema should also be extensible so that other product related questions can be answered in the future.
Suggested schemata (example, not strict requirement):
Option 1: Collect policy information via a dedicated PolicyUser event in Amplitude.
- This has the advantage of removing one layer of nesting, which is hard to query in Amplitude.
{"type": "PolicyUser", "id": "1234", "centralID": "5678", "criteria": ["ImageName", "ImageTag"]} {"type": "PolicyUser", "id": "1235", "centralID": "5678", "criteria": ["ImageName"]} {"type": "PolicyUser", "id": "1236", "centralID": "5678", "criteria": ["ImageAge"]} {"type": "PolicyUser", "id": "1237", "centralID": "8901", "criteria": ["ImageSignature"]}
Option 2: Collect policy information via the regular Central user properties, but aggregate in Central to avoid nesting.
- This may be easier to query from Amplitude, but is less flexible.
{"type": "CentralUser", "id": "1237", "policies": {"ImageSignaturePolicyCount": 5, "ImageSignatureMaxCountPerSinglePolicy": 3, "ImageNameCount": 10}}