ラベル付きメトリックの基盤移行に伴う障害についての詳細ご報告

いつもMackerelをご利用いただきありがとうございます。

2026年5月28日から2026年6月23日までの期間、Mackerelのラベル付きメトリック機能において断続的に複数の障害が発生し、ご迷惑とご心配をおかけいたしましたことを深くお詫び申し上げます。

本事象の概要、原因、および今後の再発防止策についてご報告いたします。

背景:ラベル付きメトリックの保存基盤の刷新について

ラベル付きメトリックは、お客様が投稿されたメトリックとそのラベルを保存し、検索・グラフ表示・監視に利用いただくための機能です(詳しくはヘルプをご参照ください)。

サービスのご利用拡大に伴い、従来の保存基盤ではデータ量の増加に十分にスケールできず、将来的に性能・コストの両面で立ち行かなくなることが見込まれていました。そこで私たちは、大規模なデータ量にも耐えられ、かつ高速な検索と新しいデータの短時間での反映を実現できる新しい保存基盤へと作り替える取り組みを進めてまいりました。

新しい基盤は、複数のデータストアを役割ごとに組み合わせる構成となっており、従来よりも高い拡張性を実現する一方で、システムとしての複雑さも増していました。今回の一連の障害は、この基盤への移行過程、および移行後の運用の中で発生したものです。

移行は段階的に進め、2026年3月16日に新基盤への書き込みを開始し、2026年4月6日に新基盤への切り替えを完了しました。しかし、その後の運用の中で、以下にご説明する事象が発生いたしました。

発生した事象の経緯と原因

2026年6月1日:一部のメトリックがグラフに表示されない事象

事象

一部のラベル付きメトリックが正しく保存・表示されず、クエリグラフの表示に失敗する事象が発生しました。あわせて、該当するメトリックを参照するクエリ監視が正しく機能しない状態となりました。

原因

事象の直前に、特定の環境から想定を大きく超える量のメトリック投稿があり、サービス全体を保護するために投稿量を制限する仕組み(レートリミット)を導入していました。しかし、この仕組みにヒストグラム型のメトリックに関する不具合がありました。ヒストグラム型のメトリックは、投稿時に内部で複数のメトリックとして扱われますが、投稿量の集計がこの数を正しく反映していなかったため、制限が想定より厳しくかかり、本来保存されるべきラベル情報の一部が保存されずに欠損しました。この事象は、ヒストグラムを含むメトリックを投稿されていたお客様に限って発生しています。

対応

レートリミットの実装不具合を修正し、本来保存されるべきメトリックが正しく処理されるよう改善いたしました。 また、ラベルが欠損した期間を検索した際にもグラフを表示できるように、ラベルが欠損していない期間までスキャン範囲を広げる一時的な対応を行いました。

しかしながら、不具合発生期間中に処理がスキップされてしまった一部のメトリックにつきましては、データが保存されておらず復元できませんでした。

上記により、2026年5月28日15時53分~2026年6月1日18時52分の間に投稿された「ヒストグラム」を含むデータの消失に伴い、一部のお客様に過剰請求が発生しており、返金対応を行っております。

2026年6月12日:一定時刻より前の過去メトリックが表示されない事象

事象

ラベル付きメトリックにおいて、一部の表示粒度で、過去のメトリックが表示されない事象が発生しました。

原因

2026年6月1日の事象への修正対応の際、欠損した期間を表示する一時的な対応として該当期間で検索した際にスキャン範囲を過去に広げる処理を追加しました。しかし、その範囲の指定に不具合があり、2026年5月27日9時頃以前の期間を表示しようとした際に意図と異なる範囲をスキャンする結果となり、その期間のメトリックが表示されない状態が発生しました。

対応

参照範囲のさかのぼり処理における不具合を修正いたしました。

なお、本不具合によるデータの消失はなく、修正完了に伴い過去のメトリックはすべて正常に表示される状態へと回復しております。

2026年6月17日:service.name属性のないメトリックが閲覧できない事象

事象

service.name属性が付与されていないラベル付きメトリックの一部がご利用いただけない事象が発生しました。具体的には、メトリックエクスプローラーやダッシュボードでの表示ができず、該当メトリックを参照するクエリ監視も機能しませんでした。

原因

旧基盤では、service.name属性を付けずに投稿されたメトリックについて、これを自動的に補完する仕様がありました。新基盤への移行時にこの補完処理が漏れていたことが原因です。

対応

service.name属性が付与されていなかったメトリックに対しunknown_serviceという属性値を順次設定し、2026年6月23日にすべての該当メトリックへの対処を完了いたしました。

再発防止策

一連の障害の根本的な要因として、次の2点があったと考えています。

1点目は、新基盤が旧基盤と同じ挙動をすることを保証するための検証(リグレッションテスト)が不足していたことです。基盤を作り替えたにもかかわらず、従来の挙動が維持されているかを十分に確認できていませんでした。

2点目は、複数のデータストアを組み合わせた新基盤において、どのような異常が起きたときに致命的な問題につながるのかを十分に把握しきれていなかったことです。従来よりも構成が複雑になったにもかかわらず、異常時のシナリオに対する検証が追いついていませんでした。また、この複雑さによりプログラムに修正を加えた際の影響範囲の把握が難しくなっており、2026年6月12日の障害の要因になってしまいました。

これらを踏まえ、以下の対策にすでに着手しており、継続して実施してまいります。

まず、旧基盤と同じ挙動を保証するリグレッションテストを整備します。

次に、今回の一連の事象で得られた知見をもとに、異常時に発生しうるシナリオを追加で洗い出し、検証を強化してまいります。とりわけ、複数のデータストアが関わる状況で、どのような異常がお客様への影響につながるのかを重点的に確認します。

さらに、複数のデータストアへの書き込みロジックを可能な限り集約し、データの整合性が保たれやすい構成へと改善します。処理が分散していることが不具合の温床とならないよう、構造そのものの見直しを進めます。

あわせて、プログラム修正時の影響範囲や不整合の把握を容易にするため、AIを活用したレビュー補助などを導入し、レビュープロセスの改善に取り組んでまいります。

情報伝達の改善

障害予防の取り組みに加え、発生時にお客様が状況を迅速に把握できるよう、以下の改善を行いました。

Webコンソールのバナーでの影響範囲明記

メンテナンスおよび障害時、Webコンソールの表示は従来「現在、Mackerelの一部システムに障害が発生しています。」といった抽象的なメッセージにとどまっていましたが、「現在、Mackerelの一部システム(ラベル付きメトリックの投稿・クエリ・閲覧)に障害が発生しています。」のように具体的に影響範囲を含めるように変更いたしました(リリース告知:メンテナンスおよび障害の際のバナーメッセージに対象機能範囲を示すようになりました)。これにより、ご利用中の機能への影響をひと目でご判断いただけるようになります。

ステータスページへの「Labeled Metrics」コンポーネント新設

公式ステータスページ(https://status.mackerel.io)のコンポーネント構成も改善しました。従来はエージェントやクラウドインテグレーションによるメトリックもラベル付きメトリックもともに「Metrics」という単一のコンポーネントで扱っていましたが、新たに「Labeled Metrics」コンポーネントを独立して追加しました。今後はラベル付きメトリックのみに関連するメンテナンスおよび障害が発生した際に、影響範囲をより明確にお伝えできるようになります。


ラベル付きメトリック機能における複数の障害により、お客様にご迷惑をおかけいたしましたことを、重ねて深くお詫び申し上げます。

今後ともMackerelをどうぞよろしくお願いいたします。