<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[как сделать суммирующий график?]]></title><description><![CDATA[<p dir="auto">Туплю.<br />
Надо сделать график, в котором будет сумма DCI с 30 серверов (активные сессии).<br />
Т.е. нудо получить одно значение, которое покажет сколько всего сессий.<br />
Как это сделать?</p>
]]></description><link>https://forum.netxms.org/topic/5219/как-сделать-суммирующий-график</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 23:29:39 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/5219.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Aug 2017 05:25:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to как сделать суммирующий график? on Wed, 22 Aug 2018 10:39:46 GMT]]></title><description><![CDATA[<p dir="auto">В FindObject передается имя объекта или его идентификатор. Я не сообразил что SERVERS/TERMINALS скорее всего имелось ввиду контейнер TERMINALS в контейнере SERVERS. Если это так, то надо как параметр передавать строку "TERMINALS".</p>
]]></description><link>https://forum.netxms.org/post/24725</link><guid isPermaLink="true">https://forum.netxms.org/post/24725</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Wed, 22 Aug 2018 10:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to как сделать суммирующий график? on Tue, 21 Aug 2018 08:23:44 GMT]]></title><description><![CDATA[<p dir="auto">Сделал в ноде DCI, режим Script, выбрал скрипт (пробовал оба варианта в этой теме)</p>
<p dir="auto">Вот эта строка почему-то мешала<br />
return CalculateTotal(FindObject("SERVERS/TERMINALS"));</p>
<p dir="auto">Сделал<br />
return CalculateTotal(FindObject(12945));</p>
]]></description><link>https://forum.netxms.org/post/24717</link><guid isPermaLink="true">https://forum.netxms.org/post/24717</guid><dc:creator><![CDATA[Akira]]></dc:creator><pubDate>Tue, 21 Aug 2018 08:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to как сделать суммирующий график? on Thu, 02 Nov 2017 09:12:34 GMT]]></title><description><![CDATA[<p dir="auto">Скрипт создавать в ScriptLibrary. Конкретный скрипт будет такой (я так понял что название верхнего контейнера "SERVERS/TERMINALS"):</p>
<pre><code>// Hash map to avoid duplicates
global processedNodes = %{};

// Find "Entire Network" object and start enumeration from it
return CalculateTotal(FindObject("SERVERS/TERMINALS"));

// This function walks object tree recursively starting from given root
sub CalculateTotal(rootObject)
{
	sum = 0.0;

	// Walk all child objects
	foreach(o : GetObjectChildren(rootObject))
	{
		if (classof(o) == "Node")
		{
			if ((processedNodes[o-&gt;id] == null) &amp;&amp; (o-&gt;name ilike "TER00*"))
			{
				v = GetDCIValueByDescription(o, "Terminal - Active Sessions");
				if (v != null)
					sum += real(v);
				processedNodes[o-&gt;id] = 1; // actual value is irrelevant, it's just a flag
			}
		}
		else if (classof(o) == "NetObj")
		{
			// For all other objects, go down the tree
			// There can be additional checks for object class, like
			// if (o-&gt;type == 5)
			sum += CalculateTotal(o);
		}
	}
	return sum;
}
</code></pre>
]]></description><link>https://forum.netxms.org/post/23317</link><guid isPermaLink="true">https://forum.netxms.org/post/23317</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 02 Nov 2017 09:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to как сделать суммирующий график? on Wed, 13 Sep 2017 07:57:10 GMT]]></title><description><![CDATA[<p dir="auto">А можно чуть подробнее, в привязке к моим нуждам.</p>
<ol>
<li>Где этот скрип прописывать?<br />
    Создать в какой-нибудь ноде DCI и в Tranformation?<br />
    Или в Script Library?</li>
<li>Вот у меня есть дерево SERVERS/TERMINALS<br />
    Как суммировать во всех нодах в этом дереве, которые начинаются на TER00, параметр с именем "Terminal - Active Sessions"?</li>
</ol>
]]></description><link>https://forum.netxms.org/post/23069</link><guid isPermaLink="true">https://forum.netxms.org/post/23069</guid><dc:creator><![CDATA[Akira]]></dc:creator><pubDate>Wed, 13 Sep 2017 07:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to как сделать суммирующий график? on Thu, 31 Aug 2017 12:51:07 GMT]]></title><description><![CDATA[<p dir="auto">Я бы предложил на какой-нибудь ноде сделать script DCI. Скрипт пройдется по всем нодам, просуммирует значения, и вернет сумму. Типа такого:</p>
<pre><code>// Hash map to avoid duplicates
global processedNodes = %{};

// Find "Entire Network" object and start enumeration from it
return CalculateTotal(FindObject(1));

// This function walks object tree recursively starting from given root
sub CalculateTotal(rootObject)
{
	sum = 0.0;

	// Walk all child objects
	foreach(o : GetObjectChildren(rootObject))
	{
		if (classof(o) == "Node")
		{
			if (processedNodes[o-&gt;id] == null)
			{
				v = GetDCIValueByName(o, "System.CPU.Usage");
				if (v != null)
					sum += real(v);
				processedNodes[o-&gt;id] = 1; // actual value is irrelevant, it's just a flag
			}
		}
		else if (classof(o) == "NetObj")
		{
			// For all other objects, go down the tree
			// There can be additional checks for object class, like
			// if (o-&gt;type == 5)
			sum += CalculateTotal(o);
		}
	}
	return sum;
}
</code></pre>
<p dir="auto">Конечно надо поставить корректное имя параметра в GetDCIValueByName. Можно его также передавать как параметр DCI, тогда будет универсальный скрипт.</p>
]]></description><link>https://forum.netxms.org/post/23011</link><guid isPermaLink="true">https://forum.netxms.org/post/23011</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 31 Aug 2017 12:51:07 GMT</pubDate></item></channel></rss>