Live data from Hacker News

Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

hyperprobe.co

31–40 of 60 posts

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#33
How is HyperProbe different from existing tools like AppSignal, Rollbar, and Embrace? Such very mature tools exist that auto-instrument, collect variables from the call stack, and pinpoint error causes.

> Every log-and-trace tool hands the agent data that already exists and asks it to reason backward to what probably happened

If the app is using a decent instrumentation tool, the data shows what 'actually' happened, not what 'probably' happened.

> "checkout returns 200 but some users are seeing their order fail, find out why."

Does this tool only exist to shore up poor system design? Failing orders at any e-commerce business I've worked with, large and small, are a huge red flag. Typically that is one of the first actions that is logged and traced (alongside onboarding/login), and the metrics are actively monitored. Returning 200 for failure and not catching that error is very bad API design.

Similarly, putting engineers in a situation where debugging requires accessing unknown amounts of live sensitive customer data is generally considered bad practice (even if it happens often IRL) -- in a hurry to debug, it's easy to miss that a property should have been redacted; by then it's too late and sensitive data is exposed. Plus, in most systems with significant usage the volume of trace data is prohibitive to individually examine and search through. That's why Rollbar etc aggregate errors and captured data to identify patterns before a human (or agent, or tool) ever takes a look at it. A single captured instance can also be very misleading as to the true cause.

How are you addressing these common concerns?

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#34
How do you enforce the read-only guarantee across language runtimes and probe types? Is there a policy layer that rejects expressions with side effects before instrumentation, and do you expose an audit trail showing exactly what each agent probe captured?

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#36
Two things I would want to know before pointing this at a hot service: (1) the overhead budget — when a probe lands on a hot path, is capture sampled or capped per hit, and what p99 latency delta have you measured under load? (2) failure isolation — if probe evaluation itself throws (weird object shape, getter with side effects, huge captured value to serialize), is it contained so it cannot take down the request it is observing? In-process agents live or die by staying boring under worst-case conditions.

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#37

How is HyperProbe different from existing tools like AppSignal, Rollbar, and Embrace? Such very mature tools exist that auto-instrument, collect variables from the call stack, and pinpoint error causes. > Every log-and-trace tool hands the agent data that already exists and asks it to reason backward to what probably happened If the app is using a decent instrumentation tool, the data shows what 'actually' happened,…

> How is HyperProbe different from existing tools like AppSignal, Rollbar, and Embrace?

These work only on either uncaught exceptions or wrapping up caught exceptions with their sdk. These tools will not help you with silent failures, like logic bugs where code executes cleanly without throwing, but produces the wrong business state. If every problem in your app ends up as an exception, sure you'll be able to catch the symptoms of where the exception got thrown. we can deal with these too, but these tools cant deal with the messy bugs where no exception fires.

> Such very mature tools exist that auto-instrument, collect variables from the call stack, and pinpoint error causes.

That is true for python using frame.f_locals (we use this as well)

nodejs only gives it only till the lasy async boundary, after that v8 itself drops this data. java only gives you the current frame, to get variables beyond that you would needs JDI/JVMTI which would block your threads, usually unnacceptable in production

To get around this safely, we add multiple probes all across the call chain and collate collected data using the traceId from the context (or thread id as a fallback);

> Does this tool only exist to shore up poor system design?

Returning 200 OK on a silent failure is 100% bad system design, I completely agree. But real-world production systems are full of legacy edge cases. (if that weren't true, L1/L2/L3 support team shenanigans wouldn't exist)

Also, the exception will tell you that an exception occured in order service in GET /orders/{id}/payment, your trace will tell you payment service is giving 404 for that order ID

what it wont tell you it happened becuase the webhook endpoint that your payment gateway calls is now receiving a new payment state called 'PENDING' and that you dont handle but still mark the payment as 'processed' for idempotency check. and now your order service is calling the payment service and its giving 404 because it never got written

Bad design. 100% Agree, but has happened IRL.

> putting engineers in a situation where debugging requires accessing unknown amounts of live sensitive customer data is generally considered bad practice (even if it happens often IRL)

I think tells that teams would go to these extents to fix issues. Not ideal. I agree.

> in a hurry to debug, it's easy to miss that a property should have been redacted; by then it's too late and sensitive data is exposed

fair critique. we currently use in-process rule engines to filter known sensitive patterns, and users can add on to it. but we are also building out-of-process secondary checks (using NER/classifiers) to sanitize payloads before storage. It requires strict rules, but getting verified runtime evidence is far safer and faster than blindly guessing and shipping trial-and-error hotfixes to production. or waiting to be too sure.. a luxury that might not be possible everytime.

> Rollbar etc aggregate errors and captured data to identify patterns before a human (or agent, or tool) ever takes a look at it.

There is merit in that as well, if you are looking at so many logs/traces, you kinda have to do it. We have a different approach, we use hypothesis driven conditional probing instead. probes are dropped dynamically as the understanding of the bug evolves in a session

exmaple:

console.log('hello');

const x = await getThisValueSomehow();

if (condition A) {

console.log('i m in condition A');

// do something;

} else if (condtion B) {

console.log('i m in condition B');

// do something;

}

You can also place a probe before the branch to capture variable state when neither condition evaluates to true. You gather precise data on demand rather than paying to store petabytes of static trace data.

> A single captured instance can also be very misleading as to the true cause.

We collect multiple snapshots per probe run. However, because we capture full variable state at the exact execution line, a single snapshot frequently reveals the root cause for that specific failure path. If that snapshot raises new questions, you/your agent simply drops more probes deeper down the call chain

Thanks! This was very insightful

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#38

How do you enforce the read-only guarantee across language runtimes and probe types? Is there a policy layer that rejects expressions with side effects before instrumentation, and do you expose an audit trail showing exactly what each agent probe captured?

by defalut, probes basically tell the fileName/className and lineNo/methad name to attach to (in additon to metadata like serviceId, environemnt name etc)

This is readonly and safe by default.

expressions come into play for conditonal probes

read only safety guarantees here depend on the runtime

NodeJS: handled implicitly by using `throwOnSideEffect: true` any side possible effects are prevented using this

Python and Java: As of now, we don't let conditions have method invocations at all and only allow a subset of comparator operators. no assignment allowed

usually property can invoke getter which usually should be safe to execute by design, but since we cant guarantee how it would have been written, we dont allow that as well for now.

order.total > 50 => not allowed

total > 50 => allowed

to get around this we use multiple probes, agrregated by the current context's traceId (if avaliable)

we plan to eliminate this problem by adding a custom DSL + AST parsing which can act as the policy layer to dissallow condtional probes

Audit trail is in our roadmap. As of now, you can delete the data that's collected by probes. the only problem we have with audit trail is what if you capture something sensitive and that remains in your audit trail.. so we need some immutability that registers audit trails.. but then have enough flexibility to remove the data collected.. can be done

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#39

Earlier quoted context omitted.

YES!!! for nodejs, inpector API is used. But if you're adding dynamic logs or metrics, we dont even call the inspector completely. we return an expression that will always evaluate to false and safely evaluate our the log/metric. saves time and computations happen in the same cpu cycle You're correct inpector API is not available in many non-v8 targets. Bun also has somewhat of a partial support for inpector API but…

I like your product and team. j think you have something here.

Thanks!

Re: Launch HN: HyperProbe (YC S26) – Agents that do read-only debugging in prod

#40
post #26

Earlier quoted context omitted.

Counterpoint: nobody is going to care what the front page looks like designwise, as long as the words are right.

Normally I would completely agree with you, but default claude design makes people close tabs before they read a word. A `text/plain` markdown file would be better.

Take your feedback! What do you think about the problem and how the solution fits to that?
Post reply on HN