Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opentelemetry-cpp: add 1.10.0 #18647

Closed
wants to merge 13 commits into from
Closed

Conversation

Cogitri
Copy link
Contributor

@Cogitri Cogitri commented Jul 19, 2023

Specify library name and version: opentelemetry-cpp/1.10.0

closes #20855


@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

uilianries
uilianries previously approved these changes Aug 11, 2023
recipes/opentelemetry-cpp/all/conanfile.py Show resolved Hide resolved
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@ghost
Copy link

ghost commented Sep 13, 2023

I detected other pull requests that are modifying opentelemetry-cpp/all recipe:

This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there.

@ArielGMachado
Copy link

ArielGMachado commented Sep 18, 2023

Hi
I'm trying to upgrade from 1.8.3 to 1.11.0 using this recipe locally.
But I also tried using the recipe from the Conan repository, the latest one is v1.9.1.
I think the current recipe has a problem in that it has not been changed to deal with the relatively recent change of splitting opentelemetry_proto into opentelemetry_proto and opentelemetry_proto_grpc

When I try to compile my project with opentelemetry-cpp dependency using gRPC OTLP and static linkage in most recent versions, the linker does not find the stubs:

Link errors
lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeTraceServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:126: undefined reference to `opentelemetry::proto::collector::trace::v1::TraceService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeMetricsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:132: undefined reference to `opentelemetry::proto::collector::metrics::v1::MetricsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeLogsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:138: undefined reference to `opentelemetry::proto::collector::logs::v1::LogsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub'

If it thelps, this is the list of libs in the order they appear in the linker command:

Libs
-lpq
-lpgcommon
-lpgcommon_shlib
-lpgport
-lpgport_shlib
-lopentelemetry_exporter_ostream_span
-lopentelemetry_version
-lopentelemetry_proto_grpc
-lopentelemetry_exporter_otlp_grpc
-lopentelemetry_exporter_otlp_grpc_metrics
-lopentelemetry_exporter_otlp_grpc_log
-lopentelemetry_exporter_otlp_grpc_client
-lopentelemetry_exporter_otlp_http
-lopentelemetry_exporter_otlp_http_metric
-lopentelemetry_exporter_otlp_http_log
-lopentelemetry_otlp_recordable
-lopentelemetry_exporter_otlp_http_client
-lopentelemetry_proto
-lopentelemetry_exporter_zipkin_trace
-lopentelemetry_http_client_curl
-lopentelemetry_trace
-lopentelemetry_metrics
-lopentelemetry_exporter_ostream_metrics
-lopentelemetry_exporter_ostream_logs
-lopentelemetry_logs
-lopentelemetry_resources
-lopentelemetry_common
-lprometheus-cpp-push
-lprometheus-cpp-pull
-lprometheus-cpp-core
-lhiredisd
-lgrpc++_alts
-lgrpc++_error_details
-lgrpc_plugin_support
-lgrpc++_unsecure
-lgrpc_unsecure
-lgrpc++_reflection
-lgrpcpp_channelz
-lgrpc++
-lgrpc
-laddress_sorting
-lgpr
-lupb
-lcurl
-lcivetweb-cpp
-lcivetweb
-labsl_scoped_set_env
-labsl_failure_signal_handler
-labsl_examine_stack
-labsl_leak_check
-labsl_flags_parse
-labsl_flags_usage
-labsl_flags_usage_internal
-labsl_flags
-labsl_flags_reflection
-labsl_raw_hash_set
-labsl_hashtablez_sampler
-labsl_flags_private_handle_accessor
-labsl_flags_internal
-labsl_flags_config
-labsl_flags_program_name
-labsl_flags_marshalling
-labsl_flags_commandlineflag
-labsl_flags_commandlineflag_internal
-labsl_hash
-labsl_city
-labsl_low_level_hash
-labsl_periodic_sampler
-labsl_random_distributions
-labsl_random_seed_sequences
-labsl_random_internal_pool_urbg
-labsl_random_seed_gen_exception
-labsl_random_internal_seed_material
-labsl_random_internal_randen
-labsl_random_internal_randen_slow
-labsl_random_internal_randen_hwaes
-labsl_random_internal_randen_hwaes_impl
-labsl_random_internal_platform
-labsl_random_internal_distribution_test_util
-labsl_statusor
-labsl_status
-labsl_strerror
-labsl_str_format_internal
-labsl_cordz_sample_token
-labsl_cord
-labsl_cordz_info
-labsl_cord_internal
-labsl_cordz_functions
-labsl_exponential_biased
-labsl_cordz_handle
-labsl_synchronization
-labsl_stacktrace
-labsl_symbolize
-labsl_debugging_internal
-labsl_demangle_internal
-labsl_graphcycles_internal
-labsl_malloc_internal
-labsl_time
-labsl_strings
-labsl_int128
-labsl_strings_internal
-labsl_base
-labsl_spinlock_wait
-labsl_civil_time
-labsl_time_zone
-labsl_bad_any_cast_impl
-labsl_throw_delegate
-labsl_bad_optional_access
-labsl_bad_variant_access
-labsl_raw_logging_internal
-labsl_log_severity
-lprotocd
-lprotobufd
-lcares
-lssl
-lcrypto
-lre2
-lz
-ldl
-lrt
-lm
-lpthread
I think the recipe is missing from indicating a new lib created or reorganizing lib's dependencies following this refactoring. Any ideas about what changed? Thanks!

@kontrybutor
Copy link

Hi I'm trying to upgrade from 1.8.3 to 1.11.0 using this recipe locally. But I also tried using the recipe from the Conan repository, the latest one is v1.9.1. I think the current recipe has a problem in that it has not been changed to deal with the relatively recent change of splitting opentelemetry_proto into opentelemetry_proto and opentelemetry_proto_grpc

When I try to compile my project with opentelemetry-cpp dependency using gRPC OTLP and static linkage in most recent versions, the linker does not find the stubs:

Link errors

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeTraceServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:126: undefined reference to `opentelemetry::proto::collector::trace::v1::TraceService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeMetricsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:132: undefined reference to `opentelemetry::proto::collector::metrics::v1::MetricsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeLogsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:138: undefined reference to `opentelemetry::proto::collector::logs::v1::LogsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub'

If it thelps, this is the list of libs in the order they appear in the linker command:

Libs
I think the recipe is missing from indicating a new lib created or reorganizing lib's dependencies following this refactoring. Any ideas about what changed? Thanks!

I experienced the same issue. Any fix would be appreciate!

@kontrybutor
Copy link

Hi I'm trying to upgrade from 1.8.3 to 1.11.0 using this recipe locally. But I also tried using the recipe from the Conan repository, the latest one is v1.9.1. I think the current recipe has a problem in that it has not been changed to deal with the relatively recent change of splitting opentelemetry_proto into opentelemetry_proto and opentelemetry_proto_grpc
When I try to compile my project with opentelemetry-cpp dependency using gRPC OTLP and static linkage in most recent versions, the linker does not find the stubs:
Link errors

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeTraceServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:126: undefined reference to `opentelemetry::proto::collector::trace::v1::TraceService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeMetricsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:132: undefined reference to `opentelemetry::proto::collector::metrics::v1::MetricsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeLogsServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
src/exporters/otlp/src/otlp_grpc_client.cc:138: undefined reference to `opentelemetry::proto::collector::logs::v1::LogsService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::trace::v1::TraceService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::trace::v1::TraceService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::metrics::v1::MetricsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::metrics::v1::MetricsService::Stub'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::async::~async()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:94: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub::async'

lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::proto::collector::logs::v1::LogsService::Stub::~Stub()':
generated/third_party/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h:84: undefined reference to `vtable for opentelemetry::proto::collector::logs::v1::LogsService::Stub'

If it thelps, this is the list of libs in the order they appear in the linker command:
Libs
I think the recipe is missing from indicating a new lib created or reorganizing lib's dependencies following this refactoring. Any ideas about what changed? Thanks!

I experienced the same issue. Any fix would be appreciate!

As a workaround (ugly hack) I link my app with the opentelemetry_proto_grpc and opentelemetry_proto library explicitly .

@Cogitri
Copy link
Contributor Author

Cogitri commented Oct 26, 2023

Ah sorry for the breakage, looking into it now.

@conan-center-bot

This comment has been minimized.

@ArielGMachado
Copy link

CI opentelemetry-cpp/1.10.0(@ Linux, GCC failed) because Abseil 20230125.3 requires C++14:

/home/conan/w/prod-v1/bsr/35834/bafbf/.conan/data/abseil/20230125.3/_/_/package/b173bbda18164d49a449ffadc1c9e817f49e819d/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
   79 | #error "C++ versions less than C++14 are not supported."

This is related with the version bumping of absel dependency: eb9066c

In opentelemetry-cpp/1.11.0 C++11 support is deprecated and building with C++11 is no longer supported but in opentelemetry/1.12.0 .

@conan-center-bot

This comment has been minimized.

@ArielGMachado
Copy link

I used your last conan recipe from PR repo to build my project using opentelemetry-cpp/1.12.0 but it is giving an error in the linker and it has to do with the order of the libs, specifically -lopentelemetry_proto_grpc

Order of otel libs generated by Conan on the linker line:

-lopentelemetry_exporter_ostream_span
-lopentelemetry_version
-lopentelemetry_exporter_otlp_grpc
-lopentelemetry_exporter_otlp_grpc_metrics
-lopentelemetry_proto_grpc
-lopentelemetry_exporter_otlp_grpc_log
-lopentelemetry_exporter_otlp_grpc_client
-lopentelemetry_exporter_otlp_http
-lopentelemetry_exporter_otlp_http_metric
-lopentelemetry_exporter_otlp_http_log
-lopentelemetry_otlp_recordable
-lopentelemetry_exporter_otlp_http_client
-lopentelemetry_proto
-lopentelemetry_exporter_zipkin_trace
-lopentelemetry_trace
-lopentelemetry_http_client_curl
-lopentelemetry_metrics
-lopentelemetry_exporter_ostream_metrics
-lopentelemetry_exporter_ostream_logs
-lopentelemetry_logs
-lopentelemetry_resources
-lopentelemetry_common

This order generate errors like:

[build] /usr/bin/ld: /home/jenkins/.conan/data/opentelemetry-cpp/1.12.0/pie/stable/package/a699939b0943fa9362f6e91f4abc7e073782c1a7/lib/libopentelemetry_exporter_otlp_grpc_client.a(otlp_grpc_client.cc.o): in function `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::MakeTraceServiceStub(opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions const&)':
[build] /home/jenkins/.conan/data/opentelemetry-cpp/1.12.0/pie/stable/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/exporters/otlp/src/otlp_grpc_client.cc:126: undefined reference to `opentelemetry::proto::collector::trace::v1::TraceService::NewStub(std::shared_ptr<grpc::ChannelInterface> const&, grpc::StubOptions const&)'

By changing the order of -lopentelemetry_proto_grpc in the line and moving it to just before -lopentelemetry_proto, the linker resolves correctly and the build succeeds:

-lopentelemetry_exporter_ostream_span
-lopentelemetry_version
-lopentelemetry_exporter_otlp_grpc
-lopentelemetry_exporter_otlp_grpc_metrics
-lopentelemetry_exporter_otlp_grpc_log
-lopentelemetry_exporter_otlp_grpc_client
-lopentelemetry_exporter_otlp_http
-lopentelemetry_exporter_otlp_http_metric
-lopentelemetry_exporter_otlp_http_log
-lopentelemetry_otlp_recordable
-lopentelemetry_exporter_otlp_http_client
-lopentelemetry_proto_grpc
-lopentelemetry_proto
-lopentelemetry_exporter_zipkin_trace
-lopentelemetry_trace
-lopentelemetry_http_client_curl
-lopentelemetry_metrics
-lopentelemetry_exporter_ostream_metrics
-lopentelemetry_exporter_ostream_logs
-lopentelemetry_logs
-lopentelemetry_resources
-lopentelemetry_common

So, it seems that the order in which opentelemetry_proto_grpc is added to the list of libraries in this Conan recipe is wrong.
I hope this helps you understand this problem.

@ArielGMachado
Copy link

ArielGMachado commented Oct 30, 2023

I think that this issue can be solved in this code block:

if Version(self.version) >= "1.9":
self.cpp_info.components["opentelemetry_proto_grpc"].requires.extend([
"opentelemetry_proto",
])

by adding also the opentelemetry_proto_grpc dependency for opentelemetry_exporter_otlp_grpc_client will solve the issue:

                self.cpp_info.components["opentelemetry_exporter_otlp_grpc_client"].requires.extend([
                    "opentelemetry_proto_grpc",
                ])

According release info 1.9.1:

  • Add opentelemetry_proto_grpc and move gRPC sources into it.
    #2097
    • There will be no breaking changes for users who only use OTLP exporters and
      do not directly use opentelemetry-cpp::proto. However, it is important to
      note that opentelemetry-cpp::proto no longer contains generated gRPC codes
      , and all components that depend on these gRPC codes should also link to
      opentelemetry-cpp::proto_grpc.

Also correctly link opentelemetry_exporter_otlp_grpc_client
to opentelemetry_proto_grpc
@Cogitri
Copy link
Contributor Author

Cogitri commented Oct 30, 2023

Thanks, let's see if CI likes this one

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@0x5ea1ed 0x5ea1ed mentioned this pull request Oct 31, 2023
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@uilianries
Copy link
Member

The PR #20091 should fix the current version conflict.

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 17 (6411799213b95490594d805c8ecbe0a867f18832):

  • opentelemetry-cpp/1.11.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.10.0:
    CI failed to create some packages (All logs)

    Logs for packageID a699939b0943fa9362f6e91f4abc7e073782c1a7:
    [settings]
    arch=x86_64
    build_type=Debug
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=11
    os=Linux
    [options]
    opentelemetry-cpp:shared=False
    
    [...]
    /usr/local/include/c++/11.1.0/variant:1746:29: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class ... _Types> constexpr const _Tp& std::get(const std::variant<_Types ...>&)'
     1746 |         decltype(std::get<0>(std::declval<_Variants>()))...>;
          |                  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/c++/11.1.0/variant:1746:29: note:   expected a type, got '0'
    /usr/local/include/c++/11.1.0/variant:1117:27: note: candidate: 'template<class _Tp, class ... _Types> constexpr const _Tp&& std::get(const std::variant<_Types ...>&&)'
     1117 |     constexpr const _Tp&& get(const variant<_Types...>&& __v)
          |                           ^~~
    /usr/local/include/c++/11.1.0/variant:1117:27: note:   template argument deduction/substitution failed:
    /usr/local/include/c++/11.1.0/variant:1746:29: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class ... _Types> constexpr const _Tp&& std::get(const std::variant<_Types ...>&&)'
     1746 |         decltype(std::get<0>(std::declval<_Variants>()))...>;
          |                  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/c++/11.1.0/variant:1746:29: note:   expected a type, got '0'
    /usr/local/include/c++/11.1.0/variant:1754:20: error: incomplete type 'std::variant_size<int>' used in nested name specifier
     1754 |               std::make_index_sequence<
          |                    ^~~~~~~~~~~~~~~~~~~~
     1755 |                 std::variant_size<remove_reference_t<_Variants>...>::value>());
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/c++/11.1.0/variant:1758:29: error: non-constant condition for static assertion
     1758 |               static_assert(__visit_rettypes_match,
          |                             ^~~~~~~~~~~~~~~~~~~~~~
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc: At global scope:
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:99:6: error: variable or field 'EnlargeToFit' declared void
       99 | void AdaptingIntegerArray::EnlargeToFit(uint64_t value)
          |      ^~~~~~~~~~~~~~~~~~~~
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:99:41: error: 'uint64_t' was not declared in this scope
       99 | void AdaptingIntegerArray::EnlargeToFit(uint64_t value)
          |                                         ^~~~~~~~
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:99:41: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:127:62: error: 'uint64_t' has not been declared
      127 | bool AdaptingCircularBufferCounter::Increment(int32_t index, uint64_t delta)
          |                                                              ^~~~~~~~
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:160:1: error: 'uint64_t' does not name a type
      160 | uint64_t AdaptingCircularBufferCounter::Get(int32_t index)
          | ^~~~~~~~
    /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/src/sdk/src/metrics/data/circular_buffer.cc:160:1: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    make[2]: *** [sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/data/circular_buffer.cc.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    make: *** [all] Error 2
    WARN: grpc/1.54.3: requirement openssl/[>=1.1 <4] overridden by opentelemetry-cpp/1.10.0 to openssl/3.1.4 
    WARN: openssl/3.1.4: requirement zlib/[>=1.2.11 <2] overridden by grpc/1.54.3 to zlib/1.3 
    WARN: libcurl/8.2.1: requirement openssl/[>=1.1 <4] overridden by opentelemetry-cpp/1.10.0 to openssl/3.1.4 
    opentelemetry-cpp/1.10.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    opentelemetry-cpp/1.10.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    opentelemetry-cpp/1.10.0: ERROR: Package 'a699939b0943fa9362f6e91f4abc7e073782c1a7' build failed
    opentelemetry-cpp/1.10.0: WARN: Build folder /home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/build/Debug
    ERROR: opentelemetry-cpp/1.10.0: Error in build() method, line 312
    	cmake.build()
    	ConanException: Error 2 while executing cmake --build "/home/conan/w/prod-v1/bsr/44853/eebcd/.conan/data/opentelemetry-cpp/1.10.0/_/_/build/a699939b0943fa9362f6e91f4abc7e073782c1a7/build/Debug" '--' '-j3'
    
  • opentelemetry-cpp/1.12.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.8.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.6.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.4.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.4.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.9.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.2.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.0.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.7.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.3.0:
    Didn't run or was cancelled before finishing


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

See details:

Failure in build 19 (6411799213b95490594d805c8ecbe0a867f18832):

  • opentelemetry-cpp/1.11.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.10.0:
    CI failed to create some packages (All logs)

    Logs for packageID cf58fa846234501db9954464b1d83df43e44a932:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.cppstd=17
    compiler.libcxx=libstdc++11
    compiler.version=11
    os=Linux
    [options]
    */*:shared=False
    
    [...]
     1746 |         decltype(std::get<0>(std::declval<_Variants>()))...>;
          |                  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/c++/11.1.0/variant:1746:29: note:   expected a type, got '0'
    /usr/local/include/c++/11.1.0/variant:1754:20: error: incomplete type 'std::variant_size<int>' used in nested name specifier
     1754 |               std::make_index_sequence<
          |                    ^~~~~~~~~~~~~~~~~~~~
     1755 |                 std::variant_size<remove_reference_t<_Variants>...>::value>());
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/c++/11.1.0/variant:1758:29: error: non-constant condition for static assertion
     1758 |               static_assert(__visit_rettypes_match,
          |                             ^~~~~~~~~~~~~~~~~~~~~~
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc: At global scope:
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:99:6: error: variable or field 'EnlargeToFit' declared void
       99 | void AdaptingIntegerArray::EnlargeToFit(uint64_t value)
          |      ^~~~~~~~~~~~~~~~~~~~
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:99:41: error: 'uint64_t' was not declared in this scope
       99 | void AdaptingIntegerArray::EnlargeToFit(uint64_t value)
          |                                         ^~~~~~~~
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:99:41: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:127:62: error: 'uint64_t' has not been declared
      127 | bool AdaptingCircularBufferCounter::Increment(int32_t index, uint64_t delta)
          |                                                              ^~~~~~~~
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:160:1: error: 'uint64_t' does not name a type
      160 | uint64_t AdaptingCircularBufferCounter::Get(int32_t index)
          | ^~~~~~~~
    /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/src/sdk/src/metrics/data/circular_buffer.cc:160:1: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/build.make:296: recipe for target 'sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/data/circular_buffer.cc.o' failed
    make[2]: *** [sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/data/circular_buffer.cc.o] Error 1
    CMakeFiles/Makefile2:331: recipe for target 'sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/all' failed
    make[1]: *** [sdk/src/metrics/CMakeFiles/opentelemetry_metrics.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 69%] Building CXX object exporters/zipkin/CMakeFiles/opentelemetry_exporter_zipkin_trace.dir/src/recordable.cc.o
    [ 70%] Linking CXX static library libopentelemetry_exporter_zipkin_trace.a
    [ 70%] Built target opentelemetry_exporter_zipkin_trace
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2
    
    opentelemetry-cpp/1.10.0: ERROR: 
    Package 'cf58fa846234501db9954464b1d83df43e44a932' build failed
    opentelemetry-cpp/1.10.0: WARN: Build folder /home/conan/w/prod-v2/bsr/35994/badcb/p/b/opent781db8f008b91/b/build/Release
    *********************************************************
    Recipe 'opentelemetry-cpp/1.10.0' cannot build its binary
    It is possible that this recipe is not Conan 2.0 ready
    If the recipe comes from ConanCenter, report it at https://github.com/conan-io/conan-center-index/issues
    If it is your recipe, check if it is updated to 2.0
    *********************************************************
    
    ERROR: opentelemetry-cpp/1.10.0: Error in build() method, line 312
    	cmake.build()
    	ConanException: Error 2 while executing
    
  • opentelemetry-cpp/1.12.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.9.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.0.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.7.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.4.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.4.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.2.0:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.8.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.6.1:
    Didn't run or was cancelled before finishing

  • opentelemetry-cpp/1.3.0:
    Didn't run or was cancelled before finishing


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@kontrybutor
Copy link

kontrybutor commented Nov 23, 2023

In the output build log I can see that for GCC11 there are some missing headers like <variant> <cstdint> and maybe something else. Should the authors of the package fix it? Looks like they don't test the app with GCC11 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[package] opentelemetry-cpp/1.9.1: broken dependency graph
7 participants