BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース データ科学を活用してモニタリングを改善する

データ科学を活用してモニタリングを改善する

ブックマーク

原文(投稿日:2015/06/30)へのリンク

先日のDevOpsDays Amsterdam 2015で,オンラインファッションショップStylightのOPSエンジニアであるPatrick Roelke氏は,誤検出アラートが多過ぎることや非実用的なダッシュボードなど,モニタリングにはまだ多くの問題がある,と強く論じた。データ科学によって静的しきい値という概念を排除し,さまざまなデータソースからの情報をひとつのメトリックに統合することで,事態を改善できるのではないか,というのが氏の考えだ。講演ではEtsyのKale,Stack ExchangeのBosun,TwitterのAnomalyDetectionなど,データ科学を活用したモニタリングツールの概要が紹介された。

現在主流となっているモニタリングツールやアプローチは,さまざまな問題を抱えている。まず,アラートのSN比が低過ぎる。あまりにも誤検出が多いため,技術者たちは,アラートを自動的にアーカイブするEメール処理ルールを作って対処しているのが実情だ。また,未処理データを表示するダッシュボードでは,メトリックの相関などの実用的な情報を得ることができない。データのボリュームやメトリックの増加が,これらの問題をさらに複雑なものにしている。このような状況の結果が,有名な#monitoringsucksハッシュタグや,このテーマに関する情報を収集したGitHubのリポジトリだ。

データ科学はこれらの問題に,さまざまな方法で対処する。例えば,データの関連やパターン検出を支援する(Google Nowの考え方)。予測分析では,将来の予測に統計的手法と過去データを使用する。ビッグデータでは,技術者が本当の問題に注目できるように,過去データに基づいた期待値からの偏差などによる効果的な異常検出が必要だ。

モニタリングのコンテキストにおいて,データ科学には3つの大きなメリットがある,とRoelke氏は考えている。静的で,ある意味恣意的なしきい値(CPU使用率80%以上というような)に達する前に,問題を特定することができる。さまざまなソースからの情報をグループ化してひとつにまとめ,それを基にアラートを発生させることができる。さらに,さまざまなメトリックの相関関係を理解できるような,より意味のあるダッシュボードを作成することができる。

Roelke氏は,データ科学の理念を活用したツールを3つ取り上げて,その概要を説明した。 EtsyのKale, Stack ExchangeのBosun,そしてTwitterのAnomalyDetectionである。

KaleにはSkylineOculusという,2つのサブシステムがある。Skylineは異常検出に重点を置いて,異常と判明したメトリックのみを表示する。メトリックの異常判断には,コンセプトベースのアプローチを採用している。さまざまなアルゴリズムを通してメトリックを処理し,その多くが異常と判断したものを異常としてマークする方法だ。Oculusは指定された異常なメトリックに似たものを探し出し,並べてグラフ化することによって,偏差相関を可能にする。

Skyline,異常なメトリックの表示

Bosunはモニタリングとアラートを行うシステムだ。大きな特徴は,アラート生成時に実行する,一見IDEにも似たワークフローにある。最初にメトリックをグラフ化して,強力な式表現言語を使った式を生成する。次にメディアンや平均,パーセンタイルなど,さまざまな還元関数を使用して,単一値の式に還元する。その値を0として評価した数値でアラートを起動する。これでルールと通知を生成できるようになるのだ。Bosun独自の特徴は,過去のデータを使ったルールのテストが可能なことだ。ルールを微調整して,アラート疲れを回避することができる。

Bosunのルール定義画面

AnomalyDetectionは,ビッグデータの異常検出を行うR(統計計算用のプログラミング言語)のパッケージである。Twitterはソーシャルネットワーク特有の課題に直面している。世界規模のサービスであるために,グローバルな監視パターンが存在する一方で,さまざまな国や地域によって異なるローカルな監視パターン(米国のスーパーボウル,キリスト教国のクリスマスなど)も存在するのだ。このデータすべてが,異常検出を難しいものにしている。AnomalyDetectionでは,高度な統計アルゴリズムを用いてSN比を向上することで,異常の発見と修正を容易にする。

ローカルとグローバルの異常値を示すAnomalyDetectionグラフ

この記事に星をつける

おすすめ度
スタイル

BT