GithubHelp home page GithubHelp logo

Add tag support about pinboard HOT 32 CLOSED

intaro avatar intaro commented on June 1, 2024
Add tag support

from pinboard.

Comments (32)

ulfdalen avatar ulfdalen commented on June 1, 2024

Ребят, а не подскажите - будите тэги делать или уже забросили проект?

from pinboard.

muxx avatar muxx commented on June 1, 2024

Да, планируем. Руки не дошли.

Yes, in plans. So far, we are busy.

from pinboard.

ulfdalen avatar ulfdalen commented on June 1, 2024

А, случаем, не подскажите - когда можно ожидать эту, очень востребованную, функцию?:)
Спасибо за ответ!

from pinboard.

muxx avatar muxx commented on June 1, 2024

Если честно, не раньше ноября. Ребята все загружены пока.

from pinboard.

Zorato avatar Zorato commented on June 1, 2024

Хотел бы узнать как продвигается процесс. Готов внести свой посильный вклад, если дадите направление (куда копать и что/как делать).

from pinboard.

muxx avatar muxx commented on June 1, 2024

В ветке tags реализована предварительная версия поддержки тегов. Напишу в чем она заключается:

Поддержка request tags

В pinba можно помечать тегами запросы с помощью pinba_tag_set(). Эти теги выводятся во всех вкладках, кроме Overview. Примеры:

2014-05-04 21 44 02

2014-05-04 21 44 23

Поддержка timer и timertag

Pinba позволяет таймерами замерять отдельные участки кода и помечать таймеры тегами. Pinboard, пока только в разделе Live, показывает рядом с запросом ссылку "Timers details" в случае, если с запросом пришли таймеры. Ссылку видно на скрине выше.

При переходе по ссылке открывается страничка с детализацией по запросу. Пример:

2014-05-04 21 50 35

Таймеры группируются по значениям тега, который встречается во всех таймерах. В примерах это тег category, который встречается со значениям memcache, doctrine, template. Вывод без группировки пока не реализован, но будет.

Сейчас выводятся только реал-тайм данные из таблиц request, timer, tag, timertag. Планируется реализовать сохранение таймеров для запросов, которые логгируются во вкладки Request time, Memory peak usage, CPU peak usage, Statuses.

Если у вас есть пожелания или замечания по реализации данной вещи, велкам.

from pinboard.

flrnull avatar flrnull commented on June 1, 2024

Небольшой комментарий (пожелание).

Самое главное, что нужно (по крайней мере в очень большой части проектов) — это график в разрезе категории/тега. То есть я хочу знать, сколько времени сейчас в среднем по всем запросам занимает каждая функциональность проекта или часть кода.

Посмотреть подробности по конкретному запросу — это профайлинг. Посмотреть среднюю информацию по всем запросам сразу — мониторинг. Вот мониторинга очень не хватает, чтобы начать пользоваться pinboard.

from pinboard.

muxx avatar muxx commented on June 1, 2024

Да, прорабатываю этот вопрос. В текущей реализации тегов нельзя построить отчеты по хосту: либо только по всем запросам либо в рамках обращения к определенному скрипту

Я уточнял этот момент у Антона тут, он на данный момент предложил добавлять hostname, server_name как теги к таймерам. Пойдем пока таким путем. Это, соответственно, будет требовать небольших телодвижений со стороны кода приложения.

Планируем добавить вкладку Timers, там показывать графики для с распределением по операциям. Будем 2 разреза:

  • по тегу вида group=category::operation
  • по двум тегам group=category::operation и server=server_name, в случае, когда несколько серверов БД, memcached и т.д.

from pinboard.

flrnull avatar flrnull commented on June 1, 2024

Это, соответственно, будет требовать небольших телодвижений со стороны кода приложения.

Пока нет других вариантов, это вполне нормально. У кого возникнут сложности с правкой кода, тот просто может использовать разные инстансы мониторинга для разных проектов.

Спасибо за ответ, буду следить. 👍

from pinboard.

muxx avatar muxx commented on June 1, 2024

Мы используем Symfony и Битрикс. Для первого мы сделали бандл https://github.com/intaro/pinba-bundle, которые замеряет все основные параметры, для второго – небольшая заготовка кода https://gist.github.com/muxx/9cc8b65a9105c8ba18a8.

По крайней мере в этих двух решениях мы добавим фиксацию в тегах hostname и server_name. Призываю всех делать аналогичные модули под другие фреймворки, которые вы используете.

from pinboard.

Andrewus avatar Andrewus commented on June 1, 2024

Мы у себя (пинбой мониторится битрикс) таймерами фиксируем время отработки компонентов и виджетов. Для вывода топа самых прожорливых компонент сделали визуализацию отчета tag_report2 у себя в форке: https://github.com/Andrewus/pinboard/tree/tags

from pinboard.

muxx avatar muxx commented on June 1, 2024

А можешь показать, как это у вас выглядит, хотя бы в общем? И также интересно, как вы собираете цифры для компонентов — хакнули битрикс или без затрагивания ядра? Потому как нам удалось только сделать, как я упоминал выше и собирать только данные по БД.

from pinboard.

muxx avatar muxx commented on June 1, 2024

Нам удалось добиться построения таких графиков:
2014-05-22 18 20 14

2014-05-22 18 20 36

Для этого в таймерах нужно указывать 4 параметра в виде:

$pinbaData = pinba_get_info();
$tags = [
    '__hostname' => $pinbaData['hostname'], //имя сервера, на котором исполняется PHP
    '__server_name' => $pinbaData['server_name'], //домен сайта
    'server' => '10.0.0.123', //адрес сервер сервиса (БД, memcached и др.)
    'category' => 'memcached',
    'group' => 'memcached::get',
];

pinba_timer_add($tags, $item['TIME']);

Это в ветке tags и требует последней версии pinba из ветки devel.

from pinboard.

superstas avatar superstas commented on June 1, 2024

В этой ветке наблюдаю небольшой баг при агрегации данных

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'timer_id' in 'field list'

Видимо проблема вот тут: https://github.com/intaro/pinboard/blob/tags/src/Pinboard/Command/AggregateCommand.php#L490

from pinboard.

muxx avatar muxx commented on June 1, 2024

@superstas миграции выполняли https://github.com/intaro/pinboard/wiki/Update#update-between-1x-versions?

from pinboard.

superstas avatar superstas commented on June 1, 2024

@muxx да выполнял.

from pinboard.

muxx avatar muxx commented on June 1, 2024

@superstas а таблицы timer, tag, timertag есть?

from pinboard.

superstas avatar superstas commented on June 1, 2024

Да.

from pinboard.

muxx avatar muxx commented on June 1, 2024

@superstas есть проблема, ага. Подтяните ветку и выполните:

console migration:execute --down 20140519022332
console migration:migrate

from pinboard.

superstas avatar superstas commented on June 1, 2024

@muxx спасибо

from pinboard.

akademic avatar akademic commented on June 1, 2024

Добрый день.
Обновился сегодня на ветку tags и попробовал сделать console migration:migrate
Вылезла такая ошибка:

[PDOException]                                                                                                     
  SQLSTATE[HY000]: General error: 1005 Can't create table 'pinba.ipm_pinba_tag_info_group_server_name' (errno: 140)

Вручную этот запрос в базе не выполняется тоже:

CREATE TABLE `ipm_pinba_tag_info_group_server_name` (
    ->                     `tag1_value` varchar(64) DEFAULT NULL,
    ->                     `tag2_value` varchar(64) DEFAULT NULL,
    ->                     `req_count` int(11) DEFAULT NULL,
    ->                     `req_per_sec` float DEFAULT NULL,
    ->                     `hit_count` int(11) DEFAULT NULL,
    ->                     `hit_per_sec` float DEFAULT NULL,
    ->                     `timer_value` float DEFAULT NULL,
    ->                     `timer_median` float DEFAULT NULL,
    ->                     `ru_utime_value` float DEFAULT NULL,
    ->                     `ru_stime_value` float DEFAULT NULL,
    ->                     `index_value` varchar(256) DEFAULT NULL
    ->                     ,`p90` float DEFAULT NULL,
    ->                     `p95` float DEFAULT NULL,
    ->                     `p99` float DEFAULT NULL
    ->             ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tagN_info:group,__server_name::90,95,99'
    ->         ;

Версия pinba для mysql:

Package: pinba-engine-mysql-5.5
Version: 1.0.0-4~dotdeb.3

from pinboard.

marliotto avatar marliotto commented on June 1, 2024

Добрый день.
Ошибка скорей всего из-за того, что перцентили появились в версии pinba 1.1.0
https://github.com/tony2001/pinba_engine/wiki/Reports#percentiles

from pinboard.

muxx avatar muxx commented on June 1, 2024

У меня таймеры/теги работают корректно только на pinba из ветки devel, т.к. в master pinba бывает падает в момент аггрегации данных по таймерам.

from pinboard.

akademic avatar akademic commented on June 1, 2024

Действительно с версией pinba из devel всё получилось.
Правда собирать её намучился - всё версия api для mysql не подходила.
Но один раз получилось (повторить успех так и не удалось), так что я сразу сделал .deb-файл и ещё Dockerfile для сборки образа с pinba и pinboard.
Кому надо - берите и пользуйтесь:
https://github.com/akademic/docker_pinboard

from pinboard.

muxx avatar muxx commented on June 1, 2024

Графики с персентилями для таймеров пока отключил, т.к. pinba для таймеров выдает на данный момент некорректные персентили. В коде просто закомментировано, кто хочет, может просто раскомментировать.

В итоге в этой задаче остались:

  • общие графики "Hit count" и "Total timer value"
  • Возможность посмотреть таймеры по отдельным live-запросам
  • Логгирование таймеров вместе с медленными запросами
  • Поддержка request tag

Смержил в master.

from pinboard.

bytestostring avatar bytestostring commented on June 1, 2024

Друзья, подскажите пожалуйста в чем может быть причина.
При агрегации данных выдает следующее:

[PDOException]
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tags' in 'field list'

Ставил Pinboard из git,сама пинба последней версии.

from pinboard.

bytestostring avatar bytestostring commented on June 1, 2024

Проблему исправил пересозданием таблицы request, почему-то столбцы tags, tags_cnt не создались.

from pinboard.

1it avatar 1it commented on June 1, 2024

Товарищи, удалось ли решить проблему?

akademic commented on 22 Aug 2014

Добрый день.
Обновился сегодня на ветку tags и попробовал сделать console migration:migrate
Вылезла такая ошибка:

[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table
'pinba.ipm_pinba_tag_info_group_server_name' (errno: 140)

from pinboard.

muxx avatar muxx commented on June 1, 2024

Двумя комментариями ниже было объяснена причина проблемы.

from pinboard.

bytestostring avatar bytestostring commented on June 1, 2024

1it, добрый день!
Проблема в том, что при выполнении полного SQL-файла таблица request создается не полностью.

  1. Удалите таблицу request
  2. Посмотрите в SQL файле схему ее создания.
  3. Выполните запрос на создание таблицы request, убедитесь что столбцы tags, tags_cnt созданы.

Удачи. Если что-то не получится, напишите.

from pinboard.

1it avatar 1it commented on June 1, 2024

Спасибо, но имел ввиду эту ошибку - SQLSTATE[HY000]: General error: 1005 Can't create table 'pinba.ipm_pinba_tag_info_group_server_name' (errno: 140)

Если я правильно понял надо собирать версию 1.1

from pinboard.

muxx avatar muxx commented on June 1, 2024

Еще раз, я писал выше:

У меня таймеры/теги работают корректно только на pinba из ветки devel, т.к. в master pinba бывает падает в момент аггрегации данных по таймерам.

Данная таблица типа pinba:

            CREATE TABLE `ipm_pinba_tag_info_group_server_name` (
                    `tag1_value` varchar(64) DEFAULT NULL,
                    `tag2_value` varchar(64) DEFAULT NULL,
                    `req_count` int(11) DEFAULT NULL,
                    `req_per_sec` float DEFAULT NULL,
                    `hit_count` int(11) DEFAULT NULL,
                    `hit_per_sec` float DEFAULT NULL,
                    `timer_value` float DEFAULT NULL,
                    `timer_median` float DEFAULT NULL,
                    `ru_utime_value` float DEFAULT NULL,
                    `ru_stime_value` float DEFAULT NULL,
                    `index_value` varchar(256) DEFAULT NULL
                    ,`p90` float DEFAULT NULL,
                    `p95` float DEFAULT NULL,
                    `p99` float DEFAULT NULL
            ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tagN_info:group,__server_name::90,95,99'

и для ее создания требуется pinba c ветки devel, например, этой версии tony2001/pinba_engine@5df9ba0

from pinboard.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.