diff options
13 files changed, 1242 insertions, 259 deletions
@@ -6,3 +6,6 @@ This source repository contains the ONAP Policy Parent repository that contains overarching build pom.xml to build ALL the repos under policy/* To build it using Maven 3, run: mvn clean install + +Reminder: +If maven reports "non-resolvable parent POM", run "mvn clean install" on project "oparent" first.
\ No newline at end of file diff --git a/docs/development/devtools/apex-s3p-results/apex_metrics_after_72h.txt b/docs/development/devtools/apex-s3p-results/apex_metrics_after_72h.txt index 38fe5054..56f13907 100644 --- a/docs/development/devtools/apex-s3p-results/apex_metrics_after_72h.txt +++ b/docs/development/devtools/apex-s3p-results/apex_metrics_after_72h.txt @@ -1,173 +1,316 @@ -# HELP jvm_info VM version info -# TYPE jvm_info gauge -jvm_info{runtime="OpenJDK Runtime Environment",vendor="Alpine",version="11.0.9+11-alpine-r1",} 1.0 +# HELP jvm_threads_current Current thread count of a JVM +# TYPE jvm_threads_current gauge +jvm_threads_current 32.0 +# HELP jvm_threads_daemon Daemon thread count of a JVM +# TYPE jvm_threads_daemon gauge +jvm_threads_daemon 17.0 +# HELP jvm_threads_peak Peak thread count of a JVM +# TYPE jvm_threads_peak gauge +jvm_threads_peak 81.0 +# HELP jvm_threads_started_total Started thread count of a JVM +# TYPE jvm_threads_started_total counter +jvm_threads_started_total 423360.0 +# HELP jvm_threads_deadlocked Cycles of JVM-threads that are in deadlock waiting to acquire object monitors or ownable synchronizers +# TYPE jvm_threads_deadlocked gauge +jvm_threads_deadlocked 0.0 +# HELP jvm_threads_deadlocked_monitor Cycles of JVM-threads that are in deadlock waiting to acquire object monitors +# TYPE jvm_threads_deadlocked_monitor gauge +jvm_threads_deadlocked_monitor 0.0 +# HELP jvm_threads_state Current count of threads by state +# TYPE jvm_threads_state gauge +jvm_threads_state{state="BLOCKED",} 0.0 +jvm_threads_state{state="TIMED_WAITING",} 11.0 +jvm_threads_state{state="NEW",} 0.0 +jvm_threads_state{state="RUNNABLE",} 7.0 +jvm_threads_state{state="TERMINATED",} 0.0 +jvm_threads_state{state="WAITING",} 14.0 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 16418.06 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.651077494162E9 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 357.0 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1048576.0 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.0165403648E10 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 5.58034944E8 +# HELP pdpa_engine_event_executions Total number of APEX events processed by the engine. +# TYPE pdpa_engine_event_executions gauge +pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-1:0.0.1",} 30743.0 +pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-4:0.0.1",} 30766.0 +pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-3:0.0.1",} 30722.0 +pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-0:0.0.1",} 30727.0 +pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-2:0.0.1",} 30742.0 +# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool. +# TYPE jvm_buffer_pool_used_bytes gauge +jvm_buffer_pool_used_bytes{pool="mapped",} 0.0 +jvm_buffer_pool_used_bytes{pool="direct",} 3.3833905E7 +# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool. +# TYPE jvm_buffer_pool_capacity_bytes gauge +jvm_buffer_pool_capacity_bytes{pool="mapped",} 0.0 +jvm_buffer_pool_capacity_bytes{pool="direct",} 3.3833904E7 +# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool. +# TYPE jvm_buffer_pool_used_buffers gauge +jvm_buffer_pool_used_buffers{pool="mapped",} 0.0 +jvm_buffer_pool_used_buffers{pool="direct",} 15.0 +# HELP pdpa_policy_executions_total The total number of TOSCA policy executions. +# TYPE pdpa_policy_executions_total counter +# HELP pdpa_policy_deployments_total The total number of policy deployments. +# TYPE pdpa_policy_deployments_total counter +pdpa_policy_deployments_total{operation="deploy",status="TOTAL",} 5.0 +pdpa_policy_deployments_total{operation="undeploy",status="TOTAL",} 5.0 +pdpa_policy_deployments_total{operation="undeploy",status="SUCCESS",} 5.0 +pdpa_policy_deployments_total{operation="deploy",status="SUCCESS",} 5.0 +# HELP pdpa_engine_average_execution_time_seconds Average time taken to execute an APEX policy in seconds. +# TYPE pdpa_engine_average_execution_time_seconds gauge +pdpa_engine_average_execution_time_seconds{engine_instance_id="NSOApexEngine-1:0.0.1",} 0.00515235988680349 +pdpa_engine_average_execution_time_seconds{engine_instance_id="NSOApexEngine-4:0.0.1",} 0.00521845543782099 +pdpa_engine_average_execution_time_seconds{engine_instance_id="NSOApexEngine-3:0.0.1",} 0.005200800729119198 +pdpa_engine_average_execution_time_seconds{engine_instance_id="NSOApexEngine-0:0.0.1",} 0.005191785725908804 +pdpa_engine_average_execution_time_seconds{engine_instance_id="NSOApexEngine-2:0.0.1",} 0.0051784854596317684 +# HELP pdpa_engine_state State of the APEX engine as integers mapped as - 0:UNDEFINED, 1:STOPPED, 2:READY, 3:EXECUTING, 4:STOPPING +# TYPE pdpa_engine_state gauge +pdpa_engine_state{engine_instance_id="NSOApexEngine-1:0.0.1",} 1.0 +pdpa_engine_state{engine_instance_id="NSOApexEngine-4:0.0.1",} 1.0 +pdpa_engine_state{engine_instance_id="NSOApexEngine-3:0.0.1",} 1.0 +pdpa_engine_state{engine_instance_id="NSOApexEngine-0:0.0.1",} 1.0 +pdpa_engine_state{engine_instance_id="NSOApexEngine-2:0.0.1",} 1.0 +# HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. +# TYPE jvm_gc_collection_seconds summary +jvm_gc_collection_seconds_count{gc="Copy",} 5883.0 +jvm_gc_collection_seconds_sum{gc="Copy",} 97.808 +jvm_gc_collection_seconds_count{gc="MarkSweepCompact",} 3.0 +jvm_gc_collection_seconds_sum{gc="MarkSweepCompact",} 0.357 +# HELP pdpa_engine_last_start_timestamp_epoch Epoch timestamp of the instance when engine was last started. +# TYPE pdpa_engine_last_start_timestamp_epoch gauge +pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-1:0.0.1",} 0.0 +pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-4:0.0.1",} 0.0 +pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-3:0.0.1",} 0.0 +pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-0:0.0.1",} 0.0 +pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-2:0.0.1",} 0.0 +# HELP jvm_memory_pool_allocated_bytes_total Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. +# TYPE jvm_memory_pool_allocated_bytes_total counter +jvm_memory_pool_allocated_bytes_total{pool="Eden Space",} 8.29800936264E11 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'profiled nmethods'",} 4.839232E7 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-profiled nmethods'",} 3.5181056E7 +jvm_memory_pool_allocated_bytes_total{pool="Compressed Class Space",} 8194120.0 +jvm_memory_pool_allocated_bytes_total{pool="Metaspace",} 7.7729144E7 +jvm_memory_pool_allocated_bytes_total{pool="Tenured Gen",} 1.41180272E8 +jvm_memory_pool_allocated_bytes_total{pool="Survivor Space",} 4.78761928E8 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-nmethods'",} 1392128.0 +# HELP pdpa_engine_uptime Time elapsed since the engine was started. +# TYPE pdpa_engine_uptime gauge +pdpa_engine_uptime{engine_instance_id="NSOApexEngine-1:0.0.1",} 259200.522 +pdpa_engine_uptime{engine_instance_id="NSOApexEngine-4:0.0.1",} 259200.751 +pdpa_engine_uptime{engine_instance_id="NSOApexEngine-3:0.0.1",} 259200.678 +pdpa_engine_uptime{engine_instance_id="NSOApexEngine-0:0.0.1",} 259200.439 +pdpa_engine_uptime{engine_instance_id="NSOApexEngine-2:0.0.1",} 259200.601 +# HELP pdpa_engine_last_execution_time Time taken to execute the last APEX policy in seconds. +# TYPE pdpa_engine_last_execution_time histogram +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.005",} 24726.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.01",} 50195.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.025",} 70836.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.05",} 71947.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.075",} 71996.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.1",} 72001.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.25",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.5",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="0.75",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="1.0",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="2.5",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="5.0",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="7.5",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="10.0",} 72002.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-1:0.0.1",le="+Inf",} 72002.0 +pdpa_engine_last_execution_time_count{engine_instance_id="NSOApexEngine-1:0.0.1",} 72002.0 +pdpa_engine_last_execution_time_sum{engine_instance_id="NSOApexEngine-1:0.0.1",} 609.1939999998591 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.005",} 24512.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.01",} 50115.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.025",} 70746.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.05",} 71918.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.075",} 71966.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.1",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.25",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.5",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="0.75",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="1.0",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="2.5",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="5.0",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="7.5",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="10.0",} 71967.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-4:0.0.1",le="+Inf",} 71967.0 +pdpa_engine_last_execution_time_count{engine_instance_id="NSOApexEngine-4:0.0.1",} 71967.0 +pdpa_engine_last_execution_time_sum{engine_instance_id="NSOApexEngine-4:0.0.1",} 610.3469999998522 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.005",} 24607.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.01",} 50182.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.025",} 70791.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.05",} 71929.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.075",} 71965.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.1",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.25",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.5",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="0.75",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="1.0",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="2.5",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="5.0",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="7.5",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="10.0",} 71970.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-3:0.0.1",le="+Inf",} 71970.0 +pdpa_engine_last_execution_time_count{engine_instance_id="NSOApexEngine-3:0.0.1",} 71970.0 +pdpa_engine_last_execution_time_sum{engine_instance_id="NSOApexEngine-3:0.0.1",} 608.8539999998619 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.005",} 24623.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.01",} 50207.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.025",} 70783.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.05",} 71934.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.075",} 71981.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.1",} 71986.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.25",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.5",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="0.75",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="1.0",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="2.5",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="5.0",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="7.5",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="10.0",} 71988.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-0:0.0.1",le="+Inf",} 71988.0 +pdpa_engine_last_execution_time_count{engine_instance_id="NSOApexEngine-0:0.0.1",} 71988.0 +pdpa_engine_last_execution_time_sum{engine_instance_id="NSOApexEngine-0:0.0.1",} 610.5579999998558 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.005",} 24594.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.01",} 50131.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.025",} 70816.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.05",} 71905.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.075",} 71959.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.1",} 71961.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.25",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.5",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="0.75",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="1.0",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="2.5",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="5.0",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="7.5",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="10.0",} 71962.0 +pdpa_engine_last_execution_time_bucket{engine_instance_id="NSOApexEngine-2:0.0.1",le="+Inf",} 71962.0 +pdpa_engine_last_execution_time_count{engine_instance_id="NSOApexEngine-2:0.0.1",} 71962.0 +pdpa_engine_last_execution_time_sum{engine_instance_id="NSOApexEngine-2:0.0.1",} 608.3549999998555 # HELP jvm_memory_objects_pending_finalization The number of objects waiting in the finalizer queue. # TYPE jvm_memory_objects_pending_finalization gauge jvm_memory_objects_pending_finalization 0.0 # HELP jvm_memory_bytes_used Used bytes of a given JVM memory area. # TYPE jvm_memory_bytes_used gauge -jvm_memory_bytes_used{area="heap",} 1.8570308E8 -jvm_memory_bytes_used{area="nonheap",} 1.1990352E8 +jvm_memory_bytes_used{area="heap",} 1.90274552E8 +jvm_memory_bytes_used{area="nonheap",} 1.16193856E8 # HELP jvm_memory_bytes_committed Committed (bytes) of a given JVM memory area. # TYPE jvm_memory_bytes_committed gauge -jvm_memory_bytes_committed{area="heap",} 2.55655936E8 -jvm_memory_bytes_committed{area="nonheap",} 1.65216256E8 +jvm_memory_bytes_committed{area="heap",} 5.10984192E8 +jvm_memory_bytes_committed{area="nonheap",} 1.56127232E8 # HELP jvm_memory_bytes_max Max (bytes) of a given JVM memory area. # TYPE jvm_memory_bytes_max gauge -jvm_memory_bytes_max{area="heap",} 4.064673792E9 +jvm_memory_bytes_max{area="heap",} 8.151564288E9 jvm_memory_bytes_max{area="nonheap",} -1.0 # HELP jvm_memory_bytes_init Initial bytes of a given JVM memory area. # TYPE jvm_memory_bytes_init gauge -jvm_memory_bytes_init{area="heap",} 2.64241152E8 +jvm_memory_bytes_init{area="heap",} 5.28482304E8 jvm_memory_bytes_init{area="nonheap",} 7667712.0 # HELP jvm_memory_pool_bytes_used Used bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_used gauge -jvm_memory_pool_bytes_used{pool="CodeHeap 'non-nmethods'",} 1357312.0 -jvm_memory_pool_bytes_used{pool="Metaspace",} 8.2427648E7 -jvm_memory_pool_bytes_used{pool="Tenured Gen",} 1.5998668E8 -jvm_memory_pool_bytes_used{pool="CodeHeap 'profiled nmethods'",} 4413696.0 -jvm_memory_pool_bytes_used{pool="Eden Space",} 2.1659816E7 -jvm_memory_pool_bytes_used{pool="Survivor Space",} 4056584.0 -jvm_memory_pool_bytes_used{pool="Compressed Class Space",} 8293152.0 -jvm_memory_pool_bytes_used{pool="CodeHeap 'non-profiled nmethods'",} 2.3411712E7 +jvm_memory_pool_bytes_used{pool="CodeHeap 'non-nmethods'",} 1353600.0 +jvm_memory_pool_bytes_used{pool="Metaspace",} 7.7729144E7 +jvm_memory_pool_bytes_used{pool="Tenured Gen",} 1.41180272E8 +jvm_memory_pool_bytes_used{pool="CodeHeap 'profiled nmethods'",} 4831104.0 +jvm_memory_pool_bytes_used{pool="Eden Space",} 4.5145032E7 +jvm_memory_pool_bytes_used{pool="Survivor Space",} 3949248.0 +jvm_memory_pool_bytes_used{pool="Compressed Class Space",} 8194120.0 +jvm_memory_pool_bytes_used{pool="CodeHeap 'non-profiled nmethods'",} 2.4085888E7 # HELP jvm_memory_pool_bytes_committed Committed bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_committed gauge jvm_memory_pool_bytes_committed{pool="CodeHeap 'non-nmethods'",} 2555904.0 -jvm_memory_pool_bytes_committed{pool="Metaspace",} 9.4896128E7 -jvm_memory_pool_bytes_committed{pool="Tenured Gen",} 1.76160768E8 -jvm_memory_pool_bytes_committed{pool="CodeHeap 'profiled nmethods'",} 3.2309248E7 -jvm_memory_pool_bytes_committed{pool="Eden Space",} 7.0713344E7 -jvm_memory_pool_bytes_committed{pool="Survivor Space",} 8781824.0 -jvm_memory_pool_bytes_committed{pool="Compressed Class Space",} 1.0223616E7 -jvm_memory_pool_bytes_committed{pool="CodeHeap 'non-profiled nmethods'",} 2.523136E7 +jvm_memory_pool_bytes_committed{pool="Metaspace",} 8.5348352E7 +jvm_memory_pool_bytes_committed{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_bytes_committed{pool="CodeHeap 'profiled nmethods'",} 3.3030144E7 +jvm_memory_pool_bytes_committed{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_bytes_committed{pool="Survivor Space",} 1.7629184E7 +jvm_memory_pool_bytes_committed{pool="Compressed Class Space",} 9175040.0 +jvm_memory_pool_bytes_committed{pool="CodeHeap 'non-profiled nmethods'",} 2.6017792E7 # HELP jvm_memory_pool_bytes_max Max bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_max gauge jvm_memory_pool_bytes_max{pool="CodeHeap 'non-nmethods'",} 5828608.0 jvm_memory_pool_bytes_max{pool="Metaspace",} -1.0 -jvm_memory_pool_bytes_max{pool="Tenured Gen",} 2.803236864E9 +jvm_memory_pool_bytes_max{pool="Tenured Gen",} 5.621809152E9 jvm_memory_pool_bytes_max{pool="CodeHeap 'profiled nmethods'",} 1.22912768E8 -jvm_memory_pool_bytes_max{pool="Eden Space",} 1.12132096E9 -jvm_memory_pool_bytes_max{pool="Survivor Space",} 1.40115968E8 +jvm_memory_pool_bytes_max{pool="Eden Space",} 2.248671232E9 +jvm_memory_pool_bytes_max{pool="Survivor Space",} 2.81083904E8 jvm_memory_pool_bytes_max{pool="Compressed Class Space",} 1.073741824E9 jvm_memory_pool_bytes_max{pool="CodeHeap 'non-profiled nmethods'",} 1.22916864E8 # HELP jvm_memory_pool_bytes_init Initial bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_init gauge jvm_memory_pool_bytes_init{pool="CodeHeap 'non-nmethods'",} 2555904.0 jvm_memory_pool_bytes_init{pool="Metaspace",} 0.0 -jvm_memory_pool_bytes_init{pool="Tenured Gen",} 1.76160768E8 +jvm_memory_pool_bytes_init{pool="Tenured Gen",} 3.52321536E8 jvm_memory_pool_bytes_init{pool="CodeHeap 'profiled nmethods'",} 2555904.0 -jvm_memory_pool_bytes_init{pool="Eden Space",} 7.0516736E7 -jvm_memory_pool_bytes_init{pool="Survivor Space",} 8781824.0 +jvm_memory_pool_bytes_init{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_bytes_init{pool="Survivor Space",} 1.7563648E7 jvm_memory_pool_bytes_init{pool="Compressed Class Space",} 0.0 jvm_memory_pool_bytes_init{pool="CodeHeap 'non-profiled nmethods'",} 2555904.0 # HELP jvm_memory_pool_collection_used_bytes Used bytes after last collection of a given JVM memory pool. # TYPE jvm_memory_pool_collection_used_bytes gauge -jvm_memory_pool_collection_used_bytes{pool="Tenured Gen",} 1.00182296E8 +jvm_memory_pool_collection_used_bytes{pool="Tenured Gen",} 3.853812E7 jvm_memory_pool_collection_used_bytes{pool="Eden Space",} 0.0 -jvm_memory_pool_collection_used_bytes{pool="Survivor Space",} 4056584.0 +jvm_memory_pool_collection_used_bytes{pool="Survivor Space",} 3949248.0 # HELP jvm_memory_pool_collection_committed_bytes Committed after last collection bytes of a given JVM memory pool. # TYPE jvm_memory_pool_collection_committed_bytes gauge -jvm_memory_pool_collection_committed_bytes{pool="Tenured Gen",} 1.76357376E8 -jvm_memory_pool_collection_committed_bytes{pool="Eden Space",} 7.0713344E7 -jvm_memory_pool_collection_committed_bytes{pool="Survivor Space",} 8781824.0 +jvm_memory_pool_collection_committed_bytes{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_collection_committed_bytes{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_collection_committed_bytes{pool="Survivor Space",} 1.7629184E7 # HELP jvm_memory_pool_collection_max_bytes Max bytes after last collection of a given JVM memory pool. # TYPE jvm_memory_pool_collection_max_bytes gauge -jvm_memory_pool_collection_max_bytes{pool="Tenured Gen",} 2.803236864E9 -jvm_memory_pool_collection_max_bytes{pool="Eden Space",} 1.12132096E9 -jvm_memory_pool_collection_max_bytes{pool="Survivor Space",} 1.40115968E8 +jvm_memory_pool_collection_max_bytes{pool="Tenured Gen",} 5.621809152E9 +jvm_memory_pool_collection_max_bytes{pool="Eden Space",} 2.248671232E9 +jvm_memory_pool_collection_max_bytes{pool="Survivor Space",} 2.81083904E8 # HELP jvm_memory_pool_collection_init_bytes Initial after last collection bytes of a given JVM memory pool. # TYPE jvm_memory_pool_collection_init_bytes gauge -jvm_memory_pool_collection_init_bytes{pool="Tenured Gen",} 1.76160768E8 -jvm_memory_pool_collection_init_bytes{pool="Eden Space",} 7.0516736E7 -jvm_memory_pool_collection_init_bytes{pool="Survivor Space",} 8781824.0 -# HELP jvm_memory_pool_allocated_bytes_total Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. -# TYPE jvm_memory_pool_allocated_bytes_total counter -jvm_memory_pool_allocated_bytes_total{pool="Eden Space",} 7.81369756592E11 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'profiled nmethods'",} 5.1833472E7 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-profiled nmethods'",} 3.6370048E7 -jvm_memory_pool_allocated_bytes_total{pool="Compressed Class Space",} 8986056.0 -jvm_memory_pool_allocated_bytes_total{pool="Metaspace",} 8.6383264E7 -jvm_memory_pool_allocated_bytes_total{pool="Tenured Gen",} 3.84983864E8 -jvm_memory_pool_allocated_bytes_total{pool="Survivor Space",} 1.506631592E9 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-nmethods'",} 1439232.0 -# HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. -# TYPE jvm_gc_collection_seconds summary -jvm_gc_collection_seconds_count{gc="Copy",} 11053.0 -jvm_gc_collection_seconds_sum{gc="Copy",} 90.383 -jvm_gc_collection_seconds_count{gc="MarkSweepCompact",} 6.0 -jvm_gc_collection_seconds_sum{gc="MarkSweepCompact",} 1.44 -# HELP jvm_threads_current Current thread count of a JVM -# TYPE jvm_threads_current gauge -jvm_threads_current 31.0 -# HELP jvm_threads_daemon Daemon thread count of a JVM -# TYPE jvm_threads_daemon gauge -jvm_threads_daemon 16.0 -# HELP jvm_threads_peak Peak thread count of a JVM -# TYPE jvm_threads_peak gauge -jvm_threads_peak 80.0 -# HELP jvm_threads_started_total Started thread count of a JVM -# TYPE jvm_threads_started_total counter -jvm_threads_started_total 320599.0 -# HELP jvm_threads_deadlocked Cycles of JVM-threads that are in deadlock waiting to acquire object monitors or ownable synchronizers -# TYPE jvm_threads_deadlocked gauge -jvm_threads_deadlocked 0.0 -# HELP jvm_threads_deadlocked_monitor Cycles of JVM-threads that are in deadlock waiting to acquire object monitors -# TYPE jvm_threads_deadlocked_monitor gauge -jvm_threads_deadlocked_monitor 0.0 -# HELP jvm_threads_state Current count of threads by state -# TYPE jvm_threads_state gauge -jvm_threads_state{state="BLOCKED",} 0.0 -jvm_threads_state{state="WAITING",} 13.0 -jvm_threads_state{state="RUNNABLE",} 7.0 -jvm_threads_state{state="TIMED_WAITING",} 11.0 -jvm_threads_state{state="TERMINATED",} 0.0 -jvm_threads_state{state="NEW",} 0.0 -# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool. -# TYPE jvm_buffer_pool_used_bytes gauge -jvm_buffer_pool_used_bytes{pool="mapped",} 0.0 -jvm_buffer_pool_used_bytes{pool="direct",} 3.385029E7 -# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool. -# TYPE jvm_buffer_pool_capacity_bytes gauge -jvm_buffer_pool_capacity_bytes{pool="mapped",} 0.0 -jvm_buffer_pool_capacity_bytes{pool="direct",} 3.3850289E7 -# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool. -# TYPE jvm_buffer_pool_used_buffers gauge -jvm_buffer_pool_used_buffers{pool="mapped",} 0.0 -jvm_buffer_pool_used_buffers{pool="direct",} 16.0 +jvm_memory_pool_collection_init_bytes{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_collection_init_bytes{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_collection_init_bytes{pool="Survivor Space",} 1.7563648E7 # HELP jvm_classes_loaded The number of classes that are currently loaded in the JVM # TYPE jvm_classes_loaded gauge -jvm_classes_loaded 11238.0 +jvm_classes_loaded 11386.0 # HELP jvm_classes_loaded_total The total number of classes that have been loaded since the JVM has started execution # TYPE jvm_classes_loaded_total counter -jvm_classes_loaded_total 12239.0 +jvm_classes_loaded_total 11448.0 # HELP jvm_classes_unloaded_total The total number of classes that have been unloaded since the JVM has started execution # TYPE jvm_classes_unloaded_total counter -jvm_classes_unloaded_total 1001.0 -# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. -# TYPE process_cpu_seconds_total counter -process_cpu_seconds_total 9308.0 -# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. -# TYPE process_start_time_seconds gauge -process_start_time_seconds 1.633111663176E9 -# HELP process_open_fds Number of open file descriptors. -# TYPE process_open_fds gauge -process_open_fds 354.0 -# HELP process_max_fds Maximum number of open file descriptors. -# TYPE process_max_fds gauge -process_max_fds 1048576.0 -# HELP process_virtual_memory_bytes Virtual memory size in bytes. -# TYPE process_virtual_memory_bytes gauge -process_virtual_memory_bytes 5.933633536E9 -# HELP process_resident_memory_bytes Resident memory size in bytes. -# TYPE process_resident_memory_bytes gauge -process_resident_memory_bytes 5.2523008E8 +jvm_classes_unloaded_total 62.0 +# HELP jvm_info VM version info +# TYPE jvm_info gauge +jvm_info{runtime="OpenJDK Runtime Environment",vendor="Alpine",version="11.0.9+11-alpine-r1",} 1.0 # HELP jvm_memory_pool_allocated_bytes_created Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. # TYPE jvm_memory_pool_allocated_bytes_created gauge -jvm_memory_pool_allocated_bytes_created{pool="Eden Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'profiled nmethods'",} 1.633111669942E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-profiled nmethods'",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Compressed Class Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Metaspace",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Tenured Gen",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Survivor Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-nmethods'",} 1.633111669968E9 +jvm_memory_pool_allocated_bytes_created{pool="Eden Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'profiled nmethods'",} 1.651077501657E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-profiled nmethods'",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Compressed Class Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Metaspace",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Tenured Gen",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Survivor Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-nmethods'",} 1.651077501662E9 +# HELP pdpa_engine_last_execution_time_created Time taken to execute the last APEX policy in seconds. +# TYPE pdpa_engine_last_execution_time_created gauge +pdpa_engine_last_execution_time_created{engine_instance_id="NSOApexEngine-1:0.0.1",} 1.651080501294E9 +pdpa_engine_last_execution_time_created{engine_instance_id="NSOApexEngine-4:0.0.1",} 1.651080501295E9 +pdpa_engine_last_execution_time_created{engine_instance_id="NSOApexEngine-3:0.0.1",} 1.651080501295E9 +pdpa_engine_last_execution_time_created{engine_instance_id="NSOApexEngine-0:0.0.1",} 1.651080501294E9 +pdpa_engine_last_execution_time_created{engine_instance_id="NSOApexEngine-2:0.0.1",} 1.651080501294E9 +# HELP pdpa_policy_deployments_created The total number of policy deployments. +# TYPE pdpa_policy_deployments_created gauge +pdpa_policy_deployments_created{operation="deploy",status="TOTAL",} 1.651080501289E9 +pdpa_policy_deployments_created{operation="undeploy",status="TOTAL",} 1.651081148331E9 +pdpa_policy_deployments_created{operation="undeploy",status="SUCCESS",} 1.651081148331E9 +pdpa_policy_deployments_created{operation="deploy",status="SUCCESS",} 1.651080501289E9 diff --git a/docs/development/devtools/apex-s3p-results/apex_metrics_before_72h.txt b/docs/development/devtools/apex-s3p-results/apex_metrics_before_72h.txt index 551bd824..4a3d8835 100644 --- a/docs/development/devtools/apex-s3p-results/apex_metrics_before_72h.txt +++ b/docs/development/devtools/apex-s3p-results/apex_metrics_before_72h.txt @@ -1,173 +1,175 @@ -# HELP jvm_info VM version info -# TYPE jvm_info gauge -jvm_info{runtime="OpenJDK Runtime Environment",vendor="Alpine",version="11.0.9+11-alpine-r1",} 1.0 +# HELP jvm_threads_current Current thread count of a JVM +# TYPE jvm_threads_current gauge +jvm_threads_current 31.0 +# HELP jvm_threads_daemon Daemon thread count of a JVM +# TYPE jvm_threads_daemon gauge +jvm_threads_daemon 16.0 +# HELP jvm_threads_peak Peak thread count of a JVM +# TYPE jvm_threads_peak gauge +jvm_threads_peak 31.0 +# HELP jvm_threads_started_total Started thread count of a JVM +# TYPE jvm_threads_started_total counter +jvm_threads_started_total 32.0 +# HELP jvm_threads_deadlocked Cycles of JVM-threads that are in deadlock waiting to acquire object monitors or ownable synchronizers +# TYPE jvm_threads_deadlocked gauge +jvm_threads_deadlocked 0.0 +# HELP jvm_threads_deadlocked_monitor Cycles of JVM-threads that are in deadlock waiting to acquire object monitors +# TYPE jvm_threads_deadlocked_monitor gauge +jvm_threads_deadlocked_monitor 0.0 +# HELP jvm_threads_state Current count of threads by state +# TYPE jvm_threads_state gauge +jvm_threads_state{state="BLOCKED",} 0.0 +jvm_threads_state{state="TIMED_WAITING",} 11.0 +jvm_threads_state{state="NEW",} 0.0 +jvm_threads_state{state="RUNNABLE",} 7.0 +jvm_threads_state{state="TERMINATED",} 0.0 +jvm_threads_state{state="WAITING",} 13.0 +# HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. +# TYPE jvm_gc_collection_seconds summary +jvm_gc_collection_seconds_count{gc="Copy",} 2.0 +jvm_gc_collection_seconds_sum{gc="Copy",} 0.059 +jvm_gc_collection_seconds_count{gc="MarkSweepCompact",} 2.0 +jvm_gc_collection_seconds_sum{gc="MarkSweepCompact",} 0.185 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 38.14 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.651077494162E9 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 355.0 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1048576.0 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.0070171648E10 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 2.9052928E8 +# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool. +# TYPE jvm_buffer_pool_used_bytes gauge +jvm_buffer_pool_used_bytes{pool="mapped",} 0.0 +jvm_buffer_pool_used_bytes{pool="direct",} 187432.0 +# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool. +# TYPE jvm_buffer_pool_capacity_bytes gauge +jvm_buffer_pool_capacity_bytes{pool="mapped",} 0.0 +jvm_buffer_pool_capacity_bytes{pool="direct",} 187432.0 +# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool. +# TYPE jvm_buffer_pool_used_buffers gauge +jvm_buffer_pool_used_buffers{pool="mapped",} 0.0 +jvm_buffer_pool_used_buffers{pool="direct",} 9.0 +# HELP jvm_memory_pool_allocated_bytes_total Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. +# TYPE jvm_memory_pool_allocated_bytes_total counter +jvm_memory_pool_allocated_bytes_total{pool="Eden Space",} 3.035482E8 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'profiled nmethods'",} 9772800.0 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-profiled nmethods'",} 2152064.0 +jvm_memory_pool_allocated_bytes_total{pool="Compressed Class Space",} 4912232.0 +jvm_memory_pool_allocated_bytes_total{pool="Metaspace",} 4.1337744E7 +jvm_memory_pool_allocated_bytes_total{pool="Tenured Gen",} 2.8136056E7 +jvm_memory_pool_allocated_bytes_total{pool="Survivor Space",} 6813240.0 +jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-nmethods'",} 1272320.0 +# HELP pdpa_policy_deployments_total The total number of policy deployments. +# TYPE pdpa_policy_deployments_total counter # HELP jvm_memory_objects_pending_finalization The number of objects waiting in the finalizer queue. # TYPE jvm_memory_objects_pending_finalization gauge jvm_memory_objects_pending_finalization 0.0 # HELP jvm_memory_bytes_used Used bytes of a given JVM memory area. # TYPE jvm_memory_bytes_used gauge -jvm_memory_bytes_used{area="heap",} 4.7930528E7 -jvm_memory_bytes_used{area="nonheap",} 5.3899512E7 +jvm_memory_bytes_used{area="heap",} 9.5900224E7 +jvm_memory_bytes_used{area="nonheap",} 6.0285288E7 # HELP jvm_memory_bytes_committed Committed (bytes) of a given JVM memory area. # TYPE jvm_memory_bytes_committed gauge -jvm_memory_bytes_committed{area="heap",} 2.555904E8 -jvm_memory_bytes_committed{area="nonheap",} 5.8589184E7 +jvm_memory_bytes_committed{area="heap",} 5.10984192E8 +jvm_memory_bytes_committed{area="nonheap",} 6.3922176E7 # HELP jvm_memory_bytes_max Max (bytes) of a given JVM memory area. # TYPE jvm_memory_bytes_max gauge -jvm_memory_bytes_max{area="heap",} 4.064673792E9 +jvm_memory_bytes_max{area="heap",} 8.151564288E9 jvm_memory_bytes_max{area="nonheap",} -1.0 # HELP jvm_memory_bytes_init Initial bytes of a given JVM memory area. # TYPE jvm_memory_bytes_init gauge -jvm_memory_bytes_init{area="heap",} 2.64241152E8 +jvm_memory_bytes_init{area="heap",} 5.28482304E8 jvm_memory_bytes_init{area="nonheap",} 7667712.0 # HELP jvm_memory_pool_bytes_used Used bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_used gauge -jvm_memory_pool_bytes_used{pool="CodeHeap 'non-nmethods'",} 1271680.0 -jvm_memory_pool_bytes_used{pool="Metaspace",} 4.0208712E7 -jvm_memory_pool_bytes_used{pool="Tenured Gen",} 2.8176296E7 -jvm_memory_pool_bytes_used{pool="CodeHeap 'profiled nmethods'",} 5948416.0 -jvm_memory_pool_bytes_used{pool="Eden Space",} 1.780424E7 -jvm_memory_pool_bytes_used{pool="Survivor Space",} 1949992.0 -jvm_memory_pool_bytes_used{pool="Compressed Class Space",} 4855216.0 -jvm_memory_pool_bytes_used{pool="CodeHeap 'non-profiled nmethods'",} 1615488.0 +jvm_memory_pool_bytes_used{pool="CodeHeap 'non-nmethods'",} 1272320.0 +jvm_memory_pool_bytes_used{pool="Metaspace",} 4.1681312E7 +jvm_memory_pool_bytes_used{pool="Tenured Gen",} 2.8136056E7 +jvm_memory_pool_bytes_used{pool="CodeHeap 'profiled nmethods'",} 1.0006912E7 +jvm_memory_pool_bytes_used{pool="Eden Space",} 6.5005376E7 +jvm_memory_pool_bytes_used{pool="Survivor Space",} 2758792.0 +jvm_memory_pool_bytes_used{pool="Compressed Class Space",} 4913352.0 +jvm_memory_pool_bytes_used{pool="CodeHeap 'non-profiled nmethods'",} 2411392.0 # HELP jvm_memory_pool_bytes_committed Committed bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_committed gauge jvm_memory_pool_bytes_committed{pool="CodeHeap 'non-nmethods'",} 2555904.0 -jvm_memory_pool_bytes_committed{pool="Metaspace",} 4.194304E7 -jvm_memory_pool_bytes_committed{pool="Tenured Gen",} 1.76160768E8 -jvm_memory_pool_bytes_committed{pool="CodeHeap 'profiled nmethods'",} 6029312.0 -jvm_memory_pool_bytes_committed{pool="Eden Space",} 7.0647808E7 -jvm_memory_pool_bytes_committed{pool="Survivor Space",} 8781824.0 +jvm_memory_pool_bytes_committed{pool="Metaspace",} 4.32128E7 +jvm_memory_pool_bytes_committed{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_bytes_committed{pool="CodeHeap 'profiled nmethods'",} 1.0092544E7 +jvm_memory_pool_bytes_committed{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_bytes_committed{pool="Survivor Space",} 1.7629184E7 jvm_memory_pool_bytes_committed{pool="Compressed Class Space",} 5505024.0 jvm_memory_pool_bytes_committed{pool="CodeHeap 'non-profiled nmethods'",} 2555904.0 # HELP jvm_memory_pool_bytes_max Max bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_max gauge jvm_memory_pool_bytes_max{pool="CodeHeap 'non-nmethods'",} 5828608.0 jvm_memory_pool_bytes_max{pool="Metaspace",} -1.0 -jvm_memory_pool_bytes_max{pool="Tenured Gen",} 2.803236864E9 +jvm_memory_pool_bytes_max{pool="Tenured Gen",} 5.621809152E9 jvm_memory_pool_bytes_max{pool="CodeHeap 'profiled nmethods'",} 1.22912768E8 -jvm_memory_pool_bytes_max{pool="Eden Space",} 1.12132096E9 -jvm_memory_pool_bytes_max{pool="Survivor Space",} 1.40115968E8 +jvm_memory_pool_bytes_max{pool="Eden Space",} 2.248671232E9 +jvm_memory_pool_bytes_max{pool="Survivor Space",} 2.81083904E8 jvm_memory_pool_bytes_max{pool="Compressed Class Space",} 1.073741824E9 jvm_memory_pool_bytes_max{pool="CodeHeap 'non-profiled nmethods'",} 1.22916864E8 # HELP jvm_memory_pool_bytes_init Initial bytes of a given JVM memory pool. # TYPE jvm_memory_pool_bytes_init gauge jvm_memory_pool_bytes_init{pool="CodeHeap 'non-nmethods'",} 2555904.0 jvm_memory_pool_bytes_init{pool="Metaspace",} 0.0 -jvm_memory_pool_bytes_init{pool="Tenured Gen",} 1.76160768E8 +jvm_memory_pool_bytes_init{pool="Tenured Gen",} 3.52321536E8 jvm_memory_pool_bytes_init{pool="CodeHeap 'profiled nmethods'",} 2555904.0 -jvm_memory_pool_bytes_init{pool="Eden Space",} 7.0516736E7 -jvm_memory_pool_bytes_init{pool="Survivor Space",} 8781824.0 +jvm_memory_pool_bytes_init{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_bytes_init{pool="Survivor Space",} 1.7563648E7 jvm_memory_pool_bytes_init{pool="Compressed Class Space",} 0.0 jvm_memory_pool_bytes_init{pool="CodeHeap 'non-profiled nmethods'",} 2555904.0 # HELP jvm_memory_pool_collection_used_bytes Used bytes after last collection of a given JVM memory pool. # TYPE jvm_memory_pool_collection_used_bytes gauge -jvm_memory_pool_collection_used_bytes{pool="Tenured Gen",} 2.8176296E7 +jvm_memory_pool_collection_used_bytes{pool="Tenured Gen",} 2.8136056E7 jvm_memory_pool_collection_used_bytes{pool="Eden Space",} 0.0 -jvm_memory_pool_collection_used_bytes{pool="Survivor Space",} 1949992.0 +jvm_memory_pool_collection_used_bytes{pool="Survivor Space",} 2758792.0 # HELP jvm_memory_pool_collection_committed_bytes Committed after last collection bytes of a given JVM memory pool. # TYPE jvm_memory_pool_collection_committed_bytes gauge -jvm_memory_pool_collection_committed_bytes{pool="Tenured Gen",} 1.76160768E8 -jvm_memory_pool_collection_committed_bytes{pool="Eden Space",} 7.0647808E7 -jvm_memory_pool_collection_committed_bytes{pool="Survivor Space",} 8781824.0 +jvm_memory_pool_collection_committed_bytes{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_collection_committed_bytes{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_collection_committed_bytes{pool="Survivor Space",} 1.7629184E7 # HELP jvm_memory_pool_collection_max_bytes Max bytes after last collection of a given JVM memory pool. # TYPE jvm_memory_pool_collection_max_bytes gauge -jvm_memory_pool_collection_max_bytes{pool="Tenured Gen",} 2.803236864E9 -jvm_memory_pool_collection_max_bytes{pool="Eden Space",} 1.12132096E9 -jvm_memory_pool_collection_max_bytes{pool="Survivor Space",} 1.40115968E8 +jvm_memory_pool_collection_max_bytes{pool="Tenured Gen",} 5.621809152E9 +jvm_memory_pool_collection_max_bytes{pool="Eden Space",} 2.248671232E9 +jvm_memory_pool_collection_max_bytes{pool="Survivor Space",} 2.81083904E8 # HELP jvm_memory_pool_collection_init_bytes Initial after last collection bytes of a given JVM memory pool. # TYPE jvm_memory_pool_collection_init_bytes gauge -jvm_memory_pool_collection_init_bytes{pool="Tenured Gen",} 1.76160768E8 -jvm_memory_pool_collection_init_bytes{pool="Eden Space",} 7.0516736E7 -jvm_memory_pool_collection_init_bytes{pool="Survivor Space",} 8781824.0 -# HELP jvm_memory_pool_allocated_bytes_total Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. -# TYPE jvm_memory_pool_allocated_bytes_total counter -jvm_memory_pool_allocated_bytes_total{pool="Eden Space",} 1.62790696E8 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'profiled nmethods'",} 5150080.0 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-profiled nmethods'",} 1428864.0 -jvm_memory_pool_allocated_bytes_total{pool="Compressed Class Space",} 4785752.0 -jvm_memory_pool_allocated_bytes_total{pool="Metaspace",} 3.9463568E7 -jvm_memory_pool_allocated_bytes_total{pool="Tenured Gen",} 2.8176296E7 -jvm_memory_pool_allocated_bytes_total{pool="Survivor Space",} 5422680.0 -jvm_memory_pool_allocated_bytes_total{pool="CodeHeap 'non-nmethods'",} 1271680.0 -# HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. -# TYPE jvm_gc_collection_seconds summary -jvm_gc_collection_seconds_count{gc="Copy",} 3.0 -jvm_gc_collection_seconds_sum{gc="Copy",} 0.076 -jvm_gc_collection_seconds_count{gc="MarkSweepCompact",} 2.0 -jvm_gc_collection_seconds_sum{gc="MarkSweepCompact",} 0.126 -# HELP jvm_threads_current Current thread count of a JVM -# TYPE jvm_threads_current gauge -jvm_threads_current 31.0 -# HELP jvm_threads_daemon Daemon thread count of a JVM -# TYPE jvm_threads_daemon gauge -jvm_threads_daemon 16.0 -# HELP jvm_threads_peak Peak thread count of a JVM -# TYPE jvm_threads_peak gauge -jvm_threads_peak 31.0 -# HELP jvm_threads_started_total Started thread count of a JVM -# TYPE jvm_threads_started_total counter -jvm_threads_started_total 32.0 -# HELP jvm_threads_deadlocked Cycles of JVM-threads that are in deadlock waiting to acquire object monitors or ownable synchronizers -# TYPE jvm_threads_deadlocked gauge -jvm_threads_deadlocked 0.0 -# HELP jvm_threads_deadlocked_monitor Cycles of JVM-threads that are in deadlock waiting to acquire object monitors -# TYPE jvm_threads_deadlocked_monitor gauge -jvm_threads_deadlocked_monitor 0.0 -# HELP jvm_threads_state Current count of threads by state -# TYPE jvm_threads_state gauge -jvm_threads_state{state="BLOCKED",} 0.0 -jvm_threads_state{state="WAITING",} 13.0 -jvm_threads_state{state="RUNNABLE",} 7.0 -jvm_threads_state{state="TIMED_WAITING",} 11.0 -jvm_threads_state{state="TERMINATED",} 0.0 -jvm_threads_state{state="NEW",} 0.0 -# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool. -# TYPE jvm_buffer_pool_used_bytes gauge -jvm_buffer_pool_used_bytes{pool="mapped",} 0.0 -jvm_buffer_pool_used_bytes{pool="direct",} 187392.0 -# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool. -# TYPE jvm_buffer_pool_capacity_bytes gauge -jvm_buffer_pool_capacity_bytes{pool="mapped",} 0.0 -jvm_buffer_pool_capacity_bytes{pool="direct",} 187392.0 -# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool. -# TYPE jvm_buffer_pool_used_buffers gauge -jvm_buffer_pool_used_buffers{pool="mapped",} 0.0 -jvm_buffer_pool_used_buffers{pool="direct",} 8.0 +jvm_memory_pool_collection_init_bytes{pool="Tenured Gen",} 3.52321536E8 +jvm_memory_pool_collection_init_bytes{pool="Eden Space",} 1.41033472E8 +jvm_memory_pool_collection_init_bytes{pool="Survivor Space",} 1.7563648E7 # HELP jvm_classes_loaded The number of classes that are currently loaded in the JVM # TYPE jvm_classes_loaded gauge -jvm_classes_loaded 7287.0 +jvm_classes_loaded 7378.0 # HELP jvm_classes_loaded_total The total number of classes that have been loaded since the JVM has started execution # TYPE jvm_classes_loaded_total counter -jvm_classes_loaded_total 7287.0 +jvm_classes_loaded_total 7378.0 # HELP jvm_classes_unloaded_total The total number of classes that have been unloaded since the JVM has started execution # TYPE jvm_classes_unloaded_total counter jvm_classes_unloaded_total 0.0 -# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. -# TYPE process_cpu_seconds_total counter -process_cpu_seconds_total 19.23 -# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. -# TYPE process_start_time_seconds gauge -process_start_time_seconds 1.633111663176E9 -# HELP process_open_fds Number of open file descriptors. -# TYPE process_open_fds gauge -process_open_fds 350.0 -# HELP process_max_fds Maximum number of open file descriptors. -# TYPE process_max_fds gauge -process_max_fds 1048576.0 -# HELP process_virtual_memory_bytes Virtual memory size in bytes. -# TYPE process_virtual_memory_bytes gauge -process_virtual_memory_bytes 5.825941504E9 -# HELP process_resident_memory_bytes Resident memory size in bytes. -# TYPE process_resident_memory_bytes gauge -process_resident_memory_bytes 2.13909504E8 +# HELP jvm_info VM version info +# TYPE jvm_info gauge +jvm_info{runtime="OpenJDK Runtime Environment",vendor="Alpine",version="11.0.9+11-alpine-r1",} 1.0 # HELP jvm_memory_pool_allocated_bytes_created Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously. # TYPE jvm_memory_pool_allocated_bytes_created gauge -jvm_memory_pool_allocated_bytes_created{pool="Eden Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'profiled nmethods'",} 1.633111669942E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-profiled nmethods'",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Compressed Class Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Metaspace",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Tenured Gen",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="Survivor Space",} 1.633111669968E9 -jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-nmethods'",} 1.633111669968E9 +jvm_memory_pool_allocated_bytes_created{pool="Eden Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'profiled nmethods'",} 1.651077501657E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-profiled nmethods'",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Compressed Class Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Metaspace",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Tenured Gen",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="Survivor Space",} 1.651077501662E9 +jvm_memory_pool_allocated_bytes_created{pool="CodeHeap 'non-nmethods'",} 1.651077501662E9 diff --git a/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.jpg b/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.jpg Binary files differdeleted file mode 100644 index 89447874..00000000 --- a/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.jpg +++ /dev/null diff --git a/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.png b/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.png Binary files differnew file mode 100644 index 00000000..c17d3a6c --- /dev/null +++ b/docs/development/devtools/apex-s3p-results/apex_perf_jmeter_results.png diff --git a/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.jpg b/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.jpg Binary files differdeleted file mode 100644 index 1cdabb7e..00000000 --- a/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.jpg +++ /dev/null diff --git a/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.png b/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.png Binary files differnew file mode 100644 index 00000000..e092d77c --- /dev/null +++ b/docs/development/devtools/apex-s3p-results/apex_stability_jmeter_results.png diff --git a/docs/development/devtools/apex-s3p-results/apex_top_after_72h.jpg b/docs/development/devtools/apex-s3p-results/apex_top_after_72h.jpg Binary files differdeleted file mode 100644 index e51b942a..00000000 --- a/docs/development/devtools/apex-s3p-results/apex_top_after_72h.jpg +++ /dev/null diff --git a/docs/development/devtools/apex-s3p-results/apex_top_after_72h.png b/docs/development/devtools/apex-s3p-results/apex_top_after_72h.png Binary files differnew file mode 100644 index 00000000..dafc7002 --- /dev/null +++ b/docs/development/devtools/apex-s3p-results/apex_top_after_72h.png diff --git a/docs/development/devtools/apex-s3p-results/apex_top_before_72h.jpg b/docs/development/devtools/apex-s3p-results/apex_top_before_72h.jpg Binary files differdeleted file mode 100644 index cc2da54f..00000000 --- a/docs/development/devtools/apex-s3p-results/apex_top_before_72h.jpg +++ /dev/null diff --git a/docs/development/devtools/apex-s3p-results/apex_top_before_72h.png b/docs/development/devtools/apex-s3p-results/apex_top_before_72h.png Binary files differnew file mode 100644 index 00000000..2e2e7574 --- /dev/null +++ b/docs/development/devtools/apex-s3p-results/apex_top_before_72h.png diff --git a/docs/development/devtools/apex-s3p.rst b/docs/development/devtools/apex-s3p.rst index a4759f5c..9575277c 100644 --- a/docs/development/devtools/apex-s3p.rst +++ b/docs/development/devtools/apex-s3p.rst @@ -12,16 +12,58 @@ Policy APEX PDP component Both the Stability and the Performance tests were executed in a full ONAP OOM deployment in Nordix lab. - Setup Details +++++++++++++ -- APEX-PDP along with all policy components deployed as part of a full ONAP OOM deployment. -- Policy-models-simulator is deployed to use CDS and DMaaP simulators during policy execution. +Deploying ONAP using OOM +------------------------ + +APEX-PDP along with all policy components are deployed as part of a full ONAP OOM deployment. +At a minimum, the following ONAP components are needed: policy, mariadb-galera, aai, cassandra, aaf, and dmaap. + +Before deploying, the values.yaml files are changed to use NodePort instead of ClusterIP for policy-api, +policy-pap, and policy-apex-pdp, so that they are accessible from jmeter:: + + policy-apex-pdp NodePort 10.43.70.176 <none> 6969:30237/TCP + policy-api NodePort 10.43.2.99 <none> 6969:30240/TCP + policy-pap NodePort 10.43.203.178 <none> 6969:30442/TCP + +The node ports (30237, 30240 and 30442 above) are used in JMeter. The HOSTNAME for JMeter is set to the IP returned by running kubectl cluster-info. + +Set up policy-models-simulator +------------------------------ + +Policy-models-simulator is deployed to use CDS and DMaaP simulators during policy execution. Simulator configurations used are available in apex-pdp repository: testsuites/apex-pdp-stability/src/main/resources/simulatorConfig/ -- Two APEX policies are executed in the APEX-PDP engine, and are triggered by multiple threads during the tests. -- Both tests were run via jMeter. + +It is run as a docker image from a node accessible to the kubernetes cluster:: + + docker run -d --rm --publish 6680:6680 --publish 31054:3905 \ + --volume "apex-pdp/testsuites/apex-pdp-stability/src/main/resources/simulatorConfig:/opt/app/policy/simulators/etc/mounted" \ + nexus3.onap.org:10001/onap/policy-models-simulator:2.6-SNAPSHOT-latest + +The published ports 6680 and 31054 are used in JMeter for CDS and DMaaP simulators. + +Creation of VNF & PNF in AAI +---------------------------- + +In order for APEX-PDP engine to fetch the resource details from AAI during runtime execution, we need to create dummy +VNF & PNF entities in AAI. In a real control loop flow, the entities in AAI will be either created during orchestration +phase or provisioned in AAI separately. + +Download & execute the steps in postman collection for creating the entities along with it’s dependencies. +The steps needs to be performed sequentially one after another. And no input is required from user. + +:download:`Create VNF & PNF in AAI for Apex S3P <postman/create-vnf-pnf-aai-for-apex-s3p.postman_collection.json>` + +Make sure to skip the delete VNF & PNF steps. + +JMeter Tests +------------ + +Two APEX policies are executed in the APEX-PDP engine, and are triggered by multiple threads during the tests. +Both tests were run via jMeter. Stability test script is available in apex-pdp repository: testsuites/apex-pdp-stability/src/main/resources/apexPdpStabilityTestPlan.jmx @@ -85,6 +127,8 @@ Only one thread is in action and this step is done only once after the Main phas - **Delete Policy onap.policies.apex.Simplecontrolloop** - delete the first APEX policy using policy/api component. - **Delete Policy onap.policies.apex.Example** - delete the second APEX policy also using policy/api component. +Test Configuration +------------------ The following steps can be used to configure the parameters of test plan. @@ -97,8 +141,11 @@ The following steps can be used to configure the parameters of test plan. =================== =============================================================================== HOSTNAME IP Address or host name to access the components PAP_PORT Port number of PAP for making REST API calls such as deploy/undeploy of policy - API_PORT Port number of API for making REST API calls such as create/ delete of policy + API_PORT Port number of API for making REST API calls such as create/delete of policy APEX_PORT Port number of APEX for making REST API calls such as healthcheck/metrics + SIM_HOST IP Address or hostname running policy-models-simulator + DMAAP_PORT Port number of DMaaP simulator for making REST API calls such as reading notification events + CDS_PORT Port number of CDS simulator wait Wait time if required after a request (in milliseconds) threads Number of threads to run test cases in parallel threadsTimeOutInMs Synchronization timer for threads running in parallel (in milliseconds) @@ -111,7 +158,7 @@ The test was run in the background via "nohup", to prevent it from being interru .. code-block:: bash - nohup ./apache-jmeter-5.4.1/bin/jmeter.sh -n -t apexPdpStabilityTestPlan.jmx -l stabilityTestResults.jtl + nohup ./apache-jmeter-5.4.3/bin/jmeter.sh -n -t apexPdpStabilityTestPlan.jmx -l stabilityTestResults.jtl Test Results ------------ @@ -126,7 +173,7 @@ Stability test plan was triggered for 72 hours. There were no failures during th ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -428661 100 % 0.00 % 162 ms +430331 100 % 0.00 % 152 ms ======================= ================= ================== ================================== .. Note:: @@ -135,7 +182,7 @@ Stability test plan was triggered for 72 hours. There were no failures during th **JMeter Screenshot** -.. image:: apex-s3p-results/apex_stability_jmeter_results.jpg +.. image:: apex-s3p-results/apex_stability_jmeter_results.png **Memory and CPU usage** @@ -145,13 +192,13 @@ Prometheus metrics is also collected before and after the test execution. Memory and CPU usage before test execution: -.. image:: apex-s3p-results/apex_top_before_72h.jpg +.. image:: apex-s3p-results/apex_top_before_72h.png :download:`Prometheus metrics before 72h test <apex-s3p-results/apex_metrics_before_72h.txt>` Memory and CPU usage after test execution: -.. image:: apex-s3p-results/apex_top_after_72h.jpg +.. image:: apex-s3p-results/apex_top_after_72h.png :download:`Prometheus metrics after 72h test <apex-s3p-results/apex_metrics_after_72h.txt>` @@ -182,7 +229,7 @@ Run Test .. code-block:: bash - nohup ./apache-jmeter-5.4.1/bin/jmeter.sh -n -t apexPdpPerformanceTestPlan.jmx -l perftestresults.jtl + nohup ./apache-jmeter-5.4.3/bin/jmeter.sh -n -t apexPdpPerformanceTestPlan.jmx -l perftestresults.jtl Test Results @@ -195,12 +242,12 @@ Test results are shown as below. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -46946 100 % 0.00 % 198 ms +47586 100 % 0.00 % 163 ms ======================= ================= ================== ================================== **JMeter Screenshot** -.. image:: apex-s3p-results/apex_perf_jmeter_results.jpg +.. image:: apex-s3p-results/apex_perf_jmeter_results.png Summary +++++++ diff --git a/docs/development/devtools/postman/create-vnf-pnf-aai-for-apex-s3p.postman_collection.json b/docs/development/devtools/postman/create-vnf-pnf-aai-for-apex-s3p.postman_collection.json new file mode 100644 index 00000000..b85e79b2 --- /dev/null +++ b/docs/development/devtools/postman/create-vnf-pnf-aai-for-apex-s3p.postman_collection.json @@ -0,0 +1,788 @@ +{ + "info": { + "_postman_id": "b69368a6-2e65-4eeb-85f3-13d6b0b083ab", + "name": "Create VNF & PNF in AAI for Apex S3P", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Add Customer", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"global-customer-id\": \"DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf\",\r\n \"subscriber-name\": \"DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf\",\r\n \"subscriber-type\": \"INFRA\"\r\n}" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v11/business/customers/customer/DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v11", + "business", + "customers", + "customer", + "DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf" + ] + } + }, + "response": [] + }, + { + "name": "Add CloudRegion", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Real-Time", + "value": "true", + "type": "text" + }, + { + "key": "X-TransactionId", + "value": "AAI-Temp-Tool", + "type": "text" + }, + { + "key": "X-FromAppId", + "value": "AAI-Temp-Tool", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"cloud-owner\": \"CloudOwner\",\n \"cloud-region-id\": \"RegionOne\",\n \"cloud-type\": \"openstack\",\n \"owner-defined-type\": \"owner-defined-type\",\n \"cloud-region-version\": \"titanium_cloud\",\n \"identity-url\": \"http://10.195.194.213:5000/v2.0\",\n \"cloud-zone\": \"CloudZone\",\n \"sriov-automation\": true,\n \"tenants\": {\n \"tenant\": [\n {\n \"tenant-id\": \"7320ec4a5b9d4589ba7c4412ccfd290f\",\n \"tenant-name\": \"nso-vnf\",\n \"vservers\": {\n \"vserver\": [\n {\n \"vserver-id\": \"c82153dc-8d84-4e69-9673-5e0a60030779\",\n \"vserver-name\": \"viptela_scripts\",\n \"vserver-name2\": \"viptela_scripts\",\n \"prov-status\": \"Running\",\n \"vserver-selflink\": \"http://10.195.194.213:8774/v2.1/7320ec4a5b9d4589ba7c4412ccfd290f/servers/c82153dc-8d84-4e69-9673-5e0a60030779\",\n \"in-maint\": false,\n \"is-closed-loop-disabled\": false\n }\n ]\n }\n }\n ]\n }\n}" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "cloud-infrastructure", + "cloud-regions", + "cloud-region", + "CloudOwner", + "RegionOne" + ] + } + }, + "response": [] + }, + { + "name": "Add Service Subscription", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"service-type\": \"vFWDT\",\r\n \"relationship-list\": {\r\n \"relationship\": [\r\n {\r\n \"related-to\": \"tenant\",\r\n \"related-link\": \"/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/7320ec4a5b9d4589ba7c4412ccfd290f\",\r\n \"relationship-data\": [\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-owner\",\r\n \"relationship-value\": \"CloudOwner\"\r\n },\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-region-id\",\r\n \"relationship-value\": \"RegionOne\"\r\n },\r\n {\r\n \"relationship-key\": \"tenant.tenant-id\",\r\n \"relationship-value\": \"7320ec4a5b9d4589ba7c4412ccfd290f\"\r\n }\r\n ],\r\n \"related-to-property\": [\r\n {\r\n \"property-key\": \"tenant.tenant-name\",\r\n \"property-value\": \"nso-vnf\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v11/business/customers/customer/DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf/service-subscriptions/service-subscription/vFWDT", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v11", + "business", + "customers", + "customer", + "DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf", + "service-subscriptions", + "service-subscription", + "vFWDT" + ] + } + }, + "response": [] + }, + { + "name": "Add Model", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"model-invariant-id\": \"vTEST_VITELA\",\r\n \"model-type\": \"model_type\",\r\n \"model-vers\": {\r\n \"model-ver\": [\r\n {\r\n \"model-version-id\": \"vTEST\",\r\n \"model-name\": \"vTEST\",\r\n \"model-version\": \"v1.4.0\"\r\n }\r\n ]\r\n }\r\n}\r\n" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/service-design-and-creation/models/model/vTEST_VITELA", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "service-design-and-creation", + "models", + "model", + "vTEST_VITELA" + ] + } + }, + "response": [] + }, + { + "name": "Add Service Instance", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"service-instance-id\": \"55322ada-145a-492e-b196-0d171539a4b2\",\r\n \"service-instance-name\": \"Service_Ete_Namea337dd5b-4620-4ea6-bc3f-6edf1124d659\",\r\n \"environment-context\": \"General_Revenue-Bearing\",\r\n \"workload-context\": \"Production\",\r\n \"model-invariant-id\": \"vTEST_VITELA\",\r\n \"model-version-id\": \"vTEST\",\r\n \"selflink\": \"restconf/config/GENERIC-RESOURCE-API:services/service/55322ada-145a-492e-b196-0d171539a4b2/service-data/service-topology/\",\r\n \"orchestration-status\": \"Active\"\r\n}" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v11/business/customers/customer/DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf/service-subscriptions/service-subscription/vFWDT/service-instances/service-instance/55322ada-145a-492e-b196-0d171539a4b2", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v11", + "business", + "customers", + "customer", + "DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf", + "service-subscriptions", + "service-subscription", + "vFWDT", + "service-instances", + "service-instance", + "55322ada-145a-492e-b196-0d171539a4b2" + ] + } + }, + "response": [] + }, + { + "name": "Add dummy-vnf", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Real-Time", + "value": "true", + "type": "text" + }, + { + "key": "X-TransactionId", + "value": "AAI-Temp-Tool", + "type": "text" + }, + { + "key": "X-FromAppId", + "value": "AAI-Temp-Tool", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"vnf-id\": \"de305d54-75b4-431b-adb2-eb6b9e5460141\",\r\n \"vnf-name\": \"vfw-cnf-cds-test-1-vnf\",\r\n \"vnf-type\": \"vfw_cnf_cds/null\",\r\n \"service-id\": \"55322ada-145a-492e-b196-0d171539a4b2\",\r\n \"prov-status\": \"ACTIVE\",\r\n \"orchestration-status\": \"Assigned\",\r\n \"in-maint\": false,\r\n \"is-closed-loop-disabled\": false,\r\n \"model-invariant-id\": \"vTEST_VITELA\",\r\n \"model-version-id\": \"vTEST\",\r\n \"model-customization-id\": \"37b008b9-b367-4359-93fd-74d3ce0ee1a0\",\r\n \"relationship-list\": {\r\n \"relationship\": [\r\n {\r\n \"related-to\": \"service-instance\",\r\n \"relationship-label\": \"org.onap.relationships.inventory.ComposedOf\",\r\n \"related-link\": \"/aai/v14/business/customers/customer/DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf/service-subscriptions/service-subscription/vFWDT/service-instances/service-instance/55322ada-145a-492e-b196-0d171539a4b2\",\r\n \"relationship-data\": [\r\n {\r\n \"relationship-key\": \"customer.global-customer-id\",\r\n \"relationship-value\": \"DemoCust_47417dae-a821-4068-9736-e71c7da0d8bf\"\r\n },\r\n {\r\n \"relationship-key\": \"service-subscription.service-type\",\r\n \"relationship-value\": \"vFWDT\"\r\n },\r\n {\r\n \"relationship-key\": \"service-instance.service-instance-id\",\r\n \"relationship-value\": \"55322ada-145a-492e-b196-0d171539a4b2\"\r\n }\r\n ],\r\n \"related-to-property\": [\r\n {\r\n \"property-key\": \"service-instance.service-instance-name\",\r\n \"property-value\": \"Service_Ete_Namea337dd5b-4620-4ea6-bc3f-6edf1124d659\"\r\n }\r\n ]\r\n },\r\n {\r\n \"related-to\": \"tenant\",\r\n \"relationship-label\": \"org.onap.relationships.inventory.BelongsTo\",\r\n \"related-link\": \"/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/7320ec4a5b9d4589ba7c4412ccfd290f\",\r\n \"relationship-data\": [\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-owner\",\r\n \"relationship-value\": \"CloudOwner\"\r\n },\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-region-id\",\r\n \"relationship-value\": \"RegionOne\"\r\n },\r\n {\r\n \"relationship-key\": \"tenant.tenant-id\",\r\n \"relationship-value\": \"7320ec4a5b9d4589ba7c4412ccfd290f\"\r\n }\r\n ],\r\n \"related-to-property\": [\r\n {\r\n \"property-key\": \"tenant.tenant-name\",\r\n \"property-value\": \"nso-vnf\"\r\n }\r\n ]\r\n },\r\n {\r\n \"related-to\": \"vserver\",\r\n \"relationship-label\": \"tosca.relationships.HostedOn\",\r\n \"related-link\": \"/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/7320ec4a5b9d4589ba7c4412ccfd290f/vservers/vserver/c82153dc-8d84-4e69-9673-5e0a60030779\",\r\n \"relationship-data\": [\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-owner\",\r\n \"relationship-value\": \"CloudOwner\"\r\n },\r\n {\r\n \"relationship-key\": \"cloud-region.cloud-region-id\",\r\n \"relationship-value\": \"RegionOne\"\r\n },\r\n {\r\n \"relationship-key\": \"tenant.tenant-id\",\r\n \"relationship-value\": \"7320ec4a5b9d4589ba7c4412ccfd290f\"\r\n },\r\n {\r\n \"relationship-key\": \"vserver.vserver-id\",\r\n \"relationship-value\": \"c82153dc-8d84-4e69-9673-5e0a60030779\"\r\n }\r\n ],\r\n \"related-to-property\": [\r\n {\r\n \"property-key\": \"vserver.vserver-name\",\r\n \"property-value\": \"viptela_scripts\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/generic-vnfs/generic-vnf/de305d54-75b4-431b-adb2-eb6b9e5460141", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "generic-vnfs", + "generic-vnf", + "de305d54-75b4-431b-adb2-eb6b9e5460141" + ] + } + }, + "response": [] + }, + { + "name": "Verify dummy-vnf", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Real-Time", + "value": "true", + "type": "text" + }, + { + "key": "X-TransactionId", + "value": "AAI-Temp-Tool", + "type": "text" + }, + { + "key": "X-FromAppId", + "value": "AAI-Temp-Tool", + "type": "text" + } + ], + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/generic-vnfs/generic-vnf/de305d54-75b4-431b-adb2-eb6b9e5460141", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "generic-vnfs", + "generic-vnf", + "de305d54-75b4-431b-adb2-eb6b9e5460141" + ] + } + }, + "response": [] + }, + { + "name": "Add simple-cl-pnf", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Real-Time", + "value": "true", + "type": "text" + }, + { + "key": "X-TransactionId", + "value": "AAI-Temp-Tool", + "type": "text" + }, + { + "key": "X-FromAppId", + "value": "AAI-Temp-Tool", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"pnf-name\": \"PNF101\",\n \"pnf-name2\": \"the-hostname\",\n \"pnf-id\": \"927b2580-36d9-4f13-8421-3c9d43b7a57e\",\n \"equip-type\": \"example-equip-type-val-20348\",\n \"equip-vendor\": \"example-equip-vendor-val-52182\",\n \"equip-model\": \"example-equip-model-val-8370\",\n \"management-option\": \"example-management-option-val-72881\",\n \"ipaddress-v4-oam\": \"10.195.200.23\",\n \"in-maint\": false,\n \"ipaddress-v6-oam\": \"\"\n }" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v15/network/pnfs/pnf/PNF101", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v15", + "network", + "pnfs", + "pnf", + "PNF101" + ] + } + }, + "response": [] + }, + { + "name": "Verify simple-cl-pnf", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/pnfs/pnf/PNF101", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "pnfs", + "pnf", + "PNF101" + ] + } + }, + "response": [] + }, + { + "name": "Add simple-cl-pnf-failure", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Real-Time", + "value": "true", + "type": "text" + }, + { + "key": "X-TransactionId", + "value": "AAI-Temp-Tool", + "type": "text" + }, + { + "key": "X-FromAppId", + "value": "AAI-Temp-Tool", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"pnf-name\": \"simple-cl-pnf-failure\",\n \"pnf-name2\": \"the-hostname\",\n \"pnf-id\": \"927b2580-36d9-4f13-8421-3c9d43b7a77e\",\n \"equip-type\": \"example-equip-type-val-20348\",\n \"equip-vendor\": \"example-equip-vendor-val-52182\",\n \"equip-model\": \"example-equip-model-val-8370\",\n \"management-option\": \"example-management-option-val-72881\",\n \"ipaddress-v4-oam\": \"10.195.200.23\",\n \"in-maint\": false,\n \"ipaddress-v6-oam\": \"\"\n }" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v15/network/pnfs/pnf/simple-cl-pnf-failure", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v15", + "network", + "pnfs", + "pnf", + "simple-cl-pnf-failure" + ] + } + }, + "response": [] + }, + { + "name": "Verify simple-cl-pnf-failure", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/pnfs/pnf/simple-cl-pnf-failure", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "pnfs", + "pnf", + "simple-cl-pnf-failure" + ] + } + }, + "response": [] + }, + { + "name": "Delete dummy-vnf", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/generic-vnfs/generic-vnf/57b008b9-b367-4359-93fd-74d3ce0ee1a0?resource-version=1633120087974", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "generic-vnfs", + "generic-vnf", + "57b008b9-b367-4359-93fd-74d3ce0ee1a0" + ], + "query": [ + { + "key": "resource-version", + "value": "1633120087974" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete simple-cl-pnf", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/pnfs/pnf/simple-cl-pnf?resource-version=1621307213843", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "pnfs", + "pnf", + "simple-cl-pnf" + ], + "query": [ + { + "key": "resource-version", + "value": "1621307213843" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete simple-cl-pnf-failure", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "type": "text", + "value": "application/json" + }, + { + "key": "Accept", + "type": "text", + "value": "application/json" + }, + { + "key": "Real-Time", + "type": "text", + "value": "true" + }, + { + "key": "X-TransactionId", + "type": "text", + "value": "AAI-Temp-Tool" + }, + { + "key": "X-FromAppId", + "type": "text", + "value": "AAI-Temp-Tool" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{AAI-URL}}/aai/v14/network/pnfs/pnf/simple-cl-pnf-failure?resource-version=1621307213843", + "host": [ + "{{AAI-URL}}" + ], + "path": [ + "aai", + "v14", + "network", + "pnfs", + "pnf", + "simple-cl-pnf-failure" + ], + "query": [ + { + "key": "resource-version", + "value": "1621307213843" + } + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "demo123456!", + "type": "string" + }, + { + "key": "username", + "value": "aai@aai.onap.org", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} |