xiaohongshu
xiaohongshu
bigconfig-generator
Use this skill when creating or updating Bigeye monitoring configurations (bigconfig.yml files) for BigQuery tables. Works with metadata-manager skill.
Full skill instructions
Composable: Works with metadata-manager (for schema/metadata generation) and bigquery-etl-core (for conventions) When to use: Creating/updating Bigeye configurations, data quality monitoring
Generate and manage Bigeye monitoring configurations for BigQuery tables in the Mozilla bigquery-etl repository. Bigeye is Mozilla's data quality monitoring platform that checks for freshness, volume anomalies, null values, uniqueness violations, and custom business logic validation.
This skill helps configure monitoring through:
Official Documentation:
BEFORE creating monitoring configurations, READ these resources:
Existing Collections: READ references/existing_collections.md
Monitoring Patterns: READ references/monitoring_patterns.md
When adding monitoring to metadata.yaml, READ and COPY from these templates:
Basic monitoring (most tables)? → READ assets/metadata_monitoring_basic.yaml
Critical table (high priority)? → READ assets/metadata_monitoring_critical.yaml
View (non-partitioned)? → READ assets/metadata_monitoring_view.yaml
For custom validation rules:
assets/custom_rules_template.sql
Use this skill when:
Integration with metadata-manager: When metadata-manager creates new tables, it should ask the user: "Would you like to enable Bigeye monitoring for this table?" If yes, invoke this skill.
Manual deployment is BLOCKED for safety reasons.
If a user asks to run ./bqetl monitoring deploy, warn them:
⚠️ Manual deployment can accidentally delete existing metrics. The recommended workflow is to commit your changes and let the
bqetl_artifact_deploymentDAG deploy automatically. Manual deployment is disabled in this environment.If you need to manually deploy for testing purposes, you'll need to:
- Ensure you have
BIGEYE_API_KEYset- Understand that deploying only specific tables can remove metrics from other tables
- Use
--dry-runfirst to review changes- Contact Data Engineering if you're unsure
Proceed with caution - this can affect production monitoring.
The standard workflow (update → validate → commit → push) is safe and recommended.
BIGEYE_API_KEY environment variable must be setAlways prefer official documentation over this skill's references:
./bqetl monitoring --help or the monitoring.py source codeWhen to use WebFetch:
This skill focuses on workflow and decision-making rather than being a comprehensive bigConfig reference.
Ask the user what type of monitoring they need:
For new tables created by metadata-manager: "Would you like to enable Bigeye monitoring for this table? This can check for:
For existing tables: "What type of monitoring would you like to configure?
After determining monitoring type, check existing collections:
Before configuring metadata.yaml, READ references/existing_collections.md to:
Ask the user: "Based on existing configurations, would you like to use the [Collection Name] collection with [notification channels]? Or create a new collection?"
Add a monitoring section to metadata.yaml based on table type:
assets/metadata_monitoring_basic.yaml - Freshness + volume, non-blockingassets/metadata_monitoring_critical.yaml - Blocking failures, collection assignmentassets/metadata_monitoring_view.yaml - Requires explicit partition_columnKey settings:
blocking: true - Failures block deployments (use for critical tables)collection - Groups related tables, configures alertspartition_column - Required for views (or null if non-partitioned)Use the bqetl CLI to auto-generate bigconfig.yml from metadata.yaml:
./bqetl monitoring update <dataset>.<table>
This command:
What gets generated:
freshness.enabled: true → Adds freshness metricvolume.enabled: true → Adds volume metricblocking: true → Uses freshness_fail/volume_fail variantscollection specified → Groups under that collectionManually edit the generated bigconfig.yml for advanced use cases:
Column-level validation: Add tag_deployments section with column_selectors and metrics (is_not_null, is_unique, is_valid_client_id, etc.). See sql/bigconfig.yml for all available saved metrics.
Lookback windows: Adjust how far back Bigeye scans data (0=latest partition, 7=last 7 days, 28=last 28 days). Use longer lookback for tables with sporadic updates.
When to customize: Column-specific validation, custom thresholds, infrequent updates, different notification channels per metric.
See references/monitoring_patterns.md for examples.
For complex business logic validation (cross-column checks, format validation, business rules), create bigeye_custom_rules.sql in the table directory.
Use template: assets/custom_rules_template.sql contains structure, JSON configuration block, and examples.
Key points:
{{ project_id }}, {{ dataset_id }}, {{ table_name }}Validate bigconfig.yml syntax and configuration:
./bqetl monitoring validate <dataset>.<table>
What it checks:
Common validation errors:
partition_column and partition_column_set: true for viewsRecommended approach: Automatic deployment via Airflow DAG
After validation passes, commit and push your changes to the main branch:
git add sql/<project>/<dataset>/<table>/
git commit -m "Add Bigeye monitoring for <dataset>.<table>"
git push origin main
What happens automatically:
bqetl_artifact_deployment DAG detects bigconfig.yml changespublish_bigeye_monitors task deploys all bigConfig filesThis approach is recommended because:
BIGEYE_API_KEY locallyAlternative: Manual deployment (discouraged)
⚠️ CAUTION: Avoid running
./bqetl monitoring deploylocally unless absolutely necessary. Local deployment can accidentally delete metrics if config files are not included. See docs/reference/bigconfig.md for details.
If you must deploy manually (e.g., for testing in non-production):
./bqetl monitoring deploy <dataset>.<table> --dry-run # Review changes first
./bqetl monitoring deploy <dataset>.<table> # Requires BIGEYE_API_KEY
After deployment, you can manually trigger monitoring checks to verify configuration:
./bqetl monitoring run <dataset>.<table> # Requires BIGEYE_API_KEY
What it does:
When to test:
Alternative: Wait for Bigeye's scheduled runs or check results in the Bigeye UI
Standard workflow for all patterns:
monitoring section in metadata.yaml./bqetl monitoring update <dataset>.<table>./bqetl monitoring validate <dataset>.<table>Use assets/metadata_monitoring_basic.yaml template. Enables freshness and volume checks, non-blocking.
Use assets/metadata_monitoring_critical.yaml template. Sets blocking: true and assigns to "Operational Checks" collection.
Use assets/metadata_monitoring_view.yaml template. Must set partition_column and partition_column_set: true.
After generating basic bigconfig.yml, manually edit to add column-specific metrics. See sql/bigconfig.yml for available saved metrics (is_not_null, is_unique, is_valid_client_id, etc.).
Create bigeye_custom_rules.sql using assets/custom_rules_template.sql. Query must return percentage (0-100) or count. Configure via JSON comment block.
When metadata-manager creates new tables:
Workflow:
./bqetl monitoring updateDeployment delays:
bqetl_artifact_deployment DAG"Table does not exist in Bigeye"
"Partition column does not exist"
partition_column matches actual column in schema.yamlManual deployment errors (if using ./bqetl monitoring deploy): "Bigeye API token needs to be set"
BIGEYE_API_KEY environment variable"Duplicate deployments"
"Invalid metric"
"Partition column needs to be configured"
partition_column and partition_column_set: true to metadata.yamlFreshness checks failing:
Volume checks failing:
Always enable:
Consider enabling:
Skip monitoring:
Use blocking: true when:
Use blocking: false when:
Use consistent naming:
Common collections:
Best practices:
Official Documentation (Always Preferred):
Quick Reference (This Skill):
references/monitoring_patterns.md - Workflow guidance and common patterns (may be outdated)assets/metadata_monitoring_basic.yaml - Basic monitoring config templateassets/metadata_monitoring_critical.yaml - Critical table config templateassets/metadata_monitoring_view.yaml - View monitoring config templateassets/custom_rules_template.sql - Custom SQL rule templatePriority: When in doubt, read docs/reference/bigconfig.md or use WebFetch on the online docs.
# Refresh the collections reference file (run periodically to stay current)
python3 .claude/skills/bigconfig-generator/scripts/extract_collections.py
# Generate/update bigconfig.yml from metadata.yaml
./bqetl monitoring update <dataset>.<table>
# Validate bigconfig.yml syntax and configuration
./bqetl monitoring validate <dataset>.<table>
# ⚠️ DISCOURAGED: Manual deployment (prefer automatic DAG deployment)
./bqetl monitoring deploy <dataset>.<table> --dry-run # Requires BIGEYE_API_KEY
./bqetl monitoring deploy <dataset>.<table> # Requires BIGEYE_API_KEY
# Manually trigger monitoring checks (requires BIGEYE_API_KEY)
./bqetl monitoring run <dataset>.<table>
# Delete deployed monitoring (requires BIGEYE_API_KEY)
./bqetl monitoring delete <dataset>.<table> --metrics --custom-sql
Recommended workflow:
references/existing_collections.md for appropriate collection/channelsmonitoring updatemonitoring validatebqetl_artifact_deployment DAG automatically deploys changesxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience