One problem that affected me was that go version 1.15+ removed the ability 
to use a certificate which has only "commonName" 
<https://golang.org/doc/go1.15#commonname>.  It now requires 
"subjectAltName" to be present. That, I believe, would have affected 
prometheus 2.21.0 
<https://github.com/prometheus/prometheus/releases/tag/v2.21.0> onwards, so 
it doesn't explain your change at 2.13.0.

Prometheus 2.12.0 was built with go1.12.8, and 2.13.0 was built 
with go1.13.1, so it could be a similar issue.

Now, looking at the go1.13 release notes <https://go.dev/doc/go1.13#tls_1_3>, 
I see that TLS 1.3 was enabled by default then - there's more information 
about go's TLS 1.3 support in the go1.12 release notes 
<https://go.dev/doc/go1.12#tls_1_3> when it was made available but opt-in 
only.

Perhaps that's the issue - your target server has a broken TLS 1.3 
implementation?  If so, forcing TLS 1.2 might be a workaround.  
Unfortunately, it looks like prometheus' tls_config 
<https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tls_config>
 in 
scrape jobs allows setting a minimum TLS version, but not a  maximum :-(

That's weird, because when configuring prometheus' own https endpoint 
<https://prometheus.io/docs/prometheus/latest/configuration/https/>, you 
can select both min and max versions.

Maybe disabling TLS 1.3 in the exporter itself is an option?
 
On Monday, 12 September 2022 at 09:23:35 UTC+1 [email protected] wrote:

> Hi Brian,
> thanks for these tips. I already tried those before my post, but they 
> didn't help.
> In the meantime I did some more investigation. The servers creating the 
> metrics are Payara Micro 5.2021.10
> The Prometheus (actually Thanos) is v2.38.0. Strangly it works with 2.12.0 
> (old on prem installation that got replaced), and is broken with every 
> version starting at 2.13.0.
> Should be quite obvious to figure out, but I don't see any changes in 
> 2.13.0 that I would pinpoint this too.
>
> I asked the guys running the servers if they could look into their config. 
> e.g. disabling h2 didn't help either.
>
> Very strange issue :(
>
> Cu
>  Markus
>
> On Friday, 9 September 2022 at 15:10:46 UTC+2 Brian Candler wrote:
>
>> Note: the ability to disable http2 via scrape config was only added in 
>> v2.35.0 <https://github.com/prometheus/prometheus/releases/tag/v2.35.0>.
>>
>> For an older version, you could try environment variables
>> DISABLE_HTTP2=1
>> and/or
>> GODEBUG=http2client=0
>>
>> On Friday, 9 September 2022 at 13:18:42 UTC+1 Brian Candler wrote:
>>
>>> What prometheus version are you using?  I'd suggest v2.37.0 (2.37 is an 
>>> LTS release branch)
>>>
>>> "promtool debug metrics" doesn't seem to have many options, but you 
>>> could try in your prometheus scrape config:
>>>
>>> enable_http2: false
>>>
>>> and/or
>>>
>>> tls_config:
>>>   insecure_skip_verify: true
>>>
>>> to try and narrow down the problem.
>>>
>>> On Friday, 9 September 2022 at 10:19:40 UTC+1 [email protected] wrote:
>>>
>>>> promtool debug metrics https://myserver:8181
>>>>
>>>> collecting: https://myserver:8181/metrics
>>>>
>>>> 2022/09/09 11:15:05 http2: Transport failed to get client conn for 
>>>> myserver:8181: http2: no cached connection was available
>>>>
>>>> error completing debug command: error executing HTTP request: Get "
>>>> https://myserver:8181/metrics": EOF
>>>>
>>>>
>>>> If I open the url in a browser or with curl I get proper response :( 
>>>> Any hint what I might be missing? testssl.sh works fine too
>>>>
>>>>
>>>>
>>>> On Friday, 9 September 2022 at 10:37:13 UTC+2 Markus Glück wrote:
>>>>
>>>>> Hi guys,
>>>>> I currently trying to debug a similar issue. I am also getting EOF 
>>>>> only as error in debug level from scrape manager. I had the same issue 
>>>>> locally with curl and LibreSSL on macOS. Updating the curl version to use 
>>>>> openSSL fixed it. So my assumption it's something related to SSL/TLS. My 
>>>>> working curl verbose output gives me this in regards to TLS:
>>>>>
>>>>> * ALPN: offers h2
>>>>>
>>>>> * ALPN: offers http/1.1
>>>>>
>>>>> } [5 bytes data]
>>>>>
>>>>> * TLSv1.3 (OUT), TLS handshake, Client hello (1):
>>>>>
>>>>> } [512 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, Server hello (2):
>>>>>
>>>>> { [193 bytes data]
>>>>>
>>>>> * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
>>>>>
>>>>> } [1 bytes data]
>>>>>
>>>>> * TLSv1.3 (OUT), TLS handshake, Client hello (1):
>>>>>
>>>>> } [512 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, Server hello (2):
>>>>>
>>>>> { [155 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
>>>>>
>>>>> { [51 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, Certificate (11):
>>>>>
>>>>> { [4943 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, CERT verify (15):
>>>>>
>>>>> { [520 bytes data]
>>>>>
>>>>> * TLSv1.3 (IN), TLS handshake, Finished (20):
>>>>>
>>>>> { [52 bytes data]
>>>>>
>>>>> * TLSv1.3 (OUT), TLS handshake, Finished (20):
>>>>>
>>>>> } [52 bytes data]
>>>>>
>>>>> * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
>>>>>
>>>>> * ALPN: server accepted h2
>>>>>
>>>>>
>>>>> but HOW do I get more info from Prometheus?
>>>>>
>>>>> Thx,
>>>>>
>>>>>   Markus
>>>>>
>>>>> On Thursday, 14 July 2022 at 16:25:36 UTC+2 Brian Candler wrote:
>>>>>
>>>>>> The straightforward way to debug this by doing a scrape by hand: it's 
>>>>>> just a HTTP request.
>>>>>>
>>>>>> curl -g 'https://blah.local:9126/metrics'
>>>>>>
>>>>>> Add flag '-v' for more debugging if required (e.g. response headers 
>>>>>> may give you an extra clue).  Once you're able to scrape the exporter 
>>>>>> with 
>>>>>> curl, then prometheus should be able to talk to it too.
>>>>>>
>>>>>> Given that it's https, if you get a certificate error then you can 
>>>>>> add flag '-k' to skip certificate verification.  If that turns out to be 
>>>>>> the problem, then there are extra flags you can pass to curl, e.g. to 
>>>>>> pass 
>>>>>> the CA root certificate (if the target's cert was signed by a CA that's 
>>>>>> not 
>>>>>> in the system trust store).  Once you've got all that working, you can 
>>>>>> make 
>>>>>> the corresponding changes to prometheus' tls_config.
>>>>>>
>>>>>> On Thursday, 14 July 2022 at 14:46:24 UTC+1 [email protected] 
>>>>>> wrote:
>>>>>>
>>>>>>> Hello Team, 
>>>>>>>
>>>>>>> I have promethus installed on kubernet and add scraping targets from 
>>>>>>> cmdb using http_sd_config. 
>>>>>>>
>>>>>>> I am getting EOF error while i add targets. And it’s show down. 
>>>>>>>
>>>>>>> Can someone please help me what is the issue. 
>>>>>>>
>>>>>>> For your reference attached screenshot of error. 
>>>>>>>
>>>>>>> Thanks and regards
>>>>>>> Ritesh patel 
>>>>>>>
>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" 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-users/f5062418-c66a-423d-937e-44c2646f1fa1n%40googlegroups.com.

Reply via email to