Interface ResourceStorageDao

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.Set<ResourcePath> children​(ResourcePath path, int depth)
      Retrieves the set of child paths one level bellow the given path which contain one or more metrics at the given depth.
      boolean delete​(ResourcePath path)
      Deletes all of the resources and metric bellow the given path.
      boolean exists​(ResourcePath path, int depth)
      Verifies if a path contains one or more metrics at the given depth.
      boolean existsWithin​(ResourcePath path, int depth)
      Verifies if a path contains one or more metrics within the given depth.
      java.util.Set<OnmsAttribute> getAttributes​(ResourcePath path)
      Retrieves the set of (resource-level) attributes stored at the given path.
      java.util.Map<java.lang.String,​java.lang.String> getMetaData​(ResourcePath path)
      Retrieves the meta-data stored at the given path.
      java.lang.String getStringAttribute​(ResourcePath path, java.lang.String key)
      Returns the value for the given (resource-level) attribute, or null if it does not exist.
      java.util.Map<java.lang.String,​java.lang.String> getStringAttributes​(ResourcePath path)
      Returns the value for the given (resource-level) attribute, or null if it does not exist.
      void setStringAttribute​(ResourcePath path, java.lang.String key, java.lang.String value)
      Sets the specified (resource-level) attribute at the given path.
      void updateMetricToResourceMappings​(ResourcePath path, java.util.Map<java.lang.String,​java.lang.String> metricsNameToResourceNames)
      Maps the given metric names to the their associated resources names.
    • Method Detail

      • exists

        boolean exists​(ResourcePath path,
                       int depth)
        Verifies if a path contains one or more metrics at the given depth.

        For example, assume we are working with file-system paths, and we have the following file on disk /a/b/c/some.metric. The function should behave as follows:

        • exists('/a/b/c', 0) -> true
        • exists('/a/b', 1) -> true
        • exists('/a/b', 2) -> false
        Parameters:
        path - resource path used as the root of the check
        depth - a non-negative integer
        Returns:
        true if one or more metrics exist, false otherwise
      • existsWithin

        boolean existsWithin​(ResourcePath path,
                             int depth)
        Verifies if a path contains one or more metrics within the given depth.

        For example, assume we are working with file-system paths, and we have the following file on disk /a/b/c/some.metric. The function should behave as follows:

        • exists('/a/b/c', 0) -> true
        • exists('/a/b', 1) -> true
        • exists('/a/b', 2) -> true
        • exists('/a', 1) -> false
        Parameters:
        path - resource path used as the root of the check
        depth - a non-negative integer
        Returns:
        true if one or more metrics exist, false otherwise
      • children

        java.util.Set<ResourcePath> children​(ResourcePath path,
                                             int depth)
        Retrieves the set of child paths one level bellow the given path which contain one or more metrics at the given depth.

        For example, assume we are working with file-system paths, and we have the following file on disk /a/b/c/some.metric. The function should behave as follows:

        • children('/a/b', 1) -> {'/a/b/c'}
        • children('/a/b', 2) -> {}
        • children('/a', 2) -> {'b'}
        Parameters:
        path - resource path used as the root of the check
        depth - a positive integer
        Returns:
        the set of child paths containing metrics
      • delete

        boolean delete​(ResourcePath path)
        Deletes all of the resources and metric bellow the given path. Returns true if the operation succeeded.
      • getAttributes

        java.util.Set<OnmsAttribute> getAttributes​(ResourcePath path)
        Retrieves the set of (resource-level) attributes stored at the given path.
      • setStringAttribute

        void setStringAttribute​(ResourcePath path,
                                java.lang.String key,
                                java.lang.String value)
        Sets the specified (resource-level) attribute at the given path.
      • getStringAttribute

        java.lang.String getStringAttribute​(ResourcePath path,
                                            java.lang.String key)
        Returns the value for the given (resource-level) attribute, or null if it does not exist.
      • getStringAttributes

        java.util.Map<java.lang.String,​java.lang.String> getStringAttributes​(ResourcePath path)
        Returns the value for the given (resource-level) attribute, or null if it does not exist.
      • updateMetricToResourceMappings

        void updateMetricToResourceMappings​(ResourcePath path,
                                            java.util.Map<java.lang.String,​java.lang.String> metricsNameToResourceNames)
        Maps the given metric names to the their associated resources names. The resource names are relative to the given path. When persisting to .rrd of .jrb files with storeByGroup enabled, this is used to map the data sources names (metrics) to associated .rrd files (resource names). Other strategies that can infer this information at runtime may chose to ignore calls to this method.
        Parameters:
        path - parent resource path
        metricsNameToResourceNames - metric to resource mappings
      • getMetaData

        java.util.Map<java.lang.String,​java.lang.String> getMetaData​(ResourcePath path)
        Retrieves the meta-data stored at the given path.