by shigemk2

当面は技術的なことしか書かない

DataDog Docker Integrationとdocker statsのmemory usage

箇条書き

  • docker statsで各コンテナのCPU使用率とかメモリ使用率とか取れる
  • datadogで取得できるメモリ情報はRSSメモリ使用率(ディスクに関連しないメモリ使用量)だけ トータルは取れない CPUも同様にトータルは取れない
  • docker statsで取れるメモリ使用量
    • /sys/fs/cgroup/memory/memory.usage_in_bytes - /sys/fs/cgroup/memory/memory.statのcache(概算)
    • Linuxではメモリ使用量からページキャッシュ
  • docker statsで取れるメモリ限度
    • /sys/fs/cgroup/memory/memory.limit_in_bytes
  • KiB/MiBベースなのでKB/MBにはあとで変換しておくこと

環境

  • datadog agent 7.16.1 (docker)
  • 19.03.6-ce
  • amazon linux 2

リンク

DataDogで取れるDocker情報一覧

DataDogで取れるDocker情報一覧

イメージ情報とかコンテナのCPU使用率とかメモリ使用率とか取れる docker.cpu.sharesがCPU使用限度で、docker.mem.limitがメモリ使用限度だと思うけど違うかもしれない

Docker Data Collected

Dockerコンテナで利用できるリソースや権限を制限する(Dockerの最新機能を使ってみよう:第3回) | さくらのナレッジ

pritunl-client-electron メモ

pritunl-client-electron

GitHubのpritunl-client-electron 665640c68ef95f53daba7b6743748c4f9be6a01aで、tools/install_macos.shからpritunl clientをインストールしようとしたら、ふたつのエラーが出た。

go buildのところでエラー

An error occured when executing go build
undefined: FilterStr

pritunl clientの起動でエラー

An error occured when starting app
TypeError: profile.getProfiles is not a function

これを直すプルリクを投げたら、コミットしてない修正がいっぱいあるからインストールするならリリースバージョンのものをインストールしろと言われた。要するにここのリポジトリはそんなにメンテされていないということだろうか。

Fix errors when building and starting app by shigemk2 · Pull Request #50 · pritunl/pritunl-client-electron · GitHub

brew caskでpritunlをインストールしようとしたら、/Applicationsの下にPritunl.appがインストールされないので、たぶんcaskの書き方が間違っている。都度アプデするのは面倒なので、homebrewで一括管理できるなら一括管理したいっていうきもちなのだけれど、使われているのか自分の環境がおかしいのかみんなどうしてるのかイマイチよくわからなくて要検証。 pritunl — Homebrew Formulae

gotunl メモ

メモ

  • pritunl-clientのバージョンは最新にする
  • PR4 出力がテーブルしかなかったからtsv出力するオプションを追加した(デフォルトはtable)
  • PR5 IDのソートがおかしかったのでなおした
    • https://golang.org/pkg/sort/#Slice
    • 配列のソートの書き方がじゃっかん分かりづらいんだけど、コールバックのなかでなんか書く。なお、stringでソートしようとしたら1 9 10 11が1 10 11 9という順番になってうまくいかない

Correct ID order by shigemk2 · Pull Request #5 · cghdev/gotunl · GitHub

なんとなくECS定義のCPUとメモリ

  • タスク定義で指定できるCPUとメモリのサイズと、コンテナで指定できるCPUとメモリのサイズは違う
  • タスクを起動するとコンテナ定義で指定したCPUとメモリをくう
  • docker statsでコンテナがどのくらいCPU/メモリを使っているかわかる

タスク定義パラメータ - Amazon Elastic Container Service

gotunl 途中

GitHub - cghdev/gotunl: Command line client for Pritunl

pritunl-clientのコマンドライン。のはずなんだけど、プロファイルの読み込みはこっちのほうのディレクトリをベースにしてるっぽい

GitHub - pritunl/pritunl-client-electron: Pritunl OpenVPN client

金曜時点でelectronで接続した状態でgotunlを確認してもconnectedにならないしlogを追っかけたら途中で401になっているので、何かが足りない