LoginSignup
7
4

More than 5 years have passed since last update.

Webサイト上の数値の変動をDatadogで可視化する

Last updated at Posted at 2017-04-03

はじめに

Webサイト上に掲載された数値を Web Scraping で取得し、それを Datadog を用いて可視化するための Agent Check を作ってみました。

Datadog はサーバ監視のクラウドサービスですが、自作の Agent Check とカスタムメトリクスを利用することでユーザが指定した様々な数値をモニタリングできるようになります。
この機能を利用して、Web Scraping で取得した数値を Datadog に取り込み、Datadog の多彩なグラフ描画機能で可視化してしまおうというネタです。

取得サンプル

この Agent Check を用いて、いくつかサンプルを作ってみました。

1. Wikipedia のページ総数推移

Wikipedia のページ総数を取得して、その変動を Datadog でグラフ化してみました。
グラフはある日を起点にして、どの位ページ数が変動したかを表示しています。
(この起点の計算はDatadogで実施してます)

Wikipedia のページ総数

この値は Wikipedia トップページ の以下の数値部分を Web Scraping で取得しています。

Wikipedia トップページ

グラフを見ると、線形的にページ数が増えてることが分かります。1日約900ページ位ですね。凄いですね。

2. オークションの出品数推移

これは某オークションサイトの、あるカテゴリの出品数を取得したものです。

オークションの出品数遷移

毎日、21時から24時にかけて出品数が減ってますね。右端の一気に下がってる日は日曜日の夜です。
やはり、オークションが一番盛り上がるのは終了間際なので、みんながよく見る時間に合わせて終了時間を設定している出品者が多いのでしょうか?
(数値変化が分かりやすいように、y軸の原点を調整してます。これもDatadogの機能で行っています)

3. 東京の風速

こちらはアメダス情報を配信しているサイトから、東京の風速を取得してみました。
温度の変化を示したグラフはよく見かけるので、あえて風速です。

東京の風速

(前日との変化が分かりやすいように、前日の同時刻の数値(黒線)を同時に表示させています。これも Datadog の機能ですね)

この前日の午前中は雨だったのもあり、風速も強めだったようですね。
また、この配信サイトは1時間ごとに情報を更新していることも分かりました。

他にも Datadog の機能や Integration を組み合わせて「ECサイトの価格変動を記録し、一定の金額になったら slack 通知する」なんていうこともできると思います。

Agent Check のインストール方法と設定方法

インストール方法と、Web Scraping で取得する値の指定方法は、リポジトリ内の README.ja.md に記載しています。

利用には Datadog のアカウントと、Datadog Agent をインストールしたサーバが必要です。

なお、この Agent Check の Web Scraping は単純に HTML を GET しているだけなので、JavaScript などで描画している値や、ログインが必要なページの値は取得できないです。

まとめ

Datadog は Agent Check や SDK を用いることで様々な数値をカスタムメトリクスで取得することができます。
この機能でサーバ監視情報以外の、例えばサーバ上で稼働しているサービスの利用情報なども可視化することができる訳ですが、その練習として作ってみました。

また、 Agent Check は python で記述するため、 python 開発者はとっつきやすいだろうなと思いました。

Datadog って面白いですねー。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4