-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Getting started: provide a uniform experience for Collector and all language SIGs #964
Comments
☝️ |
Yep, agreed! I would also argue that every language section should have a dedicated page (or exporter section) that shows how to export to a backend, since it is important, just not for getting started. The question in my mind is, what should the thing being instrumented cover? I can see two options:
I lean a little more towards (1) since I believe incorporate automatic instrumentation is critically important and we should encourage using it as a first step so that you can get some easy wins by using OTel. However, it makes setup more complex, any sample app is a little harder to run, and in some cases (e.g., Java) requires running an agent in addition to the app. |
@chalin when you say "console collector" do you mean a console exporter or do you mean that there should be a collector receiving data via OTLP and the collector is then dumping the data to the console? From an end-user experience I would argue that both would be great:
I think about the following flow
I am happy to help to make this happen / find people to help with that, please let me know if this make sense :) |
Yes, thanks! I fixed that in the opening comment.
I like it! It seems smooth to me. Thoughts @tedsuo @cartermp @austinlparker? |
I do like that flow, yes. |
following up on this. I found some time to create a quick experiment for this at https://github.com/svrnm/opentelemetry.io/tree/multi_language_tutorial The idea is to have the outlined sample webserver application in multiple languages. The key difference is, that all languages use the same text, and the end-user can pick the language that's relevant to them. The big advantage is, that all text only needs to be written one (e.g. when describing what a span is, or that we are going to use a console exporter, etc.). This is inspired by https://www.rabbitmq.com/getstarted.html Here's a quick video summary: otel-multi-language-tutorial.mp4If you'd like to play around with it, clone my fork&branch, run it and go to http://localhost:8888/docs/tutorial/hello_world/ What do you think? |
@svrnm I really like this a lot. I think this would be a great place to point newcomers. I do worry about the list of tabs getting too large, though. But maybe that's a thing to worry about at a later date 🙂 |
Thanks. Newcomers would be the targeted audience: thinking about that for a little bit, I should have started with automatic instrumentation and not manual.
There might be alternatives like having the language controlled via the URL like the rabbitmq tutorial. The tabs have the advantage that someone who has multiple services in different languages can easily jump back and forth. |
Sounds good to me |
Sounds good to me! |
Based on the conversation from the call last week, I follow up here on the flow I suggested a few weeks back. I'd like to add a premise to the whole "getting started guide", and get your opinion on it: The personae that should follow this "Getting Started Guide" is someone who has an application in Next, to follow up on the "abstract-vs-details"-discussion: I think it is a good starting point to have a detailed set of instruction that is abstract(!) in the language used: this allows to approach the problem independent of implementation details, it might call out some improvements language-specific implementations can make and it starts with a common flow that can become specalized where needed. Which brings us back to the flow: Getting Started With OpenTelemetry (
|
☝🏼 This really captures the spirit of the 'getting started' pages. Historically we've set the bar for 'success' as "how quickly can I see a span/metric/log" but I don't think that really gets the value prop across. A few misc notes --
Thoughts? |
Makes sense! What about replacing that link list with a search with the registry? or the /vendor page?
Good point, if all of those sample apps are a "simple webserver" then they should be able to use the same
I was thinking about, "go through the docs again with a different language and stitch them together", but as you suggested, being explicit would be better (here is a second sample app, talking to your first app, follow the instructions again, now you have a distributed trace (CC: @kyle-lt, reminds me of your otel-chain). |
I could sort of see something like this in terms of sequencing:
Then having a GRPC version as well over time. That would cover the major RPC libraries that we support out of the gate. |
@svrnm I sort of think it might be best to just let vendors handle this in their own docs for now. Some vendors support direct OTLP ingest and they make it no different from sending to a collector other than maybe needing to specify a header or two. Others might require you to pull in a contrib module to the collector, or use their distribution of a collector or an SDK, etc. |
Seems like this is redundant now, since a lot has changed and we have #2623 now |
I think that each language SIG's Getting started page should use the equivalent of a "console exporter". Exporting to a backend should be covered elsewhere.
Thoughts @austinlparker @cartermp @theletterf
The text was updated successfully, but these errors were encountered: