Line Chart Data Structure Description
// The following is a data demo for a line chart (with two lines)
  {
    series: [
      {
        values: [
          [1737344820000, 1.33635905],
          [1737344810000, 2.6481715],
          [1737344800000, 1.21059269],
        ],
        columns: ['time', 'avg(usage_system)'],
      },
      {
        values: [
          [1737344820000, 1.79202423],
          [1737344810000, 0.83102493],
          [1737344800000, 1.84110971],
        ],
        columns: ['time', 'avg(usage_system)'],
      },
    ],
  },
| Parameter | Type | Required | Description | 
| series | list | Required | Data group, the length represents how many sets of data there are (in a line chart, it represents how many lines) | 
| series[#] | dict |  | A set of data | 
| series[#].columns | list | Required | List of data source field keys, ['time', ...] | 
| series[#].columns[#] | str |  | Data source field key, the first column value must be 'time' | 
| series[#].values | list | Required | Two-dimensional array, each item in the array represents a data entry | 
| series[#].values[#] | list |  | Data source composed of [timestamp, data value], in a line chart, the values length is 2, one data entry represents a connected point on the line chart | 
Example of External Function Response Structure
@DFF.API('Function Name', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
    data1 = 123
    data2 = 200
    now1 = int(time.time()) * 1000
    now2 = int(time.time()) * 1000
    #
    return {
    "content": [
      {
        "series": [
          {
            "columns": ["time", "data"],
            "values": [
              [now1, data1],
              [now2, data2]
            ],
          }
        ]
      }
    ]
  }