Mackerel ブログ #mackerelio

Mackerelの公式ブログです

メトリック監視の平均値算出方法の仕様調整に関するお知らせ

Mackerelサブプロデューサーの id:Songmu です。表題の件についてお知らせいたします。

概要

メトリックの平均値監視における平均値の算出方法を一律「ポイント数」に対する平均値に変更します。

これは、ホストメトリック監視、及び、URL外形監視のレスポンスタイム監視に影響があります。これらのメトリックは、現在「N分」に対して平均値を算出しています。サービスメトリックに関しては従来通りであるため影響はありません。

影響を受ける可能性のあるユーザー

細かい調整であるため、基本的には大きな影響はありません。

ホストメトリック監視もしくは外形監視のレスポンスタイム監視を設定しており、その上で、2分以上の平均値監視を設定しているユーザーが影響を受ける可能性があります。

特に、1分以外の間隔で投稿されているメトリックの場合、その可能性は高くなります。これは例えば、一部のAWSインテグレーションのメトリックで5分間隔で投稿されているようなものがあります。

変更の実施時期

2018年2月8日(木)

平均値算出方法に関する具体的な新旧対比

各メトリック監視における平均値算出対象を以下のように変更します。

現状 新仕様
ホストメトリック監視 N分 N点(ポイント)
レスポンスタイム監視 N分 N点(ポイント)
サービスメトリック監視 N点(ポイント) N点(ポイント)

「N分」と「N点(ポイント)」の違い

これまで「N分」を対象としていたメトリックに関しては、毎分データが投稿されることを前提として、平均値の算出をおこなっておりました。これは、以下のような場合に直感的ではない挙動となっていました。

  • 1分ではない間隔でデータが投稿されている場合
    • 例えば、5分間隔など
  • メトリックに一時的に抜けが発生する場合
    • 例えば、カウンター値に対する差分計算をおこなっているプラグインの場合、カウンター減少時にはメトリックが算出されません

これらのケースで、2分以上の平均値監視を設定している場合、このように値を観測できていない1分間(null)が含まれている時には、平均値の算出をおこなっていませんでした。

つまり、5分間隔のホストメトリックに関しては、2分以上の平均値監視は実質的に設定できず、データに一時的に抜けがある場合も、その前後の平均値の算出がおこなえない時間帯では監視が動かない仕様となっておりました。

具体的に、データに抜けがある場合に、N分平均とN点(ポイント)平均がどのように異なって算出されるかを以下に例示します。

時刻 生のメトリック 3分平均 3点(ポイント)平均
15:00 10 - -
15:01 11 - -
15:02 12 11 11
15:03 13 12 12
15:04 null null 12
15:05 14 null 13
15:06 15 null 14
15:07 16 15 15

これを、今回の仕様調整で、N点(ポイント)での平均値算出に統一します。

補足など

これで任意の間隔のメトリックで平均値監視が動作するようになりました。但し、現状のサービスメトリック同様、直近24時間以内のメトリックポイントが対象となります。つまり、日次でメトリックを投稿している様な場合には2ポイント以上の平均値監視はうまく動作しません。

投稿間隔が一定ではないケースにおいては、間隔に応じた重み付けなどはおこなわず、単純に平均値の算出をおこないます。

また、最短のメトリック間隔は1分であることは変わりません。つまり、1分間隔の間に複数のメトリックポイントを保存することは現状できません。1分以下の精度で複数のメトリックが投稿された場合であっても、1分間の精度に丸められ、一番最後に投稿された値で上書きされます。

今後もサービスの改善につとめてまいります。ご理解の程よろしくお願いいたします。