AppStatus Documentation Hub for Production Operations

Docs > Platform Observability > Getting Started with Storage & Database

Getting Started with Storage & Database

Overview

This guide introduces AppStatus Storage & Data Layer and covers:

  • Disk capacity and growth rate per volume
  • Database statements ranked by total time, not single-run time
  • Cache hit ratio as an early warning for latency
  • Message queue depth, lag and drain estimate
  • Alerting on trend, not just on a single threshold

What is Storage & Data Layer in AppStatus?

Storage covers the stateful half of your stack: the disks that fill up, the queries that get slower as data grows, and the queues that back up when a consumer falls behind.

Database statements are normalised before ranking, so one slow query shape appears as a single row with its total cost, rather than thousands of near-identical entries you have to group by eye.

Key capabilities:

  • Volume capacity with growth rate, not just percentage full
  • Query performance ranked by total time across all executions
  • Cache hit ratio trend per database
  • Queue depth and consumer lag with a drain estimate
  • A trace-derived query view that needs nothing installed on the database

What you will see

What the slow-query view looks like

app.appstatus.ioSample data
StatementCallsTotal timeMeanShare
SELECT … FROM orders WHERE user_id = ?1.2M48 min2.4 ms31%
UPDATE sessions SET seen_at = ?4.8M31 min0.4 ms20%
SELECT … FROM products JOIN … 18k22 min73 ms14%
DELETE FROM audit_log WHERE …9611 min6.9 s7%

Scroll the table sideways to see every column.

The top row is fast per call and still your biggest cost. Rank by total time, not mean.

Troubleshooting

A disk alert fires at 80% every week and nothing happens

Alert on growth rate as well as absolute usage. A volume steady at 80% is fine; one that climbed from 40% in three days needs attention even though it is at the same number.

Queue depth is high but nothing seems broken

Check lag and the drain estimate. A queue that is deep but draining steadily is healthy — one that is shallow and growing is not. Depth alone does not tell you which you have.

Query latency rose with no code change

Look at cache hit ratio first. A falling ratio as data grows produces exactly this — slower queries with identical SQL — and it predicts the problem before users feel it.

Operational Guidance

  • Query statements are normalised before ranking, so one slow shape shows as one row, not thousands.
  • A falling cache hit ratio predicts a latency problem before users feel it.
  • A queue that is deep but draining is healthy; one that is shallow and growing is not.

Step-by-Step Setup

Storage covers three different things that fail differently — disks, queries and queues. Set each one up against trend rather than a single number, because all three warn you well before they break if you are measuring the right thing.

Before you start

  • The agent installed for disk metrics
  • A connected database or queue for the other views
  1. 1

    Confirm volumes report

    Open the storage view and confirm each host lists its volumes with usage and growth.

    WhereStorage → Volumes
  2. 2

    Alert on growth, not just usage

    Set capacity alerts on rate of change alongside absolute percentage. A volume steady at 80% is fine; one that climbed from 40% in three days is not, and a percentage-only alert cannot tell them apart.

    WhereStorage → Thresholds
    Tip

    This is the single change that stops disk alerts from being ignored.

  3. 3

    Review the slow-query list

    Open the query view and read it ranked by total time. Statements are normalised first, so one slow shape appears once with its true total cost rather than as thousands of near-identical rows.

    WhereStorage → Queries
  4. 4

    Add queue thresholds

    For anything with a consumer, alert on sustained depth with a rising trend rather than on a single spike. Compare against lag — deep but draining is healthy, shallow but growing is not.

    WhereStorage → Queues

Configuration Options

Every option you can set, what each choice means, and what to pick. Use this as a reference while you fill in the form.

What to alert on

FieldOptionsWhat it doesRecommended
Volume usagePercentageHow full a disk is.Pair with growth rate or it will be ignored.
Growth ratePer dayHow fast it is filling.The number that actually predicts an outage.
Query rankingTotal / mean timeHow slow statements are ordered.Total time. A fast query run millions of times is your real cost.
Queue lagMessages / timeHow far consumers trail producers.Lag matters more than depth for streaming systems.

Feature Reference

Every feature, where to find it in the app, and what it does. Use this when you know what you want to do but not where it lives.

FeatureWhere in appDescription
Volume capacityStorage → VolumesUsage and growth rate per mount.
Query performanceStorage → QueriesNormalised statements ranked by total time, with cache hit ratio.
Queue healthStorage → QueuesDepth, lag and an estimate of how long a backlog takes to drain.
Trace-derived queriesAPM → traceQuery timing from traces, needing nothing installed on the database.

Next Steps

Continue building your monitoring stack: