
Iceberg Lakehouse Observability: Monitor Table Health, Costs, and Performance
Apache Iceberg does not ship with observability. The seven pillars of lakehouse monitoring and how a control plane makes it operational.
Observability & Governance
Small-file ratio, snapshot backlog, manifest count, partition skew, and which engine is scanning what — one dashboard. Set retention and compaction rules once; they apply on every catalog.
Open and runs on your stack
LakeOps| Operation | Table | Duration | Impact | Time | Status |
|---|---|---|---|---|---|
| Compact Data Files | customer_orders orders | 4s | 1.24 TB, 16 → 1 files | 57 minutes ago | SUCCESS |
| Expire Snapshots | payment_transactions payments | 27s | 8.2 TB | 4 hours ago | SUCCESS |
| Expire Snapshots | inventory_snapshots_20250702 warehouse | 3s | 2.1 TB | 4 hours ago | SUCCESS |
| Rewrite Manifests | raw_clickstream analytics | 1.9s | 3 → 1 manifests | 5 hours ago | SUCCESS |
| Compact Data Files | product_catalog products | 6m 11.3s | 3,008 → 1,256 files | 6 hours ago | SUCCESS |
In the product
Start with Critical / Warning / Healthy counts. Drill into file histograms, snapshot growth, and which columns queries actually filter on.
See how AI agents use these signals via MCPLake-wide dashboard
After catalogs connect, LakeOps discovers every table and reads Iceberg metadata continuously. The dashboard summarizes health tiers, active insights, and lake scope — so platform teams start triage without writing SQL.

Table health classification
Health is computed from Iceberg signals teams already care about: file count and size distribution, manifest depth, snapshot accumulation, delete-file ratio, partition skew, and sort-order alignment with real query patterns.

Events & audit trail
Every maintenance operation — compaction, expiration, orphan removal, manifest rewrite — is logged lake-wide and per table with duration, impact, and status. Observability closes the loop: see the problem, act, verify the outcome.

Actionable insights
Insights evaluate tables on a schedule and raise prioritized findings — each tied to a table, severity, and recommended next step. Remediate manually or let policies act on the same signal.

Table-level insights
Beyond lake-wide alerts, every table surfaces its own insights — manifest count vs. threshold, partition skew, small-file accumulation, and more. Each finding links directly to the affected table with severity and recommended action.

Explore & metrics
The Explore view and Metrics tab expose the full structural picture: records over time, active files, stale files, delete files, file-size histograms, and snapshot-level growth — the same data you would pull from Iceberg metadata tables, pre-joined and charted.

Partition drill-down
The Partitions view breaks down file counts, byte distribution, and delete-file concentration per partition key. Spot the partitions driving planning timeouts or runaway compaction jobs — and act before they escalate.

Cross-engine telemetry
LakeOps ingests query telemetry from the engines in your stack. Field-access analysis shows which columns appear in filters and joins; engine-level views show latency and load — so observability informs both triage and downstream optimization.

Governance
Set defaults at the catalog. Override per table. Every run is logged. New tables inherit the same rules.
Declarative policies
Define compaction targets, snapshot retention, orphan cleanup thresholds, and manifest optimization rules at organization, catalog, namespace, or individual table scope. Policies cascade with inheritance — set defaults at the top, override where needed.
Manage maintenance, configuration, and lifecycle policies for your data lakehouse
| On | Policy | Type | Next Run | Last Run | Updated | Actions |
|---|---|---|---|---|---|---|
orders_critical | Compact Files | Apr 25, 2026, 8:12 AM | Apr 25, 2026, 03:05 AM | Feb 01, 2025, 3:46 PM | ••• | |
payments_compact | Compact Files | Feb 15, 2026, 12:06 AM | Feb 1, 2025, 02:18 PM | Feb 5, 2025, 4:03 PM | ••• | |
Remove orphan files (e-ip...) For all tables in all catalogs every 7 days | Orphan Files | Apr 25, 2026, 8:12 AM | Apr 25, 2026, 04:07 PM | Jun 23, 2025, 04:01 PM | ••• | |
clickstream_cdc_events_p | Expire Snapshots | Apr 25, 2026, 12:03 AM | Apr 25, 2026, 03:05 AM | Jan 28, 2025, 03:25 PM | ••• | |
sessions_cdc_events_p | Expire Snapshots | Apr 25, 2026, 12:03 AM | Apr 26, 2026, 03:05 AM | Jun 26, 2025, 11:11 PM | ••• | |
global_expire_snapshots Runs snapshot expiration on all tables once a day | Expire Snapshots | Apr 26, 2026, 1:18 PM | Apr 07, 2026, 01:08 PM | Mar 14, 2026, 8:42 AM | ••• | |
manifest_rewrite_weekly Rewrite manifests for all critical tables weekly | Rewrite Manifests | Apr 28, 2026, 2:00 AM | Apr 21, 2026, 02:00 AM | Mar 10, 2026, 9:15 AM | ••• | |
staging_config | Configuration | — | — | Dec 31, 2025, 02:45 PM | ••• |
Retention & compliance
Set snapshot retention periods, GDPR deletion schedules, and storage tier policies. LakeOps enforces retention rules continuously across every table — no manual scripts, no forgotten cleanup jobs.
Snapshot retention
Count max: 50
GDPR deletion
Full audit trail
Orphan cleanup
Safety window active
Cross-catalog enforcement
Whether you run AWS Glue, Polaris, Nessie, Gravitino, or Lakekeeper — governance policies apply uniformly. No per-catalog scripts, no engine-specific maintenance logic.
AWS Glue
1,240 tables
Polaris
860 tables
Nessie
430 tables
Gravitino
215 tables
One policy, all catalogs
Zero drift between governance and table state
Lakehouse Control Plane
Health scores and policies sit next to compaction, snapshot expiry, query routing, and MCP access — same catalogs, same tables.
| Table | NS | Size | Status |
|---|---|---|---|
| customer_orders | orders | 1.24 TB | HEALTHY |
| payment_transactions | payments | 860 GB | WARNING |
| raw_clickstream | analytics | 4.6 TB | CRITICAL |
| product_catalog | products | 42 GB | HEALTHY |
| user_sessions | analytics | 1.9 TB | WARNING |
| inventory_levels | operations | 320 GB | HEALTHY |
| shipping_events | logistics | 580 GB | HEALTHY |
| search_query_logs | analytics | 3.2 TB | CRITICAL |
Learns from query patterns and table signals to decide what to optimize, when, and how — no schedules, no manual tuning.
The gap
Without continuous observability and policy enforcement, tables degrade silently and governance depends on tribal knowledge instead of automated control.
Metadata tables expose snapshots, files, and manifests — but no native health scores, alerting, or lake-wide dashboards. Platform teams run one-off Spark SQL until something breaks.
Object-storage metrics, engine query UIs, and Iceberg catalog APIs each tell part of the story. Correlating a slow dashboard with manifest bloat takes days of manual investigation.
Small files, manifest sprawl, and snapshot buildup compound over weeks. Planning time grows, scans widen, and nobody notices until analysts or agents report failures.
Trino, Spark, Snowflake, Athena, DuckDB, and Flink each see the same tables differently. Without unified telemetry, you cannot tell which engine or table is actually driving cost and latency.
Resources

Apache Iceberg does not ship with observability. The seven pillars of lakehouse monitoring and how a control plane makes it operational.

Data quality and table health are different failure modes — one breaks business trust, the other breaks performance silently. A practical guide to metrics, monitoring, and automated remediation.

Iceberg tables degrade silently in production. A comprehensive guide to the five maintenance operations, why sequencing matters, and how to automate the full lifecycle.
LakeOps reads Iceberg metadata from every connected catalog, classifies table health, and surfaces insights — no agents, no pipeline changes, no manual SQL to get started.
Only metadata is processed — never retained or stored.
Telemetry reveals table health and actions needed.
Autopilot, manual approval, or policy-driven.