Supervisión del estado del servicio de TI mediante R. Un ángulo diferente

Parecería que el tema se ha pisado durante mucho tiempo, la cima de la innovación de los sistemas OSS hace mucho tiempo. Sin embargo, a veces hay arrebatos locales calientes y disputas violentas sobre este tema. Puede caminar a lo largo de la ruta de los vendedores, o puede intentar roer este problema desde un ángulo diferente.







Palabras clave: cmdb, suma de agentes múltiples, monte-carlo, ml.







Es una continuación de una serie de publicaciones anteriores .







Formulación del problema



No describiremos la producción en detalle, en Internet puede encontrarla para todos los gustos y billeteras. El resumen tiene este aspecto (originalmente inventado por consultores de ITSM):







  • hay una CMDB (base de configuración de elementos informáticos). Contiene una descripción de los elementos y las conexiones entre ellos (gráfico);
  • hay un sistema de monitoreo que de alguna manera toma lecturas de las encarnaciones físicas de los elementos de CI;
  • existe algún tipo de servicio empresarial que se basa en elementos de infraestructura (servidores, aplicaciones, API, pruebas, ...);
  • la relación entre un servicio y elementos generalmente se describe mediante un árbol y se denomina modelo de servicio de recursos (PCM);
  • Los elementos de infraestructura tienen sus propios parámetros (KPI) mediante los cuales, teniendo en cuenta la conectividad topológica, se debe calcular la salud del servicio empresarial (salud / KQI).


Tomemos una imagen típica de RSM de la documentación de uno de los apologistas de este tema (HP).







RSM.  La fuente estaba aquí: https: //docs.microfocus.com/OMi/10.62/Content/OMi/images/ServiceHealth.png







¿Cómo se hace habitualmente?



:







  • ;
  • ;
  • ;
  • .


. — () . .







:











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
      
      





Luego, tire de un data.frame



conjunto de árboles (o gbm o algo más ...) y haga un pronóstico en dos líneas. En este caso, la fórmula de respuesta para cada agente se puede escribir por cualquier medio disponible. Debido a que los estados de los agentes en esta tarea son limitados, en lugar de fórmulas, puede crear una configuración de Excel (ejemplo a continuación), que es comprensible para cualquier gerente y no requiere disputas. ¿Crees que la línea # 7 debería dar como resultado 'malo'? Escribimos y ni siquiera discutimos. "¡Mi servicio son mis reglas!"







Configuración de agentes para gerentes







En realidad todo, el problema está resuelto, la película se acabó.







Publicación anterior - "Un poco sobre la computación paralela en R" .








All Articles