bhyolken
Joined 6 years ago
Joined 6 years ago
Our main issue was the lack of a synchronous gauge. The officially supported asynchronous API of registering a callback function to report a gauge metric is very different from how we were doing things before, and would have required lots of refactoring of our code. Instead, we wrote a wrapper that exposes a synchronous-like API: https://gist.github.com/yolken-airplane/027867b753840f7d15d6....
It seems like this is a common feature request across many of the SDKs, and it's in the process of being fixed in some of them (https://github.com/open-telemetry/opentelemetry-specificatio...)? I'm not sure what the plans are for the golang SDK specifically.
Another, more minor issue, is the lack of support for "constant" attributes that are applied to all observations of a metric. We use these to identify the app, among other use cases, so we added wrappers around the various "Add", "Record", "Observe", etc. calls that automatically add these. (It's totally possible that this is supported and I missed it, in which case please let me know.)
Overall, the SDK was generally well-written and well-documented, we just needed some extra work to make the interfaces more similar to the ones we were using before.
Another potential benefit would definitely be reduced complexity and better integration for the engineering team. So, for instance, you could look at a log and then more easily navigate to the UI for the associated trace. Currently, we do this by putting Honeycomb URLs in our Datadog log events, which works but isn't quite as seamless. But, given that our team is pretty small at this point and that we're not spending a ton of our time on performance optimizations, we don't feel an urgent need to consolidate (yet).
We're definitely open to doing more consolidation in the future, especially if we can save money by doing that, but from a usability standpoint we've been pretty happy with Honeycomb for traces and Datadog for everything else so far. And, that seems to be aligned with what each vendor is best at at the moment.
Although nothing bad happened to me personally, it just got really depressing and emotionally draining to live in a place where you're surrounded by so much suffering and destruction, and where you have to be hyper-vigilant every time you step outside. I packed up my things and left in December. My mental health and happiness have improved since then.
I don't blame Whole Foods and other businesses in the neighborhood for shutting down. The city leadership, including the mayor and a majority of the Board of Supervisors (SF's legislative body) really didn't seem to care one bit about the problems in that area of the city. Maybe if enough people and businesses vote with their feet, they'll be motivated to actually fix things.
1. I have a ton of respect for people who do robotics work. I was trying to be a little humorous/cheeky in my descriptions here. Apologies if it comes across as flippant, that was not what I intended.
2. My undergrad was in EECS, so I know a little about the hardware side of the world (although, to be fair, I've never done it for work).
3. There's a bit more to the story than what I wrote about in my post. For reasons around confidentiality, etc. I had to focus on the things that were safe to talk about openly, some of which I agree are kind of petty. Ditto for the reasons about leaving Stripe.
In the future, we'll probably switch these logs to also go through our collector, and it shouldn't be super hard (because we already implemented a golang OTel log handler for the external case), but we just haven't gotten around to it yet.
[1] https://docs.datadoghq.com/integrations/google_cloud_platfor...