From 17c3bc66d44338d1a34ce1456b47897179d8811a Mon Sep 17 00:00:00 2001 From: WenTao Ou Date: Tue, 28 May 2024 15:04:49 +0800 Subject: [PATCH 1/2] [API] DO not allow unsafe `Logger::EmitLogRecord` (#2673) --- api/include/opentelemetry/logs/logger_type_traits.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/include/opentelemetry/logs/logger_type_traits.h b/api/include/opentelemetry/logs/logger_type_traits.h index aea2173689..486135137d 100644 --- a/api/include/opentelemetry/logs/logger_type_traits.h +++ b/api/include/opentelemetry/logs/logger_type_traits.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include #include "opentelemetry/common/attribute_value.h" @@ -145,6 +146,10 @@ struct LogRecordSetterTrait template struct LogRecordSetterTrait { + static_assert(!std::is_same, ValueType>::value && + !std::is_same, ValueType>::value, + "unique_ptr is not allowed, please use std::move()"); + template ::value || std::is_convertible::value, From 277190d3f2976d423e184032c5a7d26c886481ec Mon Sep 17 00:00:00 2001 From: WenTao Ou Date: Tue, 28 May 2024 17:04:00 +0800 Subject: [PATCH 2/2] [BUILD] Read default proto version from `third_party_release` (#2677) --- cmake/opentelemetry-proto.cmake | 66 +++++++++++++++++++++------------ third_party_release | 2 +- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/cmake/opentelemetry-proto.cmake b/cmake/opentelemetry-proto.cmake index c2982e23c0..19516c3b71 100644 --- a/cmake/opentelemetry-proto.cmake +++ b/cmake/opentelemetry-proto.cmake @@ -43,7 +43,15 @@ else() message( STATUS "opentelemetry-proto dependency satisfied by: github download") if("${opentelemetry-proto}" STREQUAL "") - set(opentelemetry-proto "v1.0.0") + file(READ "${CMAKE_CURRENT_LIST_DIR}/../third_party_release" + OTELCPP_THIRD_PARTY_RELEASE_CONTENT) + if(OTELCPP_THIRD_PARTY_RELEASE_CONTENT MATCHES + "opentelemetry-proto=[ \\t]*([A-Za-z0-9_\\.\\-]+)") + set(opentelemetry-proto "${CMAKE_MATCH_1}") + else() + set(opentelemetry-proto "v1.3.1") + endif() + unset(OTELCPP_THIRD_PARTY_RELEASE_CONTENT) endif() include(ExternalProject) ExternalProject_Add( @@ -72,18 +80,23 @@ set(TRACE_PROTO "${PROTO_PATH}/opentelemetry/proto/trace/v1/trace.proto") set(LOGS_PROTO "${PROTO_PATH}/opentelemetry/proto/logs/v1/logs.proto") set(METRICS_PROTO "${PROTO_PATH}/opentelemetry/proto/metrics/v1/metrics.proto") -set(PROFILES_PROTO "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.proto") -set(PROFILES_EXT_PROTO "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.proto") +set(PROFILES_PROTO + "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.proto") +set(PROFILES_EXT_PROTO + "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.proto" +) set(TRACE_SERVICE_PROTO "${PROTO_PATH}/opentelemetry/proto/collector/trace/v1/trace_service.proto") set(LOGS_SERVICE_PROTO "${PROTO_PATH}/opentelemetry/proto/collector/logs/v1/logs_service.proto") set(METRICS_SERVICE_PROTO - "${PROTO_PATH}/opentelemetry/proto/collector/metrics/v1/metrics_service.proto") + "${PROTO_PATH}/opentelemetry/proto/collector/metrics/v1/metrics_service.proto" +) set(PROFILES_SERVICE_PROTO - "${PROTO_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto") + "${PROTO_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto" +) set(GENERATED_PROTOBUF_PATH "${CMAKE_BINARY_DIR}/generated/third_party/opentelemetry-proto") @@ -119,30 +132,37 @@ set(TRACE_SERVICE_PB_H_FILE ) # -# Notes about the PROFILES signal: -# - *.proto files added in opentelemetry-proto 1.3.0 -# - C++ code is generated from proto files -# - The generated code is not used yet. +# Notes about the PROFILES signal: - *.proto files added in opentelemetry-proto +# 1.3.0 - C++ code is generated from proto files - The generated code is not +# used yet. # set(PROFILES_CPP_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.cc") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.cc" +) set(PROFILES_H_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.h") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.h" +) set(PROFILES_EXT_CPP_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.cc") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.cc" +) set(PROFILES_EXT_H_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.h") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.h" +) set(PROFILES_SERVICE_PB_H_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.h") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.h" +) set(PROFILES_SERVICE_PB_CPP_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.cc") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.cc" +) if(WITH_OTLP_GRPC) set(PROFILES_SERVICE_GRPC_PB_H_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.h") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.h" + ) set(PROFILES_SERVICE_GRPC_PB_CPP_FILE - "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.cc") + "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.cc" + ) endif() if(WITH_OTLP_GRPC) @@ -278,8 +298,8 @@ add_custom_command( ${PROTOBUF_PROTOC_EXECUTABLE} ${PROTOBUF_COMMON_FLAGS} ${PROTOBUF_INCLUDE_FLAGS} ${COMMON_PROTO} ${RESOURCE_PROTO} ${TRACE_PROTO} ${LOGS_PROTO} ${METRICS_PROTO} ${TRACE_SERVICE_PROTO} ${LOGS_SERVICE_PROTO} - ${METRICS_SERVICE_PROTO} - ${PROFILES_PROTO} ${PROFILES_EXT_PROTO} ${PROFILES_SERVICE_PROTO} + ${METRICS_SERVICE_PROTO} ${PROFILES_PROTO} ${PROFILES_EXT_PROTO} + ${PROFILES_SERVICE_PROTO} COMMENT "[Run]: ${PROTOBUF_RUN_PROTOC_COMMAND}") include_directories("${GENERATED_PROTOBUF_PATH}") @@ -317,13 +337,11 @@ if(WITH_OTLP_GRPC) ${LOGS_SERVICE_GRPC_PB_CPP_FILE} ${METRICS_SERVICE_GRPC_PB_CPP_FILE}) list(APPEND OPENTELEMETRY_PROTO_TARGETS opentelemetry_proto_grpc) - target_link_libraries(opentelemetry_proto_grpc - PUBLIC opentelemetry_proto) + target_link_libraries(opentelemetry_proto_grpc PUBLIC opentelemetry_proto) get_target_property(grpc_lib_type gRPC::grpc++ TYPE) - if (grpc_lib_type STREQUAL "SHARED_LIBRARY") - target_link_libraries(opentelemetry_proto_grpc - PUBLIC gRPC::grpc++) + if(grpc_lib_type STREQUAL "SHARED_LIBRARY") + target_link_libraries(opentelemetry_proto_grpc PUBLIC gRPC::grpc++) endif() set_target_properties(opentelemetry_proto_grpc PROPERTIES EXPORT_NAME proto_grpc) diff --git a/third_party_release b/third_party_release index 092573703b..0bbf67f3af 100644 --- a/third_party_release +++ b/third_party_release @@ -19,7 +19,7 @@ benchmark=v1.8.3 googletest=1.14.0 ms-gsl=v3.1.0-67-g6f45293 nlohmann-json=v3.11.3 -opentelemetry-proto=v1.1.0 +opentelemetry-proto=v1.3.1 opentracing-cpp=v1.6.0 prometheus-cpp=v1.2.4 vcpkg=2024.02.14