fix(ingest/grafana): add exception handling (#14921)

This commit is contained in:
Aseem Bansal 2025-10-03 20:30:59 +05:30 committed by GitHub
parent cecb91b615
commit 1d0e3778a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,12 +8,14 @@ References:
- Dashboard JSON structure: https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/view-dashboard-json-model/
"""
import logging
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, ConfigDict, Field
from datahub.emitter.mcp_builder import ContainerKey
logger = logging.getLogger(__name__)
# Grafana-specific type definitions for better type safety
GrafanaQueryTarget = Dict[
str, Any
@ -89,7 +91,13 @@ class Dashboard(_GrafanaBaseModel):
def parse_obj(cls, data: Dict[str, Any]) -> "Dashboard":
"""Custom parsing to handle nested panel extraction."""
dashboard_data = data.get("dashboard", {})
panels = cls.extract_panels(dashboard_data.get("panels", []))
_panel_data = dashboard_data.get("panels", [])
try:
panels = cls.extract_panels(_panel_data)
except Exception as e:
logger.warning(
f"Error extracting panels from dashboard for dashboard panels {_panel_data} : {e}"
)
# Extract meta.folderId from nested structure
meta = dashboard_data.get("meta", {})