Class Resource

java.lang.Object
io.opentelemetry.sdk.resources.Resource
Direct Known Subclasses:
AutoValue_Resource

@Immutable public abstract class Resource extends Object
Resource represents a resource, which capture identifying information about the entities for which signals (stats or traces) are reported.
  • Field Details

    • logger

      private static final Logger logger
    • SERVICE_NAME

      private static final AttributeKey<String> SERVICE_NAME
    • TELEMETRY_SDK_LANGUAGE

      private static final AttributeKey<String> TELEMETRY_SDK_LANGUAGE
    • TELEMETRY_SDK_NAME

      private static final AttributeKey<String> TELEMETRY_SDK_NAME
    • TELEMETRY_SDK_VERSION

      private static final AttributeKey<String> TELEMETRY_SDK_VERSION
    • MAX_LENGTH

      private static final int MAX_LENGTH
      See Also:
    • ERROR_MESSAGE_INVALID_CHARS

      private static final String ERROR_MESSAGE_INVALID_CHARS
      See Also:
    • ERROR_MESSAGE_INVALID_VALUE

      private static final String ERROR_MESSAGE_INVALID_VALUE
      See Also:
    • EMPTY

      private static final Resource EMPTY
    • TELEMETRY_SDK

      private static final Resource TELEMETRY_SDK
    • MANDATORY

      private static final Resource MANDATORY
      The MANDATORY Resource instance contains the mandatory attributes that must be used if they are not provided by the Resource that is given to an SDK signal provider.
    • DEFAULT

      private static final Resource DEFAULT
  • Constructor Details

    • Resource

      Resource()
  • Method Details

    • getDefault

      public static Resource getDefault()
      Returns the default Resource. This resource contains the default attributes provided by the SDK.
      Returns:
      a Resource.
    • empty

      public static Resource empty()
      Returns an empty Resource. When creating a Resource, it is strongly recommended to start with getDefault() instead of this method to include SDK required attributes.
      Returns:
      an empty Resource.
    • create

      public static Resource create(Attributes attributes)
      Returns a Resource.
      Parameters:
      attributes - a map of attributes that describe the resource.
      Returns:
      a Resource.
      Throws:
      NullPointerException - if attributes is null.
      IllegalArgumentException - if attribute key or attribute value is not a valid printable ASCII string or exceed MAX_LENGTH characters.
    • create

      public static Resource create(Attributes attributes, @Nullable String schemaUrl)
      Returns a Resource.
      Parameters:
      attributes - a map of Attributes that describe the resource.
      schemaUrl - The URL of the OpenTelemetry schema used to create this Resource.
      Returns:
      a Resource.
      Throws:
      NullPointerException - if attributes is null.
      IllegalArgumentException - if attribute key or attribute value is not a valid printable ASCII string or exceed MAX_LENGTH characters.
    • getSchemaUrl

      @Nullable public abstract String getSchemaUrl()
      Returns the URL of the OpenTelemetry schema used by this resource. May be null.
      Returns:
      An OpenTelemetry schema URL.
      Since:
      1.4.0
    • getAttributes

      public abstract Attributes getAttributes()
      Returns a map of attributes that describe the resource.
      Returns:
      a map of attributes.
    • getAttribute

      @Nullable public <T> T getAttribute(AttributeKey<T> key)
      Returns the value for a given resource attribute key.
      Returns:
      the value of the attribute with the given key
    • merge

      public Resource merge(@Nullable Resource other)
      Returns a new, merged Resource by merging the current Resource with the other Resource. In case of a collision, the "other" Resource takes precedence.
      Parameters:
      other - the Resource that will be merged with this.
      Returns:
      the newly merged Resource.
    • checkAttributes

      private static void checkAttributes(Attributes attributes)
    • isValid

      private static boolean isValid(String name)
      Determines whether the given String is a valid printable ASCII string with a length not exceed MAX_LENGTH characters.
      Parameters:
      name - the name to be validated.
      Returns:
      whether the name is valid.
    • isValidAndNotEmpty

      private static boolean isValidAndNotEmpty(AttributeKey<?> name)
      Determines whether the given String is a valid printable ASCII string with a length greater than 0 and not exceed MAX_LENGTH characters.
      Parameters:
      name - the name to be validated.
      Returns:
      whether the name is valid.
    • builder

      public static ResourceBuilder builder()
      Returns a new ResourceBuilder instance for creating arbitrary Resource.
      Since:
      1.1.0
    • toBuilder

      public ResourceBuilder toBuilder()
      Returns a new ResourceBuilder instance populated with the data of this Resource.
      Since:
      1.1.0