0. freewms 97 23.10.18 12:36 Сейчас в теме

Метрики, графики, статистика = Prometheus + Grafana

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana.
Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Synoecium 412 23.10.18 14:37 Сейчас в теме
2. pallid 188 23.10.18 14:53 Сейчас в теме
Спасибо за конфигурацию

При обращении платформы Prometheus к HTTP-публикации базы 1С, происходит чтение данных из регистра


а каким образом происходит обращение? как это реализовывается в Prometheus?
3. freewms 97 23.10.18 15:32 Сейчас в теме
(2) Предполагается, что "тяжелые" запросы пишут в регистр по факту выполнения, а Prometheus, который опрашивает систему раз в -дцать секунд вместо выполнения "тяжелого" запроса считывает метрику из регистра, предварительно туда записанную.
В дальнейшем предполагается обеспечить возможность считывания одной и той же метрики несколько раз до ее устаревания. Это необходимо, когда частота регламентного опроса Прометеем превышает частоту формирования "тяжелой" метрики.
4. pallid 188 23.10.18 15:44 Сейчас в теме
(3) хотелось уточнить чем забирать данные из http-сервиса? как и чем это настраивается? это выполняет отдельное приложение?
5. freewms 97 23.10.18 15:54 Сейчас в теме
(4) Данные забирает непосредственно сам Прометей.
У него есть понятие "Цель" - это те http-сервисы, которые он опрашивает с определенной периодичностью и забирает соскобы себе в базу.

В приложенном файле - настройка Прометея на 3 цели: сам себя - показатели статистики, PushGateway - для получения с него метрик из короткоживущих процессов (отправляемые в PushGateway методом PUSH) и база WMS, которая и является основным поставщиком данных.
Прикрепленные файлы:
6. freewms 97 23.10.18 16:16 Сейчас в теме
(4) https://prometheus.io/docs/prometheus/latest/getting_started/ тут описание в т.ч. первичная настройка целей и частоты их опроса.
7. pallid 188 23.10.18 17:19 Сейчас в теме
(6)

в prometheus.yml добавить:

  - job_name: 'test'

    basic_auth:
      username: 'Администратор'
      password: ''
      
    scrape_interval: 10s 
    metrics_path: '/test/hs/prometheus/polling' 

    static_configs:
    - targets: ['localhost']
Показать


вроде разобрался
8. freewms 97 23.10.18 17:29 Сейчас в теме
(7) У Вас публикация выполнена на той же системе где стоит Прометей?
И есть подозрение, что кириллицу в части учетки Прометей не воспримет - не проверял, не знаю.
9. pallid 188 23.10.18 17:40 Сейчас в теме
(8) Да, для теста там же

Нормально воспринимает
10. freewms 97 23.10.18 17:42 Сейчас в теме
11. pallid 188 23.10.18 17:52 Сейчас в теме
Какой у вас рецепт для отображения http status code? поделитесь если есть
12. freewms 97 23.10.18 18:31 Сейчас в теме
(11) Посмотрите код http метода get. Там есть формирование кода ответа.
13. freewms 97 23.10.18 18:34 Сейчас в теме
(11) Дополню - часть кодов дает сам web-сервер, часть - 1С. Например, если публикация не сделана на web-сервере, получите 404 средствами web-сервера. А вот если публикация есть, но rest не соответствует шаблону - получите status-код силами 1С.
14. pallid 188 23.10.18 22:10 Сейчас в теме
А вот если публикация есть, но rest не соответствует шаблону - получите status-код силами 1С


То что нужно, а то хотелось уже писать шаблон для ответа
15. freewms 97 23.10.18 22:17 Сейчас в теме
(14) Под "силами 1С" подразумевал описанную программистом реакцию системы на http-запрос.
Пример из конфы в аттаче статьи:
код формирования статуса
16. freewms 97 23.10.18 23:48 Сейчас в теме
Если сообществу интересно - на следующей неделе смогу опубликовать доступ к треккеру по ошибкам и фичам подсистемы. Можно попробовать совместную разработку, еcли есть желающие. EDT, Git и вся фигня.
Yakud3a; eeeio; Labotamy; vanoono; pallid; shalimski; +6 Ответить
20. pallid 188 24.10.18 08:41 Сейчас в теме
(16)
Можно попробовать совместную разработку, еcли есть желающие. EDT, Git и вся фигня


да, а то даже нет возможности поставить ее на поддержку, пришлось свою сборку делать конфигурации поставщика
32. freewms 97 24.10.18 23:00 Сейчас в теме
(20) (22)
Договорились! Отпишусь в теме.
22. vanoono 24.10.18 10:20 Сейчас в теме
(16)
Git


Да, думаю идея отличная, думаю найдется куча людей которые внесут свой вклад в разработку. Особенно с учётом,
как у нас принято, абсолютно free!
25. Labotamy 24.10.18 14:30 Сейчас в теме
(16)Выливай на гитхуб уже =)
vanoono; acanta; +2 Ответить
33. freewms 97 24.10.18 23:02 Сейчас в теме
(25) Леш, у меня свой локальный Git, поскольку я несколько параноидален.
17. CheBurator 3567 24.10.18 02:33 Сейчас в теме
Управление многоэтажным складом посредством отчетов и полубумажной технологией делало несчастными администраторов.

- склад под управлением какой WMS?
21. freewms 97 24.10.18 08:52 Сейчас в теме
(17) Есть самописки, есть Axelot
18. CheBurator 3567 24.10.18 02:41 Сейчас в теме
19. shalimski 5 24.10.18 03:12 Сейчас в теме
Рассматривали ли вы в качестве TSDB InfluxDB?
28. freewms 97 24.10.18 22:55 Сейчас в теме
(19) Простота интеграции Прометея сыграла свою злую роль.
23. vanoono 24.10.18 10:28 Сейчас в теме
В идеале сделать готовую сборку, в виде Docker контейнера , с Prometeus, Grafana, сервером 1С и тестовыми данными, чтобы так - Docker RUN и экстаз..
24. akimych 171 24.10.18 13:13 Сейчас в теме
Попытки выливать данные в Zabbix и работать от него закончились порванным бубном и стесанной до кости сушеной заячьей лапкой.


Привет, а что не так с Заббиксом?
У меня с ним проблем не возникло, и Графана успешно начитывает данные с Забикса.
29. freewms 97 24.10.18 22:56 Сейчас в теме
(24) На пикчах видно, что наша Графана выводит данные с 3-х систем - двух Заббиксов и одного Прометея.
Решали не проблему связки Заббикс-Графана - там проблем нет за исключением Алертов, а проблему "Куда деть данные оперативного учета из 1С"
34. akimych 171 25.10.18 10:11 Сейчас в теме
(29) Данные оперативного учета я так понимаю нужны для
для принятия управленческих решений
.

На мой взгляд Графана не совсем верное решение для таких целей, она для - цитата с офиц. сайта
Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored
, т.е. это все-таки тул для системного мониторинга.

В данном случае лучше подойдет PowerBI, который умеет не только представлять данные, но и крутить их в разные стороны.
35. freewms 97 25.10.18 12:03 Сейчас в теме
(34)
Смотря что мы понимаем под оперативным учетом. Оперативный учет != отчеты о продажах за месяц. Оперативный учет на складе - это оценка изменения загруженности зон на горизонтах 30мин-1час, достаточности сотрудников по факту и распределение их по направлениям деятельности. И да, алерты по проблемным узлам тоже.
Это не аналитика. Это желание оперативно реагировать на возникающие проблемы по заранее выставленным контрольным точкам.
26. the1 321 24.10.18 16:52 Сейчас в теме
порадовало
РегистрСведений.ФИОФизическихЛиц.СоскобПоследних(ДатаСоскоба)
30. freewms 97 24.10.18 22:57 Сейчас в теме
(26) Интересный регистр. Не могли бы Вы пояснить назначение? Не могу понять потребность его скоблить.
27. metmetmet 59 24.10.18 19:26 Сейчас в теме
А стек ELK рассматривали? Если да, то чем не устроил?
31. freewms 97 24.10.18 22:59 Сейчас в теме
(27) Elastiksearch вижу скорее как хранилище текстовых логов, а не упорядоченных временных серий. Как раз сейчас думаем на счет слива ТЖ в него для анализа проблем.
36. metmetmet 59 28.10.18 18:37 Сейчас в теме
Рассматривали вариант, когда prometheus сервер находится вне локальной сети для получения метрик pull способом?
37. freewms 97 28.10.18 23:15 Сейчас в теме
(36) Нам не приходилось, но в целом не вижу сложности. Если сможете обеспечить REST - должно работать.
38. pallid 188 29.10.18 16:11 Сейчас в теме
если ресурс не умеет отвечать в формате prometheus тогда в тагретах пишет что
invalid is not a valid start token


а по сути хочется только мониторить живучесть сервиса...

альтернатива писать прослойку - которая будет ретранслировать состояние сервиса? или есть еще варианты?
39. freewms 97 30.10.18 18:04 Сейчас в теме
(38) Живучесть сервиса - Zabbix
40. pallid 188 30.10.18 23:20 Сейчас в теме
41. metmetmet 59 13.11.18 20:31 Сейчас в теме
(38) Есть вот такое расширение blackbox_exporter.
Вот здесь список официальных и неофициальных расширений (exporters) список.
42. Darklight 16 29.11.18 10:26 Сейчас в теме
Очень познавательная статья. Спасибо Но

Попытки выливать данные в Zabbix и работать от него закончились порванным бубном и стесанной до кости сушеной заячьей лапкой.

Могли бы Вы написать подробнее - почему данный подход не получился. Это же "классический" подход по сбору метрик, и уже был описан на инфостарте.

И, хотелось бы больше слайдов и текста по проведения настроек связки продуктов друг с другом и самих метрик.
43. freewms 97 30.11.18 09:16 Сейчас в теме
(42) Обратите внимание, какие метрики передаются в Прометея. Там накапливаются не данные о состоянии оборудования. Содержимое Прометея - это условные деньги в кассе, задолженности контрагентов, остатки на складе. Т.е. непосредственно данные бизнеса. Т.е. условные отчеты из условного 1С.
44. Darklight 16 30.11.18 09:31 Сейчас в теме
(43)Я просто не понимаю разницы в хранении (или нюанса передачи на хранение) данных о количестве соединений с серверов, количестве замятий бумаги на принтере, длинне очереди диска, или количества товаров на складе, количества занятых рабочих на складе, длинне очереди текущих заказов на сборку.
45. freewms 97 30.11.18 09:37 Сейчас в теме
(44) Нюанс заключается исключительно в инструментарии, который для этого есть. Собственно, в Заббиксе достаточно достаточно сложный инструментарий, заточенный под сбор данных по железкам. С набором устоявшихся стандартных механизмов по отрасли.
Прометей позволяет сделать сильно проще использование системы со стороны наполнения ее данными. При этом, система прозрачна для программистов и позволяет организовать передачу данных привычным кодом на привычном языке.
Уточнюсь - обобрать данные в 1С запросом, затолкать в Заббикс, получить там несколько разрезов будет выглядить так:
- Содаем кучу хостов по ожидаемым разрезам запроса
- Формируем, скажем, JSON силами 1С
- Кладем его куда-нибудь
- Пишем скрипт парсинга полученного файла
- Наталкиваем в Заббикс
- Сталкиваемся с проблемой вывода, скажем, в таблицу в Графане

Прометей + приложенная конфигурация - сводится к написанию запроса. Остальное происходит силами самого Прометея. При этом, со стороны Графаны поддерживаются запросы, которые позволят не определять заранее разрезы вывода.
46. tvm 30.11.18 10:18 Сейчас в теме
(44) имеется ввиду что периодически получаемые данные лучше где-то хранить и оттуда считывать Grafan-ой, нежели постоянно дергать 1С-ку и передавать в нее параметры, т.е. динамически получать
47. freewms 97 30.11.18 15:11 Сейчас в теме
(46) Очень точно сказано.
Дополню:Это позволяет при складском учете работать "на переднем крае" данных. Т.е. держать в кеше СУБД их и, практически, не обращаться к диску.
Строить запросы, тем более глубокие - тяжело с точки зрения нагрузки на СУБД.
48. sparhh 06.12.18 09:31 Сейчас в теме
(47) Можете еще раз пояснить - почему ZABBIX не может работать в таком же варианте?
Точно также запрашивать 1С через веб сервисы и сохранять у себя данные. Он ведь все это умеет, разве нет?
49. freewms 97 06.12.18 12:50 Сейчас в теме
(48) Пробуйте. Я не вижу в этом целесообразности потому что::
а) Сложности с механизмами подключения к 1С самого Заббикса.
б) Нагрузка на базу при вытаскивании данных периодами.
50. tvm 06.12.18 12:58 Сейчас в теме
(49)
насчет пункта а) не соглашусь.
насчет б) да, такое может быть
51. sparhh 06.12.18 13:39 Сейчас в теме
(49) Пожалуй еще раз перечитать надо.
В итоге все выглядит красиво, но по-моему для многих осталась нераскрытой тема почему не стал использоваться тот же ZABBIX.
52. freewms 97 06.12.18 21:57 Сейчас в теме
(51) Попробуйте получить Заббиксом из 1С данные, скажем, для построения графика динамики отгрузки клиентов с разбивкой по часам за сутки. Я правда не знаю как это сделать без насилия над собой и окружающими.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Старший Программист 1С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 75 000 руб.
Полный день



Руководитель проектов 1С
Санкт-Петербург
По совместительству