最近Minioネタが多い。別にMinioの関係者ではないので悪しからず。
なぜMinioでトレースをする羽目になったか?単純に使っているソフトウェアのオブジェクトストレージのAPIコールのやりとりを教えて欲しいとか、APIカウント数を出して欲しいという話があったため。ただし、そんなに公開しているものではなく、はたと困ったのだが、ちょうどMinioクライアントのMCを調べてたらトレースができることが判明。
しかし、こういうのに応えているとそのうちソースコードが欲しいとか言われそうで怖い。そんな簡単にソースコードなんか出るものではないのだが、人間、切羽詰まるとそういうことを言ってしまうのであるが。。。実は一度言われたことがあるが。。。もちろんプロプラエタリなもので出せない。
閑話休題
あくまでも対象がMinioでMCクライアントだとトレース情報が出せる。
まず、mcコマンドの設定。
mc alias set で設定する。設定例は以下
mc alias set local https://miniohost:9000 MINIO_USER MINIO_PASSWORD –api S3v4
ちなみに、httpsでオレオレ証明書の場合は、.mc/certs/CAにパブリックキーを食わせておくか、OSにパブリックキーを登録しておく。
それができない場合は、–insecureオプションをつけておく。
動作確認は
mc admin info local
と実行すると、以下のような結果がでればOK。出ない場合は、設定が間違っている。.mc/config.jsonにベタ書きの設定もあるが、そちらを確認してもいい。
● 192.168.10.4:9000
Uptime: 11 hours
Version: 2021-08-05T22:01:19Z
Network: 1/1 OK
Drives: 4/4 OK
トレースコマンドは以下
mc admin trace local
以下のような結果が出る。停止はCtrl-C。もちろんリダレクションしてテキストにも出せる。
ただし、これをやっているとものすごくパフォーマンスが落ちるのは言うまでもない。
ちなみに、mcコマンドが面倒な場合は、Minioコンソールからも実は取れる。コンソールのTraceタブでStartをクリックする。
ちょっと見栄えが違うので利用の用途はそれぞれかと。
これを知っているか知らないかで大違い。APIカウントを計算するためにAWSの有償カウンターをオンにして計測する必要がなくなった。
またmcコマンドはminioに関してだけだが、awsコマンドに比べて多機能なので是非セットアップしておくことをお勧めする。
ちなみに、量的なものはダッシュボードが便利。データ転送量とかデータブロックが見れる。ただし、Prometheusとの連携が必要だが。
2回転送しているので2回の山がある。すごい小さいテキストファイルを転送したんだが、ブロックサイズはデカイ。
ちなみに、ダッシュボードは時間指定でも表示してくれる。まぁPrometheusバックエンドなので。
たとえば、以下のように時間を指定しておくと、その時間でのダッシュボードを表示してくれる。
Prometheus連携はなかなか便利。