Hadoop 2 Metrics FileSink can not rotate file


FileSink initialize writer stream in init method, and the writer is not changed since after, so the metrics file can not rotate.

```

/**
 * A metrics sink that writes to a file
 */
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class FileSink implements MetricsSink, Closeable {
  private static final String FILENAME_KEY = "filename";
  private PrintStream writer;

  @Override
  public void init(SubsetConfiguration conf) {
    String filename = conf.getString(FILENAME_KEY);
    try {
      writer = filename == null ? System.out
          : new PrintStream(new FileOutputStream(new File(filename)),
                            true, "UTF-8");
    } catch (Exception e) {
      throw new MetricsException("Error creating "+ filename, e);
    }
  }

  @Override
  public void putMetrics(MetricsRecord record) {
    writer.print(record.timestamp());
    writer.print(" ");
    writer.print(record.context());
    writer.print(".");
    writer.print(record.name());
    String separator = ": ";
    for (MetricsTag tag : record.tags()) {
      writer.print(separator);
      separator = ", ";
      writer.print(tag.name());
      writer.print("=");
      writer.print(tag.value());
    }
    for (AbstractMetric metric : record.metrics()) {
      writer.print(separator);
      separator = ", ";
      writer.print(metric.name());
      writer.print("=");
      writer.print(metric.value());
    }
    writer.println();
  }

  @Override
  public void flush() {
    writer.flush();
  }

  @Override
  public void close() throws IOException {
    writer.close();
  }
}

The following content is some metrics output of datanode


1505703179836 rpc.rpc: port=50020, Context=rpc, Hostname=localhost, ReceivedBytes=0, SentBytes=0, RpcQueueTimeNumOps=0, RpcQueueTimeAvgTime=0.0, RpcProcessingTimeNumOps=0, RpcProcessingTimeAvgTime=0.0, RpcAuthenticationFailures=0, RpcAuthenticationSuccesses=0, RpcAuthorizationFailures=0, RpcAuthorizationSuccesses=0, NumOpenConnections=0, CallQueueLength=0
1505703179836 rpcdetailed.rpcdetailed: port=50020, Context=rpcdetailed, Hostname=localhost
1505703179836 jvm.JvmMetrics: Context=jvm, ProcessName=DataNode, SessionId=null, Hostname=localhost, MemNonHeapUsedM=29.357956, MemNonHeapCommittedM=30.269531, MemNonHeapMaxM=-9.536743E-7, MemHeapUsedM=21.48169, MemHeapCommittedM=190.0, MemHeapMaxM=390.0, MemMaxM=390.0, GcCountParNew=2, GcTimeMillisParNew=25, GcCountConcurrentMarkSweep=1, GcTimeMillisConcurrentMarkSweep=9, GcCount=3, GcTimeMillis=34, GcNumWarnThresholdExceeded=0, GcNumInfoThresholdExceeded=0, GcTotalExtraSleepTime=0, ThreadsNew=0, ThreadsRunnable=10, ThreadsBlocked=0, ThreadsWaiting=4, ThreadsTimedWaiting=11, ThreadsTerminated=0, LogFatal=0, LogError=2, LogWarn=2, LogInfo=36
1505703179836 dfs.datanode: SessionId=null, Context=dfs, Hostname=localhost, BytesWritten=0, TotalWriteTime=0, BytesRead=0, TotalReadTime=0, BlocksWritten=0, BlocksRead=0, BlocksReplicated=0, BlocksRemoved=0, BlocksVerified=0, BlockVerificationFailures=0, BlocksCached=0, BlocksUncached=0, ReadsFromLocalClient=0, ReadsFromRemoteClient=0, WritesFromLocalClient=0, WritesFromRemoteClient=0, BlocksGetLocalPathInfo=0, RemoteBytesRead=0, RemoteBytesWritten=0, RamDiskBlocksWrite=0, RamDiskBlocksWriteFallback=0, RamDiskBytesWrite=0, RamDiskBlocksReadHits=0, RamDiskBlocksEvicted=0, RamDiskBlocksEvictedWithoutRead=0, RamDiskBlocksEvictionWindowMsNumOps=0, RamDiskBlocksEvictionWindowMsAvgTime=0.0, RamDiskBlocksLazyPersisted=0, RamDiskBlocksDeletedBeforeLazyPersisted=0, RamDiskBytesLazyPersisted=0, RamDiskBlocksLazyPersistWindowMsNumOps=0, RamDiskBlocksLazyPersistWindowMsAvgTime=0.0, FsyncCount=0, VolumeFailures=0, DatanodeNetworkErrors=0, ReadBlockOpNumOps=0, ReadBlockOpAvgTime=0.0, WriteBlockOpNumOps=0, WriteBlockOpAvgTime=0.0, BlockChecksumOpNumOps=0, BlockChecksumOpAvgTime=0.0, CopyBlockOpNumOps=0, CopyBlockOpAvgTime=0.0, ReplaceBlockOpNumOps=0, ReplaceBlockOpAvgTime=0.0, HeartbeatsNumOps=0, HeartbeatsAvgTime=0.0, BlockReportsNumOps=0, BlockReportsAvgTime=0.0, IncrementalBlockReportsNumOps=0, IncrementalBlockReportsAvgTime=0.0, CacheReportsNumOps=0, CacheReportsAvgTime=0.0, PacketAckRoundTripTimeNanosNumOps=0, PacketAckRoundTripTimeNanosAvgTime=0.0, FlushNanosNumOps=0, FlushNanosAvgTime=0.0, FsyncNanosNumOps=0, FsyncNanosAvgTime=0.0, SendDataPacketBlockedOnNetworkNanosNumOps=0, SendDataPacketBlockedOnNetworkNanosAvgTime=0.0, SendDataPacketTransferNanosNumOps=0, SendDataPacketTransferNanosAvgTime=0.0
1505703179836 metricssystem.MetricsSystem: Context=metricssystem, Hostname=localhost, NumActiveSources=5, NumAllSources=5, NumActiveSinks=1, NumAllSinks=0, Sink_fileNumOps=0, Sink_fileAvgTime=0.0, Sink_fileDropped=0, Sink_fileQsize=0, SnapshotNumOps=5, SnapshotAvgTime=0.2, PublishNumOps=0, PublishAvgTime=0.0, DroppedPubAll=0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值