Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions content/es/data_streams/setup/language/java.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
aliases:
- /es/data_streams/java
further_reading:
- link: /integrations/kafka/
tag: Documentación
text: Integración de Kafka
- link: /tracing/software_catalog/
tag: Documentación
text: Catálogo de software
- link: https://www.datadoghq.com/blog/confluent-connector-dsm-autodiscovery/
tag: Blog
text: Descubre automáticamente los conectores de Confluent Cloud y monitoriza fácilmente
el rendimiento en Data Streams Monitoring
title: Configurar Data Streams Monitoring para Java
---

### Requisitos previos

* [Datadog Agent v7.34.0 o posterior][10]

### Bibliotecas compatibles

| Tecnología | Biblioteca | Versión mínima del rastreador | Versión recomendada del rastreador |
|----------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| Kafka | [kafka-clients](https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients) (La generación de retardos no se admite para la v3.7*) | {{< dsm-tracer-version lang="java" lib="kafka-clients" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="kafka-clients" type="recommended" >}} |
| RabbitMQ | [amqp-client](https://mvnrepository.com/artifact/com.rabbitmq/amqp-client) | {{< dsm-tracer-version lang="java" lib="amqp-client" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="amqp-client" type="recommended" >}} |
| Amazon SQS | [aws-java-sdk-sqs (v1)](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sqs) | {{< dsm-tracer-version lang="java" lib="aws-java-sdk-sqs-v1" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="aws-java-sdk-sqs-v1" type="recommended" >}} |
| Amazon SQS | [sqs (v2)](https://mvnrepository.com/artifact/software.amazon.awssdk/sqs) | {{< dsm-tracer-version lang="java" lib="sqs-v2" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="sqs-v2" type="recommended" >}} |
| Amazon Kinesis | [Kinesis (v1)](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-kinesis) | {{< dsm-tracer-version lang="java" lib="kinesis-v1" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="kinesis-v1" type="recommended" >}} |
| Amazon Kinesis | [Kinesis (v2)](https://mvnrepository.com/artifact/software.amazon.awssdk/kinesis) | {{< dsm-tracer-version lang="java" lib="kinesis-v2" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="kinesis-v2" type="recommended" >}} |
| Amazon SNS | [SNS (v1)](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns) | {{< dsm-tracer-version lang="java" lib="sns-v1" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="sns-v1" type="recommended" >}} |
| Amazon SNS | [SNS (v2)](https://mvnrepository.com/artifact/software.amazon.awssdk/sns) | {{< dsm-tracer-version lang="java" lib="sns-v2" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="sns-v2" type="recommended" >}} |
| Google PubSub | [Google Cloud Pub/Sub](https://mvnrepository.com/artifact/com.google.cloud/google-cloud-pubsub) | {{< dsm-tracer-version lang="java" lib="google-pubsub" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="google-pubsub" type="recommended" >}} |
| IBM MQ | [Clases de IBM MQ para Java y JMS](https://mvnrepository.com/artifact/com.ibm.mq/com.ibm.mq.jakarta.client) | {{< dsm-tracer-version lang="java" lib="ibmmqjmsclient" type="minimal" >}} | {{< dsm-tracer-version lang="java" lib="ibmmqjmsclient" type="recommended" >}} |

*Spring Boot 3.3.x y spring-kafka 3.2.x utilizan kafka-clients 3.7.x, que no admite la generación de retardos. Para solucionarlo, <a href="https://docs.spring.io/spring-kafka/reference/appendix/override-boot-dependencies.html">actualiza la versión de kafka-clients</a> a 3.8.0 o posterior.</span (tramo)>

### Instalación

Para activar Data Streams Monitoring, configura las siguientes variables de entorno en `true` en los servicios que envían o consumen mensajes:

- `DD_DATA_STREAMS_ENABLED`
- `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED`

{{< tabs >}}
{{% tab "Variables de entorno" %}}

```yaml
environment:
- DD_DATA_STREAMS_ENABLED: "true"
- DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED: "true"
```

{{% /tab %}}
{{% tab "Línea de comandos" %}}

Ejecuta lo siguiente cuando inicies tu aplicación Java:

```shell
java -javaagent:/path/to/dd-java-agent.jar -Ddd.data.streams.enabled=true -Ddd.trace.remove.integration-service-names.enabled=true -jar path/to/your/app.jar
```

{{% /tab %}}
{{< /tabs >}}

### Instalación con un solo clic
Para configurar Data Streams Monitoring desde la interfaz de usuario Datadog sin necesidad de reiniciar tu servicio, utiliza la [configuración en tiempo de ejecución][4]. Ve a la página de servicios APM y `Enable DSM`.

{{< img src="data_streams/enable_dsm_service_catalog.png" alt="Activa Data Streams Monitoring desde la sección Dependencias de la page (página) de servicios de APM" >}}

##### Instalación

Utiliza el rastreador de Java de Datadog, [`dd-trace-java`][6], para recopilar información de tus trabajadores de Kafka Connect.

1. [Añade el archivo `dd-java-agent.jar`][7] a tus trabajadores de Kafka. Asegúrate de estar utilizando `dd-trace-java` [v1.44+][8].
1. Modifica tus opciones de Java para incluir el rastreador de Java de Datadog en tus nodos de trabajadores. Por ejemplo, en Strimzi, modifica `STRIMZI_JAVA_OPTS` para añadir `-javaagent:/path/to/dd-java-agent.jar`.

{{% data_streams/monitoring-sqs-pipelines %}}

{{% data_streams/monitoring-rabbitmq-pipelines %}}

### Monitorización de pipelines SNS a SQS
Para monitorizar un pipeline de datos en el que Amazon SNS habla directamente con Amazon SQS, debes realizar los siguientes pasos adicionales de configuración:

{{< tabs >}}
{{% tab "SQS v1" %}}
- Configura la variable de entorno `DD_TRACE_SQS_BODY_PROPAGATION_ENABLED` en `true`.

Por ejemplo:
```yaml
environment:
- DD_DATA_STREAMS_ENABLED: "true"
- DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED: "true"
- DD_TRACE_SQS_BODY_PROPAGATION_ENABLED: "true"
```
- Asegúrate de estar utilizando el [rastreador de Java v1.44.0+][11].

[11]: https://github.com/DataDog/dd-trace-java/releases
{{% /tab %}}
{{% tab "SQS v2" %}}
Activa la [entrega de mensajes sin formato de Amazon SNS][1].

[1]: https://docs.aws.amazon.com/sns/latest/dg/sns-large-payload-raw-message-delivery.html
{{% /tab %}}
{{< /tabs >}}

{{% data_streams/monitoring-kinesis-pipelines %}}

### Instrumentación manual
Data Streams Monitoring propaga el contexto a través de las cabeceras de los mensajes. Si utilizas una tecnología de cola de mensajes no compatible con DSM, una tecnología sin cabeceras (como Kinesis) o Lambda, utiliza la [instrumentación manual para configurar DSM][5].

### Conectores de monitorización

#### Conectores de Confluent Cloud
{{% data_streams/dsm-confluent-connectors %}}

#### Conectores de Kafka autoalojados

_Requisitos_: [`dd-trace-java` v1.44.0+][8]

<div class="alert alert-info">Esta función está en vista previa.</div>

Data Streams Monitoring puede recopilar información de tus conectores de Kafka autoalojados. En Datadog, estos conectores se muestran como servicios conectados a temas de Kafka. Datadog recopila el rendimiento hacia y desde todos los temas de Kafka. Datadog no recopila el estado del conector ni los receptores y sources (fuentes) de los conectores de Kafka autoalojados.

##### Instalación

1. Asegúrate de que el Datadog Agent se esté ejecutando en tus trabajadores de Kafka Connect.
2. Asegúrate de que [`dd-trace-java`][6] esté instalado en tus trabajadores de Kafka Connect.
3. Modifica tus opciones de Java para incluir `dd-trace-java` en tus nodos de trabajadores de Kafka Connect. Por ejemplo, en Strimzi, modifica `STRIMZI_JAVA_OPTS` para añadir `-javaagent:/path/to/dd-java-agent.jar`.


## Referencias adicionales

{{< partial name="whats-next/whats-next.html" >}}

[10]: /es/agent
[2]: /es/tracing/trace_collection/dd_libraries/java/
[4]: /es/remote_configuration
[5]: /es/data_streams/manual_instrumentation/?tab=java
[6]: https://github.com/DataDog/dd-trace-java
[7]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/?tab=wget
[8]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.0
207 changes: 207 additions & 0 deletions content/es/feature_flags/client/javascript.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
---
description: Configura indicadores de funciones de Datadog para aplicaciones JavaScript
de navegador.
further_reading:
- link: /feature_flags/client/
tag: Documentación
text: Indicadores de funciones del lado del cliente
- link: https://openfeature.dev/docs/reference/sdks/client/web/
tag: OpenFeature
text: Kit de desarrollo de software (SDK) web de OpenFeature
- link: /real_user_monitoring/application_monitoring/browser/
tag: Documentación
text: Monitorización del navegador
title: Indicadores de funciones de JavaScript
---

## Información general

En esta page (página) se describe cómo instrumentar tu aplicación JavaScript de navegador con los el kit de desarrollo de software (SDK) de indicadores de funciones de Datadog. Los indicadores de funciones de Datadog proporcionan una forma unificada de controlar remotamente la disponibilidad de funciones en tu aplicación, experimentar de forma segura y ofrecer nuevas experiencias con confianza.

El kit de desarrollo de software (SDK) de indicadores de funciones de Datadog para JavaScript se compila en [OpenFeature][1], un estándar abierto para la gestión de indicadores de funciones. En esta guía se explica cómo instalar el kit de desarrollo de software (SDK), configurar el proveedor Datadog y evaluar los indicadores en tu aplicación.

## Instalación

Instala el proveedor OpenFeature y el kit de desarrollo de software (SDK) de OpenFeature Web de Datadog utilizando tu gestor de paquetes preferido:

{{< tabs >}}
{{% tab "npm" %}}
{{< code-block lang="bash" >}}
npm install @datadog/openfeature-browser @openfeature/web-sdk @openfeature/core
{{< /code-block >}}
{{% /tab %}}

{{% tab "yarn" %}}
{{< code-block lang="bash" >}}
yarn add @datadog/openfeature-browser @openfeature/web-sdk @openfeature/core
{{< /code-block >}}
{{% /tab %}}

{{% tab "pnpm" %}}
{{< code-block lang="bash" >}}
pnpm add @datadog/openfeature-browser @openfeature/web-sdk @openfeature/core
{{< /code-block >}}
{{% /tab %}}
{{< /tabs >}}

## Inicializar el proveedor

Crea una instancia de `DatadogProvider` con tus credenciales de Datadog:

```javascript
import { DatadogProvider } from '@datadog/openfeature-browser';
import { OpenFeature } from '@openfeature/web-sdk';

const provider = new DatadogProvider({
applicationId: '<APPLICATION_ID>',
clientToken: '<CLIENT_TOKEN>',
site: '{{< region-param key="dd_site" code="true" >}}',
env: '<ENV_NAME>',
});
```

## Definir el contexto de evaluación

Define a quién o a qué se aplica la evaluación del indicador utilizando un contexto de evaluación. El contexto de evaluación incluye información del usuario o de la sesión que se utiliza para determinar qué variantes del indicador deben devolverse. Haz referencia a estos atributos en tus reglas de orientación para controlar quién ve cada variante.

{{< code-block lang="javascript" >}}
const evaluationContext = {
targetingKey: 'user-123',
user_id: '123',
user_role: 'admin',
email: 'user@example.com',
};

await OpenFeature.setProviderAndWait(provider, evaluationContext);
{{< /code-block >}}

<div class="alert alert-info">La <code>targetingKey</code> se utiliza como sujeto de aleatorización para la orientación basada en el porcentaje. Cuando un indicador se dirige a un porcentaje de sujetos (por ejemplo, 50 %), la <code>targetingKey</code> determina en qué "bucket" cae un usuario. Los usuarios con la misma <code>targetingKey</code> siempre reciben la misma variante para un indicador determinado.</div>

## Evaluar indicadores

Una vez inicializado el proveedor, puedes evaluar los indicadores en cualquier lugar de tu aplicación. La evaluación de los indicadores es _local e instantánea_: el kit de desarrollo de software (SDK) utiliza datos almacenados en caché local, por lo que no se producen solicitudes de red al evaluar los indicadores.

### Conseguir un cliente

Recuperar el cliente OpenFeature para evaluar los indicadores:

{{< code-block lang="javascript" >}}
const client = OpenFeature.getClient();
{{< /code-block >}}

### Indicadores booleanos

Utiliza `getBooleanValue(key, defaultValue)` para los indicadores que representan condiciones de activado/desactivado o true/false:

{{< code-block lang="javascript" >}}
const isNewCheckoutEnabled = client.getBooleanValue('checkout_new', false);

if (isNewCheckoutEnabled) {
showNewCheckoutFlow();
} else {
showLegacyCheckout();
}
{{< /code-block >}}

### Indicadores de cadena

Utiliza `getStringValue(key, defaultValue)` para los indicadores que seleccionan entre múltiples variantes o cadenas de configuración:

{{< code-block lang="javascript" >}}
const theme = client.getStringValue('ui_theme', 'light');

switch (theme) {
case 'dark':
setDarkTheme();
break;
case 'light':
default:
setLightTheme();
}
{{< /code-block >}}

### Indicadores numéricos

Utiliza `getNumberValue(key, defaultValue)` para indicadores numéricos como límites, porcentajes o multiplicadores:

{{< code-block lang="javascript" >}}
const maxItems = client.getNumberValue('cart_items_max', 20);
const priceMultiplier = client.getNumberValue('pricing_multiplier', 1.0);
{{< /code-block >}}

### Indicadores de objetos

Utiliza `getObjectValue(key, defaultValue)` para los datos de configuración estructurados:

{{< code-block lang="javascript" >}}
const config = client.getObjectValue('promo_banner_config', {
color: '#00A3FF',
message: 'Welcome!',
});
{{< /code-block >}}

### Detalles de la evaluación de indicadores

Si necesitas algo más que el valor del indicador, utiliza los métodos detallados. Estos devuelven el valor evaluado y los metadatos que explican la evaluación:

{{< code-block lang="javascript" >}}
const details = client.getBooleanDetails('checkout_new', false);

console.log(details.value); // Valor (true o false)
console.log(details.variant); // Nombre de la variante, si correspondiera
console.log(details.reason); // ¿Por qué se seleccionó este valor?
console.log(details.errorCode); // Código de error, si falló la evaluación
{{< /code-block >}}

## Ejemplo completo

Este es un ejemplo completo en el que se muestra cómo configurar y utilizar indicadores de funciones de Datadog en una aplicación JavaScript:

```javascript
import { DatadogProvider } from '@datadog/openfeature-browser';
import { OpenFeature } from '@openfeature/web-sdk';

// Initialize the Datadog provider
const provider = new DatadogProvider({
applicationId: '<APPLICATION_ID>',
clientToken: '<CLIENT_TOKEN>',
site: '{{< region-param key="dd_site" code="true" >}}',
env: '<ENV_NAME>',
});

// Set the evaluation context
const evaluationContext = {
targetingKey: 'user-123',
user_id: '123',
user_role: 'admin',
};

await OpenFeature.setProviderAndWait(provider, evaluationContext);

// Get the client and evaluate flags
const client = OpenFeature.getClient();
const showNewFeature = client.getBooleanValue('new_feature', false);

if (showNewFeature) {
console.log('New feature is enabled!');
}
```

## Actualizar el contexto de evaluación

Para actualizar el contexto de evaluación después de la inicialización (por ejemplo, cuando un usuario inicia sesión), utiliza `OpenFeature.setContext()`:

{{< code-block lang="javascript" >}}
await OpenFeature.setContext({
targetingKey: user.id,
user_id: user.id,
email: user.email,
plan: user.plan,
});
{{< /code-block >}}

## Referencias adicionales

{{< partial name="whats-next/whats-next.html" >}}

[1]: https://openfeature.dev/
Loading
Loading