in server/src/main/scala/com/twitter/server/util/exp/ExpressionJson.scala [23:58]
def serialize(
expressionSchema: ExpressionSchema,
gen: JsonGenerator,
provider: SerializerProvider
): Unit = {
gen.writeStartObject()
gen.writeStringField("name", expressionSchema.name)
gen.writeObjectFieldStart("labels")
// we need this to evolve the expressions format compatibly
// in the future, we will only export labels that are set
val labels = Map(
ExpressionSchema.ProcessPath -> "Unspecified",
ExpressionSchema.ServiceName -> "Unspecified",
ExpressionSchema.Role -> SourceRole.NoRoleSpecified.toString
) ++ expressionSchema.labels
for ((key, value) <- labels) {
gen.writeStringField(key, value)
}
gen.writeEndObject()
if (expressionSchema.namespace.nonEmpty) {
gen.writeArrayFieldStart("namespaces")
expressionSchema.namespace.foreach { p => gen.writeString(p) }
gen.writeEndArray()
}
gen.writeStringField("expression", expressionSchema.exprQuery)
provider.defaultSerializeField("bounds", expressionSchema.bounds, gen)
gen.writeStringField("description", expressionSchema.description)
gen.writeStringField("unit", expressionSchema.unit.toString)
gen.writeEndObject()
}