Package org.opennms.netmgt.dao.support
Class NewtsResourceStorageDao
- java.lang.Object
-
- org.opennms.netmgt.dao.support.NewtsResourceStorageDao
-
- All Implemented Interfaces:
ResourceStorageDao
public class NewtsResourceStorageDao extends Object implements ResourceStorageDao
Resource Storage Dao implementation for Newts that leverages the Search API for walking the resource tree. In Newts, samples are associated with metrics, which are in turn associated with resources. Here we split the resource id into two parts: bucket: last element of the resource id resource path: all the elements before the bucket Relating this to .rrd file on disk, the bucket would be the filename, and the resource path would be its folder.- Author:
- jwhite
-
-
Constructor Summary
Constructors Constructor Description NewtsResourceStorageDao()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.booleandelete(ResourcePath path)Deletes all of the resources and metric bellow the given path.booleanexists(ResourcePath path, int depth)Verifies if a path contains one or more metrics at the given depth.booleanexistsWithin(ResourcePath path, int depth)Verifies if a path contains one or more metrics within the given depth.Set<OnmsAttribute>getAttributes(ResourcePath path)Retrieves the set of (resource-level) attributes stored at the given path.Map<String,String>getMetaData(ResourcePath path)Retrieves the meta-data stored at the given path.StringgetStringAttribute(ResourcePath path, String key)Returns the value for the given (resource-level) attribute, or null if it does not exist.Map<String,String>getStringAttributes(ResourcePath path)Returns the value for the given (resource-level) attribute, or null if it does not exist.voidsetContext(org.opennms.newts.api.Context context)voidsetIndexer(org.opennms.newts.cassandra.search.CassandraIndexer indexer)voidsetNewtsWriter(NewtsWriter newtsWriter)voidsetSampleRepository(org.opennms.newts.persistence.cassandra.CassandraSampleRepository sampleRepository)voidsetSearchableCache(SearchableResourceMetadataCache searchableCache)voidsetSearcher(org.opennms.newts.cassandra.search.CassandraSearcher searcher)voidsetStringAttribute(ResourcePath path, String key, String value)Sets the specified (resource-level) attribute at the given path.protected static ResourcePathtoChildResourcePath(ResourcePath parent, String resourceId)voidupdateMetricToResourceMappings(ResourcePath path, Map<String,String> metricsNameToResourceNames)Maps the given metric names to the their associated resources names.
-
-
-
Method Detail
-
exists
public boolean exists(ResourcePath path, int depth)
Description copied from interface:ResourceStorageDaoVerifies 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:
existsin interfaceResourceStorageDao- Parameters:
path- resource path used as the root of the checkdepth- 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:ResourceStorageDaoVerifies 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:
existsWithinin interfaceResourceStorageDao- Parameters:
path- resource path used as the root of the checkdepth- a non-negative integer- Returns:
- true if one or more metrics exist, false otherwise
-
children
public Set<ResourcePath> children(ResourcePath path, int depth)
Description copied from interface:ResourceStorageDaoRetrieves 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:
childrenin interfaceResourceStorageDao- Parameters:
path- resource path used as the root of the checkdepth- a positive integer- Returns:
- the set of child paths containing metrics
-
delete
public boolean delete(ResourcePath path)
Description copied from interface:ResourceStorageDaoDeletes all of the resources and metric bellow the given path. Returns true if the operation succeeded.- Specified by:
deletein interfaceResourceStorageDao
-
getAttributes
public Set<OnmsAttribute> getAttributes(ResourcePath path)
Description copied from interface:ResourceStorageDaoRetrieves the set of (resource-level) attributes stored at the given path.- Specified by:
getAttributesin interfaceResourceStorageDao
-
setStringAttribute
public void setStringAttribute(ResourcePath path, String key, String value)
Description copied from interface:ResourceStorageDaoSets the specified (resource-level) attribute at the given path. Should not be called directly but only through the BasePersister.- Specified by:
setStringAttributein interfaceResourceStorageDao
-
getStringAttribute
public String getStringAttribute(ResourcePath path, String key)
Description copied from interface:ResourceStorageDaoReturns the value for the given (resource-level) attribute, or null if it does not exist.- Specified by:
getStringAttributein interfaceResourceStorageDao
-
getStringAttributes
public Map<String,String> getStringAttributes(ResourcePath path)
Description copied from interface:ResourceStorageDaoReturns the value for the given (resource-level) attribute, or null if it does not exist.- Specified by:
getStringAttributesin interfaceResourceStorageDao
-
getMetaData
public Map<String,String> getMetaData(ResourcePath path)
Description copied from interface:ResourceStorageDaoRetrieves the meta-data stored at the given path.- Specified by:
getMetaDatain interfaceResourceStorageDao
-
updateMetricToResourceMappings
public void updateMetricToResourceMappings(ResourcePath path, Map<String,String> metricsNameToResourceNames)
Description copied from interface:ResourceStorageDaoMaps 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:
updateMetricToResourceMappingsin interfaceResourceStorageDao- Parameters:
path- parent resource pathmetricsNameToResourceNames- metric to resource mappings
-
toChildResourcePath
protected static ResourcePath toChildResourcePath(ResourcePath parent, String resourceId)
-
setSearchableCache
public void setSearchableCache(SearchableResourceMetadataCache searchableCache)
-
setSearcher
public void setSearcher(org.opennms.newts.cassandra.search.CassandraSearcher searcher)
-
setContext
public void setContext(org.opennms.newts.api.Context context)
-
setNewtsWriter
public void setNewtsWriter(NewtsWriter newtsWriter)
-
setIndexer
public void setIndexer(org.opennms.newts.cassandra.search.CassandraIndexer indexer)
-
setSampleRepository
public void setSampleRepository(org.opennms.newts.persistence.cassandra.CassandraSampleRepository sampleRepository)
-
-