Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

モニタ

WebIDE のモニタは、Firefox OS アプリや端末のパフォーマンスの追跡を支援するように設計された汎用データツールです。

The WebIDE Monitor

モニタは時系列を可視化するため、リアルタイムにインタラクティブなグラフを表示できます。

使用可能なグラフ

モニタは、さまざまなグラフを提供します。これらは通常、WebIDE を Firefox OS のランタイムに接続したときから表示します。

Unique Set Size

Unique Set Size

このグラフは、すべての Firefox OS プロセスのメモリフットプリントを時系列で表示します。Firefox OS アプリのメモリ消費に関心がある場合はこのグラフを表示すれば、アプリのプロセスが使用するプライベートメモリが表示されます。

独自データを表示する

モニタは多くのさまざまな発信元から自由な形式のデータを受け入れますので、どのような種類のデータでも比較的容易に表示できます。

Firefox OS デバイスから

Observer 通知の送信により、接続した端末からデータを送信できます。

注記: 認定アプリでこれを行いたい場合は、こちらの手順に従ってください。

Services.obs.notifyObservers(null, 'devtools-monitor-update', data);

chrome 権限を持つ JS コードから、データを送信できます。ある JS コードの実行時間を測定する例を示します:

JavaScript

const Services = require('Services');

var start = Date.now();
// code to benchmark
var stop = Date.now();

var data = { graph: 'Performance', myFeature: stop-start, time: stop };
Services.obs.notifyObservers(null, 'devtools-monitor-update', JSON.stringify(data));

C++

observerService->NotifyObservers(nullptr, "devtools-monitor-update", data);

Gecko のどこからでもデータを送信できます。あるコードの実行時間を測定する例を示します:

#include <time.h>
#include "nsPrintfCString.h"
#include "nsIObserverService.h"

clock_t start = clock();
// code to benchmark
clock_t stop = clock();
double time = (double)(stop - start) / (CLOCKS_PER_SEC / 1000);

nsCOMPtr<nsIObserverService> observerService = services::GetObserverService();
if (observerService) {
  nsPrintfCString str("{\"graph\":\"Performance\",\"myFeature\":%f}", time);
  nsAutoString data = NS_ConvertUTF8toUTF16(str);
  observerService->NotifyObservers(nullptr, "devtools-monitor-update", data.get());
}

コンピュータから

WebSocket サーバを通して、簡単にモニタへデータを送信できます。Firefox の拡張機能、コマンドラインツール、Web サービスを作成する場合に役立つでしょう。

デフォルトでは、モニタはコンピュータの 9000 番ポートで実行するサーバを見ています。これは、設定項目 devtools.webide.monitorWebSocketURL で変更できます。

モニタはローカルネットワーク内だけでなく、インターネットのどこからでもデータを受け入れるようにすることができます。

Node.js

TODO

Python

TODO

サポートする形式

モニタは、概ね以下のような JSON オブジェクト形式のデータを受け入れます:

{
  "graph": "myGraph",
  "curve": "myCurve",
  "value": 42,
  "time": 1234567890
}

この形式は高い柔軟性を持たせようとするものです。指定されたグラフが存在しない場合は、自動的に作成します。

任意の名称

認識できない項目は、グラフの名称と値であるとみなします。

送信可能な最小のパケットは以下のようなものです:

{ "myCurve": 42 }

これは無名のグラフの "myCurve" に、データポイントを追加します。time がない場合の既定値は、モニタがパケットを受け取った時刻です。

精度を高めるため、データで常に timestamp を指定するとよいでしょう:

{
  "current": 60,
  "voltage": 500,
  "time": 1234567890
}

複数の値

1 回の更新で、複数のグラフのデータを送信できます:

{
  "graph": "myGraph",
  "myCurve1": 50,
  "myCurve2": 300,
  "myCurve3": 9000,
  "time": 1234567890
}

または、ひとつのグラフに複数のデータポイントを示すことができます:

{
  "graph": "myGraph",
  "curve": "myCurve",
  "values": [
    { "time": 1234567890, "value": 42 },
    { "time": 1234567981, "value": 51 }
  ]
}

複数の更新

配列形式で、複数の更新データを送信することもできます:

[
  { "graph": "Memory", "time": 1234567890, "System": 2600, "My App": 1000 },
  { "graph": "Power", "time": 1234567890, "current": 60, "voltage": 500 }
]

時間指定のイベント

グラフ内の垂直線で特定のイベントを示すため、更新データに event キーを付加します:

{
  "graph": "myGraph",
  "event": "myEvent",
  "time": 1234567980
}

ドキュメントのタグと貢献者

 このページの貢献者: yyss
 最終更新者: yyss,