On Fri, 10 Apr 2020 at 10:27, Vidur <[email protected]> wrote:

>
>
> On Friday, April 10, 2020 at 7:55:54 AM UTC, Brian Brazil wrote:
>>
>> On Fri, 10 Apr 2020 at 07:10, Vidur <[email protected]> wrote:
>>
>>>
>>>
>>> On Wednesday, April 8, 2020 at 1:58:01 PM UTC, Brian Brazil wrote:
>>>>
>>>> On Wed, 8 Apr 2020 at 13:40, Vidur <[email protected]> wrote:
>>>>
>>>>> Hi
>>>>> I'm using prometheus simple client for collecting metrics in my system
>>>>> via a spring boot application
>>>>>
>>>>> void insertBatchJob(String request , String[] labelNames, String[] 
>>>>> labelValues,String counter) throws Exception {
>>>>>         CollectorRegistry registry = new CollectorRegistry();
>>>>>         Gauge inprogressRequests ;
>>>>>         if( !gaugeRegiseryMap.containsKey(request) ) {
>>>>>             inprogressRequests = Gauge.build()
>>>>>                     
>>>>> .name(request).labelNames(labelNames).help(request).register();
>>>>>
>>>>> You shouldn't be registering metrics to the default registry in a
>>>> typical method. Did you mean to register it to the custom registry you just
>>>> instantiated?
>>>>
>>>
>>>
>>> * My use case is something which sets gauge value for a same request in
>>> fixed interval, so is there no need to register the gauge ?*
>>>
>>
>> In that case you're doing normal direct instrumentation, so you shouldn't
>> be using the pushgateway.
>>
>
> But all different metrics have different interval which can be changed ,
> thats why I'm using pushgateway .Otherwise i have to store those states
> somewhere else and create endpoint in my system for prometheus to pull.
>

Metrics don't have an interval, events do. The frequency prometheus samples
at is independent of when metrics are updated.


>
>>
>>> *And Gauge are created real time with different request values , so i
>>> cannot make them static.*
>>>
>>
>> Metric names in direct instrumentation should never be procedurally
>> generated. Most likely you should be using a label here, not a metric name.
>>
>
> Are you suggessting me to use labels to distinguish between different type
> of metric.
> could you share more info on direct instrumentation & other types.
>

Use a normal static gauge and expose it out over http.

Brian


>
>> Brian
>>
>>
>>>>>             gaugeRegiseryMap.put(request,inprogressRequests);
>>>>>
>>>>>
>>>> Nor should you need to track what metrics exist, see
>>>> https://www.robustperception.io/label-lookups-and-the-child
>>>>
>>>>
>>>>>
>>>>>         }else{
>>>>>             inprogressRequests = gaugeRegiseryMap.get(request);
>>>>>         }
>>>>>         try {
>>>>>             inprogressRequests.labels(labelValues[labelValues.length-4],
>>>>>                     labelValues[labelValues.length-2],
>>>>>                     labelValues[labelValues.length-3],
>>>>>                     
>>>>> labelValues[labelValues.length-1]).set(Double.parseDouble(counter));
>>>>>             registry.register(inprogressRequests);
>>>>>         } finally {
>>>>>
>>>>>
>>>> You shouldn't need a try-finally for this, it should never fail given
>>>> the above code.
>>>>
>>>> I suspect what you're looking for here is a custom collector by
>>>> subclassing Collector.
>>>>
>>>> Brian
>>>>
>>>>
>>>>>
>>>>>             PushGateway pg = new PushGateway("127.0.0.1:9091");
>>>>>             pg.pushAdd(registry, request);
>>>>>         }
>>>>>     }
>>>>>
>>>>>
>>>>> the following code is working ,
>>>>> but when i change inprogressRequests.labels() when i pass the array
>>>>> containing label values
>>>>> i.e.
>>>>>
>>>>>  void insertBatchJob(String request , String[] labelNames, String[] 
>>>>> labelValues,String counter) throws Exception {
>>>>>         CollectorRegistry registry = new CollectorRegistry();
>>>>>         Gauge inprogressRequests ;
>>>>>         if( !gaugeRegiseryMap.containsKey(request) ) {
>>>>>             inprogressRequests = Gauge.build()
>>>>>                     
>>>>> .name(request).labelNames(labelNames).help(request).register();
>>>>>             gaugeRegiseryMap.put(request,inprogressRequests);
>>>>>         }else{
>>>>>             inprogressRequests = gaugeRegiseryMap.get(request);
>>>>>         }
>>>>>         try {
>>>>>             
>>>>> inprogressRequests..labels(labelValues).set(Double.parseDouble(counter));
>>>>>
>>>>> *Did you check this part where I'm trying to set label values like
>>> this ? why is this not working but the above one is?*
>>>
>>>>
>>>>>             registry.register(inprogressRequests);
>>>>>         } finally {
>>>>>             PushGateway pg = new PushGateway("127.0.0.1:9091");
>>>>>             pg.pushAdd(registry, request);
>>>>>         }
>>>>>     }
>>>>>
>>>>> the same is giving me errror -
>>>>> Response code from http://127.0.0.1:9091/metrics/job/loop6_2 was 400,
>>>>> response body: pushed metrics are invalid or inconsistent with existing
>>>>> metrics: collected metric .
>>>>>
>>>>>
>>>>>
>>>>> This is my first time using prometheus , it will be good if someone
>>>>> can share light on this.
>>>>>
>>>>> --
>>>>> 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/11440241-e4f6-40a3-9698-e65498d3db3a%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/prometheus-users/11440241-e4f6-40a3-9698-e65498d3db3a%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>
>>>>
>>>> --
>>>> Brian Brazil
>>>> www.robustperception.io
>>>>
>>> --
>>> 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/6a132978-c86e-4370-9dc5-51495e2c7956%40googlegroups.com
>>> <https://groups.google.com/d/msgid/prometheus-users/6a132978-c86e-4370-9dc5-51495e2c7956%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> Brian Brazil
>> www.robustperception.io
>>
> --
> 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/44269654-2d97-484f-bbb4-dd0096e602cc%40googlegroups.com
> <https://groups.google.com/d/msgid/prometheus-users/44269654-2d97-484f-bbb4-dd0096e602cc%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Brian Brazil
www.robustperception.io

-- 
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/CAHJKeLox323dALKSAdyTTH_gBOangtFLo_9GcEVfN9ia-4GFvA%40mail.gmail.com.

Reply via email to