private def writeLineDef()

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()
  }