couchbase 3.7.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/ext/CMakeLists.txt +4 -1
- data/ext/cache/extconf_include.rb +4 -3
- data/ext/cache/mozilla-ca-bundle.crt +66 -665
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +26 -11
- data/ext/couchbase/cmake/APKBUILD.in +17 -1
- data/ext/couchbase/cmake/Bundler.cmake +9 -1
- data/ext/couchbase/cmake/Cache.cmake +48 -19
- data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
- data/ext/couchbase/cmake/Packaging.cmake +48 -8
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
- data/ext/couchbase/cmake/build_config.hxx.in +2 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
- data/ext/couchbase/cmake/tarball_glob.txt +10 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
- data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
- data/ext/couchbase/core/bucket.cxx +128 -13
- data/ext/couchbase/core/bucket.hxx +12 -2
- data/ext/couchbase/core/cluster.cxx +304 -152
- data/ext/couchbase/core/cluster.hxx +32 -0
- data/ext/couchbase/core/cluster_credentials.cxx +25 -0
- data/ext/couchbase/core/cluster_credentials.hxx +5 -0
- data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
- data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
- data/ext/couchbase/core/cluster_options.hxx +4 -0
- data/ext/couchbase/core/deprecation_utils.hxx +26 -0
- data/ext/couchbase/core/error.hxx +27 -0
- data/ext/couchbase/core/error_context/base_error_context.hxx +32 -0
- data/ext/couchbase/core/error_context/key_value.cxx +1 -0
- data/ext/couchbase/core/error_context/key_value.hxx +23 -0
- data/ext/couchbase/core/error_context/key_value_error_context.hxx +35 -0
- data/ext/couchbase/core/error_context/subdocument_error_context.hxx +41 -0
- data/ext/couchbase/core/free_form_http_request.hxx +0 -2
- data/ext/couchbase/core/http_component.cxx +12 -48
- data/ext/couchbase/core/impl/analytics.cxx +3 -2
- data/ext/couchbase/core/impl/analytics.hxx +2 -1
- data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
- data/ext/couchbase/core/impl/binary_collection.cxx +239 -128
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +914 -372
- data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
- data/ext/couchbase/core/impl/error.cxx +49 -17
- data/ext/couchbase/core/impl/error.hxx +15 -10
- data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
- data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/invoke_with_node_id.hxx +44 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/node_id.cxx +110 -0
- data/ext/couchbase/core/impl/node_id.hxx +40 -0
- data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
- data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
- data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
- data/ext/couchbase/core/impl/query.cxx +6 -3
- data/ext/couchbase/core/impl/query.hxx +3 -1
- data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
- data/ext/couchbase/core/impl/scope.cxx +53 -11
- data/ext/couchbase/core/impl/search.cxx +8 -4
- data/ext/couchbase/core/impl/search.hxx +6 -2
- data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
- data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
- data/ext/couchbase/core/io/config_tracker.cxx +9 -9
- data/ext/couchbase/core/io/config_tracker.hxx +2 -1
- data/ext/couchbase/core/io/http_command.hxx +98 -49
- data/ext/couchbase/core/io/http_context.hxx +2 -0
- data/ext/couchbase/core/io/http_session.cxx +23 -10
- data/ext/couchbase/core/io/http_session.hxx +17 -9
- data/ext/couchbase/core/io/http_session_manager.hxx +245 -270
- data/ext/couchbase/core/io/http_traits.hxx +0 -7
- data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
- data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
- data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
- data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
- data/ext/couchbase/core/io/streams.cxx +3 -3
- data/ext/couchbase/core/io/streams.hxx +3 -2
- data/ext/couchbase/core/meta/features.hxx +15 -0
- data/ext/couchbase/core/meta/version.cxx +13 -0
- data/ext/couchbase/core/meta/version.hxx +3 -0
- data/ext/couchbase/core/metrics/constants.hxx +23 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
- data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
- data/ext/couchbase/core/operations/document_append.hxx +0 -4
- data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
- data/ext/couchbase/core/operations/document_exists.hxx +0 -7
- data/ext/couchbase/core/operations/document_get.hxx +0 -7
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +89 -29
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
- data/ext/couchbase/core/operations/document_get_projected.cxx +3 -4
- data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
- data/ext/couchbase/core/operations/document_increment.hxx +0 -5
- data/ext/couchbase/core/operations/document_insert.hxx +0 -4
- data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +50 -4
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
- data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
- data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
- data/ext/couchbase/core/operations/document_query.cxx +12 -12
- data/ext/couchbase/core/operations/document_query.hxx +0 -4
- data/ext/couchbase/core/operations/document_remove.hxx +0 -4
- data/ext/couchbase/core/operations/document_replace.hxx +0 -4
- data/ext/couchbase/core/operations/document_search.hxx +0 -7
- data/ext/couchbase/core/operations/document_touch.hxx +0 -7
- data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
- data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
- data/ext/couchbase/core/operations/document_view.cxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +10 -13
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_create.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +13 -7
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
- data/ext/couchbase/core/operations/management/query_index_create.cxx +5 -4
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +7 -6
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_create.cxx +12 -13
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.cxx +8 -9
- data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
- data/ext/couchbase/core/operations.hxx +0 -1
- data/ext/couchbase/core/operations_fwd.hxx +8 -0
- data/ext/couchbase/core/origin.cxx +67 -12
- data/ext/couchbase/core/origin.hxx +13 -8
- data/ext/couchbase/core/orphan_reporter.cxx +164 -0
- data/ext/couchbase/core/orphan_reporter.hxx +65 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
- data/ext/couchbase/core/sasl/client.cc +6 -0
- data/ext/couchbase/core/sasl/mechanism.cc +2 -1
- data/ext/couchbase/core/sasl/mechanism.h +2 -1
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
- data/ext/couchbase/core/tls_context_provider.cxx +44 -0
- data/ext/couchbase/core/tls_context_provider.hxx +44 -0
- data/ext/couchbase/core/topology/configuration.cxx +21 -0
- data/ext/couchbase/core/topology/configuration.hxx +28 -0
- data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
- data/ext/couchbase/core/tracing/constants.hxx +148 -68
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
- data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
- data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
- data/ext/couchbase/core/transactions/transactions.cxx +1 -1
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
- data/ext/couchbase/core/utils/byteswap.hxx +12 -0
- data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- data/ext/couchbase/core/utils/connection_string.cxx +2 -0
- data/ext/couchbase/core/utils/contains_string.cxx +61 -0
- data/ext/couchbase/core/utils/contains_string.hxx +26 -0
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/cluster.hxx +47 -0
- data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
- data/ext/couchbase/couchbase/collection.hxx +133 -15
- data/ext/couchbase/couchbase/error.hxx +16 -0
- data/ext/couchbase/couchbase/error_codes.hxx +48 -48
- data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
- data/ext/couchbase/couchbase/network_options.hxx +19 -0
- data/ext/couchbase/couchbase/node_id.hxx +123 -0
- data/ext/couchbase/couchbase/node_id_for_options.hxx +61 -0
- data/ext/couchbase/couchbase/node_ids_options.hxx +62 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/result.hxx +42 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
- data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
- data/ext/couchbase.cxx +4 -0
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +157 -47
- data/ext/rcb_backend.cxx +118 -71
- data/ext/rcb_buckets.cxx +39 -16
- data/ext/rcb_collections.cxx +36 -12
- data/ext/rcb_crud.cxx +589 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_logger.cxx +15 -17
- data/ext/rcb_multi.cxx +142 -59
- data/ext/rcb_observability.cxx +132 -0
- data/ext/rcb_observability.hxx +49 -0
- data/ext/rcb_query.cxx +77 -27
- data/ext/rcb_search.cxx +92 -31
- data/ext/rcb_users.cxx +69 -26
- data/ext/rcb_utils.cxx +91 -0
- data/ext/rcb_utils.hxx +141 -168
- data/ext/rcb_views.cxx +36 -12
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase/authenticator.rb +14 -0
- data/lib/couchbase/binary_collection.rb +37 -22
- data/lib/couchbase/bucket.rb +46 -31
- data/lib/couchbase/cluster.rb +146 -61
- data/lib/couchbase/collection.rb +257 -186
- data/lib/couchbase/datastructures/couchbase_list.rb +82 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +87 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +65 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +58 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +7 -1
- data/lib/couchbase/json_transcoder.rb +1 -1
- data/lib/couchbase/management/analytics_index_manager.rb +90 -59
- data/lib/couchbase/management/bucket_manager.rb +73 -45
- data/lib/couchbase/management/collection_manager.rb +86 -43
- data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
- data/lib/couchbase/management/query_index_manager.rb +88 -36
- data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
- data/lib/couchbase/management/search_index_manager.rb +401 -178
- data/lib/couchbase/management/user_manager.rb +343 -174
- data/lib/couchbase/management/view_index_manager.rb +166 -73
- data/lib/couchbase/metrics/logging_meter.rb +108 -0
- data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
- data/lib/couchbase/metrics/meter.rb +27 -0
- data/lib/couchbase/metrics/noop_meter.rb +30 -0
- data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
- data/lib/couchbase/metrics/value_recorder.rb +25 -0
- data/lib/couchbase/options.rb +71 -5
- data/lib/couchbase/protostellar/client.rb +0 -2
- data/lib/couchbase/protostellar/cluster.rb +7 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_pb.rb +54 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_services_pb.rb +51 -0
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +23 -0
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +4 -25
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +6 -25
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_pb.rb +46 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_services_pb.rb +56 -0
- data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +3 -26
- data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +47 -0
- data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +4 -26
- data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_pb.rb +26 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_services_pb.rb +43 -0
- data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +5 -26
- data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +11 -0
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +30 -0
- data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +9 -0
- data/lib/couchbase/protostellar/request_generator/admin/collection.rb +4 -2
- data/lib/couchbase/protostellar/request_generator/admin/query.rb +2 -0
- data/lib/couchbase/protostellar/request_generator/kv.rb +1 -1
- data/lib/couchbase/protostellar/scope.rb +4 -0
- data/lib/couchbase/scope.rb +62 -48
- data/lib/couchbase/search_options.rb +18 -18
- data/lib/couchbase/tracing/noop_span.rb +29 -0
- data/lib/couchbase/tracing/noop_tracer.rb +29 -0
- data/lib/couchbase/tracing/request_span.rb +34 -0
- data/lib/couchbase/tracing/request_tracer.rb +28 -0
- data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
- data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
- data/lib/couchbase/utils/hdr_histogram.rb +55 -0
- data/lib/couchbase/utils/observability.rb +263 -0
- data/lib/couchbase/utils/observability_constants.rb +200 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase.rb +2 -2
- metadata +72 -8
- data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +0 -52
- data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
86a1f3366afac7c6f8ae9f3c779ac221129328c43f0ab2b8817eb2f362a5025c cacert.pem
|
|
@@ -21,7 +21,7 @@ endif()
|
|
|
21
21
|
|
|
22
22
|
project(
|
|
23
23
|
couchbase_cxx_client
|
|
24
|
-
VERSION "1.2
|
|
24
|
+
VERSION "1.3.2"
|
|
25
25
|
LANGUAGES CXX C)
|
|
26
26
|
message(
|
|
27
27
|
STATUS
|
|
@@ -61,6 +61,8 @@ endif()
|
|
|
61
61
|
|
|
62
62
|
find_package(Threads REQUIRED)
|
|
63
63
|
|
|
64
|
+
option(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY "Build with OpenTelemetry" ${COUCHBASE_CXX_CLIENT_MASTER_PROJECT})
|
|
65
|
+
|
|
64
66
|
include(cmake/ThirdPartyDependencies.cmake)
|
|
65
67
|
|
|
66
68
|
include(cmake/VersionInfo.cmake)
|
|
@@ -75,15 +77,19 @@ set(couchbase_cxx_client_FILES
|
|
|
75
77
|
core/agent_group.cxx
|
|
76
78
|
core/agent_group_config.cxx
|
|
77
79
|
core/analytics_query_options.cxx
|
|
80
|
+
core/app_telemetry_address.cxx
|
|
81
|
+
core/app_telemetry_meter.cxx
|
|
82
|
+
core/app_telemetry_reporter.cxx
|
|
78
83
|
core/bucket.cxx
|
|
79
84
|
core/cluster.cxx
|
|
80
85
|
core/cluster_agent.cxx
|
|
81
86
|
core/cluster_agent_config.cxx
|
|
87
|
+
core/cluster_credentials.cxx
|
|
82
88
|
core/cluster_options.cxx
|
|
83
89
|
core/collections_component.cxx
|
|
90
|
+
core/columnar/backoff_calculator.cxx
|
|
84
91
|
core/columnar/columnar_agent.cxx
|
|
85
92
|
core/columnar/columnar_agent_config.cxx
|
|
86
|
-
core/columnar/backoff_calculator.cxx
|
|
87
93
|
core/columnar/columnar_error.cxx
|
|
88
94
|
core/columnar/error_codes.cxx
|
|
89
95
|
core/columnar/management_component.cxx
|
|
@@ -105,14 +111,13 @@ set(couchbase_cxx_client_FILES
|
|
|
105
111
|
core/impl/binary_collection.cxx
|
|
106
112
|
core/impl/boolean_field_query.cxx
|
|
107
113
|
core/impl/boolean_query.cxx
|
|
108
|
-
core/impl/public_bucket.cxx
|
|
109
114
|
core/impl/bucket_manager.cxx
|
|
110
|
-
core/impl/public_cluster.cxx
|
|
111
115
|
core/impl/collection.cxx
|
|
112
116
|
core/impl/collection_manager.cxx
|
|
113
117
|
core/impl/common_error_category.cxx
|
|
114
118
|
core/impl/configuration_profiles_registry.cxx
|
|
115
119
|
core/impl/conjunction_query.cxx
|
|
120
|
+
core/impl/crypto.cxx
|
|
116
121
|
core/impl/date_range.cxx
|
|
117
122
|
core/impl/date_range_facet.cxx
|
|
118
123
|
core/impl/date_range_facet_result.cxx
|
|
@@ -123,6 +128,7 @@ set(couchbase_cxx_client_FILES
|
|
|
123
128
|
core/impl/doc_id_query.cxx
|
|
124
129
|
core/impl/error.cxx
|
|
125
130
|
core/impl/error_context.cxx
|
|
131
|
+
core/impl/node_id.cxx
|
|
126
132
|
core/impl/expiry.cxx
|
|
127
133
|
core/impl/fail_fast_retry_strategy.cxx
|
|
128
134
|
core/impl/field_level_encryption_error_category.cxx
|
|
@@ -141,7 +147,6 @@ set(couchbase_cxx_client_FILES
|
|
|
141
147
|
core/impl/internal_term_facet_result.cxx
|
|
142
148
|
core/impl/key_value_error_category.cxx
|
|
143
149
|
core/impl/key_value_error_context.cxx
|
|
144
|
-
core/impl/public_logger.cxx
|
|
145
150
|
core/impl/lookup_in_replica.cxx
|
|
146
151
|
core/impl/management_error_category.cxx
|
|
147
152
|
core/impl/match_all_query.cxx
|
|
@@ -157,6 +162,11 @@ set(couchbase_cxx_client_FILES
|
|
|
157
162
|
core/impl/observe_seqno.cxx
|
|
158
163
|
core/impl/phrase_query.cxx
|
|
159
164
|
core/impl/prefix_query.cxx
|
|
165
|
+
core/impl/public_bucket.cxx
|
|
166
|
+
core/impl/public_cluster.cxx
|
|
167
|
+
core/impl/public_logger.cxx
|
|
168
|
+
core/impl/public_scan_result.cxx
|
|
169
|
+
core/impl/public_transaction_get_result.cxx
|
|
160
170
|
core/impl/query.cxx
|
|
161
171
|
core/impl/query_error_category.cxx
|
|
162
172
|
core/impl/query_error_context.cxx
|
|
@@ -166,7 +176,6 @@ set(couchbase_cxx_client_FILES
|
|
|
166
176
|
core/impl/replica_utils.cxx
|
|
167
177
|
core/impl/retry_action.cxx
|
|
168
178
|
core/impl/retry_reason.cxx
|
|
169
|
-
core/impl/public_scan_result.cxx
|
|
170
179
|
core/impl/scope.cxx
|
|
171
180
|
core/impl/search.cxx
|
|
172
181
|
core/impl/search_error_category.cxx
|
|
@@ -206,13 +215,13 @@ set(couchbase_cxx_client_FILES
|
|
|
206
215
|
core/impl/transaction_error_category.cxx
|
|
207
216
|
core/impl/transaction_get_multi_replicas_from_preferred_server_group_spec.cxx
|
|
208
217
|
core/impl/transaction_get_multi_spec.cxx
|
|
209
|
-
core/impl/public_transaction_get_result.cxx
|
|
210
218
|
core/impl/transaction_op_error_category.cxx
|
|
211
219
|
core/impl/vector_query.cxx
|
|
212
220
|
core/impl/vector_search.cxx
|
|
213
221
|
core/impl/view_error_category.cxx
|
|
214
222
|
core/impl/wildcard_query.cxx
|
|
215
223
|
core/impl/crypto.cxx
|
|
224
|
+
core/impl/observability_recorder.cxx
|
|
216
225
|
core/io/config_tracker.cxx
|
|
217
226
|
core/io/dns_client.cxx
|
|
218
227
|
core/io/dns_config.cxx
|
|
@@ -339,6 +348,7 @@ set(couchbase_cxx_client_FILES
|
|
|
339
348
|
core/operations/management/view_index_get_all.cxx
|
|
340
349
|
core/operations/management/view_index_upsert.cxx
|
|
341
350
|
core/origin.cxx
|
|
351
|
+
core/orphan_reporter.cxx
|
|
342
352
|
core/platform/base64.cc
|
|
343
353
|
core/platform/dirutils.cc
|
|
344
354
|
core/platform/random.cc
|
|
@@ -387,16 +397,19 @@ set(couchbase_cxx_client_FILES
|
|
|
387
397
|
core/sasl/client.cc
|
|
388
398
|
core/sasl/context.cc
|
|
389
399
|
core/sasl/mechanism.cc
|
|
400
|
+
core/sasl/oauthbearer/oauthbearer.cc
|
|
390
401
|
core/sasl/plain/plain.cc
|
|
391
402
|
core/sasl/scram-sha/scram-sha.cc
|
|
392
403
|
core/sasl/scram-sha/stringutils.cc
|
|
393
404
|
core/scan_result.cxx
|
|
394
405
|
core/search_query_options.cxx
|
|
395
406
|
core/seed_config.cxx
|
|
407
|
+
core/tls_context_provider.cxx
|
|
396
408
|
core/topology/capabilities.cxx
|
|
397
409
|
core/topology/configuration.cxx
|
|
398
410
|
core/tracing/threshold_logging_tracer.cxx
|
|
399
411
|
core/tracing/tracer_wrapper.cxx
|
|
412
|
+
core/tracing/wrapper_sdk_tracer.cxx
|
|
400
413
|
core/transactions/active_transaction_record.cxx
|
|
401
414
|
core/transactions/async_attempt_context.cxx
|
|
402
415
|
core/transactions/atr_cleanup_entry.cxx
|
|
@@ -424,6 +437,7 @@ set(couchbase_cxx_client_FILES
|
|
|
424
437
|
core/transactions/utils.cxx
|
|
425
438
|
core/utils/binary.cxx
|
|
426
439
|
core/utils/connection_string.cxx
|
|
440
|
+
core/utils/contains_string.cxx
|
|
427
441
|
core/utils/duration_parser.cxx
|
|
428
442
|
core/utils/json.cxx
|
|
429
443
|
core/utils/json_streaming_lexer.cxx
|
|
@@ -432,10 +446,8 @@ set(couchbase_cxx_client_FILES
|
|
|
432
446
|
core/utils/url_codec.cxx
|
|
433
447
|
core/view_query_options.cxx
|
|
434
448
|
core/websocket_codec.cxx
|
|
435
|
-
core/
|
|
436
|
-
|
|
437
|
-
core/app_telemetry_reporter.cxx
|
|
438
|
-
core/cluster_credentials.cxx)
|
|
449
|
+
core/cluster_label_listener.cxx
|
|
450
|
+
)
|
|
439
451
|
|
|
440
452
|
set(couchbase_cxx_client_LIBRARIES)
|
|
441
453
|
set(couchbase_cxx_client_DEFAULT_LIBRARY)
|
|
@@ -520,6 +532,9 @@ foreach(TARGET ${couchbase_cxx_client_LIBRARIES})
|
|
|
520
532
|
$<BUILD_INTERFACE:asio>
|
|
521
533
|
$<BUILD_INTERFACE:couchbase_backtrace>
|
|
522
534
|
$<BUILD_INTERFACE:jsonsl>)
|
|
535
|
+
if(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY)
|
|
536
|
+
target_link_libraries(${TARGET} PRIVATE $<BUILD_INTERFACE:opentelemetry_api>)
|
|
537
|
+
endif()
|
|
523
538
|
|
|
524
539
|
if(HAVE_BACKTRACE)
|
|
525
540
|
target_link_libraries(${TARGET} PRIVATE ${PLATFORM_LIBRARIES})
|
|
@@ -5,8 +5,19 @@ pkgname=couchbase-cxx-client
|
|
|
5
5
|
pkgver=@COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@
|
|
6
6
|
pkgrel=1
|
|
7
7
|
_number_of_commits=@COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS@
|
|
8
|
+
_git_revision_short=@COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT@
|
|
8
9
|
if [ "${_number_of_commits}" -gt 0 ]; then
|
|
9
|
-
|
|
10
|
+
# Encode commit count and git hash into _p version for uniqueness
|
|
11
|
+
# Extract first 3 hex bytes from git hash, convert to decimal
|
|
12
|
+
# Map each byte mod 100 to create 6-digit suffix
|
|
13
|
+
# Formula: p = commits × 10_000_000 + (byte1%100)*10000 + (byte2%100)*100 + (byte3%100)
|
|
14
|
+
# Example: 1.2.0-75-gfeb729b2 → 1.2.0_p750548341
|
|
15
|
+
_b1=$((0x${_git_revision_short:0:2}))
|
|
16
|
+
_b2=$((0x${_git_revision_short:2:2}))
|
|
17
|
+
_b3=$((0x${_git_revision_short:4:2}))
|
|
18
|
+
_sha_pack=$(( (_b1 % 100) * 10000 + (_b2 % 100) * 100 + (_b3 % 100) ))
|
|
19
|
+
_p_version=$(( _number_of_commits * 10000000 + _sha_pack ))
|
|
20
|
+
pkgver="${pkgver}_p${_p_version}"
|
|
10
21
|
fi
|
|
11
22
|
source="${pkgname}-${pkgver}.tar.gz"
|
|
12
23
|
pkgdesc="Couchbase C++ SDK"
|
|
@@ -18,6 +29,10 @@ makedepends="
|
|
|
18
29
|
linux-headers
|
|
19
30
|
cmake
|
|
20
31
|
ninja
|
|
32
|
+
curl-dev
|
|
33
|
+
protobuf-dev
|
|
34
|
+
grpc-dev
|
|
35
|
+
nlohmann-json
|
|
21
36
|
"
|
|
22
37
|
subpackages="${pkgname}-dev ${pkgname}-tools"
|
|
23
38
|
options="!check"
|
|
@@ -36,6 +51,7 @@ build() {
|
|
|
36
51
|
-DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
|
|
37
52
|
-DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
|
|
38
53
|
-DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
|
|
54
|
+
-DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON \
|
|
39
55
|
-DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
|
|
40
56
|
-DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON \
|
|
41
57
|
-DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
|
|
@@ -88,10 +88,18 @@ function(bundle_static_library tgt_name bundled_tgt_name)
|
|
|
88
88
|
set(ar_tool ${CMAKE_CXX_COMPILER_AR})
|
|
89
89
|
endif()
|
|
90
90
|
|
|
91
|
+
if(APPLE)
|
|
92
|
+
find_program(SED gsed)
|
|
93
|
+
else()
|
|
94
|
+
find_program(SED sed)
|
|
95
|
+
endif()
|
|
96
|
+
|
|
91
97
|
add_custom_command(
|
|
92
|
-
COMMAND ${
|
|
98
|
+
COMMAND ${SED} -i "s|${CMAKE_BINARY_DIR}/||g" ${bundled_tgt_name}.ar
|
|
99
|
+
COMMAND ${ar_tool} -M < ${bundled_tgt_name}.ar
|
|
93
100
|
OUTPUT ${bundled_tgt_full_name}
|
|
94
101
|
DEPENDS ${tgt_name} ${static_libs}
|
|
102
|
+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
95
103
|
COMMENT "Bundling ${bundled_tgt_name}"
|
|
96
104
|
VERBATIM)
|
|
97
105
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
|
@@ -3,27 +3,56 @@ if(NOT ENABLE_CACHE)
|
|
|
3
3
|
return()
|
|
4
4
|
endif()
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
list(
|
|
12
|
-
FIND
|
|
13
|
-
CACHE_OPTION_VALUES
|
|
14
|
-
${CACHE_OPTION}
|
|
15
|
-
CACHE_OPTION_INDEX)
|
|
6
|
+
if(NOT DEFINED CACHE_OPTION)
|
|
7
|
+
set(CACHE_OPTION "")
|
|
8
|
+
endif()
|
|
9
|
+
|
|
10
|
+
set(CACHE_OPTION_VALUES "sccache" "ccache")
|
|
16
11
|
|
|
17
|
-
if(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
if(CACHE_OPTION STREQUAL "")
|
|
13
|
+
find_program(SCCACHE_BIN sccache)
|
|
14
|
+
if(SCCACHE_BIN)
|
|
15
|
+
set(CACHE_OPTION "sccache")
|
|
16
|
+
set(CACHE_BINARY ${SCCACHE_BIN})
|
|
17
|
+
else()
|
|
18
|
+
find_program(CCACHE_BIN ccache)
|
|
19
|
+
if(CCACHE_BIN)
|
|
20
|
+
set(CACHE_OPTION "ccache")
|
|
21
|
+
set(CACHE_BINARY ${CCACHE_BIN})
|
|
22
|
+
else()
|
|
23
|
+
set(CACHE_OPTION "none")
|
|
24
|
+
set(CACHE_BINARY "")
|
|
25
|
+
endif()
|
|
26
|
+
endif()
|
|
27
|
+
else()
|
|
28
|
+
if(NOT
|
|
29
|
+
CACHE_OPTION
|
|
30
|
+
IN_LIST
|
|
31
|
+
CACHE_OPTION_VALUES)
|
|
32
|
+
message(
|
|
33
|
+
STATUS
|
|
34
|
+
"Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}"
|
|
35
|
+
)
|
|
36
|
+
endif()
|
|
37
|
+
find_program(CACHE_BINARY ${CACHE_OPTION})
|
|
21
38
|
endif()
|
|
22
39
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
message(STATUS "${CACHE_OPTION} found and enabled")
|
|
26
|
-
set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
|
|
40
|
+
if(CACHE_OPTION STREQUAL "none" OR CACHE_BINARY STREQUAL "")
|
|
41
|
+
message(WARNING "No compiler cache found or enabled; building without compiler cache")
|
|
27
42
|
else()
|
|
28
|
-
|
|
43
|
+
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
|
44
|
+
message(WARNING "Compiler cache (sccache/ccache) ignored with Visual Studio generator + MSVC. Use -GNinja instead.")
|
|
45
|
+
return()
|
|
46
|
+
endif()
|
|
47
|
+
|
|
48
|
+
message(STATUS "Compiler cache '${CACHE_OPTION}' found at: ${CACHE_BINARY}")
|
|
49
|
+
set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
|
|
50
|
+
set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
|
|
51
|
+
if(MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
|
|
52
|
+
set(CMAKE_C_FLAGS_DEBUG "/Z7 /Od /RTC1 /FS")
|
|
53
|
+
set(CMAKE_CXX_FLAGS_DEBUG "/Z7 /Od /RTC1 /FS")
|
|
54
|
+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Z7 /O2 /FS")
|
|
55
|
+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Z7 /O2 /FS")
|
|
56
|
+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
|
57
|
+
endif()
|
|
29
58
|
endif()
|
|
@@ -42,7 +42,9 @@ function(set_project_options target_name)
|
|
|
42
42
|
endif()
|
|
43
43
|
|
|
44
44
|
if(HAVE_BACKTRACE OR HAVE_DLADDR)
|
|
45
|
-
if(
|
|
45
|
+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
|
46
|
+
AND NOT APPLE
|
|
47
|
+
AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
|
46
48
|
target_compile_options(${target_name} PRIVATE -ggdb3)
|
|
47
49
|
endif()
|
|
48
50
|
target_compile_definitions(${target_name} PRIVATE -D_GNU_SOURCE=1)
|
|
@@ -209,10 +209,18 @@ if(COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE)
|
|
|
209
209
|
file(READ "${COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT}/mozilla-ca-bundle.crt" CA_BUNDLE_CONTENT)
|
|
210
210
|
string(
|
|
211
211
|
REGEX MATCH
|
|
212
|
-
"Certificate data from Mozilla as of: ([^\n]*)"
|
|
212
|
+
"Certificate data from Mozilla (as of|last updated on): ([^\n]*)"
|
|
213
213
|
CA_BUNDLE_DATE_LINE
|
|
214
214
|
${CA_BUNDLE_CONTENT})
|
|
215
|
-
|
|
215
|
+
if(CA_BUNDLE_DATE_LINE)
|
|
216
|
+
set(COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE "${CMAKE_MATCH_2}")
|
|
217
|
+
else()
|
|
218
|
+
message(
|
|
219
|
+
WARNING
|
|
220
|
+
"Failed to extract Mozilla CA bundle date from certificate file; "
|
|
221
|
+
"COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE will be set to 'unknown'.")
|
|
222
|
+
set(COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE "unknown")
|
|
223
|
+
endif()
|
|
216
224
|
else()
|
|
217
225
|
set(CA_BUNDLE_CONTENT "")
|
|
218
226
|
endif()
|
|
@@ -84,6 +84,12 @@ add_custom_command(
|
|
|
84
84
|
set(COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE ${PROJECT_SOURCE_DIR}/cmake/tarball_glob.txt)
|
|
85
85
|
|
|
86
86
|
if(COUCHBASE_CXX_RECORD_BUILD_INFO_FOR_TARBALL)
|
|
87
|
+
if(CPM_USE_NAMED_CACHE_DIRECTORIES)
|
|
88
|
+
get_filename_component(opentelemetry_SOURCE_DIR_PARENT "${opentelemetry_SOURCE_DIR}" DIRECTORY)
|
|
89
|
+
get_filename_component(opentelemetry_CPM_HASH "${opentelemetry_SOURCE_DIR_PARENT}" NAME)
|
|
90
|
+
else()
|
|
91
|
+
get_filename_component(opentelemetry_CPM_HASH "${opentelemetry_SOURCE_DIR}" NAME)
|
|
92
|
+
endif()
|
|
87
93
|
file(
|
|
88
94
|
WRITE "${CMAKE_SOURCE_DIR}/cmake/TarballRelease.cmake"
|
|
89
95
|
"
|
|
@@ -91,6 +97,7 @@ set(CPM_DOWNLOAD_ALL OFF CACHE BOOL \"\" FORCE)
|
|
|
91
97
|
set(CPM_USE_NAMED_CACHE_DIRECTORIES ON CACHE BOOL \"\" FORCE)
|
|
92
98
|
set(CPM_USE_LOCAL_PACKAGES OFF CACHE BOOL \"\" FORCE)
|
|
93
99
|
set(CPM_SOURCE_CACHE \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
|
|
100
|
+
set(OTELCPP_PROTO_PATH \"\${PROJECT_SOURCE_DIR}/third_party_cache/opentelemetry/${opentelemetry_CPM_HASH}/opentelemetry/third_party/opentelemetry-proto\" CACHE STRING \"\" FORCE)
|
|
94
101
|
set(COUCHBASE_CXX_CLIENT_GIT_REVISION \"${COUCHBASE_CXX_CLIENT_GIT_REVISION}\")
|
|
95
102
|
set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE \"${COUCHBASE_CXX_CLIENT_GIT_DESCRIBE}\")
|
|
96
103
|
set(COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP \"${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}\")
|
|
@@ -112,16 +119,36 @@ add_custom_command(
|
|
|
112
119
|
-DCPM_SOURCE_CACHE="${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache"
|
|
113
120
|
-DCOUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT="${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache"
|
|
114
121
|
-DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON -DCOUCHBASE_CXX_CLIENT_BUILD_DOCS=OFF
|
|
122
|
+
-DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON
|
|
115
123
|
-DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON -DCPM_DOWNLOAD_ALL=ON -DCPM_USE_NAMED_CACHE_DIRECTORIES=ON
|
|
116
124
|
-DCPM_USE_LOCAL_PACKAGES=OFF -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
|
|
117
125
|
-DCOUCHBASE_CXX_CLIENT_INSTALL=ON -DCOUCHBASE_CXX_RECORD_BUILD_INFO_FOR_TARBALL=ON
|
|
118
126
|
COMMAND
|
|
119
|
-
${XARGS}
|
|
127
|
+
${XARGS} -a ${COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE} -I {} find
|
|
120
128
|
"${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache" -wholename "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache/{}"
|
|
121
|
-
-type f
|
|
129
|
+
-type f
|
|
130
|
+
| grep -v
|
|
131
|
+
-e "/benchmark"
|
|
132
|
+
-e "/opentelemetry.*/functional"
|
|
133
|
+
-e "/opentelemetry.*/install"
|
|
134
|
+
-e "/opentelemetry.*/test"
|
|
135
|
+
-e "/opentelemetry/examples"
|
|
136
|
+
-e "/opentelemetry/docker"
|
|
137
|
+
-e "/opentelemetry/exporters/elasticsearch"
|
|
138
|
+
-e "/opentelemetry/exporters/etw"
|
|
139
|
+
-e "/opentelemetry/exporters/prometheus"
|
|
140
|
+
-e "/opentelemetry/exporters/zipkin"
|
|
141
|
+
-e "/opentelemetry/opentracing-.*"
|
|
142
|
+
-e "/opentelemetry/third_party/ms-gsl"
|
|
143
|
+
-e "/opentelemetry/third_party/nlohmann-json"
|
|
144
|
+
-e "/opentelemetry/third_party/prometheus-cpp"
|
|
145
|
+
-e "/opentelemetry/tools"
|
|
146
|
+
-e "crypto_test_data"
|
|
147
|
+
-e "googletest"
|
|
148
|
+
| uniq >
|
|
122
149
|
"${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt"
|
|
123
150
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
|
|
124
|
-
COMMAND ${XARGS}
|
|
151
|
+
COMMAND ${XARGS} -a "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt" -I {} ${CP} --parents
|
|
125
152
|
{} "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
|
|
126
153
|
COMMAND
|
|
127
154
|
${CMAKE_COMMAND} -E rename
|
|
@@ -263,7 +290,7 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
|
|
|
263
290
|
set(COUCHBASE_CXX_CLIENT_SPEC "${PROJECT_BINARY_DIR}/packaging/couchbase-cxx-client.spec")
|
|
264
291
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/couchbase-cxx-client.spec.in "${COUCHBASE_CXX_CLIENT_SPEC}" @ONLY)
|
|
265
292
|
|
|
266
|
-
set(COUCHBASE_CXX_CLIENT_DEFAULT_ROOT "rocky-9-${CMAKE_SYSTEM_PROCESSOR}")
|
|
293
|
+
set(COUCHBASE_CXX_CLIENT_DEFAULT_ROOT "rocky+epel-9-${CMAKE_SYSTEM_PROCESSOR}")
|
|
267
294
|
set(COUCHBASE_CXX_CLIENT_RPM_NAME
|
|
268
295
|
"couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}-${COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE}")
|
|
269
296
|
set(COUCHBASE_CXX_CLIENT_SRPM "${PROJECT_BINARY_DIR}/packaging/srpm/${COUCHBASE_CXX_CLIENT_RPM_NAME}.el9.src.rpm")
|
|
@@ -282,9 +309,9 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
|
|
|
282
309
|
APPEND
|
|
283
310
|
COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS
|
|
284
311
|
"opensuse-leap-15.6-${CMAKE_SYSTEM_PROCESSOR}"
|
|
285
|
-
"rocky-10-${CMAKE_SYSTEM_PROCESSOR}"
|
|
286
|
-
"rocky-9-${CMAKE_SYSTEM_PROCESSOR}"
|
|
287
|
-
"rocky-8-${CMAKE_SYSTEM_PROCESSOR}"
|
|
312
|
+
"rocky+epel-10-${CMAKE_SYSTEM_PROCESSOR}"
|
|
313
|
+
"rocky+epel-9-${CMAKE_SYSTEM_PROCESSOR}"
|
|
314
|
+
"rocky+epel-8-${CMAKE_SYSTEM_PROCESSOR}"
|
|
288
315
|
"amazonlinux-2023-${CMAKE_SYSTEM_PROCESSOR}"
|
|
289
316
|
"fedora-43-${CMAKE_SYSTEM_PROCESSOR}"
|
|
290
317
|
"fedora-42-${CMAKE_SYSTEM_PROCESSOR}"
|
|
@@ -327,8 +354,21 @@ if(COUCHBASE_CXX_CLIENT_APK_TARGETS)
|
|
|
327
354
|
set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
|
|
328
355
|
"${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
|
|
329
356
|
if(${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS} GREATER 0)
|
|
357
|
+
# Encode commit count and git hash into _p version for uniqueness
|
|
358
|
+
# Extract first 3 bytes from git hash (7-char short hash), convert to decimal
|
|
359
|
+
# Map each byte mod 100 to create 6-digit suffix
|
|
360
|
+
# Formula: p = commits × 10_000_000 + (byte1%100)*10000 + (byte2%100)*100 + (byte3%100)
|
|
361
|
+
# Example: 1.2.0-75-gfeb729b2 → 1.2.0_p750548341
|
|
362
|
+
string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 0 2 _b1_hex)
|
|
363
|
+
string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 2 2 _b2_hex)
|
|
364
|
+
string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 4 2 _b3_hex)
|
|
365
|
+
math(EXPR _b1 "0x${_b1_hex}")
|
|
366
|
+
math(EXPR _b2 "0x${_b2_hex}")
|
|
367
|
+
math(EXPR _b3 "0x${_b3_hex}")
|
|
368
|
+
math(EXPR _sha_pack "(${_b1} % 100) * 10000 + (${_b2} % 100) * 100 + (${_b3} % 100)")
|
|
369
|
+
math(EXPR _p_version "${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS} * 10000000 + ${_sha_pack}")
|
|
330
370
|
set(COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE
|
|
331
|
-
"couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}_p${
|
|
371
|
+
"couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}_p${_p_version}")
|
|
332
372
|
set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
|
|
333
373
|
"${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
|
|
334
374
|
endif()
|
|
@@ -39,6 +39,46 @@ if(NOT TARGET spdlog::spdlog)
|
|
|
39
39
|
"SPDLOG_FMT_EXTERNAL OFF")
|
|
40
40
|
endif()
|
|
41
41
|
|
|
42
|
+
if(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY)
|
|
43
|
+
if(NOT TARGET opentelemetry)
|
|
44
|
+
# Disable curl HTTP client to avoid curl downloading and linking to BoringSSL
|
|
45
|
+
# OpenTelemetry will fall back to using its own HTTP client implementation
|
|
46
|
+
# This avoids CMake export errors when curl tries to reference ssl/crypto targets
|
|
47
|
+
|
|
48
|
+
# https://github.com/open-telemetry/opentelemetry-cpp/releases
|
|
49
|
+
cpmaddpackage(
|
|
50
|
+
NAME
|
|
51
|
+
opentelemetry
|
|
52
|
+
VERSION
|
|
53
|
+
1.23.0
|
|
54
|
+
GITHUB_REPOSITORY
|
|
55
|
+
"open-telemetry/opentelemetry-cpp"
|
|
56
|
+
EXCLUDE_FROM_ALL ON
|
|
57
|
+
OPTIONS
|
|
58
|
+
"protobuf_MSVC_STATIC_RUNTIME OFF"
|
|
59
|
+
"OPENTELEMETRY_INSTALL OFF"
|
|
60
|
+
"WITH_ABI_VERSION_1 OFF"
|
|
61
|
+
"WITH_ABI_VERSION_2 ON"
|
|
62
|
+
"WITH_BENCHMARK OFF"
|
|
63
|
+
"WITH_EXAMPLES OFF"
|
|
64
|
+
"WITH_FUNC_TESTS OFF"
|
|
65
|
+
"WITH_OTLP_GRPC OFF"
|
|
66
|
+
"WITH_OTLP_HTTP ON"
|
|
67
|
+
"WITH_HTTP_CLIENT_CURL OFF"
|
|
68
|
+
"WITH_PROMETHEUS OFF"
|
|
69
|
+
"WITH_OPENTRACING OFF"
|
|
70
|
+
"WITH_STL CXX17"
|
|
71
|
+
"BUILD_TESTING OFF"
|
|
72
|
+
"BUILD_SHARED_LIBS OFF"
|
|
73
|
+
"CMAKE_C_VISIBILITY_PRESET hidden"
|
|
74
|
+
"CMAKE_CXX_VISIBILITY_PRESET hidden"
|
|
75
|
+
"CMAKE_POSITION_INDEPENDENT_CODE ON")
|
|
76
|
+
endif()
|
|
77
|
+
|
|
78
|
+
declare_system_library(opentelemetry_exporter_otlp_http)
|
|
79
|
+
declare_system_library(opentelemetry_exporter_otlp_http_metric)
|
|
80
|
+
endif()
|
|
81
|
+
|
|
42
82
|
if(NOT TARGET Microsoft.GSL::GSL)
|
|
43
83
|
# https://github.com/microsoft/GSL/releases
|
|
44
84
|
cpmaddpackage(
|
|
@@ -185,8 +225,9 @@ if(asio_ADDED)
|
|
|
185
225
|
target_link_libraries(asio PRIVATE Threads::Threads)
|
|
186
226
|
if(COUCHBASE_CXX_CLIENT_STATIC_BORINGSSL)
|
|
187
227
|
target_link_libraries(asio PUBLIC $<TARGET_OBJECTS:ssl> $<TARGET_OBJECTS:crypto>)
|
|
228
|
+
# Add BoringSSL include directories before asio's own include directories.
|
|
188
229
|
target_include_directories(
|
|
189
|
-
asio
|
|
230
|
+
asio BEFORE PRIVATE $<BUILD_INTERFACE:$<TARGET_PROPERTY:ssl,INTERFACE_INCLUDE_DIRECTORIES>>
|
|
190
231
|
$<BUILD_INTERFACE:$<TARGET_PROPERTY:crypto,INTERFACE_INCLUDE_DIRECTORIES>>)
|
|
191
232
|
elseif(NOT COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL)
|
|
192
233
|
target_link_libraries(asio PRIVATE OpenSSL::SSL OpenSSL::Crypto)
|
|
@@ -264,3 +305,4 @@ declare_system_library(Microsoft.GSL::GSL)
|
|
|
264
305
|
declare_system_library(spdlog::spdlog)
|
|
265
306
|
declare_system_library(asio)
|
|
266
307
|
declare_system_library(taocpp::json)
|
|
308
|
+
declare_system_library(snappy)
|
|
@@ -24,3 +24,5 @@
|
|
|
24
24
|
#cmakedefine COUCHBASE_CXX_CLIENT_BORINGSSL_SHA "@COUCHBASE_CXX_CLIENT_BORINGSSL_SHA@"
|
|
25
25
|
#cmakedefine COUCHBASE_CXX_CLIENT_STATIC_BORINGSSL
|
|
26
26
|
#cmakedefine COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
27
|
+
#cmakedefine COUCHBASE_CXX_CLIENT_CREATE_OPERATION_SPAN_IN_CORE
|
|
28
|
+
#cmakedefine COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY
|
|
@@ -12,6 +12,19 @@ BuildRequires: gcc13, gcc13-c++
|
|
|
12
12
|
BuildRequires: gcc, gcc-c++
|
|
13
13
|
%endif
|
|
14
14
|
BuildRequires: cmake >= 3.19
|
|
15
|
+
%if 0%{?suse_version} > 0
|
|
16
|
+
BuildRequires: libcurl-devel
|
|
17
|
+
BuildRequires: protobuf-devel
|
|
18
|
+
BuildRequires: nlohmann_json-devel
|
|
19
|
+
%else
|
|
20
|
+
%if 0%{?amzn} == 0 && (0%{?rhel} >= 9 || 0%{?fedora} > 0)
|
|
21
|
+
BuildRequires: curl-devel
|
|
22
|
+
BuildRequires: protobuf-devel
|
|
23
|
+
BuildRequires: json-devel
|
|
24
|
+
%else
|
|
25
|
+
# CentOS 8 / Rocky 8 - skip these packages (no OpenTelemetry)
|
|
26
|
+
%endif
|
|
27
|
+
%endif
|
|
15
28
|
Source0: @COUCHBASE_CXX_CLIENT_TARBALL_NAME@.tar.gz
|
|
16
29
|
|
|
17
30
|
%if 0%{?amzn}
|
|
@@ -50,6 +63,11 @@ Development files for the Couchbase C++ SDK.
|
|
|
50
63
|
-DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
|
|
51
64
|
-DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
|
|
52
65
|
-DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
|
|
66
|
+
%if 0%{?amzn} == 0 && (0%{?rhel} >= 9 || 0%{?fedora} > 0 || 0%{?suse_version} > 0)
|
|
67
|
+
-DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON \
|
|
68
|
+
%else
|
|
69
|
+
-DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=OFF \
|
|
70
|
+
%endif
|
|
53
71
|
-DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
|
|
54
72
|
-DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON \
|
|
55
73
|
-DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
|
|
@@ -90,3 +90,13 @@ spdlog/*/spdlog/include/*
|
|
|
90
90
|
spdlog/*/spdlog/include/**/*
|
|
91
91
|
spdlog/*/spdlog/src/*
|
|
92
92
|
spdlog/*/spdlog/src/**/*
|
|
93
|
+
opentelemetry/*/opentelemetry/CMakeLists.txt
|
|
94
|
+
opentelemetry/*/opentelemetry/CMakeSettings.json
|
|
95
|
+
opentelemetry/*/opentelemetry/LICENSE
|
|
96
|
+
opentelemetry/*/opentelemetry/*/CMakeLists.txt
|
|
97
|
+
opentelemetry/*/opentelemetry/cmake/*
|
|
98
|
+
opentelemetry/*/opentelemetry/**/CMakeLists.txt
|
|
99
|
+
opentelemetry/*/opentelemetry/**/LICENSE
|
|
100
|
+
opentelemetry/*/opentelemetry/**/*.h
|
|
101
|
+
opentelemetry/*/opentelemetry/**/*.cc
|
|
102
|
+
opentelemetry/*/opentelemetry/third_party/opentelemetry-proto/opentelemetry/proto/**/*.proto
|