resource "dynatrace_dashboard" "Synthetic_Monitoring_b6fc0160-9332-454f-a7bc-7217b2ae540c" { dashboard_metadata { name = "Synthetic Monitoring" owner = "Dynatrace" # shared = false tags = ["Synthetic","Reporting"] filter { timeframe = "-7d to now" } } tile { name = "Browser monitor" # configured = false # exclude_maintenance_windows = false tile_type = "SYNTHETIC_SINGLE_WEBCHECK" bounds { height = 304 left = 0 top = 570 width = 304 } } tile { name = "HTTP monitor" # configured = false tile_type = "SYNTHETIC_HTTP_MONITOR" bounds { height = 304 left = 304 top = 570 width = 304 } } tile { name = "Third-party monitor" # configured = false tile_type = "SYNTHETIC_SINGLE_EXT_TEST" bounds { height = 304 left = 608 top = 570 width = 304 } } tile { name = "Markdown" configured = true markdown = "Here are some examples of useful, synthetic out-of-the-box [tiles](https://www.dynatrace.com/support/help/shortlink/pin-to-dashboard) and [custom charts](https://www.dynatrace.com/support/help/shortlink/charts-create) for **your** inspiration." tile_type = "MARKDOWN" bounds { height = 38 left = 0 top = 0 width = 950 } filter { timeframe = "Last 2 hours" } } tile { name = "Monitor types" configured = true tile_type = "HEADER" bounds { height = 38 left = 0 top = 456 width = 304 } } tile { name = "Synthetic monitor health" chart_visible = true configured = true tile_type = "SYNTHETIC_TESTS" bounds { height = 304 left = 0 top = 76 width = 152 } filter { timeframe = "Last 2 hours" } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 304 left = 608 top = 76 width = 722 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Visually complete (load action)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.visuallyComplete.load" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "Availability" configured = true tile_type = "HEADER" bounds { height = 38 left = 0 top = 38 width = 608 } } tile { name = "Performance baseline" configured = true tile_type = "HEADER" bounds { height = 38 left = 608 top = 38 width = 722 } } tile { name = "Markdown" configured = true markdown = <<-EOT Dynatrace Synthetic Monitoring allows you to proactively monitor the **availability** and **performance baselines** of your web applications and API endpoints. You can monitor both your public and internal web and mobile resources from around the globe or important internal locations such as branch offices. Synthetic monitors help you to find issues before they affect your customers. Dynatrace also lets you connect synthetic monitors to your [web](#deploy;gf=all), [mobile](#mobile;gf=all) and [custom](#customapplication;gf=all) applications for insights into availability. EOT tile_type = "MARKDOWN" bounds { height = 76 left = 0 top = 380 width = 1330 } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 304 left = 152 top = 76 width = 456 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Availability" default_name = "Custom chart" chart_config { type = "TOP_LIST" left_axis_custom_unit = "Percent" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.availability.location.total" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "Markdown" configured = true markdown = "**[Browser monitors](#newcheckwizard;gf=all;webcheckPage=1;webcheckMode=browserMonitor;reset=true)** use a full Chrome instance to simulate complete page loads as well as complex clickpaths." tile_type = "MARKDOWN" bounds { height = 76 left = 0 top = 494 width = 304 } } tile { name = "Markdown" configured = true markdown = "**[HTTP monitors](#newmonitor2;gf=all;webcheckPage=0;webcheckMode=httpCheck;reset=true)** execute single HTTP requests. They are perfect to monitor your APIs and health check endpoints." tile_type = "MARKDOWN" bounds { height = 76 left = 304 top = 494 width = 304 } } tile { name = "Markdown" configured = true markdown = "You can even ingest [third-party synthetic](#newcheckwizard;gf=all;webcheckPage=1;webcheckMode=externalMonitor;reset=true) data into dynatrace from external sources to enrich Dynatrace data." tile_type = "MARKDOWN" bounds { height = 76 left = 608 top = 494 width = 304 } } tile { name = "Worldwide locations" configured = true tile_type = "HEADER" bounds { height = 38 left = 912 top = 456 width = 418 } } tile { name = "Performance metrics" configured = true tile_type = "HEADER" bounds { height = 38 left = 0 top = 912 width = 1330 } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 646 top = 988 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Visually complete (load action)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.visuallyComplete.load" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 0 top = 988 width = 304 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Time to first byte (load action)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.firstByte.load" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 304 top = 988 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "DOM interactive (load action)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.domInteractive.load" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 988 top = 988 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Total duration" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.totalDuration" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 0 top = 1178 width = 304 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "HTTP monitor - DNS lookup time (by location)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_HTTPCHECK" metric = "builtin:synthetic.http.dns.geo" # sort_ascending = false sort_column = true dimension { name = "dt.entity.http_check" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 304 top = 1178 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "HTTP monitor - TCP connect time (by location)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_HTTPCHECK" metric = "builtin:synthetic.http.tcpConnectTime.geo" # sort_ascending = false sort_column = true dimension { name = "dt.entity.http_check" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 646 top = 1178 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "HTTP monitor - DNS lookup time (by location)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_HTTPCHECK" metric = "builtin:synthetic.http.dns.geo" # sort_ascending = false sort_column = true dimension { name = "dt.entity.http_check" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 190 left = 988 top = 1178 width = 342 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "HTTP monitor - Duration (by location)" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_HTTPCHECK" metric = "builtin:synthetic.http.duration.geo" # sort_ascending = false sort_column = true dimension { name = "dt.entity.http_check" entity_dimension = true id = "0" } } } } } tile { name = "Real User Monitoring (RUM) for web and mobile applications" configured = true tile_type = "HEADER" bounds { height = 38 left = 0 top = 1862 width = 1330 } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 342 left = 304 top = 1482 width = 570 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Failed executions" default_name = "Custom chart" chart_config { type = "TIMESERIES" legend = true series { type = "BAR" aggregation = "NONE" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.failure" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 342 left = 874 top = 1482 width = 456 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "Error details" default_name = "Custom chart" chart_config { type = "TOP_LIST" legend = true series { type = "LINE" aggregation = "NONE" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.errorCodes" # sort_ascending = false sort_column = true dimension { name = "dt.entity.synthetic_test" entity_dimension = true id = "0" } dimension { name = "By error code" # entity_dimension = false id = "1" } } } } } tile { name = "" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 342 left = 0 top = 1482 width = 304 } filter { timeframe = "-30d to now" } filter_config { type = "MIXED" custom_name = "HTTP monitor - Status code (by location)" default_name = "Custom chart" chart_config { type = "PIE" legend = true result_metadata { config { custom_color = "#02ca02" key = "null¦Status code»SC_2xx»falsebuiltin:synthetic.http.statusCode|NONE|TOTAL|LINE|SYNTHETIC_HTTPCHECK" last_modified = 1600259367018 } config { custom_color = "#ca0202" key = "null¦Status code»SC_5xx»falsebuiltin:synthetic.http.statusCode|NONE|TOTAL|LINE|SYNTHETIC_HTTPCHECK" last_modified = 1600259377529 } } series { type = "LINE" aggregation = "NONE" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_HTTPCHECK" metric = "builtin:synthetic.http.statusCode" # sort_ascending = false sort_column = true dimension { name = "Status code" # entity_dimension = false id = "2" } } } } } tile { name = "Custom chart" configured = true tile_type = "CUSTOM_CHARTING" bounds { height = 304 left = 912 top = 570 width = 418 } filter_config { type = "MIXED" custom_name = "Availability" default_name = "Custom chart" chart_config { type = "TOP_LIST" legend = true series { type = "LINE" aggregation = "AVG" aggregation_rate = "TOTAL" entity_type = "SYNTHETIC_BROWSER_MONITOR" metric = "builtin:synthetic.browser.availability.location.total" # sort_ascending = false sort_column = true dimension { name = "dt.entity.geolocation" entity_dimension = true id = "1" } } } } } tile { name = "Markdown" configured = true markdown = "Dynatrace synthetic monitoring offers a wide array of metrics out of the box, from network level details to user experience focused metrics like Visually complete." tile_type = "MARKDOWN" bounds { height = 38 left = 0 top = 950 width = 1330 } } tile { name = "Markdown" configured = true markdown = "Monitor from over 90 worldwide high availability and multi-cloud locations. Easily extend your coverage with [private synthetic locations](#settings/syntheticprivatelocations;gf=all)." tile_type = "MARKDOWN" bounds { height = 76 left = 912 top = 494 width = 418 } } tile { name = "World map" assigned_entities = ["GEOLOCATION-0000000000000000","WORLD"] configured = true metric = "APDEX" tile_type = "APPLICATION_WORLDMAP" bounds { height = 304 left = 0 top = 1938 width = 304 } } tile { name = "Markdown" configured = true markdown = "Synthetic offers consistent insights from a controlled, lab-like environment. Don't forget to also look at **[real user monitoring dat](#uemapplications;gf=all;gtf=-2h)a** to get the complete picture." tile_type = "MARKDOWN" bounds { height = 38 left = 0 top = 1900 width = 1330 } filter { timeframe = "Last 2 hours" } } tile { name = "Markdown" configured = true markdown = "Quickly find the root cause of errors reported by synthetic monitors. Gain full visibility by [deploying the OneAgent](#deploy;gf=all) to drill down from synthetic executions directly into code-level purepaths." tile_type = "MARKDOWN" bounds { height = 38 left = 0 top = 1444 width = 1330 } } tile { name = "Error details" configured = true tile_type = "HEADER" bounds { height = 38 left = 0 top = 1406 width = 1330 } } tile { name = "Top web applications" configured = true tile_type = "APPLICATIONS_MOST_ACTIVE" bounds { height = 304 left = 304 top = 1938 width = 304 } } tile { name = "Application health" chart_visible = true configured = true tile_type = "APPLICATIONS" bounds { height = 304 left = 608 top = 1938 width = 266 } } tile { name = "Mobile app" # configured = false tile_type = "MOBILE_APPLICATION" bounds { height = 152 left = 874 top = 1938 width = 304 } } }