sakuracloud_exporter v0.13 − ショートメッセージサービス対応/GitHub Container Registryへの移行

さくらのクラウド向けPrometheus Exporterであるsakuracloud_exporterのv0.13をリリースしました。

github.com

主な変更点は以下2つです。

  • ショートメッセージサービスのサポート
  • GitHub Container Registryでのイメージ配布の開始

ショートメッセージサービスのサポート

ショートメッセージサービスとは

先月(2020年9月)に「さくらのクラウド ショートメッセージサービス(SMS)」が提供開始されました。

cloud-news.sakura.ad.jp

携帯電話番号をAPIまたはコントロールパネルから指定すると6桁の番号をスマートフォンや携帯電話に送信することができるサービスです。
2要素認証で使うよくあるアレですね。

こんな感じのメッセージが送られてきます。

f:id:febc_yamamoto:20201002162528j:plain

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.com

当面は両方で配布しますが、将来的には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という名前になってます。

f:id:febc_yamamoto:20201002165823p:plain

なんの略だろうと調べてみたら、どうもExternal Short Message Entityの略っぽいですね。

k-tai.watch.impress.co.jp

なるほど。。勉強になりました。


ということで今回は以上です。是非ご利用ください。