On this page
Monitoring configuration¶
Monitoring is configured by two top-level blocks in lhp.yaml: event_log
(inject an event-log table into every generated pipeline) and monitoring
(build a pipeline that consolidates and summarizes those event logs). String
fields support ${token} substitution from substitutions/<env>.yaml. A
plain ${name} still present after substitution in a value written to a
pipeline resource or the union notebook is LHP-CFG-010; the monitoring
job-config file is not checked.
When monitoring is enabled, lhp generate emits three artifacts: a union
notebook (monitoring/<env>/union_event_logs.py), a materialized-views-only
pipeline (generated/<env>/<pipeline_name>/monitoring.py), and a Databricks
job (resources/<pipeline_name>.job.yml — written directly under
resources/, not a resources/lhp/ subdirectory).
Quick lookup: Concurrency · Checkpoints · Materialized views · Job settings
See also
How-to guides: Enable pipeline monitoring and Adjust monitoring settings.
Minimal configuration¶
event_log:
catalog: "${catalog}"
schema: _meta
name_suffix: _event_log
monitoring:
checkpoint_path: "/Volumes/${catalog}/_meta/checkpoints/event_logs"
job_config_path: config/monitoring_job_config.yaml
The referenced job file must exist; a minimal file can contain
max_concurrent_runs: 1. See Monitoring job configuration for its complete contract.
Omitting both project blocks leaves monitoring unconfigured. Inside a supplied
block, enabled defaults to true.
Event log fields¶
The event_log block. Fields live under event_log: in lhp.yaml.
Field |
Type |
Default |
Description |
|---|---|---|---|
|
bool |
|
Set to |
|
string |
— |
Unity Catalog for event-log tables. Required when |
|
string |
— |
Schema for event-log tables. Required when |
|
string |
|
Prefix prepended to each generated event-log table name. |
|
string |
|
Suffix appended to each generated event-log table name. |
Per-pipeline table name is {name_prefix}{pipeline_name}{name_suffix}.
event_log:
catalog: "${catalog}"
schema: _meta
name_suffix: "_event_log"
Monitoring fields¶
The monitoring block. Fields live under monitoring: in lhp.yaml.
Monitoring requires event_log enabled.
Field |
Type |
Default |
Description |
|---|---|---|---|
|
bool |
|
When |
|
string |
|
Name of the generated pipeline, job, and the |
|
string |
inherits |
Override catalog for monitoring tables. |
|
string |
inherits |
Override schema for monitoring tables. |
|
string |
|
Delta table the union notebook appends into (created on first run). |
|
string |
|
Base path for streaming checkpoints; each pipeline gets |
|
string |
— |
Project-root-relative path to the job-config file (below). Required when |
|
integer |
|
|
|
list |
one default view |
Materialized-view definitions. See Materialized views. |
|
bool |
|
Add a |
Catalog and schema resolve as: monitoring.catalog / monitoring.schema
when set, otherwise inherited from event_log. The Delta table’s fully
qualified name is {catalog}.{schema}.{streaming_table}.
monitoring:
checkpoint_path: "/Volumes/${catalog}/_meta/checkpoints/event_logs"
job_config_path: "config/monitoring_job_config.yaml"
Materialized views¶
monitoring.materialized_views has three modes.
Value |
Behavior |
|---|---|
omitted or |
Generate the default |
|
No materialized views and no pipeline file; the job contains only the notebook task. |
explicit list |
Generate only the listed views, replacing the default. |
Each list entry is a mapping with these fields.
Field |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
View name, unique within the list. |
|
string |
One of |
Inline SQL query. Setting both |
|
string |
One of |
Project-root-relative path to a |
The default events_summary view (generated when materialized_views is
omitted) aggregates per-run status, timing, and row-count columns from the
union Delta table; its full column list is documented in the monitoring guide,
not repeated here.
monitoring:
checkpoint_path: "/Volumes/${catalog}/_meta/checkpoints/event_logs"
job_config_path: "config/monitoring_job_config.yaml"
materialized_views:
- name: error_events
sql: "SELECT * FROM all_pipelines_event_log WHERE event_type = 'error'"
- name: custom_analysis
sql_path: "sql/monitoring_custom_analysis.sql"
Job-config file¶
See Monitoring job configuration for the flat monitoring-job mapping, schedules, compute, notifications and permissions.
Validation errors¶
Code |
Trigger |
|---|---|
|
|
|
|
|
|
|
A plain |
|
At generate time, the resolved |
|
The monitoring job-config file is not valid YAML. |
Collection concurrency¶
monitoring.max_concurrent_streams sets the maximum number of concurrent
event-log collection streams in the union notebook. The default is 10;
accepted values are integers from 1 to 20. This is separate from
max_concurrent_runs in the monitoring job file, which limits whole job runs.
Checkpoint storage¶
monitoring.checkpoint_path is required when monitoring is enabled. Each
source pipeline uses {checkpoint_path}/{pipeline_name}/. Keep this path
stable to retain collection progress. A new path starts with new checkpoint
state; plan source retention and possible replay before changing it.
LHP generation does not migrate existing checkpoint state.
See Adjust monitoring settings to regenerate, review and deploy changes.