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 }