5
4

More than 3 years have passed since last update.

Unity Accelerator + Prometheus + GrafanaをDockerでサービス化する

Last updated at Posted at 2020-02-22

はじめに

Unity2019.3からAsset Pipeline v2が追加されてUnity Acceleratorを組み合わせるとインポートしたアセットをキャッシュおよび共有することができます。

それまでのUnityにもAsset Pipeline v1とキャッシュサーバーでキャッシュできていましたが、Unity Acceleratorには以下の違いがあります。

  • キャッシュサーバーと同居できる
  • Collaborateのキャッシュに対応
  • 不要なキャッシュを定期的にクリーンアップ
  • 転送されたバイト数や接続されたエディターなどの情報をPrometheusから利用できるメトリクスで公開

フォーラムの以下のスレッドによるとDockerHubでイメージが公開されています。

Unity AcceleratorはPrometheusとダッシュボードのGrafanaを組み合わせるとメトリクスを可視化できるのでdocker-composeでサービス化しました。

Dockerでサービス化

設定ファイル

accelerator.env
COLLAB_REGISTRATION_TOKEN=ft0bJvbRD
DISABLE_USAGE_STATS=yes
  • Unity Collaborateと連携する場合はCOLLAB_REGISTRATION_TOKENにトークンを設定します。
  • 統計情報の送信を抑制する場合はDISABLE_USAGE_STATSに任意の値を設定します。

サービスを実行

docker-compose up -d

サービスを起動するとそれぞれ以下からアクセスできます。

GrafanaではUnity - Manual: Unity Acceleratorの一覧にあるメトリクスを扱えます。

Local Administraotr Dashboard

v1.0.272+gb7c26b9からLocal Administrator Dashboardが追加されて http://localhost:10080 からアクセスできるようになりました。

ConfigurationとLogsは以下のコマンドでパスワード設定が必要です。

docker-compose exec accelerator /agent/unity-accelerator tool adminpw mysupersecretpassword ​

image.png

公式イメージ公開前にDocker化で工夫したこと

  • Unity AcceleratorをダウンロードするURLからバージョンが分からないのでバージョンを確認する方法を用意しています。
  • v1.0.196+ge1f9988で修正されました。キャッシュサーバー追加でインストーラーを非対話モードで実行するとnpmのパスが展開されないバグがあるので対話モードprintfで強引にインストールしています。(バグ報告済み)
  • v1.0.242+gf11031dで修正されました。v1.0.196+ge1f9988で初回起動時などpidファイルがなかったり空の時に起動できないバグがあるのでパッチを当てています。
  • 公式イメージが公開されたので独自Dockerfileから切り替えました。
5
4
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
5
4