Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable Prometheus scraping by default #120

Open
kimtore opened this issue Sep 23, 2019 · 12 comments
Open

Enable Prometheus scraping by default #120

kimtore opened this issue Sep 23, 2019 · 12 comments
Labels
enhancement New feature or request
Milestone

Comments

@kimtore
Copy link
Contributor

kimtore commented Sep 23, 2019

The annotation prometheus.io/scrape is set to false by default. Should we just enable this for everyone by default? /cc @jhrv @terjesannum

@Kyrremann
Copy link
Contributor

Jeg stemmer nei, da det er kjekt å kunne teste ting uten at man må sette den til false for å unngå unødvendig scraping.

@jhrv
Copy link
Contributor

jhrv commented Sep 23, 2019

Default-verdi bør reflektere hva vi mener default oppførsel bør være. At det er litt kjekt når man tester ting mener jeg ikke veier opp for at dette må settes eksplisitt for nesten alle apper.

@terjesannum
Copy link
Member

Jeg synes ikke det bør være default på

@jhrv
Copy link
Contributor

jhrv commented Sep 23, 2019

Jeg synes ikke det bør være default på

Hvorfor ikke?

@terjesannum
Copy link
Member

Alle apper har ikke noe prometheus endepunkt, da synes jeg det er ryddigere at de som har det skrur på scraping

@jhrv
Copy link
Contributor

jhrv commented Sep 23, 2019

Trodde ca alle apper hadde dette?

Kjøper at det er lettere å få et cluster som er riktigere konfigurert da det sannsynligvis er få som fanger opp at det skjer unødvendig scraping. Men hva er ulempen motsatt? Blir det mye støy om man har satt opp scraping på noe som ikke lar seg scrape?

Jeg syns vi uansett bør fjerne spec.prometheus.enabled, slik at det holder at man angir hvilken path som skal scrapes (spec.prometheus.path). Hvis path angis, setter vi automatisk prometheus.io/scrape annotasjonen til true.

@terjesannum
Copy link
Member

Det er ikke noe stort teknisk problem, men derfor vil man heller ikke få folk til å skru det av når man ikke har metrikker. Så jeg synes det er ryddigere at man har et bevisst forhold til dette og enabler det når man har metrikker man vil eksponere. Path er heller ikke standard og svært mange kjører med noe annet enn /metrics, men jeg er enig i at det burde være nok å oppgi denne pathen for å enable scraping.

@kimtore kimtore added the question Further information is requested label Sep 24, 2019
@kimtore
Copy link
Contributor Author

kimtore commented Sep 25, 2019

It sounds like the consensus is to leave the default behavior as it is, but change the semantics so that:

  • .prometheus.enabled is removed
  • .prometheus.path will not have a default anymore
  • setting .prometheus.path explicitly will enable scraping, a blank value will disable scraping

Executing this change will result in scraping being enabled for existing applications that specify .prometheus.enabled = false, because the metrics path is set by default. The next application deployment will disable scraping again.

/cc @jhrv @terjesannum @Kyrremann

@Kyrremann
Copy link
Contributor

Jeg syns det er dumt at vi skal endre til at folk må skrive inn path, gjør hele opplegget mer komplisert. Jeg tenker heller at man bruker enabled, så får du default oppsett, og de som vil kan bare bruke path, og trenger da ikke sette enabled.

@kimtore
Copy link
Contributor Author

kimtore commented Sep 26, 2019

That sounds confusing. You turn the feature on either setting path or enabled? If it's not auto-enabled by setting path, it should be set explicitly. This makes it easier to document and understand, and makes this issue a no-op.

@terjesannum
Copy link
Member

terjesannum commented Sep 26, 2019

I checked one of the clusters, and a lot of the pods does not use /metrics as metrics path. So I think that specifying a metrics path is the best option to enable scraping.

  • setting .prometheus.path explicitly will enable scraping, a blank value will disable scraping
k get pod -o 'jsonpath={..metadata.annotations.prometheus\.io/path}' | tr ' ' '\n' | sort | uniq -c | sort -n
...
      3 /actuator/metrics
      6 /api/actuator/prometheus
     14 internal/metrics
     18 /
     20 /internal/metrics
     26 internal/prometheus
     27 actuator/prometheus
     40 /actuator/prometheus
     73 /internal/prometheus
     81 /prometheus
    264 /metrics

Kyrremann added a commit that referenced this issue Dec 4, 2019
@kimtore kimtore added enhancement New feature or request and removed question Further information is requested labels Dec 10, 2019
@kimtore kimtore added this to the Spec v2 milestone Dec 10, 2019
@Kyrremann
Copy link
Contributor

Vi har valgt å ikke merge denne inn, da vi heller ønsker å vente til flere features som ikke er bakoverkompatible skal rulles ut.
Dette for å minske jobben til utviklere, og at dette er mer kjekt å ha enn nødvendig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants