store more metadata

This commit is contained in:
nate 2026-04-09 23:53:02 +04:00
parent 9409f6ee02
commit 60b88dd4d4
5 changed files with 13 additions and 3 deletions

View File

@ -132,7 +132,7 @@ export const ingest = new Elysia()
`;
const [ping] = await sql`
INSERT INTO pings (monitor_id, checked_at, scheduled_at, jitter_ms, status_code, latency_ms, up, important, error, meta, region, run_id, cert_expiry_days)
INSERT INTO pings (monitor_id, checked_at, scheduled_at, jitter_ms, status_code, latency_ms, up, important, error, meta, region, run_id, cert_expiry_days, cert_issuer, response_size)
VALUES (
${body.monitor_id},
${checkedAt ?? sql`now()`},
@ -146,7 +146,9 @@ export const ingest = new Elysia()
${Object.keys(meta).length > 0 ? sql.json(meta) : null},
${region},
${body.run_id ?? null},
${body.cert_expiry_days ?? null}
${body.cert_expiry_days ?? null},
${body.cert_issuer ?? null},
${body.response_size ?? null}
)
RETURNING *
`;
@ -197,6 +199,7 @@ export const ingest = new Elysia()
error: t.Optional(t.Nullable(t.String())),
cert_expiry_days: t.Optional(t.Nullable(t.Number())),
cert_issuer: t.Optional(t.Nullable(t.String())),
response_size: t.Optional(t.Nullable(t.Number())),
meta: t.Optional(t.Any()),
region: t.Optional(t.Nullable(t.String())),
run_id: t.Optional(t.Nullable(t.String())),

View File

@ -106,6 +106,7 @@ pub async fn fetch_and_run(
error: Some(format!("timed out after {}ms", timeout_ms)),
cert_expiry_days: None,
cert_issuer: None,
response_size: None,
meta: None,
region: Some(region_owned.to_string()),
run_id: Some(run_id_owned.clone()),
@ -271,6 +272,7 @@ async fn run_check(client: &reqwest::Client, monitor: &Monitor, scheduled_at: Op
error: query_error,
cert_expiry_days,
cert_issuer,
response_size: Some(body.len()),
meta: Some(meta),
region: Some(region.to_string()),
run_id: Some(run_id.to_string()),

View File

@ -50,6 +50,7 @@ pub struct PingResult {
pub error: Option<String>,
pub cert_expiry_days: Option<i64>,
pub cert_issuer: Option<String>,
pub response_size: Option<usize>,
pub meta: Option<Value>,
pub region: Option<String>,
pub run_id: Option<String>,

View File

@ -60,7 +60,9 @@ export async function migrate(sql: any) {
meta JSONB,
region TEXT NOT NULL DEFAULT 'default',
run_id TEXT,
cert_expiry_days INTEGER
cert_expiry_days INTEGER,
cert_issuer TEXT,
response_size INTEGER
)
`;
await sql`CREATE INDEX IF NOT EXISTS idx_pings_monitor ON pings(monitor_id, checked_at DESC)`;

View File

@ -371,6 +371,8 @@
if (ping.region) html += `<div class="text-gray-500">Region</div><div class="text-gray-300">${escapeHtml(ping.region)}</div>`;
if (ping.run_id) html += `<div class="text-gray-500">Run ID</div><div class="text-gray-300 font-mono break-all">${escapeHtml(ping.run_id)}</div>`;
if (ping.cert_expiry_days != null) html += `<div class="text-gray-500">Cert expiry</div><div class="text-gray-300">${ping.cert_expiry_days} days</div>`;
if (ping.cert_issuer) html += `<div class="text-gray-500">Cert issuer</div><div class="text-gray-300">${escapeHtml(ping.cert_issuer)}</div>`;
if (ping.response_size != null) html += `<div class="text-gray-500">Response size</div><div class="text-gray-300">${ping.response_size >= 1024 ? (ping.response_size / 1024).toFixed(1) + ' KB' : ping.response_size + ' B'}</div>`;
html += '</div>';
// Error