Grafanaを導入して問い合わせ対応や保守業務を効率化した話

こんにちは、開発室の林です。 今回はデータ可視化ツール「Grafana」を利用して、TACT SEOの問い合わせ業務や保守業務の一部を効率化した事例を紹介します。

本記事のスコープ

本記事の想定読者は以下の通りです。

  • Grafanaは知っているけど、実際にどのように使えるか知りたい人
  • 同じ保守業務を繰り返しており、効率化を図りたい人
  • データ可視化ツールを探している人

本記事では「Grafanaとは何なのか」、「Grafanaの詳細な使い方」に関しては記述しませんので、その点ご了承ください。

Grafanaで利用した機能

Grafanaは様々なDatasource(MySQLやAWSの各種サービス等)と連携ができ、それを可視化するためのオープンソースのツールです。 現在利用しているバージョンv7.3.5では、可視化で使える種類は合計12種類で、メインに使っている機能は「Graph」と「Table」です。

この機能を使ってどのようなことを効率化したのかを紹介します。

Grafanaで利用できる可視化一覧
Grafanaで利用できる可視化一覧

効率化した事例

毎月の社内用レポートの自動化

TACT SEO」は弊社が提供している、ユーザのSEO課題を抽出し検索結果の上位表示支援をするSEOツールです。ユーザが調査したいキーワードやサイトを登録していなければ効果を発揮できません。そのため『ユーザが機能をしっかりと利用しているか』を把握して適切なサポートをしていく必要があります。

具体例として、以下のようなレポートを定期的に確認したいという要件がありました。

  • 最後にツールを使用した日(=最終ログイン日時)とTACT SEOの機能利用数
  • ログイン日時と特定機能の利用数から算出される継続利用の可能性(キャプチャ上の「スコア」)

「この要件をTACT SEOのアプリケーション内に開発する」にしても、抽出データが変わった場合や機能追加・改修があった場合などを考えると管理が大変になることが目に見えてます。 それを解決したのが、Grafanaでの可視化です。

Grafanaは一つの可視化画面で、複数のリクエストを行うことができます。 それぞれのレスポンス結果で、特定のキー名が一緒であれば結果をマージしてくれます。 TACT SEOのデータはMySQLに保存されるので、今回の要件を最低限満たすSQL文を複数書いてあげるだけで、結果が表示できます。

GrafanaのSQL入力画面
GrafanaのSQL入力画面 各アルファベットが個別のSQLとなっている

実際に共有しているGrafanaのPanel
実際に共有しているGrafanaのPanel

このデータ結果はCSVでのエクスポートも可能です。複数のSQL結果をExcelなどで結合するなどの手間などが省けるのもGrafanaを利用してよかった点です。

保守業務の効率化

アプリのAlert通知

TACT SEOはほぼ一日中何かしらのバッチ処理が動いています。サービスの特性上外部影響を受けやすいため、一時的なエラーが発生したり、不具合を事前に検知したいことが多くあります。 これの解決にも、GrafanaのAlert機能が効果を発揮してくれます。

Alert機能は設定した閾値を超えると指定した通知場所に通知をしてくれます。 その状態から閾値を下回った場合にも通知をしてくれます。 (Alert機能はGraphのTime Series(時間軸表示)のみで使える機能です)

そのため検知してほしい状態を示すSQLを記述し、閾値の設定をするだけで簡単に通知ができます。

Alertで利用するGraphの表示例
Alertで利用するGraphの表示例

GrafanaのAlert設定画面
GrafanaのAlert設定画面

時間軸関係なく、ある数値を超えたときにAlert通知をしてほしい場合もあると思います。 この場合は、SQL文であればselect句の「time」に好きな時刻(NOW()など)を指定すればAlertができるようになります。

Alert設定用のSQL例
Alert設定用のSQL例

また、異常検知後に正常になったことが知れるのでチーム内の確認コストが削減できました。

Grafanaから送信される通知
Grafanaから送信される通知

関連データの可視化

障害や問い合わせがあったとき、対象データに紐づく関連データも確認したいことが多いと思います。 しかし、SQLを書くにしても毎回一から作り上げるのも大変ですし、ドキュメントにしてノウハウをまとめるのも大変だと思います。

TACT SEOでは、各調査に応じて確認用のダッシュボードを作成し、何かあった場合この画面を見ればほしい情報を見れるようにしています。 これによって、「Aテーブルのデータがあるから、Bテーブルを見て…」といった大変だった作業が一瞬で終わるようになりました。

TACT SEO開発チームで利用しているダッシュボード例
TACT SEO開発チームで利用しているダッシュボード例

最後に

TACT SEO開発チームでは、毎日最低でも数十分は保守運用のための時間に費やしていました。 Grafanaを導入して、その時間がほぼ0に短縮できました。

Grafanaは「可視化」に特化したツールなので、必要な機能が豊富です。 今回の記事では紹介しきれない機能も数多くあります。

今後は、Grafanaでうまく利用できていない可視化パネルがあるのでその知見を溜めたり、複数のDatasourceを使ってより高度な可視化などにチャレンジしてみたいと思います。