[Программирование, IT-инфраструктура, Big Data, R] IT Service Health Monitoring средствами R. Взгляд под иным углом
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Казалось бы тема давно исхоженная, пик инновационности OSS систем давно позади. Однако иногда бывают локальные жаркие всплески и бурные споры на эту тему. Можно ходить по торной вендорской дороге, а можно попробовать погрызть эту задачку с другого угла.
Ключевые слова: cmdb, multi-agent sumulation, monte-carlo, ml.
Является продолжением серии предыдущих публикаций.
Постановка задачи
Постановку детально расписывать не будем, в интернете можно найти на любой вкус и кошелек. Реферативно выглядит следующим образом (изначально придумали ITSM консультанты):
- есть CMDB (конфигурационная база элементов ИТ). Она содержит описание элементов и связей между ними (граф);
- есть система мониторинга, которая как-то снимает показания физических воплощений CI элементов;
- есть какой-то бизнес-сервис, который базируется на инфраструктурных элементах (сервера, приложения, API, тесты, ...);
- связь между сервисом и элементами обычно описывается деревом и называется ресурсно-сервисной моделью (РСМ);
- у инфраструктурных элементов есть свои параметры (KPI) по которым с учетом топологической связности надо посчитать здоровье бизнес-сервиса (health/KQI).
Типовую картинку РСМ возьмем с документации одного из апологетов этой темы (HP).
Как делается обычно
Типовая процедура внедрения РСМ состоит из:
- составления списка сервисов;
- составления списка ресурсов;
- составления топологической связи между ресурсами;
- составления правил пропагандирования состояний и метрик.
Все делается консультантами вручную. Особо интересная работа — подгонять весовые коэффициенты пропагандирования метрик (событий) с нижних уровней на верхнии. В случае сложных РСМ редко удается пронаблюдать получение удовлетворительного решения.
Технические ссылки:
Альтернативный план
Ручное исполнение задача в 2021 году выглядит уныло и тоскливо. Но у нас под руками есть компьютер. Можно попробовать применить его по назначению.
План
- фаза «multi-agent sumulation»: рассматриваем ресурсы как самостоятельных агентов, обладающих свойствами (входные параметры) и коммуницирующих друг с другом (связи в дереве РСМ);
- фаза «itsm»: прописываем любым удобным нам способом поведение на уровне отдельных агентов (функцию выхода от состояний входа);
- фаза «monte-carlo»: генерим подходящее подмножество входных состояний всех объектов и проводим расчет отклика MAS структуры;
- фаза «ml»: сворачиваем полученный data.frame ансамбль правил (rule fit, см Modern Rule-Based Models by Max Kuhn), «объясняемый» представителям от бизнеса;
- фаза «prod»: полученные ml матрицы загоняем в «кремний» и получаем event propagation в режиме реального времени на одном «смартфоне».
При чем тут R?
В целом, альтернативный план можно делать на чем угодно. Хоть на листочках с карандашом в руке. Но если хочется сэкономить силы и время, то на R можно сделать добрую половину задачи кодом в один экран. И поможет нам в этом… Shiny. Да, Shiny, но без… Shiny.
Писать multi-agent simulation нудно и есть масса мест для ошибок. С другой стороны у нас есть механизм реактивного программирования в Shiny, который обеспечивает коммуникацию между объектами. Воспользуемся им, см. подсказки в Reactive programming in R by Joe Cheng, DSC 2014
Пример идеи в коде, связка трех нод-агентов nodeA -> nodeB -> nodeC.
MAS на «коленке»
SPL
library(tidyverse)
library(magrittr)
library(shiny)
library(foreach)
library(iterators)
options(shiny.suppressMissingContextError=TRUE)
makeReactiveBinding("nodeA")
nodeA$in_1 <- NULL
nodeA$in_2 <- NULL
nodeA$out <- reactive(nodeA %$% (in_1 + in_2))
makeReactiveBinding("nodeB")
nodeB$in_1 <- reactive(nodeA$out())
nodeB$in_2 <- NULL
nodeB$out <- reactive(nodeB %$% (in_1() + in_2))
makeReactiveBinding("nodeC")
nodeC$in_1 <- reactive(nodeB$out())
nodeC$in_2 <- NULL
nodeC$out <- reactive(nodeC %$% (in_1() * in_2))
df <- tidyr::expand_grid(val1 = 0:5, val2 = 0:5, val3 = 0:5, val4 = 0:5) %>%
# результат прямого расчета для демо-сверки
mutate(direct_res = (val1 + val2 + val3) * val4)
res <- foreach(it = iter(df, by = "row"), .combine = "c") %do%
{
nodeA$in_1 <- it$val1
nodeA$in_2 <- it$val2
nodeB$in_2 <- it$val3
nodeC$in_2 <- it$val4
shiny:::flushReact()
nodeC$out()
}
df$mas_res <- res
Далее натянуть на data.frame ансамбль деревьев (или gbm или еще что...) и сделать прогноз можно двумя строчками. При этом формулу отклика для каждого агента можно писать любыми доступными средствами. В силу того, что состояния агентов в этой задаче ограничены, можно вместо формул создать конфигурационный excel (пример ниже), который понятен любому менеджеру и не требует никаких споров. Считаете, что в строчке #7 на выходе должно быть 'bad'? Пишем и даже не спорим.
Собственно все, задача решена, кино кончилось.
Предыдущая публикация — «Немного о параллельных вычислениях в R».
===========
Источник:
habr.com
===========
Похожие новости:
- [Антивирусная защита] Kaspersky Removed an Important File, What To Do?
- [Подготовка технической документации] Коммуникация: как понимать друг друга даже на удаленке
- [Законодательство в IT, Социальные сети и сообщества, IT-компании] Активисты и общественники намерены судиться с Роскомнадзором в случае блокировки Twitter
- Проект Thunderbird раскрыл финансовые показатели за 2020 год
- [Habr, Учебный процесс в IT, Контент-маркетинг, Карьера в IT-индустрии, Управление медиа] Синдром самозванца у айтишников. Немного логики для тех, кто подумывает писать в блоги
- [Разработка веб-сайтов] Рендеринг в веб (перевод)
- [Информационная безопасность] Palo Alto Networks. Учимся думать, как firewall. Сессии и состояния
- В Firefox 87 будет урезано содержимое HTTP-заголовка Referer
- [Настройка Linux, Информационная безопасность, C] Серьёзная безопасность: всплывшие спустя 15 лет баги в ядре Linux (перевод)
- [Open source, Программирование, Администрирование баз данных, Интервью] «Представь, что ты нашел решение, про которое можешь сказать: оно лучшее в мире» — интервью с создателем ClickHouse
Теги для поиска: #_programmirovanie (Программирование), #_itinfrastruktura (IT-инфраструктура), #_big_data, #_r, #_data_science, #_monitoring, #_itsm, #_machine_learning, #_programmirovanie (
Программирование
), #_itinfrastruktura (
IT-инфраструктура
), #_big_data, #_r
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 21:59
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Казалось бы тема давно исхоженная, пик инновационности OSS систем давно позади. Однако иногда бывают локальные жаркие всплески и бурные споры на эту тему. Можно ходить по торной вендорской дороге, а можно попробовать погрызть эту задачку с другого угла. Ключевые слова: cmdb, multi-agent sumulation, monte-carlo, ml. Является продолжением серии предыдущих публикаций. Постановка задачи Постановку детально расписывать не будем, в интернете можно найти на любой вкус и кошелек. Реферативно выглядит следующим образом (изначально придумали ITSM консультанты):
Типовую картинку РСМ возьмем с документации одного из апологетов этой темы (HP). Как делается обычно Типовая процедура внедрения РСМ состоит из:
Все делается консультантами вручную. Особо интересная работа — подгонять весовые коэффициенты пропагандирования метрик (событий) с нижних уровней на верхнии. В случае сложных РСМ редко удается пронаблюдать получение удовлетворительного решения. Технические ссылки: Альтернативный план Ручное исполнение задача в 2021 году выглядит уныло и тоскливо. Но у нас под руками есть компьютер. Можно попробовать применить его по назначению. План
При чем тут R? В целом, альтернативный план можно делать на чем угодно. Хоть на листочках с карандашом в руке. Но если хочется сэкономить силы и время, то на R можно сделать добрую половину задачи кодом в один экран. И поможет нам в этом… Shiny. Да, Shiny, но без… Shiny. Писать multi-agent simulation нудно и есть масса мест для ошибок. С другой стороны у нас есть механизм реактивного программирования в Shiny, который обеспечивает коммуникацию между объектами. Воспользуемся им, см. подсказки в Reactive programming in R by Joe Cheng, DSC 2014 Пример идеи в коде, связка трех нод-агентов nodeA -> nodeB -> nodeC. MAS на «коленке»SPLlibrary(tidyverse)
library(magrittr) library(shiny) library(foreach) library(iterators) options(shiny.suppressMissingContextError=TRUE) makeReactiveBinding("nodeA") nodeA$in_1 <- NULL nodeA$in_2 <- NULL nodeA$out <- reactive(nodeA %$% (in_1 + in_2)) makeReactiveBinding("nodeB") nodeB$in_1 <- reactive(nodeA$out()) nodeB$in_2 <- NULL nodeB$out <- reactive(nodeB %$% (in_1() + in_2)) makeReactiveBinding("nodeC") nodeC$in_1 <- reactive(nodeB$out()) nodeC$in_2 <- NULL nodeC$out <- reactive(nodeC %$% (in_1() * in_2)) df <- tidyr::expand_grid(val1 = 0:5, val2 = 0:5, val3 = 0:5, val4 = 0:5) %>% # результат прямого расчета для демо-сверки mutate(direct_res = (val1 + val2 + val3) * val4) res <- foreach(it = iter(df, by = "row"), .combine = "c") %do% { nodeA$in_1 <- it$val1 nodeA$in_2 <- it$val2 nodeB$in_2 <- it$val3 nodeC$in_2 <- it$val4 shiny:::flushReact() nodeC$out() } df$mas_res <- res Далее натянуть на data.frame ансамбль деревьев (или gbm или еще что...) и сделать прогноз можно двумя строчками. При этом формулу отклика для каждого агента можно писать любыми доступными средствами. В силу того, что состояния агентов в этой задаче ограничены, можно вместо формул создать конфигурационный excel (пример ниже), который понятен любому менеджеру и не требует никаких споров. Считаете, что в строчке #7 на выходе должно быть 'bad'? Пишем и даже не спорим. Собственно все, задача решена, кино кончилось. Предыдущая публикация — «Немного о параллельных вычислениях в R». =========== Источник: habr.com =========== Похожие новости:
Программирование ), #_itinfrastruktura ( IT-инфраструктура ), #_big_data, #_r |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 21:59
Часовой пояс: UTC + 5