Committed by
Ray Milkey
Clean code and refine javadocs for control plane manager
Change-Id: Ieaaebde69ce2ab54cb819cfad1baa34ee97a7d66
Showing
11 changed files
with
251 additions
and
57 deletions
... | @@ -23,15 +23,32 @@ public class ControlMetric { | ... | @@ -23,15 +23,32 @@ public class ControlMetric { |
23 | private final ControlMetricType metricType; | 23 | private final ControlMetricType metricType; |
24 | private final MetricValue metricValue; | 24 | private final MetricValue metricValue; |
25 | 25 | ||
26 | + /** | ||
27 | + * Constructs a control metric using the given control metric type and | ||
28 | + * metric value. | ||
29 | + * | ||
30 | + * @param metricType metric type reference | ||
31 | + * @param metricValue metric value reference | ||
32 | + */ | ||
26 | public ControlMetric(ControlMetricType metricType, MetricValue metricValue) { | 33 | public ControlMetric(ControlMetricType metricType, MetricValue metricValue) { |
27 | this.metricType = metricType; | 34 | this.metricType = metricType; |
28 | this.metricValue = metricValue; | 35 | this.metricValue = metricValue; |
29 | } | 36 | } |
30 | 37 | ||
38 | + /** | ||
39 | + * Returns metric type reference. | ||
40 | + * | ||
41 | + * @return metric type reference | ||
42 | + */ | ||
31 | public ControlMetricType metricType() { | 43 | public ControlMetricType metricType() { |
32 | return metricType; | 44 | return metricType; |
33 | } | 45 | } |
34 | 46 | ||
47 | + /** | ||
48 | + * Returns metric value reference. | ||
49 | + * | ||
50 | + * @return metric value reference | ||
51 | + */ | ||
35 | public MetricValue metricValue() { | 52 | public MetricValue metricValue() { |
36 | return metricValue; | 53 | return metricValue; |
37 | } | 54 | } | ... | ... |
... | @@ -28,38 +28,44 @@ public interface ControlPlaneMonitorService { | ... | @@ -28,38 +28,44 @@ public interface ControlPlaneMonitorService { |
28 | /** | 28 | /** |
29 | * Adds a new control metric value with a certain update interval. | 29 | * Adds a new control metric value with a certain update interval. |
30 | * | 30 | * |
31 | - * @param controlMetric control plane metric (e.g., control message rate, cpu, memory, etc.) | 31 | + * @param controlMetric control plane metric (e.g., control |
32 | - * @param updateInterval value update interval (time unit will be in minute) | 32 | + * message rate, cpu, memory, etc.) |
33 | - * @param deviceId {@link org.onosproject.net.DeviceId} | 33 | + * @param updateIntervalInMinutes value update interval (in minute) |
34 | + * @param deviceId device identifier | ||
34 | */ | 35 | */ |
35 | - void updateMetric(ControlMetric controlMetric, Integer updateInterval, Optional<DeviceId> deviceId); | 36 | + void updateMetric(ControlMetric controlMetric, int updateIntervalInMinutes, |
37 | + Optional<DeviceId> deviceId); | ||
36 | 38 | ||
37 | /** | 39 | /** |
38 | * Adds a new control metric value with a certain update interval. | 40 | * Adds a new control metric value with a certain update interval. |
39 | * | 41 | * |
40 | - * @param controlMetric control plane metric (e.g., disk and network metrics) | 42 | + * @param controlMetric control plane metric (e.g., disk and |
41 | - * @param updateInterval value update interval (time unit will be in minute) | 43 | + * network metrics) |
44 | + * @param updateIntervalInMinutes value update interval (in minute) | ||
42 | * @param resourceName resource name | 45 | * @param resourceName resource name |
43 | */ | 46 | */ |
44 | - void updateMetric(ControlMetric controlMetric, Integer updateInterval, String resourceName); | 47 | + void updateMetric(ControlMetric controlMetric, int updateIntervalInMinutes, |
48 | + String resourceName); | ||
45 | 49 | ||
46 | /** | 50 | /** |
47 | * Obtains the control plane load of a specific device. | 51 | * Obtains the control plane load of a specific device. |
48 | * The metrics range from control messages and system metrics | 52 | * The metrics range from control messages and system metrics |
49 | * (e.g., CPU and memory info) | 53 | * (e.g., CPU and memory info) |
50 | * | 54 | * |
51 | - * @param nodeId node id {@link org.onosproject.cluster.NodeId} | 55 | + * @param nodeId node identifier |
52 | * @param type control metric type | 56 | * @param type control metric type |
53 | - * @param deviceId device id {@link org.onosproject.net.DeviceId} | 57 | + * @param deviceId device identifier |
54 | * @return control plane load | 58 | * @return control plane load |
55 | */ | 59 | */ |
56 | - ControlLoad getLoad(NodeId nodeId, ControlMetricType type, Optional<DeviceId> deviceId); | 60 | + ControlLoad getLoad(NodeId nodeId, ControlMetricType type, |
61 | + Optional<DeviceId> deviceId); | ||
57 | 62 | ||
58 | /** | 63 | /** |
59 | * Obtains the control plane load of a specific device. | 64 | * Obtains the control plane load of a specific device. |
60 | - * The metrics range from I/O device metrics (e.g., disk and network interface) | 65 | + * The metrics range from I/O device metrics |
66 | + * (e.g., disk and network interface) | ||
61 | * | 67 | * |
62 | - * @param nodeId node id {@link org.onosproject.cluster.NodeId} | 68 | + * @param nodeId node identifier |
63 | * @param type control metric type | 69 | * @param type control metric type |
64 | * @param resourceName resource name | 70 | * @param resourceName resource name |
65 | * @return control plane load | 71 | * @return control plane load | ... | ... |
... | @@ -27,7 +27,7 @@ public final class MetricValue { | ... | @@ -27,7 +27,7 @@ public final class MetricValue { |
27 | private final long count; | 27 | private final long count; |
28 | 28 | ||
29 | /** | 29 | /** |
30 | - * Constructor. | 30 | + * Constructs a metric value using the given rate, load and count. |
31 | * | 31 | * |
32 | * @param rate rate | 32 | * @param rate rate |
33 | * @param load load | 33 | * @param load load | ... | ... |
... | @@ -145,9 +145,9 @@ public interface MetricsDatabase { | ... | @@ -145,9 +145,9 @@ public interface MetricsDatabase { |
145 | Builder addMetricType(String metricType); | 145 | Builder addMetricType(String metricType); |
146 | 146 | ||
147 | /** | 147 | /** |
148 | - * Builds a MetricDatabase instance. | 148 | + * Builds a metric database instance. |
149 | * | 149 | * |
150 | - * @return MetricDatabase instance | 150 | + * @return metric database instance |
151 | */ | 151 | */ |
152 | MetricsDatabase build(); | 152 | MetricsDatabase build(); |
153 | } | 153 | } | ... | ... |
... | @@ -67,6 +67,12 @@ public final class ControlMetricsFactory { | ... | @@ -67,6 +67,12 @@ public final class ControlMetricsFactory { |
67 | private Set<String> diskPartitions = Sets.newConcurrentHashSet(); | 67 | private Set<String> diskPartitions = Sets.newConcurrentHashSet(); |
68 | private Set<String> nwInterfaces = Sets.newConcurrentHashSet(); | 68 | private Set<String> nwInterfaces = Sets.newConcurrentHashSet(); |
69 | 69 | ||
70 | + /** | ||
71 | + * Constructs a control metrics factory using the given metrics and device services. | ||
72 | + * | ||
73 | + * @param metricsService metric service reference | ||
74 | + * @param deviceService device service reference | ||
75 | + */ | ||
70 | private ControlMetricsFactory(MetricsService metricsService, DeviceService deviceService) { | 76 | private ControlMetricsFactory(MetricsService metricsService, DeviceService deviceService) { |
71 | this.metricsService = metricsService; | 77 | this.metricsService = metricsService; |
72 | registerMetrics(); | 78 | registerMetrics(); |
... | @@ -76,6 +82,13 @@ public final class ControlMetricsFactory { | ... | @@ -76,6 +82,13 @@ public final class ControlMetricsFactory { |
76 | addAllControlMessageMetrics(deviceIds); | 82 | addAllControlMessageMetrics(deviceIds); |
77 | } | 83 | } |
78 | 84 | ||
85 | + /** | ||
86 | + * Obtains the unique instance of ControlMetricsFactory. | ||
87 | + * | ||
88 | + * @param metricsService metric service | ||
89 | + * @param deviceService device service | ||
90 | + * @return instance of ControlMetricsFactory | ||
91 | + */ | ||
79 | public static ControlMetricsFactory getInstance(MetricsService metricsService, | 92 | public static ControlMetricsFactory getInstance(MetricsService metricsService, |
80 | DeviceService deviceService) { | 93 | DeviceService deviceService) { |
81 | if (uniqueInstance == null) { | 94 | if (uniqueInstance == null) { |
... | @@ -102,7 +115,7 @@ public final class ControlMetricsFactory { | ... | @@ -102,7 +115,7 @@ public final class ControlMetricsFactory { |
102 | /** | 115 | /** |
103 | * Adds control metrics of a new device. | 116 | * Adds control metrics of a new device. |
104 | * | 117 | * |
105 | - * @param deviceId {@link org.onosproject.net.DeviceId} | 118 | + * @param deviceId device identifier |
106 | */ | 119 | */ |
107 | public void addControlMessageMetricsByDeviceId(DeviceId deviceId) { | 120 | public void addControlMessageMetricsByDeviceId(DeviceId deviceId) { |
108 | MetricsAggregator inbound = new MetricsAggregator(metricsService, | 121 | MetricsAggregator inbound = new MetricsAggregator(metricsService, |
... | @@ -171,7 +184,7 @@ public final class ControlMetricsFactory { | ... | @@ -171,7 +184,7 @@ public final class ControlMetricsFactory { |
171 | /** | 184 | /** |
172 | * Removes control metrics of an existing device. | 185 | * Removes control metrics of an existing device. |
173 | * | 186 | * |
174 | - * @param deviceId {@link org.onosproject.net.DeviceId} | 187 | + * @param deviceId device identifier |
175 | */ | 188 | */ |
176 | public void removeControlMessageMetricsByDeviceId(DeviceId deviceId) { | 189 | public void removeControlMessageMetricsByDeviceId(DeviceId deviceId) { |
177 | inboundPacket.remove(deviceId); | 190 | inboundPacket.remove(deviceId); |
... | @@ -211,9 +224,9 @@ public final class ControlMetricsFactory { | ... | @@ -211,9 +224,9 @@ public final class ControlMetricsFactory { |
211 | } | 224 | } |
212 | 225 | ||
213 | /** | 226 | /** |
214 | - * Returns all device ids. | 227 | + * Returns all device identifiers. |
215 | * | 228 | * |
216 | - * @return a collection of device id | 229 | + * @return a collection of device identifiers |
217 | */ | 230 | */ |
218 | public Set<DeviceId> getDeviceIds() { | 231 | public Set<DeviceId> getDeviceIds() { |
219 | return ImmutableSet.copyOf(this.deviceIds); | 232 | return ImmutableSet.copyOf(this.deviceIds); |
... | @@ -222,7 +235,7 @@ public final class ControlMetricsFactory { | ... | @@ -222,7 +235,7 @@ public final class ControlMetricsFactory { |
222 | /** | 235 | /** |
223 | * Returns all disk partition names. | 236 | * Returns all disk partition names. |
224 | * | 237 | * |
225 | - * @return a collection of disk partition. | 238 | + * @return a collection of disk partitions. |
226 | */ | 239 | */ |
227 | public Set<String> getDiskPartitions() { | 240 | public Set<String> getDiskPartitions() { |
228 | return ImmutableSet.copyOf(this.diskPartitions); | 241 | return ImmutableSet.copyOf(this.diskPartitions); |
... | @@ -231,7 +244,7 @@ public final class ControlMetricsFactory { | ... | @@ -231,7 +244,7 @@ public final class ControlMetricsFactory { |
231 | /** | 244 | /** |
232 | * Returns all network interface names. | 245 | * Returns all network interface names. |
233 | * | 246 | * |
234 | - * @return a collection of network interface. | 247 | + * @return a collection of network interfaces. |
235 | */ | 248 | */ |
236 | public Set<String> getNetworkInterfaces() { | 249 | public Set<String> getNetworkInterfaces() { |
237 | return ImmutableSet.copyOf(this.nwInterfaces); | 250 | return ImmutableSet.copyOf(this.nwInterfaces); |
... | @@ -240,7 +253,7 @@ public final class ControlMetricsFactory { | ... | @@ -240,7 +253,7 @@ public final class ControlMetricsFactory { |
240 | /** | 253 | /** |
241 | * Adds control metrics for all devices. | 254 | * Adds control metrics for all devices. |
242 | * | 255 | * |
243 | - * @param deviceIds a set of deviceIds | 256 | + * @param deviceIds a set of device identifiers |
244 | */ | 257 | */ |
245 | public void addAllControlMessageMetrics(Set<DeviceId> deviceIds) { | 258 | public void addAllControlMessageMetrics(Set<DeviceId> deviceIds) { |
246 | deviceIds.forEach(v -> addControlMessageMetricsByDeviceId(v)); | 259 | deviceIds.forEach(v -> addControlMessageMetricsByDeviceId(v)); |
... | @@ -330,102 +343,239 @@ public final class ControlMetricsFactory { | ... | @@ -330,102 +343,239 @@ public final class ControlMetricsFactory { |
330 | replyPacket.clear(); | 343 | replyPacket.clear(); |
331 | } | 344 | } |
332 | 345 | ||
346 | + /** | ||
347 | + * Returns CPU load metric aggregator. | ||
348 | + * | ||
349 | + * @return metric aggregator | ||
350 | + */ | ||
333 | public MetricsAggregator cpuLoadMetric() { | 351 | public MetricsAggregator cpuLoadMetric() { |
334 | return cpuLoad; | 352 | return cpuLoad; |
335 | } | 353 | } |
336 | 354 | ||
355 | + /** | ||
356 | + * Returns total CPU time metric aggregator. | ||
357 | + * | ||
358 | + * @return metric aggregator | ||
359 | + */ | ||
337 | public MetricsAggregator totalCpuTimeMetric() { | 360 | public MetricsAggregator totalCpuTimeMetric() { |
338 | return totalCpuTime; | 361 | return totalCpuTime; |
339 | } | 362 | } |
340 | 363 | ||
364 | + /** | ||
365 | + * Returns system CPU time metric aggregator. | ||
366 | + * | ||
367 | + * @return metric aggregator | ||
368 | + */ | ||
341 | public MetricsAggregator sysCpuTimeMetric() { | 369 | public MetricsAggregator sysCpuTimeMetric() { |
342 | return sysCpuTime; | 370 | return sysCpuTime; |
343 | } | 371 | } |
344 | 372 | ||
373 | + /** | ||
374 | + * Returns user CPU time metric aggregator. | ||
375 | + * | ||
376 | + * @return metric aggregator | ||
377 | + */ | ||
345 | public MetricsAggregator userCpuTime() { | 378 | public MetricsAggregator userCpuTime() { |
346 | return userCpuTime; | 379 | return userCpuTime; |
347 | } | 380 | } |
348 | 381 | ||
382 | + /** | ||
383 | + * Returns CPU idle time metric aggregator. | ||
384 | + * | ||
385 | + * @return metric aggregator | ||
386 | + */ | ||
349 | public MetricsAggregator cpuIdleTime() { | 387 | public MetricsAggregator cpuIdleTime() { |
350 | return cpuIdleTime; | 388 | return cpuIdleTime; |
351 | } | 389 | } |
352 | 390 | ||
391 | + /** | ||
392 | + * Returns free memory ratio metric aggregator. | ||
393 | + * | ||
394 | + * @return metric aggregator | ||
395 | + */ | ||
353 | public MetricsAggregator memoryFreeRatio() { | 396 | public MetricsAggregator memoryFreeRatio() { |
354 | return memoryFreeRatio; | 397 | return memoryFreeRatio; |
355 | } | 398 | } |
356 | 399 | ||
400 | + /** | ||
401 | + * Returns used memory ratio metric aggregator. | ||
402 | + * | ||
403 | + * @return metric aggregator | ||
404 | + */ | ||
357 | public MetricsAggregator memoryUsedRatio() { | 405 | public MetricsAggregator memoryUsedRatio() { |
358 | return memoryUsedRatio; | 406 | return memoryUsedRatio; |
359 | } | 407 | } |
360 | 408 | ||
361 | - public MetricsAggregator diskReadBytes(String partitionName) { | 409 | + /** |
362 | - return diskReadBytes.get(partitionName); | 410 | + * Returns disk read bytes metric aggregator. |
411 | + * | ||
412 | + * @param resourceName name of disk resource | ||
413 | + * @return metric aggregator | ||
414 | + */ | ||
415 | + public MetricsAggregator diskReadBytes(String resourceName) { | ||
416 | + return diskReadBytes.get(resourceName); | ||
363 | } | 417 | } |
364 | 418 | ||
365 | - public MetricsAggregator diskWriteBytes(String partitionName) { | 419 | + /** |
366 | - return diskWriteBytes.get(partitionName); | 420 | + * Returns disk write bytes metric aggregator. |
421 | + * | ||
422 | + * @param resourceName name of disk resource | ||
423 | + * @return metric aggregator | ||
424 | + */ | ||
425 | + public MetricsAggregator diskWriteBytes(String resourceName) { | ||
426 | + return diskWriteBytes.get(resourceName); | ||
367 | } | 427 | } |
368 | 428 | ||
429 | + /** | ||
430 | + * Returns incoming bytes metric aggregator. | ||
431 | + * | ||
432 | + * @param interfaceName name of network interface | ||
433 | + * @return metric aggregator | ||
434 | + */ | ||
369 | public MetricsAggregator nwIncomingBytes(String interfaceName) { | 435 | public MetricsAggregator nwIncomingBytes(String interfaceName) { |
370 | return nwIncomingBytes.get(interfaceName); | 436 | return nwIncomingBytes.get(interfaceName); |
371 | } | 437 | } |
372 | 438 | ||
439 | + /** | ||
440 | + * Returns outgoing bytes metric aggregator. | ||
441 | + * | ||
442 | + * @param interfaceName name of network interface | ||
443 | + * @return metric aggregator | ||
444 | + */ | ||
373 | public MetricsAggregator nwOutgoingBytes(String interfaceName) { | 445 | public MetricsAggregator nwOutgoingBytes(String interfaceName) { |
374 | return nwOutgoingBytes.get(interfaceName); | 446 | return nwOutgoingBytes.get(interfaceName); |
375 | } | 447 | } |
376 | 448 | ||
449 | + /** | ||
450 | + * Returns incoming packets metric aggregator. | ||
451 | + * | ||
452 | + * @param interfaceName name of network interface | ||
453 | + * @return metric aggregator | ||
454 | + */ | ||
377 | public MetricsAggregator nwIncomingPackets(String interfaceName) { | 455 | public MetricsAggregator nwIncomingPackets(String interfaceName) { |
378 | return nwIncomingPackets.get(interfaceName); | 456 | return nwIncomingPackets.get(interfaceName); |
379 | } | 457 | } |
380 | 458 | ||
459 | + /** | ||
460 | + * Returns outgoing packets metric aggregator. | ||
461 | + * | ||
462 | + * @param interfaceName name of network interface | ||
463 | + * @return metric aggregator | ||
464 | + */ | ||
381 | public MetricsAggregator nwOutgoingPackets(String interfaceName) { | 465 | public MetricsAggregator nwOutgoingPackets(String interfaceName) { |
382 | return nwOutgoingPackets.get(interfaceName); | 466 | return nwOutgoingPackets.get(interfaceName); |
383 | } | 467 | } |
384 | 468 | ||
469 | + /** | ||
470 | + * Returns inbound packet metric aggregator of all devices. | ||
471 | + * | ||
472 | + * @return metric aggregator | ||
473 | + */ | ||
385 | public Map<DeviceId, MetricsAggregator> inboundPacket() { | 474 | public Map<DeviceId, MetricsAggregator> inboundPacket() { |
386 | return ImmutableMap.copyOf(inboundPacket); | 475 | return ImmutableMap.copyOf(inboundPacket); |
387 | } | 476 | } |
388 | 477 | ||
478 | + /** | ||
479 | + * Returns outgoing packet metric aggregator of all devices. | ||
480 | + * | ||
481 | + * @return metric aggregator | ||
482 | + */ | ||
389 | public Map<DeviceId, MetricsAggregator> outboundPacket() { | 483 | public Map<DeviceId, MetricsAggregator> outboundPacket() { |
390 | return ImmutableMap.copyOf(outboundPacket); | 484 | return ImmutableMap.copyOf(outboundPacket); |
391 | } | 485 | } |
392 | 486 | ||
487 | + /** | ||
488 | + * Returns flow-mod packet metric aggregator of all devices. | ||
489 | + * | ||
490 | + * @return metric aggregator | ||
491 | + */ | ||
393 | public Map<DeviceId, MetricsAggregator> flowmodPacket() { | 492 | public Map<DeviceId, MetricsAggregator> flowmodPacket() { |
394 | return ImmutableMap.copyOf(flowmodPacket); | 493 | return ImmutableMap.copyOf(flowmodPacket); |
395 | } | 494 | } |
396 | 495 | ||
496 | + /** | ||
497 | + * Returns flow-removed packet metric aggregator of all devices. | ||
498 | + * | ||
499 | + * @return metric aggregator | ||
500 | + */ | ||
397 | public Map<DeviceId, MetricsAggregator> flowrmvPacket() { | 501 | public Map<DeviceId, MetricsAggregator> flowrmvPacket() { |
398 | return ImmutableMap.copyOf(flowrmvPacket); | 502 | return ImmutableMap.copyOf(flowrmvPacket); |
399 | } | 503 | } |
400 | 504 | ||
505 | + /** | ||
506 | + * Returns request packet metric aggregator of all devices. | ||
507 | + * | ||
508 | + * @return metric aggregator | ||
509 | + */ | ||
401 | public Map<DeviceId, MetricsAggregator> requestPacket() { | 510 | public Map<DeviceId, MetricsAggregator> requestPacket() { |
402 | return ImmutableMap.copyOf(requestPacket); | 511 | return ImmutableMap.copyOf(requestPacket); |
403 | } | 512 | } |
404 | 513 | ||
514 | + /** | ||
515 | + * Returns reply packet metric aggregator of all devices. | ||
516 | + * | ||
517 | + * @return metric aggregator | ||
518 | + */ | ||
405 | public Map<DeviceId, MetricsAggregator> replyPacket() { | 519 | public Map<DeviceId, MetricsAggregator> replyPacket() { |
406 | return ImmutableMap.copyOf(replyPacket); | 520 | return ImmutableMap.copyOf(replyPacket); |
407 | } | 521 | } |
408 | 522 | ||
523 | + /** | ||
524 | + * Returns inbound packet metric aggregator of a specified device. | ||
525 | + * | ||
526 | + * @param deviceId device identifier | ||
527 | + * @return metric aggregator | ||
528 | + */ | ||
409 | public MetricsAggregator inboundPacket(DeviceId deviceId) { | 529 | public MetricsAggregator inboundPacket(DeviceId deviceId) { |
410 | return inboundPacket.get(deviceId); | 530 | return inboundPacket.get(deviceId); |
411 | } | 531 | } |
412 | 532 | ||
533 | + /** | ||
534 | + * Returns outbound packet metric aggregator of a specified device. | ||
535 | + * | ||
536 | + * @param deviceId device identifier | ||
537 | + * @return metric aggregator | ||
538 | + */ | ||
413 | public MetricsAggregator outboundPacket(DeviceId deviceId) { | 539 | public MetricsAggregator outboundPacket(DeviceId deviceId) { |
414 | return outboundPacket.get(deviceId); | 540 | return outboundPacket.get(deviceId); |
415 | } | 541 | } |
416 | 542 | ||
543 | + /** | ||
544 | + * Returns flow-mod packet metric aggregator of a specified device. | ||
545 | + * | ||
546 | + * @param deviceId device identifier | ||
547 | + * @return metric aggregator | ||
548 | + */ | ||
417 | public MetricsAggregator flowmodPacket(DeviceId deviceId) { | 549 | public MetricsAggregator flowmodPacket(DeviceId deviceId) { |
418 | return flowmodPacket.get(deviceId); | 550 | return flowmodPacket.get(deviceId); |
419 | } | 551 | } |
420 | 552 | ||
553 | + /** | ||
554 | + * Returns flow-removed packet metric aggregator of a specified device. | ||
555 | + * | ||
556 | + * @param deviceId device identifier | ||
557 | + * @return metric aggregator | ||
558 | + */ | ||
421 | public MetricsAggregator flowrmvPacket(DeviceId deviceId) { | 559 | public MetricsAggregator flowrmvPacket(DeviceId deviceId) { |
422 | return flowrmvPacket.get(deviceId); | 560 | return flowrmvPacket.get(deviceId); |
423 | } | 561 | } |
424 | 562 | ||
563 | + /** | ||
564 | + * Returns request packet metric aggregator of a specified device. | ||
565 | + * | ||
566 | + * @param deviceId device identifier | ||
567 | + * @return metric aggregator | ||
568 | + */ | ||
425 | public MetricsAggregator requestPacket(DeviceId deviceId) { | 569 | public MetricsAggregator requestPacket(DeviceId deviceId) { |
426 | return requestPacket.get(deviceId); | 570 | return requestPacket.get(deviceId); |
427 | } | 571 | } |
428 | 572 | ||
573 | + /** | ||
574 | + * Returns reply packet metric aggregator of a specified device. | ||
575 | + * | ||
576 | + * @param deviceId device identifier | ||
577 | + * @return metric aggregator | ||
578 | + */ | ||
429 | public MetricsAggregator replyPacket(DeviceId deviceId) { | 579 | public MetricsAggregator replyPacket(DeviceId deviceId) { |
430 | return replyPacket.get(deviceId); | 580 | return replyPacket.get(deviceId); |
431 | } | 581 | } | ... | ... |
... | @@ -28,7 +28,7 @@ public interface ControlMetricsObserver { | ... | @@ -28,7 +28,7 @@ public interface ControlMetricsObserver { |
28 | * Feeds the extracted value from MetricAggregator to back-end storage. | 28 | * Feeds the extracted value from MetricAggregator to back-end storage. |
29 | * | 29 | * |
30 | * @param metricsAggregator metric aggregator | 30 | * @param metricsAggregator metric aggregator |
31 | - * @param deviceId device id {@link org.onosproject.net.DeviceId} | 31 | + * @param deviceId device identification |
32 | */ | 32 | */ |
33 | void feedMetrics(MetricsAggregator metricsAggregator, Optional<DeviceId> deviceId); | 33 | void feedMetrics(MetricsAggregator metricsAggregator, Optional<DeviceId> deviceId); |
34 | 34 | ... | ... |
... | @@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory; | ... | @@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory; |
36 | 36 | ||
37 | import java.util.Map; | 37 | import java.util.Map; |
38 | import java.util.Optional; | 38 | import java.util.Optional; |
39 | +import java.util.Set; | ||
39 | import java.util.concurrent.ConcurrentHashMap; | 40 | import java.util.concurrent.ConcurrentHashMap; |
40 | 41 | ||
41 | import static org.onosproject.cpman.ControlMetricType.CPU_IDLE_TIME; | 42 | import static org.onosproject.cpman.ControlMetricType.CPU_IDLE_TIME; |
... | @@ -83,18 +84,18 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { | ... | @@ -83,18 +84,18 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { |
83 | private static final String DISK = "Disk"; | 84 | private static final String DISK = "Disk"; |
84 | private static final String NETWORK = "Network"; | 85 | private static final String NETWORK = "Network"; |
85 | 86 | ||
86 | - private static final ImmutableSet<ControlMetricType> CPU_METRICS = | 87 | + private static final Set<ControlMetricType> CPU_METRICS = |
87 | ImmutableSet.of(CPU_IDLE_TIME, CPU_LOAD, SYS_CPU_TIME, | 88 | ImmutableSet.of(CPU_IDLE_TIME, CPU_LOAD, SYS_CPU_TIME, |
88 | USER_CPU_TIME, TOTAL_CPU_TIME); | 89 | USER_CPU_TIME, TOTAL_CPU_TIME); |
89 | - private static final ImmutableSet<ControlMetricType> MEMORY_METRICS = | 90 | + private static final Set<ControlMetricType> MEMORY_METRICS = |
90 | ImmutableSet.of(MEMORY_FREE, MEMORY_FREE_RATIO, MEMORY_USED, | 91 | ImmutableSet.of(MEMORY_FREE, MEMORY_FREE_RATIO, MEMORY_USED, |
91 | MEMORY_USED_RATIO); | 92 | MEMORY_USED_RATIO); |
92 | - private static final ImmutableSet<ControlMetricType> DISK_METRICS = | 93 | + private static final Set<ControlMetricType> DISK_METRICS = |
93 | ImmutableSet.of(DISK_READ_BYTES, DISK_WRITE_BYTES); | 94 | ImmutableSet.of(DISK_READ_BYTES, DISK_WRITE_BYTES); |
94 | - private static final ImmutableSet<ControlMetricType> NETWORK_METRICS = | 95 | + private static final Set<ControlMetricType> NETWORK_METRICS = |
95 | ImmutableSet.of(NW_INCOMING_BYTES, NW_OUTGOING_BYTES, | 96 | ImmutableSet.of(NW_INCOMING_BYTES, NW_OUTGOING_BYTES, |
96 | NW_INCOMING_PACKETS, NW_OUTGOING_PACKETS); | 97 | NW_INCOMING_PACKETS, NW_OUTGOING_PACKETS); |
97 | - private static final ImmutableSet<ControlMetricType> CTRL_MSGS = | 98 | + private static final Set<ControlMetricType> CTRL_MSGS = |
98 | ImmutableSet.of(INBOUND_PACKET, OUTBOUND_PACKET, FLOW_MOD_PACKET, | 99 | ImmutableSet.of(INBOUND_PACKET, OUTBOUND_PACKET, FLOW_MOD_PACKET, |
99 | FLOW_REMOVED_PACKET, REQUEST_PACKET, REPLY_PACKET); | 100 | FLOW_REMOVED_PACKET, REQUEST_PACKET, REPLY_PACKET); |
100 | private Map<ControlMetricType, Double> cpuBuf; | 101 | private Map<ControlMetricType, Double> cpuBuf; |
... | @@ -134,7 +135,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { | ... | @@ -134,7 +135,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { |
134 | } | 135 | } |
135 | 136 | ||
136 | @Override | 137 | @Override |
137 | - public void updateMetric(ControlMetric cm, Integer updateInterval, | 138 | + public void updateMetric(ControlMetric cm, int updateIntervalInMinutes, |
138 | Optional<DeviceId> deviceId) { | 139 | Optional<DeviceId> deviceId) { |
139 | if (deviceId.isPresent()) { | 140 | if (deviceId.isPresent()) { |
140 | 141 | ||
... | @@ -180,7 +181,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { | ... | @@ -180,7 +181,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { |
180 | } | 181 | } |
181 | 182 | ||
182 | @Override | 183 | @Override |
183 | - public void updateMetric(ControlMetric cm, Integer updateInterval, | 184 | + public void updateMetric(ControlMetric cm, int updateIntervalInMinutes, |
184 | String resourceName) { | 185 | String resourceName) { |
185 | // update disk metrics | 186 | // update disk metrics |
186 | if (DISK_METRICS.contains(cm.metricType())) { | 187 | if (DISK_METRICS.contains(cm.metricType())) { |
... | @@ -252,7 +253,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { | ... | @@ -252,7 +253,7 @@ public class ControlPlaneMonitor implements ControlPlaneMonitorService { |
252 | } | 253 | } |
253 | 254 | ||
254 | private MetricsDatabase genMDbBuilder(String metricName, | 255 | private MetricsDatabase genMDbBuilder(String metricName, |
255 | - ImmutableSet<ControlMetricType> metricTypes) { | 256 | + Set<ControlMetricType> metricTypes) { |
256 | MetricsDatabase.Builder builder = new DefaultMetricsDatabase.Builder(); | 257 | MetricsDatabase.Builder builder = new DefaultMetricsDatabase.Builder(); |
257 | builder.withMetricName(metricName); | 258 | builder.withMetricName(metricName); |
258 | metricTypes.forEach(type -> builder.addMetricType(type.toString())); | 259 | metricTypes.forEach(type -> builder.addMetricType(type.toString())); | ... | ... |
... | @@ -31,6 +31,13 @@ public class DefaultControlLoad implements ControlLoad { | ... | @@ -31,6 +31,13 @@ public class DefaultControlLoad implements ControlLoad { |
31 | private final MetricsDatabase mdb; | 31 | private final MetricsDatabase mdb; |
32 | private final ControlMetricType type; | 32 | private final ControlMetricType type; |
33 | 33 | ||
34 | + /** | ||
35 | + * Constructs a control load using the given metrics database and | ||
36 | + * control metric type. | ||
37 | + * | ||
38 | + * @param mdb metrics database | ||
39 | + * @param type control metric type | ||
40 | + */ | ||
34 | public DefaultControlLoad(MetricsDatabase mdb, ControlMetricType type) { | 41 | public DefaultControlLoad(MetricsDatabase mdb, ControlMetricType type) { |
35 | this.mdb = mdb; | 42 | this.mdb = mdb; |
36 | this.type = type; | 43 | this.type = type; | ... | ... |
... | @@ -53,6 +53,13 @@ public final class DefaultMetricsDatabase implements MetricsDatabase { | ... | @@ -53,6 +53,13 @@ public final class DefaultMetricsDatabase implements MetricsDatabase { |
53 | private static final String INSUFFICIENT_DURATION = "Given duration less than one minute."; | 53 | private static final String INSUFFICIENT_DURATION = "Given duration less than one minute."; |
54 | private static final String EXCEEDED_DURATION = "Given duration exceeds a day time."; | 54 | private static final String EXCEEDED_DURATION = "Given duration exceeds a day time."; |
55 | 55 | ||
56 | + /** | ||
57 | + * Constructs a metrics database using the given metric name and | ||
58 | + * round robin database. | ||
59 | + * | ||
60 | + * @param metricName metric name | ||
61 | + * @param rrdDb round robin database | ||
62 | + */ | ||
56 | private DefaultMetricsDatabase(String metricName, RrdDb rrdDb) { | 63 | private DefaultMetricsDatabase(String metricName, RrdDb rrdDb) { |
57 | this.metricName = metricName; | 64 | this.metricName = metricName; |
58 | this.rrdDb = rrdDb; | 65 | this.rrdDb = rrdDb; | ... | ... |
... | @@ -43,13 +43,13 @@ public class MetricsAggregator { | ... | @@ -43,13 +43,13 @@ public class MetricsAggregator { |
43 | private static final String COUNT_NAME = "count"; | 43 | private static final String COUNT_NAME = "count"; |
44 | 44 | ||
45 | /** | 45 | /** |
46 | - * Constructs a new MetricsAggregator for aggregating a metric. | 46 | + * Constructs a new metrics aggregator for aggregating a metric. |
47 | * Instantiates the metrics service | 47 | * Instantiates the metrics service |
48 | * Initializes all the general metrics for that object | 48 | * Initializes all the general metrics for that object |
49 | * | 49 | * |
50 | - * @param metricsService MetricsService reference | 50 | + * @param metricsService metric service reference |
51 | - * @param type Control metric type | 51 | + * @param type control metric type |
52 | - * @param deviceId DeviceId | 52 | + * @param deviceId device identification |
53 | */ | 53 | */ |
54 | MetricsAggregator(MetricsService metricsService, ControlMetricType type, | 54 | MetricsAggregator(MetricsService metricsService, ControlMetricType type, |
55 | Optional<DeviceId> deviceId) { | 55 | Optional<DeviceId> deviceId) { |
... | @@ -57,12 +57,12 @@ public class MetricsAggregator { | ... | @@ -57,12 +57,12 @@ public class MetricsAggregator { |
57 | } | 57 | } |
58 | 58 | ||
59 | /** | 59 | /** |
60 | - * Constructs a new MetricAggregator for aggregating a metric. | 60 | + * Constructs a new metrics aggregator for aggregating a metric. |
61 | * Instantiates the metrics service | 61 | * Instantiates the metrics service |
62 | * Initializes all the general metrics for that object | 62 | * Initializes all the general metrics for that object |
63 | * | 63 | * |
64 | - * @param metricsService MetricsService reference | 64 | + * @param metricsService metric service reference |
65 | - * @param type Control metric type | 65 | + * @param type control metric type |
66 | * @param resourceName resource name (e.g., ethernet interface name) | 66 | * @param resourceName resource name (e.g., ethernet interface name) |
67 | */ | 67 | */ |
68 | MetricsAggregator(MetricsService metricsService, ControlMetricType type, | 68 | MetricsAggregator(MetricsService metricsService, ControlMetricType type, |
... | @@ -72,12 +72,12 @@ public class MetricsAggregator { | ... | @@ -72,12 +72,12 @@ public class MetricsAggregator { |
72 | } | 72 | } |
73 | 73 | ||
74 | /** | 74 | /** |
75 | - * Constructs a new MetricAggregator for aggregating a metric. | 75 | + * Constructs a new metrics aggregator for aggregating a metric. |
76 | * Instantiates the metrics service | 76 | * Instantiates the metrics service |
77 | * Initializes all the general metrics for that object | 77 | * Initializes all the general metrics for that object |
78 | * | 78 | * |
79 | - * @param metricsService MetricsService reference | 79 | + * @param metricsService metrics service reference |
80 | - * @param type Control metric type | 80 | + * @param type control metric type |
81 | */ | 81 | */ |
82 | MetricsAggregator(MetricsService metricsService, ControlMetricType type) { | 82 | MetricsAggregator(MetricsService metricsService, ControlMetricType type) { |
83 | init(metricsService, type, Optional.ofNullable(null), null); | 83 | init(metricsService, type, Optional.ofNullable(null), null); |
... | @@ -86,9 +86,9 @@ public class MetricsAggregator { | ... | @@ -86,9 +86,9 @@ public class MetricsAggregator { |
86 | /** | 86 | /** |
87 | * Base method of the constructor of this class. | 87 | * Base method of the constructor of this class. |
88 | * | 88 | * |
89 | - * @param metricsService MetricsService reference | 89 | + * @param metricsService metrics service reference |
90 | - * @param type Control metric type | 90 | + * @param type control metric type |
91 | - * @param deviceId DeviceId | 91 | + * @param deviceId device identification |
92 | * @param resourceName resource name | 92 | * @param resourceName resource name |
93 | */ | 93 | */ |
94 | private void init(MetricsService metricsService, ControlMetricType type, | 94 | private void init(MetricsService metricsService, ControlMetricType type, |
... | @@ -116,14 +116,19 @@ public class MetricsAggregator { | ... | @@ -116,14 +116,19 @@ public class MetricsAggregator { |
116 | this.countMeter = metricsService.createMeter(metricsComponent, metricsFeature, COUNT_NAME); | 116 | this.countMeter = metricsService.createMeter(metricsComponent, metricsFeature, COUNT_NAME); |
117 | } | 117 | } |
118 | 118 | ||
119 | + /** | ||
120 | + * Returns control metrics type. | ||
121 | + * | ||
122 | + * @return control metrics type | ||
123 | + */ | ||
119 | public ControlMetricType getMetricsType() { | 124 | public ControlMetricType getMetricsType() { |
120 | return metricsType; | 125 | return metricsType; |
121 | } | 126 | } |
122 | 127 | ||
123 | /** | 128 | /** |
124 | - * Increments the meter rate by {@code n}, and the meter counter by 1. | 129 | + * Increments the meter rate by n, and the meter counter by 1. |
125 | * | 130 | * |
126 | - * @param n Increment the meter rate by {@code n}. | 131 | + * @param n increment rate. |
127 | */ | 132 | */ |
128 | public void increment(long n) { | 133 | public void increment(long n) { |
129 | rateMeter.mark(n); | 134 | rateMeter.mark(n); |
... | @@ -131,7 +136,7 @@ public class MetricsAggregator { | ... | @@ -131,7 +136,7 @@ public class MetricsAggregator { |
131 | } | 136 | } |
132 | 137 | ||
133 | /** | 138 | /** |
134 | - * Obtains the average load value. | 139 | + * Returns the average load value. |
135 | * | 140 | * |
136 | * @return load value | 141 | * @return load value |
137 | */ | 142 | */ |
... | @@ -140,7 +145,7 @@ public class MetricsAggregator { | ... | @@ -140,7 +145,7 @@ public class MetricsAggregator { |
140 | } | 145 | } |
141 | 146 | ||
142 | /** | 147 | /** |
143 | - * Obtains the average meter rate within recent 1 minute. | 148 | + * Returns the average meter rate within recent 1 minute. |
144 | * | 149 | * |
145 | * @return rate value | 150 | * @return rate value |
146 | */ | 151 | */ |
... | @@ -149,7 +154,7 @@ public class MetricsAggregator { | ... | @@ -149,7 +154,7 @@ public class MetricsAggregator { |
149 | } | 154 | } |
150 | 155 | ||
151 | /** | 156 | /** |
152 | - * Obtains the average meter count within recent 1 minute. | 157 | + * Returns the average meter count within recent 1 minute. |
153 | * | 158 | * |
154 | * @return count value | 159 | * @return count value |
155 | */ | 160 | */ | ... | ... |
... | @@ -36,6 +36,7 @@ import java.net.HttpURLConnection; | ... | @@ -36,6 +36,7 @@ import java.net.HttpURLConnection; |
36 | import java.net.ServerSocket; | 36 | import java.net.ServerSocket; |
37 | import java.util.Optional; | 37 | import java.util.Optional; |
38 | 38 | ||
39 | +import static org.easymock.EasyMock.anyInt; | ||
39 | import static org.easymock.EasyMock.anyObject; | 40 | import static org.easymock.EasyMock.anyObject; |
40 | import static org.easymock.EasyMock.anyString; | 41 | import static org.easymock.EasyMock.anyString; |
41 | import static org.easymock.EasyMock.createMock; | 42 | import static org.easymock.EasyMock.createMock; |
... | @@ -68,7 +69,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { | ... | @@ -68,7 +69,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { |
68 | 69 | ||
69 | @Test | 70 | @Test |
70 | public void testCpuMetricsPost() { | 71 | public void testCpuMetricsPost() { |
71 | - mockControlPlaneMonitorService.updateMetric(anyObject(), anyObject(), | 72 | + mockControlPlaneMonitorService.updateMetric(anyObject(), anyInt(), |
72 | (Optional<DeviceId>) anyObject()); | 73 | (Optional<DeviceId>) anyObject()); |
73 | expectLastCall().times(5); | 74 | expectLastCall().times(5); |
74 | replay(mockControlPlaneMonitorService); | 75 | replay(mockControlPlaneMonitorService); |
... | @@ -77,7 +78,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { | ... | @@ -77,7 +78,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { |
77 | 78 | ||
78 | @Test | 79 | @Test |
79 | public void testMemoryMetricsPost() { | 80 | public void testMemoryMetricsPost() { |
80 | - mockControlPlaneMonitorService.updateMetric(anyObject(), anyObject(), | 81 | + mockControlPlaneMonitorService.updateMetric(anyObject(), anyInt(), |
81 | (Optional<DeviceId>) anyObject()); | 82 | (Optional<DeviceId>) anyObject()); |
82 | expectLastCall().times(4); | 83 | expectLastCall().times(4); |
83 | replay(mockControlPlaneMonitorService); | 84 | replay(mockControlPlaneMonitorService); |
... | @@ -86,7 +87,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { | ... | @@ -86,7 +87,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { |
86 | 87 | ||
87 | @Test | 88 | @Test |
88 | public void testDiskMetricsWithNullName() { | 89 | public void testDiskMetricsWithNullName() { |
89 | - mockControlPlaneMonitorService.updateMetric(anyObject(), anyObject(), anyString()); | 90 | + mockControlPlaneMonitorService.updateMetric(anyObject(), anyInt(), anyString()); |
90 | expectLastCall().times(4); | 91 | expectLastCall().times(4); |
91 | replay(mockControlPlaneMonitorService); | 92 | replay(mockControlPlaneMonitorService); |
92 | basePostTest("disk-metrics-post.json", PREFIX + "/disk_metrics"); | 93 | basePostTest("disk-metrics-post.json", PREFIX + "/disk_metrics"); |
... | @@ -94,7 +95,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { | ... | @@ -94,7 +95,7 @@ public class ControlMetricsCollectorResourceTest extends JerseyTest { |
94 | 95 | ||
95 | @Test | 96 | @Test |
96 | public void testNetworkMetricsWithNullName() { | 97 | public void testNetworkMetricsWithNullName() { |
97 | - mockControlPlaneMonitorService.updateMetric(anyObject(), anyObject(), anyString()); | 98 | + mockControlPlaneMonitorService.updateMetric(anyObject(), anyInt(), anyString()); |
98 | expectLastCall().times(8); | 99 | expectLastCall().times(8); |
99 | replay(mockControlPlaneMonitorService); | 100 | replay(mockControlPlaneMonitorService); |
100 | basePostTest("network-metrics-post.json", PREFIX + "/network_metrics"); | 101 | basePostTest("network-metrics-post.json", PREFIX + "/network_metrics"); | ... | ... |
-
Please register or login to post a comment