/*
* 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.web.api.dto.status;
import com.wordnik.swagger.annotations.ApiModelProperty;
import javax.xml.bind.annotation.XmlType;
/**
* DTO for serializing the status of a processor.
*/
@XmlType(name = "processorStatusSnapshot")
public class ProcessorStatusSnapshotDTO implements Cloneable {
private String id;
private String groupId;
private String name;
private String type;
private String runStatus;
private Long bytesRead = 0L;
private Long bytesWritten = 0L;
private String read;
private String written;
private Integer flowFilesIn = 0;
private Long bytesIn = 0L;
private String input;
private Integer flowFilesOut = 0;
private Long bytesOut = 0L;
private String output;
private Integer taskCount = 0;
private Long tasksDurationNanos = 0L;
private String tasks;
private String tasksDuration;
private Integer activeThreadCount = 0;
/* getters / setters */
/**
* @return The processor id
*/
@ApiModelProperty("The id of the processor.")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* @return The processor name
*/
@ApiModelProperty("The name of the prcessor.")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* @return The processor type
*/
@ApiModelProperty("The type of the processor.")
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
/**
* @return run status of this processor
*/
@ApiModelProperty(
value = "The state of the processor.",
allowableValues = "RUNNING, STOPPED, DISABLED, INVALID"
)
public String getRunStatus() {
return runStatus;
}
public void setRunStatus(String runStatus) {
this.runStatus = runStatus;
}
/**
* @return The total count and size of flow files that have been accepted in the last five minutes
*/
@ApiModelProperty("The count/size of flowfiles that have been accepted in the last 5 minutes.")
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
/**
* @return number of bytes read
*/
@ApiModelProperty("The number of bytes read in the last 5 minutes.")
public String getRead() {
return read;
}
public void setRead(String read) {
this.read = read;
}
/**
* @return number of bytes written
*/
@ApiModelProperty("The number of bytes written in the last 5 minutes.")
public String getWritten() {
return written;
}
public void setWritten(String written) {
this.written = written;
}
/**
* @return the ID of the Process Group to which this processor belongs.
*/
@ApiModelProperty("The id of the parent process group to which the processor belongs.")
public String getGroupId() {
return groupId;
}
public void setGroupId(final String groupId) {
this.groupId = groupId;
}
/**
* @return The total count and size of flow files that have been processed in the last five minutes
*/
@ApiModelProperty("The count/size of flowfiles that have been processed in the last 5 minutes.")
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
/**
* @return number of threads currently running for this Processor
*/
@ApiModelProperty("The number of threads currently executing in the processor.")
public Integer getActiveThreadCount() {
return activeThreadCount;
}
public void setActiveThreadCount(Integer threadCount) {
this.activeThreadCount = threadCount;
}
/**
* @return number of task this connectable has had over the last 5 minutes
*/
@ApiModelProperty("The total number of task this connectable has completed over the last 5 minutes.")
public String getTasks() {
return tasks;
}
public void setTasks(String tasks) {
this.tasks = tasks;
}
/**
* @return total duration of all tasks for this connectable over the last 5 minutes
*/
@ApiModelProperty("The total duration of all tasks for this connectable over the last 5 minutes.")
public String getTasksDuration() {
return tasksDuration;
}
public void setTasksDuration(String tasksDuration) {
this.tasksDuration = tasksDuration;
}
@ApiModelProperty("The number of bytes read by this Processor in the last 5 mintues")
public Long getBytesRead() {
return bytesRead;
}
public void setBytesRead(Long bytesRead) {
this.bytesRead = bytesRead;
}
@ApiModelProperty("The number of bytes written by this Processor in the last 5 minutes")
public Long getBytesWritten() {
return bytesWritten;
}
public void setBytesWritten(Long bytesWritten) {
this.bytesWritten = bytesWritten;
}
@ApiModelProperty("The number of FlowFiles that have been accepted in the last 5 minutes")
public Integer getFlowFilesIn() {
return flowFilesIn;
}
public void setFlowFilesIn(Integer flowFilesIn) {
this.flowFilesIn = flowFilesIn;
}
@ApiModelProperty("The size of the FlowFiles that have been accepted in the last 5 minutes")
public Long getBytesIn() {
return bytesIn;
}
public void setBytesIn(Long bytesIn) {
this.bytesIn = bytesIn;
}
@ApiModelProperty("The number of FlowFiles transferred to a Connection in the last 5 minutes")
public Integer getFlowFilesOut() {
return flowFilesOut;
}
public void setFlowFilesOut(Integer flowFilesOut) {
this.flowFilesOut = flowFilesOut;
}
@ApiModelProperty("The size of the FlowFiles transferred to a Connection in the last 5 minutes")
public Long getBytesOut() {
return bytesOut;
}
public void setBytesOut(Long bytesOut) {
this.bytesOut = bytesOut;
}
@ApiModelProperty("The number of times this Processor has run in the last 5 minutes")
public Integer getTaskCount() {
return taskCount;
}
public void setTaskCount(Integer taskCount) {
this.taskCount = taskCount;
}
@ApiModelProperty("The number of nanoseconds that this Processor has spent running in the last 5 minutes")
public Long getTasksDurationNanos() {
return tasksDurationNanos;
}
public void setTasksDurationNanos(Long taskNanos) {
this.tasksDurationNanos = taskNanos;
}
@Override
public ProcessorStatusSnapshotDTO clone() {
final ProcessorStatusSnapshotDTO other = new ProcessorStatusSnapshotDTO();
other.setId(getId());
other.setGroupId(getGroupId());
other.setName(getName());
other.setType(getType());
other.setRunStatus(getRunStatus());
other.setBytesRead(getBytesRead());
other.setBytesWritten(getBytesWritten());
other.setFlowFilesIn(getFlowFilesIn());
other.setBytesIn(getBytesIn());
other.setFlowFilesOut(getFlowFilesOut());
other.setBytesOut(getBytesOut());
other.setTaskCount(getTaskCount());
other.setTasksDuration(getTasksDuration());
other.setTasksDurationNanos(getTasksDurationNanos());
other.setActiveThreadCount(getActiveThreadCount());
other.setInput(getInput());
other.setOutput(getOutput());
other.setRead(getRead());
other.setWritten(getWritten());
other.setTasks(getTasks());
return other;
}
}