トポロジーデータ構造の説明¶
フィールド説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| column_names | list | 数値に対応する列名の集合。外部関数データソースの場合、この値はseries データに基づいて自動的に入力されます |
|
| column_names[#] | str | ||
| series | list | 必須 | データグループ。長さはデータグループの数を表します(トポロジービューでは1グループのみ) |
| series[#] | dict | 1つのデータグループ | |
| series[#].tags | dict | データ関連属性(データの関連属性を表示するために使用。テーブルでは列データとして表示され、key値のマッピングのエイリアス) | |
| series[#].columns | list | 必須 | データソースフィールドのkeyリスト。固定で['time', 'data'] |
| series[#].values | list | 必須 | 2次元配列。配列の各項目は1つのデータを表します。ここでは1つのデータのみ |
| series[#].values[#] | list | [タイムスタンプ, データ値] で構成されます。長さはseries[#].columnsと一致する必要があります |
|
| series[#].values[#][0] | str | 列'time'に対応する数値。null可 | |
| series[#].values[#][1] | str | 列'data'に対応する数値。値はシリアライズされたオブジェクトで、ServiceMap、ResourceMapタイプをサポート |
ServiceMap サービス関係図¶
トポロジービューは円形ノードで表示されます。ノード名を一意の識別子として、ノード情報とノードの接続関係を表示します。
{
"services": [
{
"data": {
"__size": 10,
"__fill": 10,
"fieldA": "1.0",
"fieldB": "test"
},
"name": "demo_web",
"type": "web"
},
{
"data": {
"__size": 10,
"__fill": 10,
"fieldA": "1.0",
"fieldB": "test"
},
"name": "demo_framework",
"type": "framework"
}
],
"maps": [
{
"source": "demo_web",
"target": "demo_framework"
}
]
}
フィールド説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| services | list | 必須 | ノード詳細リスト |
| services[#] | dict | ノード詳細 | |
| services[#].name | string | 必須 | ノード名。ノードの下部に表示 |
| services[#].type | string | 必須 | ノードタイプ。ノード中央のアイコン表示に使用(サポートタイプ:'web', 'custom', 'cache', 'db', 'app', 'front', 'aws_lambda')。範囲外の場合は'custom'がデフォルト |
| services[#].data | dict | ノード属性 | |
| services[#].data.__size | number | 円のサイズフィールドの値。範囲はなく、設定されたサイズに応じて自動調整 | |
| services[#].data.__fill | number | 必須 | 塗りつぶし色フィールドの値。この値の範囲は、設定されたグラデーション色系の最大値と最小値の間 |
| services[#].data.fieldA | string/number | 必須 | ノードのホバー内容表示。'__size'、'__fill'フィールド以外はカスタムフィールドとして表示 |
| maps | list | 必須 | ノード接続関係リスト |
| maps[#] | dict | サービス接続関係(方向:source→target) | |
| maps[#].source | string | 必須 | 開始ノード |
| maps[#].target | string | 必須 | ターゲットノード |
ResourceMap リソース関係図¶
トポロジービューはカードノードで表示されます。接続関係は中央ノードが1つだけである必要があります。serviceResource はカードノード詳細リストです(service:resource は一意である必要があり、カードノードの一意の識別子となります)。maps は中央ノードと他のノードの接続関係で、中央ノードから指すものは中央ノードの右側に、中央ノードを指すものは中央ノードの左側に配置されます。
{
"serviceResource": [
{
"data": {
"__fill": 10,
"avg_per_second_title": "AAA",
"avg_per_second": 1,
"p99_title": "AAA",
"p99": 1,
"error_rate_title": "AAA",
"error_rate": 1
},
"service": "demo_web",
"resource": "demo_web_resource",
"source_type": "web"
},
{
"data": {
"__fill": 10,
"avg_per_second_title": "AAA",
"avg_per_second": 1,
"p99_title": "AAA",
"p99": 1,
"error_rate_title": "AAA",
"error_rate": 1
},
"service": "demo_framework",
"resource": "demo_framework_resource",
"source_type": "framework"
}
],
"maps": [
{
"source": "demo_web",
"source_resource": "demo_web_resource",
"target": "demo_framework",
"target_resource": "demo_framework_resource"
}
]
}
フィールド説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| serviceResource | list | 必須 | カードノード詳細リスト |
| serviceResource[#] | dict | カード詳細 | |
| serviceResource[#].service | string | 必須 | カード下部のテキスト表示内容 |
| serviceResource[#].resource | string | 必須 | カード上部のテキスト表示内容 |
| serviceResource[#].source_type | string | 必須 | リソースタイプ。ノードアイコン表示に使用(サポートタイプ:'web', 'custom', 'cache', 'db', 'app', 'front', 'message')。範囲外の場合は'custom'がデフォルト |
| serviceResource[#].data | dict | サービス下のリソースデータパラメータ | |
| serviceResource[#].data.avg_per_second | number | 中央左寄せ表示内容の値 | |
| serviceResource[#].data.avg_per_second_title | number | 中央左寄せホバー表示内容 | |
| serviceResource[#].data.error_rate | number | 中央右寄せ表示内容 | |
| serviceResource[#].data.error_rate_title | number | 中央右寄せホバー表示内容 | |
| serviceResource[#].data.p99 | number | 中央表示内容 | |
| serviceResource[#].data.p99_title | number | 中央右寄せホバー表示内容 | |
| maps | list | 必須 | カードノード接続関係リスト |
| maps[#] | dict | カードノード接続関係(方向 source_resource→target_resource) | |
| maps[#].source | string | 必須 | serviceResource[#].service名と同じ |
| maps[#].source_resource | string | 必須 | serviceResource[#].resourceと同じ |
| maps[#].target | string | 必須 | serviceResource[#].serviceと同じ |
| maps[#].target_resource | string | 必須 | serviceResource[#].resourceと同じ |
外部関数レスポンス構造の例¶
@DFF.API('関数名', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
now = int(time.time()) * 1000
# ここのdataは、前述の「ServiceMap サービス関係図、ResourceMap リソース関係図」の完全な構造です
data = {}
return {
"content": [
{
"series": [
{
"columns": ["time", "data"],
"values": [
now, json.dumps(data)
],
"total_hits": 1
}
]
}
]
}