-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Luca Wintergerst
committed
Aug 7, 2023
1 parent
ddfa285
commit bee3a3b
Showing
275 changed files
with
138,564 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
**/.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
ELASTIC_APM_SERVER_URL="https://foobar.apm.us-central1.gcp.cloud.es.io:443" | ||
ELASTIC_APM_SECRET_TOKEN="lkjhg34567hvj3v456" | ||
ELASTICSEARCH_USERNAME="elastic" | ||
ELASTICSEARCH_PASSWORD="3kj4hg56lhgh3l4vb5j6" | ||
ELASTICSEARCH_URL="https://foobar.es.us-central1.gcp.cloud.es.io" | ||
|
||
BUILD_NUMBER="1" | ||
ELASTIC_VERSION="8.9.0" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
src/streaming-ui/scripts/.env-debug | ||
src/data-loader/env-debug | ||
node_modules/ | ||
**/.venv | ||
*/bin/Debug | ||
**__pycache__ | ||
#.env | ||
**/.idea | ||
dotnet*/obj | ||
.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
BUILD_NUM=$(shell cat ./properties.json | jq -r ".build_num") | ||
ES_VERSION=$(shell cat ./properties.json | jq -r ".es_version") | ||
APP_NAME=$(shell cat ./properties.json | jq -r ".app_name") | ||
|
||
# elastiflix-dotnet-login and elastiflix-dotnet-login-elastic-auto are built with docker buildx | ||
|
||
CONTAINERS = python-favorite javascript-client node-server movie-data-loader go-favorite redis java-favorite | ||
CONTAINERS_ELASTIC = python-favorite-elastic-manual javascript-client-elastic-manual node-server-elastic-manual go-favorite-elastic-manual java-favorite-elastic-manual java-favorite-elastic-auto | ||
CONTAINERS_OTEL = python-favorite-otel-auto python-favorite-otel-manual node-server-otel-auto node-server-otel-manual go-favorite-otel-manual java-favorite-otel-manual java-favorite-otel-auto | ||
|
||
docker_build: check-docker-env | ||
echo "Building docker images" | ||
for container in ${CONTAINERS}; do\ | ||
echo Building container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker build --platform linux/amd64 --build-arg ES_VERSION=$(VERSION) ./$$container -t docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
docker buildx build --push --platform linux/arm64/v8,linux/amd64 -t docker.elastic.co/demos/workshop/observability/elastiflix-dotnet-login:$(ES_VERSION)-$(BUILD_NUM) ./dotnet-login | ||
|
||
docker_build_elastic: check-docker-env | ||
echo "Building docker images" | ||
for container in ${CONTAINERS_ELASTIC}; do\ | ||
echo Building container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker build --platform linux/amd64 --build-arg ES_VERSION=$(VERSION) ./$$container -t docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
docker buildx build --push --platform linux/arm64/v8,linux/amd64 -t docker.elastic.co/demos/workshop/observability/elastiflix-dotnet-login-elastic-auto:$(ES_VERSION)-$(BUILD_NUM) ./dotnet-login-elastic-auto | ||
|
||
|
||
docker_build_otel: check-docker-env | ||
echo "Building docker images" | ||
for container in ${CONTAINERS_OTEL}; do\ | ||
echo Building container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker build --platform linux/amd64 --build-arg ES_VERSION=$(VERSION) ./$$container -t docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
docker buildx build --push --platform linux/arm64/v8,linux/amd64 -t docker.elastic.co/demos/workshop/observability/elastiflix-dotnet-login-otel-auto:$(ES_VERSION)-$(BUILD_NUM) ./dotnet-login-otel-auto | ||
|
||
docker_push: check-docker-env | ||
@echo "Pushing docker images" | ||
@for container in ${CONTAINERS}; do\ | ||
echo Pushing container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker push docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
docker_push_elastic: check-docker-env | ||
@echo "Pushing docker images" | ||
@for container in ${CONTAINERS_ELASTIC}; do\ | ||
echo Pushing container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker push docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
docker_push_otel: check-docker-env | ||
@echo "Pushing docker images" | ||
@for container in ${CONTAINERS_OTEL}; do\ | ||
echo Pushing container: docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM); \ | ||
docker push docker.elastic.co/demos/workshop/observability/$(APP_NAME)-$$container:$(ES_VERSION)-$(BUILD_NUM);\ | ||
done\ | ||
|
||
check-docker-env: | ||
ifeq (, $(shell which docker)) | ||
$(error "No docker installed") | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,225 @@ | ||
version: "3" | ||
services: | ||
locust: | ||
image: locustio/locust:2.15.1 | ||
ports: | ||
- "8089:8089" | ||
volumes: | ||
- ./locustfile.py:/mnt/locust/locustfile.py | ||
command: -f /mnt/locust/locustfile.py --host http://node-server:3001 --autostart | ||
networks: | ||
- app-network | ||
movie-data-loader: | ||
build: movie-data-loader/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-movie-data-loader:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
networks: | ||
- app-network | ||
environment: | ||
- ELASTICSEARCH_URL=${ELASTICSEARCH_URL} | ||
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME} | ||
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD} | ||
redis: | ||
build: redis/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-redis:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
ports: | ||
- 6379 | ||
networks: | ||
- app-network | ||
environment: | ||
- TOGGLE_CLIENT_PAUSE=${TOGGLE_CLIENT_PAUSE} | ||
favorite-python-otel-manual: | ||
build: python-favorite-otel-manual/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-python-favorite-otel-manual:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
networks: | ||
- app-network | ||
ports: | ||
- "5002:5000" | ||
environment: | ||
- OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=python-favorite-otel-manual | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
- TOGGLE_SERVICE_DELAY=${TOGGLE_SERVICE_DELAY} | ||
- TOGGLE_CANARY_DELAY=${TOGGLE_CANARY_DELAY} | ||
- TOGGLE_CANARY_FAILURE=${TOGGLE_CANARY_FAILURE} | ||
favorite-python-otel-auto: | ||
build: python-favorite-otel-auto/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-python-favorite-otel-auto:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
networks: | ||
- app-network | ||
ports: | ||
- "5010:5000" | ||
environment: | ||
- OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=python-favorite-otel-auto | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
- TOGGLE_SERVICE_DELAY=${TOGGLE_SERVICE_DELAY} | ||
- TOGGLE_CANARY_DELAY=${TOGGLE_CANARY_DELAY} | ||
- TOGGLE_CANARY_FAILURE=${TOGGLE_CANARY_FAILURE} | ||
favorite-go-otel-manual: | ||
build: go-favorite-otel-manual/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-go-favorite-otel-manual:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
networks: | ||
- app-network | ||
ports: | ||
- "5001:5000" | ||
environment: | ||
- ELASTIC_APM_SECRET_TOKEN=${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=go-favorite-otel-manual | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
- TOGGLE_SERVICE_DELAY=${TOGGLE_SERVICE_DELAY} | ||
- TOGGLE_CANARY_DELAY=${TOGGLE_CANARY_DELAY} | ||
- TOGGLE_CANARY_FAILURE=${TOGGLE_CANARY_FAILURE} | ||
favorite-java-otel-manual: | ||
build: java-favorite-otel-manual/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-java-favorite-otel-manual:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
networks: | ||
- app-network | ||
ports: | ||
- "5003:5000" | ||
environment: | ||
- OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20${ELASTIC_APM_SECRET_TOKEN} | ||
- ELASTIC_APM_SECRET_TOKEN=${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=java-favorite-otel-manual | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
- TOGGLE_SERVICE_DELAY=${TOGGLE_SERVICE_DELAY} | ||
- TOGGLE_CANARY_DELAY=${TOGGLE_CANARY_DELAY} | ||
- TOGGLE_CANARY_FAILURE=${TOGGLE_CANARY_FAILURE} | ||
favorite-java-otel-auto: | ||
build: java-favorite-otel-auto/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-java-favorite-otel-auto:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
networks: | ||
- app-network | ||
ports: | ||
- "5004:5000" | ||
environment: | ||
- ELASTIC_APM_SECRET_TOKEN=${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=java-favorite-otel-auto | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
- TOGGLE_SERVICE_DELAY=${TOGGLE_SERVICE_DELAY} | ||
- TOGGLE_CANARY_DELAY=${TOGGLE_CANARY_DELAY} | ||
- TOGGLE_CANARY_FAILURE=${TOGGLE_CANARY_FAILURE} | ||
login: | ||
build: dotnet-login-otel-auto/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-dotnet-login-otel-auto:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
networks: | ||
- app-network | ||
ports: | ||
- "127.0.0.1:8000:80" | ||
environment: | ||
- OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer ${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
- OTEL_SERVICE_NAME=dotnet-login-otel-auto | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- REDIS_HOST=redis | ||
# node-server: | ||
# build: node-server-otel-auto/. | ||
# image: docker.elastic.co/demos/workshop/observability/elastiflix-node-server-otel-auto:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
# depends_on: | ||
# - redis | ||
# - login | ||
# networks: | ||
# - app-network | ||
# ports: | ||
# - "3001:3001" | ||
# environment: | ||
# environment: | ||
# - API_ENDPOINT_FAVORITES=favorite-java-otel-auto:5000,favorite-java-otel-manual:5000,favorite-python-otel-auto:5000,favorite-go-otel-manual:5000,favorite-python-otel-manual:5000 | ||
# - API_ENDPOINT_LOGIN=login:80 | ||
# - ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD} | ||
# - ELASTICSEARCH_URL=${ELASTICSEARCH_URL} | ||
# - ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME} | ||
# - OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
# - OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer ${ELASTIC_APM_SECRET_TOKEN} | ||
# - OTEL_LOG_LEVEL=info | ||
# - OTEL_METRICS_EXPORTER=otlp | ||
# - OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production | ||
# - OTEL_SERVICE_NAME=node-server-otel-auto | ||
# - OTEL_TRACES_EXPORTER=otlp | ||
# - THROW_NOT_A_FUNCTION_ERROR=${THROW_NOT_A_FUNCTION_ERROR} | ||
node-server: | ||
build: node-server-otel-manual/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-node-server-otel-manual:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
- login | ||
networks: | ||
- app-network | ||
ports: | ||
- "3001:3001" | ||
environment: | ||
- API_ENDPOINT_FAVORITES=favorite-java-otel-auto:5000,favorite-java-otel-manual:5000,favorite-python-otel-auto:5000,favorite-go-otel-manual:5000,favorite-python-otel-manual:5000 | ||
- API_ENDPOINT_LOGIN=login:80 | ||
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD} | ||
- ELASTICSEARCH_URL=${ELASTICSEARCH_URL} | ||
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME} | ||
- OTEL_EXPORTER_OTLP_ENDPOINT=${ELASTIC_APM_SERVER_URL} | ||
- OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer ${ELASTIC_APM_SECRET_TOKEN} | ||
- OTEL_LOG_LEVEL=info | ||
- OTEL_METRICS_EXPORTER=otlp | ||
- OTEL_RESOURCE_ATTRIBUTES=service.version=1.0,deployment.environment=production,service.name=node-server-otel-manual | ||
- OTEL_SERVICE_NAME=node-server-otel-manual | ||
- OTEL_TRACES_EXPORTER=otlp | ||
- THROW_NOT_A_FUNCTION_ERROR=${THROW_NOT_A_FUNCTION_ERROR} | ||
frontend: | ||
build: javascript-client-elastic-manual/. | ||
image: docker.elastic.co/demos/workshop/observability/elastiflix-javascript-client-elastic-manual:${ELASTIC_VERSION}-${BUILD_NUMBER} | ||
depends_on: | ||
- redis | ||
- node-server | ||
networks: | ||
- app-network | ||
ports: | ||
- "9000:9000" | ||
environment: | ||
- ELASTIC_APM_ENVIRONMENT=production | ||
- ELASTIC_APM_SERVER_URL=${ELASTIC_APM_SERVER_URL} | ||
- ELASTIC_APM_SERVICE_NAME=javascript-client-elastic-manual | ||
# optional, can be used instead of sending data directly to APM Server | ||
# otel-collector: | ||
# image: otel/opentelemetry-collector-contrib | ||
# command: [ "--config=/etc/otelcol-config.yml", "--config=/etc/otelcol-config-extras.yml" ] | ||
# volumes: | ||
# - ./otel-config.yml:/etc/otelcol-config.yml | ||
# - ./otel-config-extras.yml:/etc/otelcol-config-extras.yml | ||
# ports: | ||
# - 1888:1888 # pprof extension | ||
# - 8888:8888 # Prometheus metrics exposed by the collector | ||
# - 8889:8889 # Prometheus exporter metrics | ||
# - 13133:13133 # health_check extension | ||
# - 4317:4317 # OTLP gRPC receiver | ||
# - 4318:4318 # OTLP http receiver | ||
networks: | ||
app-network: | ||
driver: bridge |
Oops, something went wrong.