Class FilesystemResourceStorageDao

  • All Implemented Interfaces:
    ResourceStorageDao, org.springframework.beans.factory.InitializingBean

    public class FilesystemResourceStorageDao
    extends java.lang.Object
    implements ResourceStorageDao, org.springframework.beans.factory.InitializingBean
    Used in conjunction with RRD/JRB strategies that persist metrics to the local disk.
    Author:
    jwhite
    • Constructor Detail

      • FilesystemResourceStorageDao

        public FilesystemResourceStorageDao()
    • Method Detail

      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception
      • exists

        public boolean exists​(ResourcePath path,
                              int depth)
        Description copied from interface: ResourceStorageDao
        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
        Specified by:
        exists in interface ResourceStorageDao
        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

        public boolean existsWithin​(ResourcePath path,
                                    int depth)
        Description copied from interface: ResourceStorageDao
        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
        Specified by:
        existsWithin in interface ResourceStorageDao
        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

        public java.util.Set<ResourcePath> children​(ResourcePath path,
                                                    int depth)
        Description copied from interface: ResourceStorageDao
        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'}
        Specified by:
        children in interface ResourceStorageDao
        Parameters:
        path - resource path used as the root of the check
        depth - a positive integer
        Returns:
        the set of child paths containing metrics
      • getStringAttributes

        public java.util.Map<java.lang.String,​java.lang.String> getStringAttributes​(ResourcePath path)
        Description copied from interface: ResourceStorageDao
        Returns the value for the given (resource-level) attribute, or null if it does not exist.
        Specified by:
        getStringAttributes in interface ResourceStorageDao
      • updateMetricToResourceMappings

        public void updateMetricToResourceMappings​(ResourcePath path,
                                                   java.util.Map<java.lang.String,​java.lang.String> metricsNameToResourceNames)
        Description copied from interface: ResourceStorageDao
        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.
        Specified by:
        updateMetricToResourceMappings in interface ResourceStorageDao
        Parameters:
        path - parent resource path
        metricsNameToResourceNames - metric to resource mappings
      • setRrdDirectory

        public void setRrdDirectory​(java.io.File rrdDirectory)
      • getRrdDirectory

        public java.io.File getRrdDirectory()
      • setRrdStrategy

        public void setRrdStrategy​(RrdStrategy<?,​?> rrdStrategy)
      • setRrdExtension

        public void setRrdExtension​(java.lang.String rrdExtension)