Общие графические и графические решения - PullRequest
2 голосов
/ 18 декабря 2010

Я ищу универсальное решение для построения графиков, в идеале не хостинговое, которое предоставляет следующие функции: Диаграмма кортежа значений, где значения:
1) Сервисный идентификатор (например, загрузка ЦП)
2) Идентификатор клиента в этой услуге (например, IP-адрес сервера)
3) Значение
4) метка времени с разрешением в миллисекундах / секундах.

Дополнительно: Я хотел бы также расширить понятие идентификатора клиента, продолжая приведенный выше пример, я хотел бы хранить статистику для каждого ядра отдельно, поэтому другим идентификатором будет Core 1 / Core 2 ..

Теперь, чтобы убедиться, что я четко сформулировал свою проблему, мне не нужна утилита, которая собирает этой статистики. Я хотел бы что-то, что хранит их, но, это также не обязательно, я всегда могу хранить их в MySQL, или что-то подобное.

То, что я ищу, - это то, что принимает значения, подобные этим, и красиво их отображает множеством способов (временные шкалы, движение и обычные [пирог, бар ..]). По сути, хороший пакет визуализации, который позволяет мне использовать все эти данные. Я собираю данные из нескольких служб, из нескольких приложений, и точки данных будут иметь разное разрешение. Некоторые данные будут включать в себя несколько уровней вложенности, некоторые - нет. (Например, ЦП будет понижаться до IP-адреса сервера, ЦП #, тогда как память будет только IP-адресом сервера, но будет включать в себя другой идентификатор, то есть free / used / cached в качестве «вторичного» идентификатора. Что-то вроде средней задержки запроса может не у меня вообще есть вторичный идентификатор, в случае ping). То, что я пытаюсь донести, это то, что было бы здорово иметь несколько слоев идентификаторов. Чтобы добавить один последний пример того, где было бы замечательно использовать несколько идентификаторов: добавление дополнительного идентификатора поверх ip / cpu #, а именно имени процесса. Я думаю, преимущества этого очевидны.

Для некоторых приложений мы можем собирать данные в очень узкой области, уделяя особое внимание каждому аспекту, в других случаях это может быть более общая статистика. Когда что-то идет не так, оба приходят полезными: первый быстро говорит «что-то пошло не так», а второй - «почему?».

Кроме того, было бы неплохо, если бы приложение для построения диаграмм выбрасывало «плохие» значения, то есть если по какой-то причине наша программа мониторинга начала выбрасывать значения 300% ЦП, используемых на одном ядре, в течение 10 секунд, это было бы неплохо, если бы сами графики не отражали это в долгосрочной перспективе. Может быть, какое-то сглаживание? Очевидно, что это можно сделать на уровне данных, так что это вовсе не является обязательным требованием.

Наконец, было бы здорово сравнить два момента времени или сравнить два разных идентификатора клиента одного и того же сервиса и т. Д. Без особых усилий.

Я не пристрастен к какому-либо конкретному языку, хотя я бы предпочел что-то в (одном из следующих) PHP, Python, C / C ++, C #, поскольку это языки, с которыми я знаком. Это не должно быть открытым исходным кодом, это не должна быть библиотека, я открыт для того, чтобы использовать то, что соответствует моим целям.

Больше P.S, чем требование: я хотел бы иметь симпатичные диаграммы, которые легко понять нетехническим людям, и на которые можно воздействовать (и даже смотреть!).

Я открыт для разъяснений, и заранее спасибо за ваше время!

1 Ответ

1 голос
/ 18 декабря 2010

Я почти уверен, что protovis соответствует всем вашим требованиям. Но у этого есть немного кривой обучения. Вы должны учиться на примерах, и есть над чем работать. По умолчанию он создает довольно симпатичные графики. Каждое значение может быть функцией, поэтому вы можете делать такие вещи, как избавление от ваших «плохих» значений.

...