DEV Community

Armaan Khan
Armaan Khan

Posted on

New config


CHART_CONFIGS = {
    # ===== ALL USERS AGGREGATE ANALYSIS =====
    "user_unoptimized_query": [
        {
            "chart_type": "bar",
            "x_axis": "USER_NAME",
            "y_axis": "WEIGHTED_SCORE",
            "title": "Top 20 Inefficient Users by Weighted Score",
            "color_field": "COST_STATUS",
            "colors": {
                "High Cost": "rgba(255, 99, 132, 0.6)",
                "Normal": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": [
                "TOTAL_QUERIES",
                "TOTAL_CREDITS",
                "FAILURE_CANCELLATION_RATE_PCT",
                "RECOMMENDATIONS",
            ],
        },
        {
            "chart_type": "stacked_bar",
            "x_axis": "USER_NAME",
            "y_axis": [
                "SPILLED_QUERIES",
                "PEAK_HOUR_LONG_RUNNING_QUERIES",
                "SELECT_STAR_QUERIES",
                "UNPARTITIONED_SCAN_QUERIES",
                "COMPLEX_JOIN_QUERIES",
                "HIGH_COMPILE_QUERIES",
            ],
            "stack_field": "Inefficiency Type",
            "title": "Cost-Related Inefficiency Breakdown by User",
            "colors": {
                "SPILLED_QUERIES": "rgba(255, 99, 132, 0.6)",
                "PEAK_HOUR_LONG_RUNNING_QUERIES": "rgba(255, 206, 86, 0.6)",
                "SELECT_STAR_QUERIES": "rgba(75, 192, 192, 0.6)",
                "UNPARTITIONED_SCAN_QUERIES": "rgba(153, 102, 255, 0.6)",
                "COMPLEX_JOIN_QUERIES": "rgba(199, 199, 199, 0.6)",
                "HIGH_COMPILE_QUERIES": "rgba(255, 99, 71, 0.6)",
            },
            "tooltip_fields": ["RECOMMENDATIONS", "TOTAL_CREDITS"],
        },
        {
            "chart_type": "grouped_bar",
            "x_axis": "USER_NAME",
            "y_axis": [
                "SPILLED_QUERIES",
                "PEAK_HOUR_LONG_RUNNING_QUERIES",
                "SELECT_STAR_QUERIES",
                "UNPARTITIONED_SCAN_QUERIES",
                "COMPLEX_JOIN_QUERIES",
                "HIGH_COMPILE_QUERIES",
            ],
            "stack_field": "Inefficiency Type",
            "title": "Cost-Related Inefficiency Comparison by User",
            "colors": {
                "SPILLED_QUERIES": "rgba(255, 99, 132, 0.6)",
                "PEAK_HOUR_LONG_RUNNING_QUERIES": "rgba(255, 206, 86, 0.6)",
                "SELECT_STAR_QUERIES": "rgba(75, 192, 192, 0.6)",
                "UNPARTITIONED_SCAN_QUERIES": "rgba(153, 102, 255, 0.6)",
                "COMPLEX_JOIN_QUERIES": "rgba(199, 199, 199, 0.6)",
                "HIGH_COMPILE_QUERIES": "rgba(255, 99, 71, 0.6)",
            },
            "tooltip_fields": ["RECOMMENDATIONS", "TOTAL_CREDITS"],
        },
        {
            "chart_type": "pie",
            "y_axis": [
                "OVER_PROVISIONED_QUERIES",
                "SELECT_STAR_QUERIES",
                "ZERO_RESULT_QUERIES",
                "UNTAGGED_QUERIES",
            ],
            "stack_field": "Inefficiency Type",
            "title": "Performance-Related Distribution of Inefficiency Types",
            "colors": [
                "rgba(54, 162, 235, 0.6)",
                "rgba(75, 192, 192, 0.6)",
                "rgba(83, 102, 255, 0.6)",
                "rgba(144, 238, 144, 0.6)",
            ],
            "tooltip_fields": ["USER_NAME", "TOTAL_CREDITS", "RECOMMENDATIONS"],
        },
        # Additional charts for all users analysis
        {
            "chart_type": "horizontal_bar",
            "x_axis": "TOTAL_CREDITS",
            "y_axis": "USER_NAME",
            "title": "Top Users by Total Credit Consumption",
            "color_field": "COST_STATUS",
            "colors": {
                "High Cost": "rgba(255, 99, 132, 0.6)",
                "Normal": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["WEIGHTED_SCORE", "TOTAL_QUERIES", "RECOMMENDATIONS"],
        },
        {
            "chart_type": "donut",
            "y_axis": [
                "SPILLED_QUERIES",
                "OVER_PROVISIONED_QUERIES", 
                "PEAK_HOUR_LONG_RUNNING_QUERIES",
                "SELECT_STAR_QUERIES",
                "UNPARTITIONED_SCAN_QUERIES",
                "REPEATED_QUERIES",
                "COMPLEX_JOIN_QUERIES",
                "ZERO_RESULT_QUERIES",
                "HIGH_COMPILE_QUERIES",
                "UNTAGGED_QUERIES",
            ],
            "title": "Overall Inefficiency Pattern Distribution",
            "colors": [
                "rgba(255, 99, 132, 0.6)",
                "rgba(54, 162, 235, 0.6)",
                "rgba(255, 206, 86, 0.6)",
                "rgba(75, 192, 192, 0.6)",
                "rgba(153, 102, 255, 0.6)",
                "rgba(255, 159, 64, 0.6)",
                "rgba(199, 199, 199, 0.6)",
                "rgba(83, 102, 255, 0.6)",
                "rgba(255, 99, 71, 0.6)",
                "rgba(144, 238, 144, 0.6)",
            ],
            "tooltip_fields": ["TOTAL_CREDITS"],
        }
    ],

    # Additional aggregate charts for other queries
    "bad_practice_impact_all": [
        {
            "chart_type": "bar",
            "x_axis": "USER_NAME",
            "y_axis": "TOTAL_COST_IMPACT",
            "color_field": "ISSUE_DESCRIPTION",
            "title": "Cost Impact of Bad Practices by User",
            "colors": {
                "Frequent SELECT * usage detected.": "rgba(255, 99, 132, 0.6)",
                "High unpartitioned scan frequency.": "rgba(54, 162, 235, 0.6)",
                "Repeated queries not leveraging caching.": "rgba(255, 206, 86, 0.6)",
                "Excessive complex query patterns.": "rgba(75, 192, 192, 0.6)",
                "Mixed bad practices.": "rgba(153, 102, 255, 0.6)",
            },
            "tooltip_fields": ["RECOMMENDATION", "TOTAL_QUERIES"],
        },
        {
            "chart_type": "stacked_bar",
            "x_axis": "USER_NAME",
            "y_axis": ["SELECT_STAR_QUERIES", "UNPARTITIONED_SCAN_QUERIES", "REPEATED_QUERIES", "COMPLEX_JOIN_QUERIES"],
            "title": "Bad Practice Query Count Breakdown by User",
            "colors": {
                "SELECT_STAR_QUERIES": "rgba(255, 99, 132, 0.6)",
                "UNPARTITIONED_SCAN_QUERIES": "rgba(54, 162, 235, 0.6)",
                "REPEATED_QUERIES": "rgba(255, 206, 86, 0.6)",
                "COMPLEX_JOIN_QUERIES": "rgba(75, 192, 192, 0.6)",
            },
            "tooltip_fields": ["TOTAL_COST_IMPACT", "RECOMMENDATION"],
        }
    ],

    "user_value_vs_cost_quadrant": [
        {
            "chart_type": "bar",
            "x_axis": "USER_NAME",
            "y_axis": "COST_IMPACT",
            "color_field": "USER_SEGMENT",
            "title": "Cost Impact by User Optimization Segment",
            "colors": {
                "High Efficiency - High Cost": "rgba(75, 192, 192, 0.6)",
                "Low Efficiency - High Cost (OPTIMIZE)": "rgba(255, 99, 132, 0.6)",
                "High Efficiency - Low Cost (IDEAL)": "rgba(54, 162, 235, 0.6)",
                "Low Efficiency - Low Cost (MONITOR)": "rgba(255, 206, 86, 0.6)",
            },
            "tooltip_fields": ["EFFICIENCY_SCORE", "QUERY_COUNT"],
        }
    ],

    "user_efficiency_matrix": [
        {
            "chart_type": "bar",
            "x_axis": "USER_NAME",
            "y_axis": "TOTAL_COST",
            "color_field": "RISK_LEVEL",
            "title": "User Risk Assessment by Total Cost",
            "colors": {
                "HIGH_RISK": "rgba(255, 99, 132, 0.6)",
                "MEDIUM_RISK": "rgba(255, 206, 86, 0.6)",
                "OPTIMIZED": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": [
                "RECOMMENDATION",
                "COST_EFFICIENCY_SCORE",
                "PERFORMANCE_EFFICIENCY_SCORE",
            ],
        }
    ],

    # ===== SINGLE USER ANALYSIS =====
    "single_user_analysis": [
        # User Overview Card (showing key metrics)
        {
            "chart_type": "metric_card",
            "title": "User Performance Overview",
            "metrics": [
                {"field": "WEIGHTED_SCORE", "label": "Inefficiency Score", "format": "number"},
                {"field": "COST_STATUS", "label": "Cost Status", "format": "text"},
                {"field": "TOTAL_QUERIES", "label": "Total Queries", "format": "number"},
                {"field": "TOTAL_CREDITS", "label": "Total Credits", "format": "currency"},
            ],
            "recommendations_field": "RECOMMENDATIONS"
        },

        # Cost-Related Issues Breakdown
        {
            "chart_type": "grouped_bar",
            "x_axis": "METRIC_TYPE",
            "y_axis": [
                "SPILLED_QUERIES",
                "PEAK_HOUR_LONG_RUNNING_QUERIES", 
                "HIGH_COMPILE_QUERIES",
                "OVER_PROVISIONED_QUERIES"
            ],
            "title": "Cost-Related Inefficiency Analysis",
            "colors": {
                "SPILLED_QUERIES": "rgba(255, 99, 132, 0.6)",
                "PEAK_HOUR_LONG_RUNNING_QUERIES": "rgba(255, 206, 86, 0.6)",
                "HIGH_COMPILE_QUERIES": "rgba(255, 99, 71, 0.6)",
                "OVER_PROVISIONED_QUERIES": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["RECOMMENDATIONS"],
        },

        # Performance Issues Distribution
        {
            "chart_type": "pie",
            "y_axis": [
                "SELECT_STAR_QUERIES",
                "UNPARTITIONED_SCAN_QUERIES", 
                "REPEATED_QUERIES",
                "COMPLEX_JOIN_QUERIES",
                "ZERO_RESULT_QUERIES",
                "UNTAGGED_QUERIES"
            ],
            "title": "Performance-Related Issues Distribution",
            "colors": [
                "rgba(75, 192, 192, 0.6)",
                "rgba(153, 102, 255, 0.6)",
                "rgba(255, 159, 64, 0.6)",
                "rgba(199, 199, 199, 0.6)",
                "rgba(83, 102, 255, 0.6)",
                "rgba(144, 238, 144, 0.6)",
            ],
            "tooltip_fields": ["RECOMMENDATIONS"],
        }
    ],

    "single_user_bad_practice_details": [
        # Bad Practice Cost Impact
        {
            "chart_type": "horizontal_bar",
            "x_axis": "COST_IMPACT", 
            "y_axis": "ISSUE_TYPE",
            "title": "Cost Impact by Bad Practice Type",
            "color_field": "ISSUE_TYPE",
            "colors": {
                "SELECT * Abuse": "rgba(255, 99, 132, 0.6)",
                "Unpartitioned Scans": "rgba(54, 162, 235, 0.6)",
                "Repeated Queries": "rgba(255, 206, 86, 0.6)",
                "Complex Queries": "rgba(75, 192, 192, 0.6)",
            },
            "tooltip_fields": ["QUERY_COUNT", "RECOMMENDATION", "EXAMPLE_QUERY"],
        },

        # Query Count vs Cost Impact
        {
            "chart_type": "grouped_bar",
            "x_axis": "ISSUE_TYPE",
            "y_axis": ["QUERY_COUNT", "COST_IMPACT"],
            "title": "Query Volume vs Cost Impact by Issue Type",
            "colors": {
                "QUERY_COUNT": "rgba(54, 162, 235, 0.6)",
                "COST_IMPACT": "rgba(255, 99, 132, 0.6)",
            },
            "tooltip_fields": ["RECOMMENDATION", "EXAMPLE_QUERY"],
        }
    ],

    "single_user_critical_bad_practices_pie": [
        {
            "chart_type": "donut",
            "x_axis": "ISSUE_TYPE",
            "y_axis": "COST_IMPACT",
            "title": "Critical Bad Practices Cost Distribution",
            "colors": [
                "rgba(255, 99, 132, 0.6)",
                "rgba(54, 162, 235, 0.6)",
                "rgba(255, 206, 86, 0.6)",
                "rgba(75, 192, 192, 0.6)",
            ],
            "tooltip_fields": ["COST_IMPACT"],
        }
    ],

    "credits_query_efficiency_trend": [
        # Daily Credit Usage Trend
        {
            "chart_type": "line",
            "x_axis": "USAGE_DATE",
            "y_axis": "DAILY_CREDITS",
            "title": "Daily Credit Consumption Trend",
            "color_field": "DAILY_USAGE_STATUS",
            "colors": {
                "Very High": "rgba(255, 99, 132, 0.8)",
                "High": "rgba(255, 206, 86, 0.8)",
                "Normal": "rgba(54, 162, 235, 0.8)",
            },
            "tooltip_fields": ["QUERY_COUNT", "AVG_CREDITS_PER_QUERY", "QUERY_EFFICIENCY_STATUS"],
        },

        # Query Efficiency Over Time
        {
            "chart_type": "bar",
            "x_axis": "USAGE_DATE",
            "y_axis": "AVG_CREDITS_PER_QUERY",
            "title": "Query Efficiency Trend (Credits per Query)",
            "color_field": "QUERY_EFFICIENCY_STATUS",
            "colors": {
                "Inefficient": "rgba(255, 99, 132, 0.6)",
                "Efficient": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["QUERY_COUNT", "DAILY_CREDITS", "DAILY_USAGE_STATUS"],
        },

        # Combined View: Volume vs Efficiency
        {
            "chart_type": "combo",
            "x_axis": "USAGE_DATE",
            "y_axis": ["QUERY_COUNT", "AVG_CREDITS_PER_QUERY"],
            "chart_types": ["bar", "line"],
            "title": "Query Volume vs Efficiency Over Time",
            "colors": {
                "QUERY_COUNT": "rgba(54, 162, 235, 0.6)",
                "AVG_CREDITS_PER_QUERY": "rgba(255, 99, 132, 0.8)",
            },
            "tooltip_fields": ["DAILY_CREDITS", "DAILY_USAGE_STATUS", "QUERY_EFFICIENCY_STATUS"],
        }
    ],

    "bytes_scanned_vs_rows_returned": [
        # Efficiency Status Summary
        {
            "chart_type": "bar",
            "x_axis": "EFFICIENCY_STATUS",
            "y_axis": "MB_SCANNED",
            "title": "Data Scanning Efficiency Analysis",
            "color_field": "EFFICIENCY_STATUS",
            "colors": {
                "Inefficient": "rgba(255, 99, 132, 0.6)",
                "Efficient": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["ROWS_RETURNED", "MB_PER_ROW"],
        },

        # Detailed Query Analysis (Top Inefficient Queries)
        {
            "chart_type": "horizontal_bar",
            "x_axis": "MB_PER_ROW",
            "y_axis": "QUERY_ID",
            "title": "Top Inefficient Queries (MB per Row)",
            "color_field": "EFFICIENCY_STATUS",
            "colors": {
                "Inefficient": "rgba(255, 99, 132, 0.6)",
                "Efficient": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["MB_SCANNED", "ROWS_RETURNED"],
            "limit": 20  # Show top 20 most inefficient queries
        }
    ],

    # Additional single user charts for comprehensive analysis
    "single_user_time_analysis": [
        # Peak Hour Analysis
        {
            "chart_type": "bar",
            "x_axis": "HOUR_OF_DAY",
            "y_axis": "QUERY_COUNT",
            "title": "Query Distribution by Hour of Day",
            "color_field": "IS_PEAK_HOUR",
            "colors": {
                "Yes": "rgba(255, 99, 132, 0.6)",
                "No": "rgba(54, 162, 235, 0.6)",
            },
            "tooltip_fields": ["AVG_CREDITS_PER_QUERY", "LONG_RUNNING_QUERIES"],
        },

        # Weekly Pattern Analysis
        {
            "chart_type": "line",
            "x_axis": "DAY_OF_WEEK",
            "y_axis": "DAILY_CREDITS",
            "title": "Weekly Credit Usage Pattern",
            "colors": {"line": "rgba(54, 162, 235, 0.8)"},
            "tooltip_fields": ["QUERY_COUNT", "AVG_CREDITS_PER_QUERY"],
        }
    ],

    "single_user_warehouse_analysis": [
        # Warehouse Usage Efficiency
        {
            "chart_type": "stacked_bar",
            "x_axis": "WAREHOUSE_SIZE",
            "y_axis": ["QUERY_COUNT", "OVER_PROVISIONED_QUERIES"],
            "title": "Warehouse Usage vs Over-Provisioning",
            "colors": {
                "QUERY_COUNT": "rgba(54, 162, 235, 0.6)",
                "OVER_PROVISIONED_QUERIES": "rgba(255, 99, 132, 0.6)",
            },
            "tooltip_fields": ["COST_IMPACT", "RECOMMENDATION"],
        }
    ]
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)