Class FunctionRuntimeManager
- java.lang.Object
-
- org.apache.pulsar.functions.worker.FunctionRuntimeManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class FunctionRuntimeManager extends java.lang.Object implements java.lang.AutoCloseableThis class managers all aspects of functions assignments and running of function assignments for this worker
-
-
Constructor Summary
Constructors Constructor Description FunctionRuntimeManager(org.apache.pulsar.functions.worker.WorkerConfig workerConfig, PulsarWorkerService workerService, org.apache.distributedlog.api.namespace.Namespace dlogNamespace, MembershipManager membershipManager, org.apache.pulsar.functions.worker.ConnectorsManager connectorsManager, FunctionsManager functionsManager, FunctionMetaDataManager functionMetaDataManager, WorkerStatsManager workerStatsManager, ErrorNotifier errorNotifier)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voiddeleteAssignment(java.lang.String fullyQualifiedInstanceId)org.apache.pulsar.functions.proto.Function.AssignmentfindFunctionAssignment(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId)Find a assignment of a functionjava.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment>findFunctionAssignments(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName)Find all instance assignments of functionstatic java.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment>findFunctionAssignments(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.apache.pulsar.functions.proto.Function.Assignment>> workerIdToAssignments)java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.apache.pulsar.functions.proto.Function.Assignment>>getCurrentAssignments()Get current assignmentsorg.apache.pulsar.common.policies.data.FunctionInstanceStatsDataImplgetFunctionInstanceStats(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId, java.net.URI uri)Get stats of a function instance.FunctionRuntimeInfogetFunctionRuntimeInfo(java.lang.String fullyQualifiedInstanceId)java.util.Map<java.lang.String,FunctionRuntimeInfo>getFunctionRuntimeInfos()org.apache.pulsar.common.policies.data.FunctionStatsImplgetFunctionStats(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.net.URI uri)Get stats of all function instances.intgetMyInstances()Methods for metricsorg.apache.pulsar.client.api.MessageIdinitialize()Initializes the FunctionRuntimeManager.voidprocessAssignment(org.apache.pulsar.functions.proto.Function.Assignment newAssignment)Process an assignment update from the assignment topicvoidprocessAssignmentMessage(org.apache.pulsar.client.api.Message<byte[]> msg)voidremoveAssignments(java.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment> assignments)Removes a collection of assignmentsvoidrestartFunctionInstance(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId, java.net.URI uri)voidrestartFunctionInstances(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName)voidstopAllOwnedFunctions()It stops all functions instances owned by current worker
-
-
-
Constructor Detail
-
FunctionRuntimeManager
public FunctionRuntimeManager(org.apache.pulsar.functions.worker.WorkerConfig workerConfig, PulsarWorkerService workerService, org.apache.distributedlog.api.namespace.Namespace dlogNamespace, MembershipManager membershipManager, org.apache.pulsar.functions.worker.ConnectorsManager connectorsManager, FunctionsManager functionsManager, FunctionMetaDataManager functionMetaDataManager, WorkerStatsManager workerStatsManager, ErrorNotifier errorNotifier) throws java.lang.Exception- Throws:
java.lang.Exception
-
-
Method Detail
-
initialize
public org.apache.pulsar.client.api.MessageId initialize()
Initializes the FunctionRuntimeManager. Does the following: 1. Consume all existing assignments to establish existing/latest set of assignments 2. After current assignments are read, assignments belonging to this worker will be processed- Returns:
- the message id of the message processed during init phase
-
getCurrentAssignments
public java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.apache.pulsar.functions.proto.Function.Assignment>> getCurrentAssignments()
Get current assignments- Returns:
- a map of current assignments in the following format {workerId : {FullyQualifiedInstanceId : Assignment}}
-
findFunctionAssignment
public org.apache.pulsar.functions.proto.Function.Assignment findFunctionAssignment(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId)Find a assignment of a function- Parameters:
tenant- the tenant the function belongs tonamespace- the namespace the function belongs tofunctionName- the function name- Returns:
- the assignment of the function
-
findFunctionAssignments
public java.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment> findFunctionAssignments(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName)Find all instance assignments of function- Parameters:
tenant-namespace-functionName-- Returns:
-
findFunctionAssignments
public static java.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment> findFunctionAssignments(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.apache.pulsar.functions.proto.Function.Assignment>> workerIdToAssignments)
-
removeAssignments
public void removeAssignments(java.util.Collection<org.apache.pulsar.functions.proto.Function.Assignment> assignments)
Removes a collection of assignments- Parameters:
assignments- assignments to remove
-
restartFunctionInstance
public void restartFunctionInstance(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId, java.net.URI uri) throws java.lang.Exception- Throws:
java.lang.Exception
-
restartFunctionInstances
public void restartFunctionInstances(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName) throws java.lang.Exception- Throws:
java.lang.Exception
-
stopAllOwnedFunctions
public void stopAllOwnedFunctions()
It stops all functions instances owned by current worker- Throws:
java.lang.Exception
-
getFunctionInstanceStats
public org.apache.pulsar.common.policies.data.FunctionInstanceStatsDataImpl getFunctionInstanceStats(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId, java.net.URI uri)Get stats of a function instance. If this worker is not running the function instance.- Parameters:
tenant- the tenant the function belongs tonamespace- the namespace the function belongs tofunctionName- the function nameinstanceId- the function instance id- Returns:
- jsonObject containing stats for instance
-
getFunctionStats
public org.apache.pulsar.common.policies.data.FunctionStatsImpl getFunctionStats(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.net.URI uri) throws org.apache.pulsar.client.admin.PulsarAdminExceptionGet stats of all function instances.- Parameters:
tenant- the tenant the function belongs tonamespace- the namespace the function belongs tofunctionName- the function name- Returns:
- a list of function statuses
- Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
processAssignmentMessage
public void processAssignmentMessage(org.apache.pulsar.client.api.Message<byte[]> msg)
-
processAssignment
public void processAssignment(org.apache.pulsar.functions.proto.Function.Assignment newAssignment)
Process an assignment update from the assignment topic- Parameters:
newAssignment- the assignment
-
deleteAssignment
public void deleteAssignment(java.lang.String fullyQualifiedInstanceId)
-
getFunctionRuntimeInfos
public java.util.Map<java.lang.String,FunctionRuntimeInfo> getFunctionRuntimeInfos()
-
close
public void close() throws java.lang.Exception- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.lang.Exception
-
getFunctionRuntimeInfo
public FunctionRuntimeInfo getFunctionRuntimeInfo(java.lang.String fullyQualifiedInstanceId)
-
getMyInstances
public int getMyInstances()
Methods for metrics
-
-