|
| 1 | +// Create a heatgrid widget with bin labels and formatted row labels |
| 2 | + |
| 3 | +import com.datadog.api.client.ApiClient; |
| 4 | +import com.datadog.api.client.ApiException; |
| 5 | +import com.datadog.api.client.v1.api.DashboardsApi; |
| 6 | +import com.datadog.api.client.v1.model.Dashboard; |
| 7 | +import com.datadog.api.client.v1.model.DashboardLayoutType; |
| 8 | +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricDataSource; |
| 9 | +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricQueryDefinition; |
| 10 | +import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition; |
| 11 | +import com.datadog.api.client.v1.model.HeatgridColor; |
| 12 | +import com.datadog.api.client.v1.model.HeatgridColorBin; |
| 13 | +import com.datadog.api.client.v1.model.HeatgridColorConfig; |
| 14 | +import com.datadog.api.client.v1.model.HeatgridCustomColorSource; |
| 15 | +import com.datadog.api.client.v1.model.HeatgridDiscreteCustomColor; |
| 16 | +import com.datadog.api.client.v1.model.HeatgridDiscreteMode; |
| 17 | +import com.datadog.api.client.v1.model.HeatgridLabelColumn; |
| 18 | +import com.datadog.api.client.v1.model.HeatgridNestingDisplay; |
| 19 | +import com.datadog.api.client.v1.model.HeatgridSort; |
| 20 | +import com.datadog.api.client.v1.model.HeatgridSortBy; |
| 21 | +import com.datadog.api.client.v1.model.HeatgridSortByLabel; |
| 22 | +import com.datadog.api.client.v1.model.HeatgridSortByLabelProperty; |
| 23 | +import com.datadog.api.client.v1.model.HeatgridSortOrder; |
| 24 | +import com.datadog.api.client.v1.model.HeatgridTextFormatMatch; |
| 25 | +import com.datadog.api.client.v1.model.HeatgridTextFormatMatchType; |
| 26 | +import com.datadog.api.client.v1.model.HeatgridTextFormatReplace; |
| 27 | +import com.datadog.api.client.v1.model.HeatgridTextFormatReplaceAll; |
| 28 | +import com.datadog.api.client.v1.model.HeatgridTextFormatReplaceAllType; |
| 29 | +import com.datadog.api.client.v1.model.HeatgridTextFormatReplaceSubstring; |
| 30 | +import com.datadog.api.client.v1.model.HeatgridTextFormatReplaceSubstringType; |
| 31 | +import com.datadog.api.client.v1.model.HeatgridTextFormatRule; |
| 32 | +import com.datadog.api.client.v1.model.HeatgridWidgetDefinition; |
| 33 | +import com.datadog.api.client.v1.model.HeatgridWidgetDefinitionType; |
| 34 | +import com.datadog.api.client.v1.model.HeatgridWidgetFormula; |
| 35 | +import com.datadog.api.client.v1.model.HeatgridWidgetRequest; |
| 36 | +import com.datadog.api.client.v1.model.HeatgridWidgetResponseFormat; |
| 37 | +import com.datadog.api.client.v1.model.Widget; |
| 38 | +import com.datadog.api.client.v1.model.WidgetDefinition; |
| 39 | +import java.util.Arrays; |
| 40 | +import java.util.Collections; |
| 41 | + |
| 42 | +public class Example { |
| 43 | + public static void main(String[] args) { |
| 44 | + ApiClient defaultClient = ApiClient.getDefaultApiClient(); |
| 45 | + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); |
| 46 | + DashboardsApi apiInstance = new DashboardsApi(defaultClient); |
| 47 | + |
| 48 | + Dashboard body = |
| 49 | + new Dashboard() |
| 50 | + .title("Example-Dashboard") |
| 51 | + .layoutType(DashboardLayoutType.ORDERED) |
| 52 | + .widgets( |
| 53 | + Collections.singletonList( |
| 54 | + new Widget() |
| 55 | + .definition( |
| 56 | + new WidgetDefinition( |
| 57 | + new HeatgridWidgetDefinition() |
| 58 | + .type(HeatgridWidgetDefinitionType.HEATGRID) |
| 59 | + .requests( |
| 60 | + Collections.singletonList( |
| 61 | + new HeatgridWidgetRequest() |
| 62 | + .responseFormat( |
| 63 | + HeatgridWidgetResponseFormat.TIMESERIES) |
| 64 | + .queries( |
| 65 | + Collections.singletonList( |
| 66 | + new FormulaAndFunctionQueryDefinition( |
| 67 | + new FormulaAndFunctionMetricQueryDefinition() |
| 68 | + .dataSource( |
| 69 | + FormulaAndFunctionMetricDataSource |
| 70 | + .METRICS) |
| 71 | + .name("query1") |
| 72 | + .query( |
| 73 | + "avg:system.cpu.user{*} by" |
| 74 | + + " {host}")))) |
| 75 | + .formulas( |
| 76 | + Collections.singletonList( |
| 77 | + new HeatgridWidgetFormula() |
| 78 | + .formula("query1"))))) |
| 79 | + .sort( |
| 80 | + new HeatgridSort() |
| 81 | + .nestingDisplay(HeatgridNestingDisplay.FLAT) |
| 82 | + .sortBy( |
| 83 | + new HeatgridSortBy( |
| 84 | + new HeatgridSortByLabel() |
| 85 | + .property(HeatgridSortByLabelProperty.LABEL) |
| 86 | + .order(HeatgridSortOrder.ASC)))) |
| 87 | + .color( |
| 88 | + new HeatgridColorConfig( |
| 89 | + new HeatgridDiscreteCustomColor() |
| 90 | + .mode(HeatgridDiscreteMode.DISCRETE) |
| 91 | + .source(HeatgridCustomColorSource.CUSTOM) |
| 92 | + .bins( |
| 93 | + Arrays.asList( |
| 94 | + new HeatgridColorBin() |
| 95 | + .color(new HeatgridColor("#00FF00")) |
| 96 | + .label("Normal"), |
| 97 | + new HeatgridColorBin() |
| 98 | + .color(new HeatgridColor("#FF0000")) |
| 99 | + .lowerBound(80.0) |
| 100 | + .label("High"))))) |
| 101 | + .labelColumn( |
| 102 | + new HeatgridLabelColumn() |
| 103 | + .textFormats( |
| 104 | + Arrays.asList( |
| 105 | + new HeatgridTextFormatRule() |
| 106 | + .match( |
| 107 | + new HeatgridTextFormatMatch() |
| 108 | + .type( |
| 109 | + HeatgridTextFormatMatchType |
| 110 | + .STARTS_WITH) |
| 111 | + .value("api-")) |
| 112 | + .replace( |
| 113 | + new HeatgridTextFormatReplace( |
| 114 | + new HeatgridTextFormatReplaceSubstring() |
| 115 | + .type( |
| 116 | + HeatgridTextFormatReplaceSubstringType |
| 117 | + .SUBSTRING) |
| 118 | + .substring("api-") |
| 119 | + .with(""))), |
| 120 | + new HeatgridTextFormatRule() |
| 121 | + .match( |
| 122 | + new HeatgridTextFormatMatch() |
| 123 | + .type( |
| 124 | + HeatgridTextFormatMatchType.IS) |
| 125 | + .value("unknown")) |
| 126 | + .replace( |
| 127 | + new HeatgridTextFormatReplace( |
| 128 | + new HeatgridTextFormatReplaceAll() |
| 129 | + .type( |
| 130 | + HeatgridTextFormatReplaceAllType |
| 131 | + .ALL) |
| 132 | + .with("Other")))))))))); |
| 133 | + |
| 134 | + try { |
| 135 | + Dashboard result = apiInstance.createDashboard(body); |
| 136 | + System.out.println(result); |
| 137 | + } catch (ApiException e) { |
| 138 | + System.err.println("Exception when calling DashboardsApi#createDashboard"); |
| 139 | + System.err.println("Status code: " + e.getCode()); |
| 140 | + System.err.println("Reason: " + e.getResponseBody()); |
| 141 | + System.err.println("Response headers: " + e.getResponseHeaders()); |
| 142 | + e.printStackTrace(); |
| 143 | + } |
| 144 | + } |
| 145 | +} |
0 commit comments