def generate_dashboard()

in stacks/metrics_streamer.py [0:0]


    def generate_dashboard(self):
        """ Generate CW dashboards"""

        _cw_role = aws_iam.Role(
            self,
            'role',
            assumed_by=aws_iam.AccountPrincipal(self.central_account_dashboards),
            role_name='CloudWatch-CrossAccountSharingRole'
        )

        _cfn_role = _cw_role.node.default_child

        #Deploy the CW cross acct role only via us-east-1 stack
        #SRINI TO REVIEW
        _cfn_role.cfn_options.condition = core.CfnCondition(
            self,
            "regioncheck",
            expression=core.Fn.condition_equals(core.Aws.REGION, "us-east-1")
        )

        managed_policies = [
            'CloudWatchReadOnlyAccess',
            'CloudWatchAutomaticDashboardsAccess'
        ]

        for policy in managed_policies:
            _cw_role.add_managed_policy(
                aws_iam.ManagedPolicy.from_aws_managed_policy_name(
                    managed_policy_name=policy
                )
            )

        dashboard_name_list, dashboards_category_list = self.generate_dashboard_sets()

        for dashboard in set(dashboard_name_list):
            widges_list = []
            for metric_set in definition.metric_sets:
                for metric in metric_set.metrics:
                    dashboard_name = metric.dashboard.dashboard_name
                    if dashboard_name == dashboard:
                        widges_list.append(
                            aws_cloudwatch.GraphWidget(
                                left=[CwMetric(
                                    self,
                                    id=f'data-gov-{metric.unique_id()}',
                                    metric = metric
                                    ).cw_metric
                                ],
                                title=metric.widget_title(),
                                width=10
                            )
                        )
                    else:
                        continue

            self.dashboard = aws_cloudwatch.Dashboard(
                self,
                'dataset-dbs-'+dashboard,
                dashboard_name=f'{dashboard}-{core.Aws.REGION}',
            )
            for widget in widges_list:
                self.dashboard.add_widgets(
                    widget
                )

        for dashboard_cat in set(dashboards_category_list):
            widges_list = []
            temp_list = []
            for metric_set in definition.metric_sets:
                for metric in metric_set.metrics:
                    dashboard_name = metric.dashboard.dashboard_name
                    dashboards_category = getattr(metric.dashboard, 'dashboard_category')
                    if dashboards_category:
                        if dashboard_cat == dashboards_category:
                            if dashboard_name not in temp_list:
                                markdown = """