本文へスキップ

Docker環境インストール

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

ノート

EKS Fargateは、対応予定です。

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

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

Red Hat/CentOS
RUN rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
RUN yum install -y whatap-agent

エージェント設定

ユーザーアプリケーションの実行パスに、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 形式のファイル名として出力されます。