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

Ruby Developer Experience Survey #14

Open
dmathieu opened this issue Sep 11, 2024 · 2 comments
Open

Ruby Developer Experience Survey #14

dmathieu opened this issue Sep 11, 2024 · 2 comments

Comments

@dmathieu
Copy link
Member

  • differences from upstream spec:
    • discrepancies - why?
    • extra convenience
  • most requested features
    • API
    • SDK
    • Instrumentations/semantic conventions
  • things to consider from other telemetry projects
@dmathieu
Copy link
Member Author

Discussion in the ruby repository: open-telemetry/opentelemetry-ruby#1726

@dmathieu
Copy link
Member Author

So far, we got feedback from one maintainer.
The full feedback is available here.

  1. Differences from upstream spec:

    • discrepancies - why?
      1. MetricsReporter: This was created before the metrics specification was stable. People needed BatchSpanProcessor metrics ahead of time. This was intended to be a stopgap and might go away once the MetricsSDK/API are stable. However, I don’t know if we are supposed to use the MetricsSDK/API to monitor other parts of the OpenTelemetry SDK.
      2. Our end method is called finish because end is a keyword in Ruby
      3. We have an untraced method that skips tracing for the passed-in block. This allows us to use libraries that are instrumented and keep the OpenTelemetry operations out of the trace
        1. Note that this is based on similar functionality in the Javascript API+SDK. It is important to note that things like this in opentelemetry-common are not considered part of the API or SDK, so this doesn't represent a departure from the spec, even though the SDK depends on it: https://github.com/open-telemetry/opentelemetry-ruby/blob/4c9f7e1a942663856cade347d84cff67ac4f0c3d/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb#L139-L142
  2. Most requested features

    • Overall
      1. Ruby is behind on core signal implementation. Though we have in-progress, experimental support for metrics and logs, there’s still a ways to go before those signals reach stability. Our most requested features at this time are general metrics and logs stability.
      2. We’ve been focused on getting a basic level of logs and metrics support and haven’t kept up with all the changes in the tracing spec. There are likely many new/experimental features that Ruby doesn’t support.
    • Exporter
      1. We’ve had some requests for a grpc exporter. There’s an experimental one available, but it needs more testing before it will be ready for release.
    • Instrumentations/semantic conventions
      1. We are way out of date on semantic conventions. Our semantic conventions gem points to version 0.10.0. This trickles down to our instrumentation as well. We don’t have support for schema versions. Generally, we encourage instrumentation authors to look at the semantic conventions and use strings for attribute keys. However, we have improvements to the semantic conventions gem in progress. In addition, we also have work to implement the stability opt-in environment variable underway for HTTP semantic conventions, which may help move things along.
      2. A lot of our instrumentation is using old semantic conventions or created our own conventions when ones had not yet been established (like with GraphQL)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant