IT Service Health Monitoring mittels R. Ein anderer Blickwinkel

Es scheint, dass das Thema schon lange ausgetreten ist und der Höhepunkt der Innovation von OSS-Systemen längst vorbei ist. Manchmal gibt es jedoch lokale heiße Ausbrüche und gewalttätige Streitigkeiten zu diesem Thema. Sie können die Straße des Verkäufers entlang gehen oder versuchen, dieses Problem aus einem anderen Blickwinkel zu lösen.







Schlüsselwörter: cmdb, Multi-Agent-Sumulation, Monte-Carlo, ml.







Es ist eine Fortsetzung einer Reihe früherer Veröffentlichungen .







Formulierung des Problems



Wir werden die Produktion nicht im Detail beschreiben, im Internet finden Sie sie für jeden Geschmack und Geldbeutel. Das Abstract sieht folgendermaßen aus (ursprünglich von ITSM-Beratern erfunden):







  • Es gibt eine CMDB (Konfigurationsbasis für IT-Elemente). Es enthält eine Beschreibung der Elemente und Verbindungen zwischen ihnen (Grafik);
  • Es gibt ein Überwachungssystem, das irgendwie die physischen Inkarnationen von CI-Elementen abliest.
  • Es gibt eine Art Geschäftsdienst, der auf Infrastrukturelementen basiert (Server, Anwendungen, API, Tests, ...).
  • Die Beziehung zwischen einem Service und Elementen wird normalerweise durch einen Baum beschrieben und als Resource-Service-Modell (PCM) bezeichnet.
  • Infrastrukturelemente haben ihre eigenen Parameter (KPI), anhand derer unter Berücksichtigung der topologischen Konnektivität der Zustand des Unternehmensdienstes (Zustand / KQI) berechnet werden muss.


Nehmen wir ein typisches Bild von RSM aus der Dokumentation eines der Apologeten dieses Themas (HP).







RSM.  Die Quelle war hier: https: //docs.microfocus.com/OMi/10.62/Content/OMi/images/ServiceHealth.png







Wie wird es normalerweise gemacht



:







  • ;
  • ;
  • ;
  • .


. — () . .







:











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
      
      





Ziehen Sie dann an einem data.frame



Ensemble von Bäumen (oder GBM oder etwas anderem ...) und machen Sie eine Prognose in zwei Zeilen. In diesem Fall kann die Antwortformel für jeden Agenten mit allen verfügbaren Mitteln geschrieben werden. Aufgrund der Tatsache, dass der Status der Agenten in dieser Aufgabe begrenzt ist, können Sie anstelle von Formeln ein Konfigurations-Excel erstellen (Beispiel unten), das für jeden Manager verständlich ist und keine Streitigkeiten erfordert. Denken Sie, dass Zeile 7 "schlecht" ausgeben sollte? Wir schreiben und streiten uns nicht einmal. "Mein Dienst ist meine Regeln!"







Agentenkonfiguration für Manager







Eigentlich ist alles, das Problem ist gelöst, der Film ist vorbei.







Vorheriger Beitrag - "Ein wenig über paralleles Rechnen in R" .








All Articles