minato128 blog

minato128の公開メモ帳です。

Azure Queue Storage で ApproximateAgeOfOldestMessage を metric する

自分で取るときの例

  1. Dequeue したときに InsertionTime と現在時刻との差分から Cloud Queue のおおまかな滞在時間を出す
  2. そのままモニタリング環境に送るか、 histogram をとって Max の値を一定間隔で送る
var histogram = Metric.Histogram("myqueue.AgeOfMessage", Unit.Custom("sec")); // metrics.net
var queue = queueClient.GetQueueReference("myqueue"); // azure queue sdk
var message = queue.GetMessage();
if (message.InsertionTime.HasValue)
{
    var messageAge= (int)(DateTime.UtcNow - message.InsertionTime.Value).TotalSeconds;
    histogram.Update(messageAge);
}