v0.9.0 #192
Polliog
announced in
Announcements
v0.9.0
#192
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
🌊 Logtide 0.9.0
This release brings three long-requested pillars to Logtide: a fully customizable dashboard system, proactive infrastructure monitoring with public status pages, and a structured log parsing pipeline.
✨ What's New
📊 Custom Dashboards (#151)
schema_version: 1ships with a migration framework in@logtide/sharedso future schema changes are applied automatically on read.config.projectIdbelongs to the requesting org, blocking data leaks via crafted YAML imports or stale references.🖥️ Service Health Monitoring and Status Pages (#152)
/status/:projectSlug): 45-day heartbeat bar grid, per-monitor uptime badge, overall status banner, light/dark mode toggle. Visibility is configurable per project - disabled (default), public, password-protected, or org-members-only.source: 'monitor', linked viamonitor_id, and dispatched through existing email/webhook notification channels.POST /api/v1/monitors/:id/heartbeataccepts both API key and session auth, rate-limited to 600 req/min.monitor_resultshypertable with 7-day compression, 30-day retention, and amonitor_uptime_dailycontinuous aggregate refreshed hourly./dashboard/monitoring): monitor list with project selector, create/edit/delete forms, detail page with uptime chart and recent checks, and a one-click heartbeat URL copy.🔩 Log Parsing and Enrichment Pipelines (#153)
%{PATTERN:field}and%{PATTERN:field:type}syntax with 22 built-in named patterns and optional type coercion (:int,:float).getForProjectcaches the resolved pipeline per project for 5 minutes, automatically invalidated on create/update/delete./dashboard/settings/pipelines): list, enable/disable toggle, create, edit, delete, and a live step builder for adding, reordering, and configuring parser, grok, and geoip steps.🔧 Improvements
🧭 Navigation
⚡ Performance and Correctness
POST /:id/panels/data): single round-trip fetches all panel data viaPromise.allSettled- individual panel errors do not fail the dashboard.Promise.allSettled.WHERE incident_id IS NULLguard to prevent duplicate incidents under concurrent checks.🐛 Bug Fixes
getPublicStatusnow filters bystatus_page_publicflag instead of returning the first project matching the slug, preventing cross-org data leaks.createMonitoratomicity: monitor andmonitor_statusinserts are now wrapped indb.transaction()to prevent orphaned rows on partial failure.processCheckResultnow receives status data from the already-fetched monitor object instead of issuing a second SELECT.http:///https://, TCP must contain:).$derived.byfix: monitor detail page uptime calculation now uses$derived.by()instead of$derived(() => ...)for correct Svelte 5 reactivity.@constplacement: replaced invalid{@const}inside<div>elements with{#if}/{:else}blocks for Svelte 5 compatibility.uptimePcttype coercion: PostgresROUND()returns numeric as string - status page now coerces to number before calling.toFixed().failureThresholdaligned: frontend form default corrected from 3 to 2 to match the backend default.mapMonitortyped: replacedanyparameter with a properMonitorWithStatusRowinterface for compile-time safety.SELECT WHERE user_id AND organization_idquery instead of fetching all user orgs and filtering in JS.Full Changelog: v0.8.7...v0.9.0
This discussion was created from the release v0.9.0.
Beta Was this translation helpful? Give feedback.
All reactions