Skip to content

Commit 45a04f5

Browse files
committed
Merge branch 'flagd-spike' of github.com:austinlparker/opentelemetry-demo into luke/merge-upstream
2 parents 7a2bdf6 + 334fe69 commit 45a04f5

File tree

163 files changed

+3468
-9548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+3468
-9548
lines changed

.env

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11

22

3-
# Images
4-
IMAGE_VERSION=1.7.1
3+
# Demo App version
4+
IMAGE_VERSION=1.8.0
55
IMAGE_NAME=ghcr.io/open-telemetry/demo
6-
TRACETEST_IMAGE_VERSION=v0.14.5
6+
DEMO_VERSION=latest
7+
8+
# Dependent images
9+
COLLECTOR_CONTRIB_IMAGE=otel/opentelemetry-collector-contrib:0.93.0
10+
GRAFANA_IMAGE=grafana/grafana:10.3.1
11+
JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.53
12+
# must also update version field in /src/grafana/provisioning/datasources/opensearch.yml
13+
OPENSEARCH_IMAGE=opensearchproject/opensearch:2.11.1
14+
POSTGRES_IMAGE=postgres:16.1
15+
PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v2.49.1
16+
REDIS_IMAGE=redis:7.2-alpine
17+
TRACETEST_IMAGE_VERSION=v0.15.8
18+
TRACETEST_IMAGE=kubeshop/tracetest:${TRACETEST_IMAGE_VERSION}
719

820
# Demo Platform
921
ENV_PLATFORM=local
@@ -51,6 +63,9 @@ FEATURE_FLAG_SERVICE_HOST=feature-flag-service
5163
FEATURE_FLAG_GRPC_SERVICE_PORT=50053
5264
FEATURE_FLAG_GRPC_SERVICE_ADDR=featureflagservice:${FEATURE_FLAG_GRPC_SERVICE_PORT}
5365

66+
# flagd
67+
FLAGD_HOST=flagd
68+
5469
# Frontend
5570
FRONTEND_PORT=8080
5671
FRONTEND_ADDR=frontend:${FRONTEND_PORT}

.github/workflows/build-images.yml

+2-12
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,6 @@ jobs:
5555
tag_suffix: emailservice
5656
context: ./src/emailservice
5757
setup-qemu: true
58-
# NOTE:
59-
# https://github.com/open-telemetry/opentelemetry-demo/issues/956
60-
# Until dedicated ARM runners are available for GHA we cannot upgrade
61-
# OTP/Elixir versions. Please do not change the OTP/Elixir versions.
62-
- file: ./src/featureflagservice/Dockerfile
63-
tag_suffix: featureflagservice
64-
context: ./
65-
setup-qemu: true
6658
- file: ./src/frontend/Dockerfile
6759
tag_suffix: frontend
6860
context: ./
@@ -111,10 +103,6 @@ jobs:
111103
tag_suffix: frontend-tests
112104
context: ./
113105
setup-qemu: true
114-
- file: ./test/Dockerfile
115-
tag_suffix: integrationTests
116-
context: ./
117-
setup-qemu: true
118106

119107
steps:
120108
- uses: actions/checkout@v4
@@ -170,6 +158,8 @@ jobs:
170158
push: ${{ inputs.push }}
171159
tags: |
172160
${{ env.DOCKERHUB_REPO }}:${{ inputs.version }}-${{matrix.file_tag.tag_suffix }}
161+
${{ env.DOCKERHUB_REPO }}:latest-${{matrix.file_tag.tag_suffix }}
173162
${{ env.GHCR_REPO }}:${{ inputs.version }}-${{ matrix.file_tag.tag_suffix }}
163+
${{ env.GHCR_REPO }}:latest-${{ matrix.file_tag.tag_suffix }}
174164
cache-from: type=gha
175165
cache-to: type=gha

.github/workflows/gradle-wrapper-validation.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ jobs:
1515
steps:
1616
- uses: actions/checkout@v4
1717

18-
- uses: gradle/wrapper-validation-action@v1.1.0
18+
- uses: gradle/wrapper-validation-action@v2.1.1

.github/workflows/nightly-release.yml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
name: Nightly Release
4+
5+
on:
6+
schedule:
7+
# Runs at 00:00 UTC every day
8+
- cron: '0 0 * * *'
9+
10+
jobs:
11+
build_and_push_images:
12+
uses: ./.github/workflows/build-images.yml
13+
if: github.repository == 'open-telemetry/opentelemetry-demo'
14+
with:
15+
push: true
16+
version: nightly-${{ github.run_id }}
17+
secrets: inherit

.github/workflows/run-integration-tests.yml

+6-36
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,18 @@
33
name: Integration Tests
44

55
on:
6-
pull_request_target:
7-
branches:
8-
- main
9-
types: [closed]
6+
pull_request_review:
7+
types:
8+
- submitted
109

1110
jobs:
12-
build_runner:
13-
runs-on: ubuntu-latest
14-
name: "Build Runner"
15-
if: github.event.pull_request.merged == true
16-
steps:
17-
- name: metal-runner-action
18-
uses: equinix-labs/metal-action-runner@v0.1.1
19-
with:
20-
github_token: ${{ secrets.GH_CI_SECRET }}
21-
metal_auth_token: ${{ secrets.METAL_AUTH_TOKEN }}
22-
metal_project_id: ${{ secrets.METAL_PROJECT_ID }}
23-
metro: "da"
24-
plan: "c3.small.x86"
25-
os: "ubuntu_20_04"
2611
run_tests:
27-
needs: build_runner
28-
runs-on: self-hosted
12+
runs-on: ubuntu-latest
2913
name: "Run CI"
14+
if: github.event.review.state == 'APPROVED'
3015
steps:
3116
- name: check out code
32-
uses: actions/checkout@v3
33-
- name: install docker
34-
run: |
35-
curl -fsSL https://get.docker.com -o get-docker.sh
36-
sudo sh get-docker.sh
17+
uses: actions/checkout@v4
3718
- name: run tracetesting
3819
run: |
3920
make build && make run-tracetesting
40-
destroy:
41-
needs: [build_runner, run_tests]
42-
runs-on: ubuntu-latest
43-
name: "Cleanup"
44-
steps:
45-
- name: metal-sweeper-action
46-
uses: equinix-labs/metal-sweeper-action@v0.6.1
47-
with:
48-
authToken: ${{ secrets.METAL_AUTH_TOKEN }}
49-
projectID: ${{ secrets.METAL_PROJECT_ID }}
50-
keepProject: true

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ composer.lock
3838
src/frontend/cypress/videos
3939
src/frontend/cypress/screenshots
4040
src/shippingservice/target/
41+
test/tracetesting/tracetesting-vars.yaml
4142

4243
# Ignore copied/generated protobuf files
4344
/src/cartservice/src/protos/

.licenserc.json

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@
2828
"# Copyright The OpenTelemetry Authors",
2929
"# SPDX-License-Identifier: Apache-2.0"
3030
],
31+
"**/*.sql": [
32+
"-- Copyright The OpenTelemetry Authors",
33+
"-- SPDX-License-Identifier: Apache-2.0"
34+
],
3135
"**/{Dockerfile,Makefile}": [
3236
"# Copyright The OpenTelemetry Authors",
3337
"# SPDX-License-Identifier: Apache-2.0"

CHANGELOG.md

+85-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,92 @@
11
# Changelog
22

33
Please update changelog as part of any significant pull request. Place short
4-
description of your change into "Unreleased" section. As part of release process
5-
content of "Unreleased" section content will generate release notes for the
6-
release.
4+
description of your change into "Unreleased" section. As part of release
5+
process content of "Unreleased" section content will generate release notes for
6+
the release.
77

88
## Unreleased
99

10+
* [featureflag] deprecate in favor of flagd
11+
([#1338](https://github.com/open-telemetry/opentelemetry-demo/pull/1388))
12+
* [checkoutservice] add producer interceptor for tracing
13+
([#1400](https://github.com/open-telemetry/opentelemetry-demo/pull/1400))
14+
* [chore] increase memory for Collector and Jaeger
15+
([#1396](https://github.com/open-telemetry/opentelemetry-demo/pull/1396))
16+
* [chore] fix Make targets for restart and redeploy
17+
([#1397](https://github.com/open-telemetry/opentelemetry-demo/pull/1397))
18+
* [chore] add nightly releases
19+
([#1398](https://github.com/open-telemetry/opentelemetry-demo/pull/1398))
20+
* [checkoutservice] add producer interceptor for tracing
21+
([#1400](https://github.com/open-telemetry/opentelemetry-demo/pull/1400))
22+
* [productcatalogservice] fix graceful shutdown issues
23+
([#1402](https://github.com/open-telemetry/opentelemetry-demo/pull/1402))
24+
* [chore] remove unused integration test
25+
([#1406](https://github.com/open-telemetry/opentelemetry-demo/pull/1406))
26+
* [CartService] - Add Host Detector
27+
([#1415](https://github.com/open-telemetry/opentelemetry-demo/pull/1415))
28+
29+
## 1.8.0
30+
31+
* [grafana] update grafana to 10.2.3
32+
([#1332](https://github.com/open-telemetry/opentelemetry-demo/pull/1332))
33+
* [frontendproxy] Enable envoy environment resource detector
34+
([#1291](https://github.com/open-telemetry/opentelemetry-demo/pull/1291))
35+
* [currencyservice] - add package name prefix to `rpc.service` attribute
36+
([#1333](https://github.com/open-telemetry/opentelemetry-demo/pull/1333))
37+
* [currency] fix metric exporter options
38+
([#1335](https://github.com/open-telemetry/opentelemetry-demo/pull/1335))
39+
* [ffspostgres] define and use demo specific postgres image
40+
([#1338](https://github.com/open-telemetry/opentelemetry-demo/pull/1338))
41+
* [loadgenerator, frontend] enable browser traffic in loadgenerator using playwright
42+
([#1345](https://github.com/open-telemetry/opentelemetry-demo/pull/1345))
43+
* [accountingservice] update wiki link
44+
([#1346](https://github.com/open-telemetry/opentelemetry-demo/pull/1346))
45+
* [checkoutservice] update wiki link
46+
([#1346](https://github.com/open-telemetry/opentelemetry-demo/pull/1346))
47+
* [productcatalogservice] update wiki link
48+
([#1346](https://github.com/open-telemetry/opentelemetry-demo/pull/1346))
49+
* [adservice] added group and anonymous read permission to
50+
opentelemetry-javaagent.jar
51+
([#1348](https://github.com/open-telemetry/opentelemetry-demo/pull/1348))
52+
* [frauddetectionservice] added group and anonymous read permission to
53+
opentelemetry-javaagent.jar
54+
([#1348](https://github.com/open-telemetry/opentelemetry-demo/pull/1348))
55+
* [adservice] Major version update for Java instrumentation, version 2.0.0
56+
([#1352](https://github.com/open-telemetry/opentelemetry-demo/pull/1352))
57+
* [frauddetectionservice] Major version update for Java instrumentation,
58+
version 2.0.0
59+
([#1352](https://github.com/open-telemetry/opentelemetry-demo/pull/1352))
60+
* [kafka] Major version update for Java instrumentation, version 2.0.0
61+
([#1352](https://github.com/open-telemetry/opentelemetry-demo/pull/1352))
62+
* Align env variables for OTLP ports
63+
([#1353](https://github.com/open-telemetry/opentelemetry-demo/pull/1353))
64+
* Update dependent services - Collector, Grafana, Jaeger, Prometheus, etc.
65+
([#1354](https://github.com/open-telemetry/opentelemetry-demo/pull/1354))
66+
* [OpenSearch] Use native OpenSearch exporter from Collector
67+
([#1356](https://github.com/open-telemetry/opentelemetry-demo/pull/1356))
68+
* Update GO SDKs & fix metrics config
69+
([#1357](https://github.com/open-telemetry/opentelemetry-demo/pull/1357))
70+
* Update Python SDKs
71+
([#1358](https://github.com/open-telemetry/opentelemetry-demo/pull/1358))
72+
* [loadgenerator] fix browser traffic enabled flag
73+
([#1359](https://github.com/open-telemetry/opentelemetry-demo/pull/1359))
74+
* [productcatalog] allow products to be extended
75+
([#1363](https://github.com/open-telemetry/opentelemetry-demo/pull/1363))
76+
* [tests] update trace based tests for semantic conventions
77+
([#1377](https://github.com/open-telemetry/opentelemetry-demo/pull/1377))
78+
* [currencyservice] Add OTLP logs
79+
([#1378](https://github.com/open-telemetry/opentelemetry-demo/pull/1378))
80+
* [cartservice] update .NET to .NET 8.0.2
81+
([#1380](https://github.com/open-telemetry/opentelemetry-demo/pull/1380))
82+
83+
## 1.7.2
84+
85+
* [cartservice] update .NET package to 1.7.0 release
86+
([#1326](https://github.com/open-telemetry/opentelemetry-demo/pull/1326))
87+
* [loadgenerator and recommendationservice] Update python base image
88+
([#1329](https://github.com/open-telemetry/opentelemetry-demo/pull/1329))
89+
1090
## 1.7.1
1191

1292
* [grafana] revert to 10.2.0
@@ -16,6 +96,8 @@ release.
1696
([#1313](https://github.com/open-telemetry/opentelemetry-demo/pull/1313))
1797
* [accountingservice] Update dependencies and semconv
1898
* ([#1316](https://github.com/open-telemetry/opentelemetry-demo/pull/1316))
99+
* [featureflagservice] Allow setting initial feature flag values
100+
([#1319](https://github.com/open-telemetry/opentelemetry-demo/pull/1319))
19101

20102
## 1.7.0
21103

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ GitHub pull requests (PRs).
113113

114114
To create a new PR, fork the project in GitHub and clone the upstream repo:
115115

116-
> **Note**
116+
> [!NOTE]
117117
> Please fork to a personal GitHub account rather than a corporate/enterprise
118118
> one so maintainers can push commits to your branch.
119119
> **Pull requests from protected forks will not be accepted.**

Makefile

+36-5
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,12 @@ build-env-file:
9595
sed -i '/IMAGE_VERSION=.*/c\IMAGE_VERSION=${RELEASE_VERSION}' .ghcr.env
9696
sed -i '/IMAGE_NAME=.*/c\IMAGE_NAME=${GHCR_REPO}' .ghcr.env
9797

98+
.PHONY: run-tests
9899
run-tests:
99100
docker compose run frontendTests
100-
docker compose run integrationTests
101101
docker compose run traceBasedTests
102102

103+
.PHONY: run-tracetesting
103104
run-tracetesting:
104105
docker compose run traceBasedTests ${SERVICES_TO_TEST}
105106

@@ -161,10 +162,40 @@ stop:
161162
@echo ""
162163
@echo "OpenTelemetry Demo is stopped."
163164

164-
165-
# Use to rebuild and restart a single service component
165+
# Use to restart a single service component
166166
# Example: make restart service=frontend
167167
.PHONY: restart
168168
restart:
169-
# work with `service` or `SERVICE` as input
170-
./restart-service.sh ${service}${SERVICE}
169+
# work with `service` or `SERVICE` as input
170+
ifdef SERVICE
171+
service := $(SERVICE)
172+
endif
173+
174+
ifdef service
175+
docker compose stop $(service)
176+
docker compose rm --force $(service)
177+
docker compose create $(service)
178+
docker compose start $(service)
179+
else
180+
@echo "Please provide a service name using `service=[service name]` or `SERVICE=[service name]`"
181+
endif
182+
183+
# Use to rebuild and restart (redeploy) a single service component
184+
# Example: make redeploy service=frontend
185+
.PHONY: redeploy
186+
redeploy:
187+
# work with `service` or `SERVICE` as input
188+
ifdef SERVICE
189+
service := $(SERVICE)
190+
endif
191+
192+
ifdef service
193+
docker compose build $(service)
194+
docker compose stop $(service)
195+
docker compose rm --force $(service)
196+
docker compose create $(service)
197+
docker compose start $(service)
198+
else
199+
@echo "Please provide a service name using `service=[service name]` or `SERVICE=[service name]`"
200+
endif
201+

README.md

+12-9
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,15 @@ keeping it up to date for you.
5757
| | | |
5858
|-----------------------------------------|-----------------------------|----------------------------------------------------------------|
5959
| [AlibabaCloud LogService][AlibabaCloud] | [Elastic][Elastic] | [OpenSearch][OpenSearch] |
60-
| [AppDynamics][AppDynamics] | [Grafana Labs][GrafanaLabs] | [Sentry][Sentry] |
61-
| [Aspecto][Aspecto] | [Guance][Guance] | [ServiceNow Cloud Observability][ServiceNowCloudObservability] |
62-
| [Axiom][Axiom] | [Helios][Helios] | [Splunk][Splunk] |
63-
| [Axoflow][Axoflow] | [Honeycomb.io][Honeycombio] | [Sumo Logic][SumoLogic] |
64-
| [Azure Data Explorer][Azure] | [Instana][Instana] | [TelemetryHub][TelemetryHub] |
65-
| [Coralogix][Coralogix] | [Kloudfuse][Kloudfuse] | [Teletrace][Teletrace] |
66-
| [Datadog][Datadog] | [Logz.io][Logzio] | [Tracetest][Tracetest] |
67-
| [Dynatrace][Dynatrace] | [New Relic][NewRelic] | [Uptrace][Uptrace] |
60+
| [AppDynamics][AppDynamics] | [Google Cloud][GoogleCloud] | [Sentry][Sentry] |
61+
| [Aspecto][Aspecto] | [Grafana Labs][GrafanaLabs] | [ServiceNow Cloud Observability][ServiceNowCloudObservability] |
62+
| [Axiom][Axiom] | [Guance][Guance] | [Splunk][Splunk] |
63+
| [Axoflow][Axoflow] | [Helios][Helios] | [Sumo Logic][SumoLogic] |
64+
| [Azure Data Explorer][Azure] | [Honeycomb.io][Honeycombio] | [TelemetryHub][TelemetryHub] |
65+
| [Coralogix][Coralogix] | [Instana][Instana] | [Teletrace][Teletrace] |
66+
| [Dash0][Dash0] | [Kloudfuse][Kloudfuse] | [Tracetest][Tracetest] |
67+
| [Datadog][Datadog] | [Logz.io][Logzio] | [Uptrace][Uptrace] |
68+
| [Dynatrace][Dynatrace] | [New Relic][NewRelic] | |
6869

6970
## Contributing
7071

@@ -79,7 +80,7 @@ Monday at 8:30 AM PST and anyone is welcome.
7980

8081
- [Austin Parker](https://github.com/austinlparker), Honeycomb
8182
- [Carter Socha](https://github.com/cartersocha), Lightstep
82-
- [Juliano Costa](https://github.com/julianocosta89), Dynatrace
83+
- [Juliano Costa](https://github.com/julianocosta89), Datadog
8384
- [Pierre Tessier](https://github.com/puckpuck), Honeycomb
8485

8586
[Approvers](https://github.com/open-telemetry/community/blob/main/community-membership.md#approver)
@@ -111,9 +112,11 @@ Emeritus:
111112
[Axoflow]: https://axoflow.com/opentelemetry-support-in-more-detail-in-axosyslog-and-syslog-ng/
112113
[Azure]: https://github.com/Azure/Azure-kusto-opentelemetry-demo
113114
[Coralogix]: https://coralogix.com/blog/configure-otel-demo-send-telemetry-data-coralogix
115+
[Dash0]: https://github.com/dash0hq/opentelemetry-demo
114116
[Datadog]: https://github.com/DataDog/opentelemetry-demo
115117
[Dynatrace]: https://www.dynatrace.com/news/blog/opentelemetry-demo-application-with-dynatrace/
116118
[Elastic]: https://github.com/elastic/opentelemetry-demo
119+
[GoogleCloud]: https://github.com/GoogleCloudPlatform/opentelemetry-demo
117120
[GrafanaLabs]: https://github.com/grafana/opentelemetry-demo
118121
[Guance]: https://github.com/GuanceCloud/opentelemetry-demo
119122
[Helios]: https://otelsandbox.gethelios.dev

0 commit comments

Comments
 (0)