in erlang you can turn distributed tracing per mod...
# thinking-together
m
in erlang you can turn distributed tracing per module, function or even function with a guard to match specific values on the arguments, then you can log them or ship them somewhere else. No extra stuff needed, always available at runtime. I fixed a really weird bug that I couldn't reproduce by tracing some functions in less than 15 minutes, directly in production
i
@Edward de Jong / Beads Project @karki Let's move the discussion of tracing into this thread, so we're not adding a lot of scrollback to the main channel.
To add to the discussion — I'm very keen on the idea of doing the replay capture within customer software.. but that seems like such a huge divergence from how things currently work. There's privacy concerns, right? There's performance concerns, for sure. @Edward de Jong / Beads Project, how do you do this in Beads?
m
regarding performance, in erlang you can sample a fixed number of traces, 1, 10.. wathever, then do it again if you didn't find what you wanted.
regarding privacy, in elixir you can mark which fields of a structure should be serializable, that could be used as input before shipping the information somewhere else
Copy code
defmodule User do
  @derive {Inspect, only: [:id, :name]}
  defstruct [:id, :name, :address]
end
e
I don't think privacy concerns are a major issue in post-mortem replay. Given how often people use cloud-based products where all of the customer data is in plain view of the provider's staff, people are not nearly as guarded about their data as they were in previous times. Also, it would be elective from the user, just like Apple currently does with their crash reporter, where you are given the option to send it to apple. In mass-market applications, the inability to reproduce client side errors is a huge problem. Adobe, MS, Apple all have millions of unsolved "cannot duplicate" issues in their bug reporting systems. In fact, the inability to fix bugs has made Jira and many other bug-tracking companies huge sums of money. You should be able to count your bugs on your hands! People are way to accepting of sloppy work in software. In Open Source there is this constant churn of changes as people fix 5 bugs and add 2 more, and with feature editions many products never stabilize (like Windows)