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/6fbd5e64-1422-455d-8710-ee774dfe5b50n%40googlegroups.com.