Without seeing examples of the exact metrics you are receiving then it's 
hard to be sure what the right query is.

> I want that if the consumption of messages in the topic in the last 5 
minutes is 0 and the production of messages is greater than 1 in the topic

Then you'll want metrics for the consumption (consumer group offset) and 
production (e.g. partition long-end offset or consumer group lag)

On Tuesday 30 April 2024 at 13:51:50 UTC+1 Robson Jose wrote:

>
> Hello, Thanks for responding in case
>
> I want that if the consumption of messages in the topic in the last 5 
> minutes is 0 and the production of messages is greater than 1 in the topic, 
> then the group of consumers is not consuming messages and I wanted to 
> return which groups and topics these would be
> Em sexta-feira, 19 de abril de 2024 às 15:36:44 UTC-3, Brian Candler 
> escreveu:
>
>> Maybe what you're trying to do is:
>>
>> sum by (consumergroup, topic) 
>> (rate(kafka_consumergroup_current_offset[5m]) * 60) == 0
>> unless sum by (topic) (rate(kafka_consumergroup_current_offset[5m]) * 60) 
>> < 1
>>
>> That is: alert on any combination of (consumergroup,topic) where the 
>> 5-minute rate of consumption is zero, unless the rate for that topic across 
>> all consumers is less than 1 per minute.
>>
>> As far as I can tell, kafka_consumergroup_current_offset is a counter, 
>> and therefore you should use either rate() or increase().  The only 
>> difference is that rate(foo[5m]) gives the increase per second, while 
>> increase(foo[5m]) gives the increase per 5 minutes.
>>
>> Hence:
>> rate(kafka_consumergroup_current_offset[5m]) * 60
>> increase(kafka_consumergroup_current_offset[5m]) / 5
>> should both be the same, giving the per-minute increase.
>>
>> On Friday 19 April 2024 at 18:30:21 UTC+1 Brian Candler wrote:
>>
>>> Sorry, first link was wrong.
>>> https://groups.google.com/g/prometheus-users/c/IeW_3nyGkR0/m/unto0oGQAQAJ
>>> https://groups.google.com/g/prometheus-users/c/83pEAX44L3M/m/E20UmVJyBQAJ
>>>
>>> On Friday 19 April 2024 at 18:28:29 UTC+1 Brian Candler wrote:
>>>
>>>> Can you give examples of the metrics in question, and what conditions 
>>>> you're trying to check for?
>>>>
>>>> Looking at your specific PromQL query: Firstly, in my experience, it's 
>>>> very unusual in Prometheus queries to use ==bool or >bool, and in this 
>>>> specific case definitely seems to be wrong.
>>>>
>>>> Secondly, you won't be able to join the LH and RH sides of your 
>>>> expression with "and" unless either they have exactly the same label sets, 
>>>> or you modify your condition using "and on (...)" or "and ignoring (...)".
>>>>
>>>> "and" is a vector intersection operator, where the result vector 
>>>> includes a value if the labels match, and the value is taken from the LHS, 
>>>> and that means it doesn't combine the values like you might be used to in 
>>>> other programming languages. For example,
>>>>
>>>> vector(0) and vector(1)  => value is 0
>>>> vector(1) and vector(0)  => value is 1
>>>> vector(42) and vector(99)  => value is 42
>>>>
>>>> This is as described in the documentation 
>>>> <https://prometheus.io/docs/prometheus/latest/querying/operators/#logical-set-binary-operators>
>>>> :
>>>>
>>>> vector1 and vector2 results in a vector consisting of the elements of 
>>>> vector1 for which there are elements in vector2 with exactly matching 
>>>> label sets. Other elements are dropped. The metric name and values are 
>>>> carried over from the left-hand side vector.
>>>>
>>>> PromQL alerts on the presence of values, and in PromQL you need to 
>>>> think in terms of "what (labelled) values are present or absent in this 
>>>> vector", using the "and/unless" operators to suppress elements in the 
>>>> result vector, and the "or" operator to add additional elements to the 
>>>> result vector.
>>>>
>>>> Maybe these explanations help:
>>>>
>>>> https://groups.google.com/g/prometheus-users/c/IeW_3nyGkR0/m/NH2_CRPaAQAJ
>>>>
>>>> https://groups.google.com/g/prometheus-users/c/83pEAX44L3M/m/E20UmVJyBQAJ
>>>>
>>>> On Friday 19 April 2024 at 16:31:23 UTC+1 Robson Jose wrote:
>>>>
>>>>> Good afternoon, I would like to know if it is possible to do this 
>>>>> query, the value that should return is applications with a value of 0 in 
>>>>> the first query and greater than one in the 2nd
>>>>>
>>>>> (
>>>>>   sum by (consumergroup, topic) 
>>>>> (delta(kafka_consumergroup_current_offset{}[5m])/5) ==bool 0
>>>>> ) 
>>>>> and (
>>>>>   sum by (topic) (delta(kafka_consumergroup_current_offset{}[5m])/5) 
>>>>> >bool 1
>>>>> )
>>>>>
>>>>

-- 
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/a3b6f298-1c3d-47cd-b04a-66c62bd71c86n%40googlegroups.com.

Reply via email to