AWS S3 monitoring with Topologix
Data & Storage
Two tiers of S3 telemetry per bucket. The storage tier — size broken down by storage class plus object count — is always on, free, and reported daily by AWS (it can lag 24–48 hours). The request tier — request rate, 4xx/5xx errors and rates, bytes in both directions, first-byte and total latency — appears only on buckets where the paid, opt-in request metrics are enabled.
Requirements
- An IAM access key with s3:ListAllMyBuckets, s3:GetBucketLocation, cloudwatch:GetMetricData, and cloudwatch:ListMetrics — the managed
AmazonS3ReadOnlyAccess+CloudWatchReadOnlyAccesspair covers it. - The integration is region-scoped: only buckets in the drawer’s Region are listed. Buckets elsewhere get another integration on the same key.
- For the request tier: enable Request metrics per bucket (AWS console → bucket → Metrics) — an opt-in, paid CloudWatch feature that creates the
EntireBucketfilter the fetcher reads.
1 · Set up the integration
- Open the Integrations pageClick Integrations in the toolbar and pick AWS S3 from the catalogue.
- Create a read-only IAM userAWS Console → IAM → create a user with
AmazonS3ReadOnlyAccess+CloudWatchReadOnlyAccessand generate an access key. - Enter the credentialsAccess Key ID, Secret Access Key, and the Region whose buckets this integration should list.
- Create, then verifyClick Create, then reopen the integration and click Test — it lists buckets and reports the in-region count against the account total (“Connected — 3 bucket(s) in eu-west-1 (12 total in account)”), capping location lookups at 25 to stay fast.


Target on a private network? Route it through a proxy agent. Proxy agents run inside your network — behind NAT, on a management VLAN, in an air-gapped segment — and reach targets the Topologix server can't. The agent polls the server every 15 seconds for its assignments, runs the checks locally, and pushes results back every 5 seconds, so no inbound firewall rules are ever needed. Set a default proxy on the integration; every metric source can override it. If a proxy goes offline, its sources are marked stale within ~90 seconds and the last known values stay visible.
2 · Add it to a flow
- Select the storage nodeClick the node, open Metrics, then + Add and choose the AWS S3 integration.
- Pick the bucketsA multi-select list of the region’s buckets (with creation date) creates one source per ticked bucket; or type a bucket name directly.
- SavePick the Request metrics period (1 minute to 24 hours — storage metrics are reported daily by AWS regardless of this setting) and click Add Source.
Live canvas screenshots for this integration require a real AWS S3 environment, so this guide shows the configuration screens only — the flow steps above work exactly like every other integration.
Good to know
- The fetcher first discovers which storage classes the bucket actually reports via
ListMetrics, then readsBucketSizeBytesper class andNumberOfObjects(underAllStorageTypes) with a 48-hour lookback — the card shows the per-class breakdown and when the daily sample was taken. - The request tier probes
AllRequestsunderFilterId: EntireBucket: no data means request metrics aren’t enabled, and those fields read as absent — never as a misleading zero. Error rates are computed from 4xx/5xx overAllRequests.
More Data & Storage integrations
See it on your own infrastructure
Book a demo and we will walk you through Topologix with your systems in mind: on our cloud, or self-hosted in your own network.