Inside a scrape job, either you are using static_configs: ...
or file_sd_configs: ... or kubernetes_sd_configs: ... (or others). These are all forms of service discovery. The result of all of these is the same: a list of targets to scrape as __address__, and other labels to associate with those targets. I will say this for the final time: if it works with static_configs but doesn't work with kubernetes_sd_configs, it's because you're generating a different __address__ and/or labels. And I've already told you twice how to view the list of targets and labels which the scrape job is using. On Tuesday, 21 March 2023 at 04:53:50 UTC dikshant rai wrote: > Hi Brian, > I hope there is some confusion for static config, we are not using any SD, > instead we are adding targets manually that is exposed to internet and that > is working fine but when we want to monitor pods or services using > sd_config, we are able to list out those with their name along with port > number assigned. The only issue is that they are down. > > On Tuesday, 21 March 2023 at 00:51:10 UTC+5:30 Brian Candler wrote: > >> If it's the same blackbox exporter you're talking to, and it is returning >> "success" to one probe request (originating from your static_sd_configs) >> but "fail" to another probe request (from your kubernetes_sd_configs), then >> ISTM that the requests that you are sending to blackbox_exporter are >> different in those two cases. >> >> On Monday, 20 March 2023 at 17:06:29 UTC dikshant rai wrote: >> >>> Hi Brian, >>> Thanks for responding. I am using grafana-agent because we are using >>> mimir on top of prometheus. so at first, I thought the same so I went to >>> grafanaa-agent pod using exec command and tried to connect other running >>> services using telnet command. For ex. telnet >>> develop.static-service.dev.svc.cluster.local:8080, it throws 400 error and >>> the same error we are getting from sd-config jobs. Either we are missing >>> something or there may be one more reason that we are using istio for >>> communication that is listening on 15020 port but we tried to connect using >>> that port also but it throws error. >>> >>> On Sunday, 19 March 2023 at 19:45:13 UTC+5:30 Brian Candler wrote: >>> >>>> What you need to do, as I suggested before, is go to the PromQL web >>>> interface and look at Status > Targets to see exactly the scrape URL and >>>> its query parameters, e.g. >>>> >>>> [image: img1.png] >>>> >>>> Then you'll see what's different between the static_configs job and the >>>> kubernetes_sd_configs job, in terms of the generated scrape URL and >>>> params. (And the total number of endpoints being probed, of course). >>>> >>>> Looking at your config, my guess is that the __address__ that you're >>>> getting from kubernetes SD is either a plain address or an address:port >>>> pair, but the target for your http_2xx module requires a complete URL like >>>> http://address:port or https://address:port (maybe with an additional path >>>> too). You'll be able to see if the http:// is missing under Status > >>>> Targets. >>>> >>>> If that's true, then you need to modify your rewriting rules to build >>>> the target appropriately, for example: >>>> >>>> - source_labels: [__address__] >>>> target_label: __param_target >>>> replacement: "http://${1}" >>>> >>>> That's just a starting point. You need to work on it as appropriate >>>> until your kubernetes SD config gives "target" params which match your >>>> static SD config. >>>> >>>> On Sunday, 19 March 2023 at 13:35:43 UTC dikshant rai wrote: >>>> >>>>> Hi Brian, >>>>> Thanks for the response. >>>>> I have configured static and sd both as different job and when I am >>>>> hitting SD job, I am getting targets as all the services inside the >>>>> cluster >>>>> but they are throwing 400 or 404 error but when I check the logs, the >>>>> status is 200. >>>>> I am attaching job for your reference. Let me know if I am missing >>>>> something. I also tried to check connection by going into >>>>> blackbox-exporter >>>>> pod but it is still throwing same error. I have put all under same >>>>> namespace to avoid any communication failure. >>>>> - job_name: "blackbox-kubernetes-services" >>>>> metrics_path: /probe >>>>> params: >>>>> module: [http_2xx] >>>>> kubernetes_sd_configs: >>>>> - role: service >>>>> relabel_configs: >>>>> # Example relabel to probe only some services that have " >>>>> example.io/should_be_probed = true" annotation >>>>> # - source_labels: >>>>> [__meta_kubernetes_service_annotation_example_io_should_be_probed] >>>>> # action: keep >>>>> # regex: true >>>>> - source_labels: [__address__] >>>>> target_label: __param_target >>>>> - target_label: __address__ >>>>> replacement: prometheus-blackbox-exporter:9115 >>>>> - source_labels: [__param_target] >>>>> target_label: instance >>>>> - action: labelmap >>>>> regex: __meta_kubernetes_service_label_(.+) >>>>> - source_labels: [__meta_kubernetes_namespace] >>>>> target_label: kubernetes_namespace >>>>> - source_labels: [__meta_kubernetes_service_name] >>>>> target_label: kubernetes_service_name >>>>> >>>>> On Friday, 17 March 2023 at 21:04:29 UTC+5:30 Brian Candler wrote: >>>>> >>>>>> > When I am using static config then it shows fine but when I am >>>>>> using service discovery for status of service or pod some are coming up >>>>>> some are down >>>>>> >>>>>> Then clearly you're not scraping/probing the same endpoints as you >>>>>> did with the static config. >>>>>> >>>>>> The easiest way to check is to go to the Prometheus web interface and >>>>>> look at the "Status > Targets" page and see what *actual* targets you're >>>>>> probing: first with the static config, and then secondly with the SD >>>>>> config >>>>>> (actually you can do both at the same time, but configure them as >>>>>> separate >>>>>> jobs so you can distinguish them by the "job" label). The first column >>>>>> shows the URL being scraped and the URL params being passed ("module" >>>>>> and >>>>>> "target" are the ones that need to be set for blackbox_exporter, of >>>>>> course). >>>>>> >>>>>> If you can show your static config, and the service discovery config, >>>>>> the problem might be clearer. My guess is the SD discovery isn't >>>>>> returning >>>>>> data in the form that you expect, or that your rewrite rules aren't >>>>>> working >>>>>> in the way that you expect. >>>>>> >>>>>> On Friday, 17 March 2023 at 15:23:28 UTC dikshant rai wrote: >>>>>> >>>>>>> Hi, >>>>>>> I tried to configure blackbox exporter for checking api status with >>>>>>> prometheus on kubernetes. When I am using static config then it shows >>>>>>> fine >>>>>>> but when I am using service discovery for status of service or pod some >>>>>>> are >>>>>>> coming up some are down. I used telnet to check connectivity as well >>>>>>> that >>>>>>> is fine but still don't know where it is failing. >>>>>>> Please help. >>>>>>> >>>>>> -- 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/77f2e3d7-ad17-4d2e-8993-613a1454c580n%40googlegroups.com.

