
🌟 これはMarkmoffat作のexpresscartをベースにしたTruewatchshopアプリです
expresscartのドキュメントは📖こちらをご確認ください。
ℹ️ 目的:
Truewatchshopの目的は、お客様やパートナー向けのトレーニング用サンドボックス環境を提供することです。
このサンドボックスでは、安全かつ実践的な環境でTruewatchを使ったモニタリング、トレーシング、アプリケーションパフォーマンス管理を試し、学ぶことができます。
アプリケーションには計測が組み込まれており、このトレーニングサンドボックスの目的は、データのオンボーディング方法とTruewatchプラットフォームおよびワークフローへの理解を深めることです。
🛠️ 技術スタック
このプロジェクトは以下の技術で構築されています。
- Node.js: 🟢 JavaScriptを実行するためのバックエンドランタイム環境。
- Express.js: 🚀 アプリケーション構築用のWebフレームワーク。
- MongoDB: 🗄️ アプリケーションデータを格納するNoSQLデータベース。
- Docker: 🐳 アプリケーションをデプロイするためのコンテナ化プラットフォーム。
- Nginx: 🌐 リバースプロキシとして使用するWebサーバー。
- Truewatch RUM / APM / LOG: 📊 パフォーマンスとデバッグのためのモニタリング・トレーシングツール。
⚙️ 事前準備
始める前に、以下をご確認ください。
-
Truewatchアカウント 📝
truewatch.comでTruewatchアカウントを登録し、モニタリングおよび分析機能を利用できるようにしてください。 -
インターネットに接続されたLinuxシステム 💻
安定したインターネット接続を持つLinuxマシン(物理または仮想)を使用してください。ヒント: 分離のしやすさとセットアップの簡便さから、Linux VMの使用を推奨します。まだお持ちでない場合は、WindowsマシンにはOracle VirtualBox、MacOSにはOrbStackを使用して仮想環境を作成できます。
このトレーニングサンドボックスはOrbstackとUbuntu 22.04.5 LTSを使用して作成されています。Ubuntu 22.04.5 LTSでLinux VMを作成してください。
-
DataKitのインストール 📦
トレーシングとモニタリングを有効にするため、Truewatchアカウントからデータキットをインストールしてください。
Datakitの公式インストール方法の詳細はこちらをご確認ください。データキットをインストールするには:
-
Truewatchプラットフォームにアクセスし、Truewatchの認証情報でログインします。
-
Integrations > Datakitに移動します。
-
以下のスクリーンショットの通り、緑色でハイライトされたデプロイスクリプトをコピーします。
-

- 新しくインストールしたLinuxマシンに移動し、コンソールでデプロイスクリプトを実行します:
DK_DATAWAY="https://id1-openway.truewatch.com?token=tkn_xxxxxxxx" bash -c "$(curl -L https://static.truewatch.com/datakit/install.sh)" - datakitが動作していることを確認します:
ps aux | grep datakit root 806 11.6 0.3 2036304 34012 ? Sl 01:59 116:22 /usr/local/datakit/externals/datakit-ebpf run --datakit-apiserver 0.0.0.0:9529 --hostname ubuntu --l7net-enabled httpflow --pprof-host 127.0.0.1 --pprof-port 6061 --netlog-metric --netlog-log --trace-env-list DK_BPFTRACE_SERVICE,DD_SERVICE,OTEL_SERVICE_NAME --enabled ebpf-net,ebpf-trace
-
Docker 🐳
コンテナ内でアプリケーションを実行するためにDockerをインストールします。
Dockerのインストール手順はこちら。sudo apt-get update sudo apt-get install -y git docker.io docker-compose sudo usermod -aG docker $USER newgrp docker注: 最後の2つのコマンドは、
sudoなしでDockerを実行できるように、ユーザーをdockerグループに追加します。反映させるには、一度ログアウトして再度ログインする必要がある場合があります。 -
Git 🧰
リポジトリのクローンとソースコード管理のためにGitをインストールします:sudo apt-get update sudo apt-get install -y git
🚀 プロジェクトのセットアップ手順
-
リポジトリをクローンする:
git clone https://github.com/TrueWatchTech/expresscart-demo-setup-guide cd expresscart-demo-setup-guide -
依存関係をインストールし、プロジェクトをビルドする:
docker-compose build -
サービスを起動する:
docker-compose up -d -
テストデータでデータベースを初期化する:
docker exec -it expresscart npm run testdata -
[任意] 商品画像をカスタマイズする:
- Truewatchshopの管理ページにアクセスします。
- 以下の認証情報でログインします:
- ユーザー名:
[email protected] - パスワード:
test
- ユーザー名:
- Productsに移動します。

-
「Duckworth Woolfill Jacket」という商品を見つけ、下部のadd image URLをクリックします。Product Image URLウィンドウが表示されます。

- 新しいブラウザタブを開き、GoogleでDuckworth Woolfill Jacketというキーワードを使って画像URLを検索します。例えば、以下のURLを使用できます:
https://content.steepandcheap.com/images/items/large/FJR/FJRZ0M5/GRE.jpg。 - URLをProduct Image URLにコピーし、画像を追加します。
- 他の商品についても、上記の手順を繰り返して画像URLを更新します。
注: 画像の読み込み時間はRUM統計から確認できます。
📊 インフラモニタリングのセットアップ手順
-
事前準備セクションの手順3で示したようにDatakitをインストールします。
datakitをインストールしたLinuxホストは、メトリクスデータをTruewatchプラットフォームに送信します。
Truewatchプラットフォームにアクセスして確認します。
Infrastructure > Hostに移動します。Honeycombをクリックすると、表示がHoneycombビューに切り替わります。

ホストが表示されるはずです。マウスをホバーすると、ホストの主要メトリクス(CPU、メモリ使用率、load5)を一目で確認できます。
-
Datakitのcontainer.confを設定して、コンテナモニタリング(この場合はDocker)を有効にします:
- Linuxのコンソールから、ディレクトリを*/usr/local/datakit/conf.d/container/に変更します。次にcontainer.conf.sampleをcontainer.conf*にコピーし、Datakitを再起動します:
cd /usr/local/datakit/conf.d/container sudo cp container.conf.sample container.conf sudo datakit service -R
Truewatchプラットフォームにアクセスして確認します。
Infrastructure > Containersに移動します。 - Linuxのコンソールから、ディレクトリを*/usr/local/datakit/conf.d/container/に変更します。次にcontainer.conf.sampleをcontainer.conf*にコピーし、Datakitを再起動します:

コンテナの名前をクリックして、Containersビューを確認します
- Scenes > New Dashboardに移動します。Template NameにDockerと入力し、Enterを押します。Docker Monitor Viewテンプレートが表示されるので、クリックします。名前を付けて確認をクリックします。

- 上記の手順を終えると、Docker Monitor Viewが表示されます。以下は例です。左上のフィールド (Host Name、Container Name、Container ID) を使ってフィルターを適用できます。

インフラモニタリングは、アプリケーション環境の健全性、パフォーマンス、信頼性を維持するために不可欠です。Truewatchを使用することで、サーバー、コンテナ、ネットワークリソースをリアルタイムで可視化できます。これにより、問題を迅速に検出し、リソース使用状況を最適化し、ユーザーにシームレスな体験を提供できます。
🌐 RUMのセットアップ手順
-
Truewatchプラットフォームにアクセスし、Truewatchの認証情報でログインします。
クライアントトークンを作成します:
Management > Client Token > Createに移動します。新しく作成されたトークンをコピーし、安全な場所に保存してください。次の手順で必要になります。

-
Truewatchコンソールにログインし、Real User Monitoring > Application List > Create Applicationに移動します。

- App TypeとしてWebを選択します。App Nameフィールドにアプリケーション名を入力し、App Idを指定します。

- Public DataWay Deploymentを選択し、次にCDN Asynchronous Loadingを選択します。clientTokenセクションに先ほど保存したClient Tokenを入力します。

- 以下の値(またはお使いのアプリケーションに最も適した値)を入力します:
- service = frontend
- env = production
- version = 1.0.0.0

緑色でハイライトされた自動生成スクリプトをコピーし、お好みのエディタに保存します。
- 上記のパラメータを使用するようにNginxを計測します:
-
コンソールでexpresscart-demo-setup-guideディレクトリに移動し、nginx/conf.dに移動します
cd expresscart-demo-setup-guide cd nginx/conf.d/ -
お好みのエディタでdefault.confを編集し、手順5の自動生成スクリプトの値を貼り付けます。
-

注: sub_filterディレクティブを使用してスクリプトを注入することで、RUMエージェントを自動計測するようにNginxを設定しました。その結果、RUMエージェントがクライアントブラウザに計測されます。この方法を使えば、フロントエンドのHTMLコードを変更する必要はありません。Nginxのsub_filterディレクティブの詳細はこちらをご確認ください。
-
サービスを停止・起動します:
docker-compose down docker-compose up -d -
ブラウザを開き、http://localhost:8080にアクセスします。ポート8080で動作しているWebアプリを確認できるはずです。

-
アプリを操作します:
- ユーザー[email protected]、パスワードtestでログインします。
- ユーザーが商品をカートに入れる操作をシミュレートします。
-
Truewatchプラットフォームにアクセスし、RUM > Applicationに移動して、対象のアプリを選択します。
Analysis Dashboardで統計情報を確認します。


