SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Ganglia の UI に
Grafana を追加する話
DSAS運用担当 宮崎
Ganglia の UI に
Grafana を追加する話
Ganglia
● 分散監視システム
3
Ganglia
4
Server
CPU
メモリ
I/O
ネットワーク
ミドルウェア
Ganglia
Ganglia
データベース
収集
Server
Server
Ganglia
(UI)
ganglia monitoring core
ganglia monitoring core
ganglia web
Ganglia Web
5
● 画面例
○ 既存環境で使っている UI
■ Ganglia Web の派生版
Ganglia の UI に
Grafana を追加する話
Grafana
7
Grafana
アプリ
ログ
データベース
警報
通知
Grafana
8
● 画面例
○ Grafana demo
Ganglia の UI に
Grafana を追加する話
Grafana を追加
● なぜ Grafana を使いたいのか
● なぜ Grafana に置換ではなく、追加なのか
10
Grafana を追加
● なぜ Grafana を使いたいのか
● なぜ Grafana に置換ではなく、追加なのか
11
なぜ Grafana を使いたいのか
● UIだけでも刷新したい
○ 既存環境で使っている UI が古くさい
12
なぜ Grafana を使いたいのか
● UIだけでも刷新したい
○ 多数のグラフがあるとページ全体の表示に時間がかかる
■ グラフ 1 枚 = 画像データ 1 つ = リクエスト 1 回
13
画像リクエスト
画像リクエスト
画像リクエスト
画像リクエスト
画像リクエスト 画像リクエスト
なぜ Grafana を使いたいのか
● 良さそうであれば完全移行できる(かも)
○ 既存環境で使っている UI と同等の情報が得られれば…
14
Grafana を追加
● なぜ Grafana を使いたいのか
● なぜ Grafana に置換ではなく、追加なのか
15
なぜ Grafana に置換ではなく、追加なのか
● 既存環境で使っている UI はそのままにしたい
○ 当面の間ユーザは移行してもいいし移行しなくてもいい
■ いわゆる並存期間
16
Grafana
Ganglia
(UI)
なぜ Grafana に置換ではなく、追加なのか
● 戻しやすい
○ うまくいかなかったら削除すればよい
17
Grafana
Ganglia
(UI)
今回の内容
● どうにかして Grafana から Ganglia につなぐ
○ ただし、できるだけ Ganglia 側には手を入れない
● 既存環境で使っている UIと同等の情報を
Grafana で得られるようにする
18
今回の内容
● どうにかして Grafana から Ganglia につなぐ
○ ただし、できるだけ Ganglia 側には手を入れない
● 既存環境で使っている UIと同等の情報を
Grafana で得られるようにする
19
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
1.Grafana から「何か」を経由して Ganglia につなぐ
20
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
1.Grafana から「何か」を経由して Ganglia につなぐ
21
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
○ Grafana の datasource として Ganglia を指定
22
Grafana datasource
● datasource とは
○ Grafana がデータを取得する先のこと
● 公式サポートの datasource
23
● Alertmanager
● AWS CloudWatch
● Azure Monitor
● Elasticsearch
● Google Cloud Monitoring
● Graphite
● InfluxDB
● Loki
● Microsoft SQL Server
● MySQL
● OpenTSDB
● PostgreSQL
● Prometheus
● Jaeger
● Zipkin
● Tempo
● Testdata
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
○ Grafana の datasource として Ganglia を指定
■ 公式には存在しない
■ datasource として動くプラグインを実装する必要がある
24
datasource として動くプラグイン(例)
● Simple JSON Datasource
25
https://github.com/grafana/simple-json-
datasource
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
○ Grafana の datasource として Ganglia を指定
■ 公式には存在しない
■ datasource として動くプラグインを実装する必要がある
26
ちょっと大変そう……
プラグインの実装:保留
Grafana から Ganglia につなぐ
1.Grafana から直接 Ganglia につなぐ
1.Grafana から「何か」を経由して Ganglia につなぐ
27
Grafana から Ganglia につなぐ
2.Grafana から「何か」を経由して Ganglia につなぐ
○ Ganglia につながりやすそうな「何か」を
Grafana の datasource として指定
○ datasource として動くプラグインを実装しなくてもよい
28
Grafana datasource
● datasource とは
○ Grafana がデータを取得する先のこと
● 公式サポートの datasource
29
● Alertmanager
● AWS CloudWatch
● Azure Monitor
● Elasticsearch
● Google Cloud Monitoring
● Graphite
● InfluxDB
● Loki
● Microsoft SQL Server
● MySQL
● OpenTSDB
● PostgreSQL
● Prometheus
● Jaeger
● Zipkin
● Tempo
● Testdata
Grafana datasource
● datasource とは
○ Grafana がデータを取得する先のこと
● 公式サポートの datasource
30
● Alertmanager
● AWS CloudWatch
● Azure Monitor
● Elasticsearch
● Google Cloud Monitoring
● Graphite
● InfluxDB
● Loki
● Microsoft SQL Server
● MySQL
● OpenTSDB
● PostgreSQL
● Prometheus
● Jaeger
● Zipkin
● Tempo
● Testdata
👉
Graphite
● 数値の時系列データの格納
● データのグラフ化
31
Graphite
● 構成
a. 時系列データベースそのもの
b. この時系列データベースを読み書きするためのもの
c. 時系列データベースにアクセスするための Web UI
■ Graphite Web
32
Grafana: ここにアクセスしてデータを取得
Graphite Web
● 時系列データベースにアクセスするための Web UI
○ 公式サポートのデータベース
■ Whisper
● Graphite を構成する時系列データベース
■ Ceres
33
Ganglia はサポート外
Graphite Web
● 時系列データベースにアクセスするための Web UI
○ サポート外のデータベースへアクセスする仕組みを持つ
34
サポート外のデータベースへ
アクセスする仕組み(例)
● Cyanite Finder
35
https://github.com/brutasse/graphite-cyanite
Graphite Web
● 時系列データベースにアクセスするための Web UI
○ サポート外のデータベースへアクセスする仕組みを持つ
36
実 装
Ganglia へアクセスできるようになった
Grafana datasource plugin を
実装するより簡単そう
Grafana から Ganglia に つなぐ
37
Grafana
Graphite
(Web)
Ganglia
datasource
Graphite
サポート外のデータベースへ
アクセスする仕組み
を使って Ganglia にアクセス
既存環境は
変更なし
今回の内容
● どうにかして Grafana から Ganglia につなぐ
○ このとき Ganglia 側にはできるだけ手を入れない
● 既存環境で使っている UIと同等の情報を
Grafana で得られるようにする
38
Complete
今回の内容
● どうにかして Grafana から Ganglia につなぐ
○ このとき Ganglia 側にはできるだけ手を入れない
● 既存環境で使っている UIと同等の情報を
Grafana で得られるようにする
39
Complete
既存環境で使っている UI
40
● Ganglia Web の派生版
● いにしえのときより
つかわれている
ひでんのたれぐらふ
既存環境で使っている UI
41
● 40種類超のグラフ
○ プロジェクト単位
■ 全体のネットワーク帯域,
リクエスト数, レスポンスタイム
■ ミドルウェアの情報
● HTTPサーバ,データベース, key value store, …
■ サーバの状況
○ サーバ単位
■ CPU利用率などの情報
■ ミドルウェア情報
Grafana 上で画面の作りこみ
42
Grafana 上で画面の作りこみ
43
● グラフ描画の式の変換
● 同種類の情報を対象サーバ全てで表示
● 他プロジェクトでも再利用可能にする
Grafana 上で画面の作りこみ
44
● グラフ描画の式の変換
● 同種類の情報を対象サーバ全てで表示
● 他プロジェクトでも再利用可能にする
グラフ描画に対する式の変換 (例)
● 既存UI におけるグラフ生成命令
DEF:'cpu_user'='~/cpu_user.rrd':'sum':AVERAGE
DEF:'cpu_nice'='~/cpu_nice.rrd':'sum':AVERAGE
DEF:'cpu_system'='~/cpu_system.rrd':'sum':AVERAGE
DEF:'cpu_idle'='~/cpu_idle.rrd':'sum':AVERAGE
DEF:'cpu_wio'='~/cpu_wio.rrd':'sum':AVERAGE
AREA:'cpu_user'#3333bb:'User'
STACK:'cpu_nice'#ffea00:'Nice'
STACK:'cpu_system'#dd0000:'System'
STACK:'cpu_wio'#ff8a60:'WAIT'
STACK:'cpu_idle'#e2e2f2:'Idle'
● Grafana: Graphiteの関数
aliasSub(aliasSub(aliasByNode(~.~.
~.cpu_{user,nice,system,idle,wio}.sum, 3), 'cpu_', ''),
'wio', 'wait')
45
自動化
46
手作業
47
40種類超
Grafana 上で画面の作りこみ
48
● グラフ描画の式の変換
○ 手作業
● 同種類の情報を対象サーバ全てで表示
● 他プロジェクトでも再利用可能にする
同種類の情報を対象サーバ全てで表示
● 既存UI ● Grafana
○ repeat panels
49
Grafana 上で画面の作りこみ
50
● グラフ描画の式の変換
○ 手作業
● 同種類の情報を対象サーバ全てで表示
○ repeat panels
● 他プロジェクトでも再利用可能にする
他プロジェクトでも再利用可能にする
● 変数とテンプレート
51
Grafana 上で画面の作りこみ
52
● グラフ描画の式の変換
○ 手作業
● 同種類の情報を対象サーバ全てで表示
○ repeat panels
● 他プロジェクトでも再利用可能にする
○ 変数とテンプレート
結果
53
54
既存環境で使っている
UI
Grafana
55
56
57
58
まとめ
59
まとめ
● どうにかして Grafana から Ganglia につなぐ
○ Grafana → Graphite → Ganglia の順でアクセス
■ Graphite から Ganglia にアクセスする仕組みを実装
● 既存環境で使っている UIと同等の情報を
Grafana で得られるようにする
○ 手作業で同等のグラフを移植
○ repeat panels, 変数・テンプレートの機能を使用
60
おわり
61

Weitere ähnliche Inhalte

Was ist angesagt?

【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 

Was ist angesagt? (20)

Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
 

Ähnlich wie Ganglia のUIにGrafanaを追加する話

はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3
Shoichi Masuhara
 

Ähnlich wie Ganglia のUIにGrafanaを追加する話 (20)

GCP でも Serverless!!
GCP でも Serverless!!GCP でも Serverless!!
GCP でも Serverless!!
 
FirebaseAnalytics_BigQuery_Datastudio
FirebaseAnalytics_BigQuery_DatastudioFirebaseAnalytics_BigQuery_Datastudio
FirebaseAnalytics_BigQuery_Datastudio
 
Grafana datasource plugin
Grafana datasource pluginGrafana datasource plugin
Grafana datasource plugin
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
 
Indexing with Algolia Ruby API Client
Indexing with Algolia Ruby API ClientIndexing with Algolia Ruby API Client
Indexing with Algolia Ruby API Client
 
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
 
[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送
[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送
[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送
 
長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps 長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
 
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張
 
[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送
[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送
[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送
 
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介!  2018年11月15日 放送[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介!  2018年11月15日 放送
[Cloud OnAir] GCP で構築するデータ分析基盤の最新情報をご紹介! 2018年11月15日 放送
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送
[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送
[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
 
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
 
はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3はてなのNagios - モニカジ#3
はてなのNagios - モニカジ#3
 
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
 

Mehr von KLab Inc. / Tech

大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
KLab Inc. / Tech
 
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテストゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
 

Mehr von KLab Inc. / Tech (20)

大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
 
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
 
生成AIが切り拓く新しいゲームの創り方・遊び方
生成AIが切り拓く新しいゲームの創り方・遊び方生成AIが切り拓く新しいゲームの創り方・遊び方
生成AIが切り拓く新しいゲームの創り方・遊び方
 
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
 
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
 
他業界からゲーム業界へ転向したときの話
他業界からゲーム業界へ転向したときの話他業界からゲーム業界へ転向したときの話
他業界からゲーム業界へ転向したときの話
 
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
 
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
 
「リアルISUCON」としてのモバイルオンラインゲーム開発
「リアルISUCON」としてのモバイルオンラインゲーム開発「リアルISUCON」としてのモバイルオンラインゲーム開発
「リアルISUCON」としてのモバイルオンラインゲーム開発
 
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテストゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
 
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
 
KLabのチャットシステム インフラ変遷
KLabのチャットシステム インフラ変遷KLabのチャットシステム インフラ変遷
KLabのチャットシステム インフラ変遷
 
属人化して詰まってた作業を自動化で楽しようとした話
属人化して詰まってた作業を自動化で楽しようとした話属人化して詰まってた作業を自動化で楽しようとした話
属人化して詰まってた作業を自動化で楽しようとした話
 
見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション
 
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
モバイルオンラインゲームにおけるUIエンジニアの業務紹介モバイルオンラインゲームにおけるUIエンジニアの業務紹介
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
ワールド別のDBへの取得・更新に後から対応した話
ワールド別のDBへの取得・更新に後から対応した話ワールド別のDBへの取得・更新に後から対応した話
ワールド別のDBへの取得・更新に後から対応した話
 
運営型モバイルゲームの運用について
運営型モバイルゲームの運用について運営型モバイルゲームの運用について
運営型モバイルゲームの運用について
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

Ganglia のUIにGrafanaを追加する話

Hinweis der Redaktion

  1. ガングリアの UI にグラファナを追加する話をします KLab オンプレ DSAS の運用担当をしております宮崎といいます。 よろしくお願いいたします。
  2. タイトルに知らないものがあるかもしれないと思いましたので、先に軽く説明しておきます。 まずはガングリアについて
  3. ガングリアというのは ぶんさん かんし システム というものになります。 どういうものかというのを 図で軽く説明します
  4. サーバ上の CPU, メモリ, I/O, ネットワークといった筐体の計測量、 ミドルウェアの計測量を ガングリアで収集して (クリック) 別のところで動かしているガングリアに送り、 データベースに集めます (クリック) こういったガングリアをガングリア モニタリング コアと言います (クリック) あともう一つ. ガングリア モニタリング コアと データベースに集めたデータにアクセスして ユーザにグラフを見せる UI があります (クリック) これをガングリア ウェブと言います。
  5. こちらがガングリア ウェブの画面の例になります。 この画面は既存環境、DSASで実際に使っている UI で、 ガングリア ウェブに手を入れた派生版となります。
  6. 次にグラファナについて軽く説明しておきます
  7. グラファナが データベースやログ、アプリなどに問い合わせを行い (クリック) ユーザにグラフを見せたり、値などを表示したりします。 (クリック) また、閾値を超えたなどのときに警報ということでメールなどの通知を出すこともできます。
  8. こちらがグラファナの画面の例になります。 この画面は グラファナの配布元 グラファナラブにある デモ画面の スナップショットです。
  9. このような画面を持つ グラファナを追加したいという 話になります
  10. 動機付けとしては2点、 そもそもなんでグラファナを使いたいのか、 あと 置き換えではなくて、 どうして追加なのか、ということを話します
  11. まず 1番目, なぜグラファナを使いたいのか
  12. 動機としては, UI だけでも刷新したいということです。 既存環境で使っている UI がぶっちゃけ古いというものです。 この図にあるとおり、 ドロップダウンリストとか ボタンだったりの表示が ふたむかし前みたいなので、 これを新しめにしたい、ということです。
  13. そして、多数のグラフがあるとページ全体の表示に時間がかかるという問題があります。 個々のグラフの 1枚が画像データ 1個分、リクエスト 1回投げられる形です。 サーバの割り当てが多くなると 1ページに多くのイメージを表示する形になるのですが、 全部の画像をロードできるまでページが表示されない状態になります。
  14. もしグラファナを入れて良さそうであれば、 既存環境で使っているUIを捨てて乗り換えるといったことができるんじゃないかなぁと考えました。 それには既存環境で使っているUIと同じ情報が得られることができればいいんですけどねーという感じです。
  15. 次に グラファナに置き換えではなくて、 追加なのはなんでかという話になります
  16. その理由は既存環境で使っているUIは、 しばらくはそのままにしておきたいということです。 当面の間はユーザはグラファナを見てもいいし、 既存環境の UI をそのまま使ってもらってもよい。 つまり、並存期間をもうけましょうということです。
  17. 追加の理由としては、戻しやすいということも挙げられます。 もしグラファナの導入がうまくいかなかったら、 そのままグラファナを削除すればいいじゃんという形です。
  18. そういうわけで、今回の発表の内容としてはこの 2点です。 まず、どうにかしてグラファナからガングリアにつなぐ。 このときに、できるだけガングリア側には手をいれないようにする必要があります。 これは、先ほどいいました、削除しやすくするためです。 次に、既存環境で使っているUIと同等の情報をグラファナで得られるようにするというものです。 これはユーザに使ってもらうために必要です。 これができて初めて移行できるかどうかが決められるようになります。
  19. それでは 1番目, どうにかしてグラファナからガングリアにつなぐ話をします。
  20. ここでは 2パターン考えてみました。 1番目は、グラファナから直接ガングリアにつなぐ方法 2番目は、グラファナから、 間接的に、 何かを経由してガングリアにつなぐ方法です。
  21. まず 1番目, グラファナから 直接 ガングリアにつなぐ方法を考えてみます。
  22. 直接つなぐ方法として、グラファナのデータソースとして ガングリアを指定できればいいよねと考えられます
  23. ここでデータソースという言葉が出たので、軽く説明しておくと、 データソースというのはグラファナがデータを取得する先のことです。 データのソース、そのままです。 公式サポートのデータソースはここに挙げられているものになります。 Alertmanager, AWS CloudWatch, Azure Monitor といったものです この中にはガングリアというものがあるかというと、 (少し間を置く) 存在しません
  24. つまり、公式には存在しないわけです。 なので、データソースとして動作するプラグインを実装する必要があります。
  25. データソースのプラグインの例として、 Simple JSON Datasource という グラファナの配布元であるグラファナラブがメンテナンスしている データソース プラグインを挙げておきます。 これはギットハブに上がっているものです。 このリポジトリを見てもらえるとわかるのですが 実装すべきものがそこそこあるように見えます。
  26. ということで、ちょっと大変そうと考えました。 (クリック) なので、グラファナのデーターソース プラグインの実装は、 一旦保留ということにします。
  27. グラファナからガングリアに直接つなぐことは一旦保留したので、 次に、グラファナから、 間接的に「何か」を経由して、 ガングリアにつなぐ といったことを検討したいと思います。
  28. 逆に言えば、ガングリアに繋がりやすそうな「何か」を グラファナのデータソースとして指定できればいいわけです。 そうすることでグラファナのデータソースとして動くプラグインを実装しなくても良くなります。
  29. 先ほどの グラファナのデータソースのページに戻りますが、 公式サポートのデータソースの中に ガングリアに繋がりやすそうなものがあるかなーと探してみたところ、
  30. グラファイトというものが使えそうかなーと考えました。
  31. グラファイトというのは、 数値の時系列データの格納と、 データのグラフ化を行います。
  32. 構成としては、a, b, c. の 3つです 時系列データベースそのものと a.の時系列データベースを読み書きするためのもの あと, 時系列データベースにアクセスするためのウェブ UI ちなみに、c. はグラファイト ウェブと呼ばれるものです グラファナは、このグラファイト ウェブにアクセスしてデータを取得します。
  33. そのグラファイト ウェブは 先ほど触れたとおり、時系列データベースにアクセスするための Web UI で、 公式サポートのデータベースとしては、 ウィスパー、これはグラファイトを構成する時系列データベースになります あと、セレスというものになります。 この 2つしかないということは、 (クリック) ガングリアはサポート外になります。
  34. ただ、グラファナのときと似たように、 サポート外のデータベースへアクセスする仕組みを持っています。
  35. そのサポート外のデータベースへアクセスする仕組みの例として、 サイアナイトファインダーというものを挙げておきます。 これはグラファイトのドキュメントから辿ったもので、 ギットハブにリポジトリがあります。 グラファイトのドキュメントと、このリポジトリの中身を軽くみたところ、 実装するにはそこまで大変じゃなさそうな印象がありました。
  36. グラファナのデータソースを実装するよりは簡単そうだな―ということで (クリック) ここでガングリアに接続するための実装を行いました。 (クリック) これによりガングリアへのアクセスができるようになりました。
  37. これまでの流れをまとめると、こんな図となります。 グラファナからデータソースとしてグラファイトを指定し グラファイトは サポート外のデータベースへアクセスする仕組みを使って ガングリアにアクセスします。 ガングリアには今回全く手を触れていません。 ですので、既存環境には 当然 影響なし、 変更なしということになります。
  38. ということで。 1番目、どうにかしてグラファナからガングリアにつなぐというミッションはこれで終了です。 つなげることができました。
  39. グラファナからガングリアのデータを見ることができるようになったので、 つぎに, 既存環境で使っている UI と同等の情報をグラファナで得られるようにする、 というのを説明します。
  40. まず、前提として、発表の冒頭付近でも少し話した既存環境で使っている UI について、触れておきます。 この UI はガングリア ウェブの派生版です。 いにしえのときより つかわれている ひでんのぐらふ になります
  41. 具体的には 40種類以上のグラフで構成されています。 プロジェクト単位のものとして、 全体のネットワーク帯域、リクエスト数、レスポンスタイムとか ミドルウェアの情報として、 HTTPサーバだったり、データベースだったり、キーバリューストアだったりの情報が出ていたり もちろんサーバの状況もグラフとして出ています。 また、サーバ単位としては、 CPU利用率とかメモリとかの一般的な情報のほかに、 サーバ上で動いているミドルウェアの情報も出ています。
  42. そういった既存環境で使っている UI の情報と同等のものを グラファナ上で画面を作りこみます。
  43. とりあえずここでは 3点。 グラフの描画の式の変換 同種類の情報を対象サーバ全てで表示 他プロジェクトでも再利用可能にする ということについて触れます。
  44. まずグラフの描画の式の変換について。
  45. グラフの描画に対する式の変換の例として、CPUの利用率グラフを挙げてみます。 まず、既存環境で使っている UI でグラフを描画するにあたっては、このような命令をずらずらと書きます。 (クリック) そうしてできた図が真ん中下の図になります。 (クリック) これと同等のグラフをグラファナで書くときには、 グラファイトの関数を使って、右側のような式を書いて、ごにょごにょすると (クリック) こういったグラフ、似たようなグラフが出来上がります。 こうした式の変換を(次ページ)
  46. 自動化できるといいよね、となるわけですが、 (クリック) これはできません。 なので、
  47. 手作業で式の変換を行います。 (クリック) 40種類以上 全種類おこないます これは大変でした
  48. ということで、がんばって手作業で式の変換は終わり、 同種類の情報を対象サーバ全てで表示というのを考えてみます。
  49. Webサーバのステータスをサーバごとに表示したものを例として出します。 ここでは16台分のサーバの情報が出ています。 これをグラファナで表示したらどうなるかというと (クリック) 右側の図のような感じです。 グラファナのリピートパネルという機能を使うと、 見た目もだいたい同じようにできました。
  50. 最後、3番目に他プロジェクトでも再利用可能にしようと考えました。
  51. グラファナには変数とテンプレートという再利用の仕組みがあるので、それを活用します。 変数は図のようにグラファナのダッシュボードというもののところで 設定することができます。 この変数はどこで使えるかというと (クリック) クエリ、問い合わせだったり、 タイトルだったり、 繰り返しのところだったり、 リンクに埋め込んだりすることができます。
  52. ということで。画面の作りこみとして 3点行いました グラフ描画の式の変換として、 これは手作業で頑張りました 同種類の情報を対象サーバ全てで表示するにあたって、 リピートパネルの機能を使いました 他のプロジェクトでも再利用可能にするために、 変数とテンプレートを使いました 以上 3点を行いました。
  53. その結果
  54. 既存環境で使っている UI ではこうなっていたのが、 (クリック) グラファナではこんな感じになりました
  55. 拡大したものがこちらになります これが
  56. こうなりました
  57. もう1個 拡大したものを挙げておくと これが
  58. こうなりました
  59. 最後にまとめです
  60. 1点目, どうにかしてグラファナからガングリアにつなぐには、 グラファナからグラファイトを通してガングリアの順でアクセスすることで実現できます。 このときグラファイトからガングリアにアクセスする仕組みを実装しました 2点目、既存環境で使っている UI と同等の情報をグラファナで得られるようにするには、 手作業で同等のグラフを移植するような形で式を変換しました あとはリピートパネルとか、変数・テンプレートの機能を使用したりしました
  61. 以上で発表を終わります。 ありがとうございました。