Package org.apache.hadoop.fs.azurebfs.utils

Enum Class TracingHeaderVersion

java.lang.Object
java.lang.Enum<TracingHeaderVersion>
org.apache.hadoop.fs.azurebfs.utils.TracingHeaderVersion
All Implemented Interfaces:
Serializable, Comparable<TracingHeaderVersion>, Constable

public enum TracingHeaderVersion extends Enum<TracingHeaderVersion>
Enum representing the version of the tracing header used in Azure Blob File System (ABFS). It defines two versions: V0 and V1, with their respective field counts. Any changes to the tracing header should introduce a new version so that every version has a fixed predefined schema of fields.
  • Enum Constant Details

    • V0

      public static final TracingHeaderVersion V0
      Version 0 of the tracing header, which has no version prefix and contains 8 permanent and a few optional fields. This is the initial version of the tracing header.
    • V1

      public static final TracingHeaderVersion V1
      Version 1 of the tracing header, which includes a version prefix and has 13 permanent fields. This version is used for the current tracing header schema.
      
       Schema: version:clientCorrelationId:clientRequestId:fileSystemId
               :primaryRequestId:streamId:opType:retryHeader:ingressHandler
               :position:operatedBlobCount:operationSpecificHeader:httpOperationHeader
       
    • V2

      public static final TracingHeaderVersion V2
      Version 2 of the tracing header, which includes a version prefix and has 16 permanent fields. This version is used for the current tracing header schema.
      
       Schema: version:clientCorrelationId:clientRequestId:fileSystemId
               :primaryRequestId:streamId:opType:retryHeader:ingressHandler
               :position:operatedBlobCount:operationSpecificHeader:httpOperationHeader
               :resourceUtilizationMetrics:fnsEndptConvertedIndicator
       
    • AV0

      public static final TracingHeaderVersion AV0
      Version 0 of the aggregated metrics tracing header, which includes a version prefix and has 3 permanent fields. This version is used for the aggregated metrics tracing header schema.
      
       Schema: metricsVersion:List<AggregatedMetrics>
            where AggregatedMetrics = clientCorrelationId:fileSystemId:aggregated-metrics
            and AggregatedMetrics is enclosed within [] and separated by :
       
  • Method Details

    • values

      public static TracingHeaderVersion[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static TracingHeaderVersion valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • toString

      public String toString()
      Overrides:
      toString in class Enum<TracingHeaderVersion>
    • getCurrentVersion

      public static TracingHeaderVersion getCurrentVersion()
      Returns the latest version of the tracing header. Any changes done to the schema of tracing context header should be accompanied by a version bump.
      Returns:
      the latest version of the tracing header.
    • getMetricsCurrentVersion

      public static TracingHeaderVersion getMetricsCurrentVersion()
    • getFieldCount

      public int getFieldCount()
    • getVersionString

      public String getVersionString()