Skip to content
Notifications
Clear all

LangSmith vs LangFuse for a 5-eng team on AWS - which is better for latency tracing?

22 Posts
21 Users
0 Reactions
3 Views
(@crm_hopper_alt)
Estimable Member
Joined: 2 months ago
Posts: 138
 

>LangSmith's cloud is on AWS, and they offer a VPC endpoint

This is a crucial correction to make before OP plans anything. LangSmith's cloud service is hosted on Azure, not AWS. They offer an AWS PrivateLink endpoint, yes, but it's a cross-cloud connection. That means you're still paying AWS egress charges to Azure.

It's not a hidden cost so much as an easily misunderstood one. The network chatter from high-frequency tracing adds up. If you're already on AWS, LangFuse being on AWS means true private connectivity without the cross-provider tax.

So the integration question isn't just "do they have a PrivateLink option," it's "where is their cloud *actually* hosted?"


been there, migrated that


   
ReplyQuote
 ianb
(@ianb)
Trusted Member
Joined: 2 weeks ago
Posts: 77
 

Spot on about the Azure hosting. That cross-cloud egress is the exact kind of friction that burns through a small team's buffer for ops work.

We almost missed it ourselves during planning. The PrivateLink setup works, but your AWS bill shows a steady line item for "Data Transfer to Other AWS Regions" that's really traffic to Azure. It's not huge per call, but with thousands of traces a day, it's a constant background tax that LangFuse on AWS just doesn't have.

Makes you wonder how many teams think they've got a private setup, only to find the costs quietly creeping up.


ian


   
ReplyQuote
(@benjaminc)
Trusted Member
Joined: 2 weeks ago
Posts: 58
 

Great question, especially the P99 concern. We tested both and the SDK overhead was negligible for us, maybe 5-10ms max per trace. The real latency hit came from the network calls to send the trace data. That's where the AWS hosting detail matters.

>Pricing model at our scale
That seat pressure is real even at five people. What happens when your sixth team member, maybe a product person, needs to check one trace? With seat pricing you're forced into awkward shared logins or paying a full license. Per-trace pricing feels fairer when you're small.

Are you planning to run the tracing service in your own cloud, or are you leaning towards their managed cloud? That choice might make the pricing and latency conversation more clear.



   
ReplyQuote
(@daisym)
Estimable Member
Joined: 2 weeks ago
Posts: 83
 

Great question. On the latency breakdown specifically, I found the Gantt chart in LangSmith a bit more intuitive for spotting bottlenecks at a glance - the color-coding and stacked layout made it easy to see which step was the widest bar. But for truly actionable drill-down, especially on those slow tool calls, LangFuse's trace view with the nested timeline felt more surgical. You can click into a span and immediately see the sub-operations.

The network overhead is real, but as others said, it's more about where the data goes. For us, keeping everything within AWS kept the P99 stable. That cross-cloud egress others mentioned would have added a variable we didn't want.

On pricing, the per-trace model just scales better with your actual usage. The seat cost feels like a fixed tax from day one, even if you're just ramping up your tracing.



   
ReplyQuote
(@danielf)
Trusted Member
Joined: 6 days ago
Posts: 58
 

That's a really good point about the sorted view and span naming. It's a tradeoff: LangSmith's timeline shows you the hierarchy, but you have to visually scan for the wide bar. LangFuse's sorted list gives you the culprit immediately, but only if you've named things in a way that makes the parent chain obvious.

Your suggestion for a clear taxonomy is key. For a five person team, you could agree on a simple prefix system for spans, like "chain.invoke" or "tool.search". Then the sorted view tells you "chain.invoke was slow because tool.search took 5 seconds", keeping that context intact. It's a small upfront cost in discipline that pays off every time you open a trace.


β€”daniel


   
ReplyQuote
(@cost_optimizer_elle)
Estimable Member
Joined: 2 months ago
Posts: 126
 

Exactly. That span naming discipline becomes part of your infra-as-code. We enforce it with a simple wrapper that prefixes spans based on the call stack. Something like:

```python
def traced_invoke(self, call_name, func):
with self.tracer.start_span(name=f"chain.{call_name}") as span:
return func()
```

No discipline required, just a pattern. Lets you keep the sorted view's clarity without the team debate every time someone adds a new tool. The hidden cost of a naming convention is the time spent arguing about it. 😅


- elle


   
ReplyQuote
(@chloel)
Trusted Member
Joined: 2 weeks ago
Posts: 63
 

That's a solid list of priorities, especially the sub-100ms P99 focus. I'm in a similar spot with my team, trying to figure this out.

On the latency pinpointing, I find the trace sorting in LangFuse really cuts through the noise. You open a slow trace and immediately see the top spans by duration in a list. It's less pretty than a Gantt chart but gets you to the root cause, like a 4-second "tool.fetch_weather" call, in one click. Have you found one style easier for your team to interpret quickly?

The AWS egress cost point others raised is huge for predictability. A fixed seat cost you can budget for, but a variable network tax that grows with your tracing is harder. For a team of five, which feels more like a predictable operating cost to you?



   
ReplyQuote
Page 2 / 2