Integration with VnV - sonata-nfv/tng-analytics-engine GitHub Wiki
The following sequence diagram highlights how the profiler component can be used within the VnV 5GTango Component.
A detailed description of the involved is also presented.
2. Get available analytic services
see more detaills here https://github.com/sonata-nfv/tng-profiler/wiki/Get-available-analytic-services
3. Get Prometheus metrics created within the test execution
see more detaills here https://github.com/sonata-nfv/tng-profiler/wiki/Get-Prometheus-metrics-per-nsr_id
5. Execute analytic service
see more detaills here https://github.com/sonata-nfv/tng-profiler/wiki/Execute-Analytic-Service-for-specific-test
6. Request Test information (VnV Dependence)
Scope: This functionality is used for retrieving the metadata of a VnV test that has been successfully completed.
REST - API: http://gatekeeper_dns/api/v3/tests/results/{test_uuid}
See the specification from the VnV side here:
https://github.com/sonata-nfv/tng-rep/wiki/Test-Result-Repositories#trrtest-suite-results
GET parameters : test_uuid
Parameter Explanation
test_uuid: refers to the test uuid that has been executed within the Vnv platform
The result of such a call is a JSONObject that contains all information regarding the execution and results of the realized test. The fields to get back should be:
- test_uuid: refers to the test id that has been executed within the Vnv platform
- started_at: The datetime the test started to be executed. This timestamp should be synchronized (use the same clock with the Prometheus timestamps)
- ended_at: The datetime the test was finished. This timestamp should be synchronized (use the same clock with the Prometheus timestamps)
- instance_uuid: The network service record id that was tested
- status: The status of the test. Two options can be found here SUCCESSFUL of FAILED
- results: JSONObject data that contains the results of the realized test. These raw data should not be timeseries data. if so, should be pushed instead to Prometheus.
- details: JSONObject data generated within the test execution. These raw data should not be timeseries data. if so, should be pushed instead to Prometheus.
A response example should be:
{
"test_uuid": "4e501091-ab62-4a24-8b2e-b89015ef752c",
"started_at": "2019-03-04T08:00:30.781Z",
"ended_at": "2019-03-04T08:20:30.781Z",
"instance_uuid":"619ba21d-a436-fc2e-8162-3ad941868901",
"status": "SUCCESSFUL",
"results": "JSONObject",
"details": "JSONObject"
}
7. Request monitoring metrics (Monitoring manager Dependence)
Consume the "Metrics per service" of the monitoring manager.
HTTP GET /api/v2/services/{nsr_id}/metrics
This API returns all metrics per network service record. For more info, see detaills here: https://github.com/sonata-nfv/son-monitor/wiki/API-reference
8. Request time series data (Prometheus Dependence)
see more detaills here https://prometheus.io/docs/prometheus/latest/querying/basics/