2
0

宮廷プロファイラの紹介

Last updated at Posted at 2023-12-02

宮廷プロファイラの紹介

リポジトリ

https://gitlab.com/RenonT1805/kyuuteiprofiler

devcontainerを用意しているので、

  1. VSCodeで「コンテナーでフォルダを開く」
  2. .env.templateの中身を変更して.envにリネーム
  3. go run cmd/main/main.go

で動きます。
DiscordBotなので、
https://discord.com/developers/applications
で、TOKENを発行する必要があります。
権限はCommandとAdministratorを渡しておけば大丈夫です。

概要

ISUCON用に作成したpprofのプロファイル結果をS3にアップロードするDiscordBotです。
ISUCON当初はプロファイルの画像をDiscord上にあげていましたが、
将来的にもっと詳細なプロファイルを取得したいのと、Webページでいろいろ見れるようにしたいのでS3にアップする方針にしました。

(イメージは以下のサイト。ISUCON12,13優勝チームが作ったもの)
https://pprotein.isucon13.to-hutohu.com/#/group/2023-11-25_08-07-43.526172/index/

使い方

宮廷プロファイラには以下の機能があります。準に説明していきます。

  • チャンネルの登録機能 (register)
  • チャンネルの設定機能 (hots,https)
  • 各種プロファイル機能 (profile, heap, threadcreate, goroutine, block, mutex, trace)

registerコマンド

チャンネルを宮廷プロファイラーに登録します。
以降、登録したチャンネルでのみ宮廷プロファイラは有効になります。
(複数のチャンネルを登録することもできます。)

/register

image-1.png

hostコマンド

プロファイルを取得する対象のホストを指定します。
パラメータを指定して実行すると、Hostを登録し、
image-2.png

パラメータを指定せずに実行すると現在登録されているHostを返します
image-3.png

httpsコマンド

プロファイルを取得する際、httpsを使用するかどうかをTrue/Falseで設定します。
Falseならhttpが使用されます。
image-4.png

各種プロファイルコマンド (profile, heap, threadcreate, goroutine, block, mutex, trace)

各種プロファイルを取得し、S3にアップロードします。
種類については以下を参照してください。
https://github.com/golang/go/wiki/CustomPprofProfiles
image-5.png

将来の展望

将来的にはSlowQueryや、nginxの設定ファイルなどもいい感じにできるようにしたい。
また、S3にアップロードしているので、Webページからインタラクティブな感じでプロファイルを見れるようにしたい。

おわり

来年こそはISUCON上位獲ります

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