Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions content/ja/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ isCJKLanguage: true

## Splunk Observabilityワークショップへようこそ

Splunk Observability Cloud の監視、分析、対応ツールを使用して、アプリケーションとインフラストラクチャをリアルタイムで把握することができます。
Splunk Observability Cloudの監視、分析、対応ツールを使用して、アプリケーションとインフラストラクチャをリアルタイムで把握することができます。

このワークショップでは、メトリクス、トレース、ログを取り込み、監視し、可視化し、分析するためのクラス最高のオブザーバビリティ(可観測性)プラットフォームについて説明します。

Expand All @@ -20,7 +20,7 @@ Splunk Observability Cloud の監視、分析、対応ツールを使用して
{{% /notice %}}

{{% notice title="GitHub" color="#4078c0" icon="fab fa-github" %}}
このドキュメントには、issue や pull request で [貢献](https://github.com/splunk/observability-workshop) することができます。より良いワークショップにするために、是非ご協力ください。
このドキュメントには、issueやpull requestで [貢献](https://github.com/splunk/observability-workshop) することができます。より良いワークショップにするために、是非ご協力ください。
{{% /notice %}}

{{% notice title="Twitter" color="#1DA1F2" icon="fab fa-twitter" %}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@ linkTitle: 1. OpenTelemetry Collector
weight: 1
---

Splunk OpenTelemetry Collector は、インフラストラクチャとアプリケーションの計装における中核コンポーネントです。その役割は以下のデータを収集して送信することです:
Splunk OpenTelemetry Collectorは、インフラストラクチャとアプリケーションの計装における中核コンポーネントです。その役割は以下のデータを収集して送信することです:

* インフラストラクチャメトリクス(ディスク、CPU、メモリなど)
* Application Performance Monitoring (APM) トレース
* プロファイリングデータ
* ホストおよびアプリケーションのログ

{{% notice title="既存の OpenTelemetry Collector の削除" style="warning" %}}
Splunk IM ワークショップを完了している場合は、続行する前に Kubernetes で実行中の Collector を削除してください。以下のコマンドを実行して削除できます:
{{% notice title="既存のOpenTelemetry Collectorの削除" style="warning" %}}
Splunk IMワークショップを完了している場合は、続行する前にKubernetesで実行中のCollectorを削除してください。以下のコマンドを実行して削除できます:

``` bash
helm delete splunk-otel-collector
```

EC2 インスタンスには、古いバージョンの Collector がすでにインストールされている場合があります。Collector をアンインストールするには、以下のコマンドを実行してください:
EC2インスタンスには、古いバージョンのCollectorがすでにインストールされている場合があります。Collectorをアンインストールするには、以下のコマンドを実行してください:

``` bash
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh
Expand All @@ -44,33 +44,33 @@ HEC_URL
INSTANCE
```

これで Collector のインストールに進むことができます。インストールスクリプトには、いくつかの追加パラメータが渡されます:
これでCollectorのインストールに進むことができます。インストールスクリプトには、いくつかの追加パラメータが渡されます:

* `--with-instrumentation` - Splunk ディストリビューションの OpenTelemetry Java からエージェントをインストールします。これにより、PetClinic Java アプリケーションの起動時に自動的にロードされます。設定は不要です!
* `--deployment-environment` - リソース属性 `deployment.environment` を指定された値に設定します。これは UI でビューをフィルタリングするために使用されます
* `--enable-profiler` - Java アプリケーションのプロファイラを有効にします。これによりアプリケーションの CPU プロファイルが生成されます
* `--enable-profiler-memory` - Java アプリケーションのプロファイラを有効にします。これによりアプリケーションのメモリプロファイルが生成されます。
* `--enable-metrics` - Micrometer メトリクスのエクスポートを有効にします
* `--hec-token` - Collector が使用する HEC トークンを設定します
* `--hec-url` - Collector が使用する HEC URL を設定します
* `--with-instrumentation` - SplunkディストリビューションのOpenTelemetry Javaからエージェントをインストールします。これにより、PetClinic Javaアプリケーションの起動時に自動的にロードされます。設定は不要です!
* `--deployment-environment` - リソース属性 `deployment.environment` を指定された値に設定します。これはUIでビューをフィルタリングするために使用されます
* `--enable-profiler` - Javaアプリケーションのプロファイラを有効にします。これによりアプリケーションのCPUプロファイルが生成されます
* `--enable-profiler-memory` - Javaアプリケーションのプロファイラを有効にします。これによりアプリケーションのメモリプロファイルが生成されます。
* `--enable-metrics` - Micrometerメトリクスのエクスポートを有効にします
* `--hec-token` - Collectorが使用するHECトークンを設定します
* `--hec-url` - Collectorが使用するHEC URLを設定します

``` bash
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --realm $REALM -- $ACCESS_TOKEN --mode agent --without-fluentd --with-instrumentation --deployment-environment $INSTANCE-petclinic --enable-profiler --enable-profiler-memory --enable-metrics --hec-token $HEC_TOKEN --hec-url $HEC_URL
```

次に、Collector にパッチを適用して、AWS インスタンス ID ではなくインスタンスのホスト名を公開するようにします。これにより、UI でのデータのフィルタリングが容易になります
次に、Collectorにパッチを適用して、AWSインスタンスIDではなくインスタンスのホスト名を公開するようにします。これにより、UIでのデータのフィルタリングが容易になります

``` bash
sudo sed -i 's/gcp, ecs, ec2, azure, system/system, gcp, ecs, ec2, azure/g' /etc/otel/collector/agent_config.yaml
```

`agent_config.yaml` にパッチを適用したら、Collector を再起動する必要があります
`agent_config.yaml` にパッチを適用したら、Collectorを再起動する必要があります

``` bash
sudo systemctl restart splunk-otel-collector
```

インストールが完了したら、**Hosts with agent installed** ダッシュボードに移動して、ホストからのデータを確認できます。**Dashboards → Hosts with agent installed** の順に移動してください。

ダッシュボードフィルタを使用して `host.name` を選択し、ワークショップインスタンスのホスト名を入力または選択してください(これはターミナルセッションのコマンドプロンプトから取得できます)。ホストのデータが流れていることを確認したら、APM コンポーネントの作業を開始する準備が整いました
ダッシュボードフィルタを使用して `host.name` を選択し、ワークショップインスタンスのホスト名を入力または選択してください(これはターミナルセッションのコマンドプロンプトから取得できます)。ホストのデータが流れていることを確認したら、APMコンポーネントの作業を開始する準備が整いました
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ linkTitle: 2. PetClinic のビルド
weight: 2
---

APM をセットアップするために最初に必要なのは...そう、アプリケーションです。この演習では、Spring PetClinic アプリケーションを使用します。これは、Spring フレームワーク(Springboot)で構築された非常に人気のあるサンプル Java アプリケーションです
APMをセットアップするために最初に必要なのは...そう、アプリケーションです。この演習では、Spring PetClinicアプリケーションを使用します。これは、Springフレームワーク(Springboot)で構築された非常に人気のあるサンプルJavaアプリケーションです

まず、PetClinic の GitHub リポジトリをクローンし、その後アプリケーションのコンパイル、ビルド、パッケージ化、テストを行います:
まず、PetClinicのGitHubリポジトリをクローンし、その後アプリケーションのコンパイル、ビルド、パッケージ化、テストを行います:

```bash
git clone https://github.com/spring-projects/spring-petclinic
Expand All @@ -25,19 +25,19 @@ cd spring-petclinic
git checkout b26f235250627a235a2974a22f2317dbef27338d
```

Docker を使用して、PetClinic が使用する MySQL データベースを起動します
Dockerを使用して、PetClinicが使用するMySQLデータベースを起動します

```bash
docker run -d -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 docker.io/biarms/mysql:5.7
```

次に、PetClinic アプリケーションにシンプルなトラフィックを生成する Locust を実行する別のコンテナを起動します。Locust は、Web アプリケーションにトラフィックを生成するために使用できるシンプルな負荷テストツールです
次に、PetClinicアプリケーションにシンプルなトラフィックを生成するLocustを実行する別のコンテナを起動します。Locustは、Webアプリケーションにトラフィックを生成するために使用できるシンプルな負荷テストツールです

```bash
docker run --network="host" -d -p 8090:8090 -v ~/workshop/petclinic:/mnt/locust docker.io/locustio/locust -f /mnt/locust/locustfile.py --headless -u 1 -r 1 -H http://127.0.0.1:8083
```

次に、`maven` を使用して PetClinic をコンパイル、ビルド、パッケージ化します:
次に、`maven` を使用してPetClinicをコンパイル、ビルド、パッケージ化します:

```bash
./mvnw package -Dmaven.test.skip=true
Expand All @@ -46,10 +46,10 @@ docker run --network="host" -d -p 8090:8090 -v ~/workshop/petclinic:/mnt/locust
> [!INFO]
> 初回実行時は数分かかり、アプリケーションをコンパイルする前に多くの依存関係をダウンロードします。以降のビルドはより高速になります。

ビルドが完了したら、実行しているインスタンスのパブリック IP アドレスを取得する必要があります。以下のコマンドを実行して取得できます:
ビルドが完了したら、実行しているインスタンスのパブリックIPアドレスを取得する必要があります。以下のコマンドを実行して取得できます:

```bash
curl http://ifconfig.me
```

IP アドレスが返されます。アプリケーションが実行されていることを確認するために必要になるので、この IP アドレスをメモしておいてください
IPアドレスが返されます。アプリケーションが実行されていることを確認するために必要になるので、このIPアドレスをメモしておいてください
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ linkTitle: 3. 自動ディスカバリー
weight: 3
---

以下のコマンドでアプリケーションを起動できます。`mysql` プロファイルをアプリケーションに渡していることに注目してください。これにより、先ほど起動した MySQL データベースを使用するようアプリケーションに指示します。また、`otel.service.name` と `otel.resource.attributes` をインスタンス名を使用した論理名に設定しています。これらは UI でのフィルタリングにも使用されます
以下のコマンドでアプリケーションを起動できます。`mysql` プロファイルをアプリケーションに渡していることに注目してください。これにより、先ほど起動したMySQLデータベースを使用するようアプリケーションに指示します。また、`otel.service.name` と `otel.resource.attributes` をインスタンス名を使用した論理名に設定しています。これらはUIでのフィルタリングにも使用されます

```bash
java \
Expand All @@ -14,11 +14,11 @@ java \
-jar target/spring-petclinic-*.jar --spring.profiles.active=mysql
```

`http://<IP_ADDRESS>:8083`(`<IP_ADDRESS>` を先ほど取得した IP アドレスに置き換えてください)にアクセスして、アプリケーションが実行されていることを確認できます。
`http://<IP_ADDRESS>:8083`(`<IP_ADDRESS>` を先ほど取得したIPアドレスに置き換えてください)にアクセスして、アプリケーションが実行されていることを確認できます。

Collector をインストールした際、**AlwaysOn Profiling** と **Metrics** を有効にするように設定しました。これにより、Collector はアプリケーションの CPU およびメモリプロファイルを自動的に生成し、Splunk Observability Cloud に送信します
Collectorをインストールした際、**AlwaysOn Profiling** と **Metrics** を有効にするように設定しました。これにより、CollectorはアプリケーションのCPUおよびメモリプロファイルを自動的に生成し、Splunk Observability Cloudに送信します

PetClinic アプリケーションを起動すると、Collector がアプリケーションを自動的に検出し、トレースとプロファイリングのために計装するのが確認できます。
PetClinicアプリケーションを起動すると、Collectorがアプリケーションを自動的に検出し、トレースとプロファイリングのために計装するのが確認できます。

{{% tab title="出力例" %}}

Expand All @@ -45,13 +45,13 @@ OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader clas

{{% /tab %}}

Splunk APM UI にアクセスして、アプリケーションコンポーネント、トレース、プロファイリング、DB Query パフォーマンス、メトリクスを確認できます。左側のメニューから **APM** をクリックし、**Environment** ドロップダウンをクリックして、ご自身の環境(例:`<INSTANCE>-petclinic`、`<INSTANCE>` は先ほどメモした値に置き換えてください)を選択します。
Splunk APM UIにアクセスして、アプリケーションコンポーネント、トレース、プロファイリング、DB Queryパフォーマンス、メトリクスを確認できます。左側のメニューから **APM** をクリックし、**Environment** ドロップダウンをクリックして、ご自身の環境(例:`<INSTANCE>-petclinic`、`<INSTANCE>` は先ほどメモした値に置き換えてください)を選択します。

検証が完了したら、`Ctrl-c` を押してアプリケーションを停止できます。

リソース属性は、報告されるすべてのスパンに追加できます。例えば `version=0.314` のように指定します。カンマ区切りのリソース属性リストも定義できます(例:`key1=val1,key2=val2`)。

新しいリソース属性を使用して PetClinic を再度起動しましょう。実行コマンドにリソース属性を追加すると、Collector のインストール時に定義された内容が上書きされることに注意してください。新しいリソース属性 `version=0.314` を追加しましょう:
新しいリソース属性を使用してPetClinicを再度起動しましょう。実行コマンドにリソース属性を追加すると、Collectorのインストール時に定義された内容が上書きされることに注意してください。新しいリソース属性 `version=0.314` を追加しましょう:

```bash
java \
Expand All @@ -61,4 +61,4 @@ java \
-jar target/spring-petclinic-*.jar --spring.profiles.active=mysql
```

Splunk APM UI に戻り、最近のトレースをドリルダウンすると、スパン内に新しい `version` 属性が表示されます。
Splunk APM UIに戻り、最近のトレースをドリルダウンすると、スパン内に新しい `version` 属性が表示されます。
Loading