Mackerelサブプロデューサーの id:Songmu です。
10/12(木) にURL外形監視のレスポンスタイム計測に関する仕様調整を行う予定です。リリースは、14:00-16:00(日本時間) の間を計画しています。調整内容は以下の2点です。
- 外形監視のレスポンスタイム測定にDNSの名前解決時間を含めない
- HTTPレスポンスが返ってこなかった際にレスポンスタイムを記録しない
外形監視のレスポンスタイム測定にDNSの名前解決時間を含めない
URL外形監視で計測しているレスポンスタイムは現在DNSの名前解決時間を含んでおりますが、DNSキャッシュのTTL切れの際に、名前解決が行われる分レスポンスタイムが上振れてしまうという現象があり、監視上のノイズになりがちです。
その対策として、今回の仕様調整で、レスポンスタイムに名前解決時間を含めないようにいたします。
HTTPレスポンスが返ってこなかった際にレスポンスタイムを記録しない
現在は、リクエスト対象のサーバーからHTTPレスポンスが返ってきたか否かにかかわらず、レスポンスタイム計測をおこない、Mackerelへの投稿をおこなっています。
現状、HTTPレスポンスが返ってきていないにも関わらず、レスポンスタイムを計測しているケースに以下のようなものがあります。
- 名前解決失敗時やTCPコネクションが拒否された場合には、0ミリ秒に近い値が計測される
- 接続がタイムアウトした際には15000ミリ秒が計測される(15000ミリ秒はURL外形監視クライアントの仕様上のタイムアウト設定値)
これらは直感的な挙動ではないと考えており、これらの場合は、レスポンスタイムの計測は行わず、サーバーがHTTPレスポンスを返したときのみ、レスポンスタイムを記録するように変更します。
HTTPレスポンスが返ってこなかった場合に、アラートが発生する挙動は変わりありません。
今回の調整に関するユーザーへの影響について
レスポンスタイム監視をおこなっている場合、必要に応じて閾値の調整をお願いいたします。基本的には大きな影響はないと考えています。
今後のURL外形監視の調整について
URL外形監視は、Mackerel本体のシステムが利用しているサーバーから直接ユーザーのURLにリクエストをする仕組み上、システムの負荷や、中間ネットワークの経路等、様々な影響を受けやすく、観測のゆらぎが発生しやすい構造になっています。
それらの品質を安定させていくために、今回に限らず、随時細かい調整を入れていきます。
今後ともMackerelを宜しくお願い致します。