def _get_dashboard_body()

in source/lambda/msk-dashboard/lambda_function.py [0:0]


def _get_dashboard_body(region, cluster_name, number_nodes):
    widgets = []
    widgets.append(_create_title_widget('\n# MSK Cluster Metrics\n'))

    widget_spec = [
        Widget(
            metric_name='CpuUser',
            title='CPU (User) usage by broker',
            x=0, y=1,
            width=12, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='GlobalPartitionCount',
            title='Number of partitions across all brokers',
            x=12, y=1,
            width=6, height=3,
            region=region, stat='Maximum', view='singleValue',
            number_nodes=None,
            annotation=None
        ),
        Widget(
            metric_name='GlobalTopicCount',
            title='Number of topics across all brokers',
            x=18, y=1,
            width=6, height=3,
            region=region, stat='Maximum', view='singleValue',
            number_nodes=None,
            annotation=None
        ),
        Widget(
            metric_name='OfflinePartitionsCount',
            title='Number of partitions that are offline',
            x=12, y=4,
            width=6, height=3,
            region=region, stat='Maximum', view='singleValue',
            number_nodes=None,
            annotation=None
        ),
        Widget(
            metric_name='ZooKeeperRequestLatencyMsMean',
            title='Latency for ZooKeeper requests (p99)',
            x=18, y=4,
            width=6, height=3,
            region=region, stat='p99', view='singleValue',
            number_nodes=None,
            annotation=None
        ),
        Widget(
            metric_name='KafkaDataLogsDiskUsed',
            title='Disk usage by broker',
            x=0, y=7,
            width=12, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=('Maximum disk usage', 100)
        ),
        Widget(
            metric_name='MessagesInPerSec',
            title='Incoming messages by broker',
            x=12, y=7,
            width=12, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='UnderReplicatedPartitions',
            title='Under-replicated partitions by broker',
            x=0, y=13,
            width=12, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='BytesOutPerSec',
            title='Bytes sent by broker',
            x=12, y=13,
            width=6, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='BytesInPerSec',
            title='Bytes received by broker',
            x=18, y=13,
            width=6, height=6,
            region=region, stat='Maximum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='NetworkRxPackets',
            title='Network RX packets by broker',
            x=12, y=19,
            width=12, height=6,
            region=region, stat='Average', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='NetworkTxPackets',
            title='Network TX packets by broker',
            x=0, y=19,
            width=12, height=6,
            region=region, stat='Average', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='NetworkRxErrors',
            title='Network RX errors by broker',
            x=12, y=25,
            width=12, height=6,
            region=region, stat='Sum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
        Widget(
            metric_name='NetworkTxErrors',
            title='Network TX errors by broker',
            x=0, y=25,
            width=12, height=6,
            region=region, stat='Sum', view='timeSeries',
            number_nodes=number_nodes,
            annotation=None
        ),
    ]

    for item in widget_spec:
        widgets.append(_create_metric_widget(item, cluster_name))

    return { 'widgets': widgets }