use of org.opennms.netmgt.config.datacollection.StorageStrategy in project opennms by OpenNMS.
the class GenericIndexResourceTypeTest method instantiate.
private GenericIndexResourceType instantiate() {
org.opennms.netmgt.config.datacollection.ResourceType rt = new org.opennms.netmgt.config.datacollection.ResourceType();
PersistenceSelectorStrategy ps = new PersistenceSelectorStrategy();
ps.setClazz("org.opennms.netmgt.collection.support.PersistAllSelectorStrategy");
rt.setPersistenceSelectorStrategy(ps);
StorageStrategy ss = new StorageStrategy();
ss.setClazz("org.opennms.netmgt.collection.support.IndexStorageStrategy");
rt.setStorageStrategy(ss);
return new GenericIndexResourceType(null, null, rt);
}
use of org.opennms.netmgt.config.datacollection.StorageStrategy in project opennms by OpenNMS.
the class XmpCollectorTest method canDetermineAppropriateResourceType.
@Test
public void canDetermineAppropriateResourceType() throws CollectionException {
NodeLevelResource nodeLevelResource = new NodeLevelResource(1);
// Define the resource type
ResourceType resourceType = new ResourceType();
resourceType.setName("rt");
resourceType.setLabel("rt label");
resourceType.setResourceLabel("${instance}");
StorageStrategy storageStrategy = new StorageStrategy();
storageStrategy.setClazz(IndexStorageStrategy.class.getCanonicalName());
resourceType.setStorageStrategy(storageStrategy);
PersistenceSelectorStrategy persistenceSelectorStrategy = new PersistenceSelectorStrategy();
persistenceSelectorStrategy.setClazz(PersistAllSelectorStrategy.class.getCanonicalName());
resourceType.setPersistenceSelectorStrategy(persistenceSelectorStrategy);
ResourceTypesDao resourceTypesDao = mock(ResourceTypesDao.class);
when(resourceTypesDao.getResourceTypeByName(resourceType.getName())).thenReturn(resourceType);
xmpCollector.setResourceTypesDao(resourceTypesDao);
// If the nodeTypeName is set to "node" it should always return a node level resource
assertThat(xmpCollector.getResource(nodeLevelResource, CollectionResource.RESOURCE_TYPE_NODE, null, "instance"), instanceOf(NodeLevelResource.class));
assertThat(xmpCollector.getResource(nodeLevelResource, CollectionResource.RESOURCE_TYPE_NODE, "some-resource", "instance"), instanceOf(NodeLevelResource.class));
// If a resource-type is set, it should always return a generic type resource
assertThat(xmpCollector.getResource(nodeLevelResource, null, "rt", "instance"), instanceOf(GenericTypeResource.class));
// Otherwise, falls back to an instance level resource
assertThat(xmpCollector.getResource(nodeLevelResource, null, null, "instance"), instanceOf(InterfaceLevelResource.class));
}
use of org.opennms.netmgt.config.datacollection.StorageStrategy in project opennms by OpenNMS.
the class WSManCollectorTest method canGenerateManyResources.
/**
* NMS-8924: Verifies that the generated collection set includes a resource
* for every node (XML) in the response.
*/
@Test
public void canGenerateManyResources() {
// Define our resource type, and create a supplier that returns a new instance on every call
NodeLevelResource node = mock(NodeLevelResource.class);
ResourceType rt = new ResourceType();
rt.setName("wsProcIndex");
rt.setLabel("Processor (wsman)");
rt.setResourceLabel("Processor (${wmiOSCpuName})");
StorageStrategy strategy = new StorageStrategy();
strategy.setClazz(SiblingColumnStorageStrategy.class.getCanonicalName());
strategy.addParameter(new Parameter("sibling-column-name", "wmiOSCpuName"));
rt.setStorageStrategy(strategy);
PersistenceSelectorStrategy pstrategy = new PersistenceSelectorStrategy();
pstrategy.setClazz(PersistAllSelectorStrategy.class.getCanonicalName());
rt.setPersistenceSelectorStrategy(pstrategy);
final AtomicInteger instanceId = new AtomicInteger();
Supplier<Resource> resourceSupplier = () -> {
return new GenericTypeResource(node, rt, Integer.toString(instanceId.getAndIncrement()));
};
// Define our group
Group group = new Group();
group.setName("windows-os-wmi-processor");
addAttribute(group, "Name", "wmiOSCpuName", AttributeType.STRING);
addAttribute(group, "InterruptsPersec", "wmiOSCpuIntsPerSec", AttributeType.GAUGE);
addAttribute(group, "PercentProcessorTime", "wmiOSCpuPctProcTime", AttributeType.GAUGE);
addAttribute(group, "PercentDPCTime", "wmiOSCpuPctDPCTime", AttributeType.GAUGE);
addAttribute(group, "PercentInterruptTime", "wmiOSCpuPctIntrTime", AttributeType.GAUGE);
addAttribute(group, "PercentUserTime", "wmiOSCpuPctUserTime", AttributeType.GAUGE);
// Mock the agent
CollectionAgent agent = mock(CollectionAgent.class);
when(agent.getStorageResourcePath()).thenReturn(ResourcePath.get());
CollectionSetBuilder builder = new CollectionSetBuilder(agent);
// Sample data
XMLTag xmlTag = XMLDoc.newDocument(true).addRoot("body").addTag("Win32_PerfFormattedData_PerfOS_Processor").addTag("Name").setText("c0").addTag("InterruptsPersec").setText("95").gotoRoot().addTag("Win32_PerfFormattedData_PerfOS_Processor").addTag("Name").setText("c1").addTag("InterruptsPersec").setText("100");
List<Node> nodes = xmlTag.gotoRoot().getChildElement().stream().map(el -> (Node) el).collect(Collectors.toList());
// Process the data and generate the collection set
WsManCollector.processEnumerationResults(group, builder, resourceSupplier, nodes);
// Verify the result
CollectionSet collectionSet = builder.build();
assertEquals(Arrays.asList("wsProcIndex/c0/windows-os-wmi-processor/wmiOSCpuName[c0,null]", "wsProcIndex/c0/windows-os-wmi-processor/wmiOSCpuIntsPerSec[null,95.0]", "wsProcIndex/c1/windows-os-wmi-processor/wmiOSCpuName[c1,null]", "wsProcIndex/c1/windows-os-wmi-processor/wmiOSCpuIntsPerSec[null,100.0]"), CollectionSetUtils.flatten(collectionSet));
assertEquals(Sets.newHashSet("c0", "c1"), CollectionSetUtils.getResourcesByLabel(collectionSet).keySet());
}
use of org.opennms.netmgt.config.datacollection.StorageStrategy in project opennms by OpenNMS.
the class ThresholdingVisitorIT method createWmiLogicalDiskResourceType.
private static org.opennms.netmgt.config.datacollection.ResourceType createWmiLogicalDiskResourceType() {
org.opennms.netmgt.config.datacollection.ResourceType wmiLogicalDisk = new org.opennms.netmgt.config.datacollection.ResourceType();
wmiLogicalDisk.setName("wmiLogicalDisk");
wmiLogicalDisk.setLabel("(wsman) Logical Storage");
wmiLogicalDisk.setResourceLabel("Logical Disk (${wmiLDName})");
PersistenceSelectorStrategy pss = new PersistenceSelectorStrategy();
pss.setClazz(PersistAllSelectorStrategy.class.getCanonicalName());
wmiLogicalDisk.setPersistenceSelectorStrategy(pss);
StorageStrategy ss = new StorageStrategy();
ss.setClazz(SiblingColumnStorageStrategy.class.getCanonicalName());
org.opennms.netmgt.config.datacollection.Parameter siblingColumnName = new org.opennms.netmgt.config.datacollection.Parameter();
siblingColumnName.setKey("sibling-column-name");
siblingColumnName.setValue("wmiLDName");
ss.addParameter(siblingColumnName);
wmiLogicalDisk.setStorageStrategy(ss);
return wmiLogicalDisk;
}
Aggregations