Monitoramento da Saúde do Serviço de TI por meio de R. Um ângulo diferente

Parece que o assunto foi trilhado há muito tempo, o auge da inovação dos sistemas OSS acabou há muito tempo. No entanto, às vezes há explosões locais e disputas violentas sobre esse assunto. Você pode caminhar ao longo da estrada do vendedor ou pode tentar roer o problema de um ângulo diferente.







Palavras-chave: cmdb, soma de multiagentes, monte-carlo, ml.







É a continuação de uma série de publicações anteriores .







Formulação do problema



Não descreveremos a produção em detalhes, na Internet você encontra para todos os gostos e carteiras. O resumo tem a seguinte aparência (originalmente inventado por consultores de ITSM):







  • existe um CMDB (base de configuração de elementos de TI). Ele contém uma descrição dos elementos e conexões entre eles (gráfico);
  • existe um sistema de monitoramento que de alguma forma faz leituras das encarnações físicas dos elementos de CI;
  • existe algum tipo de serviço de negócio que se baseia em elementos de infraestrutura (servidores, aplicações, API, testes, ...);
  • o relacionamento entre um serviço e elementos é geralmente descrito por uma árvore e é chamado de modelo de serviço de recurso (PCM);
  • Os elementos da infraestrutura possuem seus próprios parâmetros (KPI) pelos quais, levando em consideração a conectividade topológica, deve-se calcular o funcionamento do serviço de negócios (funcionamento / KQI).


Vamos tirar uma foto típica do RSM da documentação de um dos apologistas deste tópico (HP).







RSM.  A fonte estava aqui: https: //docs.microfocus.com/OMi/10.62/Content/OMi/images/ServiceHealth.png







Como geralmente é feito



:







  • ;
  • ;
  • ;
  • .


. — () . .







:











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 «»
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
      
      





Em seguida, puxe um data.frame



conjunto de árvores (ou gbm ou qualquer outra coisa ...) e faça uma previsão em duas linhas. Nesse caso, a fórmula de resposta para cada agente pode ser escrita por qualquer meio disponível. Devido ao fato de que os estados dos agentes nesta tarefa são limitados, ao invés de fórmulas, você pode criar uma configuração excel (exemplo abaixo), que é compreensível para qualquer gerente e não requer disputas. Você acha que a linha # 7 deve produzir 'ruim'? Escrevemos e nem discutimos. "Meu serviço são minhas regras!"







Configuração de agente para gerentes







Na verdade tudo, o problema está resolvido, o filme acabou.







Post anterior - "Um pouco sobre computação paralela em R" .








All Articles