@@ -16,12 +16,152 @@ Please refer to Helm's [documentation](https://helm.sh/docs/) to get started.
16
16
17
17
Add OpenTelemetry Helm repository:
18
18
19
- ``` console
19
+ ``` shell
20
20
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
21
21
```
22
22
23
23
To install the chart with the release name my-otel-demo, run the following command:
24
24
25
- ``` console
25
+ ``` shell
26
26
helm install my-otel-demo open-telemetry/opentelemetry-demo
27
27
```
28
+
29
+ > ** Note**
30
+ > The OpenTelemetry Demo Helm chart version 0.11.0 or greater is required to
31
+ > perform all usage methods mentioned below.
32
+
33
+ ## Use the Demo
34
+
35
+ The demo application will need the services exposed outside of the Kubernetes
36
+ cluster in order to use them. You can expose the services to your local system
37
+ using the ` kubectl port-forward ` command or by configuring service types
38
+ (ie: LoadBalancer) with optionally deployed ingress resources.
39
+
40
+ ### Expose services using kubectl port-forward
41
+
42
+ To expose the frontendproxy service use the following command (replace
43
+ ` my-otel-demo ` with your Helm chart release name accordingly):
44
+
45
+ ``` shell
46
+ kubectl port-forward svc/my-otel-demo-frontendproxy 8080:8080
47
+ ```
48
+
49
+ In order for spans from the browser to be properly collected, you will also
50
+ need to expose the OpenTelemetry Collector's OTLP/HTTP port (replace
51
+ ` my-otel-demo ` with your Helm chart release name accordingly):
52
+
53
+ ``` shell
54
+ kubectl port-forward svc/my-otel-demo-otelcol 4318:4318
55
+ ```
56
+
57
+ > ** Note**
58
+ > ` kubectl port-forward ` will proxy the port until the process terminates. You
59
+ > may need to create separate terminal sessions for each use of
60
+ > ` kubectl port-forward ` , and use CTRL-C to terminate the process when done.
61
+
62
+ With the frontendproxy and Collector port-forward set up, you can access:
63
+
64
+ - Webstore: < http://localhost:8080/ >
65
+ - Grafana: < http://localhost:8080/grafana/ >
66
+ - Feature Flags UI: < http://localhost:8080/feature/ >
67
+ - Load Generator UI: < http://localhost:8080/loadgen/ >
68
+ - Jaeger UI: < http://localhost:8080/jaeger/ui/ >
69
+
70
+ ### Expose services using service type configurations
71
+
72
+ > ** Note**
73
+ > Kubernetes clusters may not have the proper infrastructure components to
74
+ > enable LoadBalancer service types or ingress resources. Verify your cluster
75
+ > has the proper support before using these configuration options.
76
+
77
+ Each demo service (ie: frontendproxy) offers a way to have its Kubernetes
78
+ service type configured. By default these will be ` ClusterIP ` but you can change
79
+ each one using the ` serviceType ` property for each service.
80
+
81
+ To configure the frontendproxy service to use a LoadBalancer service type you
82
+ would specify the following in your values file:
83
+
84
+ ``` yaml
85
+ components :
86
+ frontendProxy :
87
+ serviceType : LoadBalancer
88
+ ` ` `
89
+
90
+ > **Note**
91
+ > It is recommended to use a values file when installing the Helm chart in order
92
+ > to specify additional configuration options.
93
+
94
+ The Helm chart does not provide facilities to create ingress resources. If
95
+ required these would need to be created manually after installing the Helm chart.
96
+ Some Kubernetes providers require specific service types in order to be used by
97
+ ingress resources (ie: EKS ALB ingress, requires a NodePort service type).
98
+
99
+ In order for spans from the browser to be properly collected, you will also
100
+ need to expose the OpenTelemetry Collector's OTLP/HTTP port to be accessible to
101
+ user web browsers. The location where the OpenTelemetry Collector is exposed
102
+ must also be passed into the frontend service using the
103
+ ` PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` environment variable. You can do
104
+ this using the following in your values file :
105
+
106
+ ` ` ` yaml
107
+ components:
108
+ frontend:
109
+ env:
110
+ - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
111
+ value: "http://otel-demo-collector.mydomain.com:4318/v1/traces"
112
+ ` ` `
113
+
114
+ To install the Helm chart with a custom `my-values-file.yaml` values file use :
115
+
116
+ ` ` ` shell
117
+ helm install my-otel-demo open-telemetry/opentelemetry-demo --values my-values-file.yaml
118
+ ` ` `
119
+
120
+ With the frontendproxy and Collector exposed, you can access the demo UI at the
121
+ base path for the frontendproxy. Other demo components can be accessed at the
122
+ following sub-paths :
123
+
124
+ - Webstore : ` /` (base)
125
+ - Grafana : ` /grafana`
126
+ - Feature Flags UI : ` /feature`
127
+ - Load Generator UI : ` /loadgen/` (must include trailing slash)
128
+ - Jaeger UI : ` /jaeger/ui`
129
+
130
+ # # Bring your own backend
131
+
132
+ Likely you want to use the Webstore as a demo application for an observability
133
+ backend you already have (e.g. an existing instance of Jaeger, Zipkin, or one
134
+ of the [vendor of your choice](https://opentelemetry.io/vendors/).
135
+
136
+ The OpenTelemetry Collector's configuration is exposed in the Helm chart. Any
137
+ additions you do will be merged into the default configuration. You can use
138
+ this to add your own exporters, and add them to the desired pipeline(s)
139
+
140
+ ` ` ` yaml
141
+ opentelemetry-collector:
142
+ config:
143
+ exporters:
144
+ otlphttp/example:
145
+ endpoint: <your-endpoint-url>
146
+
147
+ service:
148
+ pipelines:
149
+ traces:
150
+ receivers: [otlp]
151
+ processors: [batch]
152
+ exporters: [otlphttp/example]
153
+ ` ` `
154
+
155
+ > **Note**
156
+ > When merging YAML values with Helm, objects are merged and arrays are replaced.
157
+
158
+ Vendor backends might require you to add additional parameters for
159
+ authentication, please check their documentation. Some backends require
160
+ different exporters, you may find them and their documentation available at
161
+ [opentelemetry-collector-contrib/exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter).
162
+
163
+ To install the Helm chart with a custom `my-values-file.yaml` values file use :
164
+
165
+ ` ` ` shell
166
+ helm install my-otel-demo open-telemetry/opentelemetry-demo --values my-values-file.yaml
167
+ ` ` `
0 commit comments