diff --git a/content/ja/docs/demo/_index.md b/content/ja/docs/demo/_index.md new file mode 100644 index 000000000000..cb90f09bcfdf --- /dev/null +++ b/content/ja/docs/demo/_index.md @@ -0,0 +1,80 @@ +--- +title: OpenTelemetryデモ ドキュメンテーション +linkTitle: デモ +cascade: + repo: https://github.com/open-telemetry/opentelemetry-demo +weight: 180 +cSpell:ignore: OLJCESPC +default_lang_commit: 1e69c8f94a605ce5624c6b6657080d98f633ac7b +--- + +[OpenTelemetryデモ](/ecosystem/demo/)のドキュメンテーションへようこそ。 +ここでは、デモのインストール方法や実行方法、そしてOpenTelemetryの動作を確認できるいくつかのシナリオについて説明しています。 + +## デモの実行 {#running-the-demo} + +デモをデプロイして動作を確認したい場合は、ここから始めてください。 + +- [Docker](docker-deployment/) +- [Kubernetes](kubernetes-deployment/) + +## 言語機能リファレンス {#language-feature-reference} + +特定の言語の計装がどのように機能するかを理解したい場合は、ここから始めてください。 + +| 言語 | 自動計装 | 計装ライブラリ | 手動計装 | +| ---------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| .NET | [会計サービス](services/accounting/) | [カートサービス](services/cart/) | [カートサービス](services/cart/) | +| C++ | | | [通貨サービス](services/currency/) | +| Go | | [決済サービス](services/checkout/), [商品カタログサービス](services/product-catalog/) | [決済サービス](services/checkout/), [商品カタログサービス](services/product-catalog/) | +| Java | [広告サービス](services/ad/) | | [広告サービス](services/ad/) | +| JavaScript | | [フロントエンド](services/frontend/) | [フロントエンド](services/frontend/), [支払いサービス](services/payment/) | +| Kotlin | | [不正検知サービス](services/fraud-detection/) | | +| PHP | | [見積サービス](services/quote/) | [見積サービス](services/quote/) | +| Python | [レコメンデーションサービス](services/recommendation/) | | [レコメンデーションサービス](services/recommendation/) | +| Ruby | | [メールサービス](services/email/) | [メールサービス](services/email/) | +| Rust | | [配送サービス](services/shipping/) | [配送サービス](services/shipping/) | + +## サービスドキュメント {#service-documentation} + +各サービスのOpenTelemetryのデプロイの仕方に関する具体的な情報は、こちらで確認できます + +- [会計サービス](services/accounting/) +- [広告サービス](services/ad/) +- [カートサービス](services/cart/) +- [決済サービス](services/checkout/) +- [メールサービス](services/email/) +- [フロントエンド](services/frontend/) +- [負荷生成ツール](services/load-generator/) +- [支払いサービス](services/payment/) +- [商品カタログサービス](services/product-catalog/) +- [見積サービス](services/quote/) +- [レコメンデーションサービス](services/recommendation/) +- [配送サービス](services/shipping/) +- [画像プロバイダーサービス](services/imageprovider/) + +## シナリオ {#scenarios} + +OpenTelemetryを使用してどのように問題を解決できるでしょうか? +これらのシナリオでは、事前に設定された問題を紹介し、それらを解決するためにOpenTelemetryのデータをどのように解釈するかを説明します。 + +今後、さらに多くのシナリオを追加していく予定です。 + +- フィーチャーフラグサービスを使用して、商品ID:`OLJCESPC7Z`の`GetProduct`リクエストに対する[商品カタログエラー](feature-flags)を生成 +- メモリリークを発見し、メトリクスとトレースを使用して診断。 + [詳細](scenarios/recommendation-cache/) + +## リファレンス {#reference} + +要件や機能マトリクスなどのプロジェクトリファレンスドキュメント。 + +- [アーキテクチャ](architecture/) +- [開発](development/) +- [フィーチャーフラグリファレンス](feature-flags/) +- [メトリック機能マトリクス](telemetry-features/metric-coverage/) +- [要件](./requirements/) +- [スクリーンショット](screenshots/) +- [サービス](services/) +- [スパン属性リファレンス](telemetry-features/manual-span-attributes/) +- [テスト](tests/) +- [トレース機能マトリクス](telemetry-features/trace-coverage/) diff --git a/content/ja/docs/demo/architecture.md b/content/ja/docs/demo/architecture.md new file mode 100644 index 000000000000..c848658474fc --- /dev/null +++ b/content/ja/docs/demo/architecture.md @@ -0,0 +1,198 @@ +--- +title: デモのアーキテクチャ +linkTitle: アーキテクチャ +aliases: [current_architecture] +body_class: otel-mermaid-max-width +default_lang_commit: 1e69c8f94a605ce5624c6b6657080d98f633ac7b +--- + +**OpenTelemetryデモ** は、異なるプログラミング言語で書かれた複数のマイクロサービスから構成されており、gRPCとHTTPを使って相互に通信を行います。 +さらに、負荷生成ツールが含まれており、[Locust](https://locust.io/)というツールを使用して、ユーザートラフィックを模擬的に生成します。 + +```mermaid +graph TD +subgraph サービス図 +accountingservice(会計サービス):::dotnet +adservice(広告サービス):::java +cache[(キャッシュ
(Valkey))] +cartservice(カートサービス):::dotnet +checkoutservice(決済サービス):::golang +currencyservice(通貨サービス):::cpp +emailservice(メールサービス):::ruby +flagd(Flagd):::golang +flagdui(Flagd-ui):::typescript +frauddetectionservice(不正検知サービス):::kotlin +frontend(フロントエンド):::typescript +frontendproxy(フロントエンドプロキシ
(Envoy)):::cpp +imageprovider(画像プロバイダー
(nginx)):::cpp +loadgenerator([負荷生成ツール]):::python +paymentservice(支払いサービス):::javascript +productcatalogservice(商品カタログサービス):::golang +quoteservice(見積サービス):::php +recommendationservice(レコメンデーションサービス):::python +shippingservice(配送サービス):::rust +queue[(キュー
(Kafka))]:::java + +adservice ---->|gRPC| flagd + +checkoutservice -->|gRPC| cartservice +checkoutservice --->|TCP| queue +cartservice --> cache +cartservice -->|gRPC| flagd + +checkoutservice -->|gRPC| shippingservice +checkoutservice -->|gRPC| paymentservice +checkoutservice --->|HTTP| emailservice +checkoutservice -->|gRPC| currencyservice +checkoutservice -->|gRPC| productcatalogservice + +frauddetectionservice -->|gRPC| flagd + +frontend -->|gRPC| adservice +frontend -->|gRPC| cartservice +frontend -->|gRPC| checkoutservice +frontend ---->|gRPC| currencyservice +frontend ---->|gRPC| recommendationservice +frontend -->|gRPC| productcatalogservice + +frontendproxy -->|gRPC| flagd +frontendproxy -->|HTTP| frontend +frontendproxy -->|HTTP| flagdui +frontendproxy -->|HTTP| imageprovider + +Internet -->|HTTP| frontendproxy + +loadgenerator -->|HTTP| frontendproxy + +paymentservice -->|gRPC| flagd + +queue -->|TCP| accountingservice +queue -->|TCP| frauddetectionservice + +recommendationservice -->|gRPC| productcatalogservice +recommendationservice -->|gRPC| flagd + +shippingservice -->|HTTP| quoteservice +end + +classDef dotnet fill:#178600,color:white; +classDef cpp fill:#f34b7d,color:white; +classDef golang fill:#00add8,color:black; +classDef java fill:#b07219,color:white; +classDef javascript fill:#f1e05a,color:black; +classDef kotlin fill:#560ba1,color:white; +classDef php fill:#4f5d95,color:white; +classDef python fill:#3572A5,color:white; +classDef ruby fill:#701516,color:white; +classDef rust fill:#dea584,color:black; +classDef typescript fill:#e98516,color:black; +``` + +```mermaid +graph TD +subgraph サービスの凡例 + dotnetsvc(.NET):::dotnet + cppsvc(C++):::cpp + golangsvc(Go):::golang + javasvc(Java):::java + javascriptsvc(JavaScript):::javascript + kotlinsvc(Kotlin):::kotlin + phpsvc(PHP):::php + pythonsvc(Python):::python + rubysvc(Ruby):::ruby + rustsvc(Rust):::rust + typescriptsvc(TypeScript):::typescript +end + +classDef dotnet fill:#178600,color:white; +classDef cpp fill:#f34b7d,color:white; +classDef golang fill:#00add8,color:black; +classDef java fill:#b07219,color:white; +classDef javascript fill:#f1e05a,color:black; +classDef kotlin fill:#560ba1,color:white; +classDef php fill:#4f5d95,color:white; +classDef python fill:#3572A5,color:white; +classDef ruby fill:#701516,color:white; +classDef rust fill:#dea584,color:black; +classDef typescript fill:#e98516,color:black; +``` + +デモアプリケーションの[メトリック](/docs/demo/telemetry-features/metric-coverage/) と [トレース](/docs/demo/telemetry-features/trace-coverage/) の計装の現状については、リンクをご確認ください。 + +コレクターの設定は [otelcol-config.yml](https://github.com/open-telemetry/opentelemetry-demo/blob/main/src/otelcollector/otelcol-config.yml) で行われており、代替のエクスポーターをここで設定することができます。 + +```mermaid +graph TB +subgraph tdf[テレメトリーデータフロー] + subgraph subgraph_padding [ ] + style subgraph_padding fill:none,stroke:none; + %% タイトルの重複を防ぐためのパディング + subgraph od[OpenTelemetryデモ] + ms(マイクロサービス) + end + + ms -.->|"OTLP
gRPC"| oc-grpc + ms -.->|"OTLP
HTTP POST"| oc-http + + subgraph oc[OTelコレクター] + style oc fill:#97aef3,color:black; + oc-grpc[/"OTLPレシーバー
リッスン先:
grpc://localhost:4317"/] + oc-http[/"OTLPレシーバー
リッスン先:
localhost:4318
"/] + oc-proc(プロセッサー) + oc-prom[/"OTLP HTTPエクスポーター"/] + oc-otlp[/"OTLPエクスポーター"/] + + oc-grpc --> oc-proc + oc-http --> oc-proc + + oc-proc --> oc-prom + oc-proc --> oc-otlp + end + + oc-prom -->|"localhost:9090/api/v1/otlp"| pr-sc + oc-otlp -->|gRPC| ja-col + + subgraph pr[Prometheus] + style pr fill:#e75128,color:black; + pr-sc[/"Prometheus OTLP書き込みレシーバー"/] + pr-tsdb[(Prometheus TSDB)] + pr-http[/"Prometheus HTTP
リッスン先:
localhost:9090"/] + + pr-sc --> pr-tsdb + pr-tsdb --> pr-http + end + + pr-b{{"ブラウザ
Prometheus UI"}} + pr-http ---->|"localhost:9090/graph"| pr-b + + subgraph ja[Jaeger] + style ja fill:#60d0e4,color:black; + ja-col[/"Jaegerコレクター
リッスン先:
grpc://jaeger:4317"/] + ja-db[(Jaeger DB)] + ja-http[/"Jaeger HTTP
リッスン先:
localhost:16686"/] + + ja-col --> ja-db + ja-db --> ja-http + end + + subgraph gr[Grafana] + style gr fill:#f8b91e,color:black; + gr-srv["Grafanaサーバー"] + gr-http[/"Grafana HTTP
リッスン先:
localhost:3000"/] + + gr-srv --> gr-http + end + + pr-http --> |"localhost:9090/api"| gr-srv + ja-http --> |"localhost:16686/api"| gr-srv + + ja-b{{"ブラウザ
Jaeger UI"}} + ja-http ---->|"localhost:16686/search"| ja-b + + gr-b{{"ブラウザ
Grafana UI"}} + gr-http -->|"localhost:3000/dashboard"| gr-b + end +end +``` + +Protocol Bufferの定義は /pb/ ディレクトリにあります。