You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- set CPUs to at least 3, and Memory to at least 6.0 GiB
51
58
- on the "Disk" tab, set at least 32 GB disk space
52
59
53
-
2. Run `kubectl get nodes` to verify you're connected to the respective control plane.
54
-
55
-
3. Install the [OpenTelemetry Collector Helm chart](https://github.com/honeycombio/helm-charts/tree/main/charts/opentelemetry-collector) from Honeycomb.
56
-
Specify your Honeycomb API key when installing the Helm chart.
2. Run `kubectl get nodes` to verify you're connected to the respective control
61
+
plane.
63
62
64
-
4. Run `skaffold run` (first time will be slow, it can take ~20 minutes). This will build and deploy the application.
65
-
If you need to rebuild the images automatically as you refactor the code, run `skaffold dev` command.
63
+
3. Run `skaffold run` (first time will be slow, it can take ~20 minutes). This
64
+
will build and deploy the application. If you need to rebuild the images
65
+
automatically as you refactor the code, run `skaffold dev` command.
66
66
67
-
5. Run `kubectl get pods` to verify the Pods are ready and running.
67
+
4. Run `kubectl get pods` to verify the Pods are ready and running.
68
68
69
-
6. Access the web frontend through your browser
69
+
5. Access the web frontend through your browser
70
70
71
71
-**Minikube** requires you to run a command to access the frontend service:
72
72
```shell
73
73
minikube service frontend-external
74
74
```
75
75
76
-
-**Docker For Desktop** should automatically provide the frontend at http://localhost:80
76
+
-**Docker For Desktop** should automatically provide the frontend at
77
+
http://localhost:80
77
78
78
79
79
80
### Cleanup
80
81
81
-
If you've deployed the application with `skaffold run` command, you can run `skaffold delete` to clean up the deployed resources.
82
+
If you've deployed the application with `skaffold run` command, you can run
83
+
`skaffold delete` to clean up the deployed resources.
82
84
83
85
## Architecture
84
86
85
-
**Online Boutique** is composed of 10 microservices (plus a load generator) written in 5 different languages that communicate with each other over gRPC.
87
+
**Online Boutique** is composed of 10 microservices (plus a load generator)
88
+
written in 5 different languages that communicate with each other over gRPC.
86
89
87
-
[](./docs/img/architecture-diagram.png)
Copy file name to clipboardExpand all lines: src/checkoutservice/README.md
-11Lines changed: 0 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,14 +93,3 @@ Setting orderid into Baggage
93
93
bags, _ = bags.SetMember(orderIDMember)
94
94
ctx = baggage.ContextWithBaggage(ctx, bags)
95
95
```
96
-
97
-
## Demo Story code
98
-
99
-
In order to produce an effective demo story, this service includes additional functionality.
100
-
This service will grow an internal cache with each request.
101
-
Eventually, the cache size will grow large enough to cause an out of memory (OOM) error and crash the service.
102
-
The cache size is exposed via an internal call, so the frontend can properly assign a problematic userid when a cache size threshold is reached.
103
-
When an order is placed, an additional delay through `getDiscounts` may be introduced.
104
-
In this function, if a random chance exists to call the `loadDiscountFromDatabase` function, which will introduce a synthetic delay based on cache size.
105
-
The synthetic delay is manifested as a series of spans making mock database calls.
106
-
User "20109", whom should only show up when cache size is high, will have a higher likelihood to exhibit the delay.
Copy file name to clipboardExpand all lines: src/frontend/README.md
-8Lines changed: 0 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,11 +110,3 @@ The userid and requestid will be available to all downstream spans.
110
110
```
111
111
112
112
Baggage is propagated to downstream services, but by default it is not exported to your telemetry backend.
113
-
A Span Processor that explicitly exports Baggage is required to export this data to a telemetry backend like Honeycomb.
114
-
115
-
## Demo Story code
116
-
117
-
In order to produce an effective demo story, this service includes additional functionality.
118
-
The `ensureSessionID` function in `middleware.go` assigns user ids in a random fashion, which may be affected under other random condition, when the cache size from the checkout service exceeds a threshold.
119
-
The application will enter a degraded state of performance when cache size climbs.
120
-
The checkout service has code to continuously grow a cache, until memory is exhausted and the service crashes with an out of memory (OOM) error.
0 commit comments