メトリック収集¶
組み込みシステム用のソフトウェアアプリケーションを診断する際の重要な側面は、デバイスから取得したメトリックデータを収集して視覚化することです。これには、センサー測定値、 内部ハードウェア測定基準、ファームウェア/オペレーティングシステム測定基準、およびその他の高レベルソフトウェア測定基準が含まれます。例えば、無人航空機(UAV)、 のセンサーから線速度、高度、方位の測定値を取得し、飛行制御の問題などを時系列グラフにプロットすることで診断することができます。
PSYGIG Mobility IoT SDK は、既知のセンサー、内部ハードウェア、オペレーティングシステム、およびアプリケーションのサポートを内蔵しているため、各メトリックソースに固有のコードを 記述する複雑さを軽減します。 Metrics Collection APIには、組み込みシステムへの統合に適した多くの機能が含まれています。
アプリケーションで動作でき、 ソースコードを再コンパイルする必要はありません
サードパーティのIoTプラットフォーム および データベース/データウェアハウス とのシームレスな統合
既知の情報源 からメトリックデータを自動的に収集
アプリケーション定義のメトリックに拡張可能
タイムスケールチャートを含むメトリックHTMLレポートを生成する
既知のメトリックソース¶
Metrics Collection APIは、下記に記載されてる既知のアプリケーションからメトリックデータを検出してポーリングする機能を提供します。
CPU (例:使用率、温度、クロック速度) |
|
GPU (例:使用率、メモリ使用率) |
|
Memory (例: RAM使用率) |
|
Disk (例:読み書き速度、応答時間) |
|
Network (例:スループット) |
|
Linux (例:プロセス数、オープンソケット) |
注釈
このリストは常に拡大しています。サポートされることを望む特定のセンサーまたはアプリケーションがあるならば、 連絡 ください。
psymon
の使用¶
ソースコードを変更しなくても、 psymon
スクリプトを使用してプログラムを実行することで、アプリケーションに対するシステムリソースメトリックの
定期的な収集を即座に有効にできます。例:
psymon --metrics "/path/to/your/app --arg1 --arg2 --arg3"
オプションリストは psymon-manページ を参考ください。
C/C++ SDK APIの使用¶
Metrics Collection APIは、 単一のヘッダーファイル をインクルードし、 libpsyiage
共有ライブラリをリンクすることによってアクセスできます。詳細については、 アドバンス設定 - libpsyiage を使ってアプリケーションを構築 を参照ください。
システムリソースメトリックの定期的な収集を有効にする¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <psyiage/psyiagesdk.h>
int main(int argc, char **argv)
{
psyiage_handle pah; // handle to psyiage instance
/* ... Initialize code omitted for simplicity ... */
// Poll system resource metrics every 500ms
psyiage_metric_enable_poll_system_resources(pah, 500);
/* ... Cleanup code omitted for simplicity ... */
}
|
アプリケーション定義メトリックの収集¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <psyiage/psyiagesdk.h>
int main(int argc, char **argv)
{
psyiage_handle pah; // handle to psyiage instance
/* ... Initialize code omitted for simplicity ... */
/* ... Read and aggregate data from laser sensors and cameras */
// Collect application-defined topographic data
rc = psyiage_metric_record_values_blob(pah, "Topography", topographic_data, topographic_data_size, 1);
/* ... Cleanup code omitted for simplicity ... */
}
|
サンプルメトリクスJSONデータ¶
"Metrics": [
{
"Name": "ProcVM",
"Timestamps": [
1559439076.125103951,
1559439076.626415014,
1559439077.127984047,
1559439077.629561663,
1559439078.130370855,
1559439078.631809711,
1559439079.132480621,
1559439079.633147001,
1559439080.133864164,
1559439080.635303974,
1559439081.136044741,
1559439081.636738777,
1559439082.137473822,
1559439082.638967037
],
"Values": [
112214016,
112214016,
113311744,
113311744,
112230400,
112906240,
113340416,
112934912,
112394240,
112242688,
112377856,
112242688,
112230400,
112230400
]
},
{
"Name": "SysCPU",
"Timestamps": [
1559439076.626402378,
1559439077.127982140,
1559439077.629560232,
1559439078.130369663,
1559439078.631808519,
1559439079.132479429,
1559439079.633145809,
1559439080.133862734,
1559439080.635302544,
1559439081.136043549,
1559439081.636737585,
1559439082.137472630,
1559439082.638965845
],
"Values": [
0.1624365448951721,
0.1700507551431656,
0.1616161614656448,
0.157760813832283,
0.1670886129140854,
0.1569620221853256,
0.149367094039917,
0.1454081684350967,
0.1472081243991852,
0.1522842645645142,
0.1522842645645142,
0.1594936698675156,
0.1548223346471786
]
},
{
"Name": "ProcRAMPeak",
"Timestamps": [
1559439076.125098944,
1559439076.626414537,
1559439077.127983570,
1559439077.629561424,
1559439078.130370617,
1559439078.631809473,
1559439079.132480383,
1559439079.633146763,
1559439080.133863926,
1559439080.635303736,
1559439081.136044502,
1559439081.636738539,
1559439082.137473583,
1559439082.638966799
],
"Values": [
4075520,
4075520,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096,
5636096
]
},
{
"Name": "SysRAM",
"Timestamps": [
1559439076.125087976,
1559439076.626402617,
1559439077.127982855,
1559439077.629560709,
1559439078.130370140,
1559439078.631808996,
1559439079.132479906,
1559439079.633146286,
1559439080.133863211,
1559439080.635303259,
1559439081.136044025,
1559439081.636737823,
1559439082.137473106,
1559439082.638966322
],
"Values": [
7739355136,
7773405184,
7816024064,
7798185984,
7815942144,
7802179584,
7853674496,
7907958784,
7963762688,
8024965120,
8073596928,
8121901056,
8156819456,
8199684096
]
},
{
"Name": "ProcCPU",
"Timestamps": [
1559439076.626414061,
1559439077.127983093,
1559439077.629560709,
1559439078.130370140,
1559439078.631808996,
1559439079.132479906,
1559439079.633146286,
1559439080.133863449,
1559439080.635303259,
1559439081.136044264,
1559439081.636738062,
1559439082.137473106,
1559439082.638966322
],
"Values": [
0.004999999888241291,
0.01250000018626451,
0.002499999944120646,
0.007499999832361937,
0.01250000018626451,
0.007499999832361937,
0.004999999888241291,
0.007499999832361937,
0.007352941203862429,
0.007499999832361937,
0.007499999832361937,
0.007499999832361937,
0.007499999832361937
]
},
{
"Name": "ProcRAM",
"Timestamps": [
1559439076.125092983,
1559439076.626414299,
1559439077.127983570,
1559439077.629561186,
1559439078.130370378,
1559439078.631809473,
1559439079.132480145,
1559439079.633146763,
1559439080.133863688,
1559439080.635303736,
1559439081.136044502,
1559439081.636738300,
1559439082.137473345,
1559439082.638966799
],
"Values": [
4075520,
4075520,
5582848,
5582848,
4775936,
5312512,
5611520,
5341184,
4804608,
4788224,
4788224,
4788224,
4775936,
4775936
]
},
{
"Name": "ProcSwap",
"Timestamps": [
1559439076.125116587,
1559439076.626415253,
1559439077.127984524,
1559439077.629562140,
1559439078.130371332,
1559439078.631810188,
1559439079.132480860,
1559439079.633147478,
1559439080.133864641,
1559439080.635304451,
1559439081.136045218,
1559439081.636739254,
1559439082.137474060,
1559439082.638967514
],
"Values": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"Name": "ProcVMPeak",
"Timestamps": [
1559439076.125111103,
1559439076.626415014,
1559439077.127984285,
1559439077.629561901,
1559439078.130371094,
1559439078.631809950,
1559439079.132480621,
1559439079.633147240,
1559439080.133864403,
1559439080.635304213,
1559439081.136044979,
1559439081.636739016,
1559439082.137473822,
1559439082.638967276
],
"Values": [
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536,
175169536
]
}
]