Builded diagnostic
diff --git a/views/ngXosViews/diagnostic/env/default.js b/views/ngXosViews/diagnostic/env/default.js
index 11ee777..e9ed236 100644
--- a/views/ngXosViews/diagnostic/env/default.js
+++ b/views/ngXosViews/diagnostic/env/default.js
@@ -7,7 +7,7 @@
// (works only for local environment as both application are served on the same domain)
module.exports = {
- host: 'http://clnode078.clemson.cloudlab.us:9999/',
- xoscsrftoken: 'nGSrDjG6Ryqho9Kl6eSXAcyPg2YudUZQ',
- xossessionid: '2x7omv64a2mpb1f62vhcy40kq32swv75'
+ host: 'http://clnode067.clemson.cloudlab.us:9999/',
+ xoscsrftoken: 'ZhPiXOVgQH2S0QQtLTkx3DaESR7IOvQc',
+ xossessionid: '49cjbceeg483ife9rocex8h1st360ii3'
};
diff --git a/views/ngXosViews/diagnostic/env/onlab_pod.js b/views/ngXosViews/diagnostic/env/onlab_pod.js
new file mode 100644
index 0000000..413bd04
--- /dev/null
+++ b/views/ngXosViews/diagnostic/env/onlab_pod.js
@@ -0,0 +1,13 @@
+// This is a default configuration for your development environment.
+// You can duplicate this configuration for any of your Backend Environments.
+// Different configurations are loaded setting a NODE_ENV variable that contain the config file name.
+// `NODE_ENV=local npm start`
+//
+// If xoscsrftoken or xossessionid are not specified the browser value are used
+// (works only for local environment as both application are served on the same domain)
+
+module.exports = {
+ host: 'http://10.90.0.132/',
+ xoscsrftoken: 'bDZaZNRDU6BwUanvjfcGfKJHohG3mlqb',
+ xossessionid: '3nww58wgrlscs7boy2xzw11tji8ywal5'
+};
diff --git a/views/ngXosViews/diagnostic/mocks/data/instances.json b/views/ngXosViews/diagnostic/mocks/data/instances.json
index ec0f598..d9814f3 100644
--- a/views/ngXosViews/diagnostic/mocks/data/instances.json
+++ b/views/ngXosViews/diagnostic/mocks/data/instances.json
@@ -234,7 +234,7 @@
"lazy_blocked": false,
"no_sync": false,
"instance_id": "instance-00000004",
- "instance_uuid": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "instance_uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
"name": "mysite_vsg",
"instance_name": "mysite_vsg-1",
"ip": "130.127.133.90",
diff --git a/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json b/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json
index 7be26c4..8678222 100644
--- a/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json
+++ b/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json
@@ -1,310 +1,242 @@
[
{
- "resource_name": "mysite_vsg-1",
- "description": "Existence of instance",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "instance",
- "unit": "instance",
- "category": "Nova",
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Existence of vcpe instance",
+ "resource_id": "vcpe-222-432",
+ "meter": "vcpe",
+ "unit": "vcpe",
+ "category": "VCPE",
"slice": "mysite_vsg",
"name": "none",
"service": "service_vsg",
"value": 1.0,
- "time": "2016-02-17T22:19:00",
+ "time": "2016-02-24T00:21:28",
"project_id": "718dd78532a24a74b0491437bbef398c"
},
{
- "resource_name": "mysite_vsg-1",
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Number of entries in DNS cache",
+ "resource_id": "vcpe-222-432",
+ "meter": "vcpe.dns.cache.size",
+ "unit": "entries",
+ "category": "VCPE",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 150.0,
+ "time": "2016-02-24T00:21:28",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Unexpired entries that were thrown out of cache",
+ "resource_id": "vcpe-222-432",
+ "meter": "vcpe.dns.replaced_unexpired_entries",
+ "unit": "entries",
+ "category": "VCPE",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T00:21:28",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Number of cache hits",
+ "resource_id": "vcpe-222-432",
+ "meter": "vcpe.dns.queries_answered_locally",
+ "unit": "queries",
+ "category": "VCPE",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T00:21:28",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Number of cache misses",
+ "resource_id": "vcpe-222-432",
+ "meter": "vcpe.dns.queries_forwarded",
+ "unit": "queries",
+ "category": "VCPE",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T00:21:28",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
"description": "Volume of RAM",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "resource_id": "vcpe-222-432",
"meter": "memory",
"unit": "MB",
"category": "Nova",
"slice": "mysite_vsg",
"name": "none",
"service": "service_vsg",
- "value": 2048.0,
- "time": "2016-02-17T22:19:00",
+ "value": 2099.0,
+ "time": "2016-02-24T00:21:28",
"project_id": "718dd78532a24a74b0491437bbef398c"
},
{
- "resource_name": "mysite_vsg-1",
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
"description": "Volume of RAM used",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "resource_id": "vcpe-222-432",
"meter": "memory.usage",
"unit": "MB",
"category": "Nova",
"slice": "mysite_vsg",
"name": "none",
"service": "service_vsg",
- "value": 1754.0,
- "time": "2016-02-17T22:19:00",
+ "value": 31.1625,
+ "time": "2016-02-24T00:21:28",
"project_id": "718dd78532a24a74b0491437bbef398c"
},
{
- "resource_name": "mysite_vsg-1",
- "description": "CPU time used",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "cpu",
- "unit": "ns",
+ "resource_name": "vcpe-222-432",
+ "resource": "vcpe-222-432",
+ "description": "Average CPU utilization",
+ "resource_id": "vcpe-222-432",
+ "meter": "cpu_util",
+ "unit": "%",
"category": "Nova",
"slice": "mysite_vsg",
"name": "none",
"service": "service_vsg",
- "value": 179260000000.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Number of VCPUs",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "vcpus",
- "unit": "vcpu",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 1.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Number of read requests",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.read.requests",
- "unit": "request",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 10444.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Number of write requests",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.write.requests",
- "unit": "request",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 58370.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Volume of reads",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.read.bytes",
- "unit": "B",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 317620030.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Volume of writes",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.write.bytes",
- "unit": "B",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 2818024448.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Size of root disk",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.root.size",
- "unit": "GB",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 20.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-1",
- "description": "Size of ephemeral disk",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745",
- "meter": "disk.ephemeral.size",
- "unit": "GB",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 0.0,
- "time": "2016-02-17T22:19:00",
+ "value": 4.845000000000001,
+ "time": "2016-02-24T00:21:28",
"project_id": "718dd78532a24a74b0491437bbef398c"
},
{
- "resource_name": "mysite_vsg-2",
- "description": "Existence of instance",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "instance",
- "unit": "instance",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 1.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Volume of RAM",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "memory",
- "unit": "MB",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 2048.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Volume of RAM used",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "memory.usage",
- "unit": "MB",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 1534.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "CPU time used",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "cpu",
- "unit": "ns",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 134920000000.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Number of VCPUs",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "vcpus",
- "unit": "vcpu",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 1.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Number of read requests",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.read.requests",
- "unit": "request",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 10222.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Number of write requests",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.write.requests",
- "unit": "request",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 38570.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Volume of reads",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.read.bytes",
- "unit": "B",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 326340030.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Volume of writes",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.write.bytes",
- "unit": "B",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 2818024448.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Size of root disk",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.root.size",
- "unit": "GB",
- "category": "Nova",
- "slice": "mysite_vsg",
- "name": "none",
- "service": "service_vsg",
- "value": 20.0,
- "time": "2016-02-17T22:19:00",
- "project_id": "718dd78532a24a74b0491437bbef398c"
- },
- {
- "resource_name": "mysite_vsg-2",
- "description": "Size of ephemeral disk",
- "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746",
- "meter": "disk.ephemeral.size",
- "unit": "GB",
+ "resource_name": "vcpe-222-432-eth0",
+ "resource": "vcpe-222-432-eth0",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "vcpe-222-432-eth0",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
"category": "Nova",
"slice": "mysite_vsg",
"name": "none",
"service": "service_vsg",
"value": 0.0,
- "time": "2016-02-17T22:19:00",
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth0",
+ "resource": "vcpe-222-432-eth0",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "vcpe-222-432-eth0",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.00030304561114446413,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth0",
+ "resource": "vcpe-222-432-eth0",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "vcpe-222-432-eth0",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth0",
+ "resource": "vcpe-222-432-eth0",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "vcpe-222-432-eth0",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 4.714042840024997e-06,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth1",
+ "resource": "vcpe-222-432-eth1",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "vcpe-222-432-eth1",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth1",
+ "resource": "vcpe-222-432-eth1",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "vcpe-222-432-eth1",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.00030304561114446413,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth1",
+ "resource": "vcpe-222-432-eth1",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "vcpe-222-432-eth1",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0,
+ "time": "2016-02-24T01:19:25",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "vcpe-222-432-eth1",
+ "resource": "vcpe-222-432-eth1",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "vcpe-222-432-eth1",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 4.714042840024997e-06,
+ "time": "2016-02-24T01:19:25",
"project_id": "718dd78532a24a74b0491437bbef398c"
}
-]
\ No newline at end of file
+]
diff --git a/views/ngXosViews/diagnostic/mocks/data/tenants.json b/views/ngXosViews/diagnostic/mocks/data/tenants.json
index 5d6fb15..4e7557b 100644
--- a/views/ngXosViews/diagnostic/mocks/data/tenants.json
+++ b/views/ngXosViews/diagnostic/mocks/data/tenants.json
@@ -65,9 +65,8 @@
"subscriber_user": null,
"subscriber_root": null,
"service_specific_id": null,
- "service_specific_attribute": "{\"instance_id\": 1, \"creator_id\": 1}",
- "connect_method": "na",
- "wan_container_ip": "10.0.1.24"
+ "service_specific_attribute": "{\"instance_id\": 1, \"creator_id\": 1, \"wan_container_ip\": \"10.0.1.24\"}",
+ "connect_method": "na"
},
{
"humanReadableName": "ceilometer-tenant-8",
diff --git a/views/ngXosViews/diagnostic/mocks/data/xos-instance-statistics.json b/views/ngXosViews/diagnostic/mocks/data/xos-instance-statistics.json
new file mode 100644
index 0000000..7b83f5d
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/xos-instance-statistics.json
@@ -0,0 +1,557 @@
+[
+ {
+ "resource_name": "mysite_vsg-1",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average CPU utilization",
+ "resource_id": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "meter": "cpu_util",
+ "unit": "%",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 34.39350127615451,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "mysite_vsg-1",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of VCPUs",
+ "resource_id": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "meter": "vcpus",
+ "unit": "vcpu",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1.0,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "mysite_vsg-1",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Volume of RAM",
+ "resource_id": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "meter": "memory",
+ "unit": "MB",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 2048.0,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "mysite_vsg-1",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "CPU time used",
+ "resource_id": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "meter": "cpu",
+ "unit": "ns",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 199610924583333.34,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "mysite_vsg-1",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Volume of RAM used",
+ "resource_id": "075a3ae4-9e76-4198-8e6b-67c67b996745",
+ "meter": "memory.usage",
+ "unit": "MB",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1931.625,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.0001851851851851852,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.outgoing.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 14088.506944444445,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.015026113884266964,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.02625256131755716,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.incoming.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 66.71527777777777,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 9.25925925925926e-05,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.incoming.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 8747.979166666666,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapcf5721c4-c6",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapcf5721c4-c6",
+ "meter": "network.outgoing.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 111.22222222222223,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1.603090277777778,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.outgoing.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1486894584.4722223,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1248.113658402975,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 143.5401912417864,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.incoming.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 12888749.868055556,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 1.5918200296505445,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.incoming.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 28949696952.67361,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap3f06c6d0-fb",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap3f06c6d0-fb",
+ "meter": "network.outgoing.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 13835573.3125,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6.944444444444444e-05,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.outgoing.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6808.0,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.014062500000000002,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.013333333333333332,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.incoming.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 42.958333333333336,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6.944444444444444e-05,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.incoming.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 7230.0625,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tapb7ae5310-e2",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tapb7ae5310-e2",
+ "meter": "network.outgoing.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 40.958333333333336,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.outgoing.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6.944444444444444e-05,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.outgoing.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6773.333333333333,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.incoming.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.014062500000000002,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of outgoing bytes on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.outgoing.bytes.rate",
+ "unit": "B/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 0.013325938251063044,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.incoming.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 44.77777777777778,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Average rate per sec of incoming packets on a VM network interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.incoming.packets.rate",
+ "unit": "packet/s",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 6.944444444444444e-05,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of incoming bytes on the network for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.incoming.bytes",
+ "unit": "B",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 7365.5,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ },
+ {
+ "resource_name": "tap38f1f5be-89",
+ "instance-uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746",
+ "description": "Number of outgoing packets for a VM interface",
+ "resource_id": "instance-00000004-075a3ae4-9e76-4198-8e6b-67c67b996745-tap38f1f5be-89",
+ "meter": "network.outgoing.packets",
+ "unit": "packet",
+ "category": "Nova",
+ "slice": "mysite_vsg",
+ "name": "none",
+ "service": "service_vsg",
+ "value": 40.77777777777778,
+ "time": "2016-02-23T22:30:34",
+ "project_id": "718dd78532a24a74b0491437bbef398c"
+ }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json b/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json
index ba9dbb8..660c9f8 100644
--- a/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json
+++ b/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json
@@ -35,5 +35,10 @@
"url": "meterstatistics",
"base": "xoslib/",
"methods": ["GET"]
+ },
+ {
+ "url": "xos-instance-statistics",
+ "base": "xoslib/",
+ "methods": ["GET"]
}
]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/src/css/serviceTopology.css b/views/ngXosViews/diagnostic/src/css/serviceTopology.css
index 9d9aa60..66df573 100644
--- a/views/ngXosViews/diagnostic/src/css/serviceTopology.css
+++ b/views/ngXosViews/diagnostic/src/css/serviceTopology.css
@@ -47,27 +47,6 @@
top: 0;
}
-/* STATS */
-
-logic-topology > .instances-stats {
- position: absolute;
- top: 0;
- z-index: 2;
- width: 100%;
-}
-
-logic-topology > .instances-stats ul.list-group {
- font-size: 10px !important;
-}
-
-logic-topology > .instances-stats ul.list-group li{
- padding: 3px 15px;
-}
-
-logic-topology > .instances-stats ul.list-group .badge {
- font-size: 8px;
-}
-
/* CLOUDS */
logic-topology .network .cloud {
@@ -133,7 +112,7 @@
}
/* CONTAINERS */
-logic-topology .node .container rect{
+logic-topology .node .instance .stats-container .container rect {
fill: #eee;
stroke: steelblue;
stroke-width: 1px;
diff --git a/views/ngXosViews/diagnostic/src/js/chart_data_service.js b/views/ngXosViews/diagnostic/src/js/chart_data_service.js
index 444f046..1fd093a 100644
--- a/views/ngXosViews/diagnostic/src/js/chart_data_service.js
+++ b/views/ngXosViews/diagnostic/src/js/chart_data_service.js
@@ -2,7 +2,7 @@
'use strict';
angular.module('xos.serviceTopology')
- .service('ChartData', function($rootScope, $q, lodash, Tenant, Node, serviceTopologyConfig, Ceilometer) {
+ .service('ChartData', function($rootScope, $q, lodash, Tenant, Node, serviceTopologyConfig, Ceilometer, Instances) {
this.currentSubscriber = null;
this.currentServiceChain = null;
@@ -82,7 +82,8 @@
};
this.getSubscriberIP = () => {
- const ip = this.currentServiceChain.children[0].children[0].tenant.wan_container_ip;
+ const ip = JSON.parse(this.currentServiceChain.children[0].children[0].tenant.service_specific_attribute).wan_container_ip;
+ // const ip = this.currentServiceChain.children[0].children[0].tenant.wan_container_ip;
this.logicTopologyData.children[0].subscriberIP = ip;
};
@@ -145,26 +146,35 @@
attr = null;
}
- // if no instances are associated to the container
+ // if no instances are associated to the subscriber
if(!attr || !attr.instance_id){
let d = $q.defer();
d.resolve([]);
p = d.promise;
}
+ // if ther is an instance
else{
- let instances = [attr.instance_id];
- p = Ceilometer.getInstancesStats(instances)
- .then((instances) => {
- instances.map(i => {
- i.container = {
- name: `vcpe-${this.currentSubscriber.tags.sTag}-${this.currentSubscriber.tags.cTag}`
- };
- return i;
- });
+ let instance = {};
+ p = Instances.get({id: attr.instance_id}).$promise
+ .then(function(_instance){
+ instance = _instance;
+ return Ceilometer.getInstanceStats(instance.instance_uuid);
+ })
+ .then((stats) => {
+ instance.stats = stats;
+ const containerName = `vcpe-${this.currentSubscriber.tags.sTag}-${this.currentSubscriber.tags.cTag}`;
+ // append containers
+ instance.container = {
+ name: containerName
+ };
// TODO fetch container stats
-
- return instances;
+ return Ceilometer.getContainerStats(containerName);
+ })
+ .then((containerStats) => {
+ instance.container.stats = containerStats.stats;
+ instance.container.port = containerStats.port;
+ return [instance];
});
}
}
diff --git a/views/ngXosViews/diagnostic/src/js/config.js b/views/ngXosViews/diagnostic/src/js/config.js
index 13f2172..f8d6bbf 100644
--- a/views/ngXosViews/diagnostic/src/js/config.js
+++ b/views/ngXosViews/diagnostic/src/js/config.js
@@ -41,7 +41,7 @@
},
container: {
width: 60,
- height: 30,
+ height: 130,
margin: 5,
x: -30,
y: -15
diff --git a/views/ngXosViews/diagnostic/src/js/nodeDrawer.js b/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
index 7480917..d172102 100644
--- a/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
+++ b/views/ngXosViews/diagnostic/src/js/nodeDrawer.js
@@ -204,21 +204,117 @@
}
};
+ const drawContainer = (container, docker) => {
+
+ const containerBox = container.append('g')
+ .attr({
+ class: 'container',
+ transform: `translate(${serviceTopologyConfig.instance.margin}, 115)`
+ });
+
+ containerBox.append('rect')
+ .attr({
+ width: 250 - (serviceTopologyConfig.container.margin * 2),
+ height: serviceTopologyConfig.container.height,
+ });
+
+ containerBox.append('text')
+ .attr({
+ y: 20,
+ x: serviceTopologyConfig.instance.margin,
+ class: 'name'
+ })
+ .text(docker.name)
+
+ // add stats
+ const interestingMeters = ['memory', 'memory.usage', 'cpu_util'];
+
+ interestingMeters.forEach((m, i) => {
+ const meter = lodash.find(docker.stats, {meter: m});
+ // if there is no meter stats skip rendering
+ if(!angular.isDefined(meter)){
+ return;
+ }
+ containerBox.append('text')
+ .attr({
+ y: 40 + (i * 15),
+ x: serviceTopologyConfig.instance.margin,
+ opacity: 0
+ })
+ .text(`${meter.description}: ${Math.round(meter.value)} ${meter.unit}`)
+ .transition()
+ .duration(serviceTopologyConfig.duration)
+ .attr({
+ opacity: 1
+ });
+ });
+
+ // add port stats
+ const ports = ['eth0', 'eth1'];
+ const interestingPortMeters = [
+ {
+ meter: 'network.incoming.bytes.rate',
+ label: 'Incoming'
+ },
+ {
+ meter: 'network.outgoing.bytes.rate',
+ label: 'Outgoing'
+ }
+ ];
+
+ ports.forEach((p, j) => {
+
+ // if there are no port stats skip rendering
+ if(docker.port[p].length === 0){
+ return;
+ }
+
+ containerBox.append('text')
+ .attr({
+ y: 90,
+ x: serviceTopologyConfig.instance.margin + (120 * j),
+ class: 'name'
+ })
+ .text(`${docker.name}-${p}`)
+
+ interestingPortMeters.forEach((m, i) => {
+
+ const meter = lodash.find(docker.port[p], {meter: m.meter});
+ // if there is no meter stats skip rendering
+ if(!angular.isDefined(meter)){
+ return;
+ }
+ containerBox.append('text')
+ .attr({
+ y: 105 + (i * 15),
+ x: serviceTopologyConfig.instance.margin + (120 * j),
+ opacity: 0
+ })
+ .text(`${m.label}: ${Math.round(meter.value)} ${meter.unit}`)
+ .transition()
+ .duration(serviceTopologyConfig.duration)
+ .attr({
+ opacity: 1
+ });
+ });
+ });
+ }
+
const showInstanceStats = (container, instance) => {
// NOTE this should be dinamically positioned
// base on the number of element present
const statsContainer = container.append('g')
.attr({
- transform: `translate(200, -32)`,
+ transform: `translate(200, -120)`,
class: 'stats-container'
});
statsContainer.append('line')
.attr({
- x1: -120,
- y1: 50,
+ x1: -160,
+ y1: 120,
x2: 0,
y2: 50,
stroke: 'black',
@@ -232,7 +328,7 @@
// NOTE rect should be dinamically sized base on the presence of a container
let statsHeight = 110;
- let statsWidth = 200;
+ let statsWidth = 250;
if (instance.container){
statsHeight += serviceTopologyConfig.container.height + (serviceTopologyConfig.container.margin * 2)
@@ -290,7 +386,7 @@
x: serviceTopologyConfig.instance.margin,
opacity: 0
})
- .text(`${meter.description}: ${meter.value} ${meter.unit}`)
+ .text(`${meter.description}: ${Math.round(meter.value)} ${meter.unit}`)
.transition()
.duration(serviceTopologyConfig.duration)
.attr({
@@ -300,26 +396,7 @@
if(instance.container){
// draw container
-
- const containerBox = statsContainer.append('g')
- .attr({
- class: 'container',
- transform: `translate(${serviceTopologyConfig.instance.margin}, 115)`
- });
-
- containerBox.append('rect')
- .attr({
- width: statsWidth - (serviceTopologyConfig.container.margin * 2),
- height: serviceTopologyConfig.container.height,
- });
-
- containerBox.append('text')
- .attr({
- y: 20,
- x: (statsWidth - (serviceTopologyConfig.container.margin * 2)) / 2,
- 'text-anchor': 'middle'
- })
- .text(instance.container.name)
+ drawContainer(statsContainer, instance.container);
}
};
diff --git a/views/ngXosViews/diagnostic/src/js/rest_services.js b/views/ngXosViews/diagnostic/src/js/rest_services.js
index d5e924f..311ea07 100644
--- a/views/ngXosViews/diagnostic/src/js/rest_services.js
+++ b/views/ngXosViews/diagnostic/src/js/rest_services.js
@@ -49,7 +49,7 @@
this.getInstanceStats = (instanceUuid) => {
let deferred = $q.defer();
- $http.get('/xoslib/meterstatistics', {params:{resource: instanceUuid}})
+ $http.get('/xoslib/xos-instance-statistics', {params: {'instance-uuid': instanceUuid}})
.then((res) => {
deferred.resolve(res.data);
})
@@ -95,6 +95,33 @@
return deferred.promise;
};
+
+ this.getContainerStats = (containerName) => {
+ const deferred = $q.defer();
+
+ let res = {};
+
+ $http.get('/xoslib/meterstatistics', {params: {'resource': containerName}})
+ .then((containerStats) => {
+ res.stats = containerStats.data;
+ return $http.get('/xoslib/meterstatistics', {params: {'resource': `${containerName}-eth0`}})
+ })
+ .then((portStats) => {
+ res.port = {
+ eth0: portStats.data
+ };
+ return $http.get('/xoslib/meterstatistics', {params: {'resource': `${containerName}-eth1`}})
+ })
+ .then((portStats) => {
+ res.port.eth1 = portStats.data;
+ deferred.resolve(res);
+ })
+ .catch((e) => {
+ deferred.reject(e);
+ })
+
+ return deferred.promise;
+ }
})
.service('Slice', function($resource){
return $resource('/xos/slices', {id: '@id'});