aboutsummaryrefslogtreecommitdiff
path: root/files/ru/tools/webide/monitor
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/tools/webide/monitor
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-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.html110
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-&gt;NotifyObservers(nullptr, "devtools-monitor-update", data);</code></p>
+<p>Вы можете отправить данные из любого места в Gecko. Пример измерения времени выполнения определенного кода:</p>
+<p><code>#include &lt;time.h&gt;<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&lt;nsIObserverService&gt; observerService = services::GetObserverService();<br>
+ if (observerService) {<br>
+   nsPrintfCString str("{\"graph\":\"Performance\",\"myFeature\":%f}", time);<br>
+   nsAutoString data = NS_ConvertUTF8toUTF16(str);<br>
+   observerService-&gt;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>