Have you been able to figure out the problem? I have the same problem and would really like to find a solution. Thank you in advance!
On Wednesday, October 26, 2022 at 5:36:47 AM UTC+3 Wang Yngwie wrote: > I have tried, but it didn't work, thank you all the same, maybe I should > read the source code deeply. > > 在2022年10月18日星期二 UTC+8 17:22:37<Brian Candler> 写道: > >> Did it work? Which approach did you use? >> >> On Tuesday, 18 October 2022 at 07:48:06 UTC+1 [email protected] wrote: >> >>> Thanks Brain, for your help. >>> >>> 在2022年10月17日星期一 UTC+8 16:45:17<Brian Candler> 写道: >>> >>>> > 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 [email protected] 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/a22d0e01-1dce-4e02-b4a2-0af90ca86263n%40googlegroups.com.

