Skip to content

Commit

Permalink
feat: add opentelemetry demo
Browse files Browse the repository at this point in the history
  • Loading branch information
coobeet committed May 23, 2024
1 parent 71218a6 commit e138a98
Show file tree
Hide file tree
Showing 359 changed files with 60,209 additions and 0 deletions.
47 changes: 47 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@


.github
docs
internal
src/*/README.md
src/*/Dockerfile
src/*/*/Dockerfile

###################################
# currencyservice
./src/currencyservice/client.js
./src/currencyservice/node_modules/
###################################

###################################
# featureflagservice
# Common development/test artifacts
./src/featureflagservice/cover/
./src/featureflagservice/doc/
./src/featureflagservice/test/
./src/featureflagservice/tmp/
./src/featureflagservice/.elixir_ls

###################################
# frontend
./src/frontend/node_modules/

###################################
# shippingservice
./src/shippingservice/target
###################################

# Mix artifacts
./src/featureflagservice/_build/
./src/featureflagservice/deps/
./src/featureflagservice/*.ez

# Generated on crash by the VM
./src/featureflagservice/erl_crash.dump

# Static artifacts - These should be fetched and built inside the Docker image
./src/featureflagservice/assets/node_modules/
./src/featureflagservice/priv/static/assets/
./src/featureflagservice/priv/static/cache_manifest.json
###################################

128 changes: 128 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@


# Demo App version
IMAGE_VERSION=1.9.0
IMAGE_NAME=ghcr.io/open-telemetry/demo
DEMO_VERSION=latest

# Dependent images
COLLECTOR_CONTRIB_IMAGE=otel/opentelemetry-collector-contrib:0.100.0
GRAFANA_IMAGE=grafana/grafana:10.4.2
JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.55
# must also update version field in ./src/grafana/provisioning/datasources/opensearch.yml
OPENSEARCH_IMAGE=opensearchproject/opensearch:2.13.0
POSTGRES_IMAGE=postgres:16.2
PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v2.51.2
REDIS_IMAGE=redis:7.2-alpine
TRACETEST_IMAGE=kubeshop/tracetest:v1.0.0

# Demo Platform
ENV_PLATFORM=local

# OpenTelemetry Collector
OTEL_COLLECTOR_HOST=otelcol
OTEL_COLLECTOR_PORT_GRPC=4317
OTEL_COLLECTOR_PORT_HTTP=4318
OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC}
PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:8080/otlp-http/v1/traces

# OpenTelemetry Resource Definitions
OTEL_RESOURCE_ATTRIBUTES="service.namespace=opentelemetry-demo"

# Metrics Temporality
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative

# ******************
# Core Demo Services
# ******************
# Ad Service
AD_SERVICE_PORT=9555
AD_SERVICE_ADDR=adservice:${AD_SERVICE_PORT}

# Cart Service
CART_SERVICE_PORT=7070
CART_SERVICE_ADDR=cartservice:${CART_SERVICE_PORT}

# Checkout Service
CHECKOUT_SERVICE_PORT=5050
CHECKOUT_SERVICE_ADDR=checkoutservice:${CHECKOUT_SERVICE_PORT}

# Currency Service
CURRENCY_SERVICE_PORT=7001
CURRENCY_SERVICE_ADDR=currencyservice:${CURRENCY_SERVICE_PORT}

# Email Service
EMAIL_SERVICE_PORT=6060
EMAIL_SERVICE_ADDR=http://emailservice:${EMAIL_SERVICE_PORT}

# Frontend
FRONTEND_PORT=8080
FRONTEND_ADDR=frontend:${FRONTEND_PORT}

# Frontend Proxy (Envoy)
FRONTEND_HOST=frontend
ENVOY_PORT=8080
FRONTEND_PROXY_ADDR=frontend-proxy:${ENVOY_PORT}

# Image Provider
IMAGE_PROVIDER_HOST=imageprovider
IMAGE_PROVIDER_PORT=8081

# Load Generator
LOCUST_WEB_PORT=8089
LOCUST_USERS=10
LOCUST_HOST=http://${FRONTEND_PROXY_ADDR}
LOCUST_WEB_HOST=loadgenerator
LOCUST_AUTOSTART=true
LOCUST_HEADLESS=false

# Payment Service
PAYMENT_SERVICE_PORT=50051
PAYMENT_SERVICE_ADDR=paymentservice:${PAYMENT_SERVICE_PORT}

# Product Catalog Service
PRODUCT_CATALOG_SERVICE_PORT=3550
PRODUCT_CATALOG_SERVICE_ADDR=productcatalogservice:${PRODUCT_CATALOG_SERVICE_PORT}

# Quote Service
QUOTE_SERVICE_PORT=8090
QUOTE_SERVICE_ADDR=http://quoteservice:${QUOTE_SERVICE_PORT}

# Recommendation Service
RECOMMENDATION_SERVICE_PORT=9001
RECOMMENDATION_SERVICE_ADDR=recommendationservice:${RECOMMENDATION_SERVICE_PORT}

# Shipping Service
SHIPPING_SERVICE_PORT=50050
SHIPPING_SERVICE_ADDR=shippingservice:${SHIPPING_SERVICE_PORT}

# ******************
# Dependent Services
# ******************
# flagd
FLAGD_HOST=flagd
FLAGD_PORT=8013

# Kafka
KAFKA_SERVICE_PORT=9092
KAFKA_SERVICE_ADDR=kafka:${KAFKA_SERVICE_PORT}

# Redis
REDIS_PORT=6379
REDIS_ADDR=redis-cart:${REDIS_PORT}

# ********************
# Telemetry Components
# ********************
# Grafana
GRAFANA_SERVICE_PORT=3000
GRAFANA_SERVICE_HOST=grafana

# Jaeger
JAEGER_SERVICE_PORT=16686
JAEGER_SERVICE_HOST=jaeger

# Prometheus
PROMETHEUS_SERVICE_PORT=9090
PROMETHEUS_SERVICE_HOST=prometheus
PROMETHEUS_ADDR=${PROMETHEUS_SERVICE_HOST}:${PROMETHEUS_SERVICE_PORT}
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@


* text=auto

gradlew text eol=lf
16 changes: 16 additions & 0 deletions .github/.mlc_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"ignorePatterns": [
{"pattern": "^http://localhost:8080"},
{"pattern": "^https://calendar.google.com/calendar"}
],
"replacementPatterns": [
{
"pattern": "^/",
"replacement": "/github/workspace/"
}
],
"aliveStatusCodes": [
200,
429
]
}
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Code owners file.
# This file controls who is tagged for review for any given pull request.

# For anything not explicitly taken by someone else:
* @open-telemetry/demo-approvers
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug Report
about: Create a report to help us improve
labels: bug
---

# Bug Report

Which version of the demo you are using? (please provide either a specific
[commit
hash](https://github.com/open-telemetry/opentelemetry-demo/commits/main)
or a specific
[release](https://github.com/open-telemetry/opentelemetry-demo/releases)).

## Symptom

A clear and concise description of what the bug is.

**What is the expected behavior?**

What do you expect to see?

**What is the actual behavior?**

What did you see instead?

## Reproduce

Provide the minimum required steps to result in the issue you're observing.

We will close this issue if:

* The steps you provided are complex.
* If we can not reproduce the behavior you're reporting.

## Additional Context

Add any other context about the problem here.
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Feature Request
about: Suggest an idea for this project
labels: enhancement
---

# Feature Request

Before opening a feature request against this repo, consider whether the feature
should/could be implemented in the [other OpenTelemetry client
libraries](https://github.com/open-telemetry/). If so, please [open an issue on
opentelemetry-specification](https://github.com/open-telemetry/opentelemetry-specification/issues/new)
first.

**Is your feature request related to a problem?**

If so, provide a concise description of the problem.

**Describe the solution you'd like:**

What do you want to happen instead? What is the expected behavior?

**Describe alternatives you've considered.**

Which alternative solutions or features have you considered?

## Additional Context

Add any other context about the feature request here.
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
name: Question
about: Create a question to help us improve our knowledge base and documentation
labels: question
---

# Question

Use [Github Discussions](https://github.com/open-telemetry/opentelemetry-demo/discussions/).
30 changes: 30 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Changes

Please provide a brief description of the changes here.

## Merge Requirements

For new features contributions please make sure you have completed the following
essential items:

* [ ] `CHANGELOG.md` updated to document new feature additions
* [ ] Appropriate documentation updates in the [docs][]
* [ ] Appropriate Helm chart updates in the [helm-charts][]

<!--
A Pull Request that modifies instrumentation code will likely require an
update in docs. Please make sure to update the opentelemetry.io repo with any
docs changes.
A Pull Request that modifies docker-compose.yaml, otelcol-config.yaml, or
Grafana dashboards, will likely require an update to the Demo Helm chart.
Other changes affecting how a service is deployed will also likely require an
update to the Demo Helm chart.
-->

Maintainers will not merge until the above have been completed. If you're unsure
which docs need to be changed ping the
[@open-telemetry/demo-approvers](https://github.com/orgs/open-telemetry/teams/demo-approvers).

[docs]: https://opentelemetry.io/docs/demo/
[helm-charts]: https://github.com/open-telemetry/opentelemetry-helm-charts
8 changes: 8 additions & 0 deletions .github/component_owners.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
# this file is used by .github/workflows/assign-reviewers.yml
components:
src/adservice:
- jack-berg
- mateuszrzeszutek
- trask
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
labels:
- "infra"
21 changes: 21 additions & 0 deletions .github/workflows/assign-reviewers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
# assigns reviewers to pull requests in a similar way as CODEOWNERS, but doesn't require reviewers
# to have write access to the repository
# see .github/component_owners.yaml for the list of components and their owners
name: Assign reviewers

on:
# pull_request_target is needed instead of just pull_request
# because repository write permission is needed to assign reviewers
pull_request_target:

jobs:
assign-reviewers:
if: github.repository == 'open-telemetry/opentelemetry-demo'
runs-on: ubuntu-latest
steps:
- uses: dyladan/component-owners@main
with:
# using this action to request review only (not assignment)
assign-owners: false
Loading

0 comments on commit e138a98

Please sign in to comment.