i wasn't really aware of the new SD moratorium. and so i went and did this:
https://github.com/prometheus/prometheus/pull/5113
my question is now - what is the general plan going forward? i mean, the landscape keeps changing, and new things will appear, while old things disappear. there is, for example, another discussion on docker-swarm. i also believe that it will disappear from new deployments mid-term, but as of now, it is still popular.
as for interfacing with eureka - well, the consul adapter doesn't really cut it, since it doesn't really label as expected, and sometimes instances that were long dead kept showing up as a target. i now deployed my version of the eureka discovery to a test environment, and it works like a charm, including deregistering things super quickly.
also, it makes for a very nice experience if you can tell people to simply configure one thing (the eureka URL) and have everything work as expected from there on, with all metadata available.
the question is one of balance, of course - how much code do you need to maintain, and what's the benefit from it.
from where i stand now (and that's me using zuul and eureka all over the place) it does make sense to include this one. but also, i would think docker-swarm (or maybe plain docker?) could make sense. and so, i would really appreciate if there was any wriggle room with the moratorium.
regards
.rm
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/009d4bbd-4d54-4caa-a1aa-2a60d277eb55%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
although i would appreciate eureka discovery being made available, i wouldn't insist on it, if we had EITHER an HTTP poller OR a rest api to update targets (the former one being preferred).
simon also pointed me to several external solutions to this issue, and especially the file based discovery. this is unsatisfactory, since this causes additional (and unnecessary) pain in containerized environments, i.e. there has to be shared volumes (pain) or additional custom processes running in the container (even more pain).
although i would appreciate eureka discovery being made available, i wouldn't insist on it, if we had EITHER an HTTP poller OR a rest api to update targets (the former one being preferred).
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/afe6fdc2-7a6e-442a-adec-a5f6c74e4ef9%40googlegroups.com.
I'm in favor of ending the moratorium, instead having a set of requirements for new additions.Some requirements I can think of:* Automated tests, end-to-end testing.
* Some description of the popularity of the system. Will more than 1% of users find this useful, will it increase adoption?* Some commitment from the maintainers of the system to support the integration.
These don't have to be hard-fact driven decisions. We can simply take a maintainers vote[0] to include a proposed integration. IMO it just looks bad that we have an unending moratorium on improving one of our most important core features, dynamic discovery.For example, I think Docker Swarm clearly meets the popularity threshold, but we've had no interest from Docker the company to support us.--On Mon, Jan 21, 2019 at 10:36 AM <ruben....@gmail.com> wrote:hi,
i wasn't really aware of the new SD moratorium. and so i went and did this:
https://github.com/prometheus/prometheus/pull/5113
my question is now - what is the general plan going forward? i mean, the landscape keeps changing, and new things will appear, while old things disappear. there is, for example, another discussion on docker-swarm. i also believe that it will disappear from new deployments mid-term, but as of now, it is still popular.
as for interfacing with eureka - well, the consul adapter doesn't really cut it, since it doesn't really label as expected, and sometimes instances that were long dead kept showing up as a target. i now deployed my version of the eureka discovery to a test environment, and it works like a charm, including deregistering things super quickly.
also, it makes for a very nice experience if you can tell people to simply configure one thing (the eureka URL) and have everything work as expected from there on, with all metadata available.
the question is one of balance, of course - how much code do you need to maintain, and what's the benefit from it.
from where i stand now (and that's me using zuul and eureka all over the place) it does make sense to include this one. but also, i would think docker-swarm (or maybe plain docker?) could make sense. and so, i would really appreciate if there was any wriggle room with the moratorium.
regards
.rm
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/009d4bbd-4d54-4caa-a1aa-2a60d277eb55%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CABbyFmr1ynu7b99%3D%2B%3DPfqyZmjK%3DoLMMBfL944RmZjp5wJNQ0kw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
On Mon, 21 Jan 2019 at 10:29, Ben Kochie <sup...@gmail.com> wrote:I'm in favor of ending the moratorium, instead having a set of requirements for new additions.Some requirements I can think of:* Automated tests, end-to-end testing.We still lack this for the existing SDs, which was one of the things on the list for ending the moratorium.
* Some description of the popularity of the system. Will more than 1% of users find this useful, will it increase adoption?* Some commitment from the maintainers of the system to support the integration.The problem is that creators of previous SDs offered that, and then disappeared. I believe the only integration that has this currently is Azure (and I don't know if that's official).
this was actually one of my earlier thoughts. this would make it rather easy to do something on the other end, without adding _that_ much code on the prometheus side.
Krasi Georgiev Senior Software EngineerPrometheus Team |
--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 prometheus-devel...@googlegroups.com.To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/be8ea05b-5d13-4202-8c91-29903bc7ebc1%40googlegroups.com.
i am as torn as you are - i do understand the reasoning behind this, however, but at the same time, this only a valid argument if support for various service discoveries is going to be phased out and possibly moved to "external" services (i.e. separate adapters translating "$whatever" into target groups). then, the moratorium makes sense.
if the overall strategy is to keep supporting these, then the focus should be on improving test coverage of the existing SDs as well as possibly improving generic support for testing them. as i said, i am willing to help, but i'm too stupid to do anything useful right off the bat, and i guess this happens to other people too. the way i see it, this is the gap that needs to be closed, and where any effort to making this more accessible would eventually be beneficiary for everyone.
> And you can always use the custom SD which is very easy to implement.
> https://github.com/prometheus/prometheus/tree/master/documentation/examples/custom-sd
> If the current custom SD doesn't cover a good amount of use case we can think how to improve.
>
as i mentioned above - what would solve this issue would be supporting http urls in the custom SD. anything file based doesn't work as nice for any containerised environments (which is exactly the use case where dynamic discovery becomes extremely important), since you have to share a filesystem OR run more processes inside a container.
.rm
On Monday, January 21, 2019 at 1:47:23 PM UTC+1, Krasi Georgiev wrote:I hate to say this, but I also agree that until we have proper e2e tests for all SD providers and a long term commitment from a Prometheus maintainer to fix bugs and update a given SD provider adding a new one is not a good idea.i am as torn as you are - i do understand the reasoning behind this, however, but at the same time, this only a valid argument if support for various service discoveries is going to be phased out and possibly moved to "external" services (i.e. separate adapters translating "$whatever" into target groups). then, the moratorium makes sense.if the overall strategy is to keep supporting these, then the focus should be on improving test coverage of the existing SDs as well as possibly improving generic support for testing them. as i said, i am willing to help, but i'm too stupid to do anything useful right off the bat, and i guess this happens to other people too. the way i see it, this is the gap that needs to be closed, and where any effort to making this more accessible would eventually be beneficiary for everyone.
And you can always use the custom SD which is very easy to implement.If the current custom SD doesn't cover a good amount of use case we can think how to improve.as i mentioned above - what would solve this issue would be supporting http urls in the custom SD. anything file based doesn't work as nice for any containerised environments (which is exactly the use case where dynamic discovery becomes extremely important), since you have to share a filesystem OR run more processes inside a container..rm
--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 prometheus-devel...@googlegroups.com.To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/9c410d69-3f13-4b9a-a306-697b991bc4fe%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/1548079175.local-b7bba749-582a-v1.4.0-549b7968%40getmailspring.com.
I would still like to take on more SD work.Brian is any of the testing setup that Connor built early last year still available?
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CAN2d5OT1kn5qmZdo50wZmPrGQu%2BMHPkhrgeazW-q4mZ%2BqoMxGg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CAHJKeLpMw4CDdv2FHaXf%2Bo4FE%3DF13TYmb%2B-7APOCoGX52ELpNw%40mail.gmail.com.
I would also be in favour of something like that. Writing out files to disk feels clumsy to me, especially considering the original information probably lives in a database.
Last year I actually ended up implementing a very minimal, fake Consul API as an adapter to a proprietary database containing hosts to scrape. Consul seemed like the simplest API to implement, and it works like a charm.
I always thought it would make sense for Prometheus to support an HTTP-based "Prometheus SD", which was sufficiently well-documented that people could easily implement such services, talking to whatever proprietary stuff they have on the backend - pretty similar to what was decided for adding new notification methods to Alertmanager (via HTTP hooks).
On Monday, January 21, 2019 at 11:43:04 AM UTC+1, Ben Kochie wrote:
> One proposal I've made several times in the past is that we support HTTP URLs in `file_sd_configs`. This way the Prometheus server could simply GET from a URL that returns json/yaml compatible with file_sd_configs.I would also be in favour of something like that. Writing out files to disk feels clumsy to me, especially considering the original information probably lives in a database.
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/0f9ac41e-5526-4880-9d0c-a4904c9393e5%40googlegroups.com.
On Mon, Mar 11, 2019 at 12:24 PM Julius Volz <juliu...@gmail.com> wrote:
>
> So far the consensus (or rather strong feeling of a few, especially Brian) has been to only have one generic mechanism for doing a certain thing (whether it's SD with file_sd, or AM with webhook notifier). But we could have a more official debate about it and possibly even bring it to a vote. It's a bit on the edge for me.
>
> In case we added HTTP support, would we poll periodically or do a long-poll watch (like Kubernetes SD does)? The latter would give us more responsive results and less SD overhead, but would be more complex to implement on both sides (and would need some framing around the target groups file format). That's the downside of doing it over HTTP vs. local file watches.
I second this. Before jumping right to the implementation, it would be
good to have a better understanding of what an HTTP SD would look
like.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CAM6RFu4syR_D2Mvqr3%3DOQXRqGTy8CE%2BB%2BudtiuV4buimqnqWFA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
On Mon, 11 Mar 2019 at 21:36, Simon Pasquier <spas...@redhat.com> wrote:On Mon, Mar 11, 2019 at 12:24 PM Julius Volz <juliu...@gmail.com> wrote:
>
> So far the consensus (or rather strong feeling of a few, especially Brian) has been to only have one generic mechanism for doing a certain thing (whether it's SD with file_sd, or AM with webhook notifier). But we could have a more official debate about it and possibly even bring it to a vote. It's a bit on the edge for me.
>
> In case we added HTTP support, would we poll periodically or do a long-poll watch (like Kubernetes SD does)? The latter would give us more responsive results and less SD overhead, but would be more complex to implement on both sides (and would need some framing around the target groups file format). That's the downside of doing it over HTTP vs. local file watches.
I second this. Before jumping right to the implementation, it would be
good to have a better understanding of what an HTTP SD would look
like.If it's a generic integration, it needs to be as simple as possible which means regular polling. The goal would be to make it as easy to integrate as possible, not to invent a brand new SD - which there's enough of in the world already.
So Prometheus would poll on some short interval, and it's up to the SD
provider to reply immediately or only after a while?
I like that – it covers both use cases without additional
configuration, we only need to document that "respond only after there
is a change" is a valid thing to do, as is "respond immediately with
the same data". I expect the way we handle SD updates would already do
the right thing in either case?
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CAFU3N5XvwiE-b4yu-4jEZGCWfdVFVAtBJc1fp693hYair0rgKA%40mail.gmail.com.
You could add a revision arg to the request to determine if anything changed since the last requested revision.
--
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 prometheus-devel...@googlegroups.com.
To post to this group, send email to prometheus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/F5F467BE-F6A8-4759-BF42-C2F771056CE9%40posteo.net.
Take a look at Consul's blocking queries: (https://www.consul.io/api/index.html#blocking-queries)
Endpoints that support blocking queries return an HTTP header named
X-Consul-Index. This is a unique identifier representing the current state of the requested resource.On subsequent requests for this resource, the client can set the
indexquery string parameter to the value ofX-Consul-Index, indicating that the client wishes to wait for any changes subsequent to that index.When this is provided, the HTTP request will "hang" until a change in the system occurs, or the maximum timeout is reached.
In addition to
index, endpoints that support blocking will also honor awaitparameter specifying a maximum duration for the blocking request.