RによるITサービスヘルスモニタリング。別の角度

このトピックは長い間踏みにじられてきたように思われ、OSSシステムの革新のピークはずっと過ぎています。ただし、このトピックに関しては、地元での激しい爆発や激しい論争が発生することがあります。ベンダーの道を歩くか、この問題を別の角度からかじってみることができます。







キーワード:cmdb、マルチエージェント合計、モンテカルロ、ml。







これは、以前の一連の出版物の続きです







問題の定式化



制作の詳細については説明しません。インターネットでは、あらゆる好みや財布に合わせて制作を見つけることができます。要約は次のようになります(元々はITSMコンサルタントによって発明されました)。







  • CMDB(IT要素の構成ベース)があります。要素とそれらの間の接続の説明が含まれています(グラフ)。
  • CI要素の物理的な化身を何らかの形で読み取る監視システムがあります。
  • インフラストラクチャ要素(サーバー、アプリケーション、API、テストなど)に基づくある種のビジネスサービスがあります。
  • サービスと要素の関係は通常ツリーで記述され、リソースサービスモデル(PCM)と呼ばれます。
  • インフラストラクチャ要素には独自のパラメータ(KPI)があり、トポロジ接続を考慮して、ビジネスサービスの正常性(正常性/ KQI)を計算する必要があります。


このトピック(HP)の謝罪者の1人のドキュメントからRSMの典型的な写真を撮りましょう。







RSM。 ソースはここにありました:https://docs.microfocus.com/OMi/10.62/Content/OMi/images/ServiceHealth.png







それは通常どのように行われますか



:







  • ;
  • ;
  • ;
  • .


. — () . .







:











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
      
      





次にdata.frame



、木のアンサンブル(またはgbmなど...)を引っ張って、2行で予測を行います。この場合、各エージェントの応答式は、利用可能な任意の方法で記述できます。このタスクのエージェントの状態は制限されているため、数式の代わりに、どのマネージャーにも理解でき、異議を唱える必要のない構成Excel(以下の例)を作成できます。7行目は「悪い」を出力する必要があると思いますか?私たちは書いたり、主張したりしません。「私のサービスは私のルールです!」







マネージャーのエージェント構成







実際にはすべて、問題は解決され、映画は終わりました。







前の投稿- 「Rでの並列コンピューティングについて少し」








All Articles