open-telemetry / opentelemetry-demo

This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.
https://opentelemetry.io/docs/demo/
Apache License 2.0
1.54k stars 875 forks source link

Create an Android app to join the demo and showcase client instrumentation #1209

Open breedx-splk opened 8 months ago

breedx-splk commented 8 months ago

@austinlparker mentioned in #560 that it would be helpful to have some client/mobile instrumentation as well. I think this is a fantastic idea, and a great way to test and demo the Android instrumentation with otel. So let's treat this issue as the first place for this work to be started.

There is also a placeholder issue in the android repo about creating a sample application: https://github.com/open-telemetry/opentelemetry-android/issues/8. If the app can be built in the demo repo, it could alleviate the need for that app in the Android repo. Of course, there are pros and cons to choosing where it lives.

One interesting/challenging aspect of this is that even though an app may be instrumented and can send telemetry somewhere, I'm not really aware of any open source RUM backends that we could leverage to show off the data. In the short term, simply sending to a collector may be sufficient.

puckpuck commented 8 months ago

I think this should live in the demo repo itself, to ensure changes to the backend services won't break the mobile app.

bidetofevil commented 2 weeks ago

Should this be closed now that we have this? Or is this about getting the demo app into this repo?

puckpuck commented 2 weeks ago

TIL that particular Android demo app exists. Looking at it briefly, it is a self-contained thing that doesn't interact with the OpenTelemetry demo itself but gains inspiration from it. As such, I would not call that part of the otel demo. However, it certainly offers a great opportunity to wire it up so it does indeed interact with an OpenTelemetry demo instance using its defined API.

bidetofevil commented 2 weeks ago

Since @breedx-splk opened both this issue and pretty much did most of the code for that demo app, he can speak to the intention and whether this issue would be resolved by that app's existence :-)

breedx-splk commented 2 weeks ago

Yeah, I didn't want to cross over into this demo yet until we have some better integration with the actual demo services. I know we discussed that the demo app should live in this repo, but right now the Android project is changing a LOT and having a quick-turn way of testing and developing features is very handy indeed. The primary purpose of the demo app in the android repo right now is to allow us to show off and test features of the RUM instrumentation itself.

It is being modeled after the web frontend astronomy shop, and built in a way that should definitely allow us to enhance the "clients" to actually talk to microservices eventually. It's already proven pretty handy without the full integration of the rest of the demo microservice ecosystem....but we'll get there.

I think we should leave this issue open until the demo app can be brought over and clients wired up to microservices.

puckpuck commented 2 weeks ago

Does it make sense to bring the protobuf definitions from the demo into the Android app so that when we plug them into the otel demo itself, it's an easier lift?