[ 
https://issues.apache.org/jira/browse/CASSANDRA-12643?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15658633#comment-15658633
 ] 

Edward Capriolo edited comment on CASSANDRA-12643 at 11/12/16 12:28 AM:
------------------------------------------------------------------------

{quote}
I think the right fix should actually be on LibratoReporter to print which 
metric is overflowed when getting an exception
{quote}
That would be the right fix but that is not the easy fix. Unfortunately, the 
abstraction provided by reporters and the Cassandra wrapping. You can not 
redefine that functionality without changing the metric-reporting classes.

The code looks like this: (and is not code defined in apache-cassandra)

{noformat}
report(){
for(Gauge g: gauges){
  reportGauge(g);
}
for(Counter c: counters){
  reportCounter(c);
}
{noformat}

Most reporters do NOT even try catch, throwing any exception/or assertion 
generally causes the reporter to fail and result in only some things getting 
reported. 

I think if we just show the values it would be basically easy to determine why 
the algorithm overflows. The name is fairly meaningless. If the values are 
0,0,0 and that overflows we can feed that into a unit test and reason about 
what it is supposed to do.


was (Author: appodictic):
{quote}
I think the right fix should actually be on LibratoReporter to print which 
metric is overflowed when getting an exception
{quote}
That would be the right fix but that is not the easy fix. Unfortunately, the 
abstraction provided by reporters only provide you a reportGauge(). You can not 
redefine that functionality without changing the metric-reporting classes.

That is really the big problem the code looks like this: (and is not code 
defined in apache-cassandra)

{noformat}
report(){
for(Gauge g: gauges){
  reportGauge(g);
}
for(Counter c: counters){
  reportCounter(c);
}
{noformat}

Basically most reporters do NOT even try catch so throwing any exception 
generally just causes the reporter to fail and result in only some things 
getting counter. Basically nothing anywhere exceptions any metric to throw any 
exception or assertion.

I agree it would be idea to see name/ values. But its not easy. 

I think if we just show the values it would be basically easy to determine why 
the algorithm overflows. The name is fairly meaningless. If the values are 
0,0,0 we can feed that into a unit test and reason about what it is supposed to 
do.

> Estimated histograms tend to overflow
> -------------------------------------
>
>                 Key: CASSANDRA-12643
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12643
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Edward Capriolo
>            Assignee: Edward Capriolo
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to