diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/tools/webide/monitor | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/tools/webide/monitor')
-rw-r--r-- | files/ru/tools/webide/monitor/index.html | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/files/ru/tools/webide/monitor/index.html b/files/ru/tools/webide/monitor/index.html new file mode 100644 index 0000000000..0f7a579909 --- /dev/null +++ b/files/ru/tools/webide/monitor/index.html @@ -0,0 +1,110 @@ +--- +title: Monitor +slug: Tools/WebIDE/Monitor +tags: + - Monitor +translation_of: Archive/WebIDE/Monitor +--- +<div>{{ToolsSidebar}}</div><p>WebIDE Monitor инструмент предназначеный помочь вам отслеживать эффективность работы <a href="/ru/docs/">Firefox OS</a> приложений и устройств.</p> +<p><img alt="The WebIDE Monitor" src="https://thefiletree.com/jan/shots/monitor/monitor.png" style="width: 800px; height: 464px;"></p> +<p>Monitor способен отображать существующие, интерактивные графики для визуализации временных рядов.</p> +<h2 id="Доступные_графики">Доступные графики</h2> +<p>Monitor поставляется с несколькими различными графиками. Они появляются сразу после того, как WebIDE подключается к Firefox OS.</p> +<h3 id="Обычный_пример">Обычный пример</h3> +<p><img alt="Unique Set Size" src="https://thefiletree.com/jan/shots/monitor/uniquesetsize.png" style="width: 879px; height: 310px;"></p> +<p>График показывает работу всех процессов Firefox OS в течение данного времени. Если вас интересует потребление памяти приложением в Firefox OS, запустите приложения, и процесс использования памяти отобразится на графике.</p> +<h2 id="Отображение_ваших_данных">Отображение ваших данных</h2> +<p>Отображать любые данные на Monitor очень легко, он принимает отформатированные обновления из разных источников.</p> +<h3 id="Устройства_Firefox_OS">Устройства Firefox OS</h3> +<p>Вы можете отправить данные с подключенного устройства, путем отправки уведомления наблюдателя.</p> +<p>Примечание: Если вы хотите сделать это в <a href="https://developer.mozilla.org/Marketplace/Options/Packaged_apps#Certified_app" title="Certified app">сертифицированном приложении</a> пожалуйста, следуйте <a href="https://developer.mozilla.org/docs/Tools/WebIDE#Debugging_certified_apps" title="Debugging certified apps">этой инструкции</a>.</p> +<h4 id="JavaScript">JavaScript</h4> +<p><code>Services.obs.notifyObservers(null, 'devtools-monitor-update', data);</code></p> +<p>Вы можете отправить данные из любого кода JS с chrom привилегией. Пример измерения времени выполнения определенного кода JS:</p> +<p><code>const Services = require('Services');<br> + <br> + var start = Date.now();<br> + // code to benchmark<br> + var stop = Date.now();<br> + <br> + var data = { graph: 'Performance', myFeature: stop-start, time: stop }</code><code>;<br> + Services.obs.notifyObservers(null, 'devtools-monitor-update', JSON.stringify(data));</code></p> +<h4 id="C">C++</h4> +<p><code>observerService->NotifyObservers(nullptr, "devtools-monitor-update", data);</code></p> +<p>Вы можете отправить данные из любого места в Gecko. Пример измерения времени выполнения определенного кода:</p> +<p><code>#include <time.h><br> + #include "nsPrintfCString.h"<br> + #include "nsIObserverService.h"<br> + <br> + clock_t start = clock();<br> + // code to benchmark<br> + clock_t stop = clock();<br> + double time = (double)(stop - start) / (CLOCKS_PER_SEC / 1000);<br> + <br> + nsCOMPtr<nsIObserverService> observerService = services::GetObserverService();<br> + if (observerService) {<br> + nsPrintfCString str("{\"graph\":\"Performance\",\"myFeature\":%f}", time);<br> + nsAutoString data = NS_ConvertUTF8toUTF16(str);<br> + observerService->NotifyObservers(nullptr, "devtools-monitor-update", data.get());<br> + }</code></p> +<h3 id="С_вашего_компьютера">С вашего компьютера</h3> +<p> </p> +<p>Можно легко передавать данные на Monitor по серверу WebSockets. Это может быть полезно, если вы пишете расширение Firefox, инструмент командной строки или веб-service.</p> +<p>По умолчанию Monitor ищет сервер работающий на порту 9000 вашего компьютера. Вы можете изменить это путем обновления</p> +<p><code>devtools.webide.monitorWebSocketURL</code> preference.</p> +<p>Вы также можете в этот момент принимать данные из локальной сети или из любой точки мира через Интернет.</p> +<h4 id="Node.js">Node.js</h4> +<p><code>TODO</code></p> +<h4 id="Python">Python</h4> +<p><code>TODO</code></p> +<h3 id="Поддерживаемые_форматы">Поддерживаемые форматы</h3> +<p>Monitor принимает данные в виде объектов JSON, которые обычно выглядят следующим образом:</p> +<p><code>{</code><br> + <code> "graph": "myGraph",<br> + "curve": "myCurve",<br> + "value": 42,<br> + "time": 1234567890<br> + }</code></p> +<p>Этот формат предназначен для большего удобства. Если указано, что График или кривая не существует, он будет создан автоматически.</p> +<h4 id="Произвольные_имена">Произвольные имена</h4> +<p>Неопознанные записи будут рассматриваться как имя кривой и стоимости.</p> +<p>Для маленького пакета данных вы можете использовать что-то вроде:</p> +<p><code>{ "myCurve": 42 }</code></p> +<p>Это добавит данные указывающие на "myCurve" в графе no name. Отсутствует time по умолчанию, когда Monitor получил пакет.</p> +<p>Для повышения точности лучше всегда указывать метку времени "timestamp" для хранения данных:</p> +<p><code>{<br> + "current": 60,</code><br> + <code> "voltage": 500,<br> + <code>"time": 1234567890</code><br> + }</code></p> +<h4 id="Несколько_значений">Несколько значений</h4> +<p>В одном обновлении, вы можете отправить данные для нескольких кривых:</p> +<p><code>{<br> + "graph": "myGraph",<br> + "myCurve1": 50,<br> + "myCurve2": 300,<br> + "myCurve3": 9000,<br> + "time": 1234567890<br> + }</code></p> +<p>Или несколько точек данных для одной кривой:</p> +<p><code>{<br> + "graph": "myGraph",<br> + "curve": "myCurve",<br> + "values": [<br> + { "time": 1234567890, "value": 42 },<br> + { "time": 1234567981, "value": 51 }<br> + ]<br> + }</code></p> +<h4 id="Multiple_обновления">Multiple обновления</h4> +<p>И вы также можете отправить несколько обновлений данных в виде массива:</p> +<p><code>[<br> + { "graph": "Memory", "time": 1234567890, "System": 2600, "My App": 1000 },<br> + { "graph": "Power", "time": 1234567890, "current": 60, "voltage": 500 }<br> + ]</code></p> +<h4 id="Специальное_событие">Специальное событие</h4> +<p>Чтобы отметить специальное событие в графе с вертикальной чертой, добавьте ключ событий для обновления вашего:</p> +<p><code>{<br> + "graph": "myGraph",<br> + "event": "myEvent",<br> + "time": 1234567980<br> + }</code></p> |