Skip to content
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

Standardize telemetry samples to go with instrumentation entries in the OTel registry #2441

Closed
punya opened this issue Mar 2, 2023 · 5 comments
Labels
discussion Input from everyone is helpful to drive this forward

Comments

@punya
Copy link
Member

punya commented Mar 2, 2023

As an end-user looking for instrumentation for my chosen language/library/tool, I want to quickly see a sample of the telemetry I'll get by adopting an OTel instrumentation library, so that I can evaluate whether it'll serve my obervability needs.

Today, to evaluate an instrumentation library I find in the registry, I need to

  1. follow the steps to add it to my application
  2. possibly set up: the OTel SDK, an exporter, a collector, and an observability backend
  3. exercise my application in a way that generates telemetry
  4. find the telemetry in my backend (without knowing exactly what to look for)

It would be great if the registry also provided a standard location and format for telemetry samples. Concretely,

  1. We'd add a samples field to the YAML files backing the registry.
  2. We'd index the content of the samples and link to them from the search result snippet.

Using https://github.com/open-telemetry/opentelemetry.io/blob/main/data/registry/instrumentation-go-grpc.yml as an example, this might look like

title: gRPC instrumentation
registryType: instrumentation
isThirdParty: false
language: go
tags:
  - go
  - instrumentation
  - grpc
repo: https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/google.golang.org/grpc
license: Apache 2.0
description: Go contrib plugin for Google's grpc package.
authors: OpenTelemetry Authors
otVersion: latest

samples:

- name: Trace attributes sample
  libraryVersion: 3.4.5
  scopeLabels:
  - key: key-name
    value: actual-value
    semconv: url of relevant semconv, if any
  spanLabels:
  - key: key-name
    value: actual-value
    semconv: url of relevant semconv, if any

- name: Metric attributes sample
  libraryVersion: 3.4.5
  scopeLabels:
  - key: key-name
    value: actual-value
    semconv: url of relevant semconv, if any
@punya
Copy link
Member Author

punya commented Mar 2, 2023

I'm happy to work on this or coordinate with others - I created the issue to get feedback on the idea.

@svrnm svrnm added the discussion Input from everyone is helpful to drive this forward label Mar 4, 2023
@svrnm
Copy link
Member

svrnm commented Mar 4, 2023

While I see and understand the value of such samples, my main concern is the maintainability of the same: there are a few hundred instrumentation libraries across all languages, steadily growing, so keeping them up-to-date beyond a name, description & link requires some regular maintanance. Is this something you are willing to take on?

@punya
Copy link
Member Author

punya commented Mar 6, 2023

I can't personally maintain the full set of samples. My hope was that:

  • including the version number of the instrumentation library would give users an indication of how much the most recent version might have diverged from it
  • the value of such samples would give instrumentation library maintainers an incentive to update samples

Do you have any suggestions for reducing scope so that these samples become easier to maintain?

@svrnm
Copy link
Member

svrnm commented Mar 13, 2023

I don't really see a way how to make this easy. We discussed making the registry better in different ways over the last few months and the scale of things is just a big blocker. Ideally people would have an appetite to keep their entries up-to-date themselves like they do it with other registries (npmjs, etc.), but as long as this is not the case, we need people do the heavy lifting

@svrnm
Copy link
Member

svrnm commented Oct 15, 2024

Closing this issue in favor of open-telemetry/community#2246, which may cover this as well

@svrnm svrnm closed this as completed Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Input from everyone is helpful to drive this forward
Projects
None yet
Development

No branches or pull requests

2 participants