in atlas-chart/src/main/scala/com/netflix/atlas/chart/JsonCodec.scala [277:316]
private def writeLineDef(
gen: JsonGenerator,
plot: Int,
line: LineDef,
start: Long,
end: Long
): Unit = {
gen.writeStartObject()
gen.writeStringField("type", "timeseries")
line.query.foreach { q =>
val id = TaggedItem.computeId(line.data.tags + ("atlas.query" -> q)).toString
gen.writeStringField("id", id)
}
gen.writeNumberField("plot", plot)
gen.writeStringField("label", line.data.label)
gen.writeFieldName("color")
writeColor(gen, line.color)
gen.writeStringField("lineStyle", line.lineStyle.name())
gen.writeNumberField("lineWidth", line.lineWidth)
line.query.foreach { q =>
gen.writeStringField("query", q)
}
if (line.groupByKeys.nonEmpty) {
gen.writeArrayFieldStart("groupByKeys")
line.groupByKeys.foreach(gen.writeString)
gen.writeEndArray()
}
gen.writeObjectFieldStart("tags")
line.data.tags.foreachEntry(gen.writeStringField)
gen.writeEndObject()
gen.writeObjectFieldStart("data")
gen.writeStringField("type", "array")
gen.writeArrayFieldStart("values")
line.data.data.foreach(start, end) { (_, v) =>
gen.writeNumber(v)
}
gen.writeEndArray()
gen.writeEndObject()
gen.writeEndObject()
}