本文へスキップ

Docker Goインストール

管理 > エージェントインストール > 下段のアプリケーションインストール クリック > 設置案内の中で Docker Go タブを選択

Dockerコンテナベースで実行するGoアプリケーションに、WhaTapモニタリングエージェントを適用し、コンテナイメージをパッケージングする手順を次のように案内します。

ノート

EKS Fargateは、対応予定です。

エージェントダウンロード

GoアプリケーションのDockerイメージをビルド時、whatap-agentパッケージをインストールしてください。

x64
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 /

エージェント設定

ユーザーアプリケーションの実行パスに、WhaTapのアクセスキー、サーバーIPアドレス情報を入力したwhatap.confファイルを作成してください。 特定のパスを使用する場合は、環境変数WHATAP_HOMEに設定できます。

whatap.conf
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()関数でトランザクションの開始終了を設定してください。

Go
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: ポッドの名前を収集します。

エージェント実行

アプリケーション開始コマンドの前にwhatap-agentの開始コマンドを追加します。

sh -c "/usr/whatap/agent/whatap-agent start && [アプリケーション開始コマンド]"

次のコマンドを実行して、WhaTapサービスが正常に実行されているかを確認してください。 アプリケーションサーバーが実行されると、エージェントがモニタリング情報を収集します。

ps -ef | grep whatap_agent

エージェントのインストール確認

エージェントが正常にインストールされたかを確認するには、ダッシュボード > ダッシュボードメニューへ移動してください。

ダウンロードしたファイルをインストールした後にダッシュボードメニューからエージェントが表示されない場合は、次の事項を確認してください。

  • コンテナでps -ef | grep whatap_agentコマンドを実行し、エージェントオプションが適用されているかを確認してください。

  • コンテナの_WHATAP_HOME/logs_、またはアプリケーション実行パスの_logs_ディレクトリを確認してください。 エージェントログは、logs/whatap-{boot、またはinstall}-yyyymmdd.log 形式のファイル名として出力されます。