* feat: add otel-demo tutorial Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com> Co-authored-by: Jaeyeon Park <donionbs7@gmail.com> Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com> Signed-off-by: Jaeyeon Park <donionbs7@gmail.com> * feat: add otel-demo screenshots Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com> Co-authored-by: Jaeyeon Park <donionbs7@gmail.com> Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com> Signed-off-by: Jaeyeon Park <donionbs7@gmail.com> * chore: update tutorial and architecture image Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com> Co-authored-by: Jaeyeon Park <donionbs7@gmail.com> Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com> Signed-off-by: Jaeyeon Park <donionbs7@gmail.com> --------- Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com> Signed-off-by: Jaeyeon Park <donionbs7@gmail.com> Co-authored-by: Jaeyeon Park <donionbs7@gmail.com> Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| cart-service | ||
| recommendation-service | ||
| screenshots | ||
| README.md | ||
| chaos-exporter-dashboard.json | ||
| custom_otel_demo_values.yml | ||
README.md
Otel-demo tutorial
This tutorial provides a step-by-step guide for injecting chaos into target applications using LitmusChaos and observing the chaos with OpenTelemetry.
0. Prerequisites
- Kubernetes 1.24+
- 8 GB of free RAM
- Helm 3.9+
1. Install Litmus
- Create the
litmusnamespace.kubectl create ns litmus - Add the Litmus Helm repository.
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/ - Install Litmus using Helm.
helm install chaos litmuschaos/litmus \ --namespace=litmus \ --set portal.frontend.service.type=NodePort \ --set mongodb.image.registry=ghcr.io/zcube \ --set mongodb.image.repository=bitnami-compat/mongodb \ --set mongodb.image.tag=6.0.5 - Verify the installation.
kubectl get all -n litmus - Forward the Litmus frontend service port.
Access the Litmus frontend at http://localhost:9091 and log in withkubectl port-forward svc/chaos-litmus-frontend-service 9091:9091 -n litmusadmin/litmus.
2. Set Up Litmus Environment
- Create a new environment.
- Environment Name:
local - Environment Type:
Production
- Environment Name:
- Configure a new chaos infrastructure.
- Name:
local - Chaos Components Installation:
Cluster-wide access - Installation Location (Namespace):
litmus - Service Account Name:
litmus
- Name:
- Deploy the new chaos infrastructure.
Wait until the status showscd ~/Downloads kubectl apply -f local-litmus-chaos-enable.ymlCONNECTED.
3. Install Otel-demo microservices & Observability tools
- Create the
otel-demonamespace.kubectl create ns otel-demo - Add the OpenTelemetry Helm repository.
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts - Install Otel-demo microservices and Observability tools using Helm.
It contains Otel-demo microservices, OpenTelemetry(with chaos metrics), Prometheus, Jaeger and Grafana.cd litmus/monitoring/tutorials/otel-demo helm install my-otel-demo open-telemetry/opentelemetry-demo --namespace otel-demo --values custom_otel_demo_values.yml - Verify the installation.
kubectl get all -n otel-demo - Forward the Otel-demo frontend proxy port.
kubectl port-forward svc/my-otel-demo-frontendproxy 8080:8080 -n otel-demo - Access the following services.
- Web store: http://localhost:8080/
- Grafana: http://localhost:8080/grafana/
- Load Generator UI: http://localhost:8080/loadgen/
- Jaeger UI: http://localhost:8080/jaeger/ui/
4. Add Grafana Panel
Import the chaos-experiments-dashboard.json file into Grafana to visualize the results of chaos experiments.
5. Observe chaos
Explore the following experiments to observe chaos on the Otel-demo microservices.
-
Performs a pod network latency experiment on the cart service.
-
Performs a pod delete experiment on the recommendation service.