Execute Analytic Service for specific experiment(s) Prometheus - sonata-nfv/tng-analytics-engine GitHub Wiki
Scope: This functionality is used for realizing an analysis upon the data generated by one or more sdk benchmark experiment(s). This is used when benchmarking data are exposed to Prometheus
REST - API: http://profiler_server_IP_address/profiling_service
POST body parameters
{
"start": "The datetime the experiment(s) started to be executed. This timestamp should be synchronized (use the same clock with the Prometheus timestamps)",
"end": "The datetime the experiment(s) stopped to be executed. This timestamp should be synchronized (use the same clock with the Prometheus timestamps)",
"name": "String with the name of the analytic service",
"step": "The frequency of getting data from Prometheus. This is an optional field",
"metrics": "JSONArray. This is an optional field",
"dimensions": "JSONArray. This is an optional field",
"metrics-without-dimensions": "JSONArray. This is an optional field",
"metrics-keyword": "JSONArray. This is an optional field",
}
Some examples are:
See how two specific metrics are related between them:
{
"start":"2019-03-04T07:30:30.781Z",
"end":"2019-03-04T17:30:30.781Z",
"step":"10s",
"name": "linearRegression",
"metrics": [mn_mp_output_vdu01_cpu_stats__online_cpus_int{ns_id:"ns-1vnf-ids-suricata",experiment_id:"suricata_performance"}, mn_mp_output_vdu01_networks__eth0__rx_bytes {ns_id:"ns-1vnf-ids-suricata",experiment_id:"suricata_performance"} ]
}
See via a chord diagram how all metrics coming from the ns-1vnf-ids-suricata
network service are related between them:
{
"start":"2019-03-04T07:30:30.781Z",
"end":"2019-03-04T17:30:30.781Z",
"step":"10s",
"name": "chordDiagram",
"dimensions": [{ns_id:"ns-1vnf-ids-suricata"}]
}
See via a chord diagram how all metrics coming from the ns-1vnf-calibration-stress
network service for two specific experiments (cpu_limitation
& memory_limitation
) are related between them:
{
"start":"2019-03-04T07:30:30.781Z",
"end":"2019-03-04T17:30:30.781Z",
"step":"10s",
"name": "chordDiagram",
"dimensions": [{ns_id:"ns-1vnf-calibration-stress",experiment_id:"cpu_limitation"},{ns_id:"ns-1vnf-calibration-stress",experiment_id:"memory_limitation"}]
}
The result of such a call is a JSONArray that contains a set of urls where the end user can see the profiling analysis results.
A response example should be:
[
"http://opencpu_server/ocpu/tmp/x0d8b61dcbe8022/console",
"http://opencpu_server/ocpu/tmp/x0d8b61dcbe8022/files/finaldata.csv",
"http://opencpu_server/ocpu/tmp/x0d8b61dcbe8022/files/metricsCombination.html"
]