「Prometheus Tokyo Meetup #2」に参加してきました

tma
tma
Jun 11 · 6 min read

2019年6月3日に、Prometheus Tokyo Meetup #2に参加してきました。(弊社ではエンジニア支援制度として勉強会参加のための定時前退社制度があり、その制度を活用して参加しました。)

Prometheus up and Runningの邦訳本、入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリングが発売され、ますますPrometheus界隈は盛り上がってますね。

弊社でも昨年からPrometheusにより監視環境を刷新しており、最新情報をキャッチアップすべく参加しました。時間の都合上、後半戦のLTは聞けなかったのが非常に残念でしたが、前半戦だけでも非常にためになる会でした!

入門 Prometheus

Kazuki Suda (@superbrothers), ゼットラボ株式会社

最初の発表は入門 Prometheus の監訳者、須田さんのPrometheus入門から始まりました。

初学者向けの内容とのことでしたが、Prometheusの導入を検討している方には非常によくまとまっている資料だと思います。Prometheusの使い方も広がってきており、AutoScalingなど他システムに対して、情報を連携して自動化するような使い方もされているそうです。

また、GoでClient libraryを使って自前のexporterを作成する際のサンプルコードを紹介されていました。私自身も様々なexporterの導入を検討する過程でコードを読んだ事があるのですが、exporterのコードはGo初学者にも何をやっているかだいたいわかるシンプルな構成になっています。自作exporterにも近々挑戦してみたいですね。

Prometheus and Cookpad

Ryota Yoshikawa (@rrreeeyyy), クックパッド株式会社

ピーク時2000 ターゲット、3,000,000メトリクス規模のPrometheusを運用されているクックパッドの吉川さんの発表です。とにかく規模が大きくてビビります。

この規模をどのような構成でさばいているのかというと、EC2上に展開して、リージョンごとに2台づつ構成にしているそうです。意外とシンプルな構成ですね。

様々なexporterを利用されているという事で、通常1exporterごとに1ポートあけないといけないのですが、そこはexporter_proxyというものを自作して1ポートで多数のexporterへのリクエストをさばけるようにしているそうです。

この勉強会ではJsonnetというワードが度々出てきました。Jsonをテンプレート化できる技術だそうで、これをPrometheusの設定ファイルの作成に利用しているそうです。確かにテンプレート化できてアラートの閾値を変数として持たせれるようになれば、設定ファイルを簡略化できます。ちなみに弊社は閾値を超えたアラートを通知する際は、{{ value }}で実際の値を表示していましたが、閾値がいくらなのかを表示した方がわかりやすいですね。

驚いたのがPrometheusのユニットテストもきちんと回しているとのことで、大きな声では言えませんが、ユニットテストの存在は知ってましたがサボってました。Jsonnetの導入と並行してユニットテストもチャレンジしていきたいと思います。

また、「監視の民主化」を目指してrunbookのようにannotationに対応方法を記載したドキュメントを記載しているそうで、これはすぐ真似できそうな上に非常に有用そうです。

Prometheus at PFN

荒井 良太 (@ryot_a_rai ), 株式会社Preferred Networks

GPUを利用するKubernetesクラスタ(300ノード)をターゲットにしたPrometheusを運用されているPFNの荒井さんによる発表です。PrometheusもKubernetes上で運用されているとのことでした。

こちらの発表でもJsonnetが話題にのぼりました。やはりJsonnetは要チェックのようです。そして、Kubernetesの導入を検討しているところなので、kube-prometheusで運用されているという情報は非常に有用でした。こちらもチェックしておきます。

長期保存もPrometheusを運用する上でよく課題として挙がる話ですが、Thanosを利用されているそうです。ThanosはPrometheusから集められたデータを重複を排除した形で長期保存してくれるストレージで、ダウンサンプリングにも対応してくれるそうです。ただメモリを相当食う点が苦労されているそうです。

その他、TrickstarでクエリをキャッシュしてGrafanaの表示を高速化したり、Annotationを利用してアラート発生時刻をわかりやすくするなど、人にも優しい技も披露いただき、真似したい事例満載でした。

ネットワーク監視でのPrometheus活用事例

安藤 格也 (Twitter: @akakuya, GitHub: servak), ヤフー株式会社

データセンターのネットワーク機器をターゲットにしたPrometheusを運用されているヤフー株式会社の安藤さんの発表です。ネットワーク機器はポートの多さからターゲットが増えていくそうで、メトリクス数はかなりの数にのぼるそうです。

exporterはblackbox exporterを利用しているそうで、弊社でもURL監視で利用している馴染みのあるexporterです。色々なプロトコルをしゃべれる機能があることは知っていましたが、DCの監視で利用されているというのは新鮮味がありました。自分自身、オンプレのインフラを運用していた経験があるのですが、当時はスクリプトを作成してSNMPを利用した監視運用を行なっていました。懐かしい気分に浸れる発表でした。

また、障害対応時のスピード感を非常に重視している印象で、inhibitの活用で重大アラートを目立たせたり、 Grafanaのタグの活用など、こちらの発表でも人に優しい取り組みは為になりました。

まとめ

入門 Prometheus に掲載されている導入事例を読んだ時には、短いながらも濃い内容に感心させられました。そんな折にこの導入事例をさらに深掘りした内容が聞けるということで飛びついた勉強会でしたが、非常に有用な情報が目白押しで感謝しかありません。

Jsonnetを利用したGitOpsやKubenetes上でのPrometheus運用など、早速試してみたい技術も紹介いただきました。

今回発表されたかた全般に言えることですが、人に優しい監視運用を目指して色々工夫されている点が発表された皆さんに共通してありました。この点も取り入れていき、弊社のPrometheusによる監視運用もブラッシュアップしていきたいと思います!

nextbeat-creators

「人口減少社会への価値貢献」をミッションとするネクストビートのエンジニア・デザイナーによるクリエイターズブログです。Scala,Angular,Kotlin,Swift,AWS,UI,UXなど社内で使用されている技術の情報だけでなく、社員のインタビュー記事や自社イベント、社内勉強会の様子も配信します。

tma

Written by

tma

nextbeat-creators

「人口減少社会への価値貢献」をミッションとするネクストビートのエンジニア・デザイナーによるクリエイターズブログです。Scala,Angular,Kotlin,Swift,AWS,UI,UXなど社内で使用されている技術の情報だけでなく、社員のインタビュー記事や自社イベント、社内勉強会の様子も配信します。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade