/** * Read the metrics processing stats from meta table and return the map of topic information to stats * @return Map of topic to metrics processing stats * @throws Exception */ @Override public Map<String, MetricsProcessorStatus> getMetricsProcessorStats() throws Exception { MetricsConsumerMetaTable metaTable = metaTableSupplier.get(); Map<String, MetricsProcessorStatus> processMap = new HashMap<>(); for (TopicId topicId : metricsTopics) { TopicProcessMeta topicProcessMeta = metaTable.getTopicProcessMeta(new TopicIdMetaKey(topicId)); if (topicProcessMeta != null) { MessageId messageId = new MessageId(topicProcessMeta.getMessageId()); MetricsMessageId metricsMessageId = new MetricsMessageId(messageId.getPublishTimestamp(), messageId.getSequenceId(), messageId.getPayloadWriteTimestamp(), messageId.getPayloadSequenceId()); processMap.put( topicId.getTopic(), new MetricsProcessorStatus(metricsMessageId, topicProcessMeta.getOldestMetricsTimestamp(), topicProcessMeta.getLatestMetricsTimestamp(), topicProcessMeta.getMessagesProcessed(), topicProcessMeta.getLastProcessedTimestamp())); } } return processMap; }
/** * Read the metrics processing stats from meta table and return the map of topic information to stats * @return Map of topic to metrics processing stats * @throws Exception */ @Override public Map<String, MetricsProcessorStatus> getMetricsProcessorStats() throws Exception { MetricsConsumerMetaTable metaTable = metaTableSupplier.get(); Map<String, MetricsProcessorStatus> processMap = new HashMap<>(); for (TopicId topicId : metricsTopics) { TopicProcessMeta topicProcessMeta = metaTable.getTopicProcessMeta(new TopicIdMetaKey(topicId)); if (topicProcessMeta != null) { MessageId messageId = new MessageId(topicProcessMeta.getMessageId()); MetricsMessageId metricsMessageId = new MetricsMessageId(messageId.getPublishTimestamp(), messageId.getSequenceId(), messageId.getPayloadWriteTimestamp(), messageId.getPayloadSequenceId()); processMap.put( topicId.getTopic(), new MetricsProcessorStatus(metricsMessageId, topicProcessMeta.getOldestMetricsTimestamp(), topicProcessMeta.getLatestMetricsTimestamp(), topicProcessMeta.getMessagesProcessed(), topicProcessMeta.getLastProcessedTimestamp())); } } return processMap; }