さくらのクラウド向けPrometheus Exporterであるsakuracloud_exporterのv0.13をリリースしました。
主な変更点は以下2つです。
- ショートメッセージサービスのサポート
- GitHub Container Registryでのイメージ配布の開始
ショートメッセージサービスのサポート
ショートメッセージサービスとは
先月(2020年9月)に「さくらのクラウド ショートメッセージサービス(SMS)」が提供開始されました。
携帯電話番号をAPIまたはコントロールパネルから指定すると6桁の番号をスマートフォンや携帯電話に送信することができるサービスです。
2要素認証で使うよくあるアレですね。
こんな感じのメッセージが送られてきます。

6桁の数値はさくらのクラウド側で生成、またはAPI( or コンパネ)から指定することができます。
sakuracloud_exporterでのショートメッセージサービスのサポート
sakuracloud_exporterではショートメッセージサービスのサポートとして以下2つのメトリクスを追加しました。
sakuracloud_esme_info: ESME自体の情報の参照用、常に1を返すsakuracloud_esme_message_count: 処理したメッセージ送信リクエストの数
それぞれ以下のような値となります。
# HELP sakuracloud_esme_info A metric with a constant '1' value labeled by ESME information
# TYPE sakuracloud_esme_info gauge
sakuracloud_esme_info{description="description",id="123456789012",name="example",tags=",tag1,tag2,"} 1
# HELP sakuracloud_esme_message_count A count of messages handled by ESME
# TYPE sakuracloud_esme_message_count gauge
sakuracloud_esme_message_count{id="123456789012",name="example",status="All"} 4
sakuracloud_esme_message_count{id="123456789012",name="example",status="Accepted"} 2
sakuracloud_esme_message_count{id="123456789012",name="example",status="Delivered"} 2
sakuracloud_esme_message_countの方にはラベルとしてstatusという項目を設けています。
2要素認証SMSのAPIでは各メッセージごとにステータスを持っていますのでそれを集計してます。
// ショートメッセージサービスAPIレスポンスの例(ログ取得API)
{
"ESME": {
"logs": [
{
"messageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "Delivered", <-- この値ごとに集計している
"otp": "123456",
"destination": "819012345678",
"sentAt": "...",
"doneAt": "...",
"retryCount": 0
},
...
]
}
}
メッセージ全体の件数はstatusがAllのやつを見ればOKです。
GitHub Container Registryでのイメージ配布の開始
v0.13.1からDocker Hubでのイメージ配布に加えてGitHub Container RegistryでもDockerイメージの配布を行うようになりました。
当面は両方で配布しますが、将来的にはGitHub Container Registryに1本化するつもりです。
使い方は従来のイメージ指定部分にghcr.ioを付け加えるだけです。
# DockerHubのイメージを利用する場合(従来) $ docker run docker run <options> sacloud/sakuracloud_exporter # GitHub Container Registryを利用する場合 $ docker run <options> ghcr.io/sacloud/sakuracloud_exporter
既にドキュメント類もGitHub Container Registryを利用する方法に書き換えていますので、今からsakuracloud_exporterを利用し始める方はそちらをご利用ください。
余談: ESMEってなんの略?
今回追加されたショートメッセージサービスについてですが、さくらのクラウドAPI上ではesmeという名前になってます。

なんの略だろうと調べてみたら、どうもExternal Short Message Entityの略っぽいですね。
なるほど。。勉強になりました。
ということで今回は以上です。是非ご利用ください。