PAI-FeatureStore FeatureDB Usage Query and Analysis
Architecture: PAI-FeatureStore Instance → FeatureDB Datasource → Feature Views → Usage Statistics
Key Features
- Total Usage Analysis: Query daily read/write totals across a date range (up to 30 days)
- Feature View Details: Query specific feature view usage on a given date with sorting by read/write count
- Project-Level Analysis: Query daily read/write totals for a specific project (up to 30 days)
- Feature View Trends: Query daily read/write trends for a specific feature view (up to 30 days)
- Cost Calculation: Calculate costs based on official pricing tiers for different regions
Supported Regions
cn-beijing, cn-hangzhou, cn-shanghai, cn-shenzhen, cn-hongkong, ap-southeast-1, ap-southeast-5, us-west-1, eu-central-1
Installation
Pre-check: Aliyun CLI >= 3.3.3 required
Run aliyun version to verify >= 3.3.3. If not installed or version too low,
run curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash to update,
or see references/cli-installation-guide.md for installation instructions.
Then [MUST] run aliyun configure set --auto-plugin-install true to enable automatic plugin installation.
[MUST] run aliyun plugin update to ensure that any existing plugins on your local machine are always up-to-date.
[MUST] CLI User-Agent — Every aliyun CLI command invocation must include:
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
The PAI-FeatureStore CLI plugin will be automatically installed when first used if auto-plugin-install is enabled.
Timeout: Default 10s is sufficient for all API calls.
Authentication
Pre-check: Alibaba Cloud Credentials Required
Security Rules:
- NEVER read, echo, or print AK/SK values (e.g.,
echo $ALIBABA_CLOUD_ACCESS_KEY_ID is FORBIDDEN)
- NEVER ask the user to input AK/SK directly in the conversation or command line
- NEVER use
aliyun configure set with literal credential values
- NEVER output any string resembling a key (e.g.,
LTAI5t***, AccessKeyId: xxx, ak-***)
- ONLY use
aliyun configure list to check credential status
aliyun configure list
Check the output for a valid profile (AK, STS, or OAuth identity).
If no valid profile exists, STOP here.
Required Parameters
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, instance names, CIDR blocks, passwords, domain names, resource specifications, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter Name | Required/Optional | Description | Default Value |
|---|
| RegionId | Required | Alibaba Cloud region ID. Must be one of the supported regions listed above. | None |
| WorkspaceId | Optional* | PAI workspace ID (numeric, e.g., 12345). Required if DatasourceId is not provided. | None |
| DatasourceId | Optional* | FeatureDB datasource ID (numeric, e.g., 67890). Required if WorkspaceId is not provided. | None |
| StartDate | Optional | Query start date in yyyy-MM-dd format. | 30 days ago (for total usage) or 7 days ago (for project/feature view) |
| EndDate | Optional | Query end date in yyyy-MM-dd format. | Yesterday |
| ProjectName | Optional | Project name (required for project-level and feature view queries). | None |
| FeatureViewName | Optional | Feature view name (required for feature view trend queries). | None |
| SortBy | Optional | Sort field: ReadCount or WriteCount | ReadCount |
| Order | Optional | Sort order: ASC or DESC | DESC |
Note: Either WorkspaceId or DatasourceId must be provided. If neither is provided, the skill will list all available FeatureDB datasources for user selection.
RAM Permissions
This skill requires the following RAM permissions. See references/ram-policies.md for detailed policy configuration.
Required Actions:
paifeaturestore:ListInstances
paifeaturestore:GetDatasource
paifeaturestore:ListDatasources
paifeaturestore:ListDatasourceFeatureViews
Core Workflow
Functional Scope (MUST CHECK FIRST)
This skill ONLY supports querying FeatureDB read/write usage statistics. Any requests outside of "querying historical read/write counts or costs" are out of scope and must be politely declined with a list of supported features.
[MUST] If request is out of scope, reject politely and list supported features:
"Sorry, this Skill only supports querying FeatureDB read/write usage statistics, not [user request]. Supported features: 1) Daily read/write totals 2) Feature view details 3) Usage trends 4) Cost calculation"
Feature Selection Logic
Which features to execute depends on user's request:
| Scenario | Action |
|---|
| Request out of scope or unsupported | Reject and list supported features (see above) |
| User specifies supported feature(s) | Execute the specified feature(s) |
| User doesn't specify any feature | Execute default behavior (see below) |
Supported Functions
- Query daily FeatureDB read/write totals from StartDate to EndDate with analysis (max 30-day span)
- Query per-feature-view read/write counts for a specific date, with sorting and analysis
- Query daily FeatureDB read/write totals for a specific project from StartDate to EndDate with analysis (max 30-day span)
- Query daily FeatureDB read/write trends for a specific feature view from StartDate to EndDate with analysis (max 30-day span)
- Calculate costs based on official pricing and query results
User-Friendly Prompts
Use descriptive names instead of function numbers when prompting, because "Function 3" is meaningless to users who haven't read this document.
Execution Steps
Step 1: Verify PAI-FeatureStore Instance
aliyun paifeaturestore list-instances \
--region <RegionId> \
--status Running \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Expected Output: A list of running instances with their InstanceIds.
Error Handling (if no running instances found — STOP, do NOT guess InstanceId):
No running PAI-FeatureStore instances found in this region. Please verify:
- Is the RegionId correct?
- Do you need to switch to a different region?
- To activate PAI-FeatureStore, visit the console
Step 2: Identify FeatureDB Datasource
Case A: User provided WorkspaceId
aliyun paifeaturestore list-datasources \
--region <RegionId> \
--instance-id <InstanceId> \
--type FeatureDB \
--workspace-id <WorkspaceId> \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Case B: User provided DatasourceId
[MUST] When user provides DatasourceId, you MUST call GetDatasource or ListDatasources to verify the datasource type is FeatureDB. Do NOT skip this validation step.
aliyun paifeaturestore get-datasource \
--region <RegionId> \
--instance-id <InstanceId> \
--datasource-id <DatasourceId> \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Validation: Check the Type field in the response. If Type is NOT FeatureDB, stop and inform the user that this datasource is not a FeatureDB datasource.
Case C: Neither WorkspaceId nor DatasourceId provided
aliyun paifeaturestore list-datasources \
--region <RegionId> \
--instance-id <InstanceId> \
--type FeatureDB \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Note: This API is paginated. Calculate total pages from TotalCount and PageSize, then fetch all pages.
Example pagination logic:
# First call to get TotalCount
FIRST_RESPONSE=$(aliyun paifeaturestore list-datasources \
--region <RegionId> \
--instance-id <InstanceId> \
--type FeatureDB \
--page-number 1 \
--page-size 10 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query)
# Extract TotalCount and calculate total pages
# Then iterate through all pages
for page in {1..total_pages}; do
aliyun paifeaturestore list-datasources \
--region <RegionId> \
--instance-id <InstanceId> \
--type FeatureDB \
--page-number $page \
--page-size 10 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
done
Present all FeatureDB datasources to the user. If only ONE datasource exists, use it directly.
When MULTIPLE datasources exist, behavior depends on query type:
| Query Type | User Confirmation Required |
|---|
| Total usage (Function 1) | Ask: "Query aggregated usage for all N datasources, or select a specific one?" Then proceed based on user's choice. |
| Feature view details / Project / Trends (Function 2/3/4) | Must select ONE datasource. These queries are datasource-specific and cannot span multiple datasources. |
Error Handling:
- If WorkspaceId or DatasourceId is invalid, fall back to Case C and list all available datasources.
Step 3: Query Usage Statistics
Date Validation (before API call):
- Format: Must be
yyyy-MM-dd (e.g., 2024-03-15). If user provides other formats (e.g., 3/15, 2024.03.15), convert to correct format.
- Range:
EndDate - StartDate must be ≤ 30 days. If exceeded, ask user to narrow the range or split into multiple queries.
- Boundary:
EndDate ≤ today; StartDate ≤ EndDate.
Relative Date Ranges ("last 7 days", "last 30 days"): Calculate StartDate = N days ago, EndDate = yesterday. Run date command separately first, then use the literal result in --start-date/--end-date. NEVER embed $(...) in CLI commands.
Execute queries based on user requirements:
Function 1: Query Total Daily Read/Write Usage
Query daily totals from StartDate to EndDate (default: last 30 days).
aliyun paifeaturestore list-datasource-feature-views \
--region <RegionId> \
--instance-id <InstanceId> \
--datasource-id <DatasourceId> \
--start-date <StartDate> \
--end-date <EndDate> \
--verbose false \
--show-storage-usage false \
--page-size 1 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Output: Extract TotalUsageStatistics from the response.
Function 2: Query Per-Feature-View Usage for a Specific Date
Query all feature views' read/write counts on a specific date, with sorting.
aliyun paifeaturestore list-datasource-feature-views \
--region <RegionId> \
--instance-id <InstanceId> \
--datasource-id <DatasourceId> \
--start-date <TargetDate> \
--end-date <TargetDate> \
--verbose true \
--show-storage-usage false \
--all true \
--sort-by <ReadCount|WriteCount> \
--order <ASC|DESC> \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Output: Extract FeatureViews array from the response.
Function 3: Query Daily Usage for a Specific Project
Query daily totals for a specific project from StartDate to EndDate (default: last 7 days).
aliyun paifeaturestore list-datasource-feature-views \
--region <RegionId> \
--instance-id <InstanceId> \
--datasource-id <DatasourceId> \
--start-date <StartDate> \
--end-date <EndDate> \
--verbose false \
--show-storage-usage false \
--page-size 1 \
--project-name <ProjectName> \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Output: Extract TotalUsageStatistics from the response.
Error Handling:
- If the API returns an error indicating the project does not exist, recommend querying Function 2 first to get the complete list of queryable projects (deduplicate by project name).
Function 4: Query Daily Usage for a Specific Feature View
Query daily trends for a specific feature view from StartDate to EndDate (default: last 7 days).
aliyun paifeaturestore list-datasource-feature-views \
--region <RegionId> \
--instance-id <InstanceId> \
--datasource-id <DatasourceId> \
--start-date <StartDate> \
--end-date <EndDate> \
--verbose true \
--show-storage-usage false \
--all true \
--project-name <ProjectName> \
--name <FeatureViewName> \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-pai-feature-store-featuredb-usage-query
Output: Extract the matching feature view from the FeatureViews array.
Error Handling:
- If no matching feature view is found in the response, the feature view does not exist. Recommend querying Function 2 first to get the complete list of queryable feature views.
Step 4: Analyze Results and Calculate Costs
Based on user requirements:
- Analyze usage trends from the query results
- Calculate costs
Official Pricing (per 10,000 requests):
| Region | Write Cost | Read Cost |
|---|
| Beijing, Shanghai, Hangzhou, Shenzhen | ¥0.151 | ¥0.0755 |
| Hong Kong, Singapore, Silicon Valley, Frankfurt, Jakarta | ¥0.2651 | ¥0.1326 |
-
Present insights:
- Identify high-traffic feature views
- Highlight usage patterns (spikes, trends)
- Provide cost breakdown and optimization suggestions if applicable
-
Offer next steps:
- Ask if the user wants to drill down into specific projects or feature views
- Offer to calculate costs if not already done
- Suggest further analysis options
Success Verification
The skill execution is successful if:
- ✅ Valid PAI-FeatureStore instance is found
- ✅ FeatureDB datasource is identified or selected
- ✅ Usage statistics are successfully retrieved
- ✅ Results are analyzed and presented clearly
- ✅ Cost calculations are accurate (if requested)
- ✅ Response language matches user's question language
For detailed verification steps, see references/verification-method.md.
Cleanup
This skill performs read-only operations and does not create any resources. No cleanup is required.
Best Practices
- Always confirm the RegionId with the user before executing any commands
- Use pagination properly when listing datasources to ensure all results are retrieved
- Provide context in analysis: Don't just show numbers—explain trends and patterns
- Offer actionable insights: Suggest which feature views or projects to investigate further
- Handle errors gracefully: If a project or feature view doesn't exist, guide the user to list all available options first
- Calculate costs accurately: Use the correct pricing tier based on the region
- Keep user engaged: After showing results, ask if they want to drill deeper or analyze specific aspects
- Decline out-of-scope requests politely: If a request is not about querying usage statistics, politely decline and list supported features
Reference Documentation