opentelemetry-specification icon indicating copy to clipboard operation
opentelemetry-specification copied to clipboard

[Project Tracking] Instrumentation Stability + Semantic Conventions Working Group

Open jsuereth opened this issue 3 years ago • 20 comments
trafficstars

Description

Solve the technical needs required for Semantic Conventions and Instrumentation Stability, as outlined in this proposal.

Project Board

Pending TC Approval & Sufficient staffing/momentum

Deliverables

At the highest level, the group will be delivering (or improving existing status-quo of) the following:

  • Telemetry Definition: Ensuring a common machine-readable format for defining signals produced in instrumentation, and associated tooling for human usage and development.
  • Telemetry Stability: Improving compatibility definition beyond just addition of signals and clarifying x-signal compatibility of attributes for Resource, Instrumentation Scope and
  • Telemetry Evolution: Expanding existing telemetry schema features and unifying with Definition/Stability work.
  • Semantic Conventions: Outlining a repeatable process for marking semantic conventions as stable that allows domain experts to drive key decision.

See the proposal for details

Staffing / Help Wanted

This project is currently in proposal mode. We'd like to leverage this issue to advertise and attract interested parties.

Required staffing

Projects cannot be started until they the following participants have been identified:

  • @jsuereth Project Lead (+ TC member)
  • @reyang Second TC sponsor
  • @tigrannajaryan schema-file change reviewer / contributor
  • Need: Signal experts (metrics/logs/traces) willing to work on data-model + signal compatibility
  • Need: Engineers willing to write prototypes / work on tooling
    • Semconv buid-tools:
      • RST/MD docgen
      • Jinja / code-gen (x-language)
      • Go / OTel Collector code-gen
      • Integration w/ language build tooling
  • @lmolkova signal expert + tooling contributor
  • @Mpdreamz signal expert + tooling contributor
  • @trask java codegen contributor
  • Maintainers willing to approve prototypes
    • @cijothomas .NET Maintainer + Prototype approver
    • @lalitb C++ Maintainer + Prototype approver
    • @lzchen Python Maintainer + Prototype approver
    • @MSNev JavaScript Approver

Meeting Times

Once a project is started, the working group should meet regularly for discussion. These meeting times should be posted on the OpenTelemetry public calendar.

Timeline

This project is feature-driven vs. time driven. However, given the press of semantic convention CLs, an improvement on telemetry stability + definition are needed within 2022. Additionally, any timeline will need to reflect overall staffing + interest across the community. An aggressively optimistic road map:

  • 2022 Q4
    • Improve specification around telemetry stability, focusing on x-signal issues.
    • A unified telemetry definition format with documentation + codegen tools.
  • 2023 Q1
    • Unification of Telemetry Schema + Telemetry definition
    • First semantic convention marked stable
  • 2023 Q2
    • Expansion of Telemetry Evolution
    • Repeatable process for semantic convention definitions
    • Incremental improvements to build tools

Labels

We propose to repurpose existing labels in addition to adding two more:

  • area:semantic-conventions: This now denotes expert working group issues around defining semantic conventions (the process, not the tooling). Additionally, this is (and should continue) to be used in tandem with "semconv:expert-area" labels.
  • area:telemetry-tooling: Issues and request around the semconv codegen or docgen and related tooling (go's own build-tool, e.g) belong here or directly in the appropriate repository.
  • area:telemetry-stability: This denotes issues and concerns around defining telemetry-schema, available migrations, the metadata format for specifying telemetry, etc.

The later two labels would be the immediate focus of this project and working group.

Linked Issues and PRs

Blocked

  • Client Instrumentation Project: #2734 and related efforts.
  • #1497
  • https://github.com/open-telemetry/oteps/pull/199
  • #2606

Unresolved issues to tackle by this project

  • #2719
  • #2687
  • #2682
  • #2666
  • #2610
  • #2488
  • #2475
  • #2397
  • #2176
  • #2077
  • #2001
  • #1504
  • #1367
  • #1084
  • #1003
  • #855
  • #705
  • #653
  • #585
  • #583
  • #376

TODO(jsuereth): Attach relevant tooling/semconv/stability PRs

jsuereth avatar Aug 26 '22 12:08 jsuereth

@open-telemetry/instr-wg FYI.

tigrannajaryan avatar Aug 26 '22 15:08 tigrannajaryan

@jsuereth An OTEP that is probably relevant to be in the Linked Issues list: https://github.com/open-telemetry/oteps/pull/199

tigrannajaryan avatar Aug 26 '22 15:08 tigrannajaryan

This is another relevant issue:

  • [ ] #2606

lmolkova avatar Aug 26 '22 16:08 lmolkova

I'd love to help with

  • data-model + signal compatibility
  • Semconv buid-tools

lmolkova avatar Aug 26 '22 16:08 lmolkova

Thanks @lmolkova!!! I've added you to the staffing section.

jsuereth avatar Aug 26 '22 17:08 jsuereth

I am a maintainer for .NET SIG, and can sign up for reviewing any prototypes in .NET.

cijothomas avatar Aug 26 '22 17:08 cijothomas

I am a maintainer for .NET SIG, and can sign up for reviewing any prototypes in .NET.

Slight correcting : As maintainer, I am anyway expected to review all PRs. What I meant to say is - I can prioritize reviewing any PRs directly contributing towards Semantic Convention/Instrumentation stability

cijothomas avatar Aug 26 '22 17:08 cijothomas

Thanks @cijothomas !!! added.

jsuereth avatar Aug 26 '22 17:08 jsuereth

I'd like to help/continue working on Schema File related stuff. I am not sure how much time I can allocate to this, but at least I want to review all relevant PRs, even if I cannot submit them myself.

tigrannajaryan avatar Aug 26 '22 17:08 tigrannajaryan

I've put myself as the Second TC Sponsor and assigned this issue to myself.

reyang avatar Aug 26 '22 17:08 reyang

@tigrannajaryan Understood. Added you as specifically interested in schema-files. Appreciate the caveat on time and definitely don't want you to deviate from your current responsibilities here.

@reyang Thanks much for signing up as sponsor!

jsuereth avatar Aug 26 '22 17:08 jsuereth

I'd love to be involved with this and can sign up to write any codegen targeting Java (whether the codegen itself is written in Java or not)

trask avatar Aug 26 '22 18:08 trask

I am a Python maintainer and would be interested in reviewing prototypes in Python.

lzchen avatar Aug 26 '22 19:08 lzchen

I can sign up as well, I'm a JS approver and a JS Web sandbox Maintainer and a member of the Client RUM Sig

MSNev avatar Aug 26 '22 22:08 MSNev

I am a C++ maintainer, and if it helps, I can be a member to review/approve prototypes in C++.

lalitb avatar Aug 26 '22 22:08 lalitb

I can sign up as well for the following parts:

  • Signal experts (metrics/logs/traces) willing to work on data-model + signal compatibility

Especially in the context of https://github.com/open-telemetry/oteps/pull/199 can help with classification of which fields work well for different types signals and backends

  • Engineers willing to write prototypes / work on tooling

I've lead similar specification work to drive codegen @ Elastic, can definitely help scope efforts. Most likely won't have time to actually put my hands on the keyboard to spin out a prototype though.

Mpdreamz avatar Sep 08 '22 13:09 Mpdreamz

@Mpdreamz thanks! I've updated the issue description by adding your name. Which programming language would you prefer for prototyping?

reyang avatar Sep 08 '22 17:09 reyang

Thanks to all folks who are interested. Please fill out this doodle of your preferred meeting time, ideally before friday as I'll be scheduling our first WG call next week.

Note: We are only selecting the timeslot not the specific date. The goal is for this meeting to happen every other week until the task list is complete.

jsuereth avatar Sep 14 '22 13:09 jsuereth

I'm currently working to develop some go receivers and have prior experience with jinja+python, would love to join the committee.

hughesjj avatar Sep 14 '22 21:09 hughesjj

For folks working on semantic conventions. Here's a set of guidelines for avoiding what we expect are breaking changes:

  • Attributes defined for traces/logs that may be shared w/ metrics will likely have cardinality restrictions applied to them going forward.
  • Attributes/Resource definitions will likely be rejected until we have better refinement on Resource/Entity (see #2775)
  • Metrics definitions that mirror existing structure a likely to be ok (i.e. the report against a similar resource as today, the have similar labels). There may be changes to what RESOURCE a metric reports against going forward.
  • There may be some changes that occur to match (or have simple mapping to/from) elastic common schema. This is less likely to affect metrics, but may affect traces/logs/event semantics.
  • At some point, uniformity / machine-readable format will be required for all semantic conventions for all signals. Any table for metric/logs should match existing structure or update ALL tables with new fields + justification of the new field. Be warned, this means additional scrutiny and may be worth discussing separately from the semconv change itself.

jsuereth avatar Sep 27 '22 15:09 jsuereth

Hi experts, could anyone share the latest updates on this project please? My team is waiting for the official version of instrumentation libraries to unblock roll out to production. Thanks!

lsl-2020 avatar Nov 07 '22 01:11 lsl-2020

I can join the effort as a code owner of the collector metrics metadata format and the metrics builder:

Go / OTel Collector code-gen

BTW I recently proposed guidelines and stability guarantees for that part of the collector, in case anyone is interested: https://github.com/open-telemetry/opentelemetry-collector/pull/6358

dmitryax avatar Nov 07 '22 20:11 dmitryax

@lsl-2020 you can check the meeting notes to see what was discussed in the last meeting: https://docs.google.com/document/d/10xG7DNKWRhxNmFGt3yYd3980a9uwS8lMl2LvQL3VNK8/edit

joaopgrassi avatar Nov 08 '22 12:11 joaopgrassi

Closed as no longer relevant due to refactoring of semconv SIGs

austinlparker avatar Apr 23 '24 20:04 austinlparker