blob: cee39e1c06657b8f27b2a2ac654ae0a29a9db44c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.nifi.controller.status.history;
import org.apache.nifi.controller.status.ConnectionStatus;
import org.apache.nifi.controller.status.history.MetricDescriptor.Formatter;
public enum ConnectionStatusDescriptor {
INPUT_BYTES(
"inputBytes",
"Bytes In (5 mins)",
"The cumulative size of all FlowFiles that were transferred to this Connection in the past 5 minutes",
Formatter.DATA_SIZE,
ConnectionStatus::getInputBytes),
INPUT_COUNT(
"inputCount",
"FlowFiles In (5 mins)",
"The number of FlowFiles that were transferred to this Connection in the past 5 minutes",
Formatter.COUNT,
s -> Long.valueOf(s.getInputCount())),
OUTPUT_BYTES(
"outputBytes",
"Bytes Out (5 mins)",
"The cumulative size of all FlowFiles that were pulled from this Connection in the past 5 minutes",
Formatter.DATA_SIZE,
ConnectionStatus::getOutputBytes),
OUTPUT_COUNT(
"outputCount",
"FlowFiles Out (5 mins)",
"The number of FlowFiles that were pulled from this Connection in the past 5 minutes",
Formatter.COUNT,
s -> Long.valueOf(s.getOutputCount())),
QUEUED_BYTES(
"queuedBytes",
"Queued Bytes",
"The number of Bytes queued in this Connection",
Formatter.DATA_SIZE,
ConnectionStatus::getQueuedBytes),
QUEUED_COUNT(
"queuedCount",
"Queued Count",
"The number of FlowFiles queued in this Connection",
Formatter.COUNT,
s -> Long.valueOf(s.getQueuedCount())),
TOTAL_QUEUED_DURATION(
"totalQueuedDuration",
"Total Queued Duration (millis)",
"The sum of the amount of time that all FlowFiles in the Connection have been in the queue",
Formatter.COUNT,
ConnectionStatus::getTotalQueuedDuration),
MAX_QUEUED_DURATION(
"maxQueuedDuration",
"Max Queued Duration (hr:min:sec)",
"The maximum amount of time that any FlowFile currently in this Connection has been in the queue",
Formatter.DURATION,
ConnectionStatus::getMaxQueuedDuration),
AVERAGE_QUEUED_DURATION(
"averageQueuedDuration",
"Average Queued Duration (hr:min:sec)",
"The average amount of time that each FlowFile currently in the Connection has been in the queue",
Formatter.DURATION,
s -> s.getQueuedCount() == 0 ? 0L : s.getTotalQueuedDuration() / s.getQueuedCount());
private MetricDescriptor<ConnectionStatus> descriptor;
ConnectionStatusDescriptor(final String field, final String label, final String description,
final MetricDescriptor.Formatter formatter, final ValueMapper<ConnectionStatus> valueFunction) {
this.descriptor = new StandardMetricDescriptor<>(this::ordinal, field, label, description, formatter, valueFunction);
}
public String getField() {
return descriptor.getField();
}
public MetricDescriptor<ConnectionStatus> getDescriptor() {
return descriptor;
}
}