Skip to content

Commit fa53a8b

Browse files
feat: add databricks delta monitoring dashboard
1 parent 4f831df commit fa53a8b

10 files changed

Lines changed: 757 additions & 4 deletions

File tree

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,26 @@ depot ci run --workflow .depot/workflows/release.yml
162162
depot ci run --workflow .depot/workflows/release-rc.yml
163163
```
164164

165+
## Monitoring
166+
167+
The Delta path now has a Lakeview dashboard template and publish flow for a
168+
high-level sync view:
169+
170+
```bash
171+
just databricks-delta-publish-dashboard DEFAULT <warehouse-id>
172+
```
173+
174+
The first version focuses on:
175+
176+
- latest checkpoint freshness
177+
- bronze table count
178+
- silver table count
179+
- recent checkpoint history
180+
- bronze and silver table inventory
181+
182+
Silver remaining empty is expected until you deploy a real Lakeflow `AUTO CDC`
183+
pipeline that reads bronze and materializes silver.
184+
165185
## Suggested Screenshots
166186

167187
If you want to show this repo working in a talk or video, start with:
@@ -183,6 +203,7 @@ There is a more detailed capture list in [docs/demo-storyboard.md](docs/demo-sto
183203

184204
- [Ask DeepWiki about this repo](https://deepwiki.com/shpitdev/convex-sync-kit)
185205
- [docs/architecture.md](docs/architecture.md)
206+
- [docs/monitoring.md](docs/monitoring.md)
186207
- [docs/public-reference-map.md](docs/public-reference-map.md)
187208
- [docs/release-artifacts.md](docs/release-artifacts.md)
188209
- [docs/demo-storyboard.md](docs/demo-storyboard.md)

docs/monitoring.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Monitoring
2+
3+
## Databricks Delta Dashboard
4+
5+
This repo now includes a Lakeview dashboard template for the Databricks Delta
6+
path:
7+
8+
- `platform/databricks/delta/dashboards/convex_sync_overview.lvdash.json.tmpl`
9+
- `platform/databricks/delta/dashboards/dashboards.json`
10+
11+
Publish it with:
12+
13+
```bash
14+
just databricks-delta-publish-dashboard DEFAULT <warehouse_id>
15+
```
16+
17+
If you pass an existing dashboard ID to the publish script, it updates and
18+
re-publishes that dashboard. Otherwise it creates a new one and prints the new
19+
dashboard ID.
20+
21+
The first dashboard focuses on:
22+
23+
- latest checkpoint freshness
24+
- bronze table count
25+
- silver table count
26+
- recent checkpoint history
27+
- bronze and silver table inventory
28+
29+
## Why Silver Is Empty
30+
31+
Silver is still expected to be empty until a real Lakeflow `AUTO CDC` pipeline
32+
is deployed.
33+
34+
What exists today:
35+
36+
- control schema and checkpoint tables
37+
- bronze CDC landing
38+
- Delta extractor job
39+
- Lakeflow SQL template for per-table `AUTO CDC`
40+
41+
What is still missing:
42+
43+
- a source-aware pipeline generation and deploy path that turns the bronze
44+
tables for a specific source into a real deployed Lakeflow pipeline
45+
46+
The generic blocker is not Lakeflow itself. It is the missing code path that:
47+
48+
1. enumerates the bronze tables for one source
49+
2. decides the silver target names consistently
50+
3. renders the per-table `AUTO CDC` SQL
51+
4. deploys or updates the pipeline repeatably

justfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ databricks-delta-sync-secret *args:
8181
databricks-delta-bootstrap warehouse_id profile="DEFAULT":
8282
./scripts/bootstrap-databricks-delta.sh {{profile}} {{warehouse_id}}
8383

84+
databricks-delta-render-dashboard output_file:
85+
./scripts/render-databricks-delta-dashboard.sh {{output_file}}
86+
87+
databricks-delta-publish-dashboard profile warehouse_id dashboard_id="":
88+
./scripts/publish-databricks-delta-dashboard.sh {{profile}} {{warehouse_id}} {{dashboard_id}}
89+
8490
databricks-delta-deploy profile="DEFAULT" target="dev":
8591
./scripts/deploy-databricks-delta.sh {{profile}} {{target}}
8692

platform/databricks/delta/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ cannot overwrite key, ordering, or delete semantics.
2929

3030
- `databricks.yml`: Databricks bundle entrypoint
3131
- `resources/`: Databricks bundle resources for the extractor job
32+
- `dashboards/`: Lakeview dashboard templates and metadata
3233
- `extractor/convex_cdc_job.py`: Databricks job entrypoint
3334
- `sql/bootstrap/`: ordered bootstrap DDL for configurable control/bronze/silver schemas and checkpoint table
3435
- `lakeflow/bronze_to_silver_template.sql`: per-table Lakeflow template
@@ -39,6 +40,8 @@ Bundle lifecycle:
3940

4041
- `scripts/ensure-databricks-delta-secret.sh <profile> [scope] [key]`
4142
- `scripts/bootstrap-databricks-delta.sh <profile> <warehouse_id>`
43+
- `scripts/render-databricks-delta-dashboard.sh <output_file>`
44+
- `scripts/publish-databricks-delta-dashboard.sh <profile> <warehouse_id> [dashboard_id]`
4245
- `scripts/deploy-databricks-delta.sh <profile> <target>`
4346
- `scripts/run-databricks-delta-job.sh <profile> <target> [job_key]`
4447
- `scripts/run-databricks-delta-smoke.sh <profile> <target> <warehouse_id>`
@@ -105,6 +108,7 @@ Recommended operator entrypoints:
105108
```bash
106109
just databricks-delta-sync-secret
107110
just databricks-delta-bootstrap <warehouse_id>
111+
just databricks-delta-publish-dashboard DEFAULT <warehouse_id>
108112
just databricks-delta-deploy
109113
just databricks-delta-run
110114
just databricks-delta-smoke <warehouse_id>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Databricks Delta Dashboards
2+
3+
Lakeview dashboard assets for monitoring the Convex sync at a high level.
4+
5+
Files:
6+
7+
- `dashboards.json`: lightweight manifest for the included dashboards
8+
- `convex_sync_overview.lvdash.json.tmpl`: renderable Lakeview dashboard template
9+
10+
Use the helper scripts:
11+
12+
```bash
13+
./scripts/render-databricks-delta-dashboard.sh /tmp/convex-sync-overview.lvdash.json
14+
./scripts/publish-databricks-delta-dashboard.sh DEFAULT <warehouse_id>
15+
```
16+
17+
If you pass an existing dashboard ID to the publish script, it updates and
18+
re-publishes that dashboard. Otherwise it creates a new one and prints the
19+
dashboard ID.

0 commit comments

Comments
 (0)