{"id":6185,"date":"2023-04-24T13:57:48","date_gmt":"2023-04-24T11:57:48","guid":{"rendered":"https:\/\/kabisa.nl\/?p=6185"},"modified":"2023-10-24T12:23:14","modified_gmt":"2023-10-24T10:23:14","slug":"datadog-dashboards-with-terraform","status":"publish","type":"post","link":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/","title":{"rendered":"Datadog dashboards with Terraform"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6185\" class=\"elementor elementor-6185\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9fa306b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9fa306b\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3e51884\" data-id=\"3e51884\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8ff4e26 elementor-widget elementor-widget-text-editor\" data-id=\"8ff4e26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then. If you would like to see the Terraform code right away,\u00a0<a href=\"https:\/\/github.com\/MeesvanStraten\/Datadog-Terraform-blog\" target=\"_blank\" rel=\"noopener\">here you go!<\/a>\u00a0We will use AWS as our platform to monitor, but you can use any other platform.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c5ffbf elementor-widget elementor-widget-text-editor\" data-id=\"7c5ffbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"introduction\">Introduction<\/h2><p>Managing our monitoring configuration with code has several advantages. By managing our monitoring as code we can easily create new environments or accounts and apply the existing configuration. We also get the ability to use version control and have our monitoring config centrally managed, this is great for collaboration and gives the possibility to enforce quality control like pull-requests and reviews.<\/p><h2 id=\"prerequisites\">Prerequisites<\/h2><ul><li>AWS account<\/li><li>Datadog account, free plan is sufficient for this demo.<\/li><li>Resources to monitor, we will use Lambda\u2019s.<\/li><\/ul><h2 id=\"datadog\">Datadog<\/h2><p>Datadog is a SaaS solution to observability. Datadog allows for collecting, visualizing and analyzing data from various sources such as servers, databases, applications and cloud based services. Datadog offers integrations with many popular technologies such as Docker and Kubernetes on different platforms like AWS and Azure, but it can be used in any environment.<\/p><h2 id=\"terraform\">Terraform<\/h2><p>Terraform is HashiCorp\u2019s open-source solution to IaC(Infrastructure-as-code). With Terraform, you declaratively manage your infrastructure in HCL (Hashicorp Config Language). With HCL as the declarative language, it means that you only declare the desired state, rather than the steps to get there.<\/p><p>Creating Infrastructure as Code has several advantages that we can also leverage for observability with Datadog. For starters, we have the configuration as code instead of locking it in the Datadog UI. By managing our configuration as code we can easily replicate this to other Datadog accounts. Also, we can use version control to manage our Datadog configuration, and even deploy from a CI\/CD pipeline.<\/p><h2 id=\"lets-get-started\">Let\u2019s get started<\/h2><p>Step-by-step, we will create a dashboard in Datadog and all the necessary configuration. We will start by creating a file called\u00a0<code>provider.tf<\/code>\u00a0, here we define the Datadog provider.<\/p><div class=\"highlight\"><pre class=\"highlight plaintext\"><code><\/code><\/pre><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-accab5e elementor-widget elementor-widget-code-highlight\" data-id=\"accab5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>terraform {\n required_providers {\n   datadog = {\n     source = \"DataDog\/datadog\"\n   }\n }\n}\n\nprovider \"datadog\" {\n api_key = var.TF_VAR_datadog_api_key\n app_key = var.TF_VAR_datadog_app_key\n api_url = var.datadog_api_url\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f25c67b elementor-widget elementor-widget-text-editor\" data-id=\"f25c67b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Next up, we will create a file for declaring variables, let\u2019s call it\u00a0<code>variables.tf<\/code>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5622e84 elementor-widget elementor-widget-code-highlight\" data-id=\"5622e84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>variable \"TF_VAR_datadog_api_key\" {\n type      = string\n sensitive = true\n}\n\nvariable \"TF_VAR_datadog_app_key\" {\n type      = string\n sensitive = true\n}\n\nvariable \"datadog_api_url\" {\n type = string\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e98fa2 elementor-widget elementor-widget-text-editor\" data-id=\"8e98fa2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now we can use these variables, as an example\u00a0<code>var.datadog_api_url<\/code>. Make sure to prefix with\u00a0<code>var<\/code>. To store our variables, we will create a file named\u00a0<code>terraform.tfvars<\/code>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ef8135 elementor-widget elementor-widget-code-highlight\" data-id=\"8ef8135\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>datadog_api_url = \"https:\/\/api.datadoghq.eu\/\"<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34be479 elementor-widget elementor-widget-text-editor\" data-id=\"34be479\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Heads Up! Never store confidential information like API keys \/ secrets in plaintext or add them to versioning systems. You can use tools like\u00a0<a href=\"https:\/\/github.com\/mozilla\/sops\">Mozilla SOPS<\/a>\u00a0or\u00a0<a href=\"https:\/\/www.vaultproject.io\/\">HashiCorp Vault<\/a>\u00a0to securely store these items.<\/p><p>Next up, we will create two keys, the\u00a0<code>API<\/code>\u00a0key and the\u00a0<code>APP<\/code>\u00a0key.<\/p><h2 id=\"create-datadog-api-key\">Create Datadog API key<\/h2><ul><li>Navigate to\u00a0<code>Organization settings<\/code>, then click the\u00a0<code>API keys<\/code>\u00a0tab.<\/li><li>Click the\u00a0<code>New Key<\/code>\u00a0button,<\/li><li>Enter a name for your key.<\/li><li>Click\u00a0<code>Create API key<\/code>.<\/li><\/ul><h2 id=\"create-datadog-app-key\">Create Datadog App key<\/h2><ul><li>Navigate to\u00a0<code>Organization settings<\/code>, then click the APP keys tab.<\/li><li>Click the\u00a0<code>New Key<\/code>\u00a0button,<\/li><li>Enter a name for your key.<\/li><li>Click\u00a0<code>Create APP key<\/code>.<\/li><\/ul><p>Add these keys to your environment variables with the\u00a0<code>TF_VAR prefix<\/code>, Terraform will automatically recognize the variables and assign them to the earlier declared variables and use them for the Datadog provider block.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09022c9 elementor-widget elementor-widget-code-highlight\" data-id=\"09022c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>export TF_VAR_vcs_datadog_app_key=yourAppKey\nexport TF_VAR_vcs_datadog_api_key=yourAPIKey<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-355cc6f elementor-widget elementor-widget-text-editor\" data-id=\"355cc6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"aws-integration\">AWS Integration<\/h2><p>At the time of writing the AWS integration can not be configured with Terraform, this is a one time thing for each AWS account. To create the integration, perform the following steps:<\/p><p>Click Integrations in the sidebar. Click create new key and select the region you want to monitor. Select the API key we created earlier. Leave the default options and click create CloudFormation. This will take you to CloudFormation in the AWS Console, review the stack (defaults should be good) and click Create Stack.<\/p><p>This can take a few minutes, after some time you should have a properly configured AWS integration with Datadog.<\/p><h2 id=\"create-the-dashboard\">Create the dashboard<\/h2><p>Now it is time to create a dashboard, let\u2019s start by creating a file called\u00a0<code>dashboard.tf<\/code>.<\/p><p>We will add two group widgets, which we can use to organise and group our widgets within them. Within the Lambda group we will create three widgets that display total invocations, invocations per function and the potential errors in functions.<\/p><p>In the Infrastructure group, we will create a host map that displays all our hosts and group them by region.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-892b959 elementor-widget elementor-widget-code-highlight\" data-id=\"892b959\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>resource \"datadog_dashboard\" \"ordered_dashboard\" {\n title       = \"Our Dashboard with Terraform\"\n layout_type = \"ordered\"\n\n widget {\n   group_definition {\n     title            = \"Lambda\"\n     layout_type      = \"ordered\"\n     background_color = \"green\"\n\n     widget {\n       query_value_definition {\n         live_span = \"1mo\"\n         title     = \"Lambda Invocations\"\n         precision = 0\n         autoscale = true\n         request {\n           q = \"sum:aws.lambda.invocations{*}.as_count()\"\n           conditional_formats {\n             comparator = \"<\"\n             value      = \"2500\"\n             palette    = \"white_on_green\"\n           }\n         }\n       }\n     }\n     widget {\n       toplist_definition {\n         title     = \"Top 10 Lambda Invocations\"\n         live_span = \"1mo\"\n         request {\n           style {\n             palette = \"dog_classic\"\n           }\n           q = \"sum:aws.lambda.invocations{*} by {functionname}.as_count()\"\n         }\n       }\n     }\n     widget {\n\n       query_value_definition {\n         title     = \"Lambda Errors\"\n         live_span = \"1d\"\n         autoscale = true\n         request {\n           q = \"sum:aws.lambda.errors{*}.as_count()\"\n           conditional_formats {\n             comparator = \"<\"\n             value      = \"5\"\n             palette    = \"white_on_green\"\n           }\n           conditional_formats {\n             comparator = \">\"\n             value      = \"5\"\n             palette    = \"white_on_red\"\n           }\n         }\n       }\n     }\n   }\n }\n widget {\n   group_definition {\n     title            = \"Infrastructure\"\n     layout_type      = \"ordered\"\n     background_color = \"orange\"\n\n     widget {\n       hostmap_definition {\n         title           = \"Host Map\"\n         group           = [\"region\"]\n         no_group_hosts  = true\n         no_metric_hosts = true\n         request {\n           fill {\n             q = \"avg:system.cpu.user{*} by {host}\"\n           }\n         }\n       }\n     }\n   }\n }\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6124b1c elementor-widget elementor-widget-text-editor\" data-id=\"6124b1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"apply-the-terraform\">Apply the Terraform<\/h2><p>Now it is time to see what we created, run\u00a0<code>Terraform plan<\/code>\u00a0and review the changes. You should have a single resource to add, that\u2019s our dashboard.<\/p><p>Now run\u00a0<code>Terraform apply<\/code>, still 1 to add and type in yes. We now have our Terraformed dashboard live!<\/p><p>You can visit your dashboard in the sidebar by navigating to the dashboard list. Your dashboard should look similar if you have some Lambda\u2019s running.<\/p><p>If you would like to clean up all resources you can run\u00a0<code>terraform destroy<\/code>.<\/p><h2 id=\"conclusion\">Conclusion<\/h2><p>We experienced how we can use Terraform for creating Datadog dashboards and highlighted what the advantages can be. Hopefully in the near future we can also create the AWS integration with Terraform. Furthermore the Terraform resources are quite extensive and almost all functionality available in the Datadog UI can be used with Terraform as well. You can find the Datadog provider\u00a0<a href=\"https:\/\/registry.terraform.io\/providers\/DataDog\/datadog\/latest\/docs\">here<\/a>.<\/p><p>Thank you for reading this article about Datadog and Terraform! Feel free to\u00a0<a href=\"https:\/\/github.com\/MeesvanStraten\/Datadog-Terraform-blog\">checkout the repository<\/a>\u00a0containing the Terraform code.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then. If you would like to see the Terraform code right away,\u00a0here you go!\u00a0We will use AWS as our platform to monitor, but you can use any other [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":1720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[149],"tags":[],"class_list":["post-6185","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Datadog dashboards with Terraform | Kabisa Software Artisans<\/title>\n<meta name=\"description\" content=\"In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datadog dashboards with Terraform | Kabisa Software Artisans\" \/>\n<meta property=\"og:description\" content=\"In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/\" \/>\n<meta property=\"og:site_name\" content=\"Kabisa Software Artisans\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kabisaict\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-24T11:57:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-24T10:23:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Harm De Laat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Harm De Laat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Datadog dashboards with Terraform | Kabisa Software Artisans","description":"In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/","og_locale":"en_US","og_type":"article","og_title":"Datadog dashboards with Terraform | Kabisa Software Artisans","og_description":"In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then.","og_url":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/","og_site_name":"Kabisa Software Artisans","article_publisher":"https:\/\/www.facebook.com\/kabisaict","article_published_time":"2023-04-24T11:57:48+00:00","article_modified_time":"2023-10-24T10:23:14+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg","type":"image\/jpeg"}],"author":"Harm De Laat","twitter_misc":{"Written by":"Harm De Laat","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#article","isPartOf":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/"},"author":{"name":"Harm De Laat","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/person\/f44d5e5d00dfe21378a4bda75ac9cfaf"},"headline":"Datadog dashboards with Terraform","datePublished":"2023-04-24T11:57:48+00:00","dateModified":"2023-10-24T10:23:14+00:00","mainEntityOfPage":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/"},"wordCount":847,"commentCount":0,"publisher":{"@id":"https:\/\/kabisa.nl\/en\/#organization"},"image":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#primaryimage"},"thumbnailUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg","articleSection":["Tech blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/","url":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/","name":"Datadog dashboards with Terraform | Kabisa Software Artisans","isPartOf":{"@id":"https:\/\/kabisa.nl\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#primaryimage"},"image":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#primaryimage"},"thumbnailUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg","datePublished":"2023-04-24T11:57:48+00:00","dateModified":"2023-10-24T10:23:14+00:00","description":"In this blog post, we will look into how we can create Datadog dashboards with a MaC approach. Yes, I do love some Monitoring-as-Code every now and then.","breadcrumb":{"@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#primaryimage","url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg","contentUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2023\/01\/datadog.jpeg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/kabisa.nl\/en\/tech\/datadog-dashboards-with-terraform\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kabisa.nl\/en\/"},{"@type":"ListItem","position":2,"name":"Tech blog","item":"https:\/\/kabisa.nl\/en\/tech\/"},{"@type":"ListItem","position":3,"name":"Datadog dashboards with Terraform"}]},{"@type":"WebSite","@id":"https:\/\/kabisa.nl\/en\/#website","url":"https:\/\/kabisa.nl\/en\/","name":"Kabisa Software Artisans","description":"Mission-critical Software for Hightech, Fintech &amp; E-commerce","publisher":{"@id":"https:\/\/kabisa.nl\/en\/#organization"},"alternateName":"Kabisa","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kabisa.nl\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kabisa.nl\/en\/#organization","name":"Cloud Legends","alternateName":"Kabisa","url":"https:\/\/kabisa.nl\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/logo\/image\/","url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/12\/kabisa-favicon.png","contentUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/12\/kabisa-favicon.png","width":512,"height":512,"caption":"Cloud Legends"},"image":{"@id":"https:\/\/kabisa.nl\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kabisaict","https:\/\/x.com\/kabisasoftware"],"description":"Software Development is onze core-business. Kabisa ontwikkelt innovatieve maatwerk software die naadloos aansluit bij de behoeftes van klanten en eindgebruikers. Dat doen we in nauwe samenwerking in elke fase van het proces: co-creatie noemen we dat.","email":"info@kabisa.nl","telephone":"0495 430 798","legalName":"Kabisa B.V.","foundingDate":"2006-01-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"51","maxValue":"200"}},{"@type":"Person","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/person\/f44d5e5d00dfe21378a4bda75ac9cfaf","name":"Harm De Laat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/812dabc2277781c72938d6f4f3a9e52f67c0d6022c1d3542372c5a004b388a98?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/812dabc2277781c72938d6f4f3a9e52f67c0d6022c1d3542372c5a004b388a98?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/812dabc2277781c72938d6f4f3a9e52f67c0d6022c1d3542372c5a004b388a98?s=96&d=mm&r=g","caption":"Harm De Laat"}}]}},"_links":{"self":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/comments?post=6185"}],"version-history":[{"count":5,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6185\/revisions"}],"predecessor-version":[{"id":6192,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6185\/revisions\/6192"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/media\/1720"}],"wp:attachment":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/media?parent=6185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/categories?post=6185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/tags?post=6185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}