dockerネットワークのメトリクス大事ですよね障害が発生したときなどに、何が起因なのか切り分ける場合などにネットワークのメトリクスはとても大事になると思います。TCPのコネクションなどはデータベースとの接続を見るときとかに役に立ちますよね。exporterを使って、コンテナが乗っているノードのメトリクスを取ることが多いと思います。ある日、ECSでコンテナを動かしていたときに、ネットワーク関係のメトリクスが上手く取れていないことに気がつきました。明らかに0でない値が入るであろうメトリクスなのに0で取得されるというものです。何が原因だったのか私の予想・考察的要素もあります。ECSでポートマッピングを使いたかったため、ネットワークモードをBridgeにして使用していました。デフォルトもBridgeだったはずです。Bridgeモードはdockerデーモンを起動した際に作成される仮想ブリッジdocker0を使用します。docker0に割り当てられるIPアドレス空間は、ホストの既存の空いているIPアドレスから特定の範囲を取ってきたものです。Ethernet)インターフェースが割り当てられ、コンテナは外部と通信するときにに、このvethを経由することになる。画像は以下から引用させていただきました。namespaceが別々になっていることがわかります。namespace内の情報だったと思われます。実際に外部とのコネクションを持ってるのはホストなので、想定するメトリクスが得られないのではと結論づけました。どのように対応したかホストのネットワークスタックを監視するようにコンテナのネットワークモードをhostに変更しました。namespace内で通信を行います。この場合だと期待されたメトリクスを取得することができました。まとめ監視の際のノードのメトリクス取得はdockerのネットワークモードを考慮する必要性がある。以下の資料を読んで理解を深めた。practices月別アーカイブはてなブログをはじめよう!jrywm121さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。