Skip to content

Commit 76b9540

Browse files
committed
Register charts in Overview and Data Quality Panel
Signed-off-by: Sampurna Pyne <sampurnapyne1710@gmail.com>
1 parent cdc94bd commit 76b9540

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

insights/charts/__init__.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22

33
from insights.models import ChartDefinition
44

5+
from .data_quality_panel import collect_data_quality_todos_resolutions
6+
from .data_quality_panel import collect_open_issues_to_datasource
7+
from .data_quality_panel import format_issue_contribution_donut
8+
from .data_quality_panel import format_issue_type_bar
9+
from .data_quality_panel import format_todos_resolution_timeline
510
from .importer_panel import _get_snapshot_data
611
from .importer_panel import build_importer_exploit_columns
712
from .importer_panel import build_importer_package_columns
813
from .importer_panel import collect_importers
14+
from .overview_panel import collect_kpi_card
15+
from .overview_panel import collect_yearly_distribution
16+
from .overview_panel import format_coverage_comparison
17+
from .overview_panel import format_growth_trend
18+
from .overview_panel import format_kpi_card
19+
from .overview_panel import format_yearly_distribution
920
from .package_panel import collect_cwes
1021
from .package_panel import collect_ecosystem_distribution
1122
from .package_panel import collect_packages
@@ -16,6 +27,38 @@
1627
from .severity_panel import get_severity_snapshot_data
1728

1829
CHARTS = [
30+
ChartDefinition(
31+
id="overview-stats",
32+
title="Overview Stats",
33+
panel="overview_panel",
34+
chart_type="custom",
35+
formatter_fn=format_kpi_card,
36+
collect_fn=collect_kpi_card,
37+
),
38+
ChartDefinition(
39+
id="overview-cross-validation",
40+
title="Coverage Comparison",
41+
panel="overview_panel",
42+
chart_type="stacked_bar",
43+
formatter_fn=format_coverage_comparison,
44+
collect_fn=collect_importers,
45+
),
46+
ChartDefinition(
47+
id="overview-growth-trend",
48+
title="Advisories Imported in the last 30 days",
49+
panel="overview_panel",
50+
chart_type="colored_bar",
51+
formatter_fn=format_growth_trend,
52+
collect_fn=collect_kpi_card,
53+
),
54+
ChartDefinition(
55+
id="overview-historical",
56+
title="Advisories Published in the Last 10 years",
57+
panel="overview_panel",
58+
chart_type="colored_bar",
59+
formatter_fn=format_yearly_distribution,
60+
collect_fn=collect_yearly_distribution,
61+
),
1962
ChartDefinition(
2063
id="pkg-dist-donut",
2164
title="Ecosystem Distribution",
@@ -68,6 +111,29 @@
68111
formatter_fn=partial(_get_snapshot_data, build_columns_fn=build_importer_exploit_columns),
69112
collect_fn=collect_importers,
70113
),
114+
ChartDefinition(
115+
id="dq-issue-type-bar",
116+
title="Open Issues by Type per Datasource",
117+
panel="data_quality_panel",
118+
chart_type="colored_bar",
119+
formatter_fn=format_issue_type_bar,
120+
collect_fn=collect_open_issues_to_datasource,
121+
),
122+
ChartDefinition(
123+
id="dq-importer-contribution-donut",
124+
title="Datasource Contribution per Open Issue",
125+
panel="data_quality_panel",
126+
chart_type="donut",
127+
formatter_fn=format_issue_contribution_donut,
128+
),
129+
ChartDefinition(
130+
id="dq-resolution-timeline",
131+
title="Issue Opened and Resolved Monthly",
132+
panel="data_quality_panel",
133+
chart_type="line",
134+
formatter_fn=format_todos_resolution_timeline,
135+
collect_fn=collect_data_quality_todos_resolutions,
136+
),
71137
]
72138

73139
PANELS = [

insights/insights_snapshot_pipeline.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111

1212
from insights.charts import CHARTS
1313
from insights.models import DailySnapshot
14+
from insights.models import DataQualityIssueByDatasourceInsight
15+
from insights.models import DataQualityToDosResolutionInsight
1416
from insights.models import ImporterInsight
17+
from insights.models import OverviewCoverageInsight
18+
from insights.models import OverviewYearlyInsight
1519
from insights.models import PackageCWEInsight
1620
from insights.models import PackageInsight
1721
from insights.models import PackageNameInsight
@@ -42,6 +46,11 @@ def compute_chart_analytics(self):
4246
self.package_cwes = []
4347
self.importer_insights = []
4448
self.severity_insight = None
49+
self.overview_insight = None
50+
self.overview_yearly_insights = []
51+
self.overview_coverage_insights = []
52+
self.data_quality_issue_types = []
53+
self.data_quality_todos_resolutions = []
4554
active_charts = [chart_def for chart_def in CHARTS if chart_def.collect_fn]
4655

4756
# Count steps for progress bar
@@ -78,8 +87,32 @@ def save_snapshot(self):
7887
self.severity_insight.snapshot_id = snapshot.id
7988
self.severity_insight.save()
8089

90+
if self.overview_insight:
91+
self.overview_insight.snapshot_id = snapshot.id
92+
self.overview_insight.save()
93+
94+
for yearly in self.overview_yearly_insights:
95+
yearly.overview_id = self.overview_insight.id
96+
for coverage in self.overview_coverage_insights:
97+
coverage.overview_id = self.overview_insight.id
98+
99+
for insight in self.data_quality_issue_types:
100+
insight.snapshot_id = snapshot.id
101+
for insight in self.data_quality_todos_resolutions:
102+
insight.snapshot_id = snapshot.id
103+
81104
PackageInsight.objects.bulk_create(self.package_insights.values(), batch_size=5000)
82105
PackageNameInsight.objects.bulk_create(self.package_names, batch_size=5000)
83106
PackageCWEInsight.objects.bulk_create(self.package_cwes, batch_size=5000)
84107
ImporterInsight.objects.bulk_create(self.importer_insights, batch_size=5000)
108+
OverviewYearlyInsight.objects.bulk_create(self.overview_yearly_insights, batch_size=5000)
109+
OverviewCoverageInsight.objects.bulk_create(
110+
self.overview_coverage_insights, batch_size=5000
111+
)
112+
DataQualityIssueByDatasourceInsight.objects.bulk_create(
113+
self.data_quality_issue_types, batch_size=5000
114+
)
115+
DataQualityToDosResolutionInsight.objects.bulk_create(
116+
self.data_quality_todos_resolutions, batch_size=5000
117+
)
85118
self.log("Snapshot saved successfully.")

0 commit comments

Comments
 (0)