Si aún no has leído las instrucciones de configuración, empieza por las Instrucciones de configuración de C++.

Creación de tramos (spans)

Para instrumentar manualmente un método:

{
  // Create a root span for the current request.
  auto root_span = tracer.create_span();
  root_span.set_name("get_ingredients");
  // Set a resource name for the root span.
  root_span.set_resource_name("bologna_sandwich");
  // Create a child span with the root span as its parent.
  auto child_span = root_span.create_child();
  child_span.set_name("cache_lookup");
  // Set a resource name for the child span.
  child_span.set_resource_name("ingredients.bologna_sandwich");
  // Spans can be finished at an explicit time ...
  child_span.set_end_time(std::chrono::steady_clock::now());
} // ... or implicitly when the destructor is invoked.
  // For example, root_span finishes here.

Añadir etiquetas (tags)

Añade etiquetas de tramos personalizadas a tus tramos para personalizar tu capacidad de observación en Datadog. Las etiquetas de tramos se aplican a tus trazas entrantes, lo que te permite correlacionar el comportamiento observado con información al nivel del código como el nivel de comercio, el importe del pago o el ID de usuario.

Nota que algunas etiquetas de Datadog son necesarias para el etiquetado de servicio unificado.

Manualmente

Añade etiquetas directamente a un objeto de tramo llamando a Span::set_tag. Por ejemplo:

// Add tags directly to a span by calling `Span::set_tag`
auto span = tracer.create_span();
span.set_tag("key must be string", "value must also be a string");

// Or, add tags by setting a `SpanConfig`
datadog::tracing::SpanConfig opts;
opts.tags.emplace("team", "apm-proxy");
auto span2 = tracer.create_span(opts);

Variable de entorno

Para configurar etiquetas en todos tus tramos, configura la variable de entorno DD_TAGS como una lista de pares de key:value separados por comas.

export DD_TAGS=team:apm-proxy,key:value

Manualmente

datadog::tracing::TracerConfig tracer_config;
tracer_config.tags = {
  {"team", "apm-proxy"},
  {"apply", "on all spans"}
};

const auto validated_config = datadog::tracing::finalize_config(tracer_config);
auto tracer = datadog::tracing::Tracer(*validated_config);

// All new spans will have contains tags defined in `tracer_config.tags`
auto span = tracer.create_span();

Configurar errores en un tramo

Para asociar un tramo a un error, define una o varias etiquetas relacionadas con el error en el tramo. Por ejemplo:

span.set_error(true);

Añade información más específica sobre el error configurando cualquier combinación de error.message, error.stack o error.type utilizando respectivamente Span::set_error_message, Span::set_error_stack y Span::set_error_type. Para obtener más información sobre las etiquetas de errores, consulta Error Tracking.

Ejemplo de añadir una combinación de etiquetas de errores:

// Associate this span with the "bad file descriptor" error from the standard
// library.
span.set_error_message("error");
span.set_error_stack("[EBADF] invalid file");
span.set_error_type("errno");
El uso de cualquiera de `Span::set_error_*` da lugar a una llamada subyacente a `Span::set_error(true)`.

Para anular un error en un tramo, configura Span::set_error en false, lo que elimina cualquier combinación de Span::set_error_stack, Span::set_error_type o Span::set_error_message.

// Clear any error information associated with this span.
span.set_error(false);

Propagación del contexto con extracción e inserción de cabeceras

Puedes configurar la propagación del contexto para trazas distribuidas insertando y extrayendo cabeceras. Lee Propagación del contexto de trazas para obtener información.

Filtrado de recursos

Se pueden excluir trazas en función del nombre del recurso, para eliminar el tráfico Synthetic como las comprobaciones de estado a partir del envío de trazas y la influencia en las métricas de trazas. Para encontrar más información sobre esta y otras configuraciones de seguridad y ajuste, consulta la página Seguridad.

Referencias adicionales

PREVIEWING: guacbot/translation-pipeline