Ad Widget

Collapse

Где хранятся данные для отображения в гра

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mercy
    Junior Member
    • Mar 2006
    • 14

    #1

    Где хранятся данные для отображения в гра

    А откуда берутся данные для построения графиков того периода, для которого даже trends не осталось?

    У меня данные хранятся месяц, трендс - 3 месяца.

    например.
    возьмем график траффика.
    согласно постргресу самые старые данные в истории за 14 июня , в трендах за 12 мая
    Code:
    zabbix=> SELECT itemid, min(clock) from history_uint where itemid=10617 or itemid=10708 group by itemid;
     itemid |    min
    --------+------------
      10708 | 1276519528
      10617 | 1276519497
    (2 rows)
    
    zabbix=> SELECT itemid, min(clock) from trends_uint where itemid=10617 or itemid=10708 group by itemid;
     itemid |    min
    --------+------------
      10617 | 1273654800
      10708 | 1273928400
    (2 rows)
    Но если посмотреть график, то видно, что 12-ым мая он явно не ограничивается. Даже пики рисует.. ГДЕ он берет эти данные?


    В общем-то практического значения для меня эта его особенность не имеет, но уж больно любопытно стало
    Last edited by mercy; 14-07-2010, 15:09. Reason: изменила название
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Я думаю, что вы получили такой результат, т.к неправильно нашли itemid.
    Что я делал
    Элементы, которые я выбрал для исследования появились в серверах из шаблона Template_Linux
    Нашёл hosted нужного мне сервера (посмотрел в Web интерфейсе Настройка -> Узлы сети ->Имя узла в URL https://XXXXX/zabbix/hosts.php?form=...e82fc2cf39608f. &hostid=10160& Проверил, что hostid я определил правильно.
    select * from hosts where hostid="10160";
    Нашёл itemid для нужных мне элементов
    select description,itemid from items where hostid="10160";
    | Processor load15 | 50036 |
    | Processor load | 50037 |
    | Processor load5 | 50038 |
    Взял следующий сервер hostid=10181
    select description,itemid from items where hostid="10181";
    | Processor load15 | 53036 |
    | Processor load | 53037 |
    | Processor load5 | 53038 |

    select description,itemid from items where hostid="10149";
    Processor load15 | 99893 |
    | Processor load | 99894 |
    | Processor load5 | 99895 |


    Далее по itemid нашёл значения
    select * from trends where itemid="99893" order by 2;
    +--------+------------+-----+-----------+-----------+-----------+
    | itemid | clock | num | value_min | value_avg | value_max |
    +--------+------------+-----+-----------+-----------+-----------+
    | 99893 | 1261134000 | 3 | 1.0400 | 1.0433 | 1.0500 |
    | 99893 | 1261137600 | 4 | 1.0800 | 1.0875 | 1.1000 |
    | 99893 | 1261141200 | 5 | 1.0500 | 1.0740 | 1.0800 |
    | 99893 | 1261144800 | 4 | 1.0700 | 1.0850 | 1.1000 |
    | 99893 | 1261148400 | 4 | 1.0400 | 1.0675 | 1.1000 |
    | 99893 | 1261152000 | 4 | 1.0700 | 1.0850 | 1.1100 |
    | 99893 | 1261155600 | 4 | 1.0700 | 1.0850 | 1.1000 |
    | 99893 | 1261159200 | 4 | 1.0800 | 1.0900 | 1.1000 |
    | 99893 | 1261162800 | 4 | 1.0400 | 1.0650 | 1.0900 |
    | 99893 | 1261166400 | 4 | 1.0700 | 1.0900 | 1.1100 |

    Написал программку для преобразования времени
    Code:
    #! /usr/bin/perl
    print "test $ARGV[0]\n";
    print scalar(localtime($ARGV[0])),"\n";
    Все соответствует, каждый час записывается min, max, avg в таблицу trends и по ним строятся графики. Графики через Web отображаются за тот же интервал.
    ./test2.pl 1261134000
    test 1261134000
    Fri Dec 18 14:00:00 2009
    bash-3.00$ ./test2.pl 1261137600
    test 1261137600
    Fri Dec 18 15:00:00 2009
    bash-3.00$ ./test2.pl 1261141200
    test 1261141200
    Fri Dec 18 16:00:00 2009
    bash-3.00$ ./test2.pl 1261144800
    test 1261144800
    Fri Dec 18 17:00:00 2009


    Для чего используется колонка num в таблицах trends_uint и trends, я так и не понял. Кто-нибудь знает?
    Last edited by dima_dm; 15-07-2010, 10:08.

    Comment

    • ugh
      Senior Member
      • Jun 2009
      • 296

      #3
      mysql> select from_unixtime(1265511600);
      +---------------------------+
      | from_unixtime(1265511600) |
      +---------------------------+
      | 2010-02-07 08:00:00 |
      +---------------------------+
      1 row in set (0.01 sec)
      и утилиток не надо никаких

      кол-во записей по которым тренд сформирован
      наверное чтобы зумить графики по которым хистори уже нет

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Originally posted by ugh
        кол-во записей по которым тренд сформирован
        наверное чтобы зумить графики по которым хистори уже нет
        Спасибо, проверил, действительно num кол-во записей по которым тренд сформирован.

        Comment

        • mercy
          Junior Member
          • Mar 2006
          • 14

          #5
          dima_dm, спасибо.
          Вы оказались правы.
          Для данного хоста было несколько итемов аналогичных по названию и одинаковых по смыслу, оставшихся с переноса итемов в шаблоны. И забыли исправить графики. Поэтому я смотрела не те итемы.
          Благодарю

          с программкой - это жестоко
          я через date -jr проверяю (во фре)

          ugh, я сейчас, конечно, и сама гляну, но вдруг Вы знаете для постгреса команду, аналогичную мускульной select from_unixtime ?

          Comment

          • ugh
            Senior Member
            • Jun 2009
            • 296

            #6
            SELECT TIMESTAMP WITH TIME ZONE 'epoch' + unix время * INTERVAL '1 second';

            Comment

            • mercy
              Junior Member
              • Mar 2006
              • 14

              #7
              Originally posted by ugh
              SELECT TIMESTAMP WITH TIME ZONE 'epoch' + unix время * INTERVAL '1 second';
              да уж. я лучше через date ))

              Comment

              • iks
                Member
                • Jun 2010
                • 56

                #8
                Можно так
                SELECT to_timestamp(время);

                если не поможет, то так
                SELECT to_char(to_timestamp(время), 'YYYY-MM-DD HH24:MI:SS');

                Comment

                Working...