in server/src/main/scala/com/twitter/server/handler/MetricExpressionHandler.scala [39:57]
private[server] def translateToQuery(
expr: Expression,
shouldRate: Boolean,
sourceLatched: Boolean,
labels: Map[String, String]
): String =
expr match {
case HistogramExpression(schema, _) => getHisto(schema, labels)
case MetricExpression(schema, showRollup) =>
getMetric(schema, showRollup, shouldRate, sourceLatched)
case ConstantExpression(repr) => repr
case FunctionExpression(funcName, exprs) =>
s"$funcName(${exprs
.map { expr => translateToQuery(expr, shouldRate, sourceLatched, labels) }.mkString(",")})"
case StringExpression(expr, isCounter) =>
val metric = expr.mkString(metadataScopeSeparator())
if (isCounter && shouldRate && !sourceLatched) s"rate($metric)" else metric
case NoExpression => "null"
}