LoginSignup
1
1

More than 3 years have passed since last update.

mackerel-container-agentのメトリック数を調整する

Last updated at Posted at 2020-07-14

概要

mackerel-container-agentでFargate上のnginxとphp-fpmの監視を実装したら、1マイクロホストのメトリック数30を微妙にオーバーして料金が2マイクロホスト分になってしまった。
ecs_metric_count.png
6メトリックで料金が倍になるのも癪なのでいらないもを調整する。

監視から外してもいいメトリックを検討する

ホストの画面からグラフを確認する。
ecs_metric_many.png
サービス以外の以下のコンテナはいらなそう。

  • mackerel-container-agent
  • _internal_ecs_pause

設定方法(失敗)

目星をつけたコンテナをignoreContainerの設定でコンテナを監視対象外とする。
ignoreContainerは正規表現指定なのでOR条件で二つのコンテナ名を指定。
\A(mackerel-container-agent|_internal_ecs_pause)\z

mackerel_config.yaml
apikey: "********" # mackerelのAPIキー
plugin:
  metrics:
    nginx:
      command: mackerel-plugin-nginx -host=localhost -path=/nginx_status -port=80
    php-fpm:
      command: mackerel-plugin-php-fpm -url http://localhost/phpfpm_status?json
ignoreContainer: '\A(mackerel-container-agent|_internal_ecs_pause)\z'

設定してデプロイ
が、、、
_internal_ecs_pauseが監視対象外にならない、、、
そもそも、コレが何なのかちゃんと調べてなかった、、、
公式に出てました。

awsvpc ネットワークモードを使用してタスクが開始されると、タスク定義内のコンテナが開始される前に、各タスクに Amazon ECS コンテナエージェントによって追加の pause コンテナが作成されます。次に、amazon-ecs-cni-plugins CNI プラグインを実行して pause コンテナのネットワーク名前空間が設定されます。その後、エージェントによってタスク内の残りのコンテナが開始されます。こうすることで pause コンテナのネットワークスタックが共有されます。つまり、タスク内のすべてのコンテナは ENI の IP アドレスによってアドレス可能であり、localhost インターフェイス経由で相互に通信できます。

ではコンテナ名は何なんだろ?
なんとかpauseコンテナかなと目星をつけて正規表現で指定してみることに。

設定方法(成功)

なんとかpauseコンテナで指定する。
.*pause

mackerel_config.yaml
apikey: "********" # mackerelのAPIキー
plugin:
  metrics:
    nginx:
      command: mackerel-plugin-nginx -host=localhost -path=/nginx_status -port=80
    php-fpm:
      command: mackerel-plugin-php-fpm -url http://localhost/phpfpm_status?json
ignoreContainer: '\A(mackerel-container-agent|.*pause)\z'

コレでデプロイした結果、成功した。
mackerel-container-agent_internal_ecs_pauseの二つのコンテナが監視対象外にとなったので、結果として監視対象メトリック数が 36->28 となり、1マイクロホスト内に収まった、、、
ecs_metric_count_after.png


Mackerelのメトリック数のカウントってわかりにくいと思うのは自分だけだろうか、、、?
グラフ数えてもなんか微妙に違う気がするし、カウントされてるメトリック一覧みたいの出して欲しい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1