创建数据帧
The data frame is a columnar data structure that allows for efficient querying of large amounts of data. Since data frames are a central concept when developing data source and other plugins for Grafana, in this guide we'll look at some ways you can use them.
The DataFrame
interface contains a name
and an array of fields
where each field contains the name, type, and the values for the field.
如果您想迁移现有插件以使用数据帧格式,请参考 迁移到数据帧.
创建数据帧
如果您构建数据源插件,那么您很可能需要将来自外部 API 的响应转换为数据帧。让我们看看如何做到这一点。
让我们从创建一个表示时间序列的简单数据帧开始。创建数据帧的最简单方法是使用 toDataFrame
函数。
// Need to be of the same length.
const timeValues = [1599471973065, 1599471975729];
const numberValues = [12.3, 28.6];
// Create data frame from values.
const frame = toDataFrame({
name: 'http_requests_total',
fields: [
{ name: 'Time', type: FieldType.time, values: timeValues },
{ name: 'Value', type: FieldType.number, values: numberValues },
],
});
表示时间序列的数据帧至少包含一个 time
字段和一个 number
字段。按照惯例,内置插件使用 Time
和 Value
作为包含时间序列数据的 data frame 的字段名。
从示例中可以看出,要创建这样的数据帧,您的数据必须已经存储为列数据。如果您已经以对象数组的形式拥有这些记录,那么您可以将其传递给 toDataFrame
。在这种情况下,toDataFrame
会尝试根据数组中对象的类型和名称来猜测 schema。要以这种方式创建复杂的数据帧,请务必验证您获得了预期的 schema。
const series = [
{ Time: 1599471973065, Value: 12.3 },
{ Time: 1599471975729, Value: 28.6 },
];
const frame = toDataFrame(series);
frame.name = 'http_requests_total';