类 RuntimeUtils


  • public class RuntimeUtils
    extends java.lang.Object
    Util class for common runtime functionality.
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static java.util.List<java.lang.String> composeCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig, java.lang.String instanceFile, java.lang.String extraDependenciesDir, java.lang.String logDirectory, java.lang.String originalCodeFileName, java.lang.String pulsarServiceUrl, java.lang.String stateStorageServiceUrl, org.apache.pulsar.functions.instance.AuthenticationConfig authConfig, java.lang.String shardId, java.lang.Integer grpcPort, java.lang.Long expectedHealthCheckInterval, java.lang.String logConfigFile, java.lang.String secretsProviderClassName, java.lang.String secretsProviderConfig, java.lang.Boolean installUserCodeDependencies, java.lang.String pythonDependencyRepository, java.lang.String pythonExtraDependencyRepository, java.lang.String narExtractionDirectory, java.lang.String functionInstanceClassPath, java.lang.String pulsarWebServiceUrl)  
      static java.lang.String genFunctionLogFolder​(java.lang.String logDirectory, org.apache.pulsar.functions.instance.InstanceConfig instanceConfig)  
      static java.util.List<java.lang.String> getArgsBeforeCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig, java.lang.String extraDependenciesDir)  
      static java.util.List<java.lang.String> getCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig, java.lang.String instanceFile, java.lang.String extraDependenciesDir, java.lang.String logDirectory, java.lang.String originalCodeFileName, java.lang.String pulsarServiceUrl, java.lang.String stateStorageServiceUrl, org.apache.pulsar.functions.instance.AuthenticationConfig authConfig, java.lang.String shardId, java.lang.Integer grpcPort, java.lang.Long expectedHealthCheckInterval, java.lang.String logConfigFile, java.lang.String secretsProviderClassName, java.lang.String secretsProviderConfig, java.lang.Boolean installUserCodeDependencies, java.lang.String pythonDependencyRepository, java.lang.String pythonExtraDependencyRepository, java.lang.String narExtractionDirectory, java.lang.String functionInstanceClassPath, boolean k8sRuntime, java.lang.String pulsarWebServiceUrl)  
      static java.util.List<java.lang.String> getGoInstanceCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig, java.lang.String originalCodeFileName, java.lang.String pulsarServiceUrl, boolean k8sRuntime)
      Different from python and java function, Go function uploads a complete executable file(including: instance file + user code file).
      static java.lang.String getPrometheusMetrics​(int metricsPort)  
      static <T> T getRuntimeFunctionConfig​(java.util.Map<java.lang.String,​java.lang.Object> configMap, java.lang.Class<T> functionRuntimeConfigClass)  
      static void registerDefaultCollectors​(org.apache.pulsar.functions.instance.stats.FunctionCollectorRegistry registry)  
      static java.lang.String[] splitRuntimeArgs​(java.lang.String input)
      Regex for splitting a string using space when not surrounded by single or double quotes
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • FUNCTIONS_INSTANCE_CLASSPATH

        public static final java.lang.String FUNCTIONS_INSTANCE_CLASSPATH
        另请参阅:
        常量字段值
    • 构造器详细资料

      • RuntimeUtils

        public RuntimeUtils()
    • 方法详细资料

      • composeCmd

        public static java.util.List<java.lang.String> composeCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig,
                                                                  java.lang.String instanceFile,
                                                                  java.lang.String extraDependenciesDir,
                                                                  java.lang.String logDirectory,
                                                                  java.lang.String originalCodeFileName,
                                                                  java.lang.String pulsarServiceUrl,
                                                                  java.lang.String stateStorageServiceUrl,
                                                                  org.apache.pulsar.functions.instance.AuthenticationConfig authConfig,
                                                                  java.lang.String shardId,
                                                                  java.lang.Integer grpcPort,
                                                                  java.lang.Long expectedHealthCheckInterval,
                                                                  java.lang.String logConfigFile,
                                                                  java.lang.String secretsProviderClassName,
                                                                  java.lang.String secretsProviderConfig,
                                                                  java.lang.Boolean installUserCodeDependencies,
                                                                  java.lang.String pythonDependencyRepository,
                                                                  java.lang.String pythonExtraDependencyRepository,
                                                                  java.lang.String narExtractionDirectory,
                                                                  java.lang.String functionInstanceClassPath,
                                                                  java.lang.String pulsarWebServiceUrl)
                                                           throws java.lang.Exception
        抛出:
        java.lang.Exception
      • getArgsBeforeCmd

        public static java.util.List<java.lang.String> getArgsBeforeCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig,
                                                                        java.lang.String extraDependenciesDir)
      • getGoInstanceCmd

        public static java.util.List<java.lang.String> getGoInstanceCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig,
                                                                        java.lang.String originalCodeFileName,
                                                                        java.lang.String pulsarServiceUrl,
                                                                        boolean k8sRuntime)
                                                                 throws java.io.IOException
        Different from python and java function, Go function uploads a complete executable file(including: instance file + user code file). Its parameter list is provided to the broker in the form of a yaml file, the advantage of this approach is that backward compatibility is guaranteed. In Java and Python the instance is managed by broker (or function worker) so the changes in command line is under control; but in Go the instance is compiled with the user function, so pulsar doesn't have the control what instance is used in the function. Hence in order to support BC for go function, we can't dynamically add more commandline arguments. Using an instance config to pass the parameters from function worker to go instance is the best way for maintaining the BC.

        When we run the go function, we only need to specify the location of the go-function file and the yaml file. The content of the yaml file will be automatically generated according to the content provided by instanceConfig.

        抛出:
        java.io.IOException
      • getCmd

        public static java.util.List<java.lang.String> getCmd​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig,
                                                              java.lang.String instanceFile,
                                                              java.lang.String extraDependenciesDir,
                                                              java.lang.String logDirectory,
                                                              java.lang.String originalCodeFileName,
                                                              java.lang.String pulsarServiceUrl,
                                                              java.lang.String stateStorageServiceUrl,
                                                              org.apache.pulsar.functions.instance.AuthenticationConfig authConfig,
                                                              java.lang.String shardId,
                                                              java.lang.Integer grpcPort,
                                                              java.lang.Long expectedHealthCheckInterval,
                                                              java.lang.String logConfigFile,
                                                              java.lang.String secretsProviderClassName,
                                                              java.lang.String secretsProviderConfig,
                                                              java.lang.Boolean installUserCodeDependencies,
                                                              java.lang.String pythonDependencyRepository,
                                                              java.lang.String pythonExtraDependencyRepository,
                                                              java.lang.String narExtractionDirectory,
                                                              java.lang.String functionInstanceClassPath,
                                                              boolean k8sRuntime,
                                                              java.lang.String pulsarWebServiceUrl)
                                                       throws java.lang.Exception
        抛出:
        java.lang.Exception
      • genFunctionLogFolder

        public static java.lang.String genFunctionLogFolder​(java.lang.String logDirectory,
                                                            org.apache.pulsar.functions.instance.InstanceConfig instanceConfig)
      • getPrometheusMetrics

        public static java.lang.String getPrometheusMetrics​(int metricsPort)
                                                     throws java.io.IOException
        抛出:
        java.io.IOException
      • splitRuntimeArgs

        public static java.lang.String[] splitRuntimeArgs​(java.lang.String input)
        Regex for splitting a string using space when not surrounded by single or double quotes
      • getRuntimeFunctionConfig

        public static <T> T getRuntimeFunctionConfig​(java.util.Map<java.lang.String,​java.lang.Object> configMap,
                                                     java.lang.Class<T> functionRuntimeConfigClass)
      • registerDefaultCollectors

        public static void registerDefaultCollectors​(org.apache.pulsar.functions.instance.stats.FunctionCollectorRegistry registry)