caffeine_query_language/generator
Types
Represents a single named query for TimeSlice formulas.
pub type NamedQuery {
NamedQuery(name: String, query: String)
}
Constructors
-
NamedQuery(name: String, query: String)
Represents a resolved SLO query, either GoodOverTotal or TimeSlice.
pub type ResolvedSloQuery {
ResolvedGoodOverTotal(numerator: String, denominator: String)
ResolvedTimeSlice(
comparator: String,
interval_seconds: Int,
threshold: Float,
formula_expression: String,
queries: List(NamedQuery),
)
}
Constructors
-
ResolvedGoodOverTotal(numerator: String, denominator: String) -
ResolvedTimeSlice( comparator: String, interval_seconds: Int, threshold: Float, formula_expression: String, queries: List(NamedQuery), )Arguments
- formula_expression
-
The formula expression (e.g., “build_time + deploy_time”)
- queries
-
List of named queries referenced by the formula
Values
pub fn exp_to_string(exp: parser.Exp) -> String
Converts an expression AST node to its string representation.
pub fn resolve_slo_query(
value_expr: String,
substitutions: dict.Dict(String, String),
) -> #(String, String)
Parse a value expression, resolve to GoodOverTotal primitive, substitute words, and return the numerator and denominator as strings. Panics if parsing or resolution fails.
pub fn resolve_slo_query_typed(
value_expr: String,
substitutions: dict.Dict(String, String),
) -> Result(ResolvedSloQuery, String)
Parse a value expression, resolve to primitive, substitute words, and return the resolved SLO query type.
pub fn resolve_slo_to_hcl(
value_expr: String,
substitutions: dict.Dict(String, String),
) -> Result(ResolvedSloHcl, String)
Parse a value expression, resolve to primitive, substitute words, and return HCL blocks ready for Datadog terraform generation.