From efc22be9644fb2083eef655744c7b5e65890f87e Mon Sep 17 00:00:00 2001 From: Simon Gurcke Date: Wed, 22 Apr 2026 22:00:42 +1000 Subject: [PATCH 1/3] Add p90 and p99 response time metrics --- skills/apitally-cli/references/commands.md | 2 ++ skills/apitally-cli/references/duckdb_tables.md | 2 ++ src/main.rs | 5 ++--- src/metrics.rs | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/skills/apitally-cli/references/commands.md b/skills/apitally-cli/references/commands.md index 8b99ecf..20acd90 100644 --- a/skills/apitally-cli/references/commands.md +++ b/skills/apitally-cli/references/commands.md @@ -119,7 +119,9 @@ Fetch aggregated metrics for an app. Outputs NDJSON to stdout by default. | `error_rate` | float | Ratio of errors to total requests | | `response_time_p50` | integer | 50th percentile response time (ms) | | `response_time_p75` | integer | 75th percentile response time (ms) | +| `response_time_p90` | integer | 90th percentile response time (ms) | | `response_time_p95` | integer | 95th percentile response time (ms) | +| `response_time_p99` | integer | 99th percentile response time (ms) | ### Group-by fields diff --git a/skills/apitally-cli/references/duckdb_tables.md b/skills/apitally-cli/references/duckdb_tables.md index 7e3ca62..b128301 100644 --- a/skills/apitally-cli/references/duckdb_tables.md +++ b/skills/apitally-cli/references/duckdb_tables.md @@ -77,7 +77,9 @@ CREATE TABLE metrics ( error_rate DOUBLE, response_time_p50 INTEGER, -- milliseconds response_time_p75 INTEGER, -- milliseconds + response_time_p90 INTEGER, -- milliseconds response_time_p95 INTEGER -- milliseconds + response_time_p99 INTEGER -- milliseconds ); ``` diff --git a/src/main.rs b/src/main.rs index 480f9ca..ee58f94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -148,9 +148,8 @@ enum Command { /// JSON array or comma-separated list of metric names to include /// - /// Available metrics: requests, requests_per_minute, bytes_received, - /// bytes_sent, client_errors, server_errors, error_rate, - /// response_time_p50, response_time_p75, response_time_p95. + /// Available metrics: requests, requests_per_minute, bytes_received, bytes_sent, client_errors, server_errors, error_rate, + /// response_time_p50, response_time_p75, response_time_p90, response_time_p95, response_time_p99. #[arg(long)] metrics: String, diff --git a/src/metrics.rs b/src/metrics.rs index f7c6507..45c0ada 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -28,7 +28,9 @@ pub(crate) fn ensure_metrics_table(conn: &duckdb::Connection) -> Result<()> { error_rate DOUBLE, response_time_p50 INTEGER, response_time_p75 INTEGER, - response_time_p95 INTEGER + response_time_p90 INTEGER, + response_time_p95 INTEGER, + response_time_p99 INTEGER, )", )?; Ok(()) From b85247b09b0ba310d59ef7a26450c5233e0f5dca Mon Sep 17 00:00:00 2001 From: Simon Gurcke Date: Wed, 22 Apr 2026 22:06:18 +1000 Subject: [PATCH 2/3] Fix --- skills/apitally-cli/references/duckdb_tables.md | 2 +- src/metrics.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/apitally-cli/references/duckdb_tables.md b/skills/apitally-cli/references/duckdb_tables.md index b128301..c53d482 100644 --- a/skills/apitally-cli/references/duckdb_tables.md +++ b/skills/apitally-cli/references/duckdb_tables.md @@ -78,7 +78,7 @@ CREATE TABLE metrics ( response_time_p50 INTEGER, -- milliseconds response_time_p75 INTEGER, -- milliseconds response_time_p90 INTEGER, -- milliseconds - response_time_p95 INTEGER -- milliseconds + response_time_p95 INTEGER, -- milliseconds response_time_p99 INTEGER -- milliseconds ); ``` diff --git a/src/metrics.rs b/src/metrics.rs index 45c0ada..4d5821e 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -30,7 +30,7 @@ pub(crate) fn ensure_metrics_table(conn: &duckdb::Connection) -> Result<()> { response_time_p75 INTEGER, response_time_p90 INTEGER, response_time_p95 INTEGER, - response_time_p99 INTEGER, + response_time_p99 INTEGER )", )?; Ok(()) From b9b5c112caa3fafcbee7ee849258ca6960bd02f7 Mon Sep 17 00:00:00 2001 From: Simon Gurcke Date: Wed, 22 Apr 2026 22:20:01 +1000 Subject: [PATCH 3/3] Add migration --- src/metrics.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/metrics.rs b/src/metrics.rs index 4d5821e..96d3f85 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -31,7 +31,9 @@ pub(crate) fn ensure_metrics_table(conn: &duckdb::Connection) -> Result<()> { response_time_p90 INTEGER, response_time_p95 INTEGER, response_time_p99 INTEGER - )", + ); + ALTER TABLE metrics ADD COLUMN IF NOT EXISTS response_time_p90 INTEGER; + ALTER TABLE metrics ADD COLUMN IF NOT EXISTS response_time_p99 INTEGER;", )?; Ok(()) }