HNHacker News
TopNewBestAskShowJobs

mikeshi42

674 karma · joined July 8, 2014

Helping developers wrangle bugs and incidents: mike@hyperdx.io
submissionscomments
mikeshi42··on DataDog silently added auto opt-in telemetry
Ah you're right - I never noticed the nuance of choice being a key part of opt in, rather than the participation itself. TIL!
mikeshi42··on DataDog silently added auto opt-in telemetry
Fwiw you can start looking at migrating to OpenTelemetry while using Otel's DD exporter to start with and then continue shifting from there. Luckily Otel's PHP implementation is relatively complete so it should be relatively straightforward.

Shameless plug: I've been working on a DD alternative, pricing based on data volume (instead of adding on by hosts or users), Otel native as well so you're never locked in. If you want to check it out: https://hyperdx.io

mikeshi42··on DataDog silently added auto opt-in telemetry
I think parent was referring to the telemetry being opt in (enabled) by default, whereas you're mentioning that the telemetry itself is opt out. Both referring to the same thing, just opposite verbiage funny enough.
mikeshi42··on Monitoring Is a Pain
It's been happening for a while now - I assume it's more in the news now as companies are starting to tighten budgets for the first time in a long time.

We've [1] been taking advantage of it - counter-positioning against DD by offering low cost and really straightforward pricing while NR and DD both have chosen non-sensical (to me and many others) pricing models.

[1] https://www.hyperdx.io

mikeshi42··on Monitoring Is a Pain
Would love to learn what kind of exploration workflows you've missed in Grafana?

Context: Founder building an affordable alternative in the SaaS observability market (hyperdx.io) - I assume your company might have moved when NR introduced new seat-based pricing?

mikeshi42··on A cryptocurrency company had a $65M bill, per Datadog’s Q1 earnings call
> OpenTelemetry (or OTel) is in no way an existential threat to DataDog. Primarily because OTel is simply the substrate/protocol by which data is collected from your apps/systems.

As a vendor building in this space [1] - it definitely is. We're able to onboard teams faster to do side-by-side comparisons because they can simply point their existing Otel telemetry to both us and their existing provider with just a few lines of config. That wasn't possible before otel, and levels the playing field more than before. As otel matures, it'll continue to erode against DD's position.

It also allows us as a company to focus on what users care about (as you mention that's things like dashboarding, search performance, RUM, etc.) as opposed to spending all our time building basic integrations into every platform (though we still do plenty of work to polish places where Otel hasn't). Again, levels the playing field.

[1] https://www.hyperdx.io/

mikeshi42··on A cryptocurrency company had a $65M bill, per Datadog’s Q1 earnings call
we're working on one! based on open telemetry (no vendor lock-in) and clickhouse (which makes it cheaper/faster)

it currently supports logs, traces, session replay/RUM, alerts and dashboards - would love to hear what you think :) https://www.hyperdx.io

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Sorry my response was geared more towards what I hope the future of e2e (and bleeding into integration) testing could entail, independent of what we manage to accomplish - as opposed to trying to sell our product. I do get excited thinking about where testing can improve - with the end goal that developers get to ship reliable apps for their users with less frustration of testing along the way. Our product is very much just a minuscule fraction of our way there with our current iteration.

I also totally agree - e2e tests deserve better tooling to debug, and that alone we've found quite compelling of a product to be working on already, and I appreciate you find it cool as well :D

With regards to picking the right level of testing - I think there's a few km long rabbit hole to go down with that one, and I totally admit I hold strong beliefs that are different from most people in testing today. I agree though - there's always going to be a different preferred tool for different problems. It'd be pretty wild to expect e2e testing to accomplish the bulk of it! That being said, I think if e2e tests were better in a few dimensions, developers might find it useful for more use cases than they do today (some teams we talk to want to do more e2e tests but find the shortfalls as a real barrier to justify the investment).

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Thank you for the feedback! Totally agree that the testing pyramid/trophy and the reasoning behind them are 100% the correct way to go with testing today - but it relies on the assumption that writing higher level tests inherently means you're going to have slower tests that are more unreliable (and we all hate slow and unreliable things!).

The reason we're tackling this space is because we don't think this needs to be true of end to end, or even heavier integration tests. They have really awesome qualities such as being able to test close to things users actually care about (which is the most important part of testing at all!), can identify broken pieces across or in between parts of your stack, and are fairly intuitive to write/understand (imo).

But what if we could then build tooling to minimize some of the bad stuff - make tests more stable by providing better debugging, enforcing best practices automatically (imagine we can tell your tests are behaving non deterministically because of X async action, or use X conditional wait instead of a time-based one), and even giving you knobs to trade off between test fidelity and speed (ex. click a button and you can turn on/off network mocking in specific tests so you only exercise a part of your system instead of spinning up/testing the world).

Hopefully if we can nail our vision, you might be saying in the future "why are there so many unit tests? They cover so little surface, don't test how our app fits together at all, and require a lot of maintenance since they tend to test some form of implementation detail or another. We should be doing a lot more integration and e2e tests :)". It'll be a long road until then, but I think developers and users will be much happier the better we can make testing.

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Hey Ian! We don't today but we're actually looking to chat with people who are on Selenium to see if we can/should supporting Selenium users.

If you're open to it! Would love to hear more about the use case and where you think we can help the most in Selenium :) Give me a holler at mike [at] deploysentinel.com :)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Thank you for that feedback! Incredibly helpful to know :) I was hoping that capping out the pricing page slider at $1.5k/mo before recommending people to talk to us about enterprise would help with this a bit.

Absolutely when we're working with larger teams, we're frequently putting together a custom plan with tailored feature and a custom quote that takes into consideration their volume (both current and projected), term lengths and other misc things. Unfortunately this makes it really hard to describe pricing expectations at scale on a pricing page.

If you think we can help your team, I definitely think we can put something workable together at that volume - feel free to hit me up at mike [at] deploysentinel.com and let's chat. (Or I can shoot you a message to the email in your gh profile)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
That's a great question! While in theory, yes that is absolutely true tests should be reproducible anywhere, unfortunately in practice, tests can unfortunately fail in hard to reproduce ways (very much like production issues!), especially when testing a complex app or working in a large test suite written by many different people.

Common examples of this entails race conditions, your test server might be super snappy on your local machine, but run much slower in CI, and expose race conditions that were unaccounted for. Other times it may be due to subtle difference between environments (service doesn't behave properly in CI due to build step differences or service is initialized differently in CI than locally).

The list of scenarios where local reproduction can be hard is unfortunately quite long, which is the downside of running end to end tests, the surface area they test (and can fail at) is really wide and complex, much like production failures. Enough so that teams find it useful to have proper debugging tools to debug what when wrong when tests fail in CI, like how you'd want proper debugging tools when apps fail in production :)

Of course there's the other side of rerunning failing tests locally, even if they are reproducible. E2E tests and their associated environment can take time to set up locally. Why bother spending 20 minutes checking out the failed commit, searching up internally how to spin up the local e2e environment to reproduce the failure, and then running the test(s) to debug. Instead you can just click through a UI and get everything you need, it's much smoother!

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Ahhh thank you! That's a fantastic insight - let me get that up on our website and post.

Saw your YC profile as well - I'll shoot you an email as I'd love to get a chance to chat with you more about what you thought about the messaging/product :)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Rainforest QA is focused on no-code testing (so either dispatching tests to manual testers in their community, or using their UI to drag & drop tests yourself).

We're focused on code-based tests, which is a lot more flexible in terms of things they can test, and scales better with the complexity of your application and testing needs. (Can have test code that sets up mock data, shortcut parts of your application to speed up tests, work with dynamic data, and be updated alongside your product changes so your tests never break).

We've found that with the advancements in DX for e2e testing libraries today, most developers find it quicker to just write tests themselves in code, rather than having it done in a 3rd-party UI tool. This also gives the bonus that developers are aligned with delivering high quality, well-tested code during their development cycle, as opposed to encouraging a "throw-it-over-the-wall" culture of having someone else test it for them after broken code has landed into the main branch.

Last point, we're not a full testing framework ourselves - we're currently compatible with Cypress, a widely popular e2e testing library, but are definitely keeping an eye on other frameworks such as Playwright as well :)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
We've talked about it a few times with some of our largest teams - but so far they've been happy with staying on the SaaS side of things.

If it's absolutely a requirement at your workplace, we're happy to partner with you to make it work. We've discussed this internally and there's nothing inherent in our infrastructure that would make it impossible to deploy within an enterprise (the primary needs are the ability to run containers and have an S3-compatible object store).

If you'd want to dive into details I'm happy to email you via the email in your profile, or if you want to give me a ping at mike [at] deploysentinel.com

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Thanks Jason, can't wait to see what your team's been working on the Cypress end soon then!
mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Yup!

Typically our customers see the pain around debugability and currently waste dev & CI cycles rerunning tests and seeing their CI as largely ignored, or a productivity bottleneck to pushing code into main/production quickly. On top of that, they usually look for some tablestakes ability to load balance tests for parallelized runners, and some basic reporting to get a health check on their suite now and again.

Teams where their primary concern is around in-depth analytics and graphing reports, we have those on the roadmap, but can't say we're better than Cypress Dashboard yet :) But we think our focus on debugging overall gives teams a better chance of fixing errors, as opposed to reporting on them.

We have a free trial if you want to take it for a spin yourself! A lot of teams start off introducing us in an experimental PR to try out the product, and then merge into their main branch when they see the benefits. I'm also happy to chat in-depth on specifically where we might be able to help if you already have an existing Cypress set up, feel free to ping me at mike [at] deploysentinel.com

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Hahaha yup! We get a ton of volume on our platform from teams churning out test runs per-commit in their CI, where debugability is most important.

Glad to hear from others in the space! Hope to learn more if your team's GTM person jumps on :)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Great to see you guys here, I've heard a few mentions of your team's e2e integration in the works for a bit!

We indeed do approach from a different direction, having been built around the e2e testing use case from the start, we've focused on integrating with existing CI setups without swapping browsers (some teams really love the bundled Electron runner!), as well as knowing exactly what actions are running in your test runner relative to the replay in a likely familiar UI (answering questions like what DOM element did Cypress match for this command? What was the DOM like exactly when Cypress started running that command? Which command executed before this network request?).

Since you're from the team - one thing I've always wondered is how the pricing will work out for CI test runs? From the current public pricing I've found, it looks like it works great for developers recording test runs manually, but is extremely cost prohibitive at any scale if you're running it continually in CI.

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
I would indeed say the trace viewer is more limited (I'm obviously biased) - especially when you compare the fact that we not only collect the telemetry but help integrate it into your workflow very easily (as opposed to setting up your own workflow via artifacts/S3 uploads in your CI pipeline) and the biggest being around aggregating these builds/statistics over time so that they're easily retrievable :)

If you're open to it - I'd love to chat more on what your experience has been debugging Playwright tests and seeing how we could help there! I'm at mike [at] deploysentinel.com

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Ah we really should have something on our site that explains this - no, there's no dependency on the paid Cypress dashboard. A few teams use us alongside them, most others don't. We've recently added load balancing for parallelism, as well as some basic analytics based on user feedback to help fill in those gaps if you're using just us.

As for Github - no as well. We just have a Github app integration if you do to comment in on PRs. But we have teams using Gitlab/Gitlab CI as well. We print out our debugger links directly in your CI stdout or also add links into your JUnit report if that's enabled (ex for Jenkins). Though there's plenty of teams that just check our dashboard directly for test results as well! We just want to make it easy to access your test failure when they occur.

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
my spidey senses were tingling last night feeling like I had a typo somewhere... Maybe it's time for me to build that spell checker Cypress plugin I've been thinking about. Fixed, thank you!

Our main product is indeed only for Cypress today, I'm assuming you're using Playwright today? If so I'm wondering if you've had a chance to try out their trace viewer feature as well (https://playwright.dev/docs/trace-viewer). We're itching to build on Playwright as well, but want to do it once we've built out a set of features that can provide a few times improvement over the existing trace viewer. So I'd be curious if you've used the trace viewer, and if you already see our product as having a few legs up on it :)

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Our product currently integrates on top of existing test libraries (and we're starting with Cypress).

If you'd be referencing how Cypress compares with Playwright - I'd say the two largest differences is Cypress has a promise-like/chain based syntax for authoring tests versus Playwright allows for async/await syntax. Outside of that, Cypress provides a pretty awesome local developer experience (imo) whereas Playwright has a leg up in flexibility (multi-tab support, browser support, better simulated actions like mouse hovering).

If you're referencing how does our tool compare to what you might get with Playwright out of the box, Playwright does offer a really awesome trace viewer (https://playwright.dev/docs/trace-viewer) and actually had a brief chat with the original PM on Playwright a few weeks ago about it. It does capture a lot of similar debugging information - where we differ today from our debugger is a focus on making these historical runs easily accessible for engineers (don't need to go to your CI run, unzip an artifact, load it up locally, or build your own analytics dashboard for trends) as well as iterating on DX improvements like letting you scroll through/search all your network requests at once, and then jump to the point in time where a network request was made, which isn't possible in the trace viewer.

In the future we're looking into providing deeper information beyond just browser-level telemetry, so a few ideas we've kicked around with our users include capturing Redux/React state (like Redux or React dev tools do locally today), or even being able to sync up backend telemetry relative to what's happening in the browser. (Ex. show me the logs that were printed to stdout in the app server container when my test was clicking on the check out button).

mikeshi42··on Launch HN: DeploySentinel (YC S22) – End-to-end tests that don't flake
Thank you for the feedback! Definitely agree with you that we still need to iterate on our pricing to strike a good balance. Right now we're likely going to be exploring the latter soon to better differentiate where the business plan is (ex. additionally gating richer analytics is what comes to mind - as some analytics only make sense once you hit a certain scale and frequency of tests).

Let us know when you get a chance to play around with it as well! Would love to hear what you think when you get in app.

mikeshi42··on Show HN: Autogenerate Playwright and Puppeteer test scripts from the browser
I've tried using the built-in recorder myself a bit while it was in Canary, and here's my take:

- The experimental Chrome recorder is only for Puppeteer, so if you like Playwright, you're out of luck. (imo Playwright's ergonomics are way more refined than Puppeteer has and is the way we'd want to be writing tests in the future)

- The Chrome recorder introduces a _ton!_ of boilerplate code that's really bulky to work around if you want to maintain the tests yourself afterwards. I'm not sure what workflow the creators envisioned when they initially created the test generation system.

- You have to save the code to a file with the built-in recorder, you can't just copy and paste it into your editor, which is frustrating to me, especially if you're trying to record 1 new test into an existing file with a suite of tests.

- It lacks a few events you can create using the DeploySentinel recorder such as hover events, capturing screenshots, awaiting/asserting on text.

I think there's a few pros/cons to different tools out there, I've put together a side-by-side comparison here: https://github.com/DeploySentinel/Recorder#alternatives-comp...

The chrome built-in recorder is finally on Chrome stable recently, I'd say you should try it out, and then try out DeploySentinel recorder.

If you love the Chrome built-in one more, I'd love to hear what you think is missing!

mikeshi42··on Show HN: Autogenerate Playwright and Puppeteer test scripts from the browser
Hey everyone! DeploySentinel Recorder is a Chrome/Firefox extension that generates Playwright or Puppeteer browser automation scripts by automatically capturing input events (types, clicks, scrolls) as well as generating actions such as hover, await/assert text, and screenshots. This allows you to author browser automation tests incredibly quickly, but outputs clean code for you to easily adjust/edit afterwards. (No reliance on awkward helper functions!)

I put together the DeploySentinel Recorder because I really wanted a quick browser automation/test-authoring tool that can do 80% of the script authoring for me, with a really smooth developer workflow and output maintainable code.

If you’re wondering how this compares with a few other awesome recording tools out there - I’ve put together a breakdown down on the Readme: https://github.com/DeploySentinel/Recorder#alternatives-comp...

I've gotten some really great feedback from early users so far on the extension. Would love to hear any and all feedback from the HN community! :)

Direct Links:

Chrome Ext: https://chrome.google.com/webstore/detail/deploysentinel-rec... Firefox Add-On: https://addons.mozilla.org/en-US/firefox/addon/deploysentine... Github: https://github.com/DeploySentinel/Recorder

mikeshi42··on Show HN: No-code alternative to Retool, Appsmith, Internal, etc.
How do you avoid a DSL in that case? Is it the problem class allows you to represent the UI state as regular code?
mikeshi42··on Doing too much work on one's own before looping in others
I'm curious if you still see this working well these days, or what techniques you use to make it work well. I've historically found those types of pages quite useless when we're in a time that anyone can throw up a page to try to validate vaporware and no one wants to give out emails.

I have a feeling that advice was great 10 years ago, and not so great now.

mikeshi42··on Launch HN: GoLinks (YC W19) – Internal short links for teams
(Not creator, but have a similar chrome extension for personal use [0])

I think you might be confusing this product with shorteners like bit.ly. The format should actually be more semantic such as `m/roadmap/q2` rather than `bit.ly/Fa2ca`

That being said I agree the long term durability of the business would be a concern (as with any SaaS) for people. But that hasn't stopped the growth of other SaaS cos (and I'm sure there can be workarounds for ensuring usability even if they fold).

[0] https://chrome.google.com/webstore/detail/shortlink/apgeoooc...

mikeshi42··on Show HN: Search engine for 20,000+ machine learning models
Awesome :D Thanks!
← PreviousPage 6 of 8Next →