Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mackerel-client-php
Search
Takuya Arita
January 26, 2017
Technology
0
5.3k
mackerel-client-php
Mackerel Meetup #9のLT資料です
Takuya Arita
January 26, 2017
Tweet
Share
More Decks by Takuya Arita
See All by Takuya Arita
Hosted Redash の EOL と移行ツール redash-migrate / You should know about Hosted Redash EOL and redash-migrate
ariarijp
0
3.2k
Redash で踏み出す BI 導入はじめの一歩 / DataEngineeringStudy Redash
ariarijp
1
2.5k
Redash のいま / Redash in 2021
ariarijp
2
1.1k
Redash 導入・運用を4年ぐらいやって変わったこと・変わらなかったこと / Changed and unchanged things with Redash and me
ariarijp
0
1.4k
5年前の自分に伝えたい広告 API 周辺の歩き方 / SOT Tech Night vol.1
ariarijp
1
510
使われていない、を知る / How do we know unused things in the real world?
ariarijp
0
450
MULTI_ORG について / What is MULTI_ORG in Redash
ariarijp
1
3.7k
あらためて振り返る Redash の使いどころ / Why I strongly recommend Redash
ariarijp
2
1.3k
PHP Data Structures
ariarijp
1
560
Other Decks in Technology
See All in Technology
CQRS/ESになぜアクターモデルが必要なのか
j5ik2o
0
1.2k
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
730
Microsoft Tech Brief : Microsoft Fabric × Databricks × Microsoft Foundry が切り拓く Agentic Analytics 革命 ― Microsoft Ignite & Databricks 社 主催 DATA+AI World Tour Tokyo 最新アップデート総括
databricksjapan
0
110
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
6.8k
クラウドセキュリティの進化 — AWSの20年を振り返る
kei4eva4
0
120
Databricks Free Editionで始めるLakeflow SDP
taka_aki
0
130
ソフトとハード両方いけるデータ人材の育て方
waiwai2111
1
470
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
460
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
3.1k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
280
習慣とAIと環境 — 技術探求を続ける3つの鍵
azukiazusa1
2
570
Security Hub と出会ってから 1年半が過ぎました
rch850
0
150
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
200
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Code Reviewing Like a Champion
maltzj
527
40k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
150
Discover your Explorer Soul
emna__ayadi
2
1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
38
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Ruling the World: When Life Gets Gamed
codingconduct
0
130
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
150
Transcript
mackerel-client-php @ariarijp
自己紹介 • @ariarijp(Takuya Arita) • 株式会社ココラブル ソフトウェアエンジニア • 普段はPHPを書いたりしていますが、インフラも扱 います
• mackerel-agent-pluginsにプルリクエストを送った ことがあります
Mackerelといえば
None
可視化がうれしい
Mackerelに メトリクスを送ろう
Mackerelにメトリクスを 送る方法 • mackerel-agentやプラグインを使う • mkrを使う • 各言語向けのクライアントライブラリを使う • Mackerel
APIを使う
Mackerelにメトリクスを 送る方法 • mackerel-agentやプラグインを使う • mkrを使う • 各言語向けのクライアントライブラリを使う • Mackerel
APIを使う
Mackerelの クライアントライブラリ • mackerelio/mackerel-client-go • mackerelio/mackerel-client-ruby • itchyny/mackerel-client-hs • heavenshell/py-mackerel-client
• pepabo/mackerel-rb • muddydixon/node-mackerel • ariarijp/mackerel-client-php
Mackerelの クライアントライブラリ • mackerelio/mackerel-client-go • mackerelio/mackerel-client-ruby • itchyny/mackerel-client-hs • heavenshell/py-mackerel-client
• pepabo/mackerel-rb • muddydixon/node-mackerel • ariarijp/mackerel-client-php
PHP版のクライアントを 作ってみました
None
None
導入 composer require ariarijp/mackerel-client:dev-master (2017/01/26ݱࡏ)
使ってみる (READMEに記載) <?php require __DIR__ . '/vendor/autoload.php'; $client
= new \Mackerel\Client([ 'mackerel_api_key' => 'YOUR_MACKEREL_API_KEY_HERE', ]); $host = $client->getHost('HOST_ID');
使ってみる (メトリクスを送ってみる) <?php require __DIR__ . '/vendor/autoload.php'; $client
= new \Mackerel\Client([ 'mackerel_api_key' => 'YOUR_MACKEREL_API_KEY_HERE', ]); $host = $client->getHost('HOST_ID'); $metric = [ 'hostId' => $host->id, 'time' => time(), 'name' => 'metrics.meetup.random', 'value' => mt_rand(1, 6), ]; var_dump($metric); $client->postMetrics([$metric]); ※公式ドキュメント:ホストのカスタムメトリックを投稿するを参考にしました
PHPerも気軽に メトリクスを送れる! • アプリケーション固有のメトリクスを送る • バッチ処理などの実行時間を送る • 外部APIのレスポンスタイムやエラー率を送る
メトリクスさえ送れば あとはMackerelが 可視化も監視もしてくれる
(小ネタ) Mackerelでがんばり具合を可視化する • SlackのUser Presence APIを使用 • レスポンスにはメンバー一覧とその状態が含まれる • アクティブなユーザーの数を拾い、mackerel-
client-phpを使ったPHPスクリプトでMackerelに送 る
Mackerelでがんばり具合を 可視化するコード例 <?php require __DIR__ . '/vendor/autoload.php'; function
getActiveUsersCount() { $client = new GuzzleHttp\Client(); $resp = $client->get('https://slack.com/api/users.list', [ 'query' => [ 'token' => ‘YOUR_SLACK_TOKEN’, 'presence' => '1', ], ]); $presence = json_decode($resp->getBody()->getContents()); return count(array_filter($presence->members, function ($m) { return $m->presence == 'active'; })); } $client = new \Mackerel\Client([ 'mackerel_api_key' => 'YOUR_MACKEREL_API_KEY_HERE', ]); $host = $client->getHost('HOST_ID'); $metric = [ 'hostId' => $host->id, 'time' => time(), 'name' => 'metrics.slack.active', 'value' => getActiveUsersCount(), ]; var_dump($metric); $client->postMetrics([$metric]);
Mackerelでがんばり具合を 可視化した例
Mackerelでがんばり具合を 可視化した例 やる気が急激に減っているのではなく 今日は18時から全社定例がありました activeだけに絞るの忘れてた またやる気が減っているように見えますが 月例の全社飲み会が始まったのだと思います Meetup会場に移動中
PHP x Mackerel便利 (だと思う)
PHPerのみなさまにおかれましては mackerel-client-phpの導入もご検討ください