0
0

More than 5 years have passed since last update.

PHPフレームワーク「Slim」でTwitter APIから取得したデータをMackerelのメトリックに登録してみる

Posted at

概要

前回の記事でTwitter APIを利用する所まで来ました。今回はチームにMackerelの調査結果を報告するため、SlimからTwitter APIの検索を行い、実行結果をMackerelのメトリックとして登録します。

Slimにmackerel-client-phpを導入

PHPでMackerelのAPIを操作するためのライブラリとして「mackerel-client-php」というものがあります。
今回はこちらのライブラリを使って操作を行っていきます。

まずは、Slimにmackerel-client-phpを導入します。
composerでの導入が可能なので、Slimのディレクトリに入って下記コマンドを実行します。

composer require ariarijp/mackerel-client:dev-master

インストール後はvendor配下にライブラリが配置されます。

mackerel-client-phpの読み込み設定

mackerel-client-phpの導入が終わったので、今度は設定を行っていきます。今回は汎用的に使うことを意識して、setttings.phpに設定を記載します。

src/setttings.php
// mackerel設定
'mackerel' => [
    'mackerel_api_key' => '',
],

次に、オブジェクト生成を行います。

src/dependencies.php
// mackerelクライアント
$container['mackerel'] = function ($c) {
    $settings = $c->get('settings')['mackerel'];
    $client = new \Mackerel\Client([
        'mackerel_api_key' => $settings['mackerel_api_key'],
    ]);
    return $client;
};

これで使う準備は整ったので、APIを使って操作を行っていきます。

Twitterの検索結果をMackerelに登録する

Twitter APIで検索

準備が整ったらroutes.phpにコードを記載していきます。
今回は特定ワードで検索するルーティングとコードを記載します。

src/routes.php
// TwitterAPIを実行
$params = [
    'q'     => '検索ワード',
    'count' => 100,
];
$tweets = $this->twitter->get('search/tweets', $params);

これで「検索ワード」が含まれるツイートが100件取得できます。

Mackerelのメトリックに追加

次は取得した結果をMackerelのメトリックに追加します。

src/routes.php
// Mackerelにカウント数を登録
$host = $this->mackerel->getHost('HOST_ID');
$metric = [
    'hostId' => $host->id,
    'time' => time(),
    'name' => 'metric.twitter.検索ワード',
    'value' => $tweets->search_metadata->count,
];
$this->mackerel->postMetrics([$metric]);

これでroutes.phpで設定したURLにアクセスするとMackerelのメトリックにTwitterの検索結果が登録されます。

まとめ

Twitter APIの実行結果をMackerelにメトリックとして登録しました。今回のCodeは常に100となってしまうため、条件を設定して、一度集計したデータを引っ掛けないようにすると、適切なメトリックとなると思います。
今回作ったCodeはこちらに上げてみました。
参考までに。

この記事の内容は以上になります。
最後まで読んで頂きありがとうございました。

0
0
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
0
0