Ad Widget

Collapse

Элемент с вычисляемым типом по другим эле

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sangvc
    Junior Member
    • Jan 2018
    • 12

    #1

    Элемент с вычисляемым типом по другим эле

    Имеются 2 элемента данных:
    1. "Всего маршрутов" с ключом jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", TotalRoutes]
    2. "Всего стартовало маршрутов" с ключом jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", StartedRoutes]

    Хочу создать элемент данных "Всего не стартовало маршрутов" с вычисляемым типом, на подобие: "Всего маршрутов".last() - "Всего стартовало маршрутов".last()
    Как это сделать?
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by sangvc
    Имеются 2 элемента данных:
    1. "Всего маршрутов" с ключом jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", TotalRoutes]
    2. "Всего стартовало маршрутов" с ключом jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", StartedRoutes]

    Хочу создать элемент данных "Всего не стартовало маршрутов" с вычисляемым типом, на подобие: "Всего маршрутов".last() - "Всего стартовало маршрутов".last()
    Как это сделать?
    Как в документации написано, но с поправкой на ваши данные

    Comment

    • aib
      Senior Member
      • Jan 2014
      • 1615

      #3
      К сожалению, иногда эти вычисления могут приводить к неточным результатам. Особенно в переходные периоды, когда разные параметры снимаются в несинхронизированные моменты времени.

      В устоявшейся обстановке такая проблема проявляется редко.
      Sincerely yours,
      Aleksey

      Comment

      • sangvc
        Junior Member
        • Jan 2018
        • 12

        #4
        Сделал как:
        last(jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", TotalRoutes])-last(jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", StartedRoutes])

        Пишет ошибку: Cannot evaluate function "last(type=context,name=\"camelContextSmev3broadca stsvc\"", TotalRoutes])": item "Alex-PC:jmx["org.apache.camel:context=camelContextSmev3broadca stsvc" does not exist.

        Comment

        • sangvc
          Junior Member
          • Jan 2018
          • 12

          #5
          Вот xml этого элемента
          Code:
          <item>
                              <name>Всего не стартовало маршрутов</name>
                              <type>15</type>
                              <snmp_community/>
                              <snmp_oid/>
                              <key>1</key>
                              <delay>{$UPDATE_INTERVAL}</delay>
                              <history>{$HISTORY_INTERVAL}</history>
                              <trends>{$DYNAMIC_INTERVAL}</trends>
                              <status>0</status>
                              <value_type>3</value_type>
                              <allowed_hosts/>
                              <units/>
                              <snmpv3_contextname/>
                              <snmpv3_securityname/>
                              <snmpv3_securitylevel>0</snmpv3_securitylevel>
                              <snmpv3_authprotocol>0</snmpv3_authprotocol>
                              <snmpv3_authpassphrase/>
                              <snmpv3_privprotocol>0</snmpv3_privprotocol>
                              <snmpv3_privpassphrase/>
                              <params>last(jmx[&quot;org.apache.camel:context=camelContextSmev3broadcastsvc,type=context,name=\&quot;camelContextSmev3broadcastsvc\&quot;&quot;, TotalRoutes])-last(jmx[&quot;org.apache.camel:context=camelContextSmev3broadcastsvc,type=context,name=\&quot;camelContextSmev3broadcastsvc\&quot;&quot;, StartedRoutes])</params>
                              <ipmi_sensor/>
                              <authtype>0</authtype>
                              <username/>
                              <password/>
                              <publickey/>
                              <privatekey/>
                              <port/>
                              <description/>
                              <inventory_link>0</inventory_link>
                              <applications>
                                  <application>
                                      <name>Apache Camel Group</name>
                                  </application>
                              </applications>
                              <valuemap/>
                              <logtimefmt/>
                              <preprocessing/>
                              <jmx_endpoint/>
                              <master_item/>
                          </item>

          Comment

          • sangvc
            Junior Member
            • Jan 2018
            • 12

            #6
            Поменял формулу на
            100-last("jmx[\"org.apache.camel:context=camelContextSmev3broadc astsvc,type=context,name=\"camelContextSmev3broadc astsvc\"\", StartedRoutes]")
            Ошибка Cannot evaluate function "last()": item "Alex-PC:jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name="camelContextSmev3broadcas tsvc"", StartedRoutes]" does not exist.

            Само значение StartedRoutes получаю нормально

            Comment

            • aib
              Senior Member
              • Jan 2014
              • 1615

              #7
              Покажите XML-описание элементов TotalRoutes и StartedRoutes.
              Слишком уж сложные у вас имена элементов, на мой взгляд...
              Sincerely yours,
              Aleksey

              Comment

              • rough-84
                Senior Member
                • Oct 2014
                • 198

                #8
                Кавычки вроде не там стоят
                попробуйте вот так

                last(jmx["org.apache.camel:context=camelContextSmev3bro adca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\", TotalRoutes]")-last(jmx["org.apache.camel:context=camelContextSmev3bro adca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\", StartedRoutes]")

                хотя лучше напишите как выглядит полный item и тогда можно будут написать как будет правильно, не совсем понятно название хоста это jmx или org.apache.camel

                самый простой рабочий пример будет выглядеть как

                last("hostname:item[...]")-
                last("hostname:item[...]")
                если в item присутсвуют двойные кавычки, они экранируются \
                Last edited by rough-84; 15-01-2018, 14:13.

                Comment

                • sangvc
                  Junior Member
                  • Jan 2018
                  • 12

                  #9
                  Пробую сделать как last("adp-ips01:jmx[\"org.apache.camel:context=camelContextSmev3broadc astsvc,type=context,name=\"camelContextSmev3broadc astsvc\"\", TotalRoutes]")
                  ошибка итем не существует
                  хост adp-ips01
                  итем jmx["org.apache.camel:context=camelContextSmev3broadca stsvc,type=context,name=\"camelContextSmev3broadca stsvc\"", TotalRoutes]

                  Comment

                  • aib
                    Senior Member
                    • Jan 2014
                    • 1615

                    #10
                    Хочу еще раз попросить - покажите скриншот с описанием элемента, который вы пытаетесь использовать
                    Sincerely yours,
                    Aleksey

                    Comment

                    • sangvc
                      Junior Member
                      • Jan 2018
                      • 12

                      #11
                      вот https://prnt.sc/i19p6s

                      Comment

                      • aib
                        Senior Member
                        • Jan 2014
                        • 1615

                        #12
                        Originally posted by sangvc
                        И еще один скриншот - оригинального элемента данных.
                        Не того, который вы пытаетесь создать - а того, который собирается.
                        Вот этого
                        Code:
                        jmx[\"org.apache.camel:context=camelContextSmev3broadc astsvc,type=context,name=\"camelContextSmev3broadc astsvc\"\", TotalRoutes]
                        Sincerely yours,
                        Aleksey

                        Comment

                        Working...