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
5k
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
3k
Redash で踏み出す BI 導入はじめの一歩 / DataEngineeringStudy Redash
ariarijp
1
2k
Redash のいま / Redash in 2021
ariarijp
2
1k
Redash 導入・運用を4年ぐらいやって変わったこと・変わらなかったこと / Changed and unchanged things with Redash and me
ariarijp
0
1.3k
5年前の自分に伝えたい広告 API 周辺の歩き方 / SOT Tech Night vol.1
ariarijp
1
470
使われていない、を知る / How do we know unused things in the real world?
ariarijp
0
390
MULTI_ORG について / What is MULTI_ORG in Redash
ariarijp
1
3.4k
あらためて振り返る Redash の使いどころ / Why I strongly recommend Redash
ariarijp
2
1.2k
PHP Data Structures
ariarijp
1
510
Other Decks in Technology
See All in Technology
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
260
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
760
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
UI State設計とテスト方針
rmakiyama
2
650
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
500
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
190
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Unsuck your backbone
ammeep
669
57k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Music & Morning Musume
bryan
46
6.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
How GitHub (no longer) Works
holman
311
140k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Making Projects Easy
brettharned
116
5.9k
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の導入もご検討ください