-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathCreateDashboard_2563642929.py
99 lines (95 loc) · 4.47 KB
/
CreateDashboard_2563642929.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
"""
Create a new dashboard with a toplist widget sorted by group
"""
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
from datadog_api_client.v1.model.dashboard import Dashboard
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
from datadog_api_client.v1.model.formula_and_function_metric_aggregation import FormulaAndFunctionMetricAggregation
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
FormulaAndFunctionMetricQueryDefinition,
)
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
from datadog_api_client.v1.model.group_type import GroupType
from datadog_api_client.v1.model.toplist_widget_definition import ToplistWidgetDefinition
from datadog_api_client.v1.model.toplist_widget_definition_type import ToplistWidgetDefinitionType
from datadog_api_client.v1.model.toplist_widget_legend import ToplistWidgetLegend
from datadog_api_client.v1.model.toplist_widget_request import ToplistWidgetRequest
from datadog_api_client.v1.model.toplist_widget_scaling import ToplistWidgetScaling
from datadog_api_client.v1.model.toplist_widget_stacked import ToplistWidgetStacked
from datadog_api_client.v1.model.toplist_widget_stacked_type import ToplistWidgetStackedType
from datadog_api_client.v1.model.toplist_widget_style import ToplistWidgetStyle
from datadog_api_client.v1.model.widget import Widget
from datadog_api_client.v1.model.widget_formula import WidgetFormula
from datadog_api_client.v1.model.widget_group_sort import WidgetGroupSort
from datadog_api_client.v1.model.widget_layout import WidgetLayout
from datadog_api_client.v1.model.widget_legacy_live_span import WidgetLegacyLiveSpan
from datadog_api_client.v1.model.widget_sort import WidgetSort
from datadog_api_client.v1.model.widget_sort_by import WidgetSortBy
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign
body = Dashboard(
title="Example-Dashboard",
description="",
widgets=[
Widget(
layout=WidgetLayout(
x=0.0,
y=0.0,
width=47,
height=15,
),
definition=ToplistWidgetDefinition(
title="",
title_size="16",
title_align=WidgetTextAlign.LEFT,
time=WidgetLegacyLiveSpan(),
style=ToplistWidgetStyle(
display=ToplistWidgetStacked(
type=ToplistWidgetStackedType.STACKED,
legend=ToplistWidgetLegend.INLINE,
),
scaling=ToplistWidgetScaling.RELATIVE,
palette="dog_classic",
),
type=ToplistWidgetDefinitionType.TOPLIST,
requests=[
ToplistWidgetRequest(
queries=[
FormulaAndFunctionMetricQueryDefinition(
data_source=FormulaAndFunctionMetricDataSource.METRICS,
name="query1",
query="avg:system.cpu.user{*} by {service}",
aggregator=FormulaAndFunctionMetricAggregation.AVG,
),
],
formulas=[
WidgetFormula(
formula="query1",
),
],
sort=WidgetSortBy(
count=10,
order_by=[
WidgetGroupSort(
type=GroupType.GROUP,
name="service",
order=WidgetSort.ASCENDING,
),
],
),
response_format=FormulaAndFunctionResponseFormat.SCALAR,
),
],
),
),
],
template_variables=[],
layout_type=DashboardLayoutType.FREE,
notify_list=[],
)
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = DashboardsApi(api_client)
response = api_instance.create_dashboard(body=body)
print(response)