diff --git a/conf/sce.conf b/conf/sce.conf index 2301c37..73af692 100644 --- a/conf/sce.conf +++ b/conf/sce.conf @@ -63,7 +63,7 @@ prometheus_listen_port=9001 prometheus_listen_url=/sce_prometheus [metrics] -# Kafka Topic: SERVICE-CHAINING-METRICS +# Kafka Topic: POLICY-RULE-METRICS enable=1 interval_s=1 telegraf_bind_address=127.0.0.1 diff --git a/conf/sce_telegraf.conf b/conf/sce_telegraf.conf index cb64c02..0e6fbe2 100644 --- a/conf/sce_telegraf.conf +++ b/conf/sce_telegraf.conf @@ -46,21 +46,17 @@ drop_original = true stats = ["sum"] fieldpass = ["sent_pkts", "sent_bytes", "recv_pkts", "recv_bytes"] - namepass = ["service_chaining_metrics"] # only "pass" swap metrics through the aggregator. + namepass = ["service_chaining_rule_hits"] # only "pass" swap metrics through the aggregator. [[outputs.file]] files = ["/tmp/sce_metrics.json", "stdout"] data_format = "json" - json_transformation = ''' - $merge([{"timestamp": timestamp}, tags, fields]) - ''' + json_timestamp_units = "1ms" [[outputs.kafka]] sasl_username = "admin" sasl_password = "galaxy2019" brokers = [ "192.168.44.12:9094" ] - topic = "SERVICE-CHAINING-METRICS" + topic = "POLICY-RULE-METRICS" data_format = "json" - json_transformation = ''' - $merge([{"timestamp": timestamp}, tags, fields]) - ''' \ No newline at end of file + json_timestamp_units = "1ms" \ No newline at end of file diff --git a/platform/src/sf_metrics.cpp b/platform/src/sf_metrics.cpp index 7337ade..9f797f8 100644 --- a/platform/src/sf_metrics.cpp +++ b/platform/src/sf_metrics.cpp @@ -10,7 +10,7 @@ #include "utils.h" #include "sf_metrics.h" -#define SCE_SF_METRICS "SCE-SF-METRICS,rule_id=%lu,sff_profile_id=%d,sf_profile_id=%d,type=service_chaining_metrics sent_pkts=%lu,sent_bytes=%lu,recv_pkts=%lu,recv_bytes=%lu" +#define SCE_SF_METRICS "service_chaining_rule_hits,rule_id=%lu,sff_profile_id=%d,sf_profile_id=%d sent_pkts=%lu,sent_bytes=%lu,recv_pkts=%lu,recv_bytes=%lu" struct key_tuple { diff --git a/platform/src/sf_status.cpp b/platform/src/sf_status.cpp index 359caf3..2fdeefc 100644 --- a/platform/src/sf_status.cpp +++ b/platform/src/sf_status.cpp @@ -9,7 +9,7 @@ #include "utils.h" #include "sf_status.h" -#define SCE_SF_STATUS "SCE-SF-STATUS,sf_profile_id=%d,type=service_function_status sf_status=%d,sf_latency_us=%d" +#define SCE_SF_STATUS "service_function_status,sf_profile_id=%d sf_status=%d,sf_latency_us=%d" struct node { diff --git a/platform/test/CMakeLists.txt b/platform/test/CMakeLists.txt index cd66ab2..ba09d63 100644 --- a/platform/test/CMakeLists.txt +++ b/platform/test/CMakeLists.txt @@ -7,12 +7,32 @@ target_include_directories(gtest_policy PUBLIC ${CMAKE_SOURCE_DIR}/common/includ target_include_directories(gtest_policy PUBLIC ${CMAKE_SOURCE_DIR}/platform/include) target_link_libraries(gtest_policy common platform gtest) +############################################################################### +# gtest_sf_metrics +############################################################################### + +add_executable(gtest_sf_metrics gtest_sf_metrics.cpp) +target_include_directories(gtest_sf_metrics PUBLIC ${CMAKE_SOURCE_DIR}/common/include) +target_include_directories(gtest_sf_metrics PUBLIC ${CMAKE_SOURCE_DIR}/platform/include) +target_link_libraries(gtest_sf_metrics common platform gtest) + +############################################################################### +# gtest_sf_status +############################################################################### + +add_executable(gtest_sf_status gtest_sf_status.cpp) +target_include_directories(gtest_sf_status PUBLIC ${CMAKE_SOURCE_DIR}/common/include) +target_include_directories(gtest_sf_status PUBLIC ${CMAKE_SOURCE_DIR}/platform/include) +target_link_libraries(gtest_sf_status common platform gtest) + ############################################################################### # gtest_discover_tests ############################################################################### include(GoogleTest) gtest_discover_tests(gtest_policy) +gtest_discover_tests(gtest_sf_metrics) +gtest_discover_tests(gtest_sf_status) file(COPY ./test_resource/ DESTINATION ./test_resource/) file(COPY ${CMAKE_SOURCE_DIR}/resource/table_info.conf DESTINATION ./test_resource/) \ No newline at end of file diff --git a/platform/test/gtest_sf_metrics.cpp b/platform/test/gtest_sf_metrics.cpp new file mode 100644 index 0000000..41e1394 --- /dev/null +++ b/platform/test/gtest_sf_metrics.cpp @@ -0,0 +1,18 @@ +#include + +#include "sf_metrics.h" + +TEST(SF_METRICS, TEST) +{ + struct sf_metrics *metrics = sf_metrics_create("./test_resource/sce.conf"); + EXPECT_TRUE(sf_metrics_get_interval(metrics) == 1); + sf_metrics_inc(metrics, 1, 2, 3, 4, 5, 6, 7); + sf_metrics_send(metrics); + sf_metrics_destory(metrics); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/platform/test/gtest_sf_status.cpp b/platform/test/gtest_sf_status.cpp new file mode 100644 index 0000000..c77efd4 --- /dev/null +++ b/platform/test/gtest_sf_status.cpp @@ -0,0 +1,19 @@ +#include + +#include "sf_status.h" + +TEST(SF_STATUS, TEST) +{ + struct sf_status *status = sf_status_create("./test_resource/sce.conf"); + EXPECT_TRUE(sf_status_get_interval(status) == 1); + sf_status_update(status, 1, 0, 0); + sf_status_update(status, 2, 1, 1); + sf_status_send(status); + sf_status_destory(status); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/platform/test/test_resource/sce.conf b/platform/test/test_resource/sce.conf index 3d51ddb..38a6702 100644 --- a/platform/test/test_resource/sce.conf +++ b/platform/test/test_resource/sce.conf @@ -23,6 +23,13 @@ redis_db_idx=0 redis_server=127.0.0.1 redis_port_range=6379 +[metrics] +# Kafka Topic: POLICY-RULE-METRICS +enable=1 +interval_s=1 +telegraf_bind_address=127.0.0.1 +telegraf_listen_port=8300 + [bfdd] path=/var/run/frr/bfdd.vty device=eth0 diff --git a/test/test_data/conf/sce.conf b/test/test_data/conf/sce.conf index 5a362f8..4657e47 100644 --- a/test/test_data/conf/sce.conf +++ b/test/test_data/conf/sce.conf @@ -63,7 +63,7 @@ prometheus_listen_port=9001 prometheus_listen_url=/sce_prometheus [metrics] -# Kafka Topic: SERVICE-CHAINING-METRICS +# Kafka Topic: POLICY-RULE-METRICS enable=0 interval_s=1 telegraf_bind_address=127.0.0.1