Move documentation to be user journey focused, not OTel concepts focused #3815
Replies: 4 comments
-
Hey @markmandel, thank you very much for sharing your journey with our docs. While it hurts reading some of what you wrote, you are spot on and we are well aware of most of the issues you called out. Let me try to address some of them here, but before going into that let me put a few things upfront:
Again, I appreciate your feedback, I just wanted to fill in the context, now on some of your individual points:
The migration guides (living in the spec) have been created in April and we announced sunsetting OpenCensus in May, so you might find some more help here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/opencensus.md
It looks like we need to make it more obvious that going through the "Getting Started" (for Devs & Ops) is the way to go if you want to take action
Oh... that shouldn't happen.
We went back and forth with that and still didn't hit the nail apparently 😆 ... Looks like we need to rework that.
Looks like we need some concept pages for these as well. From there on, let me comment on the Go docs: Metrics for go are in the process of becoming stable (see here for more details https://github.com/orgs/open-telemetry/projects/34 and check in with the go community). As outlined before this is a common pattern across the documentation ( I don't call it "problem" or "issue" on purpose, since it's just a matter of fact that OpenTelemetry is graduating and that means that some things are just not there yet) See our docs also on that point: https://opentelemetry.io/docs/instrumentation/go/manual/#creating-metrics
I do not disagree with that, only can point out the reasons as I have done above
For sure a place we can learn from (or even copy over some existing content)
The "Getting Started" / Quickstart is focused around automatic instrumentation right now (for those languages that have one), where you get all of that in one shot (if available). For languages which do not have automatic instrumentation (which go is an instance of, although there is some auto instrumentation in the works), we have no consistent idea yet, but it will be probably one guide having all signals (traces, logs, metrics) done together.
Looking at the OpenCensus pages, this very closely looks like our concept pages on those topics (https://opentelemetry.io/docs/concepts/signals/) (minus SOME code examples in the OC docs, minus a bunch of docs that are just not there yet, e.g. for logs)
Your feedback is very useful. I reiterate that because I am very sure that some of my feedback on your feedback sounds defensive and not appreciative, so I apologies for that. |
Beta Was this translation helpful? Give feedback.
-
Yeah, I think there's two distinct problems here:
I think (1) is much more directly solvable. I think (2) could be tricker from an IA standpoint. Since we need to consider operator workflows there's no good single quickstart unless we divide it up by Developer/Operations. And even then, that stratification can be challenging because someone in an operations role may indeed also have to add instrumentation for a language. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the measured response and commentary!
Not at all! I think we're all on the same page here trying to get to a good place 👍🏻
This totally makes sense, and I figured it was what was going to happen 👍🏻
I totally get the impetus (and I've definitely done this myself! 😄 ) - what I feel would make things less generally confusing/frustrating (at least in the short term) as a new user is to be super clear on what is documented and isn't (particularly for each language) - ideally at a high level, to make choosing which navigation path to go down. I hate to keep using OC here 😄 but if I look at the Quickstarts for different languages: I can immediately see that C# doesn't have a quickstart for Metrics. While it may be ideal to have it long term, it short circuits any attempt to go into a Quickstart assuming that what I need might be there, since I know it's not. This could be done in the OTel docs as a structure of the top level nav of the Quickstarts (where I think you might end up eventually anyway?) a change to the titles ("Getting Started with Tracing"), and/or maybe even a header on each quickstart stating which area is being covered. So TL;DR: my recommendation -- just be super clear about what isn't documented as much as what is.
This is where I would come back to structuring by "what do I want to do?" - as an end user, I've no idea if I'm dev or ops -- but I do know what I want to do. Is it create a trace? Deploy some kind of collector / draw pretty graphs traces etc" - that's far easier for me to navigate than anything else. And to agree with your point, the lines between dev and ops blur all the time 😄 it's too hard to know which side someone thinks they are on at any given moment. |
Beta Was this translation helpful? Give feedback.
-
I don't think we can easily split out the "Getting Started" by Signal: for some languages you get all of them through the Getting Started in one shot (see Java for example). I also struggle with this because it would add yet another level into the documentation, bloating everything even more. I see your point that we need to do a better job on showing what is available in which language, we can think about a few ways on improving here, although this is a temporary issue as we hope to have traces, metrics & logs with all major languages done eventually: there is no reason for a language to not implement them all.
We are already giving you a set of things you want to do:
Have a look at the Java Docs, which are ones of the most complete ones here: https://opentelemetry.io/docs/instrumentation/java/manual/ The right site navigation bar gives you some of what you are looking for. Yes, we could improve things by splitting out sections into pages, but I am currently reluctant to do that, since it adds a LOT more complexity to the docs while things are so much in a flux right now. |
Beta Was this translation helpful? Give feedback.
-
Hi all,
To set some context, I work on (amongst other things) Agones, which has used OpenCensus in Go for a number of years, with the primary use case being Metrics (we don't really do trace right now). We have the understanding that we'll need to eventually move to OTel if we want to have a long term supported observability library.
First I want to preface this by recognising all the awesome work you do for OTel, so apolgies up front for being critical, but please know it's with the intent of improvement.
A while back (April) I looked at how to do the migration from Open Census, and I got really stuck on the onboarding process (especially compared to what I was previously used to with Open Census documentation). I ended up chatting with a few people at Kubecon EU about it, and rightly so - they suggested I provide some feedback here! So here I am.
The TL;DR I found is that I found that Open Census's documentation is focused around what I want to do (i.e. do I want to export metrics? Do I want to log something, do I want to implement tracing?), whereas it seems to me like OTel is focused around how does OTel work (what are the concepts, what is a collector, what is an exporter?), which for onboarding creates quite a large barrier to entry -- as I need to understand OTel before I can do anything, rather than learning how to do something, and using that as the vehicle to learn the underlying concepts.
I wrote this friction log back in April, so hopefully it's still relevant (looking at the docs, still seems to be the case), but this was the struggle I was finding, and eventually gave up on.
Use case: I want to create metrics in Go (language doesn't actually matter, but it's what i know best), and export it to Google Cloud Monitoring (Also doesn't quite matter here either), and I've never used OTel before.
prometheus
is usually used for metrics, so let's see what's in there! (https://github.com/open-telemetry/opentelemetry-go/blob/main/example/prometheus/main.go)To reiterate my hight level point: I found that the docs and onboarding process for Otel are written from the perspective of someone who knows what OTel is. It didn't seem to me to be written from the perspective of someone who has a user journey they are going on. This is where OC's docs where excellent -- they were user first, and that made them great for getting things done.
My strong suggestion would be to restructure the docs, into something that is close to what Open Census has:
etc etc.
Happy to discuss more, but wanted to pass the feedback on in hope that it's useful, and we can get more people (myself included!) onto OTel!
Beta Was this translation helpful? Give feedback.
All reactions