curl --request POST \
--url "https://telemetry.betterstack.com/api/v2/dashboards/import" \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{
"name": "My Imported Dashboard",
"data": {
"refresh_interval": 60,
"date_range_from": "now-24h",
"date_range_to": "now",
"preset": {
"preset_type": "implicit",
"preset_variables": [
{
"name": "source",
"variable_type": "source",
"values": []
}
]
},
"charts": [
{
"chart_type": "line_chart",
"name": "Logs by level",
"description": null,
"x": 0,
"y": 0,
"w": 6,
"h": 8,
"transform_with": "async (existingDataByQuery, newDataByQuery, completed) => {\n return Object.keys(newDataByQuery).reduce((result, queryIndex) => {\n result[queryIndex] = result[queryIndex].concat(newDataByQuery[queryIndex]);\n return result;\n }, existingDataByQuery);\n}\n",
"settings": {
"unit": "shortened",
"fresh": true,
"label": "shown_below",
"legend": "shown_below",
"stacking": "dont_stack",
"time_column": "time",
"x_axis_type": "time",
"y_axis_scale": "linear",
"series_colors": {
"level = info": "#55bfc1",
"level = error": "#c03a5a"
},
"series_column": "series",
"value_columns": ["value"],
"decimal_places": 2,
"point_size_column": "size",
"treat_missing_values": "connected"
},
"chart_queries": [
{
"name": null,
"query_type": "query_builder",
"sql_query": "SELECT\n {{time}} AS time,\n countMerge(events_count) AS value,\n '"'"'level = '"'"' || COALESCE(level, '"'"'null'"'"') AS series\nFROM {{source}}\nWHERE\n dt BETWEEN {{start_time}} AND {{end_time}}\nGROUP BY\n time,\n level",
"where_condition": null,
"static_text": null,
"y_axis": [
{
"name": "events",
"type": "integer",
"value": "events",
"measure": "count"
}
],
"filters": [],
"group_by": [
{
"name": "level",
"type": "string",
"value": "level"
}
],
"source_variable": null
}
],
"chart_alerts": [
{
"name": "Spike in errors",
"alert_type": "relative",
"operator": "increases_by",
"value": 50.0,
"query_period": 3600,
"confirmation_period": 0,
"recovery_period": 7200,
"escalation_target": "current_team",
"name_autogenerated": false,
"aggregation_interval": 300,
"source_mode": "source_variable",
"source_platforms": [],
"metadata": {},
"check_period": 600,
"incident_per_series": false,
"shown_interval": 86400
}
]
}
],
"sections": []
}
}'