@ -50,6 +50,7 @@ set(gRPC_BUILD_MSVC_MP_COUNT 0 CACHE STRING "The maximum number of processes for
option ( gRPC_BUILD_TESTS "Build tests" OFF )
option ( gRPC_BUILD_CODEGEN "Build codegen" ON )
option ( gRPC_DOWNLOAD_ARCHIVES "Download archives for empty 3rd party directories" ON )
option ( gRPC_BUILD_OPENTELEMETRY_PLUGIN "Build gRPC OpenTelemetry Plugin" OFF )
set ( gRPC_INSTALL_default ON )
if ( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
@ -224,6 +225,11 @@ set(gRPC_ABSL_USED_TARGETS
a b s l _ m e t a
)
# T h e O p e n T e l e m e t r y p l u g i n s u p p o r t " p a c k a g e " b u i l d o n l y a t p r e s e n t .
set ( gRPC_OPENTELEMETRY_PROVIDER "package" )
# set ( gRPC_OPENTELEMETRY_PROVIDER "module" CACHE STRING "Provider of opentelemetry library" )
# set_property ( CACHE gRPC_OPENTELEMETRY_PROVIDER PROPERTY STRINGS "module" "package" )
set ( gRPC_USE_PROTO_LITE OFF CACHE BOOL "Use the protobuf-lite library" )
if ( UNIX )
@ -348,6 +354,10 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
set ( _gRPC_ALLTARGETS_LIBRARIES ${ _gRPC_ALLTARGETS_LIBRARIES } ${ _gRPC_SYSTEMD_LIBRARIES } )
endif ( )
if ( gRPC_BUILD_OPENTELEMETRY_PLUGIN )
include ( cmake/opentelemetry-cpp.cmake )
endif ( )
# S e t u p e x t e r n a l p r o t o l i b r a r y a t t h i r d _ p a r t y / e n v o y - a p i w i t h 2 d o w n l o a d U R L s
if ( NOT EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /third_party/envoy-api AND gRPC_DOWNLOAD_ARCHIVES )
# D o w n l o a d t h e a r c h i v e v i a H T T P , v a l i d a t e t h e c h e c k s u m , a n d e x t r a c t t o t h i r d _ p a r t y / e n v o y - a p i .
@ -1201,6 +1211,7 @@ if(gRPC_BUILD_TESTS)
add_dependencies ( buildtests_cxx orca_service_end2end_test )
add_dependencies ( buildtests_cxx orphanable_test )
add_dependencies ( buildtests_cxx osa_distance_test )
add_dependencies ( buildtests_cxx otel_plugin_test )
add_dependencies ( buildtests_cxx out_of_bounds_bad_client_test )
add_dependencies ( buildtests_cxx outlier_detection_lb_config_parser_test )
add_dependencies ( buildtests_cxx outlier_detection_test )
@ -5680,6 +5691,80 @@ endif()
endif ( )
add_library ( grpcpp_otel_plugin
s r c / c p p / e x t / o t e l / o t e l _ c l i e n t _ f i l t e r . c c
s r c / c p p / e x t / o t e l / o t e l _ p l u g i n . c c
s r c / c p p / e x t / o t e l / o t e l _ s e r v e r _ c a l l _ t r a c e r . c c
)
target_compile_features ( grpcpp_otel_plugin PUBLIC cxx_std_14 )
set_target_properties ( grpcpp_otel_plugin PROPERTIES
V E R S I O N $ { g R P C _ C P P _ V E R S I O N }
S O V E R S I O N $ { g R P C _ C P P _ S O V E R S I O N }
)
if ( WIN32 AND MSVC )
set_target_properties ( grpcpp_otel_plugin PROPERTIES COMPILE_PDB_NAME "grpcpp_otel_plugin"
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y " $ { C M A K E _ B I N A R Y _ D I R } "
)
if ( BUILD_SHARED_LIBS )
target_compile_definitions ( grpcpp_otel_plugin
P R I V A T E
" G P R _ D L L _ I M P O R T S "
" G R P C _ D L L _ I M P O R T S "
" G R P C X X _ D L L _ I M P O R T S "
)
endif ( )
if ( gRPC_INSTALL )
install ( FILES ${ CMAKE_CURRENT_BINARY_DIR } /grpcpp_otel_plugin.pdb
D E S T I N A T I O N $ { g R P C _ I N S T A L L _ L I B D I R } O P T I O N A L
)
endif ( )
endif ( )
target_include_directories ( grpcpp_otel_plugin
P U B L I C $ < I N S T A L L _ I N T E R F A C E : $ { g R P C _ I N S T A L L _ I N C L U D E D I R } > $ < B U I L D _ I N T E R F A C E : $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / i n c l u d e >
P R I V A T E
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R }
$ { _ g R P C _ A D D R E S S _ S O R T I N G _ I N C L U D E _ D I R }
$ { _ g R P C _ R E 2 _ I N C L U D E _ D I R }
$ { _ g R P C _ S S L _ I N C L U D E _ D I R }
$ { _ g R P C _ U P B _ G E N E R A T E D _ D I R }
$ { _ g R P C _ U P B _ G R P C _ G E N E R A T E D _ D I R }
$ { _ g R P C _ U P B _ I N C L U D E _ D I R }
$ { _ g R P C _ X X H A S H _ I N C L U D E _ D I R }
$ { _ g R P C _ Z L I B _ I N C L U D E _ D I R }
$ { _ g R P C _ P R O T O _ G E N S _ D I R }
)
target_link_libraries ( grpcpp_otel_plugin
$ { _ g R P C _ A L L T A R G E T S _ L I B R A R I E S }
g r p c + +
o p e n t e l e m e t r y - c p p : : a p i
)
foreach ( _hdr
i n c l u d e / g r p c p p / e x t / o t e l _ p l u g i n . h
)
string ( REPLACE "include/" "" _path ${ _hdr } )
get_filename_component ( _path ${ _path } PATH )
install ( FILES ${ _hdr }
D E S T I N A T I O N " $ { g R P C _ I N S T A L L _ I N C L U D E D I R } / $ { _ p a t h } "
)
endforeach ( )
if ( gRPC_INSTALL )
install ( TARGETS grpcpp_otel_plugin EXPORT gRPCTargets
R U N T I M E D E S T I N A T I O N $ { g R P C _ I N S T A L L _ B I N D I R }
B U N D L E D E S T I N A T I O N $ { g R P C _ I N S T A L L _ B I N D I R }
L I B R A R Y D E S T I N A T I O N $ { g R P C _ I N S T A L L _ L I B D I R }
A R C H I V E D E S T I N A T I O N $ { g R P C _ I N S T A L L _ L I B D I R }
)
endif ( )
if ( gRPC_BUILD_TESTS )
if ( _gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX )
@ -20520,6 +20605,72 @@ target_link_libraries(osa_distance_test
)
endif ( )
if ( gRPC_BUILD_TESTS )
add_executable ( otel_plugin_test
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o . g r p c . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o . g r p c . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o _ m e s s a g e s . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o _ m e s s a g e s . g r p c . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o _ m e s s a g e s . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / e c h o _ m e s s a g e s . g r p c . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / s i m p l e _ m e s s a g e s . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / s i m p l e _ m e s s a g e s . g r p c . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / s i m p l e _ m e s s a g e s . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / s i m p l e _ m e s s a g e s . g r p c . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / x d s / v 3 / o r c a _ l o a d _ r e p o r t . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / x d s / v 3 / o r c a _ l o a d _ r e p o r t . g r p c . p b . c c
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / x d s / v 3 / o r c a _ l o a d _ r e p o r t . p b . h
$ { _ g R P C _ P R O T O _ G E N S _ D I R } / s r c / p r o t o / g r p c / t e s t i n g / x d s / v 3 / o r c a _ l o a d _ r e p o r t . g r p c . p b . h
s r c / c p p / e x t / o t e l / o t e l _ c l i e n t _ f i l t e r . c c
s r c / c p p / e x t / o t e l / o t e l _ p l u g i n . c c
s r c / c p p / e x t / o t e l / o t e l _ s e r v e r _ c a l l _ t r a c e r . c c
t e s t / c p p / e n d 2 e n d / t e s t _ s e r v i c e _ i m p l . c c
t e s t / c p p / e x t / o t e l / o t e l _ p l u g i n _ t e s t . c c
t e s t / c p p / e x t / o t e l / o t e l _ t e s t _ l i b r a r y . c c
)
if ( WIN32 AND MSVC )
if ( BUILD_SHARED_LIBS )
target_compile_definitions ( otel_plugin_test
P R I V A T E
" G P R _ D L L _ I M P O R T S "
" G R P C _ D L L _ I M P O R T S "
" G R P C X X _ D L L _ I M P O R T S "
)
endif ( )
endif ( )
target_compile_features ( otel_plugin_test PUBLIC cxx_std_14 )
target_include_directories ( otel_plugin_test
P R I V A T E
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R }
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / i n c l u d e
$ { _ g R P C _ A D D R E S S _ S O R T I N G _ I N C L U D E _ D I R }
$ { _ g R P C _ R E 2 _ I N C L U D E _ D I R }
$ { _ g R P C _ S S L _ I N C L U D E _ D I R }
$ { _ g R P C _ U P B _ G E N E R A T E D _ D I R }
$ { _ g R P C _ U P B _ G R P C _ G E N E R A T E D _ D I R }
$ { _ g R P C _ U P B _ I N C L U D E _ D I R }
$ { _ g R P C _ X X H A S H _ I N C L U D E _ D I R }
$ { _ g R P C _ Z L I B _ I N C L U D E _ D I R }
t h i r d _ p a r t y / g o o g l e t e s t / g o o g l e t e s t / i n c l u d e
t h i r d _ p a r t y / g o o g l e t e s t / g o o g l e t e s t
t h i r d _ p a r t y / g o o g l e t e s t / g o o g l e m o c k / i n c l u d e
t h i r d _ p a r t y / g o o g l e t e s t / g o o g l e m o c k
$ { _ g R P C _ P R O T O _ G E N S _ D I R }
)
target_link_libraries ( otel_plugin_test
$ { _ g R P C _ A L L T A R G E T S _ L I B R A R I E S }
g t e s t
o p e n t e l e m e t r y - c p p : : a p i
o p e n t e l e m e t r y - c p p : : m e t r i c s
g r p c + + _ t e s t _ u t i l
)
endif ( )
if ( gRPC_BUILD_TESTS )