aws-fsxn-operations-review
Skill137 starsChanged 10 days agoApache-2.0View on GitHub
Amazon FSx for NetApp ONTAP Operational Review. Use when a user asks to review, audit, assess, or health-check FSx for NetApp ONTAP (FSxN / FSx ONTAP) — a file system, SVM, volume, or the whole footprint — for best-practices posture across Backup, Observability, Operations, Performance, and Security, in production or pre-production. Activate even on a brief request with no file-system IDs: the skill self-discovers all ONTAP file systems in the account/region and runs all pillars by default, so a bare account+region (or no scope) is enough — do not wait for named resources. Strictly read-only and fully automated via public AWS APIs (fsx, cloudwatch, backup, ec2); no manual steps, no ONTAP CLI. Triggers: "FSxN operational review", "FSx ONTAP review", "review my FSxN", "audit my FSx ONTAP", "check my FSxN posture", "FSx ONTAP best-practices audit", "FSxN health check", "assess my ONTAP file system".
In this repository72 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- agentcore-observability-setupSkill
- agentcore-ops-reviewSkill
- aiml-access-diagnosticsSkill
- aiml-gpu-training-cluster-investigationSkill
- analytics-opensearch-expertiseSkill
- aws-backup-coverage-reviewSkill
- aws-eks-healthdashboardSkill
- aws-eks-operations-reviewSkill
- aws-health-eventsSkill
- aws-natgw-traffic-analysisSkill
- aws-routingSkill
- aws-vpc-dns-investigationSkill
- bedrock-adoption-readinessSkill
- bedrock-operation-reviewSkill
- bronto-dataset-discoverySkill
- bronto-error-investigationSkill
- bronto-log-searchSkill
- cloudtrail-cost-optimizationSkill
- config-cost-optimizationSkill
- coralogix-ai-centerSkill
- coralogix-alertsSkill
- coralogix-case-analyticsSkill
- coralogix-case-managementSkill
- coralogix-casesSkill
- coralogix-dashboardsSkill
- coralogix-dataprimeSkill
- coralogix-datasetsSkill
- coralogix-data-usageSkill
- coralogix-docsSkill
- coralogix-infrastructureSkill
- coralogix-logsSkill
- coralogix-metrics-querySkill
- coralogix-ollySkill
- coralogix-rumSkill
- coralogix-service-catalogSkill
- coralogix-single-caseSkill
- coralogix-spansSkill
- coralogix-viewsSkill
- crm-production-investigation-guidelinesSkill
- database-migration-service-expertiseSkill
- database-rds-devopsSkill
- devops-agent-cost-insightsSkill
- ecs-operation-reviewSkill
- eks-upgrade-readinessSkill
- enrich-with-aws-security-agentSkill
- eos-cost-analysisSkill
- firehose-operation-reviewSkill
- grafana-cloud-investigationSkill
- guardduty-cost-optimizationSkill
- honeycomb-create-boardSkill
- honeycomb-metrics-queriesSkill
- honeycomb-observability-fundamentalsSkill
- honeycomb-production-investigationSkill
- honeycomb-query-patternsSkill
- honeycomb-slos-and-triggersSkill
- honeycomb-verify-recent-traceSkill
- investigation-cost-guardrailSkill
- live-streaming-event-readiness-reviewSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 8 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Run the FSx for NetApp ONTAP operational review checks against a customer's FSxN file systems and produce an Amazon FSx for NetApp ONTAP …
- Distinctive: line 47
Health check: when something feels off and you want a full best-practices sweep before deciding where to dig in.
- Distinctive: line 59
Run checks grouped by pillar in the order below.
- Distinctive: line 143
Keep it a prioritized findings report — do not pad with prose, and do not drop the evidence or the check IDs.
- Very specific: line 159
Gen2 file systems do not emit
StorageCapacityUtilization: When DeploymentType ends in _2 (SINGLE_AZ_2 / MULTI_AZ_2), that metric returns … - Distinctive: line 170
Idle file system ≠ a problem: When there is no traffic, activity metrics (latency, cache hit, client throughput, per-volume I/O) return no …
- Distinctive: line 181
READ-ONLY — no resource mutation, no mounting, no data-plane access, no ONTAP CLI.
- Distinctive: line 198
Keep all guidance and recommendations specific to Amazon FSx for NetApp ONTAP.
- Distinctive: line 222
No ONTAP CLI, no data-plane calls, no non-AWS tooling — the skill is self-contained on the DevOps Agent's cloud-source IAM role.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Amazon FSx for NetApp ONTAP Operational Review
Run the FSx for NetApp ONTAP operational review checks against a customer's FSxN file systems and
produce an Amazon FSx for NetApp ONTAP Operational Review report. It evaluates 5 pillars,
46 checks using native public AWS APIs (via use_aws): fsx, cloudwatch, backup, and
ec2.
This is a strict READ-ONLY, fully automated review. Every check is driven by a public AWS
Describe* / List* / Get* call or a CloudWatch metric read. There are no manual steps, no
customer questionnaire, and no ONTAP CLI commands in this review. Anything that can only be
answered from the ONTAP CLI is out of scope for this review.
When to Use
Activate this skill when the user asks to review, audit, or assess an FSx for NetApp ONTAP workload, or to check FSxN best-practices posture — for one pillar, a subset of checks, or the full set.
This is an operational posture review that can be run against any FSxN file system — whether in production or pre-production. Typical uses:
- Recurring posture review (weekly or monthly) of a live file system — successive runs are directly comparable so you can track drift over time.
- Ad-hoc audit of an existing or newly inherited file system — understand its backup, observability, performance, and security posture and get a prioritized remediation list.
- Health check when something feels off and you want a full best-practices sweep before deciding where to dig in.
Because every finding is severity-ranked and carries a concrete remediation, the report serves as a prioritized action list for the running workload — clear the Critical, High, and Medium findings to improve posture.
Deep, ONTAP-CLI-level diagnosis of an active problem (performance degradation, connectivity failure, failover) is out of scope for this automated review.
Pillars and Checks
Run checks grouped by pillar in the order below. The check definitions are split across small reference files for reliable loading:
- Load
references/overview.mdfirst — the Severity Model, Status Values, Evidence Guardrails, and the public AWS API /AWS/FSxmetric reference that govern every check. Keep it in context for the whole run. - Then load the per-pillar checks file for each pillar you run — load it when you start that
pillar's checks:
references/backup-checks.md— Backup (7 checks)references/observability-checks.md— Observability (3 checks)references/operations-checks.md— Operations (11 checks)references/performance-checks.md— Performance (17 checks)references/security-checks.md— Security (8 checks)
| Pillar | Checks |
| Backup | Backup configured · Recovery points exist · SnapMirror (DP) relationships (informational) · FS automatic backups enabled · Backup size growth trend · Backup staleness · Automatic backup daily cadence |
| Observability | CloudWatch alarms configured · Alarms on all file systems · No FSx alarms in ALARM state |
| Operations | Cost-allocation tags · Unused volumes identified · Maintenance window aligned · Consistent maintenance windows · Storage efficiency enabled · Snapshot policies on production volumes · Deployment type matches HA requirements · Active Directory configured on SVM · Volume & SVM tag audit · Per-volume capacity utilization · Aged snapshots |
| Performance | CPU < 85% · Throughput config matches workload · IOPS not over-provisioned · IOPS util < 80% · SSD capacity < 80% · Volume tiering policies appropriate · Aggregate workload balanced · FlexGroup constituent balance · Network path optimized · Client throughput nominal · Filesystem generation appropriate · Capacity-pool tiering only for archive · HA pair count sufficient · FlexClone not on tiered parent · No unexpected capacity-pool reads · Cache hit ratio · Latency monitoring |
| Security | SG allows required ports · SG not overly permissive · Volume security style correct · No unintentional MIXED style · AD integration configured · Route-table associations for Multi-AZ · Encryption at rest / KMS key · Security-group egress |
Steps
Work through this ordered, dependent procedure and check each item off as you complete it:
- Step 1 — Identify scope. Default path (no clarification round-trip): if the user gives no
specifics, default to the current account/region via
sts:GetCallerIdentity, discover all ONTAP file systems withfsx describe-file-systems(filterFileSystemType = ONTAP), and run all 5 pillars / 46 checks with the default metric windows. Confirm scope only if the user volunteers it or the estate is large.- Note the parameters (all default): file-system IDs / accounts / regions (default current); pillars or checks (default all); date range (performance reads = trailing 7 days, backup growth = 30 days, unused-volume I/O per OPS-02).
- Large-estate guard: if discovery returns more than ~25 file systems, or they span more than 3 regions, ask the user to scope first (by region, by tag, or to a subset of pillars).
- Step 2 — Run the checks. Load
references/overview.mdfirst, then each in-scope pillar'sreferences/<pillar>-checks.md(authoritative APIs, logic, thresholds, severities, output fields; guardrails live inoverview.md) and keep them in context. For each in-scope check, call the public AWS APIs viause_awsand build result rows, following:- Read-only.
Describe*/List*/Get*only; paginate every token. NoCreate*/Update*/Delete*, no data-plane access, no mounting, no ONTAP CLI. - Automated only. Every check is answerable from a public AWS API. Emit no questionnaire items, "manual verification" steps, or ONTAP CLI. If a finding would need ONTAP-CLI follow-up, state it is out of scope — do not inline CLI.
- Evidence-only. Base every result solely on values returned this run (Evidence Guardrails
in
references/overview.md). No assumptions or inference of unobserved state. Classify resources only from returned fields (e.g. the SVM root volume by returnedJunctionPath = "/"). Carry observed value(s) into each row; show inputs for any derived figure. - Per-check isolation. Record errors per check as a
{ error }row — one failed check never aborts the review. - Graceful degradation. On
AccessDenied, an API error, empty results, an absent field, or a metric with no datapoints, set the check Not evaluated with the reason — never a false "none found", false "Pass", or guessed value. - Empty results (permission present, nothing there) → a single "No
<resource>found" row. - Units on every number. Utilization metrics are percent;
*Bytes→ a labelled rate (GB/hr); latency from*OperationTime ÷ *Operationsis seconds → ×1000 ms, labelled. - Severity per the pillar's
references/<pillar>-checks.md(Critical/High/Medium/Low/Informational); use only the thresholds each check defines. - One finding = one non-compliant resource in one check, keyed by
(check, fileSystemId, resource)— never aggregate. - One recommendation per Critical/High/Medium finding — concrete and FSxN-specific.
- Read-only.
- Step 3 — Validate your own output, then generate the report. First self-check and fix any
problem before presenting:
- Every row cites observed data — no Pass/Warning/Fail without the API value(s); derived
figures show inputs; a check lacking data reads
Not evaluated — <reason>, not a guess. - Severity counts reconcile — the Executive Summary counts equal the per-check totals (recount per pillar).
- Every Critical/High/Medium finding is in the Executive Summary, each with one recommendation.
- Resource identifiers are exact (IDs copied from the API, not paraphrased).
- Root-volume handling is correct — SVM root (
JunctionPath = "/") isExcludedonly in OPS-10, tagged (never deleted/removed) elsewhere. - No invented numbers, no ONTAP CLI, no manual steps anywhere in the report.
- Produce the findings report. The response MUST contain, at minimum:
- a title line identifying it as an FSx for NetApp ONTAP operational review and the file system(s) / region reviewed;
- an Executive Summary with counts by severity (Critical / High / Medium / Low) and the Critical/High/Medium findings ranked most-severe first;
- for each finding: the check ID (e.g.
SEC-08,BKP-01) and pillar it belongs to, the specific resource (file-system / volume / SVM id), the observed value it is based on, and one concrete FSxN-specific remediation; - a short "healthy / not evaluated" note for areas that passed or had no data. Keep it a prioritized findings report — do not pad with prose, and do not drop the evidence or the check IDs. Output budget: cover every in-scope check, but render compactly (one line or one table row per finding); summarize passing checks in aggregate rather than a full section each.
- Every row cites observed data — no Pass/Warning/Fail without the API value(s); derived
figures show inputs; a check lacking data reads
Report format: chat vs full
- Chat task (default): the prioritized findings report above — concise, evidence-first, keyed to check IDs. This is the normal output and is what most requests want.
- Full tabular report (when the user explicitly asks for the "full report"):
load
assets/report-template.mdand render the complete layout — H1 title, the account/region/date header, the AI Disclaimer blockquote verbatim, the Executive Summary, and one##section per pillar with a###+ Data table per check. Use this when a complete, archivable document is wanted rather than a chat answer.
Gotchas (FSxN-specific — correct these before they bite)
- Gen2 file systems do not emit
StorageCapacityUtilization. WhenDeploymentTypeends in_2(SINGLE_AZ_2/MULTI_AZ_2), that metric returns no datapoints — it is not 0%. Compute SSD utilization from the detailed per-tierStorageUsed{SSD}÷StorageCapacity{SSD}instead (PERF-05). StorageCapacityUtilizationtakes onlyFileSystemId(noStorageTierdimension) and already reflects the primary/SSD tier (it backs the FSx "low primary storage" alarm).- The SVM root volume is the volume at
JunctionPath = "/"(Name = <svm>_root). ItsStorageUseddoes not map to its configured size — excluded only in OPS-10 (shown asExcluded — SVM root), tagged elsewhere, and never a deletion candidate. - Latency metrics are in seconds.
DataReadOperationTime ÷ DataReadOperations(and write/metadata) gives seconds — multiply by 1000 and label ms. An unlabelled six-figure number reads as a false escalation. - Idle file system ≠ a problem. When there is no traffic, activity metrics (latency, cache hit, client throughput, per-volume I/O) return no datapoints → Not evaluated, never a guessed 0% or Pass.
- Volumes are thin-provisioned. A volume's configured size can exceed the file system; per-volume used% is against the configured volume size, not the file-system SSD tier.
- Ages are computed from each resource's timestamp (
now − CreationTime); never synthesize a standalone past cutoff likenow − 90d— agent datetime tools guard against far-past timestamps. ALLtiering on an active volume forces every read from the capacity pool (15–25 ms); capacity-pool reads on active data are a latency red flag (PERF-17/PERF-21).
Constraints
- READ-ONLY — no resource mutation, no mounting, no data-plane access, no ONTAP CLI.
- Fully automated — no manual steps, no customer questionnaire. Every result comes from a public AWS API.
- Evidence-only — the whole report is built from data the API calls returned this run. Follow the
Evidence Guardrails in
references/overview.md: observed data only; no assumptions or inference of unobserved state; missing/failed/empty data ⇒ Not evaluated with the reason (never a guessed Pass/Fail); every result row shows the value(s) it is based on, and derived figures show their inputs. A finding that cannot be backed by a returned value must not appear. - Report only what the APIs return. Do NOT fabricate data or assume unobserved configuration.
- No invented numbers. State a throughput tier, IOPS limit, utilization percentage, capacity, age, or count only if an API call returned it. Never substitute a tier default for an applied value, and never attach "~" or "up to" to a figure you did not read.
- Paginate ALL calls that return a pagination token.
- Empty-scope precedence: if every in-scope check across all in-scope accounts/file systems/regions returns no resources, skip the per-pillar report and instead report the single line "No FSx for NetApp ONTAP activity detected." Otherwise render the full report — each check that found nothing gets its own empty-state row.
- Keep all guidance and recommendations specific to Amazon FSx for NetApp ONTAP.
Scope Limitations — state these in the report, do not overclaim past them
- Control-plane and CloudWatch metrics only. The review reports configuration and CloudWatch signals exposed by public AWS APIs. It cannot read ONTAP-internal state — SnapMirror lag and health, WAFL/aggregate internals, per-volume ONTAP latency counters, FlexCache hit ratios, audit-log configuration, snapshot auto-delete policy, and similar are not assessed. Where a check touches such an area (e.g. BKP-03 sees DP volumes but not SnapMirror lag), say so in that check's Guidance rather than implying wider coverage.
- No ONTAP CLI. This skill never executes or recommends ONTAP CLI. CLI-level diagnosis is out of scope for this review.
- Point-in-time. Findings reflect state at run time. Metric windows are fixed per check, so a spike outside the window is not visible.
- Large estates may need scoping. Many file systems and volumes across many regions can exhaust the run budget; scope to fewer file systems or pillars if a run is at risk of truncating.
Data Source Boundaries
Public AWS APIs only, via use_aws: fsx (describe-file-systems, describe-volumes,
describe-storage-virtual-machines, describe-snapshots, describe-backups, list-tags-for-resource),
cloudwatch (describe-alarms, get-metric-data, list-metrics), backup
(list-protected-resources, list-recovery-points-by-resource), and ec2
(describe-security-groups, describe-network-interfaces, describe-subnets, describe-route-tables).
No ONTAP CLI, no data-plane
calls, no non-AWS tooling — the skill is self-contained on the DevOps Agent's cloud-source IAM role.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

