> Hi, everyone. I want to drop some specific metrics by its value or its 
label value. For example:
> 1. the temperature metrics which values are 65535 meaning it's invalid
> 2. the power metrics which "entPhysicalClass" label vale are not "6" and 
"9"

Metric relabeling 
<https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs>
 
can be used to drop specific timeseries in the scrape response by label 
value, but not by metric value.

The only way I can think of dropping by metric value (without changing the 
exporter output) is to use a recording rule 
<https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/> 
to 
make a modified version of the timeseries, e.g.

    expr: some_temperature != 65535

If you are happy to hack snmp.yml, you could try something like this 
(untested):

    regex_extracts:
      "":
      - value: NaN
        regex: ^65535$
      - value: $1
        regex: ^(.+)$

I don't know if it's allowed to use "NaN" as a value here: source code 
<https://github.com/prometheus/snmp_exporter/blob/v0.20.0/collector.go#L426> 
suggests it should work <https://go.dev/play/p/_2ndwtiqbx3>. However, a time 
series consisting of NaNs 
<https://www.robustperception.io/get-thee-to-a-nannary/> is not the same as 
an empty/missing timeseries. So depending on your requirements, it may be 
better to do

    regex_extracts:
      "":
      - value: INVALID
        regex: ^65535$
      - value: $1
        regex: ^(.+)$

although this will cause snmp_exporter to generate noisy logs at debug 
level.

Aside: if you look through the examples you can see regex being used to 
divide a value by 10 (or by 100), e.g.:

    regex_extracts:
      "":
      - value: $1.$2
        regex: ^(?:(.*)(.))$

> I write the snmp.yml without generator, didn't find a specification of 
its syntax, does somebody know where it is?

https://github.com/prometheus/snmp_exporter/blob/v0.20.0/generator/FORMAT.md

Having said that, you may just want to run the generator and look at its 
output to see what it emits :-)

On Monday, 17 October 2022 at 08:01:08 UTC+1 yngwi...@gmail.com wrote:

> Hi, everyone. I want to drop some specific metrics by its value or its 
> label value. For example:
> 1. the temperature metrics which values are 65535 meaning it's invalid
> 2. the power metrics which "entPhysicalClass" label vale are not "6" and 
> "9"
>
> I write the snmp.yml without generator, didn't find a specification of its 
> syntax, does somebody know where it is?
>
> Appreciate for any 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 prometheus-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/0a4a3423-487e-423b-8ab4-02096a49ace9n%40googlegroups.com.

Reply via email to