コンテンツにスキップ

テーブル図

テーブル図には、グループテーブル図と時系列テーブル図があります。

グループテーブル図のデータ構造

// 以下のデモデータのテーブル列は ['host', 'host_ip', 'columnA', 'columnB'] です
{
    group_by: ['host', 'host_ip'],
    column_names: ['columnA', 'columnB'],
    series: [
      {
        tags: {
          host: 'host_1',
          host_ip: '111.11.123.103',
        },
        values: [[null, 1,2]],
        column_names: ['time', 'columnA', 'columnB'],
        columns: ['time', 'columnA', 'columnB'],
      },
      {
        tags: {
          host: 'host_2',
          host_ip: '111.11.123.101',
        },
        values: [[null, 3,4]],
        column_names: ['time', 'columnA', 'columnB'],
        columns: ['time', 'columnA', 'columnB'],
      },
      {
        tags: {
          host: 'host_3',
          host_ip: '111.11.123.102',
        },
        values: [[null, 5,6]],
        column_names: ['time', 'columnA', 'columnB'],
        columns: ['time', 'columnA', 'columnB'],
      },
      {
        tags: {
          host: 'host_4',
          host_ip: '111.11.123.106',
        },
        values: [[null, 7,8]],
        column_names: ['time', 'columnA', 'columnB'],
        columns: ['time', 'columnA', 'columnB'],
      },
    ],
  },

グループテーブル図の列値は group_bycolumn_names を結合して構成されます。group_by は空でも構いません。

  • フィールド説明:
パラメータ 必須 説明
group_by list テーブル列の構成要素。対応する列の値は、series データの各項目の tags オブジェクト内のマッピングされた value を取得します
group_by[#] str
column_names list 必須 テーブル列の構成要素。series データの column_names 内の time 以外のフィールド値に対応します。対応する列の値は series[#].values のデータを取得します
column_names[#] str
series list 必須 データグループ。長さはテーブルの行数を表します
series[#] dict データグループのセット
series[#].tags dict group_by テーブル列の関連属性値(group_by 部分の列のマッピング値、およびエイリアス key 値のマッピングとしても機能します)
series[#].columns list 必須 series[#].column_names と同じ ['time', ...]
series[#].columns[#] str データソースフィールドの key。最初の列の値は必ず time フィールドである必要があります
series[#].column_names list 必須 データソースフィールドの key。time 以外はテーブル列の参照として使用されます
series[#].column_names[#] str
series[#].values list データグループ。長さは series[#].columns と一致する必要があります(テーブル図では、column_names 部分の列のマッピング値に対応します)
series[#].values[#] list [null, データ値, ...] で構成されます
series[#].values[#][#] str

外部関数のレスポンス構造の例

@DFF.API('関数名', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
    data1_1 = 100
    data1_2 = 101
    data2_1 = 200
    data2_2 = 201
    now1 = int(time.time()) * 1000
    now2 = int(time.time()) * 1000
    #
    return {
    "content": [
      {
        "group_by": ['attrA'],
        "columns": ["filedA","filedB"]
        "column_names": ["filedA","filedB"]
        "series": [
          {
            "tags": {"attrA":'value1'},
            "columns": ["time", "filedA","filedB"],
            "values": [
              [now1, data1_1,data1_2],
              [now2, data2_1,data2_2]
            ],
            "total_hits": -1
          }
        ]
      }
    ]
  }

時系列テーブル図のデータ構造

// 以下のデモデータのテーブル列は ['fieldA', 'fieldB', 'fieldC', 'fieldD'] です
{
  "query": {},
  "series": [
    {
      "values": [
        [1737365938763, 19],
        [1737365938585, 20],
        [1737365938874, 21],
        [1737365939137, 22]
      ],
      "columns": ["time", "fieldA"]
    },
    {
      "values": [
        [1737365938763, 30],
        [1737365938585, 30.5],
        [1737365938874, 31],
        [1737365939137, 31.5]
      ],
      "columns": ["time", "fieldB"]
    },
    {
      "values": [
        [1737365938763, 50],
        [1737365938585, 50.5],
        [1737365938874, 51],
        [1737365939137, 51.5]
      ],
      "columns": ["time", "fieldC"]
    },
    {
      "values": [
        [1737365938763, 60],
        [1737365938585, 60.5],
        [1737365938874, 61],
        [1737365939137, 61.5]
      ],
      "columns": ["time", "fieldD"]
    }
  ]
}

時系列テーブル図の列値は、series[#].columns の2列目のデータを重複排除して結合したものです。

  • フィールド説明:
パラメータ 必須 説明
series list 必須 データグループ。長さはテーブルのデータグループ数を表します
series[#] dict データグループのセット
series[#].columns list 必須 time列名 で構成されます。すなわち ['time', 列名]
series[#].columns[#] str
series[#].values list 2次元配列。各データはその列の異なる時間次元での値を表し、配列の長さはテーブルの行数に影響します
series[#].values[#] list [タイムスタンプ, データ値]
series[#].values[#][#] str

外部関数のレスポンス構造の例

@DFF.API('関数名', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
    data1_1 = 100
    data1_2 = 101
    data2_1 = 200
    data2_2 = 201
    data3_1 = 101
    data3_2 = 202
    now1 = int(time.time()) * 1000
    now2 = int(time.time()) * 1000
    now3 = int(time.time()) * 1000
    #
    return {
    "content": [
      {
        "series": [
          {
            "columns": ["time", "filedA"],
            "values": [
              [now1, data1_1],
              [now2, data2_1],
              [now3, data3_1],
            ],
          },
          {
            "columns": ["time", "filedB"],
            "values": [
              [now1, data1_2],
              [now2, data2_2]
              [now3, data3_2]
            ],
          }
        ]
      }
    ]
  }

フィードバック

このページは役に立ちましたか?