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] <javascript:>> > 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. > > >> *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. > > 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] <javascript:>. >> 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.

