[ https://issues.apache.org/jira/browse/CASSANDRA-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13605806#comment-13605806 ]
Tyler Hobbs commented on CASSANDRA-4430: ---------------------------------------- Overall I'm not opposed to the idea of making it easy to enable various reporters, but I do have some questions and comments. bq. Keeping per connection stats around is not tenable for larger clusters Can you clarify which stats you're referring to? I didn't think we were exposing any metrics on a per-connection basis. I'm not sure which component is failing, but if I enable the csv reporter, Cassandra logs this error repeatedly: {noformat} java.io.IOException: Unable to create /tmp/metrics/crazy-debugging/LiveSSTableCount.csv at com.yammer.metrics.reporting.CsvReporter.createStreamForMetric(CsvReporter.java:141) at com.yammer.metrics.reporting.CsvReporter.getPrintStream(CsvReporter.java:257) at com.yammer.metrics.reporting.CsvReporter.access$000(CsvReporter.java:22) at com.yammer.metrics.reporting.CsvReporter$1.getStream(CsvReporter.java:156) at com.yammer.metrics.reporting.CsvReporter.processGauge(CsvReporter.java:229) at com.yammer.metrics.reporting.CsvReporter.processGauge(CsvReporter.java:22) at com.yammer.metrics.core.Gauge.processWith(Gauge.java:28) at com.yammer.metrics.reporting.CsvReporter.run(CsvReporter.java:163) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) {noformat} I also seem to only get a subset of the metrics (BloomFilterFalsePositives, CurrentlyBlockedTasks, MeanRowSize, Size, CompressionRatio, LiveSSTableCount, MinRowSize, and TotalDiskSpaceUsed) which appear to only cover one column family. Is the csv reporter just no good, or am I missing something here? Regarding whitelisting/blacklisting, is the regex applied to the full metric name (e.g. o.a.c.metrics.ColumnFamily.WriteLatency.keyspace1.cf1)? > optional pluggable o.a.c.metrics reporters > ------------------------------------------ > > Key: CASSANDRA-4430 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4430 > Project: Cassandra > Issue Type: Improvement > Components: Core > Reporter: Chris Burroughs > Assignee: Chris Burroughs > Priority: Minor > Fix For: 1.2.4 > > Attachments: cassandra-ganglia-example.png > > > CASSANDRA-4009 expanded the use of the metrics library which has a set of > reporter modules http://metrics.codahale.com/manual/core/#reporters You can > report to flat files, ganglia, spit everything over http, etc. The next step > is a mechanism for using those reporters with o.a.c.metrics. To avoid > bundling everything I suggest following the mx4j approach of "enable only if > on classpath coupled with a reporter configuration file. > Strawman file: > {noformat} > console: > time: 1 > timeunit: "seconds" > csv: > - time: 1 > timeunit: minutes > file: foo.csv > - time: 10 > timeunit: seconds > file: bar.csv > ganglia: > - time: 30 > timunit: seconds > host: server-1 > port: 8649 > - time: 30 > timunit: seconds > host: server-2 > port: 8649 > {noformat} > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira