Hi Brian, thanks for your quick response.

Actually I just pasted the relabeling you attached and it immediately 
worked :) 

Brian Candler schrieb am Freitag, 28. April 2023 um 13:37:33 UTC+2:

> Do you want to show what you've done so far?
>
> You can read these:
>
>
> https://nsrc.org/workshops/2022/rwnog/nmm/netmgmt/en/prometheus/ex-blackbox-exporter.html
>   
>  # simple config
>
> https://nsrc.org/workshops/2022/rwnog/nmm/netmgmt/en/prometheus/ex-relabeling.html
>   
>  # node_exporter with relabelling
>
> If you combine the two, you could end up with something like this:
>
>   - job_name: blackbox
>     file_sd_configs:
>       - files:
>           - /etc/prometheus/blackbox.d/*.yml
>     metrics_path: /probe
>     relabel_configs:
>       - source_labels: [__address__]
>         regex: '([^ ]+)'    # name or address only
>         target_label: instance
>       - source_labels: [__address__]
>         regex: '([^ ]+)'    # name or address only
>         target_label: __param_target
>       - source_labels: [__address__]
>         regex: '(.+) (.+)'  # name address
>
>         target_label: instance
>         replacement: '${1}'
>       - source_labels: [__address__]
>         regex: '(.+) (.+)'  # name address
>         target_label: __param_target
>         replacement: '${2}'
>       - source_labels: [module]
>         target_label: __param_module
>       - target_label: __address__
>         replacement: 127.0.0.1:9115  # Blackbox exporter
>
> Where /etc/prometheus/blackbox.d/ping.yml contains, for example:
>
> - labels:
>     module: icmp
>   targets:
>     - google-pri 8.8.8.8
>     - google-sec 8.8.4.4
>
> Then you should get metrics like this:
>
> probe_success{job="blackbox",instance="google-pri",module="icmp"} 1
>
> On Friday, 28 April 2023 at 09:49:21 UTC+1 Kolja Krückmann wrote:
>
>> Hi y'all, now i got my metrics running (Thanks Brian)
>>
>> For the next step I want to use the Blackbox_exporter with the same 
>> targets (where the target.yml is build like "- targetname targetIP")
>> I want to have the same labeling as in the question above where each 
>> target has a name lable but I'm not quite getting there. Either the 
>> Endpoint URL is missing the target IP or the label is missing the name of 
>> the endpoint.
>>
>> Kolja Krückmann schrieb am Freitag, 28. April 2023 um 08:38:59 UTC+2:
>>
>>> nevermind - sorry for the question, should have just googled learn 
>>> regular expression.
>>> I'm fine for now.
>>> Kolja Krückmann schrieb am Freitag, 28. April 2023 um 08:35:21 UTC+2:
>>>
>>>> Thanks so much!
>>>>
>>>> Can you tell me where I could kinda "learn" regex? I find it very 
>>>> difficult to get known to regex because it's nothing im using on daily 
>>>> basis ^^
>>>>
>>>>
>>>>
>>>> Brian Candler schrieb am Donnerstag, 27. April 2023 um 17:24:26 UTC+2:
>>>>
>>>>> So to be clear, if you want your targets file to look like this:
>>>>>
>>>>> - targets:
>>>>>   - SVR-DS01 172.25.X0.XXX:9182
>>>>>   - SRV-DS02 172.21.X1.XXX:9182
>>>>>
>>>>> you can do something like this:
>>>>>
>>>>>    relabel_configs:
>>>>>       # When __address__ is a single item, set the instance
>>>>>       # label to the part without the port
>>>>>       - source_labels: [__address__]
>>>>>         regex: '([^ ]+):[0-9]+'
>>>>>         replacement: '${1}'
>>>>>         target_label: instance
>>>>>
>>>>>       # When __address__ is space-separated "name address:port",
>>>>>       # put the first part in the "instance" label and leave the 
>>>>> second part
>>>>>       # in "__address__"
>>>>>       - source_labels: [__address__]
>>>>>         regex: '(.+) (.+)'
>>>>>         target_label: instance
>>>>>         replacement: '${1}'
>>>>>       - source_labels: [__address__]
>>>>>         regex: '(.+) (.+)'
>>>>>         target_label: __address__
>>>>>         replacement: '${2}'
>>>>>
>>>>> If your target entries *always* consist of two items separated by a 
>>>>> space, then you don't need the first rule. It's only there in case you 
>>>>> have 
>>>>> entries in the old format, i.e.
>>>>>
>>>>> - targets:
>>>>>   - 172.25.X0.XXX:9182
>>>>>
>>>>> (in which case, the instance is set to "172.25.X0.XXX")
>>>>>
>>>>> On Thursday, 27 April 2023 at 16:16:38 UTC+1 Brian Candler wrote:
>>>>>
>>>>>> Well, there is a good reason to keep the port out of the "instance" 
>>>>>> label: it's very awkward to make a query to join two different different 
>>>>>> metrics collected from two different exporters on the same host, if one 
>>>>>> has 
>>>>>> (say) instance="foo:9100" and another has instance="foo:9104".  A second 
>>>>>> reason is that it's nicer in dashboards to see "foo" rather than 
>>>>>> "foo:9100"
>>>>>>
>>>>>> See https://www.robustperception.io/controlling-the-instance-label
>>>>>>
>>>>>> IMO the cleanest way to achieve this is to leave the port out of the 
>>>>>> targets file, copy __address__ to instance, and then append the exporter 
>>>>>> port statically to __address__.
>>>>>>
>>>>>> However, you could leave the port number in the targets file, and 
>>>>>> strip it out to create the instance label:
>>>>>>
>>>>>>       - source_labels: [__address__]
>>>>>>         regex: '(.*):[0-9]+'
>>>>>>         target_label: instance
>>>>>>         replacement: '${1}'
>>>>>>
>>>>>> This would be useful if the same exporter were running on different 
>>>>>> ports on different hosts (fairly uncommon I think).
>>>>>>
>>>>>> Also, you risk a collision of metrics if targets list includes the 
>>>>>> same host twice on two different ports in the same scrape job (which 
>>>>>> should 
>>>>>> be very unlikely).
>>>>>>
>>>>>> On Thursday, 27 April 2023 at 15:14:03 UTC+1 Kolja Krückmann wrote:
>>>>>>
>>>>>>> Hi Brian,
>>>>>>>
>>>>>>> thank you very much for your response!
>>>>>>> I just wanted to clarify, if it's better to "regex" the port to the 
>>>>>>> end of the address, or if it is equally fine to just add the port in 
>>>>>>> the 
>>>>>>> target.yml to each target? (That's what im currently doing) Is it just 
>>>>>>> best 
>>>>>>> practice with the regex expression or is there actually a technical 
>>>>>>> reason 
>>>>>>> behind that?
>>>>>>>
>>>>>>> Kind regards
>>>>>>> Kolja
>>>>>>>
>>>>>>> Brian Candler schrieb am Dienstag, 18. April 2023 um 13:34:53 UTC+2:
>>>>>>>
>>>>>>>> Alternatively, you use rewriting rules.
>>>>>>>>
>>>>>>>> - targets:
>>>>>>>>   - SVR-DS01 172.25.X0.XXX
>>>>>>>>   - SRV-DS02 172.21.X1.XXX
>>>>>>>> ... etc
>>>>>>>>
>>>>>>>> and the corresponding relabel_configs in your scrape job could be 
>>>>>>>> something like this:
>>>>>>>>
>>>>>>>>     relabel_configs:
>>>>>>>>       # When __address__ consists of just a name or IP address,
>>>>>>>>       # copy it to the "instance" label.  This keeps the port
>>>>>>>>       # number out of the instance label.
>>>>>>>>       - source_labels: [__address__]
>>>>>>>>         regex: '([^ ]+)'
>>>>>>>>         target_label: instance
>>>>>>>>
>>>>>>>>       # When __address__ is of the form "name address", extract
>>>>>>>>       # name to "instance" label and address to "__address__"
>>>>>>>>       - source_labels: [__address__]
>>>>>>>>         regex: '(.+) (.+)'
>>>>>>>>         target_label: instance
>>>>>>>>         replacement: '${1}'
>>>>>>>>       - source_labels: [__address__]
>>>>>>>>         regex: '(.+) (.+)'
>>>>>>>>         target_label: __address__
>>>>>>>>         replacement: '${2}'
>>>>>>>>
>>>>>>>>       # Append port number to __address__ so that scrape gets
>>>>>>>>       # sent to the right port
>>>>>>>>       - source_labels: [__address__]
>>>>>>>>         target_label: __address__
>>>>>>>>         replacement: '${1}:9182'
>>>>>>>>
>>>>>>>> On Tuesday, 18 April 2023 at 11:14:23 UTC+1 Julius Volz wrote:
>>>>>>>>
>>>>>>>>> The labels in the SD file can only be provided for each target 
>>>>>>>>> group (the top-level list item type of the YAML file), so you'd have 
>>>>>>>>> to do 
>>>>>>>>> something like this:
>>>>>>>>>
>>>>>>>>> - targets:
>>>>>>>>>   - [...first list of targets...]
>>>>>>>>>   labels:
>>>>>>>>>     instance: "A"
>>>>>>>>> - targets:
>>>>>>>>>   - [...second list of targets...]
>>>>>>>>>   labels:
>>>>>>>>>     instance: "B"
>>>>>>>>> - targets:
>>>>>>>>>   - [...third list of targets...]
>>>>>>>>>   labels:
>>>>>>>>>     instance: "C"
>>>>>>>>>   
>>>>>>>>>
>>>>>>>>> On Tue, Apr 18, 2023 at 11:20 AM Kolja Krückmann <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi y'all I'm trying to get a label for each target in my 
>>>>>>>>>> file_sd_config
>>>>>>>>>>
>>>>>>>>>> my prom.yml is:
>>>>>>>>>> (redacted)
>>>>>>>>>>
>>>>>>>>>> # my global config
>>>>>>>>>> global:
>>>>>>>>>>   scrape_interval: 1m # Set the scrape interval to every 15 
>>>>>>>>>> seconds. Default is every 1 minute.
>>>>>>>>>>   evaluation_interval: 30s # Evaluate rules every 15 seconds. The 
>>>>>>>>>> default is every 1 minute.
>>>>>>>>>>   scrape_timeout: 30s
>>>>>>>>>>
>>>>>>>>>> scrape_configs:
>>>>>>>>>>   # The job name is added as a label `job=<job_name>` to any 
>>>>>>>>>> timeseries scraped from this config.
>>>>>>>>>>   - job_name: 'node'
>>>>>>>>>>     file_sd_configs:
>>>>>>>>>>       - files:
>>>>>>>>>>         - 
>>>>>>>>>> C:/Prometheus/prometheus-2.41.0.windows-amd64/target_cluster_b.yml
>>>>>>>>>>
>>>>>>>>>> my target_cluster_b.yml:
>>>>>>>>>> - targets:
>>>>>>>>>>     - 172.25.X0.XXX:9182
>>>>>>>>>>     labels:
>>>>>>>>>>         instance: "SVR-DS01"
>>>>>>>>>>     - 172.21.X1.XXX:9182   
>>>>>>>>>>     - 172.25.X2.XXX:9182
>>>>>>>>>>     - 172.25.X3.XXX:9182
>>>>>>>>>>
>>>>>>>>>> as seen in the target.yml I want to try to get a label to each 
>>>>>>>>>> target - to see in the prom dashboard which ip is which targetname
>>>>>>>>>>
>>>>>>>>>> Thanks in advance.
>>>>>>>>>> Kind regards Kolja
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> 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/fa4e5c9e-807b-4680-9640-592c8172e568n%40googlegroups.com
>>>>>>>>>>  
>>>>>>>>>> <https://groups.google.com/d/msgid/prometheus-users/fa4e5c9e-807b-4680-9640-592c8172e568n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>> Julius Volz
>>>>>>>>> PromLabs - promlabs.com
>>>>>>>>>
>>>>>>>>

-- 
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/f828dfe7-3223-4c70-8472-7d82adc994a8n%40googlegroups.com.

Reply via email to