11// Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
22// SPDX-License-Identifier: Apache-2.0
33
4-
54#ifndef DDOG_SIDECAR_H
65#define DDOG_SIDECAR_H
76
@@ -150,23 +149,20 @@ ddog_MaybeError ddog_sidecar_telemetry_addIntegration(struct ddog_SidecarTranspo
150149 ddog_CharSlice integration_version ,
151150 bool integration_enabled );
152151
153- /**
154- * Registers a service and flushes any queued actions.
155- */
156- ddog_MaybeError ddog_sidecar_telemetry_flushServiceData (struct ddog_SidecarTransport * * transport ,
157- const struct ddog_InstanceId * instance_id ,
158- const ddog_QueueId * queue_id ,
159- const struct ddog_RuntimeMetadata * runtime_meta ,
160- ddog_CharSlice service_name ,
161- ddog_CharSlice env_name );
162-
163152/**
164153 * Enqueues a list of actions to be performed.
165154 */
166155ddog_MaybeError ddog_sidecar_lifecycle_end (struct ddog_SidecarTransport * * transport ,
167156 const struct ddog_InstanceId * instance_id ,
168157 const ddog_QueueId * queue_id );
169158
159+ /**
160+ * Enqueues a list of actions to be performed.
161+ */
162+ ddog_MaybeError ddog_sidecar_application_remove (struct ddog_SidecarTransport * * transport ,
163+ const struct ddog_InstanceId * instance_id ,
164+ const ddog_QueueId * queue_id );
165+
170166/**
171167 * Flushes the telemetry data.
172168 */
@@ -187,6 +183,7 @@ ddog_MaybeError ddog_sidecar_session_set_config(struct ddog_SidecarTransport **t
187183 const struct ddog_Endpoint * agent_endpoint ,
188184 const struct ddog_Endpoint * dogstatsd_endpoint ,
189185 ddog_CharSlice language ,
186+ ddog_CharSlice language_version ,
190187 ddog_CharSlice tracer_version ,
191188 uint32_t flush_interval_milliseconds ,
192189 uint32_t remote_config_poll_interval_millis ,
@@ -200,6 +197,7 @@ ddog_MaybeError ddog_sidecar_session_set_config(struct ddog_SidecarTransport **t
200197 uintptr_t remote_config_products_count ,
201198 const enum ddog_RemoteConfigCapabilities * remote_config_capabilities ,
202199 uintptr_t remote_config_capabilities_count ,
200+ bool remote_config_enabled ,
203201 bool is_fork );
204202
205203/**
@@ -251,13 +249,13 @@ ddog_MaybeError ddog_sidecar_send_debugger_diagnostics(struct ddog_SidecarTransp
251249 ddog_QueueId queue_id ,
252250 struct ddog_DebuggerPayload diagnostics_payload );
253251
254- ddog_MaybeError ddog_sidecar_set_remote_config_data (struct ddog_SidecarTransport * * transport ,
255- const struct ddog_InstanceId * instance_id ,
256- const ddog_QueueId * queue_id ,
257- ddog_CharSlice service_name ,
258- ddog_CharSlice env_name ,
259- ddog_CharSlice app_version ,
260- const struct ddog_Vec_Tag * global_tags );
252+ ddog_MaybeError ddog_sidecar_set_universal_service_tags (struct ddog_SidecarTransport * * transport ,
253+ const struct ddog_InstanceId * instance_id ,
254+ const ddog_QueueId * queue_id ,
255+ ddog_CharSlice service_name ,
256+ ddog_CharSlice env_name ,
257+ ddog_CharSlice app_version ,
258+ const struct ddog_Vec_Tag * global_tags );
261259
262260/**
263261 * Dumps the current state of the sidecar.
@@ -348,9 +346,140 @@ struct ddog_AgentInfoReader *ddog_get_agent_info_reader(const struct ddog_Endpoi
348346 */
349347ddog_CharSlice ddog_get_agent_info_env (struct ddog_AgentInfoReader * reader , bool * changed );
350348
349+ void ddog_send_traces_to_sidecar (ddog_TracesBytes * traces ,
350+ struct ddog_SenderParameters * parameters );
351+
351352/**
352353 * Drops the agent info reader.
353354 */
354355void ddog_drop_agent_info_reader (struct ddog_AgentInfoReader * );
355356
357+ ddog_TracesBytes * ddog_get_traces (void );
358+
359+ void ddog_free_traces (ddog_TracesBytes * _traces );
360+
361+ uintptr_t ddog_get_traces_size (const ddog_TracesBytes * traces );
362+
363+ ddog_TraceBytes * ddog_get_trace (ddog_TracesBytes * traces , uintptr_t index );
364+
365+ ddog_TraceBytes * ddog_traces_new_trace (ddog_TracesBytes * traces );
366+
367+ uintptr_t ddog_get_trace_size (const ddog_TraceBytes * trace );
368+
369+ ddog_SpanBytes * ddog_get_span (ddog_TraceBytes * trace , uintptr_t index );
370+
371+ ddog_SpanBytes * ddog_trace_new_span (ddog_TraceBytes * trace );
372+
373+ ddog_SpanBytes * ddog_trace_new_span_with_capacities (ddog_TraceBytes * trace ,
374+ uintptr_t meta_size ,
375+ uintptr_t metrics_size );
376+
377+ ddog_CharSlice ddog_span_debug_log (const ddog_SpanBytes * span );
378+
379+ void ddog_free_charslice (ddog_CharSlice slice );
380+
381+ void ddog_set_span_service (ddog_SpanBytes * span , ddog_CharSlice slice );
382+
383+ ddog_CharSlice ddog_get_span_service (ddog_SpanBytes * span );
384+
385+ void ddog_set_span_name (ddog_SpanBytes * span , ddog_CharSlice slice );
386+
387+ ddog_CharSlice ddog_get_span_name (ddog_SpanBytes * span );
388+
389+ void ddog_set_span_resource (ddog_SpanBytes * span , ddog_CharSlice slice );
390+
391+ ddog_CharSlice ddog_get_span_resource (ddog_SpanBytes * span );
392+
393+ void ddog_set_span_type (ddog_SpanBytes * span , ddog_CharSlice slice );
394+
395+ ddog_CharSlice ddog_get_span_type (ddog_SpanBytes * span );
396+
397+ void ddog_set_span_trace_id (ddog_SpanBytes * span , uint64_t value );
398+
399+ uint64_t ddog_get_span_trace_id (ddog_SpanBytes * span );
400+
401+ void ddog_set_span_id (ddog_SpanBytes * span , uint64_t value );
402+
403+ uint64_t ddog_get_span_id (ddog_SpanBytes * span );
404+
405+ void ddog_set_span_parent_id (ddog_SpanBytes * span , uint64_t value );
406+
407+ uint64_t ddog_get_span_parent_id (ddog_SpanBytes * span );
408+
409+ void ddog_set_span_start (ddog_SpanBytes * span , int64_t value );
410+
411+ int64_t ddog_get_span_start (ddog_SpanBytes * span );
412+
413+ void ddog_set_span_duration (ddog_SpanBytes * span , int64_t value );
414+
415+ int64_t ddog_get_span_duration (ddog_SpanBytes * span );
416+
417+ void ddog_set_span_error (ddog_SpanBytes * span , int32_t value );
418+
419+ int32_t ddog_get_span_error (ddog_SpanBytes * span );
420+
421+ void ddog_add_span_meta (ddog_SpanBytes * span , ddog_CharSlice key , ddog_CharSlice value );
422+
423+ void ddog_del_span_meta (ddog_SpanBytes * span , ddog_CharSlice key );
424+
425+ ddog_CharSlice ddog_get_span_meta (ddog_SpanBytes * span , ddog_CharSlice key );
426+
427+ bool ddog_has_span_meta (ddog_SpanBytes * span , ddog_CharSlice key );
428+
429+ ddog_CharSlice * ddog_span_meta_get_keys (ddog_SpanBytes * span , uintptr_t * out_count );
430+
431+ void ddog_add_span_metrics (ddog_SpanBytes * span , ddog_CharSlice key , double val );
432+
433+ void ddog_del_span_metrics (ddog_SpanBytes * span , ddog_CharSlice key );
434+
435+ bool ddog_get_span_metrics (ddog_SpanBytes * span , ddog_CharSlice key , double * result );
436+
437+ bool ddog_has_span_metrics (ddog_SpanBytes * span , ddog_CharSlice key );
438+
439+ ddog_CharSlice * ddog_span_metrics_get_keys (ddog_SpanBytes * span , uintptr_t * out_count );
440+
441+ void ddog_add_span_meta_struct (ddog_SpanBytes * span , ddog_CharSlice key , ddog_CharSlice val );
442+
443+ void ddog_del_span_meta_struct (ddog_SpanBytes * span , ddog_CharSlice key );
444+
445+ ddog_CharSlice ddog_get_span_meta_struct (ddog_SpanBytes * span , ddog_CharSlice key );
446+
447+ bool ddog_has_span_meta_struct (ddog_SpanBytes * span , ddog_CharSlice key );
448+
449+ ddog_CharSlice * ddog_span_meta_struct_get_keys (ddog_SpanBytes * span , uintptr_t * out_count );
450+
451+ void ddog_span_free_keys_ptr (ddog_CharSlice * keys_ptr , uintptr_t count );
452+
453+ ddog_SpanLinkBytes * ddog_span_new_link (ddog_SpanBytes * span );
454+
455+ void ddog_set_link_tracestate (ddog_SpanLinkBytes * link , ddog_CharSlice slice );
456+
457+ void ddog_set_link_trace_id (ddog_SpanLinkBytes * link , uint64_t value );
458+
459+ void ddog_set_link_trace_id_high (ddog_SpanLinkBytes * link , uint64_t value );
460+
461+ void ddog_set_link_span_id (ddog_SpanLinkBytes * link , uint64_t value );
462+
463+ void ddog_set_link_flags (ddog_SpanLinkBytes * link , uint32_t value );
464+
465+ void ddog_add_link_attributes (ddog_SpanLinkBytes * link , ddog_CharSlice key , ddog_CharSlice val );
466+
467+ ddog_SpanEventBytes * ddog_span_new_event (ddog_SpanBytes * span );
468+
469+ void ddog_set_event_name (ddog_SpanEventBytes * event , ddog_CharSlice slice );
470+
471+ void ddog_set_event_time (ddog_SpanEventBytes * event , uint64_t val );
472+
473+ void ddog_add_event_attributes_str (ddog_SpanEventBytes * event ,
474+ ddog_CharSlice key ,
475+ ddog_CharSlice val );
476+
477+ void ddog_add_event_attributes_bool (ddog_SpanEventBytes * event , ddog_CharSlice key , bool val );
478+
479+ void ddog_add_event_attributes_int (ddog_SpanEventBytes * event , ddog_CharSlice key , int64_t val );
480+
481+ void ddog_add_event_attributes_float (ddog_SpanEventBytes * event , ddog_CharSlice key , double val );
482+
483+ ddog_CharSlice ddog_serialize_trace_into_c_string (ddog_TraceBytes * trace );
484+
356485#endif /* DDOG_SIDECAR_H */
0 commit comments