TSG-14599 tsg-service-chaining-engine支持新的Metrics结构

This commit is contained in:
luwenpeng
2023-04-10 14:52:12 +08:00
parent e62ea7e9f9
commit 30f1bda4d4
9 changed files with 72 additions and 12 deletions

View File

@@ -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

View File

@@ -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])
'''
json_timestamp_units = "1ms"

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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/)

View File

@@ -0,0 +1,18 @@
#include <gtest/gtest.h>
#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();
}

View File

@@ -0,0 +1,19 @@
#include <gtest/gtest.h>
#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();
}

View File

@@ -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

View File

@@ -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