getsentry / symbolicator

Native Symbolication as a Service
https://getsentry.github.io/symbolicator/
MIT License
362 stars 51 forks source link

Tag symbolicator metrics with `symbolicator_platform` (or `platform`) tags #1509

Closed mwarkentin closed 2 months ago

mwarkentin commented 3 months ago

We don't really have good ways of separating metrics for the various platforms that we now support in symbolicator (eg. native, js, jvm). We have hostname tags which let us split metrics at the pod level (symbolicator-0, symbolicator-1, symbolicator-js-0, symbolicator-js-1, ...)

However this is not very useful for visualizing or alerting on the platform performance in aggregate - eg. alert when max(requests.inflight by platform) > 180 for 30m. Or adding an "average requests in flight" count per platform rather than this mess:

Image

I always kind of assume there would be separate sections for each symbolicator type in our main dashboard, but I guess not having these tags would be why.

mwarkentin commented 3 months ago

Looks like this would be done here: https://github.com/getsentry/symbolicator/blob/9ce2ad1454c0ab968416fb9513e36a8113af2266/crates/symbolicator-service/src/config.rs#L85-L113

loewenheim commented 3 months ago

One question is how a Symbolicator should detect its platform. We could parse it out of the hostname, but that seems a bit brittle. We could also pass it in via the config, but then we'd need separate configurations per platform and I don't know how much of a headache that would be. Do you have any preference?

loewenheim commented 3 months ago

https://github.com/getsentry/symbolicator/pull/1511 contains a simple implementation based on parsing the hostname.