I'm not the person you asked -- and I also want to be transparent that I only PoC-ed it and due to external circumstances didn't get it all the way out to production -- but I really like how https://github.com/metrico/qryn (AGPLv3) thinks about the world. It is, like SigNoz, unified (logs, metrics, traces) but it actually implements several of the common endpoint schemes allowing it to pretend to be "your favorite tool" which plausibly helps any integration story <https://github.com/metrico/qryn#%EF%B8%8F-query> and <https://github.com/metrico/qryn#-vendors-compatibility>. Had I gotten it up and running, I was going to contribute a Splunk ingest adapter since that was what we were trying to replace
I believe one could do that with SigNoz, too, so I don't mean to imply that trickery was qryn specific, just that I didn't want to get into the "constantly resizing io3 PVC" game
I took a quick look at this. Is SigNoz primarily for server observability? One thing I’ve used Sentry for a lot in the past is client-side logging – client-side JavaScript, native iOS, and native Android. SigNoz doesn’t do that as far as I can see?
I really appreciated the utilization of SigNoz in this process. The blend of Git's Trace2 with OpenTelemetry, further analyzed with SigNoz helps in the understanding of Git performance at scale.
This blog also provides a practical approach towards identifying and resolving performance bottlenecks in large codebases.
Companies like https://signoz.io/ are Opentelemetry native and have very transparent approach to predictable pricing. You can self host easily as well.
You should check out SigNoz (https://github.com/SigNoz/signoz) - It's an open source alternative to DataDog with metrics, traces and logs in a single application. You can just self host it yourself or try the hosted version.
PS: I am one of the maintainers at SigNoz
I can't work out why you wouldn't develop a native app anyway - all this scaffolding in a Web UI to imitate native controls (like menus) seems completely backwards to me. Seems just lazy, but in an odd way because writing native apps isn't rocket science or difficult.
It's not like they're implementing thousands of native controls or user interface components - a listview with an edit box at the bottom...
> It's not like they're implementing thousands of native controls or user interface components
This is not true in any way. Slack also have workspaces, channels, notifications, video calls, file sharing, admin tools and probably even more features. It's not just IRC.
Maybe writing a web-based app is lazy... except when you have to write native apps for macOS, Windows, Linux, Android, and iOS, and some people still need access via a browser. And each one has different ways of displaying images and videos and doing calls and handling file access. Now you have 5+ apps that you're maintaining, each with their own dedicated team since each one is unique. Want to roll out a new feature? Cool, now you have to write it 5 times across 5 teams. Good look coordinating that.
I know there are technologies that let you share code across all of the different native clients. But a webview wrapped in i.e. Electron handles most of it for you! Why would you do it any other way except to appease people who complain about bloat?
This is a bad argument that is factually incorrect in some ways.
Slack already has three different clients - a web one (which includes the Electron desktop wrappers), one for Android, and one for iOS.
They've already demonstrated that they have the engineering resources and coordination to develop and maintain three completely separate clients (albeit poorly) - so adding a fourth one (native C++ codebase using Qt that would work well on Windows, Mac, and Linux) would not be the Herculean engineering effort required to go from one to five, and your implicit assertions that (1) they currently only have a single client and (2) that a different client would be required for each of Windows, macOS, and Linux are simply false.
> But a webview wrapped in i.e. Electron handles most of it for you! Why would you do it any other way except to appease people who complain about bloat?
Because (1) performance (2) accessibility and (3) stability - the things that users actually need. Slack's performance is extremely bad and you get people constantly complaining about it; their accessibility is janky and suboptimal because they're reinventing desktop UI controls on the web; and their applications have repeatedly broken (such as the disastrous input box rewrite[1]) because they're trying to do things with the web platform that it wasn't meant to do. (in case you're wondering how using a desktop client would help - you expose a "lite" version of your functionality in the web application and put the full functionality in the desktop tool)
You're using "appease" as marketing-speak for "fix the very real problems with their web application that people constantly complain about". Slack should fix their application because it isn't serving the users well. Performance problems are functionality problems.
As it stands, Slack is showing us that they aren't even pretending to care about their users - they're just trying to make a buck selling to large organizations.
I am a fan of native apps but I do have to admit it is nice that slack is -exactly- the same on any platform you access it from and that will continue to be the case without any effort from their developers. Different ports of native apps invariably start drifting unless lots of care is taken to make sure they don’t, and that does not happen to always be a priority for companies.
This is true and a valid use case I think. Slack has abstracted enough of their UI to be re-usable cross platform that any re-write would likely be a regression.
Look at 1Password and the amount of shit they get on HN with the beta version. Rewrites are hard and they take a tooooooon of time to do correctly and require a lot of engineering work to keep the product consistent across platforms.
Do I wish that electron apps were better optimized? Yes, however, I also can accept the tradeoff for apps that need to work "everywhere".
For the most part, Slack works just fine. Their problems are less the UI/UX and more to do with infrastructure. Slack rewriting to a native app would have a tiny (if any) effect on these outages.
> I can't work out why you wouldn't develop a native app anyway
Really? One code base, one language, write features once. I think it's more about eng resourcing (headcount, onboarding, roadmap parity / feature drift, etc) than whether making a native app is hard.
Anecdotal, but I feel like the React Natives and Electrons have made it so you see less "Sorry we're only on Mac", and "We're only on Android, iOS coming soon!" from apps
There's the problem, nobody's sorry for offering only these static 100MB chat clients taking 2GB+ of RAM once launched. These apps are technically ridiculous, especially since all they do is embed a website. I mean, if all your company's willing to deliver is website, why even bother with the apps... But that's all fine right? We'll just upgrade to 64GB and 128GB machines soon!
If you're a JS developer and don't know (or enjoy) other languages, the most lucrative choice is to keep using JS and advocating for it whenever possible.
If they've already got many JS developers onboard, it's normal that their opinion will be biased and they wouldn't want to switch to another language and essentially make their own job obsolete (except for the minority that also happens to be equally-proficient in whatever desktop programming language is chosen).
I've been working at web-based startups for over 10 years now, and I know VERY few devs who only know JS. Most are also proficient (or at least have working knowledge of) whatever other languages we're using. Usually JVM-based like Java, Kotlin, Scala or something else like Ruby or Elixir.
Everywhere I've been, we always "choose the right tool for the job". Recently, making apps that can run across every OS and in the browser, the right tool for the job has been JS (well, TypeScript these days, but same thing).
We are seeing a bit of a backlash nowadays to "SPA everything // webdevs will save the world" naive techno-utopianism. Turns out that nail actually has some funny curves and the hammer isn't enough!
If all you want is messaging, use irc, matrix or an xmpp system. The real value of slack is all the integrations and ecosystem built on top of it. That is much harder to integrate with an arbitrary client. It could be done, they could publish "enriched messaging" standards or similar and breakout capabilities that clients could support, but just supporting vanilla messaging at this point would be a severe degradation of slack's capabilities.
It’s also important to remember that writing native apps doesn’t inherently inherently give you a big performance boost. With the type of app Slack has, I would expect the default implementation in a native app to be pretty slow as well. You’d have to do a significant amount of further optimization to make it competitive, imo. And to be honest, I imagine if someone applied that same amount of optimization and effort to the electron app, they could make the performance much better there as well.
https://github.com/SigNoz/signoz
PS: I am maintainer at SigNoz