|
cwist
Modern C web framework with libttak runtime
|
OpenTelemetry tracing middleware (#402). More...
#include <cwist/sys/app/middleware.h>#include <cwist/core/mem/alloc.h>#include <cwist/net/http/http.h>#include <cwist/net/http/http_client.h>#include <cjson/cJSON.h>#include <openssl/rand.h>#include <pthread.h>#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <string.h>#include <time.h>
Go to the source code of this file.
Macros | |
| #define | _POSIX_C_SOURCE 200809L |
| #define | OTEL_DEFAULT_ENDPOINT "http://localhost:4318/v1/traces" |
| #define | OTEL_DEFAULT_SERVICE "cwist" |
| #define | OTEL_DEFAULT_QUEUE 512U |
| #define | OTEL_DEFAULT_BATCH 64U |
| #define | OTEL_EXPORT_TIMEOUT_MS 2000 |
| #define | OTEL_TRACE_ID_HEX 32U |
| #define | OTEL_SPAN_ID_HEX 16U |
Typedefs | |
| typedef struct otel_ctx | otel_ctx |
Functions | |
| cwist_middleware_func | cwist_mw_otel_trace (const cwist_otel_cfg_t *cfg) |
| OpenTelemetry tracing middleware. | |
| const char * | cwist_mw_otel_get_trace_id (const cwist_http_request *req) |
Trace id of the span cwist_mw_otel_trace() opened for req. | |
OpenTelemetry tracing middleware (#402).
The middleware records one SERVER span per request and pushes it onto a bounded ring; a background thread drains the ring in batches and POSTs them to the collector as OTLP/HTTP JSON. Export is fail-open: a full ring drops its oldest span and a failed POST drops the batch, so the collector never slows or fails a request.
The exporter thread is started by the first span a process records, and a pthread_atfork child hook forgets the parent's thread and spans, so every worker process exports its own spans.
Definition in file otel.c.
| #define OTEL_DEFAULT_ENDPOINT "http://localhost:4318/v1/traces" |
| const char * cwist_mw_otel_get_trace_id | ( | const cwist_http_request * | req | ) |
Trace id of the span cwist_mw_otel_trace() opened for req.
| req | The current request. |
traceparent, a fresh one otherwise), or NULL when req is not running behind the middleware on this thread. Definition at line 300 of file otel.c.
References cap.
| cwist_middleware_func cwist_mw_otel_trace | ( | const cwist_otel_cfg_t * | cfg | ) |
OpenTelemetry tracing middleware.
Records one SERVER span per request covering the rest of the chain, with the method, path, status and start/end time, and exports the spans to the collector as OTLP/HTTP JSON from a background thread in each worker process. A valid W3C traceparent header makes the span a child of the caller's span; otherwise a new trace starts.
Export is fail-open: a full queue drops its oldest span and a failed export drops the batch; requests are never slowed or failed by the collector.
There is one exporter per process: the first call fixes the configuration and later calls return the same middleware.
| cfg | Exporter configuration, or NULL for the defaults. |
Definition at line 272 of file otel.c.
References batch, cwist_otel_cfg_t::batch_size, cap, cwist_alloc_array(), cwist_free(), cwist_strdup(), cwist_otel_cfg_t::endpoint, endpoint, OTEL_DEFAULT_BATCH, OTEL_DEFAULT_ENDPOINT, OTEL_DEFAULT_QUEUE, OTEL_DEFAULT_SERVICE, cwist_otel_cfg_t::queue_cap, and cwist_otel_cfg_t::service_name.
| size_t batch |
Definition at line 54 of file otel.c.
Referenced by cwist_mw_otel_trace().
| size_t cap |
Definition at line 56 of file otel.c.
Referenced by __attribute__(), base64_encode(), cwist_accept_socket(), cwist_app_asset_add(), cwist_app_asset_add_file(), cwist_app_asset_prefix(), cwist_app_asset_url(), cwist_app_create(), cwist_app_destroy(), cwist_app_dispatch_memory(), cwist_app_dispatch_stream(), cwist_app_enable_openapi(), cwist_app_enable_swagger(), cwist_app_get_db(), cwist_app_get_db_pool(), cwist_app_get_redis_pool(), cwist_app_get_scheduler(), cwist_app_grpc_health(), cwist_app_grpc_health_set_status(), cwist_app_grpc_health_watchers(), cwist_app_grpc_reflection(), cwist_app_grpc_stream(), cwist_app_grpc_unary(), cwist_app_healthz(), cwist_app_http_handler(), cwist_app_http_handler_async(), cwist_app_listen_ex(), cwist_app_register_error_handler(), cwist_app_reload_tls(), cwist_app_req_bind_form(), cwist_app_req_bind_json(), cwist_app_set_session_max_age(), cwist_app_set_tls_groups(), cwist_app_static(), cwist_app_static_with_cache(), cwist_app_use(), cwist_app_use_db(), cwist_app_use_db_pool(), cwist_app_use_ech(), cwist_app_use_ex(), cwist_app_use_http2(), cwist_app_use_http3(), cwist_app_use_https(), cwist_app_use_https2(), cwist_app_use_https3(), cwist_app_use_nuke_db(), cwist_app_use_redis(), cwist_app_use_scheduler(), cwist_app_use_session(), cwist_app_ws(), cwist_app_ws_async(), cwist_app_ws_opt(), cwist_apply_profile(), cwist_assets_clone(), cwist_assets_destroy(), cwist_assets_match(), cwist_assets_respond(), cwist_async_abort(), cwist_async_defer(), cwist_async_dispatch_ack(), cwist_async_dispatch_take(), cwist_async_forget_handle(), cwist_async_forget_response(), cwist_async_record_pending(), cwist_async_release(), cwist_async_respond(), cwist_async_respond_with(), cwist_async_retain(), cwist_async_server_loop(), cwist_async_set_timeout(), cwist_async_wait_dispatched(), cwist_bdr_copy_get(), cwist_bdr_create(), cwist_bdr_destroy(), cwist_bdr_get(), cwist_bdr_get_pinned(), cwist_bdr_get_pinned_cursor(), cwist_bdr_put(), cwist_bdr_put_fixed(), cwist_bdr_put_revalidatable(), cwist_bdr_set_limits(), cwist_bdr_unpin(), cwist_bind_write_error_response(), cwist_config_create(), cwist_config_destroy(), cwist_config_get(), cwist_config_get_bool(), cwist_config_get_int(), cwist_config_load_env(), cwist_config_load_file(), cwist_config_set(), cwist_conn_registry_adopt(), cwist_conn_registry_pending_count(), cwist_conn_registry_sweep_all(), cwist_conn_registry_track(), cwist_conn_registry_untrack(), cwist_cookie_decode(), cwist_cookie_delete(), cwist_cookie_encode(), cwist_cookie_get(), cwist_cookie_parse(), cwist_cookie_set(), cwist_csrf_token(), cwist_curl_global_acquire(), cwist_curl_global_release(), cwist_db_crypt_open(), cwist_db_crypt_seal(), cwist_db_sync_pull(), cwist_db_sync_serve(), cwist_db_transfer_sqlite_to_socket(), cwist_dtls_bio_new(), cwist_dtls_ctx_new(), cwist_dtls_fingerprint(), cwist_dtls_generate_cert(), cwist_endpoint_has_extern(), cwist_error_dispose(), cwist_error_is_ok_extern(), cwist_fast_monotonic_sec(), cwist_flash_get(), cwist_flash_peek(), cwist_flash_pop_all_json(), cwist_gc_scope_track(), cwist_gc_scope_untrack(), cwist_generate_hash_seed(), cwist_get_client_ip_from_fd(), cwist_graphql_add_mutation(), cwist_graphql_add_query(), cwist_graphql_event_source_add_topic(), cwist_graphql_event_source_destroy(), cwist_graphql_execute(), cwist_graphql_parse_subscription(), cwist_graphql_publish(), cwist_graphql_schema_create(), cwist_graphql_serve(), cwist_graphql_ws_add_subscription(), cwist_graphql_ws_attach(), cwist_graphql_ws_create(), cwist_graphql_ws_destroy(), cwist_grpc_call_cancel(), cwist_grpc_call_destroy(), cwist_grpc_call_finish(), cwist_grpc_call_recv(), cwist_grpc_call_retry_pushback_ms(), cwist_grpc_call_start(), cwist_grpc_call_start_ex(), cwist_grpc_channel_apply_service_config_json(), cwist_grpc_channel_call_attempts(), cwist_grpc_channel_call_cancel(), cwist_grpc_channel_call_destroy(), cwist_grpc_channel_call_finish(), cwist_grpc_channel_call_recv(), cwist_grpc_channel_call_start(), cwist_grpc_channel_close(), cwist_grpc_channel_connect(), cwist_grpc_channel_get_state(), cwist_grpc_channel_unary(), cwist_grpc_client_close(), cwist_grpc_client_connect(), cwist_grpc_client_dead(), cwist_grpc_decode_message(), cwist_grpc_decode_next_message(), cwist_grpc_decoder_destroy(), cwist_grpc_decoder_feed(), cwist_grpc_decoder_init(), cwist_grpc_encode_message(), cwist_grpc_metadata_get_binary(), cwist_grpc_parse_timeout(), cwist_grpc_routes_clone(), cwist_grpc_routes_destroy(), cwist_grpc_set_error(), cwist_grpc_set_response(), cwist_grpc_stream_cancelled(), cwist_grpc_stream_close(), cwist_grpc_stream_deadline_remaining_ms(), cwist_grpc_stream_recv(), cwist_grpc_stream_send(), cwist_grpc_stream_set_retry_pushback(), cwist_h2_async_queue_acquire(), cwist_h2_async_queue_enqueue(), cwist_h2_async_queue_release(), cwist_heal_result_free(), cwist_healthz_register(), cwist_healthz_run(), cwist_healthz_unregister(), cwist_http2_flow_control_add_send_window(), cwist_http2_flow_control_consume(), cwist_http2_flow_control_init(), cwist_http2_flow_control_maybe_window_update(), cwist_http2_flow_control_pacing_allowance(), cwist_http2_flow_control_receive(), cwist_http2_flow_control_reserve_send(), cwist_http2_flow_control_update_rtt(), cwist_http2_push_resource(), cwist_http2_serve_connection(), cwist_http2_serve_connection_ex(), cwist_http2_stream_flow_control_add_send_window(), cwist_http2_stream_flow_control_consume(), cwist_http2_stream_flow_control_init(), cwist_http2_stream_flow_control_maybe_window_update(), cwist_http2_stream_flow_control_receive(), cwist_http2_stream_send_data(), cwist_http2_stream_send_headers(), cwist_http2_stream_send_trailers(), cwist_http3_client_create(), cwist_http3_client_destroy(), cwist_http3_client_enable_0rtt(), cwist_http3_client_recv_datagram(), cwist_http3_client_request(), cwist_http3_client_send_datagram(), cwist_http3_client_set_ca_bundle(), cwist_http3_client_set_insecure(), cwist_http3_client_set_retry_delay_ms(), cwist_http3_client_set_server(), cwist_http3_destroy_context(), cwist_http3_init_context(), cwist_http3_init_context_ephemeral(), cwist_http3_method_is_idempotent(), cwist_http3_normalize_response_header_name(), cwist_http3_push_resource(), cwist_http3_reload_context(), cwist_http3_response_header_value_is_safe(), cwist_http3_send_datagram(), cwist_http3_server_loop(), cwist_http3_set_early_data(), cwist_http3_set_handshake_timeout(), cwist_http3_set_idle_timeout(), cwist_http3_set_noprogress_timeout(), cwist_http3_set_ping_period(), cwist_http3_set_stream_priority(), cwist_http_async_close_orphan(), cwist_http_async_conn_fill(), cwist_http_async_rearm(), cwist_http_async_send_response(), cwist_http_client_create(), cwist_http_client_destroy(), cwist_http_client_enable_altsvc(), cwist_http_client_request(), cwist_http_client_set_altsvc_db(), cwist_http_client_set_ca_bundle(), cwist_http_client_set_follow_redirects(), cwist_http_client_set_timeout_ms(), cwist_http_coalesce_append(), cwist_http_coalesce_error_response(), cwist_http_coalesce_flush(), cwist_http_coalesce_flush_blocking(), cwist_http_continuation_shed_count(), cwist_http_format_date(), cwist_http_header_add(), cwist_http_header_free_all(), cwist_http_header_get(), cwist_http_header_remove(), cwist_http_inflight_count(), cwist_http_live_idle_enter(), cwist_http_live_idle_leave(), cwist_http_parse_date(), cwist_http_parse_request(), cwist_http_parse_request_len(), cwist_http_pool_destroy(), cwist_http_pool_init(), cwist_http_pool_init_mode(), cwist_http_pool_limit_core(), cwist_http_pool_submit(), cwist_http_pool_submit_async(), cwist_http_reactor_generation(), cwist_http_reactor_post_live(), cwist_http_receive_request(), cwist_http_receive_request_nb(), cwist_http_request_create(), cwist_http_request_fragment_target(), cwist_http_request_wants_fragment(), cwist_http_response_add_oob(), cwist_http_response_create(), cwist_http_response_destroy(), cwist_http_response_html_redirect(), cwist_http_response_send_file(), cwist_http_response_serialize(), cwist_http_response_set_alt_svc(), cwist_http_response_set_body_ptr(), cwist_http_response_set_html(), cwist_http_response_set_view(), cwist_http_response_stream_end(), cwist_http_response_stream_write(), cwist_http_send_error_response(), cwist_http_send_response(), cwist_http_send_response_async(), cwist_http_send_response_coalesced(), cwist_http_send_response_head(), cwist_http_send_speculative(), cwist_http_sendmsg_speculative(), cwist_http_serialize_headers(), cwist_http_server_loop(), cwist_http_status_reason(), cwist_http_string_to_method(), cwist_http_string_to_method_len(), cwist_http_stringify_response(), cwist_https_accept(), cwist_https_conn_idle(), cwist_https_destroy_context(), cwist_https_dispatch(), cwist_https_idle_timeout_ms(), cwist_https_init_context(), cwist_https_init_context_with_options(), cwist_https_park(), cwist_https_receive_request(), cwist_https_reload_context(), cwist_https_send_response(), cwist_https_send_response_head(), cwist_https_server_loop(), cwist_https_tls_ciphers_aes128_gcm_total(), cwist_https_tls_ciphers_aes256_gcm_total(), cwist_https_tls_ciphers_chacha20_total(), cwist_https_tls_ciphers_other_total(), cwist_https_tls_connections_active(), cwist_https_tls_handshakes_resumed_total(), cwist_https_tls_handshakes_tls12_total(), cwist_https_tls_handshakes_tls13_total(), cwist_https_tls_handshakes_total(), cwist_ice_random_creds(), cwist_ice_stun_build_request(), cwist_ice_stun_build_response(), cwist_ice_stun_get_remote_ufrag(), cwist_ice_stun_parse_response(), cwist_ice_stun_sign_request(), cwist_ice_stun_validate_request(), cwist_io_queue_create(), cwist_io_queue_destroy(), cwist_io_queue_run(), cwist_io_queue_stop(), cwist_io_queue_submit(), cwist_is_ram_critical(), cwist_job_attempts(), cwist_job_destroy(), cwist_job_id(), cwist_job_payload(), cwist_job_queue_ack(), cwist_job_queue_claim(), cwist_job_queue_create_nats(), cwist_job_queue_create_redis(), cwist_job_queue_dead_count(), cwist_job_queue_destroy(), cwist_job_queue_enqueue(), cwist_job_queue_nack(), cwist_job_type(), cwist_json_add_int(), cwist_json_builder_create(), cwist_json_get_raw(), cwist_json_heal(), cwist_json_schema_align(), cwist_jwt_chunks_free(), cwist_jwt_claims_destroy(), cwist_jwt_claims_get(), cwist_jwt_join_chunks(), cwist_jwt_sign(), cwist_jwt_sign_chunks(), cwist_jwt_sign_ed25519(), cwist_jwt_sign_es256(), cwist_jwt_split_chunks(), cwist_jwt_verify(), cwist_jwt_verify_chunks(), cwist_jwt_verify_ed25519(), cwist_jwt_verify_es256(), cwist_log_async_active(), cwist_log_async_flush(), cwist_log_async_start(), cwist_log_async_stop(), cwist_log_async_submit(), cwist_logger_create(), cwist_logger_debug(), cwist_logger_error(), cwist_logger_info(), cwist_logger_log(), cwist_logger_warn(), cwist_lwip_close(), cwist_lwip_config_init(), cwist_lwip_listen(), cwist_lwip_tls_create(), cwist_lwip_tls_destroy(), cwist_make_socket_ipv4(), cwist_metric_add(), cwist_metric_inc(), cwist_metric_load(), cwist_metric_observe(), cwist_metric_set(), cwist_metrics_registry(), cwist_metrics_render_prometheus(), cwist_metrics_reset(), cwist_metrics_serve_http(), cwist_mtls_CRYPTO_memcmp(), cwist_mtls_ERR_error_string_n(), cwist_mtls_ERR_get_error(), cwist_mtls_EVP_CIPHER_CTX_free(), cwist_mtls_EVP_CIPHER_CTX_new(), cwist_mtls_EVP_DecryptFinal_ex(), cwist_mtls_EVP_DecryptInit_ex(), cwist_mtls_EVP_DecryptUpdate(), cwist_mtls_EVP_EncryptFinal_ex(), cwist_mtls_EVP_EncryptInit_ex(), cwist_mtls_EVP_EncryptUpdate(), cwist_mtls_HMAC(), cwist_mtls_HMAC_CTX_free(), cwist_mtls_HMAC_CTX_new(), cwist_mtls_HMAC_Final(), cwist_mtls_HMAC_Init_ex(), cwist_mtls_HMAC_Update(), cwist_mtls_OPENSSL_cleanse(), cwist_mtls_RAND_bytes(), cwist_mtls_SSL_CTX_check_private_key(), cwist_mtls_SSL_CTX_free(), cwist_mtls_SSL_CTX_get_ex_data(), cwist_mtls_SSL_CTX_get_ex_new_index(), cwist_mtls_SSL_CTX_get_min_proto_version(), cwist_mtls_SSL_CTX_new(), cwist_mtls_SSL_CTX_sess_set_cache_size(), cwist_mtls_SSL_CTX_set1_groups_list(), cwist_mtls_SSL_CTX_set_alpn_protos(), cwist_mtls_SSL_CTX_set_alpn_select_cb(), cwist_mtls_SSL_CTX_set_cipher_list(), cwist_mtls_SSL_CTX_set_ciphersuites(), cwist_mtls_SSL_CTX_set_default_verify_paths(), cwist_mtls_SSL_CTX_set_ex_data(), cwist_mtls_SSL_CTX_set_min_proto_version(), cwist_mtls_SSL_CTX_set_mode(), cwist_mtls_SSL_CTX_set_options(), cwist_mtls_SSL_CTX_set_session_cache_mode(), cwist_mtls_SSL_CTX_set_session_id_context(), cwist_mtls_SSL_CTX_set_timeout(), cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb(), cwist_mtls_SSL_CTX_set_verify(), cwist_mtls_SSL_CTX_use_certificate_chain_file(), cwist_mtls_SSL_CTX_use_certificate_file(), cwist_mtls_SSL_CTX_use_PrivateKey_file(), cwist_mtls_SSL_free(), cwist_mtls_SSL_get0_alpn_selected(), cwist_mtls_SSL_get_cipher_name(), cwist_mtls_SSL_get_error(), cwist_mtls_SSL_get_SSL_CTX(), cwist_mtls_SSL_new(), cwist_mtls_SSL_pending(), cwist_mtls_SSL_read(), cwist_mtls_SSL_select_next_proto(), cwist_mtls_SSL_session_reused(), cwist_mtls_SSL_set_alpn_protos(), cwist_mtls_SSL_set_fd(), cwist_mtls_SSL_set_tlsext_host_name(), cwist_mtls_SSL_shutdown(), cwist_mtls_SSL_version(), cwist_mtls_SSL_write(), cwist_multipart_extract_boundary(), cwist_multipart_parse(), cwist_multipart_result_destroy(), cwist_mux_find_route(), cwist_mux_group_create(), cwist_mux_group_destroy(), cwist_mux_group_handle(), cwist_mux_handle(), cwist_mux_route_use(), cwist_mux_router_create(), cwist_mux_router_destroy(), cwist_mux_serve(), cwist_mw_access_log(), cwist_mw_compress(), cwist_mw_csrf(), cwist_mw_jwt_auth(), cwist_mw_jwt_get_claims(), cwist_mw_metrics_handler(), cwist_mw_otel_get_trace_id(), cwist_mw_otel_trace(), cwist_mw_rate_limit_ip(), cwist_mw_rate_limit_ip_redis(), cwist_mw_rate_limit_reset(), cwist_mw_request_id(), cwist_mw_request_id_handler(), cwist_mw_session(), cwist_nats_connect(), cwist_nats_destroy(), cwist_nats_dispatch(), cwist_nats_native(), cwist_nats_publish_string(), cwist_nats_subscribe(), cwist_openapi_annotate(), cwist_orm_close_socket(), cwist_orm_commit(), cwist_orm_delete(), cwist_orm_exec(), cwist_orm_immediate_commit(), cwist_orm_insert(), cwist_orm_insert_returning_i64(), cwist_orm_insert_returning_int(), cwist_orm_insert_returning_json(), cwist_orm_insert_returning_llong(), cwist_orm_insert_returning_long(), cwist_orm_open_socket(), cwist_orm_query(), cwist_orm_query_typed(), cwist_orm_result_cell(), cwist_orm_result_column_index(), cwist_orm_result_free(), cwist_orm_rollback(), cwist_orm_select(), cwist_orm_select_one_double(), cwist_orm_select_one_i64(), cwist_orm_select_one_int(), cwist_orm_select_one_json(), cwist_orm_select_one_llong(), cwist_orm_select_one_long(), cwist_orm_select_one_string(), cwist_orm_socketpair_cloexec(), cwist_orm_update(), cwist_orm_use_dialect(), cwist_pb_read_field(), cwist_pb_read_varint(), cwist_pb_reader_init(), cwist_pb_skip_field(), cwist_pb_write_bool_field(), cwist_pb_write_bytes_field(), cwist_pb_write_double_field(), cwist_pb_write_fixed32_field(), cwist_pb_write_fixed64_field(), cwist_pb_write_float_field(), cwist_pb_write_int64_field(), cwist_pb_write_key(), cwist_pb_write_raw32(), cwist_pb_write_raw64(), cwist_pb_write_string_field(), cwist_pb_write_uint64_field(), cwist_pb_write_varint(), cwist_pb_writer_free(), cwist_pb_writer_init(), cwist_pb_writer_reserve(), cwist_pb_zigzag_decode(), cwist_pb_zigzag_encode(), cwist_query_map_clear(), cwist_query_map_create(), cwist_query_map_create_in_arena(), cwist_query_map_delete(), cwist_query_map_destroy(), cwist_query_map_foreach(), cwist_query_map_get(), cwist_query_map_parse(), cwist_query_map_set(), cwist_rdbms_mount_runtime(), cwist_rdbms_probe_port(), cwist_reactor_add(), cwist_reactor_add_out(), cwist_reactor_create(), cwist_reactor_del(), cwist_reactor_destroy(), cwist_reactor_mod(), cwist_reactor_post(), cwist_reactor_run(), cwist_reactor_stop(), cwist_reactor_timer_arm(), cwist_redis_auth(), cwist_redis_close(), cwist_redis_command(), cwist_redis_command_argv(), cwist_redis_command_argv_reply(), cwist_redis_connect(), cwist_redis_del(), cwist_redis_expire(), cwist_redis_get(), cwist_redis_pool_command_argv(), cwist_redis_pool_command_argv_reply_timeout(), cwist_redis_pool_create(), cwist_redis_pool_del(), cwist_redis_pool_destroy(), cwist_redis_pool_get(), cwist_redis_pool_publish(), cwist_redis_pool_set(), cwist_redis_pool_setex(), cwist_redis_publish(), cwist_redis_reply_free(), cwist_redis_select(), cwist_redis_set(), cwist_redis_setex(), cwist_redis_subscribe(), cwist_reuseport_enabled(), cwist_sanitize_html(), cwist_sched_p2c_select_worker(), cwist_scheduler_cancel_pending(), cwist_scheduler_create(), cwist_scheduler_destroy(), cwist_scheduler_pending_count(), cwist_scheduler_schedule(), cwist_sctp_assoc_established(), cwist_sctp_conn_close(), cwist_sctp_conn_drain(), cwist_sctp_conn_input(), cwist_sctp_conn_open(), cwist_sctp_global_init(), cwist_sctp_send(), cwist_sctp_tick(), cwist_sdp_parse(), cwist_sdp_write_answer(), cwist_sdp_write_offer(), cwist_seq_assembler_create_limited(), cwist_seq_assembler_destroy(), cwist_seq_assembler_feed(), cwist_seq_assembler_get_data(), cwist_seq_assembler_is_complete(), cwist_seq_assembler_recovery_targets(), cwist_seq_assembler_reset(), cwist_seq_auth_context_create(), cwist_seq_auth_context_destroy(), cwist_seq_auth_mark_complete(), cwist_seq_auth_random(), cwist_seq_auth_unwrap(), cwist_seq_auth_wrap(), cwist_seq_chunk_parse(), cwist_seq_message_free(), cwist_seq_split(), cwist_session_commit(), cwist_session_get(), cwist_session_start(), cwist_shutdown_install_handlers(), cwist_shutdown_request(), cwist_shutdown_reset(), cwist_shutdown_restore_handlers(), cwist_sse_response_comment(), cwist_sse_response_event(), cwist_sse_stream_close(), cwist_sse_stream_comment(), cwist_sse_stream_open(), cwist_sse_stream_send(), cwist_sstring_adopt_len(), cwist_sstring_adopt_region(), cwist_sstring_append(), cwist_sstring_append_escaped(), cwist_sstring_append_len(), cwist_sstring_append_sstring(), cwist_sstring_append_sstring_escaped(), cwist_sstring_assign(), cwist_sstring_assign_len(), cwist_sstring_borrow(), cwist_sstring_change_size(), cwist_sstring_compare(), cwist_sstring_compare_sstring(), cwist_sstring_copy(), cwist_sstring_copy_sstring(), cwist_sstring_create(), cwist_sstring_destroy(), cwist_sstring_init(), cwist_sstring_init_escaped(), cwist_sstring_ltrim(), cwist_sstring_rtrim(), cwist_sstring_seek(), cwist_sstring_substr(), cwist_sstring_trim(), cwist_stream_req_begin(), cwist_stream_req_dispatch(), cwist_stream_req_feed(), cwist_template_render(), cwist_template_render_file(), cwist_test_client_clear_cookies(), cwist_test_client_create(), cwist_test_client_delete(), cwist_test_client_get(), cwist_test_client_get_cookie(), cwist_test_client_post_json(), cwist_test_client_post_multipart(), cwist_test_client_set_cookie(), cwist_tls_apply_pqc_layer(), cwist_tls_autoload_intermediates(), cwist_tls_sess_cache_size(), cwist_url_for(), cwist_waf_is_safe(), cwist_webrtc_conn_buffered_amount(), cwist_webrtc_conn_close(), cwist_webrtc_conn_on_channel_open(), cwist_webrtc_conn_release(), cwist_webrtc_conn_retain(), cwist_webrtc_conn_sctp_out(), cwist_webrtc_conn_send(), cwist_webrtc_connect(), cwist_webrtc_ctx_connection_count(), cwist_webrtc_ctx_free(), cwist_webrtc_ctx_new(), cwist_webrtc_ctx_new_on(), cwist_webrtc_ctx_set_channel_handler(), cwist_webrtc_ctx_set_close_handler(), cwist_webrtc_ctx_set_message_handler(), cwist_webrtc_handle_offer(), cwist_websocket_async_attach(), cwist_websocket_async_attach_ex(), cwist_websocket_async_close(), cwist_websocket_async_close_code(), cwist_websocket_close(), cwist_websocket_frame_destroy(), cwist_websocket_receive(), cwist_websocket_receive_sequenced(), cwist_websocket_send(), cwist_websocket_send_sequenced(), cwist_websocket_upgrade(), cwist_websocket_upgrade_response(), cwist_webtransport_close_session(), cwist_webtransport_close_stream(), cwist_webtransport_flush(), cwist_webtransport_max_datagram_size(), cwist_webtransport_open_bidi_stream(), cwist_webtransport_open_uni_stream(), cwist_webtransport_read(), cwist_webtransport_send_datagram(), cwist_webtransport_write(), cwist_zod_parse(), cwist_zod_print_errors(), cwist_zod_validate(), get_cpu_cores(), get_optimal_thread_count(), h2_decode_integer(), h2_decode_string(), h2_encode_integer(), h2_encode_string(), h2_huffman_decode(), h2_static_header(), headers_have_content_length(), https_pool_destroy(), https_pool_init(), https_pool_submit(), https_pool_submit_conn(), https_pool_submit_ready(), make_error(), quic_flow_control_adjust_windows(), quic_flow_control_consume_stream(), quic_flow_control_init(), quic_flow_control_maybe_send_max_data(), quic_flow_control_maybe_send_max_stream_data(), quic_flow_control_update_rtt(), quic_stream_fc_init(), session_arena_alloc(), session_manager_init(), session_manager_reset(), session_shared_alloc(), session_shared_dec(), session_shared_inc(), sha1(), and siphash24().
| size_t count |
Definition at line 58 of file otel.c.
Referenced by cwist_alloc_array(), cwist_app_healthz(), cwist_css_bundle(), cwist_db_pool_in_use(), cwist_flash_pop_all_json(), cwist_healthz_run(), cwist_http_server_loop(), cwist_jwt_chunks_free(), cwist_jwt_join_chunks(), cwist_jwt_split_chunks(), cwist_jwt_verify_chunks(), cwist_metrics_render_prometheus(), cwist_migrate_down(), cwist_migrate_up(), cwist_redis_command_argv(), cwist_redis_command_argv_reply(), cwist_redis_subscribe(), get_cpu_cores(), get_optimal_thread_count(), and h2_static_header().
| char* endpoint |
Definition at line 52 of file otel.c.
Referenced by cwist_mw_otel_trace().
| size_t head |
Definition at line 57 of file otel.c.
Referenced by cwist_assets_clone(), cwist_http_header_add(), cwist_http_header_free_all(), cwist_http_header_get(), cwist_http_header_remove(), cwist_reactor_post(), cwist_reactor_run(), cwist_stream_req_begin(), cwist_webrtc_conn_send(), cwist_websocket_receive(), and cwist_websocket_send().