Metrics for Ignite

classic Classic list List threaded Threaded
5 messages Options
dhiman_nikhil dhiman_nikhil
Reply | Threaded
Open this post in threaded view
|

Metrics for Ignite

Hi, I am almost production ready, but I want to plot graphs for
Throughput, latency operation wise[get, put, delete, eviction]. Is
there a way I can produce metrics for time taken by ignite node for
get/put/delete. I can see many metrics via rest module. But i am
unable to find the above metrics.

I am on Ignite 2.7.5 version.

Thanks & Regards,
Nikhil Dhiman
epryakhin epryakhin
Reply | Threaded
Open this post in threaded view
|

Re: Metrics for Ignite

Hello. I’m joining the question. Very interested in measuring latency for basic operations.

> 15 июля 2019 г., в 16:20, nikhil dhiman <[hidden email]> написал(а):
>
> Hi, I am almost production ready, but I want to plot graphs for
> Throughput, latency operation wise[get, put, delete, eviction]. Is
> there a way I can produce metrics for time taken by ignite node for
> get/put/delete. I can see many metrics via rest module. But i am
> unable to find the above metrics.
>
> I am on Ignite 2.7.5 version.
>
> Thanks & Regards,
> Nikhil Dhiman
aealexsandrov aealexsandrov
Reply | Threaded
Open this post in threaded view
|

Re: Metrics for Ignite

In reply to this post by dhiman_nikhil
Hi, 

You can try to use the web console for Ignite. It contains the Monitoring Dashboard with different cache metrics that were calculated during some period of time. Also, it contains different graphics related to cache operation throughput and latency: 

https://apacheignite-tools.readme.io/docs/ignite-web-console

You can try to use the next "ready to go" installation for testing: 

https://console.gridgain.com/monitoring/dashboard

BR, 
Andrei

On 2019/07/15 13:20:09, nikhil dhiman [hidden email] wrote:
> Hi, I am almost production ready, but I want to plot graphs for>
> Throughput, latency operation wise[get, put, delete, eviction]. Is>
> there a way I can produce metrics for time taken by ignite node for>
> get/put/delete. I can see many metrics via rest module. But i am>
> unable to find the above metrics.>
>
> I am on Ignite 2.7.5 version.>
>
> Thanks & Regards,>
> Nikhil Dhiman>
>
akurbanov akurbanov
Reply | Threaded
Open this post in threaded view
|

Re: Metrics for Ignite

Hello,

I would suggest to refer to following metrics and use MX bean: https://apacheignite.readme.io/docs/cache-metrics, there are average metrics for get/put/remove.

I'm not entirely sure if you really do want to have some internal benchmarking for each operation, how big are workloads going to be in your use-case? Would some generic implementation that is based on cache metrics MX bean work for you as a solution here? Еhis is necessary to hold timings for each single operation in the metrics as obviously it will require some configuration to come up with like how many operations statistics to store, when they should be dropped, when to reset etc.

The quickest thing to do is to wrap calls to these operations with time measurements and do with that information any custom things you want to. 

And if I've understood it wrong way, you can simply write your own benchmarks and execute them on your environment within benchmark framework that Ignite is shipped with: https://github.com/apache/ignite/tree/master/modules/yardstick

Refer to DEVNOTES.txt file in this module to mvn line to execute and directory to run and find benchmark config samples, it can warmup, gather statistics and plot graphs (refer to short yardstick doc: https://github.com/gridgain/yardstick/blob/master/README.md, jfreechart-graph-gen.sh script to plot graphs from benchmarks output directory is available). 

пн, 15 июл. 2019 г. в 17:16, Andrei Aleksandrov <[hidden email]>:
Hi, 

You can try to use the web console for Ignite. It contains the Monitoring Dashboard with different cache metrics that were calculated during some period of time. Also, it contains different graphics related to cache operation throughput and latency: 

https://apacheignite-tools.readme.io/docs/ignite-web-console

You can try to use the next "ready to go" installation for testing: 

https://console.gridgain.com/monitoring/dashboard

BR, 
Andrei

On 2019/07/15 13:20:09, nikhil dhiman [hidden email] wrote:
> Hi, I am almost production ready, but I want to plot graphs for>
> Throughput, latency operation wise[get, put, delete, eviction]. Is>
> there a way I can produce metrics for time taken by ignite node for>
> get/put/delete. I can see many metrics via rest module. But i am>
> unable to find the above metrics.>
>
> I am on Ignite 2.7.5 version.>
>
> Thanks & Regards,>
> Nikhil Dhiman>
>
dhiman_nikhil dhiman_nikhil
Reply | Threaded
Open this post in threaded view
|

Re: Metrics for Ignite

My hits will be like 40K Operations per second. AFAIK yardstick contains client and server on the same machine and it's easy to know the throughput/latency.
So basically, what I am doing is. Java application with Ignite as a dependency and using prometheus for metrics. I am creating custom metrics using ignite.getCache.localMetrics, but metrics like average time of get/put/remove is always coming as 0.0 and also eviction is showing 0 even though I have specified very less memory in the data region.
DataRegionConfiguration regionCfg = new DataRegionConfiguration();
          regionCfg.setName("chat");
          regionCfg.setMaxSize(20L * 1024*1024);
          regionCfg.setInitialSize(11L * 1024 *1024);
          regionCfg.setPageEvictionMode(DataPageEvictionMode.RANDOM_LRU);
          regionCfg.setEvictionThreshold(.7);
          regionCfg.setMetricsEnabled(true);
          DataRegionConfiguration regionCfg2 = new DataRegionConfiguration();
          regionCfg2.setName("btc");
          regionCfg2.setMaxSize(20L * 1024*1024);
          regionCfg2.setInitialSize(11L * 1024 *1024);
          regionCfg2.setPageEvictionMode(DataPageEvictionMode.RANDOM_LRU);
          regionCfg2.setEvictionThreshold(.7);
          regionCfg2.setMetricsEnabled(true);
          storageCfg.setDataRegionConfigurations(regionCfg2, regionCfg);
          cfg.setDataStorageConfiguration(storageCfg);


And I don't know why  this application is consuming whole system memory and throwing OOM exception[System memory is 8G]

On Wed, Jul 17, 2019 at 5:37 PM Anton Kurbanov <[hidden email]> wrote:
Hello,

I would suggest to refer to following metrics and use MX bean: https://apacheignite.readme.io/docs/cache-metrics, there are average metrics for get/put/remove.

I'm not entirely sure if you really do want to have some internal benchmarking for each operation, how big are workloads going to be in your use-case? Would some generic implementation that is based on cache metrics MX bean work for you as a solution here? Еhis is necessary to hold timings for each single operation in the metrics as obviously it will require some configuration to come up with like how many operations statistics to store, when they should be dropped, when to reset etc.

The quickest thing to do is to wrap calls to these operations with time measurements and do with that information any custom things you want to. 

And if I've understood it wrong way, you can simply write your own benchmarks and execute them on your environment within benchmark framework that Ignite is shipped with: https://github.com/apache/ignite/tree/master/modules/yardstick

Refer to DEVNOTES.txt file in this module to mvn line to execute and directory to run and find benchmark config samples, it can warmup, gather statistics and plot graphs (refer to short yardstick doc: https://github.com/gridgain/yardstick/blob/master/README.md, jfreechart-graph-gen.sh script to plot graphs from benchmarks output directory is available). 

пн, 15 июл. 2019 г. в 17:16, Andrei Aleksandrov <[hidden email]>:
Hi, 

You can try to use the web console for Ignite. It contains the Monitoring Dashboard with different cache metrics that were calculated during some period of time. Also, it contains different graphics related to cache operation throughput and latency: 

https://apacheignite-tools.readme.io/docs/ignite-web-console

You can try to use the next "ready to go" installation for testing: 

https://console.gridgain.com/monitoring/dashboard

BR, 
Andrei

On 2019/07/15 13:20:09, nikhil dhiman [hidden email] wrote:
> Hi, I am almost production ready, but I want to plot graphs for>
> Throughput, latency operation wise[get, put, delete, eviction]. Is>
> there a way I can produce metrics for time taken by ignite node for>
> get/put/delete. I can see many metrics via rest module. But i am>
> unable to find the above metrics.>
>
> I am on Ignite 2.7.5 version.>
>
> Thanks & Regards,>
> Nikhil Dhiman>
>