本文へスキップ

Docker Goインストール

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

DockerコンテナベースのGoアプリケーションにWhaTapモニタリングエージェントをインストールする方法を案内します。次の2つの方法から選択してください。

  • クイックインストール方法: Dockerfileの作成からコンテナの実行、モニタリングデータの確認までの全インストールプロセス

  • デプロイ環境別設定: アーキテクチャ(x64/ARM64)、Kubernetes、Docker Compose環境別の追加設定方法

ノート

EKS Fargateはサポート予定です。

Tips

インストールを開始する前に、次の情報を準備してください。

  • WhaTapプロジェクトアクセスキー([プロジェクトメニュー] > [管理] > [エージェントインストール]で確認)
  • WhaTap収集サーバーIPアドレス

クイックインストール方法

3つのファイルだけでWhaTapモニタリングが適用されたDockerイメージをビルドできます。

ステップ1. 必須ファイルの準備

プロジェクトルートに次の3つのファイルを作成してください。

# ============================================
# Build stage - whatap-go-instビルド
# ============================================
FROM golang:1.21-alpine AS builder

WORKDIR /app

# whatap-go-instインストール
#RUN go install github.com/whatap/go-api-inst/cmd/whatap-go-inst@latest
RUN wget -qO- https://github.com/whatap/go-api-inst/releases/latest/download/whatap-go-inst_linux_amd64.tar.gz | tar xz -C /usr/local/bin/

# ソースコピー
COPY go.mod go.sum ./
RUN go mod download
COPY . .

# whatap-go-instビルド
RUN whatap-go-inst go build -o /app/main .

# ============================================
# Runtime stage
# ============================================
FROM alpine:latest

WORKDIR /app

# WhaTapデータ中継エージェントインストール
RUN apk add --no-cache wget
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 rm whatap-agent.tar.gz

# アプリケーションコピー
COPY --from=builder /app/main .

# 起動スクリプト
COPY entrypoint.sh /app/
RUN chmod +x /app/entrypoint.sh

ENTRYPOINT ["/app/entrypoint.sh"]

ステップ2. イメージビルド

docker build -t my-go-app .

ステップ3. コンテナ実行

環境変数でWhaTap設定を渡します。

docker run -d \
-e WHATAP_LICENSE={アクセスキー} \
-e WHATAP_SERVER_HOST={収集サーバーIP} \
-e WHATAP_APP_NAME=myapp \
-p 8080:8080 \
my-go-app

ステップ4. モニタリング確認

  1. アプリケーションにトラフィック発生: curl http://localhost:8080
  2. WhaTapモニタリングサービスでデータ確認
データが表示されませんか?

トラブルシューティングセクションを参照してください。


デプロイ環境別設定

アーキテクチャ別Dockerfile設定

前述のクイックスタート例は**x64 (AMD64)**を基準としています。ARM64環境ではエージェントダウンロードURLのみ変更してください。

WhaTapエージェントのアーキテクチャ別URL

アーキテクチャエージェントダウンロードURL
x64 (AMD64)https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-agent.tar.gz
ARM64 (AArch64)https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/aarch64/whatap-agent.tar.gz

ARM64 Dockerfile修正例

Dockerfileのエージェントインストール部分のみ変更:

# Runtime stageで変更
RUN apk add --no-cache wget && \
wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/aarch64/whatap-agent.tar.gz && \
tar -xvzf whatap-agent.tar.gz -C / && rm whatap-agent.tar.gz
ARM64完全なDockerfileを表示
FROM golang:1.21-alpine AS builder

WORKDIR /app

# whatap-go-instインストール
#RUN go install github.com/whatap/go-api-inst/cmd/whatap-go-inst@latest
RUN wget -qO- https://github.com/whatap/go-api-inst/releases/latest/download/whatap-go-inst_linux_amd64.tar.gz | tar xz -C /usr/local/bin/

COPY go.mod go.sum ./
RUN go mod download
COPY . .

RUN whatap-go-inst go build -o /app/main .

FROM alpine:latest

WORKDIR /app

RUN apk add --no-cache wget && \
wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/aarch64/whatap-agent.tar.gz && \
tar -xvzf whatap-agent.tar.gz -C / && rm whatap-agent.tar.gz

COPY --from=builder /app/main .
COPY entrypoint.sh /app/
RUN chmod +x /app/entrypoint.sh

ENTRYPOINT ["/app/entrypoint.sh"]

Kubernetesデプロイ

Dockerイメージをビルドした後、Kubernetesクラスターにデプロイできます。

ステップ1: Dockerイメージをレジストリにプッシュ

# イメージタグ指定
docker tag my-go-app:latest your-registry/my-go-app:v1.0

# レジストリプッシュ
docker push your-registry/my-go-app:v1.0

ステップ2: WhaTap設定Secret作成

kubectl create secret generic whatap-secret \
--from-literal=license={アクセスキー}

ステップ3: Deploymentデプロイ

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-go-app
spec:
replicas: 3
selector:
matchLabels:
app: my-go-app
template:
metadata:
labels:
app: my-go-app
spec:
containers:
- name: my-go-app
image: your-registry/my-go-app:v1.0
ports:
- containerPort: 8080
env:
- name: WHATAP_LICENSE
valueFrom:
secretKeyRef:
name: whatap-secret
key: license
- name: WHATAP_SERVER_HOST
value: "{収集サーバーIP}"
- name: WHATAP_APP_NAME
value: "my-go-app"
# Kubernetesメタデータ (オプション)
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

環境変数の説明

必須環境変数

環境変数説明
WHATAP_LICENSEWhaTapプロジェクトアクセスキーx4t2r...
WHATAP_SERVER_HOSTWhaTap収集サーバーIP13.124.11.223
WHATAP_APP_NAMEアプリケーション名 (オプション)my-go-app

Kubernetesメタデータ (オプション)

ポッドの実行位置情報をWhaTapに渡すには追加してください:

環境変数説明
NODE_IPポッドが実行されているノードのIP
NODE_NAMEポッドが実行されているノードの名前
POD_NAMEポッドの名前

Docker Compose

docker-compose.yml
version: '3.8'

services:
my-go-app:
build: .
ports:
- "8080:8080"
environment:
- WHATAP_LICENSE={アクセスキー}
- WHATAP_SERVER_HOST={収集サーバーIP}
- WHATAP_APP_NAME=my-go-app
restart: unless-stopped
docker-compose up -d

トラブルシューティング

モニタリングデータが表示されない場合

ステップ1: 環境変数の確認

コンテナ内部で環境変数が正しく設定されているか確認:

docker exec -it <container_id> sh
echo $WHATAP_LICENSE
echo $WHATAP_SERVER_HOST
cat /app/whatap_home/whatap.conf

ステップ2: エージェント実行の確認

# エージェントプロセス確認
docker exec -it <container_id> ps -ef | grep whatap

# エージェントログ確認
docker exec -it <container_id> cat /app/whatap_home/logs/whatap-*.log

正常出力例:

root  12  1  0 Jan21 ?  00:00:03 /usr/whatap/agent/whatap-agent

ステップ3: ネットワークの確認

WhaTap収集サーバー(6600ポート)へのアウトバウンド接続が可能か確認:

docker exec -it <container_id> nc -zv {収集サーバーIP} 6600

計測が適用されない場合

計測詳細ログの確認

# ビルド時のデバッグ出力
GO_API_AST_DEBUG=1 whatap-go-inst go build ./...

一般的な問題と解決方法

症状原因解決方法
データ未受信環境変数未設定WHATAP_LICENSEWHATAP_SERVER_HOST確認
エージェント起動失敗ネットワーク遮断6600ポートアウトバウンド許可
計測未適用初期化漏れDockerfileにwhatap-go-inst init追加確認
ARM64エラー誤ったバイナリアーキテクチャ別エージェントURL確認

追加サポート

上記の方法で解決しない場合:

  1. WhaTapサポートセンターにお問い合わせ

  2. 次の情報を提供:

    • Dockerfile全体の内容
    • エージェントログ (/app/whatap_home/logs/)
    • docker logs <container_id>の出力