概要
前回の記事で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に設定を記載します。
// mackerel設定
'mackerel' => [
'mackerel_api_key' => '',
],
次に、オブジェクト生成を行います。
// 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にコードを記載していきます。
今回は特定ワードで検索するルーティングとコードを記載します。
// TwitterAPIを実行
$params = [
'q' => '検索ワード',
'count' => 100,
];
$tweets = $this->twitter->get('search/tweets', $params);
これで「検索ワード」が含まれるツイートが100件取得できます。
Mackerelのメトリックに追加
次は取得した結果をMackerelのメトリックに追加します。
// 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はこちらに上げてみました。
参考までに。
この記事の内容は以上になります。
最後まで読んで頂きありがとうございました。