I have prometheus configuration with many jobs where i am scraping metrics over http. But I have one job where i need to scrape the metrics over https.
When i access:
https://ip-address:port/metrics
I can see the metrics.
The job that I have added in the prometheus.yml configuration is:
- job_name: 'test-jvm-metrics'
scheme: https
static_configs:
- targets: ['ip:port']
When i restart the prometheus I can see error on my target that says:
context deadline exceeded
I have read that maybe the scrape_timeout is the problem, but I have set it to 50 sec and still the same problem.
What can cause this problem and how to fix it?
Thank you!
I had a same problem in the past. In my case the problem was with the certificates and I fixed it with adding:
tls_config:
insecure_skip_verify: true
You can try it, maybe it will work.
Probably the default scrape_timeout value is too short for you
[ scrape_timeout: <duration> | default = 10s ]
Set a bigger value for scrape_timeout.
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5m
scrape_timeout: 1m
Take a look here https://github.com/prometheus/prometheus/issues/1438
I had a similar problem, so I tried to extend my scrape_timeout but it didn't do anything - using promtool, however, explained the problem
My problematic job looked like this:
- job_name: 'slow_fella'
scrape_interval: 10s
scrape_timeout: 90s
static_configs:
- targets: ['192.168.1.152:9100']
labels:
alias: sloooow
check your config like this:
/etc/prometheus $ promtool check config prometheus.yml
Result explains the problem and indicates how to solve it:
Checking prometheus.yml
FAILED: parsing YAML file prometheus.yml: scrape timeout greater than scrape interval for scrape config with job name "slow_fella"
Just ensure that your scrape_timeout is long enough to accommodate your required scrape_interval.
in my case it was issue with IPv6. I have blocked IPv6 with ip6tables, but it also blocked prometheus traffic. Correct IPv6 settings solved issue for me
In my case I had accidentally put the wrong port on my Kubernetes Deployment manifest than what was defined in the service associated with it as well as the Prometheus target.
disable selinux, then reboot server and test again.