atlassian / gostatsd

An implementation of Etsy's statsd in Go with tags support
MIT License
381 stars 99 forks source link

Repeater config?? #586

Open telderfts opened 1 year ago

telderfts commented 1 year ago

I know that with StatsD you are able to configure a repeater backend so that metrics can be used by 2 different backends. Is it possible to do that with GoStatsD?

tiedotguy commented 1 year ago

Hi

Sort of - gostatsd can have multiple backends configured, but only 1 of each type. Specifically the backends configuration item is actually a list, not a single value.

telderfts commented 1 year ago

Right but does it support the repeater backend that StatsD does? And if so is there any documentation on how to configure it?

On Wed, Jan 11, 2023, 5:38 PM tiedotguy @.***> wrote:

Hi

Sort of - gostatsd can have multiple backends configured, but only 1 of each type. Specifically the backends configuration item is actually a list, not a single value.

— Reply to this email directly, view it on GitHub https://github.com/atlassian/gostatsd/issues/586#issuecomment-1379621337, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXZBKAP757B5RDMSE55HJTTWR476ZANCNFSM6AAAAAATYTPJCM . You are receiving this because you authored the thread.Message ID: @.***>

tiedotguy commented 1 year ago

I don't know what the repeater backend in statsd is. If it just sends out the same statsd data it got in, then sort of yes, sort of no. There IS a statsdaemon backend, but it outputs over tcp, not udp. Unfortunately it's not documented (the documentation on older stuff tends to be lacking, unfortunately).

The code that reads the configuration is at https://github.com/atlassian/gostatsd/blob/master/pkg/backends/statsdaemon/statsdaemon.go#L261 though

Also note that it doesn't just proxy forward the data it receives - it still does aggregation, and sends the data out as statsd formatted data, on the normal flush interval.

telderfts commented 1 year ago

Ok, we are trying to migrate away from Graphite to Prometheus but have to make a gradual move so we were wanting to use the StatsD Exporter to do this but the best way for us is to have the repeater backend set on gostatsd so that graphite can still get data from gostatsd as well as it being sent to the exporter. I know that StatsD has that backend so I just need a definitive answer as to whether or not GostatsD has it and if it did how we would configure it.

On Wed, Jan 11, 2023, 7:18 PM tiedotguy @.***> wrote:

I don't know what the repeater backend in statsd is. If it just sends out the same statsd data it got in, then sort of yes, sort of no. There IS a statsdaemon backend, but it outputs over tcp, not udp. Unfortunately it's not documented (the documentation on older stuff tends to be lacking, unfortunately).

The code that reads the configuration is at https://github.com/atlassian/gostatsd/blob/master/pkg/backends/statsdaemon/statsdaemon.go#L261 though

Also note that it doesn't just proxy forward the data it receives - it still does aggregation, and sends the data out as statsd formatted data, on the normal flush interval.

— Reply to this email directly, view it on GitHub https://github.com/atlassian/gostatsd/issues/586#issuecomment-1379687182, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXZBKAMVESC233JX6ASKRADWR5LVRANCNFSM6AAAAAATYTPJCM . You are receiving this because you authored the thread.Message ID: @.***>

aelse commented 1 year ago

You might instead try running gostatsd under 2 configurations (separate servers) and use a UDP repeater to send to both. Statsd clients send to the repeater, which sends to the 2 separate gostatsd instances. That will help you through the transition.