Reference · built on requestOperator by FibricIT & reliability

Storage Growth

Projects when each bucket, volume, and database fills from its size series and proposes a lifecycle rule, an archive move, or a resize.

About

Storage fills on a schedule nobody wrote down. Storage Growth reads the size series that already exist: BucketSizeBytes and NumberOfObjects, which Amazon S3 publishes to CloudWatch once a day per storage class, pg_database_size and pg_total_relation_size from PostgreSQL, and volume series from whichever Grafana data source holds them. It fits each series and projects the date it reaches its limit.

For each projection inside your horizon it proposes the smallest fix that fits. A log prefix gets a proposed S3 Lifecycle rule. A cold prefix gets a proposed archive move. A database volume gets a proposed resize as a Jira issue with the fill date and the series attached. You approve each one. The receipt keeps the projection and the outcome, so a wrong forecast is visible next month.

This is a reference listing. It documents what Fibric would read from Storage Growth and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • BucketSizeBytes and NumberOfObjects per bucket from the AWS/S3 namespace in CloudWatch, by StorageType such as StandardStorage or StandardIAStorage
  • Database and table sizes from PostgreSQL through pg_database_size, pg_total_relation_size, pg_table_size, and pg_indexes_size, sampled on a schedule
  • Tablespace sizes through pg_tablespace_size, and the volume each tablespace sits on
  • Volume and disk series through POST /api/ds/query against the Grafana data source that holds them
  • Existing S3 Lifecycle configurations on each bucket, so a prefix already expiring is not proposed twice
  • Open Jira issues about the same volume or bucket, so a resize already requested is linked rather than repeated

Proposed actions

  • Target capability: propose an S3 Lifecycle rule on a prefix, transition or expiration, naming the storage class and the object count it affects
  • Target capability: propose copying a cold prefix to an archive prefix or bucket you designate, with the byte count and the destination storage class
  • Target capability: propose a Jira issue for a volume or database resize, carrying the fill date, the series, and the free space when written
  • Target capability: propose a Grafana alert rule through the provisioning API that fires when a series crosses the fill-date threshold

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Expire application logs before the bucket bill grows

    A log prefix whose BucketSizeBytes climbs each day gets a proposed Lifecycle rule: transition to S3 Standard-IA after the age you set, expiration later. The proposal lists the objects already past each age.

    With Amazon S3, Amazon CloudWatch

  • Resize a database volume before WAL runs out of room

    When pg_database_size and the volume series in Grafana project a full disk inside your horizon, the operator files a proposed Jira issue with the date, the series, and the tablespace option.

    With PostgreSQL, Grafana, Jira

  • Move a cold bucket to archive storage

    A bucket with steady NumberOfObjects and no request metrics gets a proposed copy to an archive prefix, or a Lifecycle transition to S3 Glacier Flexible Retrieval, with the retrieval terms restated in the proposal.

    With Amazon S3, Amazon CloudWatch

Requirements

  • Amazon S3 buckets with a CloudWatch read grant for the AWS/S3 daily storage metrics, and s3:PutLifecycleConfiguration where rules are to be applied
  • A PostgreSQL role allowed to run the size functions on the databases you watch
  • A Grafana service account token with datasources:read, and alerting provisioning rights if rules are proposed
  • A ceiling per target: the volume size, the bucket budget, or the disk behind the database, since none of these systems reports its own
Authentication
Reads metrics with the CloudWatch, PostgreSQL, and Grafana grants you attach, and writes lifecycle rules or issues only with the S3 and Jira grants you approve.

Limits

  • S3 daily storage metrics are best effort. A day's point can arrive late or not at all, so each projection states its point count.
  • PostgreSQL relpages is refreshed only by VACUUM, ANALYZE, and some DDL. The size functions are read instead, but bloat reads as growth until vacuumed.
  • An S3 Lifecycle rule applies to existing objects as well as new ones. A bucket policy cannot stop it. Each proposal names the objects affected.
  • It never runs a resize, a VACUUM, or a delete. A resize is a Jira issue for a person. Lifecycle rules apply only on approval.

Access and pricing

Reference listing. Fibric builds the operator under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.

Request Storage Growth ↗

Questions and answers

What do I approve?
One proposal per bucket, volume, or database: a Lifecycle rule with its prefix and ages, an archive copy with its destination, a resize issue, or an alert rule. Each shows the size series, the fitted line, and the projected fill date. You edit the ages or the destination before approving.
What record is left?
A receipt per approval: the series and projection at the time, the rule or issue created, its id in S3, Jira, or Grafana, who approved, and how to remove the rule. Projections that missed are kept beside the ones that held.
Will it delete data?
Only through a Lifecycle expiration you approved, and the proposal names the prefix and the object count that expiration covers. It never issues a delete itself, never drops a table, and never changes a storage class outside an approved rule.
Ask about Storage Growth

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.