This chart is an extension of OpenTelemetry Demo and OpenTelemetry Demo Chart.
This chart only retains those core services to ensure the shopping flow. Below is the current service diagram:
graph TD
subgraph Service Diagram
adservice(Ad Service):::java
dataservice(Data Service):::java
cache[(Cache<br/>(redis))]
cartservice(Cart Service):::dotnet
checkoutservice-v2(Checkout Service):::golang
frontend(Frontend):::typescript
loadgenerator([Load Generator]):::python
paymentservice(Payment Service):::javascript
productcatalogservice(Product Catalog Service):::golang
quoteservice(Quote Service):::php
shippingservice(Shipping Service):::rust
adstore[(DataService Store<br/>(Mysql DB))]
Internet -->|HTTP| frontend
loadgenerator -->|HTTP| frontend
checkoutservice-v2 --->|gRPC| cartservice -->|TCP| cache
checkoutservice-v2 --->|gRPC| productcatalogservice
checkoutservice-v2 --->|gRPC| paymentservice
checkoutservice-v2 -->|gRPC| shippingservice
frontend -->|gRPC| adservice
frontend -->|gRPC| cartservice
frontend -->|gRPC| productcatalogservice
frontend -->|gRPC| checkoutservice-v2
frontend -->|gRPC| shippingservice -->|HTTP| quoteservice
adservice -->|HTTP| dataservice
dataservice ---> |TCP| adstore
end
classDef dotnet fill:#178600,color:white;
classDef golang fill:#00add8,color:black;
classDef java fill:#b07219,color:white;
classDef javascript fill:#f1e05a,color:black;
classDef php fill:#4f5d95,color:white;
classDef python fill:#3572A5,color:white;
classDef rust fill:#dea584,color:black;
classDef typescript fill:#e98516,color:black;
graph TD
subgraph Service Legend
dotnetsvc(.NET):::dotnet
golangsvc(Go):::golang
javasvc(Java):::java
javascriptsvc(JavaScript):::javascript
phpsvc(PHP):::php
pythonsvc(Python):::python
rustsvc(Rust):::rust
typescriptsvc(TypeScript):::typescript
end
classDef dotnet fill:#178600,color:white;
classDef golang fill:#00add8,color:black;
classDef java fill:#b07219,color:white;
classDef javascript fill:#f1e05a,color:black;
classDef php fill:#4f5d95,color:white;
classDef python fill:#3572A5,color:white;
classDef rust fill:#dea584,color:black;
classDef typescript fill:#e98516,color:black;
We have made certain modifications to the official demo, and the following are the specific details of the modifications.
- integrate nacos
- integrate sentinel
- support grpcurl
- expose Prometheus metrics
- mock latency
- 50% error rate
- call Dataservice to get Ad data
- doesn't depend Emailservice
- doesn't depend Currencyservice
- doesn't depend Kafka
This service only used by Adservice. It will accept Adservice's http request then response Ad data from mysql.
-
Close all none business services, such as Opentelemetry collector, Prometheus, Jaeger, Grafana, all service's telemetry data will fellow this data flow:
Components --> Insight-agent OTel collector
。 -
Support deploying Redis instance from a Redis operator(Make sure Redis operator already works).
Note:make sure Insight agent already works(If--set .global.middleware.redis.deployBy=redisCR
, make sure Redis
operator already works)
helm repo add open-insight https://openinsight-proj.github.io/openinsight-helm-charts
helm install webstore-demo open-insight/opentelemetry-demo-lite -n webstore-demo --create-namespace
Please use values.schema.json
to get to know how to control the deployment behavior of this chart(use
json schema editor to parse the schema and use
json-to-yaml to generate values.yaml).