diff options
Diffstat (limited to 'vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c')
-rw-r--r-- | vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c | 81 |
1 files changed, 75 insertions, 6 deletions
diff --git a/vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c b/vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c index 643997ab..afbbce8d 100644 --- a/vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c +++ b/vnfs/VESreporting_vLB5.0/vpp_measurement_reporter.c @@ -39,6 +39,69 @@ void read_vpp_metrics(vpp_metrics_struct *, char *); unsigned long long epoch_start = 0; + +#ifdef DOCKER +int measure_traffic() +{ + + EVEL_ERR_CODES evel_rc = EVEL_SUCCESS; + FILE *fp; + int status; + char count[10]; + time_t rawtime; + struct tm * timeinfo; + char period [21]; + char cmd [100]; + int concurrent_sessions = 0; + int configured_entities = 0; + double mean_request_latency = 0; + double measurement_interval = 1; + double memory_configured = 0; + double memory_used = 0; + int request_rate=0; + char secs [3]; + int sec; + double loadavg; + + printf("Checking app traffic\n"); + time (&rawtime); + timeinfo = localtime (&rawtime); + strftime(period,21,"%d/%b/%Y:%H:%M:",timeinfo); + strftime(secs,3,"%S",timeinfo); + sec = atoi(secs); + if (sec == 0) sec = 59; + sprintf(secs, "%02d", sec); + strncat(period, secs, 21); + // ....x....1....x....2. + // 15/Oct/2016:17:51:19 + strcpy(cmd, "sudo docker logs vHello | grep -c "); + strncat(cmd, period, 100); + + fp = popen(cmd, "r"); + if (fp == NULL) { + EVEL_ERROR("popen failed to execute command"); + } + + if (fgets(count, 10, fp) != NULL) { + request_rate = atoi(count); + printf("Reporting request rate for second: %s as %d\n", period, request_rate); + + } + else { + EVEL_ERROR("New Measurement failed"); + } + printf("Processed measurement\n"); + + status = pclose(fp); + if (status == -1) { + EVEL_ERROR("pclose returned an error"); + } + return request_rate; +} + +#endif + + int main(int argc, char** argv) { EVEL_ERR_CODES evel_rc = EVEL_SUCCESS; @@ -67,6 +130,7 @@ int main(int argc, char** argv) fprintf(stderr, "Usage: %s <FQDN>|<IP address> <port> <interface>\n", argv[0]); exit(-1); } + srand(time(NULL)); /**************************************************************************/ /* Initialize */ @@ -149,11 +213,14 @@ int main(int argc, char** argv) if(vpp_m != NULL) { printf("New measurement report created...\n"); - evel_vnic_performance_rx_total_pkt_acc_set(vnic_performance, packets_in_this_round); - evel_vnic_performance_tx_total_pkt_acc_set(vnic_performance, packets_out_this_round); + evel_measurement_type_set(vpp_m, "HTTP request rate"); + evel_measurement_request_rate_set(vpp_m, rand()%10000); + + evel_vnic_performance_rx_total_pkt_delta_set(vnic_performance, packets_in_this_round); + evel_vnic_performance_tx_total_pkt_delta_set(vnic_performance, packets_out_this_round); - evel_vnic_performance_rx_octets_acc_set(vnic_performance, bytes_in_this_round); - evel_vnic_performance_tx_octets_acc_set(vnic_performance, bytes_out_this_round); + evel_vnic_performance_rx_octets_delta_set(vnic_performance, bytes_in_this_round); + evel_vnic_performance_tx_octets_delta_set(vnic_performance, bytes_out_this_round); /***************************************************************************/ /* Set parameters in the MEASUREMENT header packet */ @@ -170,8 +237,10 @@ int main(int argc, char** argv) evel_last_epoch_set(&vpp_m->header, epoch_now); epoch_start = epoch_now; - strcpy(vpp_m_header->reporting_entity_id.value, "No UUID available"); - strcpy(vpp_m_header->reporting_entity_name, hostname); + //strcpy(vpp_m_header->reporting_entity_id.value, "No UUID available"); + //strcpy(vpp_m_header->reporting_entity_name, hostname); + evel_reporting_entity_name_set(&vpp_m->header, hostname); + evel_reporting_entity_id_set(&vpp_m->header, "No UUID available"); evel_rc = evel_post_event(vpp_m_header); if(evel_rc == EVEL_SUCCESS) { |