es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Terraform Datadog: trace_service_definition no acepta bloque para “query” o “formula” a pesar de estar en la documentación.

¿Estoy haciendo algo mal?

widget {
    widget_layout {
        x      = 0
        y      = 47
        width  = 50
        height = 25
    }
    timeseries_definition {
        request {
            formula {
                formula_expression = "query1 * 100"
                alias              = "Capacidad Total de Sesión"
            }
            query {
                metric_query {
                    data_source = "metrics"
                    query       = "sum:.servers.available{$region,$stage,$service-name} by {availability-zone}"
                    name        = "query1"
                }
            }
        }
    }
}

Enlaces de documentación:

https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/dashboard#nestedblock--widget--group<em>definition--widget--timeseries</em>definition--request--query

https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/dashboard#nested-schema-for-widgetgroup<em>definitionwidgettimeseries</em>definitionrequestformula

$terraform --version
Terraform v1.0.11
en darwin_amd64
+ proveedor registry.terraform.io/datadog/datadog v2.21.0
$terraform validate

╷
│ Error: tipo de bloque no soportado
│
│ en el archivo weekly_ops_dashboard.tf, línea 152, en el recurso "datadog_dashboard" "weekly_ops":
│  152:         formula {
│
│ No se esperan bloques del tipo "formula" aquí.
╵
╷
│ Error: tipo de bloque no soportado
│
│ en el archivo weekly_ops_dashboard.tf, línea 156, en el recurso "datadog_dashboard" "weekly_ops":
│  156:         query {
│
│ No se esperan bloques del tipo "query" aquí.
Tags:  ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que los bloques de formula y query no son compatibles en este contexto. Según la documentación de Terraform de Datadog, el bloque de formula sólo es compatible dentro del bloque de widget_group_definition, mientras que el bloque de query sólo es compatible dentro del bloque de timeseries_definition.

    Sin contexto adicional, no está claro si este código se pretende utilizar en una widget_group_definition o en una timeseries_definition. Sin embargo, según la estructura del código, es probable que deba estar anidado dentro de un bloque de timeseries_definition.

    Para solucionar el error, los bloques formula y query deben moverse dentro de un bloque de timeseries_definition:

      widget {
        widget_layout {
          x      = 0
          y      = 47
          width  = 50
          height = 25
        }
        timeseries_definition {
          request {
            formula {
                formula_expression = "query1 * 100"
                alias              = "Capacidad Total de Sesiones"
            }
            query {
              metric_query {
                data_source = "metrics"
                query       = "sum:.servers.available{$region,$stage,$service-name} by {availability-zone}"
                name        = "query1"
              }
            }
          }
        }
      }
    

    También es importante asegurarse de que la versión del proveedor de Datadog que se está utilizando sea compatible con la versión de Terraform que se está utilizando, ya que esto también puede causar errores.

Comments are closed.