Skip to content

[Donation Proposal]: Dart SDK and API for OpenTelemetry #2718

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

Open
michaelbushe opened this issue May 6, 2025 · 23 comments
Open

[Donation Proposal]: Dart SDK and API for OpenTelemetry #2718

michaelbushe opened this issue May 6, 2025 · 23 comments
Labels
area/donation Donation Proposal

Comments

@michaelbushe
Copy link

michaelbushe commented May 6, 2025

Description

The donation consists of two closely-related Dart packages now published on pub.dev:
dartastic_opentelemetry – a full OpenTelemetry SDK for Dart that implements all MUST, SHOULD and most MAY requirements of the specification (traces ✓, metrics ✓, logs coming).
dartastic_opentelemetry_api – the stand-alone OpenTelemetry API for Dart, providing the specification-mandated no-op behaviour when an SDK is absent.

Together they deliver cross-platform OpenTelemetry support for servers, desktop, mobile, and (soon) web/wasm.
Both packages are released under the Apache 2.0 license, come with extensive unit-tests, protobuf stubs generated from the canonical OTLP definitions, and exporters for OTLP/gRPC and OTLP/HTTP.

We separated the API and SDK in two repositories for strictness. If the GC wishes to merge them into one, we are willing to do so.

Benefits to the OpenTelemetry community

This contribution fills in the only remaining language gap – Dart is the last top-15 language without an officially maintained OTel SDK; this donation brings parity with other ecosystems.

Moreover, Flutter, written in Dart, is the most popular cross-platform application development platform. This contribution covers only Dart. We will separately contribute a Flutter OTel SDK, which applies the Dart OTel SDK to Flutter applications, as we work on it's maturity and alignment with other OTel libraries for mobile development (Android, iOS). This contribution will aid Dart servers and pave the way to accelerates mobile & frontend coverage.

The contribution ensures spec compliance & governance – moving to the CNCF/OpenTelemetry org guarantees that future spec changes (e.g., Logs, Profiling) land quickly and consistently.

This contribution enables community growth – Dart and Flutter engineers can contribute under the same processes and CLA they already use for other OTel repos instead of an external project.

Reasons for donation

We are donating this Dart SDK:

  • To avoid fragmentation: keeping a core language implementation outside the org risks divergent APIs and hindered spec evolution. There are multiple abandoned or failed OTel libraries currently in pub.dev
  • To ensure long-term sustainability: CNCF governance, security processes, CI, and release automation provide guarantees a single-vendor repo cannot.
  • To enable wider contribution & review from the OTel language-SIGs and spec authors, ensuring interoperability, compatibility test inclusion, and registry listing.

We contributed after review and discussion with César Munoz who leads the development of Android OTel SDK.

Repository

https://github.com/MindfulSoftwareLLC/dartastic_opentelemetry

Existing usage

Dartastic is being evaluated by a handful of large enterprises mostly Elastic customers.

Maintenance

The author & current sole maintainer is Michael Bushe (GitHub @michaelbushe)
Michael's company, Mindful Software, will dedicate Michael's time.

Mindful Software has created Dartastic.io to help fund maintenance through subscriptions to early access packages, support, consulting, training and a SaaS offering of o11y backends customized for Flutter.

Dartastic OTel development is also supported by SEMplicity, Inc., the largest Elastic consultancy.

We commit to follow OpenTelemetry CONTRIBUTING.md, triage SLAs, and attend SIG-language meetings.

Licenses

Apache 2.0

Trademarks

  • “Dartastic” is an unregistered brand name of Mindful Software LLC; it is not a registered trademark. No transfer of trademark rights is required.
  • We are willing to rename the packages to opentelemetry/opentelemetry_dart or opentelemetry/opentelemetry_api on pub.dev if the stale or abandoned placeholder package can be reassigned. We ask for GC guidance on this issue.
  • We make no claim over the “OpenTelemetry” mark and will follow CNCF trademark policy.

Other notes

Though quite useful, this package is not 1.0 yet and there are holes we need to fill, like Zipkin. Logs are not implemented yet.

@austinlparker
Copy link
Member

Thanks for opening this issue! Question - are you familiar with https://github.com/Workiva/opentelemetry-dart, and could you describe the differences between these implementations?

@alolita
Copy link
Member

alolita commented May 7, 2025

@michaelbushe Thanks for your interest in OTel. Can you share more details what your community looks like for this library?

@michaelbushe
Copy link
Author

michaelbushe commented May 7, 2025

Thanks for opening this issue! Question - are you familiar with https://github.com/Workiva/opentelemetry-dart, and could you describe the differences between these implementations?

I am familiar. I was asked by a client - SEMPlicity, Inc, the largest Elastic consultancy - to write an agent for one of Elastic's large clients. I started to use the Workiva implementation. I noticed right away it didn't support gRPC and then noticed someone had contributed the implementation 7 months prior and it was left hanging. In fact the lead said there was no planned support for gRPC. That's pretty glaring, IMO, gPRC is not only the default but far more performant and that costs customers money and end users bandwidth. For other reasons as well , it seemed to me that the project couldn't be relied on, in fact there other forks of it, abandoned, in pub.dev. Also, real customers gave feedback that they were wary about using Workiva due to quality concerns.

Given that experience, I pitched to SEMplicity to make the Dartastic OTel SDK. My work is cleanroom and didn't rely on Workiva's though I might go back and review what they have to see if it has techniques that can improve Dartastic (like accurate web timestamps but I think Dartastic is ok).

I can't give you a rundown of all the differences but if you would like to see that, I can investigate that and report. At a minimum Dartastic implements gRPC and Workiva does not. I also noticed they didn't have proper separation between API and SDK and had some classes in the wrong layers, though I think some of that has been corrected.

There's also some niceties in Dartastic that I'm sure they didn't implement :

  • factories at each level (API, SDK, Flutter) that allow implementation overrides to create a pluggable and extendable SDK.
  • Semantic constants to reduce reliance on strings.
  • Dart idioms that would not be found in other OTel libs - copyWith's, Attributes.of({'foo': 'bar', 'baz': 42})'s.
  • intelligent defaults for service name, versions

@michaelbushe
Copy link
Author

michaelbushe commented May 7, 2025

@michaelbushe Thanks for your interest in OTel. Can you share more details what your community looks like for this library?

This is a joint venture with SEMplicity, Inc. which will grow the community through the Elastic network (sales). SEMplicity already has 4 very large enterprises - in telcom and healthcare - that are evaluating it or have said they would. SEMplicity is working with Elastic and is in the process of making a EDOT - an Elastic Distribution of a wrapper OTel library, which is how they distribute and support all the other OTel libs.

I also expect to grow the community through Dartastic.io which will offer:

  • early access to-be-open-source libraries, mainly Flutterrific OTel that applies the Dart SDK to Flutter and a nifty demo where I instrumented the popular Flutter Wondrous app. early access to integrations with popular Flutter libraries before they are open sources) and later, private libraries for native integrations (planned down the road).
  • A Saas OTel backend with the choice of Grafana on a multitenant system at the Pro subscriber level and Elastic through SEMplicity, at the Enterprise level and, down the road, other backends. These backends will have dashboards that show the Flutter-specific metrics and conveniences to turn production errors into stack traces with code via uploaded symbol files (iOS, Android) & source_maps (Web), reducing MTTR and integrating with Dart CI/CDs.

I'm expecting to make instructional videos and present at conferences and Flutter Meetups, etc.

I'm a big believer in Flutter + OTel and expect to make this popular in a community that knows very little about it and has only proprietary services today (Sentry.io, mostly, also DataDog, others).

I greatly look forward to working with the developer community, working with issues inclusively, handling issues and PRs with high quality code and communication. I didn't build in the open at first because there's already a spec and getting my own mind around and flushing out my own idea was productive and I believe had a good outcome. As a lifelong meditator and Yogi, I don't hold onto ideas tightly and I am expecting significant changes as more developers get their hands on the SDK and provide feedback.

I'm expecting to build a big community and am hoping this is my last job, I have ten years or so until retirement.  😂🙏🏼

@trask
Copy link
Member

trask commented May 8, 2025

hi @michaelbushe, thanks for opening this issue!

not necessarily relevant to this proposal, but I did want to make a correction since I've seen this come up elsewhere

gPRC is not only the default but far more performant

The default transport protocol (at least in the specification) is http/protobuf (not grpc), and the grpc protocol is not more performant compared to the http/protobuf protocol.

@austinlparker
Copy link
Member

Thanks for opening this issue! Question - are you familiar with https://github.com/Workiva/opentelemetry-dart, and could you describe the differences between these implementations?

I am familiar. I was asked by a client - SEMPlicity, Inc, the largest Elastic consultancy - to write an agent for one of Elastic's large clients. I started to use the Workiva implementation. I noticed right away it didn't support gRPC and then noticed someone had contributed the implementation 7 months prior and it was left hanging. In fact the lead said there was no planned support for gRPC. That's pretty glaring, IMO, gPRC is not only the default but far more performant and that costs customers money and end users bandwidth. For other reasons as well , it seemed to me that the project couldn't be relied on, in fact there other forks of it, abandoned, in pub.dev. Also, real customers gave feedback that they were wary about using Workiva due to quality concerns.

Given that experience, I pitched to SEMplicity to make the Dartastic OTel SDK. My work is cleanroom and didn't rely on Workiva's though I might go back and review what they have to see if it has techniques that can improve Dartastic (like accurate web timestamps but I think Dartastic is ok).

I can't give you a rundown of all the differences but if you would like to see that, I can investigate that and report. At a minimum Dartastic implements gRPC and Workiva does not. I also noticed they didn't have proper separation between API and SDK and had some classes in the wrong layers, though I think some of that has been corrected.

There's also some niceties in Dartastic that I'm sure they didn't implement :

  • factories at each level (API, SDK, Flutter) that allow implementation overrides to create a pluggable and extendable SDK.
  • Semantic constants to reduce reliance on strings.
  • Dart idioms that would not be found in other OTel libs - copyWith's, Attributes.of({'foo': 'bar', 'baz': 42})'s.
  • intelligent defaults for service name, versions

Thanks for your response. I do concur that there appear to be several other opentelemetry libraries on pub.dev that aren't maintained, but the Workiva one does appear to be maintained and has an active user base. When investigating their GitHub, I didn't see any comments or issues from users about donating the library or other sort of governance-related things, although since it appears to be solely maintained by workiva, perhaps they don't have public meetings.

We've certainly fielded requests for an upstream Dart API/SDK implementation over the years, but given that there's an existing community implementation, it'd be nice if we could align these efforts somehow.

@michaelbushe
Copy link
Author

hi @michaelbushe, thanks for opening this issue!

not necessarily relevant to this proposal, but I did want to make a correction since I've seen this come up elsewhere

gPRC is not only the default but far more performant

The default transport protocol (at least in the specification) is http/protobuf (not grpc), and the grpc protocol is not more performant compared to the http/protobuf protocol.

It appears I have some defaults to change, thank you. Makes sense due to the universal availability.

Perhaps from the collector's view HTTP is faster but from the client view latency and bandwidth are better with gRPC?

@tigrannajaryan
Copy link
Member

Perhaps from the collector's view HTTP is faster but from the client view latency and bandwidth are better with gRPC?

IIRC, the OTLP benchmarks we did have shown that gRPC Unary has more overhead than plain HTTP due to extra operations to establish gRPC streams over which unary requests are sent. The difference is more visible for tiny payloads, anything largish is likely going to see negligible differences.

This was a few years ago, the latest implementations may exhibit a different performance characteristic.

@michaelbushe
Copy link
Author

michaelbushe commented May 8, 2025

I created an issue in the Workiva project that asks about their plans for donation:
Plans to donate to OpenTelemetry?

@StephenWithPH
Copy link

To the extent that this new implementation has more features and more responsive maintenance, it will be quite compelling to me as an OTEL user (in other languages) and an OTEL needer in Dart.


I created an issue in the Workiva project that asks about their plans for donation:

If possible, it would be a very nice outcome to end in a place where the OpenTelemetry-endorsed Dart OTEL implementation lives on pub.dev at opentelemetry:

Image

Today, Workiva's package is the closest thing to a de-facto incumbent.

Having said that, I sympathize with the fact that Workiva has a business to run, but there are telemetry features that would be very nice to see land! For example: Workiva/opentelemetry-dart#146 .

With regards some of the stale PRs (gRPC, proto), Workiva was handicapped by the Google-maintained Dart protobuf library; their 4.0 release roughly six weeks ago finally dropped support for Dart < 3; Workiva took that update fairly soon after.

I've been watching (and hoping) it would unblock Workiva in their library; Google's handling of Dart protobuf is a source of frustration in the Dart community.

@svrnm
Copy link
Member

svrnm commented May 9, 2025

To link them here are previous discussions on dart:

@svrnm
Copy link
Member

svrnm commented May 9, 2025

I'm expecting to build a big community and am hoping this is my last job, I have ten years or so until retirement. 😂🙏🏼

It's great to read that you are invested into this project and are willing to spend significant time into it. Besides the technical questions, the community question is the one that carries the most risk: right now this donation comes with 1 maintainer from 1 organization (=you). Based on prior experience with SIGs/donations that didn't work out because of a low amount of contributors, or being mainly driven by one company, we need to up those numbers, that's another reason why we ask about other implementations!

It would be great to see more people & organizations to rally around this effort before we go into the donation process.

@michaelbushe
Copy link
Author

Thank you. I appreciate the concern with single-maintainer donations.

This donation is backed by a partnership between three organizations:
1. Elastic
2. SEMplicitly, Inc., the largest Elastic consultancy, actively involved in supporting Dartastic for enterprise clients.
3. Mindful Software, my independent consultancy, which developed and supports Dartastic and is supported by Elastic and SEMplicity.

Dartastic.io will also support the ecosystem through paid subscriptions for early access, support, consulting, and training.

While I am currently the primary maintainer, these partners are invested in supporting its adoption and growth. Additionally, several large enterprises in healthcare and telecom are evaluating the SDK already.

As noted in the issue you referenced earlier #552, the real need is a Flutter SDK - given that over 95% of Dart usage is in Flutter. To that end, I’ve also built a Flutter-specific SDK (Flutterrific OTel), which I intend to donate after further maturing it.

Workiva's SDK does not integrate with Flutter per se, that's left to implementers.

Flutter creates apps for, and integrates with, iOS, Android, Web, and Desktop clients for Linux, Windows and Mac. A Flutter SDK in the OpenTelemetry family can drive consistency across OpenTelemetry client libraries in semantics and behavior across Android, iOS, browsers and desktop apps.

We will cultivating our community through:
- Providing a compelling Flutter SDK that nearly auto-instruments Flutter apps.
- Providing Flutter-specific OTel backends integrations - dashboards, error symbolization - that we expect to drive adoption.
- Building OTel integrations for Flutter packages (networking like Dio, routers like GoRouter & auto_router, etc.).
- Active outreach at Flutter meetups and conferences.
- Collaboration with Elastic and SEMplicity's enterprise users who can contribute feedback, issues, and possibly code.
- Public issue management
- Onboarding and mentoring new contributors.

@svrnm
Copy link
Member

svrnm commented May 9, 2025

This donation is backed by a partnership between three organizations:

Can you elaborate on that? How many contributors will each of those organizations involve into the project? Ideally, can you ask them to come here and let us know about their commitment themselves and how it will look like?

Dartastic.io will also support the ecosystem through paid subscriptions for early access, support, consulting, and training.

Can you elaborate on the early access part? Assuming this donation is going to be accepted, would this mean that there will be an off-community version that will be ahead of the development that is going to happen in the public?

@michaelbushe
Copy link
Author

Thank you for your time and questions.

George Boitano, SEMplicity's owner, told me yesterday he will comment on this thread.

I'm still the only contributor but we are just getting started. Of course I hope to attract many developers who can contribute to the project.

I'm aware of the monkey business that some companies have made with their OpenSource. I have a strong commitment to free and open source software and I will never waiver from it.

As I understand it, the way Elastic works is that they fork and wrap all OTel libraries to support their customers. The distros are called EDOTs (Elastic Distributions of OTel).

When Elastic comes to Mindful Software (=me and a team I build) for support, I'll work on the publicly available donated OTel project, out in the open and will review issues with the OTel community. Elastic will need to maintain their own fork from the public project(s).

Early access works like so:
I worked hard to make a solid Dart API & SDK and have it well tested (87% coverage). I didn't release it until it was good quality and had some outside validation. My view is that if I released it earlier, it would have been messy for others and a drag on delivery.

Now that the Dart API & SDK are in public, they stay there. There's no early access for the Dart SDK. All work will be done in the github project.

The Flutter SDK, which is a separate project that depends on the Dart SDK, is not yet publicly available simply because the quality isn't up to par. I expect it to be available in 1 or 2 months. I want to keep it under wraps because there's going to be churn, it's not well-tested, and there are big deviances to other OTel libraries - especially since I use short-lived spans for UIs (spans are supposed to be short-lived, says the docs) but other UI libraries use long-lived spans. These are problematic since, unlike servers, a user can flick away a mobile app leaving spans unended, which I understand is not good for backends, and which I had poor results with when I initially tried that route. It's Apache 2.0 so I can provide it if anyone wants it.

Once the Flutter SDK is stable, I will also donate it here. Likewise, that's when early access ends for the Flutter SDK. I also have a nifty demo, Wondrous OTel, where I forked and instrumented Wondrous. That will be open sourced at the same time (I don't think a donation is warranted for the demo.)

Other libraries will take the same route. Dart encourages lots of small packages and we will have many packages to integrate with popular Flutter libraries. Perhaps I will just build them out in the open, especially if the community grows quickly. My current plan is to start them privately in the same manner and then release. It's a personal flavor - I think the best work is done spending a long time in a quiet room. I also like to grok a problem by myself. I think the best aspects of the Dartastic SDKs might not have happened in committee.

Early access is a very minor part of this project and I'm willing to take feedback and adjust accordingly.

@gboitano
Copy link

gboitano commented May 9, 2025

As requested, I'll briefly provide an overview of our company and our Dartastic roadmap.

I am the founder of SEMplicity. We are a ~20-person consultancy started in 2009. We do a lot of work for enterprise observability and security customers. Elastic is our primary technology partner today. We are funding development of this project to meet the requests of several large enterprises for Dart/Flutter application monitoring. We have additional developers and support personnel we plan to allocate to this project as it gains momentum. Specifically, we plan to allocate at least one developer and one or two support engineers to this project over the next three months. If adoption is faster than anticipated, we have additional resources available.

We are completely committed to a true open source model. To fund and scale this project, we plan to:

  • offer paid support, at several different tiers, to direct clients and partners who need it;
  • create a cloud-based managed observability service. This service will offer high-level application monitoring content derived from the data provided by this project, such as machine learning anomaly detection, visualizations, alerting, etc.
  • offer professional services to help clients implement, customize, enhance and integrate.

Central to our current plans for quick adoption is Elastic, who is providing us with access to interested clients; as well as invaluable design advice and feedback.; etc. We also plan to promote our project, jointly with Mindful Software, directly to the larger otel community.

I hope this post was helpful. Of course, please ask additional questions.

@svrnm svrnm added the area/donation Donation Proposal label May 12, 2025
@pellared
Copy link
Member

pellared commented May 12, 2025

I created an issue in the Workiva project that asks about their plans for donation: Plans to donate to OpenTelemetry?

@michaelbushe, would you mind adding a bit more context to the issue description? Right now, it’s quite brief, and including some background, such as why this issue is created, would help others understand the motivation behind it. That context could make it easier for the maintainers to respond effectively.

We are completely committed to a true open source model.

Have you considered contributing to https://github.com/Workiva/opentelemetry-dart?

In fact the lead said there was no planned support for gRPC.

In open-source it is not anything surprising and wrong. I would say even the opposite - it is better to be assertive than accept any feature. See Best Practices for Maintainers: Learning to say no. For me, the fact, the maintainer transparently communicates their plan shows that they they honor the open source model and best practices.

@michaelbushe
Copy link
Author

@michaelbushe, would you mind adding a bit more context to the issue description? Right now, it’s quite brief, and including some background, such as why this issue is created, would help others understand the motivation behind it. That context could make it easier for the maintainers to respond effectively.

@pellared Thank you for the feedback. I'm not sure what you are looking for but am happy to add whatever is helpful.
I just added: "We contributed after review and discussion with César Munoz who leads the development of Android OTel SDK."
I copied Cesar's donation issue for Android and, minus his diagram, this donation description is longer.
I think the main benefits is:

  • it plugs the hole for Dart
  • It helps to coordinate behavior and semantics across client platforms - Flutter, JS, Android, iOS

Have you considered contributing to https://github.com/Workiva/opentelemetry-dart?

Yes, my first take was to use and contribute to Workiva's implementation. I've used other Workiva packages and found them useful so I expected their OTel to be solid.

I'm not a fan of "Not Invented Here" and I don't take "implement a spec" lightly. We were just trying to help some clients in the easiest and quickest manner possible. We took the long road after careful evaluation.

Workiva's SDK doesn't look trustworthy and perhaps the project is dying or near dead. Let me back that up:

After reviewing the code and the issues carefully and looking at the responsiveness of the maintainers, my senses was that it wasn't something heavily invested in, or if it was, it was not openly invested in. I invite you to check out their issues list and see for yourselves. I looked into it started 6 months ago and it's only gotten worse.

Summary of their issues:

  • There are only 2 issues in 2025 - neither have been responded to:
    • May 8, Mine: Plans to donate to OpenTelemetry - there's no response and to be frank, that's what I expected.
    • Mar 6: A common complaint about no root span that did not get a response from the maintainers. The only response was someone saying that they are stuck on the previous version from a year ago.
  • There are only 8 issues in the second half of 2024, only 3 responses from maintainers, nothing was solved.

If you look at issue comments, you'll see people are consistently stuck using a version that's over a year old.

Is Workiva playing nicely? Are they even playing anymore? Does you agree that it seems to be near dead or at least not well-maintained?

The feedback we got from customers and the Flutter community was that they didn't trust the Workiva project and had issues trying to use it. We have a few major clients that all looked at or used Workiva's SDK and dropped it. I haven't talked to anyone who said they were happy with it. There are lots of dead forks as well.

I see that comments on this thread are consistently mentioning Workiva's work. Are they working with customers that are happy with it?

We decided that Workiva's SDK was too risky for our customers to rely on, that's why we took the leap and started Dartastic.

Flutter devs need OTel now, Workiva's Dart OTel looks like a dead parrot, or at least a dying one. Moreover, it's only Dart, it doesn't touch Flutter. The hard OTel work on the client happens where client app meets the SDK road. This work should be discussed with the OTel client SIG and consistent across implementations. Dartastic has and will donate a Flutter SDK and work with the Client SIG to encourage consistency across all platforms.

In fact the lead said there was no planned support for gRPC.

In open-source it is not anything surprising and wrong. I would say even the opposite - it is better to be assertive than accept any feature. See Best Practices for Maintainers: Learning to say no. For me, the fact, the maintainer transparently communicates their plan shows that they they honor the open source model and best practices.

Agreed. It was surprising to me when I thought gRPC was the default but I was wrong about that, as I mentioned later in this thread. Yes, reducing complexity is critical for success for any software. It's no longer surprising to me, in multiple ways, that Workiva didn't implement gRPC, even after it was donated to them.

Still, gRPC is in the spec and Dartastic supports both http and gRPC. 😀 One goal of Dartastic is to implement all the OTel spec including all optional components and for Traces and Metrics, it does today.

Please let me know how I can add to the description to improve. Should I call out the problems with Workiva's SDK in the description?

Thank you again. 🙏🏼

@pellared
Copy link
Member

pellared commented May 12, 2025

@michaelbushe, I meant adding descriptions here: Workiva/opentelemetry-dart#221 😉

@michaelbushe
Copy link
Author

@michaelbushe, I meant adding descriptionsl here: Workiva/opentelemetry-dart#221 😉

😂😂😂 on it!

@mtwo
Copy link
Member

mtwo commented May 13, 2025

@michaelbushe in parallel to the discussion here, do you want to add your existing repository to the OpenTelemetry registry on the website? If this project gets merged into the OpenTelemetry GitHub organization then we can update the link!

@trask
Copy link
Member

trask commented May 21, 2025

hi @michaelbushe, we discussed this in the Governance Committee meeting today, and we are generally supportive of adding a Dart SIG. We would like to see the SIG staffing issue addressed before we move forward with the donation proposal, specifically we would like to see that it will have 3 maintainers who have the time and expertise to drive it forward (and ideally some additional approvers), from at least 2 different sponsoring entities (not only Elastic).

@michaelbushe
Copy link
Author

@trask Thank you to the committee for their support of Dart and this donation.
Though Dart on the server is growing, 95% of Dart code is for written for Flutter client apps for mobile, desktop and the browser.

I recently made public (unannounced) the Flutterrific OpenTelemetry SDK and am preparing it for donation to the CNCF. We debated whether we should include Flutter it in this donation or make a separate donation for Dart.

Releasing Flutterrific OTel covers 95% of use case and makes my recruiting 95% easier.

Flutterrific OTel builds on the Dart OTel SDK, similar to how the Android OTel SDK builds on the Java OTel SDK. Though Flutterrific OTel is not as mature as the Dart SDK, it's better to get early feedback on Flutterrific OTel since OpenTelemetry on the client is still not well specified, especially across client platforms. Flutter lives on top of and embedded alongside its many platforms - web, iOS, Android, Linux, Win & Mac. Consistent OTel for many Flutter apps will rely on the underlying consistency of OTel on all clients.

I have been looking forward to working with the Client SIG to standardize the way OTel works across clients. A cross-platform client knowledge is good for the Client SIG.

Dart OTel has it's own concerns from Flutter. It's very much like Java or Android and is built for servers. One major difference between server OTel and client OTel is the use of long-running spans. The server-oriented OTel spec recommends spans be kept short but the client implementations keep child spans open for as a long as a page is open or as long as a user has a session.

Please advise on how we can best fit in Flutter. I recommend, if it's not to onerous:

  • Flutterrific OTel is rolled into this donation proposal.
  • We make a Dart & Flutter SIG, since the vast majority of the interest in Dart will be from Flutter developers. The Dart and Flutter SIG will collaborate with the Client SIG for cross-platform consistency.

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

No branches or pull requests

10 participants