You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "okkez (JIRA)" <ji...@apache.org> on 2018/01/29 06:11:00 UTC

[jira] [Created] (KAFKA-6493) Cannot use kafka.metrics.KafkaCSVMetricsReporter

okkez created KAFKA-6493:
----------------------------

             Summary: Cannot use kafka.metrics.KafkaCSVMetricsReporter
                 Key: KAFKA-6493
                 URL: https://issues.apache.org/jira/browse/KAFKA-6493
             Project: Kafka
          Issue Type: Bug
          Components: core, metrics
    Affects Versions: 1.0.0
         Environment: $ uname -a
Linux enerian 4.14.0-3-amd64 #1 SMP Debian 4.14.12-2 (2018-01-06) x86_64 GNU/Linux
$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

            Reporter: okkez


I cannot use kafka.metrics.KafkaCSVMetricsReporter as following with Kafka 1.0.0.

I added following configuration to server.properties:

{noformat}
kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter
kafka.metrics.polling.interval.secs=5
kafka.csv.metrics.dir=/tmp/csv_metrics
kafka.csv.metrics.reporter.enabled=true
{noformat}

And I got following errors in logs/kafkaServer.out every 5 seconds:

{noformat}
java.io.IOException: Unable to create /tmp/csv_metrics/RequestsPerSec.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.processMeter(CsvReporter.java:173)
        at com.yammer.metrics.reporting.CsvReporter.processMeter(CsvReporter.java:22)
        at com.yammer.metrics.core.Meter.processWith(Meter.java:131)
        at com.yammer.metrics.reporting.CsvReporter.run(CsvReporter.java:163)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
{noformat}

I found https://github.com/infusionsoft/yammer-metrics/blob/v2.2.0/metrics-core/src/main/java/com/yammer/metrics/reporting/CsvReporter.java#L136-L142.
This means that throw IOException when CSV files to store metrics exist.
I removed all CSV files and restart server, I got same error...

I found new version of metrics-core on https://github.com/dropwizard/metrics.
Kafka should use new version of metrics-core, I think.

The new version of metrics-core seems not to have a such problem.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)