|
| 1 | +--- |
| 2 | +title: Announcing the OpenTelemetry Demo 2.0 |
| 3 | +linkTitle: OTel Demo 2.0 |
| 4 | +date: 2025-02-21 |
| 5 | +author: > |
| 6 | + [Juliano Costa](https://github.com/julianocosta89) (Datadog) |
| 7 | +sig: OpenTelemetry Demo |
| 8 | +cSpell:ignore: Abhishek Veeramalla's |
| 9 | +--- |
| 10 | + |
| 11 | +We're thrilled to announce that OpenTelemetry Demo 2.0 is here! We've been busy |
| 12 | +behind the scenes, polishing up the demo to make it more complete, robust, and |
| 13 | +user-friendly. We believe these exciting features and improvements deserve a |
| 14 | +major release! |
| 15 | + |
| 16 | +But before we jump in, let's take a look at some of the project stats. |
| 17 | + |
| 18 | +## Statistics |
| 19 | + |
| 20 | +With a total of 140 contributors, the OpenTelemetry Demo has been starred |
| 21 | +**2048** times. On October 26, 2022 — two days after General Availability |
| 22 | +— we had a record 40 stars in a single day. If you use the Demo, consider |
| 23 | +leaving us a star to help promote the project. |
| 24 | + |
| 25 | +There are a total of 1.8K forks of the Demo. Notably, [Abhishek Veeramalla's |
| 26 | +fork][1] stands out with 142 stars and has been forked 425 times. |
| 27 | + |
| 28 | +The Demo containers have been pulled over **12 million times** (11.8M times from |
| 29 | +`ghcr.io` plus 433K times from `hub.docker`). |
| 30 | + |
| 31 | +The OpenTelemetry Demo includes the following CNCF projects: |
| 32 | + |
| 33 | +- [OpenTelemetry](/), of course |
| 34 | +- [Envoy][2] |
| 35 | +- [OpenFeature/Flagd][3] |
| 36 | +- [Jaeger][4] |
| 37 | +- [Prometheus][5] |
| 38 | +- [Valkey][6] |
| 39 | + |
| 40 | +## What's new in 2.0? |
| 41 | + |
| 42 | +This release is packed with exciting upgrades and changes. The following list is |
| 43 | +a quick rundown of the highlights: |
| 44 | + |
| 45 | +- **Flagd-ui introduced**: One of our most missed features since version 1.9.0 |
| 46 | + is back! You can again manage feature flags directly in the Demo. For more |
| 47 | + details, see the [Feature Flags](/docs/demo/feature-flags/) page. |
| 48 | +- **Image-provider introduced**: Since release 1.10.0, we've introduced a new |
| 49 | + service called Image Provider, which delivers static product images. This |
| 50 | + service, built on NGINX, returns images for every product and demonstrates how |
| 51 | + to instrument OpenTelemetry with an NGINX proxy using the NGINX Native |
| 52 | + OpenTelemetry module. |
| 53 | +- **Redis replaced with Valkey**: Since version 1.11.0, we've replaced the Redis |
| 54 | + service with Valkey, introducing another CNCF project to the OTel Demo. |
| 55 | +- **Build args moved to `.env` file**: If you forked the Demo and were using any |
| 56 | + custom image, keeping your fork in sync with upstream was always a hassle. To |
| 57 | + make things easier, we've moved most configurations to the `.env` file. We've |
| 58 | + also added a `_DOCKERFILE` environment variable, which allows you to specify |
| 59 | + the location of your build instructions. |
| 60 | +- **Services renamed**: If you've been using the OTel Demo since its inception, |
| 61 | + you're probably accustomed to the verbose naming of every service. For 2.0, |
| 62 | + we've streamlined things by dropping the `-service` suffix from all service |
| 63 | + names. Now, instead of `ad-service`, `cart-service`, and `checkout-service`, |
| 64 | + you'll simply see `Ad`, `Cart`, and `Checkout`. |
| 65 | +- **Accounting rewritten in .NET**: We wanted to showcase OTel's .NET |
| 66 | + auto-instrumentation in the Demo without adding an extra service. Since the |
| 67 | + Accounting service was originally written in Go—and we already had another |
| 68 | + service in that language—we decided to rewrite it in .NET. Now, the Demo |
| 69 | + features both the `Accounting` and `Cart` services, each demonstrating a |
| 70 | + different way to instrument .NET applications. |
| 71 | +- **Added exemplars**: `Cart` service now records exemplars for `GetCart` and |
| 72 | + `AddItem` operations, allowing correlation between metrics and spans. See the |
| 73 | + [Exemplars section of the Cart documentation](/docs/demo/services/cart/#exemplars) |
| 74 | + to learn more. |
| 75 | +- **React Native example app**: One of the most significant additions to this |
| 76 | + release is the brand new React Native app example. It can be built for Android |
| 77 | + or iOS (currently executable locally only). For instructions on how to run and |
| 78 | + test it, see the |
| 79 | + [React Native App documentation page](/docs/demo/services/react-native-app/). |
| 80 | +- **Span links for messaging spans**: Following OTel's recommendation to always |
| 81 | + link producer and consumer spans |
| 82 | + ([Messaging spans - Trace structure](/docs/specs/semconv/messaging/messaging-spans/#trace-structure)), |
| 83 | + the Demo now demonstrates this best practice. Consumer spans for `Accounting` |
| 84 | + and `Fraud-Detection` are linked to the producer span |
| 85 | + (`Checkout/orders publish`). |
| 86 | +- **Multi-arch builds**: To ensure that a variety of users can run the Demo |
| 87 | + locally, we've introduced new `make` targets to support building multiplatform |
| 88 | + images (for both `arm64` and `amd64` architectures). |
| 89 | +- **Configured Dependabot**: We were falling behind on some dependencies, but |
| 90 | + now Dependabot is configured to keep the Demo up-to-date automatically. |
| 91 | + |
| 92 | +## Current challenges |
| 93 | + |
| 94 | +Of course, with great updates come a few growing pains. Here's what we're |
| 95 | +currently tackling: |
| 96 | + |
| 97 | +- **Grafana dashboards**: As semantic conventions and tools evolve with new |
| 98 | + releases, ensuring that our Grafana dashboards remain fully functional is a |
| 99 | + challenge. If you're experienced with Grafana, we'd love your help! |
| 100 | +- **Dependabot PR testing**: While Dependabot helps keep all service |
| 101 | + dependencies up-to-date, we haven't yet implemented automated tests to ensure |
| 102 | + that updates don't cause crashes. This testing is still a manual process. |
| 103 | +- **Demo scalability**: Balancing the expansion of demo scenarios while keeping |
| 104 | + the Demo easily runnable locally is one of our biggest challenges. With 19 |
| 105 | + different services and new ideas emerging weekly, we're continuously working |
| 106 | + to maintain this balance. |
| 107 | + |
| 108 | +## What's next? |
| 109 | + |
| 110 | +We're not stopping here! Here are some of the next steps we're excited about, |
| 111 | +and we'd love your help: |
| 112 | + |
| 113 | +- **Bring Erlang/Elixir back**: In March 2024, we removed the initial Feature |
| 114 | + Flag service written in Elixir in favor of OpenFeature and Flagd. Since then, |
| 115 | + the Demo hasn't included a service in that language, but we're aiming to |
| 116 | + reintroduce Erlang/Elixir. Any help in this area would be much appreciated! |
| 117 | +- **Remote access for React Native app**: We plan to enable the React Native app |
| 118 | + to access a remotely running Demo, expanding its usability. |
| 119 | +- **Better automation and testing**: We're working to improve our automation and |
| 120 | + testing processes—especially for Dependabot PRs—to streamline our development |
| 121 | + workflow. |
| 122 | + |
| 123 | +## Get involved! |
| 124 | + |
| 125 | +Your feedback and contributions are what make this project thrive. If you're |
| 126 | +interested in helping out—whether it's polishing up the dashboards, automating |
| 127 | +tests, or bringing Erlang/Elixir back—please jump in and join the discussion on |
| 128 | +our [GitHub repository][7] / SIG meetings ([calendar-demo][8]) or hop into the |
| 129 | +[#otel-community-demo slack channel][9]. |
| 130 | + |
| 131 | +Thank you for your continued support, and happy demoing! |
| 132 | + |
| 133 | +[1]: https://github.com/iam-veeramalla/ultimate-devops-project-demo |
| 134 | +[2]: https://www.envoyproxy.io/ |
| 135 | +[3]: https://flagd.dev/ |
| 136 | +[4]: https://www.jaegertracing.io/ |
| 137 | +[5]: https://prometheus.io/ |
| 138 | +[6]: https://valkey.io/ |
| 139 | +[7]: https://github.com/open-telemetry/opentelemetry-demo |
| 140 | +[8]: https://groups.google.com/a/opentelemetry.io/g/calendar-demo-app |
| 141 | +[9]: https://cloud-native.slack.com/archives/C03B4CWV4DA |
0 commit comments