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 <
>>>>>>> kolja.kr...@opheo.com> 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 prometheus-use...@googlegroups.com.
>>>>>>>> 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 prometheus-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/846f7794-8ef0-4695-8d01-dc53ceb6fdf1n%40googlegroups.com.

Reply via email to