Docker Goインストール
管理 > エージェントインストール > 下段のアプリケーションインストール クリック > 設置案内の中で Docker Go タブを選択
Dockerコンテナベースで実行するGoアプリケーションに、WhaTapモニタリングエージェントを適用し、コンテナイメージをパッケージングする手順を次のように案内します。
EKS Fargateは、対応予定です。
エージェントダウンロード
GoアプリケーションのDockerイメージをビルド時、whatap-agentパッケージをインストールしてください。
- x64
- AArch64
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-agent.tar.gz
RUN tar -xvzf whatap-agent.tar.gz -C /
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/aarch64/whatap-agent.tar.gz
RUN tar -xvzf whatap-agent.tar.gz -C /
エージェント設定
ユーザーアプリケーションの実行パスに、WhaTapのアクセスキー、サーバーIPアドレス情報を入力したwhatap.confファイルを作成してください。 特定のパスを使用する場合は、環境変数WHATAP_HOME
に設定できます。
RUN echo "accesskey={アクセスキー}" >> whatap.conf
RUN echo "whatap.server.host={収集サーバーのIPアドレス}" >> whatap.conf
アクセスキーがDocker Publicのイメージにオープンされないように注意してください。
WHATAP_HOME
環境変数の設定
whatap.confファイルパスをWHATAP_HOME
環境変数として設定できます。 まず、WHATAP_HOME
パスを作成してください。 アプリケーション実行構文の前にWHATAP_HOME
設定を追加します。
mkdir ./whatap_home
echo "license={アクセスキー}" >> ./whatap_home/whatap.conf
echo "whatap.server.host={収集サーバーのIPアドレス}" >> ./whatap_home/whatap.conf
# run application
WHATAP_HOME=./whatap_home ./app
Goライブラリーの設定する
Goアプリケーションのソースコードにgithub.com/whatap/go-apiパッケージを追加してください。
go get github.com/whatap/go-api
trace.Init()
, trace.Shutdown()
関数で初期化と終了を設定してください。 trace.Start()」
,trace.End()
関数でトランザクションの開始終了を設定してください。
import "github.com/whatap/go-api/trace"
func main(){
trace.Init(nil)
//It must be executed before closing the app.
defer trace.Shutdown()
ctx, _ := trace.Start(context.Background(), "Start Tx")
...
trace.End(ctx, err)
}
ライブラリ設定の詳細については、次の文書を参照してください。
コンテナ環境変数の設定
Dockerビルド後、Kubernetes環境内のコンテナ環境変数を設定します。 アプリケーションのリリーズyamlファイルに次の内容を追加します。
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
次の例を参照にしてください。
apiVersion: v1
kind: Pod
metadata:
name: # Pod Name
labels: # Pod Labels
spec:
containers:
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
環境変数の役割
-
NODE_IP
: 現在のポッドがホストされているノード(Node)のIPアドレスを収集します。 -
NODE_NAME
: ポッドが実行中のノードの名前を収集します。 -
POD_NAME
: ポッドの名前を収集します。
エージェント実行
- Command
- Supervisor
アプリケーション開始コマンドの前にwhatap-agentの開始コマンドを追加します。
sh -c "/usr/whatap/agent/whatap-agent start && [アプリケーション開始コマンド]"
Supervisorでアプリケーションを起動する場合は、次のコードを参考してwhatap-agentサービスを追加してください。
RUN echo "[program:whatap-agent]" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "command = sh -c ‘/usr/whatap/agent/whatap-agent start’" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "user = root" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "startsecs = 0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autostart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autorestart = false" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile = /dev/stdout" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile = /dev/stderr" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
次のコマンドを実行して、WhaTapサービスが正常に実行されているかを確認してください。 アプリケーションサーバーが実行されると、エージェントがモニタリング情報を収集します。
ps -ef | grep whatap_agent
エージェントのインストール確認
エージェントが正常にインストールされたかを確認するには、ダッシュボード > ダッシュボードメニューへ移動してください。
ダウンロードしたファイルをインストールした後にダッシュボードメニューからエージェントが表示されない場合は、次の事項を確認してください。
-
コンテナで
ps -ef | grep whatap_agent
コマンドを実行し、エージェントオプションが適用されているかを確認してください。 -
コンテナの_
WHATAP_HOME
/logs_、またはアプリケーション実行パスの_logs_ディレクトリを確認してください。 エージェントログは、logs/whatap-{boot、またはinstall}
-yyyymmdd.log 形式のファイル名として出力されます。