On Fri, 28 Aug 2020 at 10:21, Joaquin Fernandez Campo <[email protected]>
wrote:

> Hi!
>
> At my team we're facing an issue using remote write with prometheus on a
> consul connect service mesh.
>
> Right now we have prometheus configured to remote write to a consul
> connect service mesh endpoint (http://localhost:19090). Consul deals with
> handling sending connections to every discovered copy of our remote write
> service.
>
> Prometheus seems to be establishing long living TCP connections and at
> first when we have two copies of the remote service running they are
> balanced.
>
> The problem comes up when we one of the copies goes away for any reason,
> prometheus detects this, and establishes new TCP connections to the
> localhost endpoint but because on consul we only have one copy running all
> of them end up going to the one copy that is running and the one that comes
> up sits there doing nothing.
>
> In order to fix it I think we would need to expose some more configuration
> options on the remote write specifically the ones that are set here (
> https://github.com/prometheus/prometheus/blob/d30f202c08a7bf4109f18c755c2cbc6a067666bb/vendor/github.com/prometheus/common/config/http_config.go#L158-L174)
> and ideally a max number of sends per http client.
>

This code is used in many other places in Prometheus and its ecosystem, so
any changes would have to make sense in all the other contexts too. For
example it doesn't make sense to reestablish the HTTP connection used for
scraping periodically, and it'd cause confusion for users of the blackbox
exporter which doesn't use persistent connections.


> I wanted to write this to see what the opinion of the dev team is and if
> this change makes sense. I do think at least the keep alive option should
> be exposed to not reuse TCP connections. We could probably get it to work
> as we expect by lowering the idle timeouts so maybe exposing those two
> options would be enough.
>
> What do y'all think? Has anyone faced this kind of issue using another
> service mesh?
>

It sounds like the issue here is with your load balancing setup, and I'd
suggest tackling it at that level and ensuring it's doing request-based
rather than connection-based balancing - rather than complicating the
configuration for everyone.

-- 
Brian Brazil
www.robustperception.io

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-developers/CAHJKeLozgdYqzNJ%2B55%2BzpG%3DWov-hesSrdhM%3DTZ668Edm48VP5Q%40mail.gmail.com.

Reply via email to